{"version":3,"file":"vcomply-workflow-engine.mjs","sources":["../../../projects/vx-workflow-engine/src/lib/workflow-engine.service.ts","../../../projects/vx-workflow-engine/src/lib/interfaces/iframe-type.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/ui-kit.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/token-decoder.service.ts","../../../projects/vx-workflow-engine/src/lib/configurations.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/auth.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/common-workflow-services/organization-common.service.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/constants/api.constants.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/constants/report-case.constants.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/services/report-a-case.service.ts","../../../projects/vx-workflow-engine/src/lib/services/api.service.ts","../../../projects/vx-workflow-engine/src/lib/services/RBAC.service.ts","../../../projects/vx-workflow-engine/src/lib/services/auth.service.ts","../../../projects/vx-workflow-engine/src/lib/services/report-case-permission.service.ts","../../../projects/vx-workflow-engine/src/lib/services/iframe.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/services/grc.service.ts","../../../projects/vx-workflow-engine/src/lib/services/biz-cycle.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/responsibility.service.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-radio/cs-radio.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-radio/cs-radio.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/tooltip/tooltip.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/shared/constants/field-text.constant.ts","../../../projects/vx-workflow-engine/src/lib/constants/assets.constants.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/constants/cdn-link.constant.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/constants/validation-message.constant.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/constants/grcObject.constant.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/constants/message.contstant.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/common-workflow-services/compliance-common.service.ts","../../../projects/vx-workflow-engine/src/lib/services/common.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/click-outside/click-outside.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/click-outside/click-outside.module.ts","../../../projects/vx-workflow-engine/src/lib/pipes/data-type.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/list-mapper.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/search.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/space-breaker.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/uncategorized-filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/user-filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/constants.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/tooltip-message.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/dom-sanitizer.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/is-read-more.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/within.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/user.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/get-editor-config.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/format-date.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/responsibility-checked.pipe.ts","../../../projects/vx-workflow-engine/src/lib/pipes/pipes.module.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/text-field/text-field.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/constants/svg-link.constant.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/text-field-icon/text-field-icon.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.directive.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/floating-bar/floating-bar.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/floating-bar/floating-bar.component.html","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox/cs-checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox/cs-checkbox.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/no-data/no-data.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/no-data/no-data.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover-event.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover-longpress.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover/popover.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/tooltip/tooltip.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/floating-bar/floating-bar.module.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-switch/cs-switch.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-switch/cs-switch.component.html","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-radio-group/cs-radio-group.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-radio-group/cs-radio-group.component.html","../../../projects/vx-workflow-engine/src/lib/formgroup/pipes/pascal.pipe.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-select/cs-select.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-select/cs-select.component.html","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.html","../../../projects/vx-workflow-engine/src/lib/formgroup/formgroup.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/no-data/no-data.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader/loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/loader/loader.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/v-loader/v-loader.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-centers-list/rc-list.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio/cs-radio.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-switch/cs-switch.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/click-outside.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/pipes/pascal.pipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-select/cs-select.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-select/cs-select.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/formgroup/formgroup.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/pagination/pagination/pagination.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/pagination/pagination/pagination.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/pagination/pagination.module.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/table-card/table-card.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/table-card/table-card.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/no-data/no-data.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/no-data/no-data.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/no-data/no-data.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/list-loader/list-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/list-loader/list-loader.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/list-loader/list-loader.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/table-card-loader/table-card-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/table-card-loader/table-card-loader.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-object-list/grc-object-list.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-object-list/grc-object-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/group-users-list/group-users-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/group-users-list/group-users-list.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/shared/constants/pagination-limits.constant.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/get-selected-value.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/get-user-details.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/is-attributes-valid.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/unique-responsibilities.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/user-short-name.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/filterResponsibility.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/workflow-pipes/workflow-pipes.module.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/shared/constants/link-responsibility.constant.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/list-popup/list-popup.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/edit-mode/edit-mode.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/date-picker/date-picker.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes-text-box/attributes-text-box.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/select/select.service.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/select/cs-select/cs-select.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/select/cs-select/cs-select.component.html","../../../projects/vx-workflow-engine/src/lib/formgroup/select/cs-option/cs-option.component.ts","../../../projects/vx-workflow-engine/src/lib/formgroup/select/cs-option/cs-option.component.html","../../../projects/vx-workflow-engine/src/lib/formgroup/select/select.module.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes-dropdown/attributes-dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/shared/components/attributes/attributes.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.html","../../../projects/vx-workflow-engine/src/lib/workflow/grc-object/grc-object-container/grc-object-container.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow/grc-object/grc-object-container/grc-object-container.component.html","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/case-type-slider/case-type.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/organization-user.service.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/services/date-utility.service.ts","../../../projects/vx-workflow-engine/src/lib/constants/file-upload.constant.ts","../../../projects/vx-workflow-engine/src/lib/constants/policy.constant.ts","../../../projects/vx-workflow-engine/src/lib/workflow-engine-container/api-constants.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/policy.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/line-loader/line-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/line-loader/line-loader.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/format-and-evidence/format-and-evidence.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/format-and-evidence/format-and-evidence.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/directive/scroll-in-view.directive.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkbox-list/checkbox-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkbox-list/checkbox-list.component.html","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/information-block/information-block.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/information-block/information-block.component.html","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/vc-input/vc-input.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/vc-label/vc-label.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/field-holder/field-holder.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/case-details/case-details.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/vc-dropdown/vc-dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/vc-dropdown/vc-dropdown.component.html","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/chip-capsule/chip-capsule.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/chip-capsule/chip-capsule.component.html","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/form-selectBox/form-selectBox.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/form-selectBox/form-selectBox.component.html","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/rc-details/rc-details.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/case-type-dropdown/case-dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/report-date/report-date.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/case-priority/case-priority.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/category-list-selection/category-list-selection/category-list-selection.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/category-list-selection/category-list-selection/category-list-selection.component.html","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/case-category/case-category.component.ts","../../../projects/vx-workflow-engine/src/lib/constants/time.constants.ts","../../../projects/vx-workflow-engine/src/lib/constants/api.constants.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency.constant.ts","../../../projects/vx-workflow-engine/src/lib/constants/common.constants.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency.service.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/assignee/assignee.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/assignee/assignee.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/banner/banner.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/due-date/due-date.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/due-date/due-date.component.html","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/case-assignees/case-assignees.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/case-owners/case-owners.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/linked assessment/linked-assessment.component.ts","../../../projects/vx-workflow-engine/src/lib/constants/link-responsibility.constants.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/avatar/avatar.constants.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/avatar/avatar.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/avatar/avatar.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/userDetails.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/getRCList.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/parentResponsibilitySelection.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/link-responsibility/link-responsibility.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/link-responsibility/link-responsibility.component.html","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/linked-responsibilities/linked-responsibilities.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/workflow-case/workflow-case.component.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/workflow-case/workflow-case.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-services/common-workflow-services/risk-common.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/add-risk.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/search.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/checkbox/checkbox.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/filterPipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/short-merge.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/owner-list/owner-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/owner-list/owner-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/category-list/category-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/category-list/category-list.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/time-picker/constants/constant.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/time-picker/time-picker/time-picker.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/time-picker/time-picker/time-picker.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/spaceTrim.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-risk/workflow-risk.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-risk/workflow-risk.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-services/programs.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog-config.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog-ref.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/result-criteria.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/editor.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/delete/delete.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/delete/delete.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/active/active.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/active/active.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/insertion.directive.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog-injector.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/dialog/dialog.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/services/validator.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/move/move.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/move/move.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic/logic.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic/logic.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/program-list/constant.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/program-list/services/list-utils.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/program-list/services/program-list-api.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/loaders/table-loader/table-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/loaders/table-loader/table-loader.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/program-list/program-list/program-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/program-list/program-list/program-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/users-radio-list/users-radio-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/users-radio-list/users-radio-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/category-multiselect/category-multi-select.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/category-multiselect/category-multi-select.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/format-html.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/review-frequency/review-frequency.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/review-frequency/review-frequency.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-top/frequency-top.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-top/frequency-top.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-lifecycle/lifecycl.constant.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-due-date/due-date.contant.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-random/frequency-random.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-random/frequency-random.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/avatar-v2/avatar-v2.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/avatar-v2/avatar-v2.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-responsibility-list/sub-responsibility/sub-responsibility.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-responsibility-list/sub-responsibility/sub-responsibility.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-container/frequency-container.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/frequency/frequency-container/frequency-container.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/framework-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/risk-classification/risk-classification.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/risk-classification/risk-classification.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/audit-category-list/audit-category-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/audit-category-list/audit-category-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/service/assessment.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/description-preview/description-preview.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/description-preview/description-preview.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/date-time/date-time.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/date-time/date-time.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/device/device.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/device/device.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/select-question/select-question.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/select-question/select-question.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/page-header/page-header.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/page-header/page-header.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/welcome/welcome.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/welcome/welcome.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/section-details/section-details.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/section-details/section-details.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/pipes/get-section-order.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview/preview.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview/preview.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-pagination/workflow-pagination.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-pagination/workflow-pagination.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-list/assessment-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/list-container/list-container.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-compliance/workflow-compliance.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-compliance/workflow-compliance.component.html","../../../projects/vx-workflow-engine/src/lib/link-related-policies/constants.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/link-program/restapi.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-template/constants/template.constant.ts","../../../projects/vx-workflow-engine/src/lib/constants/template.constant.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-template/services/template.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/multi-select/multi-select.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/multi-select/cs-multiselect/cs-multiselect.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/multi-select/cs-multiselect/cs-multiselect.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/multi-select/cs-multiselect-option/cs-multiselect-option.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/multi-select/cs-multiselect-option/cs-multiselect-option.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-template/template-list-table/template-list-table.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-template/template-list-table/template-list-table.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-template/template-pipes/search-template.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-policy/ms-word.constants.ts","../../../projects/vx-workflow-engine/src/lib/workflow-services/policy-api.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/document-section/document-section.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/document-section/document-section.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/directive/stop-propagation.directive.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/select-approvers/select-approvers.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/select-approvers/select-approvers.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/approval-workflow/approval-workflow.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-access/policy-access.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-access/policy-access.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/link-program/tooltip-validation.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/link-program/link-program/link-program.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/link-program/link-program/link-program.component.html","../../../projects/vx-workflow-engine/src/lib/link-related-policies/link-related-policies.component.ts","../../../projects/vx-workflow-engine/src/lib/link-related-policies/link-related-policies.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-policy/workflow-policy.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-policy/workflow-policy.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.service.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.directive.ts","../../../projects/vx-workflow-engine/src/lib/more-option/more-option.component.ts","../../../projects/vx-workflow-engine/src/lib/more-option/more-option.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-services/frequency.service.ts","../../../projects/vx-workflow-engine/src/lib/constants/multiple-risks.constants.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/bulk-view/bulk-view.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/bulk-view/bulk-view.component.html","../../../projects/vx-workflow-engine/src/lib/add-multiple-risk/add-multiple-risk.component.ts","../../../projects/vx-workflow-engine/src/lib/add-multiple-risk/add-multiple-risk.component.html","../../../projects/vx-workflow-engine/src/lib/confirmation-alert/confirmation-alert.component.ts","../../../projects/vx-workflow-engine/src/lib/confirmation-alert/confirmation-alert.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-survey-form/workflow-survey-form.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-survey-form/workflow-survey-form.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-services/log-issue.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/radio-list/radio-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/radio-list/radio-list.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/array-filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.html","../../../projects/vx-workflow-engine/src/lib/log-an-issue/log-an-issue.component.ts","../../../projects/vx-workflow-engine/src/lib/log-an-issue/log-an-issue.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-services/assessment.service.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/radio-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/radio-list.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-assessment/workflow-assessment.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-assessment/workflow-assessment.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/form-field/form-field.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/form-field/form-field.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/directives/input-trim.directive.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/custom-field/custom-field.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/custom-field/custom-field.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/workflow-program.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/workflow-program.component.html","../../../projects/vx-workflow-engine/src/lib/constants/xlsx.constant.ts","../../../projects/vx-workflow-engine/src/lib/services/bulk-upload.service.ts","../../../projects/vx-workflow-engine/src/lib/constants/responsibility.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.html","../../../projects/vx-workflow-engine/src/lib/add-multiple-responsibility/add-multiple-responsibility.component.ts","../../../projects/vx-workflow-engine/src/lib/add-multiple-responsibility/add-multiple-responsibility.component.html","../../../projects/vx-workflow-engine/src/lib/constants/regix.constants.ts","../../../projects/vx-workflow-engine/src/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.ts","../../../projects/vx-workflow-engine/src/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.html","../../../projects/vx-workflow-engine/src/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.ts","../../../projects/vx-workflow-engine/src/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-engine-container/workflow-engine-container.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-engine-container/workflow-engine-container.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/line-loader/line-loader.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog/smiley-dialog.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog/smiley-dialog.module.ts","../../../projects/vx-workflow-engine/src/lib/create-documents/create-documents.component.ts","../../../projects/vx-workflow-engine/src/lib/create-documents/create-documents.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/within-data.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/parent-table/parent-table.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/framework-list/parent-table/parent-table.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/snack-bar/snack-bar.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/rcTreeToolTip.pipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/popover-hover/popover-hover.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/preview/preview.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-preview/assessment-preview.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/build/build.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/editor-loader/editor-loader.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/assessment-editor/create-assessment.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/deactivate/deactivate.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/deactivate/deactivate.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/duplicate/duplicate.component.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/duplicate/duplicate.component.html","../../../projects/vx-workflow-engine/src/lib/ui-kit/action-dialog/action-dialog.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/program-listing/program-listing.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/program-listing/program-listing.component.html","../../../projects/vx-workflow-engine/src/lib/sharedComponents/roles-list/roles-list.component.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/roles-list/roles-list.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/file-pill/file-pill.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/loader/loader.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/loader/loader.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/role-list.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/role-list/role-list.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pagination/pagination.module.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/framework.service.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/pager.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/category-all-select.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/pipes/search.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.html","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/assessment-picker/selected-assessment.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/filter.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/create-program-ui.module.ts","../../../projects/vx-workflow-engine/src/lib/workflow-program/create-program-ui/pipes/array-concat.pipe.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/directive/directive.module.ts","../../../projects/vx-workflow-engine/src/lib/workflow/grc-object/grc-object.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/time-picker/time-picker.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/avatar/avatar.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/pipe.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/link-responsibility/link-responsibility.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/multi-select/multi-select.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-template/template-pipes/get-template-category.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-template/template-pipes/template-pipes.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/policy-template/policy-template.module.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/vc-dropdown/vc-dropdown.module.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/components/form-selectBox/form-selectBox.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/checkbox-list/checkbox-list.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/format-and-evidence/format-and-evidence.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/radio-list-with-pagination/radio-list-with-pagination.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/category-list-selection/category-list-selection.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/directive/autofocus.directive.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/directive/conditional-focus.directive.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/directive/drag-drop.directive.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/directive/input-trim.directive.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/directive/directive.module.ts","../../../projects/vx-workflow-engine/src/lib/report-a-case/report-case.module.ts","../../../projects/vx-workflow-engine/src/lib/ui-kit/loaders/loaders.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/program-list/program-list.module.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/assignee.pipe.ts","../../../projects/vx-workflow-engine/src/lib/sharedComponents/pipes/risk-class.pipe.ts","../../../projects/vx-workflow-engine/src/lib/workflow-engine.module.ts","../../../projects/vx-workflow-engine/src/public-api.ts","../../../projects/vx-workflow-engine/src/vcomply-workflow-engine.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class WorkflowEngineService {\n  constructor() {}\n}\n","export enum PostMessageEvent {\n    CLOSE_WEBVIEW = 'closeWebview',\n    PROGRAM_CREATED = 'programCreated',\n    PROGRAM_UPDATED = 'programUpdated',\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n    providedIn: 'root',\n})\n\nexport class UiKitService {\n    public isSmileyOn: boolean = false;\n    public isLoader: boolean = false;\n    constructor() { }\n}","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class SnackBarService {\n  public snackbarSubject = new Subject <any>();\n  public snackbarState = this.snackbarSubject.asObservable();\n  constructor() {}\n\n  show(message: string, type?:'success'|'warning'|'info'|'alert'|'error') {\n    this.snackbarSubject.next({\n      show: true,\n      message,\n      icon:type,\n    });\n  }\n\n  hide(){\n    this.snackbarSubject.next({\n      show: false,\n      message: '',\n      icon: '',\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { JwtHelperService } from '@auth0/angular-jwt';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TokenDecoderService {\n\n  constructor() { }\n\n  getUserDetailsFromToken(){\n    if (localStorage.getItem(\"currentUser\")) {\n      const helper = new JwtHelperService();\n      const rawToken = JSON.parse(localStorage.getItem('currentUser')??'{}').token;\n      const tokenInfo = helper.decodeToken(rawToken);\n      if(tokenInfo?.iss){\n        if(tokenInfo.user){\n          try{\n            return JSON.parse(tokenInfo?.user)\n          }\n          catch{\n             return null;\n          }\n        }\n      }else{\n        return tokenInfo.user??null;\n      }\n    }else{\n      return null;\n    }\n  }\n}\n","export class Configurations {\n  public envConfig: any;\n\n  constructor() {\n    this.envConfig = {};\n  }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { Configurations } from '../configurations';\nimport { retry } from 'rxjs/operators';\nimport { TokenDecoderService } from './token-decoder.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AuthService {\n  public env !: any;\n \n  public previewPanel = new BehaviorSubject<boolean>(false);\n  userDetails: any;\n  constructor(private http: HttpClient,private decoder:TokenDecoderService, @Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.envConfig;\n\n    }\n  }\n\n  userId() {\n    const helper = new JwtHelperService();\n    const CURRENT_USER = localStorage.getItem('currentUser');\n    let myRawToken;\n    CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\n    const isExpired = helper.isTokenExpired(myRawToken);\n    if (isExpired === false) {\n      const tokenInfo = helper.decodeToken(myRawToken);\n      return tokenInfo._id;\n    }\n    return '';\n  }\n\n  getUserDetails(){\n    const helper = new JwtHelperService();\n    const CURRENT_USER = localStorage.getItem('currentUser');\n    let myRawToken;\n    CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\n    const isExpired = helper.isTokenExpired(myRawToken);\n    if (isExpired === false) {\n      let tokenInfo = helper.decodeToken(myRawToken);\n      tokenInfo['user'] = this.decoder.getUserDetailsFromToken();\n      return tokenInfo;\n    }\n    return '';\n  }\n  isKeyAdmin(): boolean {\n    if (this.isValidToken() && Object.keys(this.tokenInfo()).length > 0) {\n      return this.tokenInfo().keyAdmin;\n    }\n    return false;\n  }\n\n  isAdmin(): boolean {\n    if (this.isValidToken()) {\n      return this.tokenInfo().admin;\n    }\n    return false;\n  }\n  isManager(): boolean {\n    if (this.isValidToken()) {\n      return this.tokenInfo().manager;\n    }\n    return false;\n  }\n\n  isUser(): boolean {\n    if (this.isValidToken()) {\n      return this.tokenInfo().user;\n    }\n    return false;\n  }\n\n  isValidToken(): boolean {\n    const helper = new JwtHelperService();\n    const userToken = localStorage.getItem('currentUser');\n    if (userToken) {\n      const CURRENT_USER = localStorage.getItem('currentUser');\n      let myRawToken;\n      CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\n      const isExpired = helper.isTokenExpired(myRawToken);\n      if (isExpired === true) {\n        return false;\n      }\n      if (isExpired === false) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  tokenInfo() {\n    const helper = new JwtHelperService();\n    const userToken = localStorage.getItem('currentUser');\n    if (userToken) {\n      const CURRENT_USER = localStorage.getItem('currentUser');\n      let myRawToken;\n      CURRENT_USER ? (myRawToken = CURRENT_USER) : (myRawToken = '');\n      const tokenInfo = helper.decodeToken(myRawToken);\n      return this.decoder.getUserDetailsFromToken();\n    }\n    return {};\n  }\n\n  getAuthorizationToken(): any {\n    try {\n      if (this.isValidToken()) {\n        const tk: string | null = localStorage.getItem('currentUser');\n        if (tk) {\n          const myRawToken = JSON.parse(tk).token;\n          return myRawToken;\n        }\n        return '';\n      }\n      return '';\n    } catch (err) {}\n    return '';\n  }\n\n  getUserTimeZone(): string {\n    try {\n      if (this.isValidToken()) {\n        const helper = new JwtHelperService();\n        const tk: string | null = localStorage.getItem('currentUser');\n        if (tk) {\n          const myRawToken = JSON.parse(tk).token;\n          const tokenInfo = helper.decodeToken(myRawToken);\n          const userInfo = this.decoder.getUserDetailsFromToken();\n          return userInfo?.timezone;\n        }\n        return '';\n      }\n      return '';\n    } catch (err) {}\n    return '';\n  }\n\n  getOrganizationId(): number {\n    try {\n      if (this.isValidToken()) {\n        const helper = new JwtHelperService();\n        const tk: string | null = localStorage.getItem('currentUser');\n        if (tk) {\n          const myRawToken = JSON.parse(tk).token;\n          const tokenInfo = helper.decodeToken(myRawToken);\n          const userInfo = this.decoder.getUserDetailsFromToken();\n          return userInfo.organisation_id;\n        }\n        return -1;\n      }\n      return -1;\n    } catch (err) {}\n    return -1;\n  }\n\n  getMemberId(): number {\n    try {\n      if (this.isValidToken()) {\n        const helper = new JwtHelperService();\n        const tk: string | null = localStorage.getItem('currentUser');\n        if (tk) {\n          const myRawToken = JSON.parse(tk).token;\n          const tokenInfo = helper.decodeToken(myRawToken);\n          const userInfo = this.decoder.getUserDetailsFromToken();\n          return userInfo?.id;\n        }\n        return -1;\n      }\n      return -1;\n    } catch (err) {}\n    return -1;\n  }\n\n  logout() {\n    const primaryToken = localStorage.getItem('primaryuser');\n    if (primaryToken != null) {\n      localStorage.setItem('currentUser', primaryToken);\n      localStorage.removeItem('primaryuser');\n      window.location.href = this.env.appUrl;\n    } else {\n      localStorage.removeItem('currentUser');\n      window.location.href = this.env.appUrl;\n    }\n  }\n\n  isTokenExpired() {\n    const helper = new JwtHelperService();\n    const userToken = localStorage.getItem('currentUser');\n    if (userToken !== null) {\n      const myRawToken = JSON.parse(userToken).token;\n      const isExpired = helper.isTokenExpired(myRawToken);\n      return isExpired;\n    }\n    return false;\n  }\n\n  isLoggedIn(): boolean {\n    const helper = new JwtHelperService();\n    const userToken = localStorage.getItem('currentUser');\n    if (userToken) {\n      const myRawToken = JSON.parse(userToken).token;\n      const isExpired = helper.isTokenExpired(myRawToken);\n      if (isExpired === false) {\n        return true;\n      }\n      if (isExpired === true) {\n        this.logout();\n      }\n      window.location.href = this.env.appUrl + '#/signin?redirectURL= ' + encodeURIComponent(window.location.href);\n      return false;\n    }\n    window.location.href = this.env.appUrl + '#/signin?redirectURL= ' + encodeURIComponent(window.location.href);\n    return false;\n  }\n\n  getOrganizationDetails() {\n    const headers = new HttpHeaders().set('token', this.getAuthorizationToken());\n    return this.http.get(this.env?.organizationGet + 'orgDetails&id=' + this.getOrganizationId(),{ headers }).pipe(retry(2));\n  }\n\n  getUserInfo(){\n    const headers = new HttpHeaders().set('token', this.getAuthorizationToken());\n    return this.http.get(this.env?.organizationGet + 'users&id=' + this.userId(), { headers }).pipe(retry(2));\n  }  \n\n  getSubscriptionDetails() {\n    const headers = new HttpHeaders().set('token', this.getAuthorizationToken());\n    return this.http.get(this.env?.organizationGet + 'subscriptionList', { headers }).pipe(retry(2));\n  }\n\n  convertUtcToLocalDateTime(timestamp: string | number) {\n    if (typeof timestamp !== 'string') {\n      let TimeZone = this.getUserTimeZone()??'';\n      const monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n      const dayName = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n      if (TimeZone === '' || parseInt(timestamp.toString(), 10) <= 0) {\n        return '0';\n      } else {\n        const UTC_TIME = new Intl.DateTimeFormat('en', {\n          timeZone: TimeZone,\n          hour: 'numeric',\n          minute: 'numeric',\n        });\n        const GET_TIME = UTC_TIME.format(new Date(timestamp * 1000));\n\n        const UTC_DATE = new Intl.DateTimeFormat('en', {\n          timeZone: TimeZone,\n        });\n\n        const MY_DATE = UTC_DATE.format(new Date(timestamp * 1000));\n        const date = new Date(MY_DATE);\n        const DAY_NAME = dayName[date.getDay()];\n        let day = date.getDate().toString();\n        day = day.length === 1 ? '0' + day : day;\n        const monthIndex = date.getMonth();\n        const year = date.getFullYear();\n\n        const GET_DATE = day + '-' + monthNames[monthIndex] + '-' + year;\n\n        // const DATE_TIME = GET_DATE + ' ' + GET_TIME ;\n        return GET_DATE;\n      }\n    }\n    return '';\n  }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional, signal, WritableSignal } from '@angular/core';\nimport { catchError, of, retry, map, BehaviorSubject } from 'rxjs';\nimport { AuthService } from '../auth.service';\nimport { Configurations } from '../../configurations';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class OrganizationCommonService {\n  private orgUser: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n  private orgDetails: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n  private subscriptionList: BehaviorSubject<any> = new BehaviorSubject<any>(\n    null\n  );\n\n  env: any;\n\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config?.envConfig;\n    }\n  }\n\n  private getOrgUsers() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService?.getAuthorizationToken()\n    );\n    return this.http\n      ?.get(\n        this.env?.organizationGet + 'users&id=' + this.authService?.userId(),\n        { headers }\n      )\n      .pipe(\n        map((res) => this.setOrgUsers(res)),\n        catchError((error) => {\n          console.error('Error while fetching organization users', error);\n          return of(null);\n        })\n      );\n  }\n\n  private setOrgUsers(data: any) {\n    this.orgUser?.next(data);\n    return data;\n  }\n\n  public getOrgUserInfo() {\n    const currentUsers = this.orgUser?.getValue();\n    if (currentUsers) {\n      return of(this.orgUser?.value);\n    }\n    return this.getOrgUsers();\n  }\n\n  private getOrgDetails() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      ?.get(\n        this.env?.organizationGet +\n          'orgDetails&id=' +\n          this.authService?.getOrganizationId(),\n        { headers }\n      )\n      .pipe(\n        map((res) => this.setOrgDetails(res)),\n        catchError((error) => {\n          console.error('Error fetching organization users', error);\n          return of(null);\n        })\n      );\n  }\n\n  private setOrgDetails(data: any) {\n    this.orgDetails?.next(data);\n    return data;\n  }\n\n  public getOrgDetailsInfo() {\n    const currentUsers = this.orgDetails?.getValue();\n    if (currentUsers) {\n      return of(this.orgDetails?.value);\n    }\n    return this.getOrgDetails();\n  }\n\n  private getSubscriptionDetails() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService?.getAuthorizationToken()\n    );\n    return this.http\n      .get(this.env?.organizationGet + 'subscriptionList', { headers })\n      .pipe(\n        map((res) => this.setSubscriptionDetails(res)),\n        catchError((error) => {\n          console.error('Error fetching subscription Details', error);\n          return of(null);\n        })\n      );\n  }\n\n  private setSubscriptionDetails(data: any) {\n    this.subscriptionList?.next(data);\n    return data;\n  }\n\n  public getSubscriptionDetailsInfo() {\n    const currentUsers = this.subscriptionList?.getValue();\n    if (currentUsers) {\n      return of(this.subscriptionList?.value);\n    }\n    return this.getSubscriptionDetails();\n  }\n}\n","export const API_URLS = {\n    GET_ALL_TYPES: `/type/?fetch_all=true`,\n    GET_ALL_PRIORITIES: `/priority/?fetch_all=true`,\n    GET_ALL_CATEGORIES: `/category/?fetch_all=true`,\n    GET_STAGE_DETAILS: `/getWorkflow`,\n    GET_CASE_OWNERS: `organizationMembers&manageCase=true&workflow_id=`,\n    ADD_CASE_TO_WORKFLOW: `/add-to-workflow`,\n    VALIDATE_CASE_DEADLINE: `/validDeadline/`\n};\n","export const REPORT_CASE = {\n  case_type: `CASE REPORTING TYPE`,\n  report_case: `REPORT A CASE`,\n  add_case: `REPORT & ADD CASE TO WORKFLOW`,\n  default_flow: `VComply's Default Workflow`,\n  receive_updates: `I WOULD LIKE TO RECEIVE UPDATES ABOUT THIS CASE`,\n  case_details: {\n    name: {\n      title: `CASE NAME`,\n      placeholder: `Enter a name for this case.`,\n    },\n    description: {\n      title: `DESCRIPTION`,\n      placeholder: `Add details about what happened.`,\n    },\n    rc: {\n      title: `RESPONSIBILITY CENTER`,\n      placeholder: `Select Responsibility Center that this case relates to`,\n      singularText: `Responsibility Center selected`,\n      pluralText: `Responsibility Centers selected`,\n      mainRcPlaceholder: `Select the Main Responsibility Center`,\n      separateRcText: `CREATE SEPARATE CASES FOR EACH RESPONSIBILITY CENTER`,\n      separateRcTooltip: `If selected, separate cases will be created for each Responsibility Center.`,\n      sameRcText: `DISPLAY THE SAME CASES FOR EACH RESPONSIBILITY CENTER`,\n      sameRcTooltip: `If selected, the same case will be linked to each Responsibility Center.`,\n    },\n    case_type: {\n      title: `CASE TYPE`,\n      placeholder: `Select a Case Type`,\n    },\n    category: {\n      title: `CASE CATEGORY`,\n      placeholder: `Select a Case Category`,\n    },\n    additional_category: {\n      title: `SELECT ADDITIONAL CASE CATEGORIES FOR REPORTING`,\n      placeholder: `Select a Case Category`,\n    },\n    when: {\n      title: `WHEN DID THIS OCCUR?`,\n      placeholder: `Select a Date`,\n    },\n    priority: {\n      title: `Case Priority`,\n      placeholder: `Select a Case Priority`,\n    },\n    attachments: {\n      title: `Attach Supporting Documents`,\n      placeholder: `Add attachments`,\n    },\n    due_date: {\n      title: `RESOLUTION DEADLINE & STAGE WORKFLOW`,\n      placeholder: `Configure`,\n      deadline_placeholder: `Select a Deadline`,\n      disabledText:\n        'To modify this field, please configure all the mandatory information in this form first.',\n      helpText: `This setting lets you specify the case resolution deadline and assign responsible users for each stage in the workflow.`,\n    },\n    assignees: {\n      title: `CASE ASSIGNEE(S)`,\n      placeholder: `Select Case Assignee(s)`,\n      helpText: `Case Assignees are users responsible for handling specific stages. They can submit forms, complete tasks, and advance the case through the workflow.`,\n    },\n    owners: {\n      title: `CASE OWNER(S)`,\n      placeholder: `Select Case Owner(s)`,\n      helpText: `Case Owners are users responsible for managing a case. They can edit the case details, manage workflow settings, link forms, and assign tasks to relevant stakeholders.`,\n      disabledText:\n        'To modify this field, please configure the mandatory information in the Case Details section first.',\n    },\n  },\n  tooltipMessage: {\n    report_case: `This option lets you report a case and notify the case owners. The case owners will have the option to either assign a case workflow or flag it for a follow-up at a later date.`,\n    add_case: `This option lets you directly report and assign a case workflow. Once the case is reported, the case owners and assignees will be notified via email to work on the case.`,\n    receive_updates: `If this option is enabled, you will receive email notifications whenever the case is updated or resolved.`,\n    rc: `Responsibility Centers represent the corporate and operational infrastructure of an organization. One or more Responsibility Centers can be exposed to a risk and accordingly, the risk must be assessed against each Responsibility Center.`,\n    workflow: `A workflow defines the series of stages and actions required to manage a case from start to finish. The workflow for this case is automatically selected based on the Responsibility Center, Case Type, Case Priority, and Case Category.`,\n  },\n  errorMessage: {\n    rc: `Select a Responsibility Center.`,\n    name: `Enter a name for this case.`,\n    description: `Add details about what happened.`,\n    caseType: `Select the Case Type.`,\n    reportDate: `Select the date on which this case occurred.`,\n    priority: `Specify the case priority.`,\n    mainRc: `Select a Main Responsibility Center.`,\n    caseOwner: `Select a Case Owner.`,\n    caseAssignee: `Select a Case Assignee.`,\n    dueDate: `Select the date by which the case should be closed.`,\n    stageAssignee: `Select the Assignee for all the Stages.`,\n    caseResolutionDeadline: `Select the date by which the case should be closed.`,\n  },\n};\n\nexport const DEFAULT_FORM_CONFIG = {\n  placeholder: 'Select forms for this stage',\n  isError: false,\n  errorMessage: '',\n  items: [],\n  isMulti: false,\n  showIndeterminateCheckbox: false,\n  indeterminateCheckboxLabel: '',\n  showChipCapsule: false,\n  action: '',\n};\n\nexport enum SelectionState {\n  EMPTY = 'empty',\n  SELECTED = 'selected',\n  DISABLED = 'disabled',\n}\n\nexport enum SelectionPopupState {\n  DROP_DOWN = 'drop-down',\n  SELECTION_DIALOG = 'selection-dialog',\n}\n\nexport enum ACTION_CODE {\n  RC = 'RC',\n  CC = 'CC',\n}\n\nexport const REPORT_CASE_PAYLOAD: any = {\n  name: '',\n  description: {\n    text: '',\n    attachments: [],\n  },\n  receive_updates: false,\n  rc_details: {\n    ids: [],\n  },\n  occurrence_date: '',\n  case_type: {\n    id: '',\n    custom_fields: [],\n  },\n  priority: {\n    id: '',\n    custom_fields: [],\n  },\n  category: {\n    ids: [],\n    custom_fields: [],\n  },\n  supporting_documents: [],\n  status: 'QUEUED',\n  stage: 'REPORTED',\n  risk_class: 1,\n  caseToWorkflow: {},\n  responsibilities_Linked: [],\n  linked_assessment_issues: {\n    resp_id: '',\n    due_date_id: '',\n    assessment_id: '',\n    question_id: '',\n    auditee_id: 0,\n  },\n  source: '',\n};\n\nexport const ADD_TO_CASE_WORKFLOW = {\n  name: '',\n  description: {\n    text: '',\n    attachments: [],\n  },\n  receive_updates: false,\n  rc_details: {\n    ids: [],\n    separate_rc_cases: false,\n    main_rc_id: '',\n  },\n  occurrence_date: '',\n  case_type: {\n    id: '',\n    custom_fields: [],\n  },\n  priority: {\n    id: '',\n    custom_fields: [],\n  },\n  category: {\n    ids: [],\n    custom_fields: [],\n  },\n  additional_category: {\n    ids: [],\n    custom_fields: [],\n  },\n  supporting_documents: [],\n  stage: 'REPORTED',\n  risk_class: 1,\n  caseToWorkflow: {\n    workflow_id: '',\n    owners: [],\n    assignees: [],\n    assignees_group: [],\n    resolution_deadline: {\n      due_date: '',\n      stages_assignees: [],\n      assignee_remind_before: 1,\n      owner_remind_before: 2,\n    },\n    exception_type: '',\n    associated_risks: {\n      text: '',\n      attachments: [],\n    },\n    oversights: {\n      cc_ids: [],\n      cc_failures_ids: [],\n    },\n    evidence_enabled: false,\n    recommendations: {\n      text: '',\n      attachments: [],\n    },\n  },\n  responsibilities_Linked: [],\n  linked_assessment_issues: {\n    resp_id: '',\n    due_date_id: '',\n    assessment_id: '',\n    question_id: '',\n    auditee_id: 0,\n  },\n  source: '',\n};\n\nexport const ADD_TO_WORKFLOW_PAYLOAD = {\n  workflow_id: '',\n  case_id: '',\n  owners: [],\n  assignees: [],\n  assignees_group: [],\n  resolution_deadline: {\n    due_date: '',\n    stages_assignees: [],\n    assignee_remind_before: 1,\n    owner_remind_before: 2,\n  },\n  exception_type: '',\n  associated_risks: {\n    text: '',\n    attachments: [],\n  },\n  oversights: {\n    cc_ids: [],\n    cc_failures_ids: [],\n  },\n  evidence_enabled: false,\n  recommendations: {\n    text: '',\n    attachments: [],\n  },\n};\n\nexport const EXCEPTION_TYPE = {\n  DESIGN_EXCEPTION: 'DESIGN_EXCEPTION',\n  EFFECTIVENESS_EXCEPTION: 'EFFECTIVENESS_EXCEPTION',\n};\n\nexport const SELECTOR_CONFIG = {\n  CASE_CATEGORY: {\n    panelTitle: 'Select a Case Category',\n    entitySingular: 'Category selected.',\n    entityPlural: 'Categories selected.',\n    displayKey: 'name',\n    identifierKey: '_id',\n    parentKey: 'parent_id',\n    parentDisplayKey: 'name',\n    searchPlaceholder: 'Search a Case Category.',\n    noDataText: 'No case categories found.',\n  },\n};\n\nexport const OVERSIGHT_SELECTOR_CONFIG = {\n  panelTitle: 'Select user(s)',\n  floatingTextSingular: 'User selected',\n  searchPlaceholder: 'Search User',\n  searchEnabled: true,\n  selectAllEnabled: true,\n  noDataText: 'No Users Found',\n};\n\nexport const HELPER_TEXT = {\n  transition_status: `This setting defines the origin and final status for each stage as it transitions through the case workflow.`,\n  assignee: `These are the users responsible for handling specific stages. They can submit forms, complete tasks, and advance the case through the workflow.`,\n  deadline: `This is the date by which each stage must be completed.`,\n};\n\nexport const WORKFLOW_DETAILS_PARAMS = {\n  rc_details: { id: '' },\n  case_type: { id: '' },\n  priority: { id: '' },\n  category: { id: '' },\n};\n\nexport const SIDE_SELECTOR_ELEMENTS = [\n  'CASE_CATEGORY',\n  'CASE_RC',\n  'CASE_CC',\n  'CASE_FCC',\n];\n\nexport const RISK_CLASSIFICATION = [\n  { name: 'LOW', value: 1, class: 'low' },\n  { name: 'LOW-Medium', value: 2, class: 'low-med' },\n  { name: 'Medium-High', value: 3, class: 'med-high' },\n  { name: 'High', value: 4, class: 'high' },\n];\n\nexport const ADDITIONAL_OPTION_STATUS = {\n  EXCEPTION_TYPE: false,\n  EVIDENCE: false,\n  PRIORITY: false,\n  ISSUE_TYPE: false,\n  ASSOCIATED_RISKS: false,\n  OVERSIGHT: false,\n  RECOMMENDED_ACTIONS: false,\n  RISK_CLASSIFICATION: false,\n};\n\nexport const VALIDATION_ERROR = {\n  name: { isError: false, message: '' },\n  description: { isError: false, message: '' },\n  reportDate: { isError: false, message: '' },\n  caseType: { isError: false, message: '' },\n  priority: { isError: false, message: '' },\n  rc: { isError: false, message: '' },\n  mainRc: { isError: false, message: '' },\n  caseOwner: { isError: false, message: '' },\n  caseAssignee: { isError: false, message: '' },\n  caseResolutionDeadline: { isError: false, message: '' },\n};\n\nexport const ACTION_BUTTONS = [\n  { buttonText: 'View Reported Case', class: 'white-btn', id: 'viewCase' },\n  { buttonText: 'Report Another Case', class: 'blue-btn', id: 'reportCase' },\n];\n\nexport const SMILEY_MESSAGE = `You're all set!`;\n\nexport const ADD_TO_WORKFLOW_MOCK = {\n  workflow_id: '64ae7338c0f748d1953c1e57',\n  owners: ['6389c5b6f857cb0008fdc61e'],\n  assignees: [\n    '65013e505a32770008d6c456',\n    '65013e7280ea020008a24a60',\n    '668be4220e572d000803870e',\n    '65013e3a5a32770008d6c3cc',\n  ],\n  assignees_group: [\n    '6764efc150a0eb0008439d46',\n    '676437b528932d0008822426',\n    '6762ab74b459790008e21e8e',\n  ],\n  resolution_deadline: {\n    due_date: '2024-12-02T18:30:00.000Z',\n    stages_assignees: [\n      {\n        stage_id: '6759372573628bf898a3ed0q',\n        assignee_id: '65013e7280ea020008a24a60',\n        due_date: '2024-12-20T06:23:01.076Z',\n      },\n      {\n        stage_id: '6759372573628bf898a3ed0r',\n        assignee_id: '65013e505a32770008d6c456',\n        due_date: '2024-12-20T06:23:01.076Z',\n      },\n      {\n        stage_id: '6759372573628bf898a3ed0s',\n        assignee_id: '65013e7280ea020008a24a60',\n        due_date: '2024-12-20T06:23:01.076Z',\n      },\n    ],\n    assignee_remind_before: 5,\n    owner_remind_before: 10,\n  },\n  exception_type: 'DESIGN_EXCEPTION',\n  associated_risks: {\n    text: 'efffffffffffffffffffffffffffffffffffffffffffffffffff&nbsp; &nbsp; &nbsp;bbbbbbbbb',\n    attachments: [],\n  },\n  oversights: {\n    cc_ids: ['65013e7280ea020008a24a60', '668be4220e572d000803870e'],\n    cc_failures_ids: ['6389c5b6f857cb0008fdc61e', '65013dfe80ea020008a249a6'],\n  },\n  evidence_enabled: true,\n  recommendations: {\n    text: 'wwwwwwwwwwwwwwwwwwwwwwwwwwwjwjjjjj',\n    attachments: [],\n  },\n};\n\nexport const EMAIL_REMINDERS = {\n  email_reminder: 1,\n  escalation_email_reminder: 2,\n};\n\nexport const FIELD_SELECTOR = [\n  'category',\n  'RC',\n  'additionalCategory',\n  'CASE_CC',\n  'CASE_FCC',\n  'CASE_OWNER',\n  'CASE_ASSIGNEE',\n  'CASE_RESOLUTION_DEADLINE',\n  'LINK_MORE_RESPONSIBILITY',\n];\n\nexport const MONTH_NAMES = [\n  'Jan',\n  'Feb',\n  'Mar',\n  'Apr',\n  'May',\n  'Jun',\n  'Jul',\n  'Aug',\n  'Sep',\n  'Oct',\n  'Nov',\n  'Dec',\n];\n\nexport const BANNER_CASE_RESOLUTION_DEADLINE_WARNING =\n  'Note: Please ensure that the case resolution deadline is not set before the associated task due date within this case.';\n\nexport const WORKFLOW_ID_PARAM = '?hasWorkflow=true';","import { Injectable, Optional } from '@angular/core';\nimport { catchError, map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Configurations } from '../../configurations';\nimport { API_URLS } from '../constants/api.constants';\nimport { WORKFLOW_ID_PARAM } from '../constants/report-case.constants';\nimport { AuthService } from '../../workflow-services/auth.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ReportACaseService {\n  private getAllTypes$: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n  private getAllPriorities$: BehaviorSubject<any> = new BehaviorSubject<any>(\n    null\n  );\n  private getAllCategories$: BehaviorSubject<any> = new BehaviorSubject<any>(\n    null\n  );\n  private workflowSubject = new BehaviorSubject<any>(null);\n  workflow$ = this.workflowSubject.asObservable();\n  public workflowCode: Subject<string> = new Subject<string>();\n  public resetMoreOption: Subject<boolean> = new Subject<boolean>();\n  public caseTypeLoader: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n  env: any;\n\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    this.env = config?.envConfig;\n  }\n\n  private fetchAllTypes(): Observable<any> {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService?.getAuthorizationToken()\n    );\n    return this.http\n      .get(this.env.case + API_URLS.GET_ALL_TYPES, {\n        headers,\n      })\n      .pipe(\n        map((res: any) => {\n          this.getAllTypes$.next(res);\n          return res;\n        })\n      );\n  }\n\n  private fetchAllPriorities(): Observable<any> {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService?.getAuthorizationToken()\n    );\n    return this.http\n      .get(this.env.case + API_URLS.GET_ALL_PRIORITIES, {\n        headers,\n      })\n      .pipe(\n        map((res: any) => {\n          this.getAllPriorities$.next(res);\n          return res;\n        }),\n        catchError((error) => {\n          console.error(error);\n          return error;\n        })\n      );\n  }\n\n  private fetchAllCategories(): Observable<any> {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService?.getAuthorizationToken()\n    );\n    return this.http\n      .get(this.env.case + API_URLS.GET_ALL_CATEGORIES, {\n        headers,\n      })\n      .pipe(\n        map((res: any) => {\n          this.getAllCategories$.next(res);\n          return res;\n        })\n      );\n  }\n\n  public getAllCategories(): Observable<any> {\n    if (this.getAllCategories$?.getValue()) {\n      return of(this.getAllCategories$?.value);\n    }\n    return this.fetchAllCategories();\n  }\n\n  public getAllTypes(): Observable<any> {\n    if (this.getAllTypes$?.getValue()) {\n      return of(this.getAllTypes$?.value);\n    }\n    return this.fetchAllTypes();\n  }\n\n  public getAllPriorities(): Observable<any> {\n    if (this.getAllPriorities$?.getValue()) {\n      return of(this.getAllPriorities$?.value);\n    }\n    return this.fetchAllPriorities();\n  }\n\n  reportACase(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    const caseEndpoint = this.env.case + '?serviceType=1';\n    return this.http.post<any>(caseEndpoint, payload, {\n      headers,\n    });\n  }\n\n  public addCaseToWorkflow(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post<any>(this.env.case + API_URLS.ADD_CASE_TO_WORKFLOW, payload, {\n      headers,\n    });\n  }\n\n  public updateCase(payload: any, caseId: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.put<any>(this.env.case + '/' + caseId, payload, {\n      headers,\n    });\n  }\n\n  getWorkflowDetails(params: any, workflow_id?: string) {\n    const payloadObj = { ...params };\n    if (workflow_id) {\n      payloadObj.workflow_id = { id: workflow_id };\n    }\n    \n    const payload = JSON.stringify(payloadObj);\n\n    // Set the required headers, including the custom \"Payload-Object\"\n    const headers = new HttpHeaders()\n      .set('token', this.authService.getAuthorizationToken())\n      .set('Payload-Object', payload);\n\n    const url = `${this.env.case}${API_URLS.GET_STAGE_DETAILS}${workflow_id ? WORKFLOW_ID_PARAM : ''}`;\n\n    return this.http\n      .get(url, {\n        headers,\n      })\n      .subscribe((res: any) => {\n        this.workflowSubject.next(res);\n      });\n  }\n\n  getCaseOwners(workflow_id: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.get(\n      this.env.organizationGet + API_URLS.GET_CASE_OWNERS + workflow_id,\n      {\n        headers,\n      }\n    );\n  }\n\n  getCaseDetails(caseId: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.get(this.env.case + '/' + caseId, {\n      headers,\n    });\n  }\n\n  validateCaseDeadline(caseId: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.get(\n      this.env.case + API_URLS.VALIDATE_CASE_DEADLINE + caseId,\n      {\n        headers,\n      }\n    );\n  }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Configurations } from '../configurations';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { AuthService } from '../workflow-services/auth.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ApiService {\n  public env: any;\n\n  public loggedUserDetail$: BehaviorSubject<any | null> = new BehaviorSubject<\n    any | null\n  >(null);\n\n  constructor(\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    this.env = config?.envConfig;\n    this.getUserDetails();\n  }\n\n  //fetch logged in user details\n  public getUserDetails() {\n    this.authService.getUserInfo().subscribe((data: any) => {\n      if (data) {\n        this.loggedUserDetail$.next(data);\n      }\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiService } from './api.service';\nimport { map } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class RbacService {\n  permissions: any = {};\n  data: any;\n  constructor(private apiService: ApiService) {}\n\n  /**\n   * Retrieves the RBAC (Role-Based Access Control) permissions for a given module.\n   *\n   * @param MODULE - The module for which to retrieve the permissions. Must be one of the following values:\n   *   - 'assessment'\n   *   - 'audit'\n   *   - 'issue'\n   *   - 'policy'\n   *   - 'risk'\n   *   - 'assurance'\n   *   - 'compliance'\n   *   - 'organization'\n   *\n   * @returns An array of strings representing the permissions for the specified module.\n   */\n  public getRBACPermissions(\n    MODULE:\n      | 'assessment'\n      | 'audit'\n      | 'issue'\n      | 'policy'\n      | 'risk'\n      | 'assurance'\n      | 'compliance'\n      | 'organization'\n      | 'case'\n  ) {\n    if (this.permissions[MODULE]) {\n      return this.permissions[MODULE];\n    }\n    const modulePermissions = this.data?.find(\n      (item: any) => item?.moduleName === MODULE\n    );\n    const PERMISSION_ARRAY: string[] = [];\n\n    // checked if module is active\n    if (modulePermissions?.isActive) {\n      // find all active submodules\n      modulePermissions.subModule\n        ?.filter((subModule: any) => subModule.isActive)\n        .forEach((subModule: any) => {\n          // find all active permissions\n          subModule.permissions\n            ?.filter((permission: any) => permission.enable)\n            .forEach((permission: any) => {\n              PERMISSION_ARRAY.push(permission.code);\n            });\n        });\n    }\n\n    this.permissions[MODULE] = PERMISSION_ARRAY;\n    return PERMISSION_ARRAY;\n  }\n\n  getRBACData(\n    MODULE:\n      | 'assessment'\n      | 'audit'\n      | 'issue'\n      | 'policy'\n      | 'risk'\n      | 'assurance'\n      | 'compliance'\n      | 'organization'\n      | 'case'\n  ) {\n    return this.apiService.loggedUserDetail$.pipe(\n      map((data) => {\n        if (data?.roleActions) {\n          this.data = data.roleActions;\n          return this.getRBACPermissions(MODULE);\n        }\n        return [];\n      })\n    );\n  }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { BehaviorSubject, catchError, map, Observable, of, pluck, retry, shareReplay } from 'rxjs';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { Configurations } from '../configurations';\nimport { OrganizationCommonService } from '../workflow-services/common-workflow-services/organization-common.service';\n@Injectable({\n  providedIn: 'root',\n})\nexport class AuthService {\n  public subscriptionDetails: BehaviorSubject<any[]> = new BehaviorSubject<\n    any[]\n  >([]);\n  public userDetails: BehaviorSubject<any> = new BehaviorSubject<any>({});\n  env: any;\n  permissions:any =[];\n\n\n  //VIEW_ASSESSMENT_LIBRARY\n  //MANAGE_ASSESSMENT_LIBRARY\n  //VIEW_ASSESSMENTS\n  //VIEW_ASSESSMENTS\n\n  roleBasedPermission !:any;\n\n  constructor(\n    private http: HttpClient,\n    private authorizer: AuthorizerService,\n    private organizationCommonService: OrganizationCommonService,\n    @Optional() config?: Configurations\n  ) {\n    this.getSubscriptionDetails();\n    this.env = config?.envConfig;\n  }\n  setPermission(){\n    const assessmentPermission = this.roleBasedPermission.filter((ele:any) => ele.moduleName === 'assessment')\n    if(assessmentPermission?.length > 0){\n      const permission = assessmentPermission[0];\n      const allowedFlows:any = []\n      permission.subModule.forEach((ele:any)=>{\n\n        ele.permissions.forEach((subModule:any)=>{\n\n\n          switch(subModule?.code){\n            case 'AALVAL' : {\n\n\n                             if(subModule?.defaultPermission==1 || subModule?.enable==1){allowedFlows.push('VIEW_ASSESSMENT_LIBRARY')};\n                             break;\n                            }\n            case 'AALMAL' : {\n                            if (subModule?.defaultPermission || subModule?.enable){ allowedFlows.push('MANAGE_ASSESSMENT_LIBRARY')};\n                             break;\n                            }\n            case 'AAVA' : {\n                              if(subModule?.defaultPermission || subModule?.enable){ allowedFlows.push('VIEW_ASSESSMENTS')};\n                              break;\n                             }\n            case 'AAMA'  :{\n                            if(subModule?.defaultPermission || subModule?.enable){ allowedFlows.push('MANAGE_ASSESSMENTS')};\n                            break;\n                           }\n\n          }\n        })\n      })\n\n      this.permissions = allowedFlows;\n    }\n  }\n\n  /**\n  * Returns weather the user data loaded or not\n  * @returns\n  */\n  startApp() {\n    return new Promise((resolve, reject) => {\n      this.getUser().subscribe((res: any) => {\n        resolve(true);\n      });\n    });\n  }\n\n  /**\n  * Gets user details\n  * @returns\n  */\n  getUser() {\n    return this.http.get(this.env.organizationGet + 'memberFindbyId&id=' + this.authorizer.getMemberId() ?? '')\n      .pipe(map((res:any) => {\n        this.userDetails.next(res as any);\n\n        this.roleBasedPermission = res?.roleActions ;\n        this.setPermission();\n      }), shareReplay(1)\n      ).pipe(retry(2));\n  }\n\n  getSubscriptionDetails() {\n    return this.organizationCommonService\n      ?.getSubscriptionDetailsInfo()\n      ?.subscribe({\n        next: (res: any) => {\n          this.subscriptionDetails?.next(res as any);\n        },\n        error: (error: Error) => {\n          console.error(error);\n        },\n      });\n  }\n\n  getUserRole(): 'KEY_ADMIN' | 'ADMIN' | 'MANAGER' | 'EXECUTIVE' {\n    if (this.authorizer.isKeyAdmin()) {\n      return 'KEY_ADMIN';\n    } else if (this.authorizer.isAdmin()) {\n      return 'ADMIN';\n    } else if (this.authorizer.isManager()) {\n      return 'MANAGER';\n    } else {\n      return 'EXECUTIVE';\n    }\n  }\n  logout(){\n    this.authorizer.logout()\n  }\n  convertUtcToLocalDateTime(timestamp: string | number) {\n    if (typeof timestamp !== 'string') {\n      let TimeZone = this.authorizer.getUserTimezone()??'';\n      const monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n      const dayName = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n      if (TimeZone === '' || parseInt(timestamp.toString(), 10) <= 0) {\n        return '0';\n      } else {\n        const UTC_TIME = new Intl.DateTimeFormat('en', {\n          timeZone: TimeZone,\n          hour: 'numeric',\n          minute: 'numeric',\n        });\n        const GET_TIME = UTC_TIME.format(new Date(timestamp * 1000));\n\n        const UTC_DATE = new Intl.DateTimeFormat('en', {\n          timeZone: TimeZone,\n        });\n\n        const MY_DATE = UTC_DATE.format(new Date(timestamp * 1000));\n        const date = new Date(MY_DATE);\n        const DAY_NAME = dayName[date.getDay()];\n        let day = date.getDate().toString();\n        day = day.length === 1 ? '0' + day : day;\n        const monthIndex = date.getMonth();\n        const year = date.getFullYear();\n\n        const GET_DATE = day + '-' + monthNames[monthIndex] + '-' + year;\n\n        // const DATE_TIME = GET_DATE + ' ' + GET_TIME ;\n        return GET_DATE;\n      }\n    }\n    return '';\n  }\n  getNotificationDetails(): Observable<number> {\n    return this.http.get<number>(this.env.complianceGet + 'complianceReport/TotalResponsibilityQueue').pipe(retry(2));\n  }\n\n   userId(){\n    return this.authorizer.getUserId()??'';\n   }\n\n   getBussinessCycle() {\n    return this.http.get(this.env.organizationGet + 'orgDetails&id=' + this.getOrgId()).pipe(retry(2));\n  }\n\n  getOrgId(){\n    const userInfo  = this.authorizer.getUser();\n    return userInfo?.organisation_id ? userInfo.organisation_id :null;\n  }\n\n  resetBusinessCycle() {\n    localStorage.removeItem('businessCycle');\n  }\n\n\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { RbacService } from './RBAC.service';\nimport { AuthService } from './auth.service';\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ReportCasePermissionService {\n\n  public hasPermission = new BehaviorSubject<boolean>(false);\n  private rbacSubscription!: Subscription;\n\n  constructor(\n    private rbacService: RbacService,\n    private authService: AuthService\n  ) {\n    this.checkReportACasePermission();\n  }\n\n  ngOnDestroy(): void {\n    this.rbacSubscription?.unsubscribe();\n  }\n\n  checkReportACasePermission() {\n    const hasSubscription = this.checkSubscription();\n    const hasPermission = this.checkRBACPermission();\n    return hasSubscription && hasPermission;\n  }\n\n  checkSubscription() {\n    this.authService.subscriptionDetails.subscribe((data) => {\n      return data[0]?.case_flag;\n    });\n    return true;\n  }\n\n  checkRBACPermission1() {\n    this.rbacService.getRBACData('case').subscribe((data: any[]) => {\n      //   check for manage case permission\n      if(data?.includes('CCMMC')) {\n        this.hasPermission.next(true);\n      }\n      else {\n        this.hasPermission.next(false);\n      }\n      return data?.includes('CCMMC');\n    });\n    return false;\n  }\n\n  checkRBACPermission() {\n    // Remove the immediate return false\n    this.rbacService.getRBACData('case').subscribe((data: any[]) => {\n      const hasPermission = data?.includes('CCMMC');\n      this.hasPermission.next(hasPermission);\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class IframeService {\n  redirectIfInIframe(targetUrl: string, mode: boolean = false): void {\n    // Check if we're in an iframe\n    const isInIframe = window !== window.parent;\n\n    if (isInIframe) {\n      try {\n        // Try to break out of the iframe by redirecting the parent\n        window.parent.location.href = targetUrl;\n      } catch (e) {\n        // If that fails due to cross-origin restrictions, try opening in a new tab/window\n        window.open(targetUrl, '_blank');\n      }\n      return; // Redirect was attempted\n    }\n\n    if (mode) {\n      window.location.href = targetUrl;\n    }\n  }\n\n  public postMessage(message: any) {\n    const targetOrigin = this.getOrigin();\n    window.parent.postMessage(message, targetOrigin);\n  }\n\n  private getOrigin(): string {\n    return window.location.origin;\n  }\n\n  public getCloseWebviewMessage(event: string, data: any) {\n    return {\n      event: event,\n      data: { ...data },\n    };\n  }\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { AuthService } from '../../../workflow-services/auth.service';\nimport { Configurations } from '../../../configurations';\nimport { retry } from 'rxjs';\nimport { AddGrc, AttributesDetails, ListObject } from '../interfaces/add-grc';\nimport dayjs from 'dayjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class GrcService {\n  env!: any;\n  public static readonly EDITOR_CONFIG = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    id: 'grc_description',\n    placeholder: 'Add a description for this GRC Object',\n  };\n  public readonly GRC_PAYLOAD: AddGrc = {\n    name: '',\n    type: 3, //Assets- 0, Inventory- 1, Processes - 2, Vendors- 3\n    state: 0,\n    parent_grc_ids: [],\n    owners: [],\n    email_notification_member_ids: [],\n    description: '',\n    frequency: '',\n    attributes: [],\n    rc_ids: [],\n    program_category_ids: [],\n    risk_category_ids: [],\n    linked_GRC_ids: [],\n  };\n\n  public readonly LIST_OBJECT: ListObject = {\n    RC: {\n      isLoading: false,\n      data: [],\n      selectedData: [],\n    },\n    OWNER: {\n      isLoading: false,\n      data: [],\n      selectedData: [],\n      disabledIds: [],\n    },\n    OTHER_GRC_OBJECTS: {\n      isLoading: false,\n      data: {},\n      selectedData: [],\n    },\n    RISK_CATEGORY: {\n      isLoading: false,\n      data: {},\n      selectedData: [],\n    },\n    PROGRAM_RESPONSIBILITY: {\n      isLoading: false,\n      data: {},\n      selectedData: [],\n    },\n  };\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  getAllResponsibilities(pageNo: number, rcIds: string) {\n    const businessCycle = this.getBusinessCycle();\n    const formattedCycle = businessCycle.selected_cycle\n      ? dayjs(businessCycle.selected_cycle.split('-')[0]).format('YYYY-MM-DD') + \n        ':' + \n        dayjs(businessCycle.selected_cycle.split('-')[1]).format('YYYY-MM-DD')\n      : '';\n    \n    const headers = new HttpHeaders()\n      .set('token', this.authService.getAuthorizationToken())\n      .set('biz_cycle', formattedCycle);\n    return this.http.get<any[]>(\n      this.env.complianceGet + `sailsResponsibilitiesList&limit=-1&rcid=${rcIds}`,\n      { headers }\n    );\n  }\n\n  getGRCList(event?: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    let params = new HttpParams();\n    params = params.append('state', event?.state ?? 1);\n    params = params.append('grcType', event?.type ?? 0);\n    params = params.append('page', event?.pageNo ?? 1);\n    params = params.append('rcIds', event?.rc_ids ?? '');\n    params = event?.searchString\n      ? params.append('name', event?.searchString ?? '')\n      : params;\n    return this.http\n      .get<any[]>(this.env?.grc_get + 'grc/getGRCList', {\n        params,\n        headers,\n      })\n      .pipe(retry(1));\n  }\n\n  getGRCTabsCount(event?: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    let params = new HttpParams();\n    params = event?.searchString\n      ? params.append('name', event?.searchString ?? '')\n      : params;\n    if (event?.rc_ids) {\n      params = params.append('rcIds', event?.rc_ids);\n    }\n    return this.http\n      .get<any[]>(this.env?.grc_get + 'grc/getGRCCount', {\n        params,\n        headers,\n      })\n      .pipe(retry(1));\n  }\n\n  public checkValidation(grcPayload: AddGrc, isAttributesSelected: boolean) {\n    const isValidData =\n      grcPayload.name.trim() !== '' &&\n      grcPayload.type > -1 &&\n      grcPayload.owners.length &&\n      grcPayload.rc_ids.length;\n    return (\n      isValidData &&\n      (!isAttributesSelected ||\n        this.checkAttributeValidation(grcPayload.attributes))\n    );\n  }\n\n  checkAttributeValidation(attributes: AttributesDetails[]): boolean {\n    for (const obj of attributes) {\n      if (obj.isRequired) {\n        if (obj.type === 'single-textbox' || obj.type === 'date-time') {\n          const choice = obj.choices[0];\n          if (typeof choice.value === 'string' && choice.value.trim() === '') {\n            return false;\n          }\n        } else if (obj.type === 'checkbox' || obj.type === 'dropdown') {\n          let isChoiceSelected = false;\n          if (obj.hasOther && obj?.is_other_selected) {\n            isChoiceSelected = true;\n          }\n          if (!isChoiceSelected) {\n            for (const choice of obj.choices) {\n              if (choice.is_selected) {\n                isChoiceSelected = true;\n                break;\n              }\n            }\n          }\n\n          if (!isChoiceSelected) {\n            return false;\n          }\n        }\n      }\n    }\n    return true;\n  }\n\n  checkAttributesSelected(attributes: AttributesDetails[]): boolean {\n    for (const obj of attributes) {\n      if (obj.type === 'single-textbox' || obj.type === 'date-time') {\n        const choice = obj.choices[0];\n        if (typeof choice.value === 'string' && choice.value.trim() === '') {\n          return false;\n        }\n      } else if (obj.type === 'checkbox' || obj.type === 'dropdown') {\n        let isChoiceSelected = false;\n        for (const choice of obj.choices) {\n          if (choice.is_selected) {\n            isChoiceSelected = true;\n            break;\n          }\n        }\n        if (!isChoiceSelected) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n\n  checkEachAttributeValidation(attribute: AttributesDetails): boolean {\n    if (attribute.isRequired) {\n      if (\n        attribute.type === 'single-textbox' ||\n        attribute.type === 'date-time'\n      ) {\n        const choice = attribute.choices[0];\n        if (typeof choice.value === 'string' && choice.value.trim() === '') {\n          return false;\n        }\n      } else if (\n        attribute.type === 'checkbox' ||\n        attribute.type === 'dropdown'\n      ) {\n        let isChoiceSelected = false;\n        for (const choice of attribute.choices) {\n          if (choice.is_selected) {\n            isChoiceSelected = true;\n            break;\n          }\n        }\n        if (!isChoiceSelected) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n  getRiskCategories(event?: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    let params = new HttpParams();\n    params = params.append('returnType', 1);\n    params = params.append('categoryType', event?.type ?? 1);\n    params = params.append('page', event?.pageNo ?? 1);\n    params = event?.type === 0 ? params.append('riskFlag', 1) : params;\n    params = event?.searchString\n      ? params.append('q', event?.searchString ?? '')\n      : params;\n    return this.http.get<any[]>(this.env?.risk + 'category/list', {\n      params,\n      headers,\n    });\n  }\n\n  getRiskCategoriesCount(event?: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    let params = new HttpParams();\n    params = event?.searchString\n      ? params.append('q', event?.searchString ?? '')\n      : params;\n    if (event?.rc_ids?.length) {\n      params = params.set('rc_ids', event.rc_ids.join(','));\n    }\n    return this.http.get<any[]>(this.env?.risk + 'category/count', {\n      params,\n      headers,\n    });\n  }\n\n  getRisks(payload?: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post<any[]>(\n      this.env?.risk + 'category/risklist',\n      payload,\n      {\n        headers,\n      }\n    );\n  }\n\n  getBusinessCycle() {\n    let businessCycle = JSON.parse(\n      localStorage.getItem('businessCycle') ?? '{}'\n    );\n    let currentBusinessCycle = {\n      selected_cycle: businessCycle\n        ? businessCycle?.selectedCycle?.start_date +\n          '-' +\n          businessCycle?.selectedCycle?.end_date\n        : '',\n      start_date: businessCycle ? businessCycle?.selectedCycle?.start_date : '',\n      end_date: businessCycle ? businessCycle?.selectedCycle?.end_date : '',\n      selected_cycle_arr: businessCycle\n        ? businessCycle?.selectedCycle?.selected_cycle_arr\n        : [],\n    };\n    return currentBusinessCycle;\n  }\n\n  getProgramsList(req: any) {\n    // this.getUserDetails();\n    let httpOptions: any = {};\n    if (req?.params) {\n      httpOptions.params = req.params;\n    }\n    if (req?.headers) {\n      let headers = new HttpHeaders();\n      httpOptions.headers = headers.append(\n        'payload-object',\n        JSON.stringify(req.headers)\n      );\n      httpOptions.headers = httpOptions.headers.append(\n        'token',\n        this.authService.getAuthorizationToken()\n      );\n    }\n\n    return this.http\n      .get<any[]>(\n        this.env?.programEndpoint + '/categoriesList?owner_list=1',\n        httpOptions\n      )\n      .pipe(retry(2));\n  }\n\n  getProgramsListCount(req: any) {\n    let httpOptions: any = {};\n    if (req?.params) {\n      httpOptions.params = req.params;\n    }\n    if (req?.headers) {\n      let headers = new HttpHeaders();\n      httpOptions.headers = headers.append(\n        'payload-object',\n        JSON.stringify(req?.headers)\n      );\n      httpOptions.headers = httpOptions.headers.append(\n        'token',\n        this.authService.getAuthorizationToken()\n      );\n    }\n    return this.http\n      .get<any[]>(this.env?.programEndpoint + '/overview-count', httpOptions)\n      .pipe(retry(2));\n  }\n\n  getSubCategoryList(payload: any) {\n    if (payload?.scopeType === 'not_completed') {\n      payload.scopeType = 'notCompleted';\n    }\n    let headers = new HttpHeaders();\n    headers = headers.append(\n      'payload-object',\n      JSON.stringify(payload?.businessCycle)\n    );\n    headers = headers.append('token', this.authService.getAuthorizationToken());\n    return this.http\n      .get<any>(\n        this.env?.programEndpoint +\n          '/subCategories?isBusinessCycle=true&parentId=' +\n          payload?.id +\n          '&type=' +\n          payload?.scopeType +\n          '&callFrom=grc' +\n          (payload?.searchText ? '&q=' + encodeURI(payload?.searchText) : '') +\n          (payload?.name ? '&sortBy=' + payload?.name : '') +\n          (payload?.sortingCount ? '&sortValue=' + payload?.sortingCount : '') +\n          ('&page=' + payload?.page),\n        { headers }\n      )\n      .pipe(retry(1));\n  }\n\n  getResponsibilityByCategoryId(\n    req: any,\n    payload?: any,\n    filterPolicyData?: any\n  ) {\n    // https://devapi.v-comply.com/category/editCategory\n    let httpOptions: any = {};\n    httpOptions.params = req;\n    let headers = new HttpHeaders();\n    // headers = headers.append('x-business-cycle',JSON.stringify(payload));\n    headers = headers.append('payload-object', JSON.stringify(payload));\n    headers = headers.append('token', this.authService.getAuthorizationToken());\n    httpOptions.headers = headers;\n    return this.http\n      .get(this.env?.programEndpoint + '/responsibilityList', httpOptions)\n      .pipe(retry(1));\n  }\n\n  getGRCObjectByGRCId(grcIds: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.get<any[]>(this.env?.grc_get + 'grc/getGRCByGrcId&grcId=' + grcIds, { headers });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport dayjs from 'dayjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BizCycleService {\n    private businessCycle: any;\n    private timeFilter: any;\n    private selectedRange: any;\n    constructor() {\n        this.detectChange();\n    }\n\n    getBusinessCycle() {\n        const businessCycle = JSON.parse(localStorage.getItem('businessCycle') ?? '{}');\n        return businessCycle?.selectedCycle;\n    }\n\n     businessCycleInfo() {\n        if(!this.businessCycle || Object.keys(this.businessCycle)?.length === 0) {\n            this.businessCycle = this.getBusinessCycle();\n        }\n        return this.businessCycle;\n    }\n\n     timeFilterInfo() {\n        if(!this.timeFilter || Object.keys(this.timeFilter)?.length === 0) {\n            this.timeFilter = JSON.parse(localStorage.getItem('timefilter') ?? '{}');\n            if(Object.keys(this.timeFilter)?.length === 0) {\n                this.timeFilter = this.businessCycleInfo();\n            }\n        }\n        return this.timeFilter;\n    }\n\n    selectedRangeInfo() {\n        if(this.selectedRange && Object.keys(this.selectedRange)?.length > 0) {\n            return this.selectedRange;\n        }\n        let timeFilter = this.timeFilterInfo() || {};\n        if(Object.keys(timeFilter)?.length === 0) {\n            timeFilter = this.businessCycleInfo();\n        }\n        this.selectedRange = timeFilter;\n\n        return  {\n            start_date: this.getFormatedDate(timeFilter?.start_date),\n            end_date: this.getFormatedDate(timeFilter?.end_date)\n        };\n    }\n\n    getFormatedDate(date: string) {\n        return dayjs(date, 'DD-MM-YYYY').format('YYYY-MM-DD');\n    }\n\n    reset() {\n        this.businessCycle = {};\n        this.timeFilter = {};\n        this.selectedRange = {};\n    }\n\n    detectChange() {\n        window.addEventListener(\"storage\", () => {\n            this.reset();\n        });\n    }\n}","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { catchError, map, retry } from 'rxjs/operators';\nimport { Configurations } from '../configurations';\nimport { AuthService } from './auth.service';\nimport { AssessmentList } from '../sharedComponents/assessment-list/service/assessment.interface';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { Responsibility } from '../interfaces/responsibilty.interface';\nimport dayjs from 'dayjs';\nimport { GrcService } from '../workflow/shared/services/grc.service';\nimport { BizCycleService } from '../services/biz-cycle.service';\n@Injectable({\n  providedIn: 'root',\n})\nexport class ResponsibilityService {\n  env!: any;\n  dataPerPage = 30;\n  public responsibilityPageNumber: number = 1;\n\n  grcOwners$: BehaviorSubject<any> = new BehaviorSubject<any>([]);\n  public RCList: BehaviorSubject<any> = new BehaviorSubject<any>([]);\n  public AssignorList: BehaviorSubject<any> = new BehaviorSubject<any>([]);\n  public AssuranceListForAudit: BehaviorSubject<any> = new BehaviorSubject<any>(\n    []\n  );\n  public GroupList: BehaviorSubject<any> = new BehaviorSubject<any>([]);\n  public AssuranceCategoryList: BehaviorSubject<any> = new BehaviorSubject<any>(\n    []\n  );\n  private overseerList: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n  private policyGroups: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    private grcService: GrcService,\n    private businessCycleService: BizCycleService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  getResponsibilityCenterList(params?: HttpParams) {\n    if (this.RCList.getValue().length) {\n      return of(this.RCList.getValue());\n    }\n\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env?.organizationGet + 'responsibilityCenterTree', {\n        params,\n        headers,\n      })\n      .pipe(\n        map((res) => {\n          this.RCList.next(res);\n          return res;\n        })\n      )\n      .pipe(retry(2));\n  }\n\n  getOrganizationGroups(params?: HttpParams) {\n    if (this.GroupList.getValue().length) {\n      return of(this.GroupList.getValue());\n    }\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env.organizationGet + 'groupsList&status=1&type=compliance',\n        {\n          params,\n          headers,\n        }\n      )\n      .pipe(\n        map((res) => {\n          this.GroupList.next(res);\n          return res;\n        })\n      )\n      .pipe(retry(2));\n  }\n\n  getOrganizationPolicyGroups(params?: HttpParams) {\n    if (this.policyGroups?.getValue()) {\n      return of(this.policyGroups?.value);\n    }\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env.organizationGet +\n        'groupsList&permType=managePolicies&fetch_all=true',\n        {\n          params,\n          headers,\n        }\n      )\n      .pipe(\n        map((res) => {\n          this.policyGroups.next(res);\n          return res;\n        }),\n        catchError((error) => {\n          return of(null);\n        })\n      )\n      .pipe(retry(2));\n  }\n\n  getOrganizationOverseersGroups(params?: HttpParams) {\n    if (this.overseerList?.getValue()) {\n      return of(this.overseerList?.value);\n    }\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.organizationGet + 'groupsList&fetch_all=true', {\n        params,\n        headers,\n      })\n      .pipe(\n        map((res) => {\n          this.overseerList.next(res);\n          return res;\n        }),\n        catchError((error) => {\n          return of(null);\n        })\n      )\n      .pipe(retry(2));\n  }\n\n  getOrganizationUsers() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.organizationGet + 'organizationUsers', {\n        headers,\n      })\n      .pipe(retry(2));\n  }\n\n  getOrganizationPeople(params?: HttpParams): Observable<any> {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.organizationGet + 'people', {\n        params,\n        headers,\n      })\n      .pipe(retry(2));\n  }\n\n  getAssignorsList(params?: HttpParams) {\n    if (this.AssignorList.getValue().length) {\n      return of(this.AssignorList.getValue());\n    }\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env?.organizationGet + 'organizationUsers&isOnBehalf=1',\n        {\n          params,\n          headers,\n        }\n      )\n      .pipe(\n        map((res) => {\n          this.AssignorList.next(res);\n          return res;\n        })\n      )\n      .pipe(retry(2));\n  }\n\n  getCategoriesList() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env?.complianceGet + 'complianceCategory/CategoryListTree',\n        {\n          headers,\n        }\n      )\n      .pipe(retry(2));\n  }\n  getProgramsList(params: HttpParams, ids?: any) {\n    let headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    const programId = { programId: ids };\n    if (ids?.length) {\n      headers = headers.append('payload-object', JSON.stringify(programId));\n\n      return this.http\n        .post<any[]>(\n          this.env?.compliancePost + 'complianceCategory/programList',\n          programId,\n          { params, headers }\n        )\n        .pipe(retry(2));\n    }\n\n    return this.http\n      .get<any[]>(this.env.complianceGet + 'complianceCategory/programList', {\n        params,\n        headers,\n      })\n      .pipe(retry(2));\n  }\n\n  getProgramsListCount(params: HttpParams, ids?: any) {\n    let headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env.complianceGet + 'complianceCategory/programListCount',\n        {\n          params,\n          headers,\n        }\n      )\n      .pipe(retry(2));\n  }\n  getCategoriesUnderProgram(params: HttpParams) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env.complianceGet + 'complianceCategory/CategoryListTree',\n        {\n          params,\n          headers,\n        }\n      )\n      .pipe(retry(2));\n  }\n  getAssurance() {\n    if (this.AssuranceCategoryList.getValue().length) {\n      return of(this.AssuranceCategoryList.getValue());\n    }\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.assuranceGet + 'category/list&id=1', {\n        headers,\n      })\n      .pipe(\n        map((res) => {\n          this.AssuranceCategoryList.next(res);\n          return res;\n        })\n      )\n      .pipe(retry(2));\n  }\n\n\n  getRCDetailsOfFramework(rc_id: any, category_id: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.get(\n      this.env.complianceGet +\n      'complianceCategory/CategoryRCTreeById&id=' +\n      category_id +\n      '&rc_id=' +\n      rc_id,\n      { headers }\n    );\n  }\n\n  submitEntrust(entrust_body: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post(\n      this.env.compliancePost + 'createReport&serviceType=1',\n      entrust_body,\n      { headers }\n    );\n  }\n  updateEntrust(entrust_body: any, object_id: any, isDelegate: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post(\n      this.env.compliancePost +\n      'createReport&reportId=' +\n      object_id +\n      '&isDelegate=0&serviceType=1',\n      entrust_body,\n      { headers }\n    );\n  }\n\n  editResponsibility(objectId: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get(\n        this.env.complianceGet + 'complianceReport/reportById&id=' + objectId,\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  addBulkResponsibility(entrust_body: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post(\n      this.env.compliancePost + 'import/create&serviceType=1',\n      entrust_body,\n      { headers }\n    );\n  }\n\n  uploadToNode(payload: any, des: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    // return this.http.post<any[]>(this.env.fileUploadEndPoint + 'risk/responsibilityCenterList', { rc_id_arr: rcArray ?? [] }, { headers }).pipe(retry(2));\n    return this.http.post<any>(this.env.fileUploadEndPoint + des, payload, {\n      headers,\n    });\n  }\n\n  getSignedUrl(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post<any>(this.env.compliancePost + 'getS3signedUrl', payload, {\n      headers,\n    });\n  }\n\n  saveToS3(file: File, url: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n\n    return this.http.put(url, file, {\n      headers,\n      observe: 'response'\n    });\n  }\n\n  filesUploading: any[] = [];\n  filesUploaded: any[] = [];\n  filesUploadedAndUploading: any[] = [];\n\n  getCategoryDetailsById(id: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env.complianceGet + 'complianceCategory/CategoryTreeById&id=' + id,\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  getFrameWorkCount(params?: HttpParams) {\n    let httpOptions: any = {};\n    httpOptions.headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    if (params) {\n      httpOptions.params = params;\n    }\n    return this.http\n      .get<any[]>(this.env.programEndpoint + '/frameworkcount', httpOptions)\n      .pipe(retry(2));\n  }\n\n  getFrameWorkList(params: HttpParams) {\n    let httpOptions: any = {};\n    httpOptions.headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    if (params) {\n      httpOptions.params = params;\n    }\n    return this.http\n      .get<any[]>(this.env.programEndpoint + '/framework', httpOptions)\n      .pipe(retry(2));\n  }\n  getFrameworkSubCategories(id: any, params: HttpParams) {\n    let httpOptions: any = {};\n    httpOptions.headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    if (params) {\n      httpOptions.params = params;\n    }\n    return this.http\n      .get<any[]>(this.env.programEndpoint + '/framework/' + id, httpOptions)\n      .pipe(retry(2));\n  }\n\n  getFrameworkControls(id: any, params: HttpParams) {\n    let httpOptions: any = {};\n    httpOptions.headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    if (params) {\n      httpOptions.params = params;\n    }\n    return this.http\n      .get<any[]>(this.env.programEndpoint + '/controls/' + id, httpOptions)\n      .pipe(retry(2));\n  }\n\n  fileUpload(file: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post(this.env.compliancePost + 'file/upload&serviceType=1', file, {\n      headers,\n    });\n  }\n\n  getAssessmentCategory(payload: any, program_ids?: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post(\n        this.env.assessmentEnpoint +\n        'category/list&isCreateResponsibility=true' +\n        (program_ids ? '&program_ids=' + program_ids : ''),\n        payload,\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  getAssessmentList(payload: any, id: string, program_ids?: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<Array<AssessmentList>>(\n        this.env.assessmentEnpoint +\n        'assessment/selectAssessment&isCreateResponsibility=true&catid=' +\n        id +\n        (program_ids ? '&program_ids=' + program_ids : ''),\n        payload,\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  getAssessmentDetailsByID(id: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<Array<AssessmentList>>(\n        this.env.assessmentEnpoint + 'assessment/getAssessmentById&id=' + id + '&serviceType=1',\n        {},\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  getGRCOwnerList() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.get<any[]>(\n      this.env.organizationGet +\n      'organizationMembers&isGrcObject=true&type=all',\n      { headers }\n    );\n  }\n\n  getObjectType() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.get<any[]>(\n      this.env.grc_get + 'grcObject/getGRCTypeList&projected=1',\n      {\n        headers,\n      }\n    );\n  }\n\n  getGRCObjectDetails(id: string) {\n    const businessCycle = this.businessCycleService.getBusinessCycle();\n    const selectedCycle = businessCycle?.selected_cycle\n      ? dayjs(businessCycle.selected_cycle.split('-')[0]).format('YYYY-MM-DD') +\n      ':' +\n      dayjs(businessCycle.selected_cycle.split('-')[1]).format('YYYY-MM-DD')\n      : '';\n    const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken())\n      .set('biz_cycle', selectedCycle);\n    return this.http.get<any[]>(\n      this.env.grc_get + 'grc/grcById&isEdit=true&id=' + id + '&serviceType=1',\n      {\n        headers,\n      }\n    );\n  }\n\n  addGRCObject(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post<any[]>(this.env.grc_get + 'grc/saveGRC&serviceType=1', payload, {\n      headers,\n    });\n  }\n\n  updateGRCObject(payload: any, _id: string) {\n    payload._id = _id;\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.put<any[]>(this.env.grc_get + 'grc/updateGRC&serviceType=1', payload, {\n      headers,\n    });\n  }\n\n  buildResponsibilityPayload(event: any): Responsibility | null {\n    const payload: Responsibility = {\n      title: event.report_name,\n      key: event.is_key_compliance,\n      riskClass: event.risk_class,\n      notes: event.remarks,\n      objective: event.objective,\n      frequency: event.frequency,\n      assignor: event.member_id,\n      assignee: {\n        type: event.isGroupAssignTo ? 'any' : 'all',\n        userId: event.assignee_member_id?.split(','),\n        userGroupId: event.isGroupAssignTo ? event.userGroupIds?.assigneeAnyoneGroupIds : event.userGroupIds?.assigneeAllGroupIdss\n      },\n      responsibilityCenter: event.responsibilityCenterArr?.length ? {\n        type: event.responsibilityCenterType ? 'any' : 'all',\n        id: event.responsibilityCenterArr\n      } : undefined,\n      reviewer: event.reviewer_arr?.level1?.reviewers?.length ? {\n        type: event.reviewer_arr?.level1?.type?.toLowerCase() === 'anyone' ? 'any' : 'sequential',\n        userId: event.reviewer_arr?.level1?.reviewers?.map((reviewer: any) => reviewer?.member_id),\n        frequency: {\n          completeBy: event?.review_after_days,\n          endAfter: event?.review_failed_after_days\n        }\n      } : undefined,\n      overseer: this.getOverseer(event),\n      evidence: {\n        required: event.report_upload_flag,\n        format: {\n          type: event.report_format?.length ? 'file' : (event.link_for_details?.length ? 'link' : ''),\n          data: event?.report_format?.length ? event.report_format : event?.link_for_details\n        }\n      },\n      program: { id: this.transformData(event.selectedCategory), tags: event.custom_tags }\n      ,\n      grcObjectId: event.linked_GRC_ids,\n      assessmentId: event.assessment?.assessment_id,\n      customField: event.custom_tags,\n\n    }\n    return payload;\n  }\n\n  getOverseer(event: any) {\n    if (event.cc_member_email?.length || event.failure_cc_member_email?.length) {\n      return {\n        success: {\n          userId: event.cc_member_email?.split(',')?.filter(Boolean),\n          userGroupId: event.userGroupIds?.ccEmailGroupIds\n        },\n        fail: {\n          userId: event.failure_cc_member_email?.split(',')?.filter(Boolean),\n          userGroupId: event.userGroupIds?.failureCCEmailGroupIds\n        }\n      }\n    }\n    return undefined;\n  }\n\n\n  transformData(input: any) {\n    let result: any = {};\n    Object.entries(input).forEach(([key, value]: any) => {\n      result[key.toString()] = value.map((item: any) => item.id);\n    });\n    return result;\n  }\n\n  getAllResponsibilities() {\n    const businessCycle = this.grcService.getBusinessCycle();\n    const formattedCycle = businessCycle.selected_cycle\n      ? dayjs(businessCycle.selected_cycle.split('-')[0]).format('YYYY-MM-DD') +\n      ':' +\n      dayjs(businessCycle.selected_cycle.split('-')[1]).format('YYYY-MM-DD')\n      : '';\n\n    const headers = new HttpHeaders()\n      .set('token', this.authService.getAuthorizationToken())\n      .set('biz_cycle', formattedCycle);\n    return this.http.get<any[]>(\n      this.env.complianceGet + `sailsResponsibilitiesList&page=${this.responsibilityPageNumber}&limit=-1`,\n      { headers }\n    );\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-radio',\n  templateUrl: './cs-radio.component.html',\n  styleUrls: ['./cs-radio.component.less'],\n})\nexport class CsRadioComponent implements OnInit {\n  @Input() disabled!: boolean;\n  @Input() readonly!: boolean;\n  @Input() name!: string;\n  @Input() checked!: boolean;\n  @Input() value: any;\n  @Output() checkedEvent = new EventEmitter();\n  @Input() oneLine!: boolean;\n  constructor() {}\n\n  ngOnInit(): void {\n\n  }\n  changeState(evt: any) {\n    this.checkedEvent.emit(evt);\n  }\n}\n","<label class=\"radio-item\">\n  <input type=\"radio\" [disabled]=\"disabled\" [disabled]=\"readonly\" [class.enable]=\"readonly\" [name]=\"name\" [value]=\"value\" [checked]=\"checked\" (change)=\"changeState($event)\" />\n  <span class=\"radio\">\n    <span class=\"inner\"></span>\n  </span>\n  <svg class=\"radiomark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" *ngIf=\"!oneLine\">\n    <circle class=\"radiomark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n    <circle class=\"radiomark__check\" cx=\"26\" cy=\"26\" r=\"5\" fill=\"none\" />\n  </svg>\n  <svg id=\"check\" viewBox=\"-281 373 48 48\" *ngIf=\"oneLine\">\n\t\t<path id=\"check-stroke\" d=\"M-273.2,398.2l10,9.9 l22.4-22.3\"/>\n\t</svg>\n  <span class=\"value\"><ng-content></ng-content></span>\n</label>\n","import {\n  Directive,\n  Input,\n  ElementRef,\n  HostListener,\n  Renderer2,\n  OnInit,\n  AfterViewInit,\n  ViewChild,\n} from '@angular/core';\n\n@Directive({\n  selector: '[appTooltip]',\n})\nexport class ToolTipDirective implements OnInit {\n  @Input('appTooltip') tooltipTitle!: string;\n  @Input() placement!: string;\n  @Input() type: any;\n  @Input() tooltipMandatory!: boolean;\n  @Input() showTooltip = true;\n  @Input() animate!: boolean;\n  tooltip!: HTMLElement;\n  offset = 8;\n\n  constructor(private el: ElementRef, private renderer: Renderer2) {}\n  ngOnInit() {}\n  @HostListener('mouseenter') onMouseEnter() {\n    this.hide();\n    this.show();\n  }\n  @HostListener('mouseover') onMouseOver() {\n    this.hide();\n    this.show();\n  }\n\n  @HostListener('mouseleave') onMouseLeave() {\n    this.hide();\n  }\n  @HostListener('mouseout') onMouseOut() {\n    this.hide();\n  }\n  @HostListener('click') onClick() {\n    this.hide();\n  }\n  show() {\n    if (!this.showTooltip || !this.tooltipTitle) {\n      return;\n    }\n    this.create();\n    const element = this.el.nativeElement;\n    if (this.tooltipMandatory === true) {\n      this.setPosition();\n      this.renderer.addClass(this.tooltip, 'wf-tooltip-show');\n    } else {\n      if (\n        element.scrollWidth * element.scrollHeight >\n        element.offsetWidth * element.offsetHeight\n      ) {\n        this.setPosition();\n        this.renderer.addClass(this.tooltip, 'wf-tooltip-show');\n      }\n    }\n  }\n\n  hide() {\n    if (document.body.contains(this.tooltip)) {\n      if (this.renderer) {\n        this.renderer.removeChild(\n          document.body,\n          document.getElementById('tooltip')\n        );\n      }\n    }\n  }\n\n  create() {\n    this.tooltip = this.renderer.createElement('span');\n    this.tooltip.setAttribute('id', 'tooltip');\n    this.tooltip.innerHTML = this.tooltipTitle;\n    this.renderer.appendChild(document.body, this.tooltip);\n    this.renderer.addClass(this.tooltip, 'wf-tooltip');\n    this.renderer.addClass(this.tooltip, `wf-tooltip-${this.placement}`);\n    this.renderer.addClass(this.tooltip, `${this.type}`);\n    if (this.animate) {\n      this.renderer.addClass(this.tooltip, `animate-${this.placement}`);\n    }\n  }\n\n  setPosition() {\n    const hostPos = this.el.nativeElement.getBoundingClientRect();\n    const tooltipPos = this.tooltip.getBoundingClientRect();\n    const scrollPos =\n      window.pageYOffset ||\n      document.documentElement.scrollTop ||\n      document.body.scrollTop ||\n      0;\n    const w = window.innerWidth;\n    const h = window.innerHeight;\n    let top;\n    let left;\n    if (this.placement === 'top') {\n      top = hostPos.top - tooltipPos.height - this.offset;\n      left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n    }\n\n    if (this.placement === 'bottom') {\n      if (hostPos.top + tooltipPos.height > h) {\n        top = hostPos.top - tooltipPos.height;\n        left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n        this.renderer.removeClass(this.tooltip, `wf-tooltip-bottom`);\n        this.renderer.addClass(this.tooltip, `wf-tooltip-top`);\n      } else {\n        top = hostPos.bottom + this.offset;\n        left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n      }\n    }\n\n    if (this.placement === 'left') {\n      top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n      left = hostPos.left - tooltipPos.width - this.offset;\n    }\n\n    if (this.placement === 'right') {\n      top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n      left = hostPos.right + this.offset;\n    }\n    if (this.placement === 'bottom-right') {\n      top = hostPos.bottom + this.offset;\n      left = hostPos.left - (tooltipPos.width - 28);\n    }\n    if (this.placement === 'bottom-left') {\n      if (hostPos.top + tooltipPos.height > h - 30) {\n        top = hostPos.top - tooltipPos.height;\n        left = hostPos.left;\n        this.renderer.removeClass(this.tooltip, `wf-tooltip-bottom-left`);\n        this.renderer.addClass(this.tooltip, `wf-tooltip-top-left`);\n      } else {\n        top = hostPos.bottom + this.offset;\n        left = hostPos.left;\n      }\n    }\n    this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\n    this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\n  }\n}\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { SnackBarService } from './snack-bar.service';\n\n\n@Component({\n  selector: 'app-snack-bar',\n  templateUrl: './snack-bar.component.html',\n  styleUrls: ['./snack-bar.component.less'],\n})\nexport class SnackBarComponent implements OnInit, OnDestroy {\n  show = false;\n  message = '--';\n  icon = '&#xe914;';\n  type='alert'\n  icons:any = {\n    success:'&#xe93d;',\n    warning:'&#xe914;',\n    info:'&#xe932;',\n    alert:'&#xe914;',\n    error:'&#xeaae;'\n  }\n  snackbarSubscription!: Subscription;\n  constructor(private snackbarService: SnackBarService) {}\n\n  ngOnInit(): void {\n    this.snackbarSubscription = this.snackbarService.snackbarState.subscribe((state) => {\n      if(state.icon && Object.keys(this.icons).includes(state?.icon)){\n        this.icon = this.icons[state.icon];\n        this.type = state?.icon;\n      }\n      this.message = state.message;\n      this.show = state.show;\n      this.setAutoClose();\n    });\n  }\n\n  setAutoClose(){\n    setTimeout(() => {\n      this.show = false;\n      this.close();\n    }, 3000);\n  }\n  close() {\n    this.show = false;\n    this.snackbarService.hide();\n  }\n  ngOnDestroy() {\n    this.snackbarSubscription.unsubscribe();\n  }\n}\n","<div class=\"workflow-snackbar\" *ngIf=\"show\">\n  <div class=\"workflow-snackbar-inner\">\n    <div class=\"workflow-snackbarText\">\n      <!-- &#xe914; -->\n      <i class=\"icons\" [class]=\"type\" [innerHTML]=\"icon\"></i> <span [innerHTML]=\"message\">{{ message }}</span>\n    </div>\n    <button (click)=\"close()\">[ <span>Close</span> ]</button>\n  </div>\n</div>","export const FIELD_TEXT = {\n  grcObjectName: 'GRC Object Name',\n  grcObjectPlaceholder: 'Add a GRC object name',\n  grcOwnersTitle: 'Specify Owners',\n  grcOwnersPlaceholder: 'Select a Owner for this GRC Object',\n  grcRCTitle: 'Link Responsibility Center(s)',\n  grcRCPlaceholder: 'Link Responsibility Center(s) with this GRC Object',\n  grcRiskCategoryTitle: 'Link Risks',\n  grcRiskCategoryPlaceholder: 'Link risks with this GRC Object',\n  otherGRCObjectsTitle: 'Link Other GRC Objects',\n  otherGRCObjectsPlaceholder: 'Link other related GRC Objects',\n  grcDescription: 'Add a description for this GRC Object.',\n  riskPlaceholder: 'Link risks with this GRC Object',\n  grcProgramResponsibilityTitle: 'Link Responsibilities',\n  grcProgramResponsibilityPlaceholder:\n    'Link Responsibilities with this GRC Object',\n};\n","const BASE_URL = 'https://cdn.v-comply.com';\n// TODO: add case type asset\n\nexport const ASSETS = {\n  responsibility_center: `${BASE_URL}/libraries/workflow-engine/assets/workflow/responsibility-center.svg`,\n  case_type: `${BASE_URL}/libraries/workflow-engine/assets/workflow/responsibility-center.svg`,\n  case_category: `${BASE_URL}/libraries/workflow-engine/assets/workflow/category.svg`,\n  when: `${BASE_URL}/libraries/workflow-engine/assets/workflow/when.svg`,\n  what: `${BASE_URL}/libraries/workflow-engine/assets/workflow/what.svg`,\n  case_resolution_deadline: `${BASE_URL}/libraries/workflow-engine/assets/workflow/when.svg`,\n  case_assignees: `${BASE_URL}/libraries/workflow-engine/assets/workflow/who.svg`,\n  format_evidence: `${BASE_URL}/libraries/workflow-engine/assets/workflow/format-evidence.svg`,\n  case_owners: `${BASE_URL}/libraries/workflow-engine/assets/workflow/owner.svg`,\n  link_controls: `${BASE_URL}/libraries/workflow-engine/assets/workflow/link-controls.svg`,\n  link_items: `${BASE_URL}/libraries/workflow-engine/assets/workflow/link-items.svg`,\n  spreadsheet_multiple_category: `${BASE_URL}/libraries/workflow-engine/assets/workflow/spreadsheet-multiple-category.svg`,\n  recommended_action: `${BASE_URL}/libraries/workflow-engine/assets/workflow/recommended-action.svg`,\n  risks: `${BASE_URL}/libraries/workflow-engine/assets/workflow/risks.svg`,\n  exception_type: `${BASE_URL}/libraries/workflow-engine/assets/workflow/exception-type.svg`,\n  priority: `${BASE_URL}/libraries/workflow-engine/assets/workflow/priority.svg`,\n  associated_risks: `${BASE_URL}/libraries/workflow-engine/assets/workflow/associated-risks.svg`,\n  oversight: `${BASE_URL}/libraries/workflow-engine/assets/workflow/oversight.svg`,\n  add_risk_more_option: `${BASE_URL}/libraries/workflow-engine/assets/workflow/add-risk-more-option.svg`,\n  lables: `${BASE_URL}/libraries/workflow-engine/assets/workflow/lables.svg`,\n  reviewer: `${BASE_URL}/libraries/workflow-engine/assets/workflow/reviewer.svg`,\n  checkpoints: `${BASE_URL}/libraries/workflow-engine/assets/workflow/checkpoints.svg`,\n  assessments: `${BASE_URL}/libraries/workflow-engine/assets/workflow/assessments.svg`,\n  objectives: `${BASE_URL}/libraries/workflow-engine/assets/workflow/objectives.svg`,\n  audit: `${BASE_URL}/libraries/workflow-engine/assets/workflow/audit.svg`,\n  roles: `${BASE_URL}/libraries/workflow-engine/assets/workflow/roles.svg`,\n  approval: `${BASE_URL}/libraries/workflow-engine/assets/workflow/approval.svg`,\n  recurring: `${BASE_URL}/libraries/workflow-engine/assets/workflow/recurring.svg`,\n  lock_scope: `${BASE_URL}/libraries/workflow-engine/assets/workflow/lock-scope.svg`,\n  custom_fields: `${BASE_URL}/libraries/workflow-engine/assets/workflow/custom-fields.svg`,\n  link_risks: `${BASE_URL}/libraries/workflow-engine/assets/workflow/link-risks.svg`,\n  placeholder: `${BASE_URL}/libraries/workflow-engine/assets/assessment-editor/placeholder.jpg`,\n  add_logic: `${BASE_URL}/libraries/workflow-engine/assets/assessment-editor/add-logic.svg`,\n  image_choice: `https://s3-eu-west-1.amazonaws.com/eu.v-comply.com/o/5e481a5d61ca5e14f5731049/survey/61e78e555024510009bb9009/image-choice/Screenshot-20220119-at-9-09-35-AM1642575490143.png`,\n  logic_image_choice: `https://s3-eu-west-1.amazonaws.com/eu.v-comply.com/o/5e481a5d61ca5e14f5731049/survey/61ea303207da150009a97207/image-choice/Screenshot-20220121-at-9-34-07-AM1642737872051.png`,\n  thank_you_image: `https://s3-eu-west-1.amazonaws.com/eu.v-comply.com/o/5e481a5d61ca5e14f5731049/survey/61ee3c97a973170009458150/welcome/202011270933381643024815820.png`,\n  upload: `${BASE_URL}/libraries/workflow-engine/assets/workflow/upload.svg`,\n  select_users: `${BASE_URL}/libraries/workflow-engine/assets/workflow/select-users.svg`,\n  everyone_as_per_category: `${BASE_URL}/libraries/workflow-engine/assets/workflow/everyone-as-per-category.svg`,\n  bulb: `${BASE_URL}/libraries/workflow-engine/assets/workflow/bulb.svg`,\n  enter_icon: `${BASE_URL}/libraries/workflow-engine/assets/workflow/enter-icon.svg`,\n  im_creating: `${BASE_URL}/libraries/workflow-engine/assets/workflow/im-creating.svg`,\n  notes: `${BASE_URL}/libraries/workflow-engine/assets/workflow/notes.svg`,\n  attestations: `${BASE_URL}/libraries/workflow-engine/assets/workflow/attestations.svg`,\n  risk_category: `${BASE_URL}/libraries/workflow-engine/assets/workflow/risk-category.svg`,\n  issue_type: `${BASE_URL}/libraries/workflow-engine/assets/workflow/issue-type.svg`,\n  type: `${BASE_URL}/libraries/workflow-engine/assets/workflow/type.svg`,\n  search_data: `${BASE_URL}/libraries/workflow-engine/assets/workflow/search-data.svg`,\n  approval_workflow: `${BASE_URL}/libraries/workflow-engine/assets/workflow/approval-workflow.svg`,\n  sequential: `${BASE_URL}/libraries/workflow-engine/assets/workflow/sequential.svg`,\n  round_robin: `${BASE_URL}/libraries/workflow-engine/assets/workflow/round-robin.svg`,\n  anyone: `${BASE_URL}/libraries/workflow-engine/assets/workflow/anyone.svg`,\n  collaborator: `${BASE_URL}/libraries/workflow-engine/assets/workflow/collaborator.svg`,\n};\n","import { ASSETS } from '../../../constants/assets.constants';\n\nexport const LINKS = {\n  grcObjectName: ASSETS.what,\n  grcOwners: ASSETS.case_owners,\n  grcRC: ASSETS.responsibility_center,\n  grcType: ASSETS.type,\n  customFields: ASSETS.custom_fields,\n  noData: ASSETS.search_data,\n  linkOthers: ASSETS.link_items,\n  linkGRC: ASSETS.link_risks,\n  linkPolicyNoDataImage: ASSETS.search_data,\n  linkedPolicyImage: ASSETS.link_items,\n};\n","export const VALIDATION_MESSAGE = {\n  grcObjectName: 'Enter a name for this GRC Object.',\n  grcOwners: 'Select a Owner for this GRC Object.',\n  grcRC: 'Select a Responsibility Center to link with this GRC Object.',\n  grc_exists: 'A GRC Object with this name already exists.',\n  attributes: 'Specify the value for this attribute.',\n};\n","import { Button } from '../interfaces/add-grc';\n\nexport const TABLE_CARD = [\n  {\n    title: 'STRATEGIC RISKS',\n    count: 0,\n    selectedCount: 0,\n    key: 'strategic_risks',\n    type: 1,\n    totalCount: 0,\n  },\n  {\n    title: 'OPERATIONAL RISKS',\n    count: 0,\n    selectedCount: 0,\n    key: 'operational_risks',\n    type: 2,\n    totalCount: 0,\n  },\n  {\n    title: 'COMPLIANCE RISKS',\n    count: 0,\n    selectedCount: 0,\n    key: 'compliance_risks',\n    type: 3,\n    totalCount: 0,\n  },\n  {\n    title: 'OTHER',\n    count: 0,\n    selectedCount: 0,\n    key: 'other',\n    type: 0,\n    totalCount: 0,\n  },\n];\n\nexport const SMILEY_BUTTONS: Button[] = [\n  {\n    buttonText: 'Add More GRC Objects',\n    class: 'white-btn',\n    id: 'addMore',\n  },\n  { buttonText: 'View GRC Objects', class: 'blue-btn', id: 'view' },\n];\n\nexport const OTHER_GRC_CARD = [\n  {\n    title: 'ASSET',\n    count: 0,\n    selectedCount: 0,\n    key: 'asset',\n    type: 0,\n  },\n  {\n    title: 'PROCESS',\n    count: 0,\n    selectedCount: 0,\n    key: 'process',\n    type: 1,\n  },\n  {\n    title: 'VENDOR',\n    count: 0,\n    selectedCount: 0,\n    key: 'vendor',\n    type: 2,\n  },\n  {\n    title: 'INVENTORY',\n    count: 0,\n    selectedCount: 0,\n    key: 'inventory',\n    type: 3,\n  },\n];\n\nexport const OTHER_GRC_TAB_INDEX: any = {\n  assets: 0,\n  processes: 1,\n  vendors: 2,\n  inventory: 3,\n};\n\nexport const GRC_TYPE_ARRAY = ['assets', 'processes', 'vendors', 'inventory'];\n\nexport const UNCATEGORIZED_LINK_CATEGORY = {\n  _id: 'uncategorized',\n  category_type: 0,\n  category_name: 'Uncategorized',\n  name: 'Uncategorized',\n  category_id: [],\n  isSelected: true,\n};\n","export const SUCCESS_MESSAGE = {\n  ADD_GRC_OBJECT: 'The GRC Object has been added.',\n  UPDATE_GRC_OBJECT: 'The GRC Object has been updated.',\n};\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable, OnDestroy, Optional } from '@angular/core';\nimport { BehaviorSubject, catchError, of, map } from 'rxjs';\nimport { AuthService } from '../auth.service';\nimport { Configurations } from '../../configurations';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ComplianceCommonService  {\n  public rcList: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n\n  env: any;\n\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config?.envConfig;\n    }\n  }\n\n  private getRcList(params?: HttpParams, allVisible?: boolean) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService?.getAuthorizationToken()\n    );\n    return this.http\n      .get<any>(\n        this.env?.organizationGet +\n          'responsibilityCenterTree' +\n          (allVisible ? '&isAllVisible=true' : ''),\n        {\n          params,\n          headers,\n        }\n      )\n      .pipe(\n        map((res) => this.setRcList(res)),\n        catchError((error) => {\n          console.error('Error fetching Responsibility Center List', error);\n          return of(null);\n        })\n      );\n  }\n  private setRcList(data: any) {\n    this.rcList?.next(data);\n    return data;\n  }\n\n  public getRcListInfo(params?: HttpParams, allVisible?: boolean) {\n    const currentRcList = this.rcList?.getValue();\n    if (currentRcList) {\n      return of(this.rcList?.value);\n    }\n    return this.getRcList(params, allVisible);\n  }\n\n  extractErrorMessage(str: string) {\n    const staticPart = \"Error in sendCreateResponsibilityRequest: \";\n    \n    if (str.startsWith(staticPart)) {\n      return str.substring(staticPart.length);\n    }\n    \n    return null; // Or return an empty string, depending on your needs\n  }\n}\n","import { ElementRef, Injectable, Optional } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CommonService {\n  datePickerObject = {\n    event: null,\n    class: '',\n    popup: null,\n    component: null,\n    overlay: false,\n  };\n  handleDocumentClick(datePickerObject: any): boolean {\n    const { event, popup, class: className } = datePickerObject || {};\n    const targetElement = event?.target as Element;\n\n    if (!targetElement) return false;\n\n    const dateInputElement = document?.getElementById(className);\n    const datePickerCalendarContainer = document?.querySelector(\n      '.dp-day-calendar-container'\n    );\n    const monthYearElement = document?.querySelector(\n      '.dp-month-calendar-container'\n    );\n\n    const isNotMonthYearElement = !monthYearElement?.contains(targetElement);\n    const isOutsidePopup = !popup?.nativeElement?.contains(targetElement);\n    const isOutsidePopup2 =\n      !popup?.nativeElement?.className.includes('dp-calendar-month');\n\n    const isNotDateInputElement = targetElement !== dateInputElement;\n    const isNotInsideCalendar =\n      !datePickerCalendarContainer?.contains(targetElement);\n    const isNotCalendarMonth =\n      !targetElement ||\n      typeof targetElement?.className !== 'string' ||\n      !targetElement?.className?.includes('dp-calendar-month');\n\n    if (\n      datePickerCalendarContainer &&\n      isNotMonthYearElement &&\n      isOutsidePopup &&\n      isNotDateInputElement &&\n      isNotInsideCalendar &&\n      isNotCalendarMonth &&\n      isOutsidePopup2\n    ) {\n      this.closeDatePickerIfOpen(\n        targetElement,\n        popup,\n        datePickerObject?.overlay,\n        datePickerObject?.component\n      );\n      return true;\n    }\n\n    return false;\n  }\n\n  private closeDatePickerIfOpen(\n    target: any,\n    openedElement: ElementRef,\n    datePickerOverlay: boolean,\n    DatePicker: any\n  ): void {\n    if (\n      !openedElement?.nativeElement?.contains(target) &&\n      DatePicker?.areCalendarsShown\n    ) {\n      DatePicker?.api?.close();\n      datePickerOverlay = false;\n    }\n  }\n\n   /**\n   * Transforms program data to identify added and removed program IDs.\n   * This method compares the current program selection with previously linked programs\n   * to determine which programs have been added or removed.\n   * \n   * @param input - An object containing program selections, where each key represents a category\n   *               and its value is an array of program objects with an 'id' property.\n   * @param linkedProgramIds - Array of previously linked program IDs\n   * \n   * @returns An object containing:\n   *          - added: Array of program IDs that are newly selected\n   *          - removed: Array of program IDs that were previously linked but are no longer selected\n   * \n   * @example\n   * // If input is { category1: [{id: 1}, {id: 2}], category2: [{id: 3}] }\n   * // And linkedProgramIds is [1, 4]\n   * // Returns { added: [2, 3], removed: [4] }\n   */\n  transformProgramData(input: Record<string, Array<{ pid: string }>>, linkedProgramIds: string[] = []): { added: string[]; removed: string[] } {\n  \n    // Flatten all program IDs from input object\n    const currentProgramIds = ([] as { pid: string }[]).concat(...Object.values(input))\n      .map((program: { pid: string }) => program.pid);\n\n    // Use Set for O(1) lookups\n    const linkedSet = new Set(linkedProgramIds);\n    const currentSet = new Set(currentProgramIds);\n\n    // Find added and removed programs using Set operations\n    const added = currentProgramIds.filter((id: string) => !linkedSet.has(id));\n    const removed = linkedProgramIds.filter((id: string) => !currentSet.has(id));\n\n    return { added, removed };\n  }\n\n  transformResponsibilitiesData(currentResponsibilityIds: number[], linkedResponsibilityIds: number[] = []): { added: number[]; removed: number[] } {\n    // Use Set for O(1) lookups\n    const linkedSet = new Set(linkedResponsibilityIds);\n    const currentSet = new Set(currentResponsibilityIds);\n\n    // Find added and removed responsibilities using Set operations\n    const added = currentResponsibilityIds.filter(id => !linkedSet.has(id));\n    const removed = linkedResponsibilityIds.filter(id => !currentSet.has(id));\n\n    return { added, removed };\n  }\n\n  setPagination(res: any) {\n    const { limit, total, page } = res;\n    const responsibilities_from = (page - 1) * limit + 1;\n    const responsibilities_to = page * limit;\n    return {\n      responsibilities_from,\n      responsibilities_to,\n      total_responsibilities: total,\n      total_pages: Math.ceil(total / limit),\n      current_page: page,\n      per_page: limit,\n      total_count: total,\n    }\n  }\n\n  /** \n   * Post Message to parent window\n   * @param message \n   */\n  postMessageToParent(message: any) {\n    window.parent.postMessage(message, this.getOrigin());\n  }\n\n  private getOrigin(): string {\n    return window.location.origin;\n  }\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({\n  selector: '[clickOutside]',\n})\nexport class ClickOutsideDirective {\n  constructor(private elementRef: ElementRef) {}\n  @Output('clickOutside') clickOutside: EventEmitter<any> = new EventEmitter();\n\n  @HostListener('document:click', ['$event.target']) onMouseEnter(targetElement: any) {\n    const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n    if (!clickedInside) {\n      this.clickOutside.emit(null);\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ClickOutsideDirective } from './click-outside.directive';\n\n\n\n@NgModule({\n  declarations: [ClickOutsideDirective],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    ClickOutsideDirective\n  ]\n})\nexport class ClickOutsideModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'dataType'\n})\nexport class DataTypePipe implements PipeTransform {\n\n  transform(value: any, ...args: unknown[]): any {\n    return typeof value;\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'filter',\n})\nexport class FilterPipe implements PipeTransform {\n  transform(value: any, indentfier: any, excludelist: any): any {\n    const key = indentfier;\n    const list = excludelist;\n    if (key && list?.length) {\n      const itemIdsArray = list.map(list[key]);\n      return value.filter((e: any) => !itemIdsArray.includes(e[key]));\n    } else {\n      return value;\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'listMapper',\n  pure: false\n})\nexport class ListMapperPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): unknown {\n\n    const selected = value;\n    const list = args[0];\n    const key = args[1];\n    const x = list.filter((el: any) => selected.includes(el[key]));\n    return x;\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'search',\n})\nexport class SearchPipe implements PipeTransform {\n  transform(items: any[], ...args: any[]): any[] {\n    let searchText = args[0];\n    const searchKey = args[1];\n    if (!items) {\n      return [];\n    }\n    if (!searchText) {\n      return items;\n    }\n    searchText = searchText?.toLowerCase();\n    if (items?.length) {\n      return items.filter((it: any) => {\n        if (!searchKey) {\n          return JSON.stringify(it)?.toLowerCase()?.includes(searchText);\n        } else if (searchKey) {\n          return (\n            it[searchKey]?.toString()?.toLowerCase()?.indexOf(searchText) > -1\n          );\n        }\n      });\n    } else {\n      return [];\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'spaceBreaker'\n})\nexport class SpaceBreakerPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n\n    if(value.length){\n      return value.replace(/&nbsp;/g, '').replace(/\\<br\\s*[\\/]?>/gi, '').trim();\n    }else{\n      return value;\n    }\n\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'uncategorizedFilter'\n})\nexport class UncategorizedFilterPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    if(value){\n     return value.filter((category:any) => category?.category_name != 'uncategorized') \n    }else{\n      return value;\n    }\n  }\n\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { cloneDeep } from 'lodash';\n\n@Pipe({\n  name: 'userFilter'\n})\nexport class UserFilterPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    const key = args[0];\n    const list = cloneDeep(args[1]);\n    list.push(args[2]);\n    if (key && list.length > 0){\n           const itemIdsArray = list.map( (obj: any) => {\n           return obj[key];\n         });\n\n           return value.filter((el: any) =>\n           {\n             return !itemIdsArray.includes(el[key]);\n           });\n        }\n        else{\n          return value;\n        }\n  }\n\n}\n","export const CONSTANTS = {\n  categoryType: [\n    { label: 'REGULATIONS', value: 1 },\n    { label: 'STANDARDS', value: 2 },\n    { label: 'INTERNAL CONTROLS', value: 3 },\n    { label: 'OTHERS', value: 0 },\n  ],\n  performanceCalculation: [\n    { label: 'PAST EVENTS ONLY', value: 'PAST_EVENT' },\n    { label: 'PAST & UPCOMING EVENTS', value: 'UPCOMING_EVENT' },\n  ],\n  dateConfig: {\n    disableKeypress: true,\n    format: 'DD MMM YYYY',\n    unSelectOnClick: true,\n    openOnClick: false,\n    openOnFocus: false,\n    min: new Date().getDate().toString(),\n  },\n  description: {\n    mode: 'basic',\n    colorPalette: true,\n    link: true,\n    file: false,\n    id: 'description',\n    placeholder: 'Add a description for this Program',\n  },\n\n  objective: {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    file: false,\n    id: 'objective',\n    placeholder: 'What is the objective of this program?',\n  },\n  additionalOption: {\n    REVIEWER: false,\n    OVERSEER: false,\n    ASSESSMENT: false,\n    FORMATE_EVIDENCE: false,\n    CUSTOM_FIELDS: false,\n    PROGRAM_FREQUENCY: false,\n    SCOPE_CHANGES: false,\n    RC: false,\n    ROLES: false,\n    OWNERS: false,\n    APPROVER: false,\n    ASSIGNEES: false,\n  },\n};\n\n\nexport const PROGRAM_NAME_ERROR_MESSAGE = 'A program with this name already exists';\nexport const COLLABORATOR_TOOLTIP =`<strong>Collaborators</strong> can only access responsibilities in this program where they are directly involved, such as creator, reviewer, assignor, oversight user, or collaborator.<br>\n        <br>\n        This role is ideal for users who need to work on specific tasks but shouldn't see the entire program’s contents.\n        <br>\n        <br>\n        <em>Example:</em> In an AML (Anti-Money Laundering) program, the Finance lead added as a collaborator will only see responsibilities related to financial reporting or audits they are linked to, not those owned by Legal or Compliance.`;\n\nexport const COLLABORATOR_PLACEHODLER = `Select users that can collaborate in this Program`\n\nexport const COLLABORATOR_TOOLTIP_TEXT = `This user has already been selected as a Program Owner.`;\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { COLLABORATOR_TOOLTIP_TEXT } from '../../../constants';\n\n@Pipe({\n  name: 'tooltipMessage'\n})\nexport class TooltipMessagePipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): unknown {\n    let responsibilityType = args[0];\n    let currentUser = value;\n    let reviewerIds:any = args[1];\n    let overseerIds:any = args[2];\n    let assignorId:any = args[3] ? args[3] : [];\n    let assigneeIds :any = args[4] ? args[4] : [];\n    let member_id :any = args[5] ? args[5] : 'member_id';\n    let isDisabled: boolean = args[6] ? args[6] : false;\n    let openedFrom  = args[7] ?'Program':'responsibility';    \n    switch(responsibilityType) {\n      case \"Assignee\":\n        if(reviewerIds?.includes(currentUser?.[member_id])&& !assignorId?.includes(currentUser?.[member_id])){\n          return \"This user is already selected as the reviewer for this \" + openedFrom + '.';\n        }else if(assignorId?.includes(currentUser?.[member_id]) && reviewerIds?.includes(currentUser?.[member_id])){\n          return \"This user is already selected as the assignor and reviewer for this \" + openedFrom + '.';\n        }\n        if(overseerIds?.includes(currentUser?.[member_id])){\n          return \"This user is already selected as the oversight for this \" + openedFrom + '.';\n        }\n        return currentUser?.member_email ?? currentUser?.employee_email;\n      case \"Reviewer\":\n        if(assigneeIds?.includes(currentUser?.[member_id]) && !assignorId?.includes(currentUser?.[member_id])){\n          return \"This user is already selected as the assignee for this \" + openedFrom + '.';\n        } else if(assignorId?.includes(currentUser?.[member_id]) && assigneeIds?.includes(currentUser?.[member_id])){\n          return \"This user is already selected as the assignor and assignee for this \" + openedFrom + '.'\n        }\n        if(overseerIds?.includes(currentUser?.[member_id])){\n          return \"This user is already selected as the oversight for this \" + openedFrom + '.';\n        }\n        return currentUser?.member_email ?? currentUser?.employee_email;\n      case \"Overseer\":\n        if(assigneeIds?.includes(currentUser?.[member_id]) && !assignorId?.includes(currentUser?.[member_id])){\n          return \"This user is already selected as the assignee for this \" + openedFrom + '.';\n        } else if(assignorId?.includes(currentUser?.[member_id]) && assigneeIds?.includes(currentUser?.[member_id])){\n          return \"This user is already selected as the assignor and assignee for this \" + openedFrom + '.';\n        }\n        if(reviewerIds?.includes(currentUser?.[member_id])&& !assignorId?.includes(currentUser?.[member_id])){\n          return \"This user is already selected as the reviewer for this \" + openedFrom + '.';\n        }else if(assignorId?.includes(currentUser?.[member_id]) && reviewerIds?.includes(currentUser?.[member_id])){\n          return \"This user is already selected as the assignor and reviewer for this \" + openedFrom + '.';\n        }\n        if(assignorId?.includes(currentUser?.[member_id])){\n          return \"This user is already selected as the assignor for this \" + openedFrom + '.';\n        }\n        return currentUser?.member_email ?? currentUser?.employee_email;\n      case \"collaborator\":\n        if(isDisabled){\n          return COLLABORATOR_TOOLTIP_TEXT\n        }\n        return currentUser?.member_email ?? currentUser?.employee_email;\n      default:\n        return isDisabled ? \"\" : currentUser?.member_email ?? currentUser?.employee_email;\n    }\n    return \"\";\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n  name: 'domSanitizer',\n})\nexport class DomSanitizerPipe implements PipeTransform {\n  constructor(private sanitizer: DomSanitizer) {}\n\n  transform(htmlString: string): any {\n    if (!htmlString) {\n      return htmlString;\n    }\n    const cleanString = htmlString.replace(/<[^>]*>/g, '');\n    return cleanString;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'isReadMore',\n  pure: false,\n})\nexport class IsReadMorePipe implements PipeTransform {\n  transform(elementId: string, height: number): unknown {\n    if (\n      (document.getElementById(elementId) ?? { scrollHeight: 0 }).scrollHeight >\n      height\n    ) {\n      return true;\n    }\n    return false;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'within',\n})\nexport class WithinStructurePipe implements PipeTransform {\n  transform(\n    parentId: string,\n    itemList: any[],\n    nameKey: string = 'name',\n    idKey: string = '_id',\n    parentKey: string = 'parent_id'\n  ): string {\n    if (!parentId || !Array.isArray(itemList)) {\n      return '';\n    }\n\n    const itemMap = new Map(itemList.map((item) => [item[idKey], item]));\n    const path: string[] = [];\n    let currentId = parentId;\n\n    while (currentId) {\n      const currentItem = itemMap.get(currentId);\n      if (currentItem) {\n        path.push(currentItem[nameKey]);\n        currentId = currentItem[parentKey];\n      } else {\n        break;\n      }\n    }\n\n    return path.join(' > ');\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { cloneDeep } from 'lodash';\n\n@Pipe({\n  name: 'userPipe'\n})\nexport class UserPipe implements PipeTransform {\n\n  transform(id: any, list: any): any {\n    return list?.find((user: any) => user?._id === id);\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { EditorConfig } from '@vcomply/editor';\n\n\n@Pipe({\n  name: 'getEditorConfig',\n  pure: true\n})\nexport class GetEditorConfigPipe implements PipeTransform {\n  transform(index: number, additionalValue: string): EditorConfig {\n    return   {\n        mode: 'prime',\n        colorPalette: true,\n        link: true,\n        placeholder: 'Add value',\n        id: additionalValue + index\n      };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'formatDate'\n})\nexport class FormatDatePipe implements PipeTransform {\n\n  transform(value: any, format: string = 'short'): string {\n    if (!value) {\n      return '';\n    }\n\n    const date = new Date(value);\n    \n    if (isNaN(date.getTime())) {\n      return '';\n    }\n\n    switch (format) {\n      case 'short':\n        return date.toLocaleDateString();\n      case 'long':\n        return date.toLocaleDateString('en-US', {\n          weekday: 'long',\n          year: 'numeric',\n          month: 'long',\n          day: 'numeric'\n        });\n      case 'time':\n        return date.toLocaleTimeString();\n      case 'datetime':\n        return date.toLocaleString();\n      case 'iso':\n        return date.toISOString();\n      default:\n        return date.toLocaleDateString();\n    }\n  }\n\n} ","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'responsibilityChecked'\n})\nexport class ResponsibilityCheckedPipe implements PipeTransform {\n\n  transform(value: any, selectedResponsibility: any): boolean {\n    const { responsibility, eachAssignee } = value;\n    return (\n      responsibility?.id === selectedResponsibility?.responsibility?.id &&\n      eachAssignee?.assignee === selectedResponsibility?.eachAssignee?.assignee &&\n      eachAssignee?.responsibilityCenter === selectedResponsibility?.eachAssignee?.responsibilityCenter\n    )\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DataTypePipe } from './data-type.pipe';\nimport { FilterPipe } from './filter.pipe';\nimport { ListMapperPipe } from './list-mapper.pipe';\nimport { SearchPipe } from './search.pipe';\nimport { SpaceBreakerPipe } from './space-breaker.pipe';\nimport { UncategorizedFilterPipe } from './uncategorized-filter.pipe';\nimport { UserFilterPipe } from './user-filter.pipe';\nimport { TooltipMessagePipe } from '../workflow-program/create-program-ui/define-framework-listing/pipes/tooltip-message.pipe';\nimport { DomSanitizerPipe } from './dom-sanitizer.pipe';\nimport { IsReadMorePipe } from './is-read-more.pipe';\nimport { WithinStructurePipe } from './within.pipe';\nimport { UserPipe } from './user.pipe';\nimport { GetEditorConfigPipe } from './get-editor-config.pipe';\nimport { FormatDatePipe } from './format-date.pipe';\nimport { ResponsibilityCheckedPipe } from './responsibility-checked.pipe';\n\n@NgModule({\n  declarations: [\n    DataTypePipe,\n    FilterPipe,\n    ListMapperPipe,\n    SearchPipe,\n    SpaceBreakerPipe,\n    UncategorizedFilterPipe,\n    UserFilterPipe,\n    TooltipMessagePipe,\n    DomSanitizerPipe,\n    IsReadMorePipe,\n    WithinStructurePipe,\n    UserPipe,\n    GetEditorConfigPipe,\n    FormatDatePipe,\n    ResponsibilityCheckedPipe\n  ],\n  imports: [CommonModule],\n  exports: [\n    DataTypePipe,\n    FilterPipe,\n    ListMapperPipe,\n    SearchPipe,\n    SpaceBreakerPipe,\n    UncategorizedFilterPipe,\n    UserFilterPipe,\n    TooltipMessagePipe,\n    DomSanitizerPipe,\n    IsReadMorePipe,\n    WithinStructurePipe,\n    UserPipe,\n    GetEditorConfigPipe,\n    FormatDatePipe,\n    ResponsibilityCheckedPipe\n  ],\n})\nexport class PipesModule {}\n\n","import { Component, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ClickOutsideModule } from '../../../../ui-kit/click-outside/click-outside.module';\nimport { PipesModule } from '../../../../../lib/pipes/pipes.module';\n@Component({\n  selector: 'lib-text-field',\n  standalone: true,\n  imports: [CommonModule, FormsModule, ClickOutsideModule, PipesModule],\n  template: `\n    <div\n      class=\"form-group-row\"\n      [class.disabled]=\"disabled\"\n      [class.active]=\"active\"\n      (clickOutside)=\"clickOutside.emit()\"\n    >\n      <!--\n     Field Icons\n     use this component for icons\n     <lib-text-field-icon></lib-text-field-icon>\n-->\n      <ng-content select=\"[field-icons]\"></ng-content>\n\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">\n            {{ titleText }}\n            <!-- <span class=\"required\">*</span> -->\n            <ng-content select=\"[is-required]\"></ng-content>\n          </label>\n          <div [class.select-box]=\"isReadOnly\">\n            <input\n              *ngIf=\"!isEditMode\"\n              type=\"text\"\n              [(ngModel)]=\"textValue\"\n              (change)=\"textValueChange.emit($event.target.value)\"\n              [placeholder]=\"placeholderText | domSanitizer\"\n              [readonly]=\"isReadOnly\"\n              [class.select-input]=\"isReadOnly\"\n              (click)=\"onClick.emit()\"\n            />\n          </div>\n\n          <ng-content select=\"[edit-mode]\"></ng-content>\n          <!--\n        validation error message\n        this element can be rendered\n         <p *ngIf=\"false\" [appScrollInView]=\"true\" class=\"error-message\">\n          Enter a name for this GRC Object.\n      </p>\n      -->\n          <ng-content select=\"[error-message]\"></ng-content>\n          <!--\n      <p *ngIf=\"false\" [appScrollInView]=\"true\" class=\"error-message\">\n          Enter a name for this GRC Object.\n      </p> -->\n          <!-- Marx Editor -->\n          <ng-content select=\"[rich-text-editor]\"></ng-content>\n        </div>\n      </div>\n    </div>\n  `,\n  styleUrls: ['./text-field.component.less', '../../../../forms.less'],\n  inputs: [\n    'titleText',\n    'placeholderText',\n    'textValue',\n    'isReadOnly',\n    'isEditMode',\n    'disabled',\n    'active',\n  ],\n  outputs: ['textValueChange', 'onClick', 'clickOutside'],\n})\nexport class TextFieldComponent {\n  titleText: string = '';\n  placeholderText: string = '';\n  textValue: string = '';\n  isReadOnly: boolean = false;\n  isEditMode: boolean = false;\n  disabled: boolean = false;\n  active: boolean = false;\n\n  textValueChange: EventEmitter<string> = new EventEmitter();\n  onClick: EventEmitter<void> = new EventEmitter();\n  clickOutside: EventEmitter<void> = new EventEmitter();\n}\n","export const SVG_LINKS = {\n  checked: 'http://www.w3.org/2000/svg',\n};\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SVG_LINKS } from '../../constants/svg-link.constant';\n\n@Component({\n  selector: 'lib-text-field-icon',\n  standalone: true,\n  imports: [CommonModule],\n  template: `\n    <div class=\"left\" [class.checked]=\"isChecked\">\n      <img *ngIf=\"!isChecked\" [src]=\"cdnLink\" [alt]=\"altName\" />\n\n      <svg\n        *ngIf=\"isChecked\"\n        class=\"checkIcon\"\n        [xmlns]=\"ALL_SVG_LINKS?.checked\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n  `,\n  styleUrls: ['../../../../forms.less'],\n  inputs: ['cdnLink', 'altName', 'isChecked'],\n})\nexport class TextFieldIconComponent {\n  cdnLink: string = '';\n  altName: string = '';\n  isChecked: boolean = false;\n  ALL_SVG_LINKS = SVG_LINKS;\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PopoverService {\n  positionX!: number;\n  positionY!: number;\n  popoverHeight: any;\n  popoverWidth: any;\n  elementPosition: any;\n  elementDirection: any;\n  constructor() {\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { PopoverService } from './popover.service';\n\n@Component({\n  selector: 'app-popover',\n  templateUrl: './popover.component.html',\n  styleUrls: ['./popover.component.less'],\n})\nexport class PopoverComponent implements OnInit {\n  @Input() dontCloseonClick!: boolean;\n  popoverContainer = false;\n  @ViewChild('popoverRatio') popoverRatio!: ElementRef;\n  @ViewChild('popoverContent') popoverContent!: ElementRef;\n\n  @Output() closePopoverEvent = new EventEmitter<boolean>();\n  \n  constructor(public popoverService: PopoverService) {}\n  showPopover = false;\n  leftValue: any;\n  topValue: any;\n  popoverHeight: any;\n  popoverWidth: any;\n  positionX!: number;\n  positionY!: number;\n  ngOnInit(): void {}\n  popover() {\n    this.popoverContainer = false;\n    this.popoverContainer = true;\n    setTimeout(() => {\n      this.getPosition();\n      this.showPopover = true;\n    }, 10);\n    return false;\n  }\n  popoverEvent() {\n    this.popoverContainer = false;\n    this.popoverContainer = true;\n    setTimeout(() => {\n      this.getPosition();\n      // this.positionX = this.popoverService.positionX;\n      // this.positionY = this.popoverService.positionY;\n      this.showPopover = true;\n    }, 10);\n    return false;\n  }\n  closePopover(top?: string) {\n    if (!this.dontCloseonClick || top === 'top') {\n      this.popoverContainer = false;\n      this.showPopover = false;\n    }\n    if(top === \"top\") {\n      this.closePopoverEvent.emit(true);\n    }\n  }\n  clickedPopover() {\n    this.getPosition();\n  }\n  getPosition() {\n    const elementPositionn = this.popoverService?.elementPosition;\n    this.popoverHeight = this.popoverRatio?.nativeElement?.offsetHeight;\n    this.popoverWidth = this.popoverRatio?.nativeElement?.offsetWidth;\n    if (this.popoverService.elementDirection === 'left') {\n      this.leftValue = elementPositionn.left;\n      if (\n        elementPositionn.top + elementPositionn.height + this.popoverHeight >\n        window.outerHeight - 200\n      ) {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      } else {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      }\n    }\n    if (this.popoverService.elementDirection === 'right') {\n      this.leftValue =\n        elementPositionn.left + elementPositionn.width - this.popoverWidth;\n      if (\n        elementPositionn.top + elementPositionn.height + this.popoverHeight >\n        window.outerHeight - 200\n      ) {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      } else {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      }\n    }\n    if (this.popoverService.elementDirection === 'top') {\n      this.leftValue = elementPositionn.left + elementPositionn.width;\n      if (\n        elementPositionn.top + elementPositionn.height + this.popoverHeight >\n        window.outerHeight - 200\n      ) {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      } else {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      }\n    }\n    if (this.popoverService.elementDirection === 'bottom') {\n      this.leftValue = elementPositionn.left + elementPositionn.width;\n      if (\n        elementPositionn.top + elementPositionn.height + this.popoverHeight >\n        window.outerHeight - 200\n      ) {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      } else {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      }\n    }\n    if (this.popoverService.elementDirection === 'self-position') {\n      this.leftValue =\n        elementPositionn.left +\n        elementPositionn.width / 2 -\n        this.popoverWidth / 2;\n      this.topValue = elementPositionn.top - 15;\n    }\n    if (this.popoverService.elementDirection === 'top-center') {\n      this.leftValue =\n        elementPositionn.left +\n        elementPositionn.width / 2 -\n        this.popoverWidth / 2;\n      if (\n        elementPositionn.top + elementPositionn.height + this.popoverHeight >\n        window.outerHeight\n      ) {\n        this.topValue = elementPositionn.top + elementPositionn.height;\n      } else {\n        this.topValue = elementPositionn.top - this.popoverHeight;\n      }\n    }\n    if (this.popoverService.elementDirection === 'center') {\n      this.leftValue =\n        elementPositionn.left +\n        elementPositionn.width / 2 -\n        this.popoverWidth / 2;\n      this.topValue = elementPositionn.top + elementPositionn.height;\n    }\n    this.positionX = this.leftValue;\n    this.positionY = this.topValue;\n  }\n  @HostListener('window:resize', ['$event'])\n  sizeChange(event: any) {\n    this.popoverContainer = false;\n    this.showPopover = false;\n  }\n}\n","<div class=\"vx-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top')\"></div>\n<div class=\"action\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\n  <div (click)=\"closePopover(); clickedPopover()\" #popoverContent>\n    <ng-content></ng-content>\n  </div>\n</div>\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { PopoverService } from './popover.service';\n\n@Directive({\n  selector: '[appPopover]',\n  // providers: [PopoverService],\n})\nexport class PopoverDirective {\n  dynamicComponent: any;\n  @Input() refrence: any;\n  @Input() placement!: string;\n  leftValue: any;\n  topValue: any;\n  constructor(private elRef: ElementRef, private popoverService: PopoverService) {}\n  @HostListener('click') click() {\n    this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\n    this.popoverService.elementDirection = this.placement;\n    // this.getPosition();\n  }\n  @HostListener('mouseenter') onMouseEnter() {\n    this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\n    this.popoverService.elementDirection = this.placement;\n  }\n  @HostListener('mouseover') onMouseOver() {\n    this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\n    this.popoverService.elementDirection = this.placement;\n  }\n\n  getPosition() {\n    setTimeout(() => {\n      // this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\n      const elementPositionn = this.elRef.nativeElement.getBoundingClientRect();\n      if (this.placement === 'left') {\n        this.leftValue = elementPositionn.left;\n        if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        } else {\n          this.topValue = elementPositionn.top + elementPositionn.height;\n        }\n      }\n      if (this.placement === 'right') {\n        this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverService.popoverWidth;\n        if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        } else {\n          this.topValue = elementPositionn.top + elementPositionn.height;\n        }\n      }\n      if (this.placement === 'top') {\n        this.leftValue = elementPositionn.left + elementPositionn.width;\n        if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        } else {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        }\n      }\n      if (this.placement === 'bottom') {\n        this.leftValue = elementPositionn.left + elementPositionn.width;\n        if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {\n          this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n        } else {\n          this.topValue = elementPositionn.top + elementPositionn.height;\n        }\n      }\n      if (this.placement === 'self-position') {\n        this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\n        this.topValue = elementPositionn.top - 15;\n      }\n      if (this.placement === 'top-center') {\n        this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;\n        this.topValue = elementPositionn.top - this.popoverService.popoverHeight;\n      }\n      this.popoverService.positionX = this.leftValue;\n      this.popoverService.positionY = this.topValue;\n    }, 10);\n  }\n}\n","import {\n  Component,\n  Input,\n  OnInit,\n  Output,\n  EventEmitter,\n  OnChanges,\n} from '@angular/core';\n\n@Component({\n  selector: 'app-floating-bar',\n  templateUrl: './floating-bar.component.html',\n  styleUrls: ['./floating-bar.component.less'],\n})\nexport class FloatingBarComponent implements OnInit, OnChanges {\n  @Input() selectedData: any;\n  @Input() selectedGroups: any;\n  @Input() displayElementKey = '';\n  @Input() elementId: any = '';\n  @Input() singularText = '';\n  @Input() pluralText = '';\n  @Input() showNextButton = true;\n  @Input() showFrequencyText = false;\n  @Input() showWorkflow = false;\n  @Input() workflowText = '';\n  @Input() currentFrequency = '';\n  @Input() isDisabled = false;\n  @Input() workflowList = [\n    'SEQUENTIAL',\n    'ANY REVIEWER CAN MARK THIS AS REVIEWED',\n  ];\n  @Input() selectedWorkflow: any;\n  @Input() workflowPlaceHolder: any;\n  @Input() mode: string = 'CREATE';\n  defaultSelected: any = {};\n  @Input('defaultSelected') set defaultSelectedValue(value: any) {\n    this.defaultSelected = value ? value : {};\n  }\n  @Input() groupsEnabled: any;\n  @Input() isResponsibility: boolean = false;\n\n  @Input() nonRemovableUsersList: any = [];\n  @Input() removePosition: any;\n  @Output() closeEvent: EventEmitter<any> = new EventEmitter();\n  @Output() deleteEvent: EventEmitter<number> = new EventEmitter();\n  @Output() closeList: EventEmitter<any> = new EventEmitter();\n  @Output() deleteGroupEvent: EventEmitter<number> = new EventEmitter();\n  @Output() workflowTypeChanged: EventEmitter<any> = new EventEmitter();\n  constructor() {\n    this.selectedData = [];\n    this.selectedGroups = [];\n  }\n\n  ngOnChanges() {}\n  \n  getDisplayValue(element: any): any {\n    return element?.[this.displayElementKey];\n  }\n  \n  isArray(value: any): boolean {\n    return Array.isArray(value);\n  }\n\n  logRenderedValue(value: any): any {\n    return value;\n  }\n\n  ngOnInit(): void {}\n\n  next() {\n    let selectedData;\n    if (this.selectedGroups?.length > 0) {\n      selectedData = { users: this.selectedData, groups: this.selectedGroups };\n    } else {\n      selectedData = this.selectedData;\n    }\n    this.closeEvent.emit(selectedData);\n  }\n\n  deleteSelected(index: number) {\n    this.deleteEvent.emit(index);\n  }\n  deleteSelectedGroup(index: number) {\n    this.deleteGroupEvent.emit(index);\n  }\n  close() {\n    this.closeList.emit();\n  }\n  selectedWorkflowType(event: any) {\n    // debugger\n  }\n\n  selectedWorkflowChange(event: any) {\n    this.workflowTypeChanged.emit(event);\n  }\n}\n","<div class=\"userGroup-floating-bar\">\n  <div class=\"userGroup-floating-bar-container\">\n    <div class=\"left user-group-left\">\n      <ng-container *ngIf=\"selectedData.length > 0 && !groupsEnabled\">\n        <div\n          class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n        >\n          <ng-container\n            *ngFor=\"let element of selectedData?.slice(0, 1); let i = index\"\n          >\n            <ng-container *ngIf=\"element && !isResponsibility\">\n              <i\n                *ngIf=\"\n                  !nonRemovableUsersList.includes(element[elementId]) &&\n                  removePosition != 'right'\n                \"\n                (click)=\"deleteSelected(element)\"\n                class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                >&#xe9ae;</i\n              >\n              <span\n                class=\"step\"\n                *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n                >{{\n                  selectedData.length <= 2 &&\n                  i == selectedData.length - 1 &&\n                  selectedData.length > 1\n                    ? \"Final\"\n                    : i + 1\n                }}</span\n              >\n              <span\n                *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n                class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"getDisplayValue(element)\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{ logRenderedValue(element[displayElementKey]) }}</span\n              >\n              <ng-container\n                *ngIf=\"\n                  isArray(element[displayElementKey]) &&\n                  element[displayElementKey] &&\n                  element[displayElementKey].length > 0\n                \"\n              >\n              <ng-container\n                *ngIf=\"\n                  element[displayElementKey]\n                    | slice\n                      : element[displayElementKey].length - 1 as lastItem\n                \"\n              >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"logRenderedValue(lastItem)\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{ logRenderedValue(lastItem) }}\n                </span>\n                </ng-container>\n              </ng-container>\n              <i\n                class=\"icons cross vx-fs-12 vx-paragraph-txt vx-ml-1\"\n                *ngIf=\"\n                  !nonRemovableUsersList.includes(element[elementId]) &&\n                  removePosition == 'right'\n                \"\n                (click)=\"deleteSelected(element)\"\n                >&#xe9ae;</i\n              >\n            </ng-container>\n          </ng-container>\n          <button\n            *ngIf=\"selectedData?.length > 1 || (isResponsibility && selectedData?.length > 0)\"\n            class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n            [class.greenBg]=\"false\"\n            appPopover\n            (click)=\"userPopover.popover()\"\n            placement=\"left\"\n          >\n            {{ isResponsibility ? selectedData?.length : selectedData?.slice(1)?.length }}\n          </button>\n        </div>\n\n        <div class=\"name\" *ngIf=\"selectedData?.length > 0\">\n          <span>{{\n            selectedData?.length === 1 ? singularText : pluralText\n          }}</span>\n        </div>\n      </ng-container>\n      <ng-container *ngIf=\"groupsEnabled\">\n        <div class=\"user-group-chip\" *ngIf=\"selectedData?.length\">\n          <i (click)=\"deleteSelected(selectedData[0])\" class=\"icons cross\"\n            >&#xe9ae;</i\n          >\n          <div\n            class=\"user-group-name\"\n            appTooltip=\"{{ selectedData[0][displayElementKey] }}\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"false\"\n          >\n            {{ selectedData[0][displayElementKey] }}\n          </div>\n          <div\n            class=\"counter\"\n            *ngIf=\"selectedData?.length > 1\"\n            appPopover\n            (click)=\"UserWithFeatureFlagPopover.popover()\"\n            placement=\"left\"\n          >\n            +{{ selectedData?.length - 1 }}\n          </div>\n        </div>\n        <div\n          class=\"name userGroup-name\"\n          *ngIf=\"selectedData?.length > 0 && groupsEnabled\"\n        >\n          <span class=\"userGroup-text\" *ngIf=\"selectedData?.length === 1\">\n            {{\n              selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"\"\n            }}</span\n          >\n          <span class=\"userGroup-text\" *ngIf=\"selectedData?.length > 1\"\n            >Users\n            {{\n              selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"selected\"\n            }}</span\n          >\n        </div>\n        <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\n          <i\n            class=\"icons cross\"\n            (click)=\"deleteSelectedGroup(selectedGroups[0])\"\n            >&#xe9ae;</i\n          >\n          <div\n            class=\"user-group-name\"\n            appTooltip=\"{{ selectedGroups[0]?.group_name }}\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"false\"\n          >\n            {{ selectedGroups[0]?.group_name }}\n          </div>\n          <div\n            class=\"counter group\"\n            *ngIf=\"selectedGroups.length > 1\"\n            appPopover\n            (click)=\"groupPopover.popover()\"\n            placement=\"left\"\n          >\n            +{{ selectedGroups.length - 1 }}\n          </div>\n        </div>\n        <div class=\"name userGroup-name\" *ngIf=\"selectedGroups.length > 0\">\n          {{ selectedGroups?.length > 1 ? \" User Groups selected \" : \"\" }}\n        </div>\n      </ng-container>\n      <ng-container *ngIf=\"showFrequencyText\">\n        <div class=\"name vx-ml-0\">\n          <span\n            >You have selected\n            <span class=\"vx-fw-500 vx-label-txt\">{{ currentFrequency }}</span>\n            frequency.</span\n          >\n        </div>\n      </ng-container>\n      <ng-content></ng-content>\n    </div>\n    <div\n      class=\"center\"\n      *ngIf=\"\n        (showWorkflow && mode === 'CREATE') ||\n        (showWorkflow && workflowList.includes('ROUND-ROBIN'))\n      \"\n    >\n      <label>\n        {{ workflowText }}\n        <span\n          class=\"icon\"\n          *ngIf=\"workflowText == 'Approval Workflow'\"\n          libPopoverHover\n          (mouseover)=\"dataTooltip.popover()\"\n          (mouseleave)=\"dataTooltip.closePopover()\"\n          placement=\"right\"\n          ><i class=\"icons\">&#xe91f;</i></span\n        >\n      </label>\n      <popover-hover #dataTooltip>\n        <div class=\"vx-info-card\">\n          <div class=\"vx-info-card-body\">\n            You can select from the following three options:<br />\n            <strong>Sequential:</strong> The policy would be sent for approval\n            one at a time in the sequence defined by you.<br />\n            <strong>Round-robin:</strong> The policy will be sent for approval\n            to all approvers at the same time. However, it is mandatory for all\n            approvers to take action.<br />\n            <strong>Any One:</strong> The policy will be sent for approval to\n            all approvers at the same time. If anyone of the approver approves\n            the policy, it will be considered as approved.\n          </div>\n        </div>\n      </popover-hover>\n      <cs-select\n        [(ngModel)]=\"selectedWorkflow\"\n        (ngModelChange)=\"selectedWorkflowChange($event)\"\n        [placeholder]=\"'Approval WorkFlow *'\"\n        [setMaxWidth]=\"true\"\n      >\n        <cs-option *ngFor=\"let data of workflowList\" [value]=\"data\">\n          {{ data }}\n        </cs-option>\n      </cs-select>\n    </div>\n    <div class=\"right\">\n      <button appRipple class=\"cancel\" (click)=\"close()\">Cancel</button>\n      <button\n        *ngIf=\"showNextButton\"\n        [disabled]=\"isDisabled\"\n        (click)=\"next()\"\n        appRipple\n      >\n        Next <i class=\"icons\">&#xe91e;</i>\n      </button>\n    </div>\n  </div>\n</div>\n<app-popover #userPopover [dontCloseonClick]=\"true\">\n  <div class=\"wf-action-list\">\n    <ul class=\"action-item\">\n      <li *ngFor=\"let element of selectedData?.slice(1); let i = index\">\n        <div class=\"avatar-card\">\n          <span\n            class=\"value\"\n            *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n            [appTooltip]=\" element[displayElementKey]\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"false\"\n          >\n            <i\n              class=\"icons\"\n              *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n              (click)=\"deleteSelected(element)\"\n              >&#xe90d;</i\n            >\n            <span\n              class=\"step\"\n              *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n            >\n              {{ i == selectedData.slice(1).length - 1 ? \"Final\" : i + 2 }}\n            </span>\n            {{ element[displayElementKey] }}\n          </span>\n\n          <span\n            class=\"value\"\n            *ngIf=\"(element[displayElementKey] | dataType) === 'object'\"\n            [appTooltip]=\" element[displayElementKey]\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"false\"\n            \n          >\n            <i\n              class=\"icons\"\n              *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n              (click)=\"deleteSelected(element)\"\n              >&#xe90d;</i\n            >\n            {{ element[displayElementKey] }}\n          </span>\n          <div\n            *ngIf=\"\n              defaultSelected?.category_id &&\n              defaultSelected?.category_id === element?.category_id\n            \"\n            class=\"primary-label\"\n          >\n            PRIMARY\n          </div>\n        </div>\n      </li>\n    </ul>\n  </div>\n</app-popover>\n<app-popover #UserWithFeatureFlagPopover [dontCloseonClick]=\"true\">\n  <div class=\"wf-action-list\">\n    <ul class=\"action-item\">\n      <li *ngFor=\"let data of selectedData | slice : 1\">\n        <div class=\"avatar-card\">\n          <span class=\"value\"\n          [appTooltip]=\"data[displayElementKey]\"\n          placement=\"bottom-left\"\n          delay=\"0\"\n          type=\"black\"\n          [tooltipMandatory]=\"false\"\n            ><i class=\"icons\" (click)=\"deleteSelected(data)\">&#xe90d;</i\n            >{{ data[displayElementKey] }}</span\n          >\n        </div>\n      </li>\n    </ul>\n  </div>\n</app-popover>\n<app-popover #groupPopover [dontCloseonClick]=\"true\">\n  <div class=\"wf-action-list\">\n    <ul class=\"action-item\">\n      <li *ngFor=\"let data of selectedGroups | slice : 1\">\n        <div class=\"avatar-card\">\n          <span class=\"value\"\n          [appTooltip]=\"data['group_name']\"\n          placement=\"bottom-left\"\n          delay=\"0\"\n          type=\"black\"\n          [tooltipMandatory]=\"false\"\n          >\n            ><i class=\"icons\" (click)=\"deleteSelectedGroup(data)\">&#xe90d;</i\n            >{{ data[\"group_name\"] }}</span\n          >\n        </div>\n      </li>\n    </ul>\n  </div>\n</app-popover>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-checkbox',\n  templateUrl: './cs-checkbox.component.html',\n  styleUrls: ['./cs-checkbox.component.less'],\n})\nexport class CsCheckboxComponent implements OnInit {\n  @Input() disabled!: boolean;\n  @Input() ngValue: any;\n  @Input() value: any;\n  @Input() readonly = false;\n  @Output() ngValueChange = new EventEmitter<any>();\n  @Input() oneLine!: boolean;\n  checked: boolean | undefined;\n  constructor() {}\n\n  ngOnInit(): void {}\n  valueChanged() {\n    this.ngValueChange.emit(this.ngValue);\n  }\n\n  chileClick(event: any){\n    event.stopPropagation();\n  }\n}\n","<label class=\"checkbox-item\" [class.disabled]=\"disabled\" (click)=\"chileClick($event)\">\n  <input type=\"checkbox\" [name]=\"value\"  [disabled]=\"disabled\" [disabled]=\"readonly\" [class.enable]=\"readonly\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\n  <span class=\"checkbox\">\n    <span class=\"inner\"></span>\n  </span>\n  <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" *ngIf=\"!oneLine\">\n    <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n    <path class=\"checkmark__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n  </svg>\n  <svg id=\"check\" viewBox=\"-281 373 48 48\" *ngIf=\"oneLine\">\n    <path id=\"check-stroke\" d=\"M-273.2,398.2l10,9.9 l22.4-22.3\"/>\n  </svg>\n  <span class=\"value\"><ng-content></ng-content></span>\n</label>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'app-no-data',\n  templateUrl: './no-data.component.html',\n  styleUrls: ['./no-data.component.less'],\n})\nexport class NoDataComponent {\n  @Input() action!: object;\n  @Input() noDataImage!: string;\n  @Input() noDataText!: string;\n  @Input() noDataButton!: string | boolean;\n  @Input() noDataSecButton!: string | boolean;\n  @Input() altText!: string;\n  @Output() buttonAction = new EventEmitter<any>();\n  @Input() smallButton!: boolean;\n  @Input() button!: any;\n\n  actionEmitter(button: any) {\n    this.buttonAction.emit(button);\n  }\n}\n","<div class=\"no-data-wrapper\">\n  <div class=\"no-data-container\">\n    <img [src]=\"noDataImage\" [alt]=\"altText\" class=\"image\" />\n    <p class=\"text\" [innerHTML]=\"noDataText\" *ngIf=\"noDataText\"></p>\n    <div class=\"button-row\" *ngIf=\"noDataButton\">\n      <button (click)=\"actionEmitter(button)\" [class.small]=\"smallButton\">\n        {{ noDataButton }}\n      </button>\n    </div>\n  </div>\n</div>\n","import { ChangeDetectionStrategy, Component, OnInit, Optional } from '@angular/core';\nimport { Configurations } from '../../../configurations';\n\n@Component({\n  selector: 'app-loader-inline',\n  templateUrl: './loader-inline.component.html',\n  styleUrls: ['./loader-inline.component.less'],\n  // changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoaderInlineComponent implements OnInit {\n  vLoader: any;\n  \n  public env!: any;\n\n  constructor(@Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n    this.vLoader = this.env.vLoader;\n  }\n\n  ngOnInit(): void {}\n}\n","<div class=\"inline-loader\">\n  <img src=\"{{vLoader}}\" alt=\"\" />\n  <div class=\"loader-index\">\n    <div class=\"loader-index-circle\"></div>\n  </div>\n</div>","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { ASSETS } from '../../constants/assets.constants';\n\n@Component({\n  selector: 'app-responsibility-centers-list',\n  templateUrl: './responsibility-centers-list.component.html',\n  styleUrls: ['./responsibility-centers-list.component.less'],\n})\nexport class ResponsibilityCentersListComponent implements OnInit, OnChanges {\n  @ViewChild('listBlock', { static: false }) listBlock!: ElementRef;\n  @Input() responsibilityCentersList = [];\n  @Input() selectedResponsibilityCenters = [];\n  @Input() rcIdKey = '';\n  @Input() radioSelection = false;\n  @Output() saveSelectedList = new EventEmitter();\n  @Output() closeRcList = new EventEmitter();\n  @Input() pluralText: string = 'Responsibility Centers selected';\n  @Input() singularText: string = 'Responsibility Center selected';\n  @Input() loaded: boolean = true;\n  selectedIds: any[] = [];\n  animation = false;\n  search = '';\n  blockWidth: any;\n  ASSETS = ASSETS;\n  constructor() { }\n\n  ngOnChanges(): void {\n    this.selectedIds = this.selectedResponsibilityCenters.map((ele: any) => {\n      if (ele[this.rcIdKey]) {\n        return ele[this.rcIdKey];\n      }\n    });\n  }\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    setTimeout(() => {\n      this.blockWidth = this.listBlock?.nativeElement?.offsetWidth;\n    }, 10);\n  }\n\n  selectRc(rc: any, mode: any) {\n    if (this.radioSelection) {\n      if (mode) {\n        this.selectedIds = [];\n        this.selectedIds.push(rc);\n      }\n      this.setList();\n    } else {\n      if (mode) {\n        this.selectedIds.push(rc);\n      } else {\n        const index = this.selectedIds.findIndex(\n          (element: any) => element == rc\n        );\n        if (index !== -1) {\n          this.selectedIds.splice(index, 1);\n        }\n      }\n      this.setList();\n    }\n  }\n  deleteEvent(event: any) {\n    const index = this.selectedIds.findIndex(\n      (element: any) => element == event[this.rcIdKey]\n    );\n    this.selectedIds.splice(index, 1);\n    this.setList();\n  }\n\n  selectAll(mode: any) {\n    if (mode) {\n      const list = [...this.responsibilityCentersList];\n      this.selectedIds = [];\n      list.forEach((element) => {\n        this.selectedIds.push(element[this.rcIdKey]);\n      });\n    } else {\n      this.selectedIds = [];\n    }\n    this.setList();\n  }\n\n  setList() {\n    const data: any = [];\n    const rcList = cloneDeep(this.responsibilityCentersList);\n    const selectedIds = cloneDeep(this.selectedIds);\n    rcList.forEach((element: any) => {\n      const elementId = element[this.rcIdKey];\n      const isSelected = selectedIds.includes(elementId);\n      \n      if (isSelected) {\n        data.push(element);\n      }\n    });\n    this.selectedResponsibilityCenters = data;\n  }\n\n  checkSelectAll() {\n    const data = this.responsibilityCentersList.every((rc: any) =>\n      this.selectedIds.includes(rc[this.rcIdKey])\n    );\n    return data;\n  }\n\n  save(selectedIds: any) {\n    this.saveSelectedList.emit(selectedIds);\n  }\n\n  close() {\n    this.closeRcList.emit();\n  }\n}\n","<div class=\"add-risk-rc\" [class.animate]=\"animation\">\n  <div class=\"add-risk-rc-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n      Select Responsibility Center(s)\n    </div>\n  </div>\n  <div class=\"add-risk-rc-body\">\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search Responsibility Center\" />\n    </div>\n    <app-loader-inline *ngIf=\"!loaded\"></app-loader-inline>\n\n    <ng-container *ngIf=\"responsibilityCentersList | search : search : 'item_name' as searchList\">\n      <div class=\"body-top\" *ngIf=\"\n          !radioSelection &&\n          searchList?.length > 0 &&\n          search?.trim()?.length === 0\n        \">\n        <app-cs-checkbox [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\"><strong>{{\n            checkSelectAll() ? \"Deselect All\" : \"Select All\"\n            }}</strong>\n        </app-cs-checkbox>\n      </div>\n\n      <ul class=\"add-risk-rc-list\" [class.with-selectAll]=\"\n          !radioSelection &&\n          searchList?.length > 0 &&\n          search?.trim()?.length === 0\n        \" *ngIf=\"searchList?.length > 0\">\n        <ng-container *ngIf=\"!radioSelection\">\n          <li *ngFor=\"let rc of searchList\" #ulElement>\n            <app-cs-checkbox [ngValue]=\"selectedIds.includes(rc.item_id)\"\n              (ngValueChange)=\"selectRc(rc.item_id, $event)\">\n              <ul class=\"add-risk-rc-name\" #listBlock>\n                <!-- [style.max-width.px]=\"blockWidth / rc.rc_name\" -->\n                <li *ngFor=\"let entity of rc.rc_name; let j = index\" [appTooltip]=\"entity\" placement=\"bottom\"\n                  type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\">\n                  <i class=\"icons\" *ngIf=\"j !== 0\">&#xe910;</i>{{ entity }}\n                </li>\n              </ul>\n            </app-cs-checkbox>\n          </li>\n        </ng-container>\n        <ng-container *ngIf=\"radioSelection\">\n          <li *ngFor=\"let rc of searchList\" #ulElement>\n            <app-cs-radio (checkedEvent)=\"selectRc(rc.item_id, $event)\" [checked]=\"selectedIds.includes(rc.item_id)\">\n              <ul class=\"add-risk-rc-name\">\n                <li *ngFor=\"let entity of rc.rc_name; let j = index\" [appTooltip]=\"entity\" placement=\"bottom\"\n                  type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\">\n                  <i class=\"icons\" *ngIf=\"j !== 0\">&#xe910;</i>{{ entity }}\n                </li>\n              </ul>\n            </app-cs-radio>\n          </li>\n        </ng-container>\n      </ul>\n      <app-no-data *ngIf=\"!searchList?.length && loaded\" [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No data to display'\"></app-no-data>\n    </ng-container>\n\n    <app-floating-bar *ngIf=\"loaded\" [selectedData]=\"selectedResponsibilityCenters\" [displayElementKey]=\"'item_name'\"\n      [singularText]=\"singularText\" [pluralText]=\"pluralText\" (closeEvent)=\"save(selectedIds)\"\n      (deleteEvent)=\"deleteEvent($event)\" (closeList)=\"close()\" [isDisabled]=\"\n        selectedResponsibilityCenters?.length === 0 ||\n        responsibilityCentersList?.length === 0\n      \"></app-floating-bar>\n  </div>\n</div>\n\n<!-- <button (click)=\"save(selectedIds)\">Next</button> -->","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { PopoverService } from './popover.service';\n\n@Directive({\n  selector: '[appPopoverEvent]',\n})\nexport class PopoverEventDirective {\n  constructor(private popoverService: PopoverService) {}\n  @HostListener('contextmenu', ['$event']) contextmenu(event: any) {\n    this.getEventPosition(event);\n  }\n  getEventPosition(event: any) {\n    // const container = event.currentTarget;\n    this.popoverService.positionX = event.clientX;\n    this.popoverService.positionY = event.clientY;\n  }\n}\n\n// appPopoverEvent\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\nimport { PopoverService } from './popover.service';\n\n@Directive({\n  selector: '[appPopoverLongpress]',\n})\nexport class PopoverLongpressDirective {\n  getTime: any;\n  currentTime: any;\n\n  timer: any;\n  @Output() longPressPopover = new EventEmitter<any>();\n  constructor(private popoverService: PopoverService) {}\n  @HostListener('mousedown', ['$event']) mousedown(event: any) {\n    this.currentTime = Date.now();\n    this.timer = setInterval(() => {\n      if (Date.now() - this.currentTime > 1000) {\n        this.longPressPopover.emit();\n        clearInterval(this.timer);\n        this.getEventPosition(event);\n      }\n    }, 10);\n  }\n  @HostListener('mouseup') mouseup() {\n    clearInterval(this.timer);\n    this.currentTime = undefined;\n  }\n  getEventPosition(event: any) {\n    this.popoverService.positionX = event.clientX;\n    this.popoverService.positionY = event.clientY;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PopoverComponent } from './popover.component';\nimport { PopoverDirective } from './popover.directive';\nimport { PopoverEventDirective } from './popover-event.directive';\nimport { PopoverLongpressDirective } from './popover-longpress.directive';\nimport { PopoverService } from './popover.service';\n\n@NgModule({\n  declarations: [PopoverComponent, PopoverDirective, PopoverEventDirective, PopoverLongpressDirective],\n  imports: [CommonModule],\n  exports: [PopoverComponent, PopoverDirective, PopoverEventDirective, PopoverLongpressDirective],\n  providers: [PopoverService],\n})\nexport class PopoverModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToolTipDirective } from './tooltip.directive';\n\n@NgModule({\n  declarations: [ToolTipDirective],\n  imports: [CommonModule],\n  exports: [ToolTipDirective],\n})\nexport class TooltipModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FloatingBarComponent } from './floating-bar.component';\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\n\n@NgModule({\n  declarations: [FloatingBarComponent],\n  imports: [CommonModule, PipesModule,PopoverModule, TooltipModule],\n  exports: [FloatingBarComponent],\n})\nexport class FloatingBarModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-switch',\n  templateUrl: './cs-switch.component.html',\n  styleUrls: ['./cs-switch.component.less'],\n})\nexport class CsSwitchComponent {\n  @Input() disabled!: boolean;\n  @Input() ngValue: any;\n  @Input() value: any;\n  @Output() ngValueChange = new EventEmitter<any>();\n  @Input() tooltipMessage: any;\n  @Input() position: any;\n  constructor() {}\n\n  valueChanged() {\n    this.ngValueChange.emit(this.ngValue);\n  }\n}\n","<label class=\"cs-switch\" [class.top]=\"position == 'top'\">\n  <!-- [class.large]=\"large\" -->\n  <span class=\"value\" [class.disabled]=\"disabled\">\n    <ng-content></ng-content>\n  </span>\n  <!-- [class.last]=\"last\" -->\n  <span class=\"switch\" *ngIf=\"tooltipMessage === '' || tooltipMessage === undefined\">\n    <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\n    <span class=\"switch-box\" [class.disabled]=\"disabled\">\n      <span class=\"switch-ball\"></span>\n    </span>\n  </span>\n  <span class=\"switch\" *ngIf=\"tooltipMessage !== '' && tooltipMessage !== undefined\">\n    <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\n    <span class=\"switch-box\" [class.disabled]=\"disabled\">\n      <span class=\"switch-ball\"></span>\n    </span>\n  </span>\n</label>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-radio-group',\n  templateUrl: './cs-radio-group.component.html',\n  styleUrls: ['./cs-radio-group.component.less'],\n})\nexport class CsRadioGroupComponent implements OnInit {\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<app-cs-radio>fefre</app-cs-radio>\n<app-cs-radio>fefre</app-cs-radio>\n<app-cs-radio>fefre</app-cs-radio>\n<app-cs-radio>fefre</app-cs-radio>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'pascal',\n})\nexport class PascalPipe implements PipeTransform {\n  transform(value: string, ...args: unknown[]): unknown {\n    const isStaticData = args[0] as boolean;\n    if (isStaticData) {\n      return '+ Add Custom Fields';\n    }\n    if (typeof value !== 'string') {\n      return value;\n    }\n    return value.charAt(0).toUpperCase() + value.slice(1);\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\n\n@Component({\n  selector: 'app-cs-select',\n  templateUrl: './cs-select.component.html',\n  styleUrls: ['./cs-select.component.less'],\n})\nexport class CsSelectComponent implements OnInit {\n  @Input() dataList!: any[];\n  @Input() dropdownLabel!: string;\n  @Input() displayProperty!: string;\n  @Input() selectedValue!: string;\n  @Input() isRequired!: boolean;\n  @Input() dropdownSubLabel!: string;\n  @Input() isArrowIcon: boolean = true;\n  @Input() isStaticData: boolean = false;\n  @ViewChild('option') option!: ElementRef;\n\n  @Output() selectedData = new EventEmitter();\n  @Output() selectedValueChange = new EventEmitter();\n  @Input() placeholder: any;\n  @Input() stylex: any;\n  @Input() valueKey: any;\n  @Input() colorBlock: any;\n  @Input() colorCode: any;\n\n  dropdownOption = false;\n  positionReset!: boolean;\n  getLeft!: number;\n  getTop!: number;\n  getWidth!: number;\n  maxWidth!: number;\n  activeDoropdown = false;\n\n  private optionList!: ElementRef;\n\n  @ViewChild('optionList') set content(content: ElementRef) {\n    if (content) {\n      // initially setter gets called with undefined\n      this.optionList = content;\n    }\n  }\n  constructor() {}\n\n  ngOnInit(): void {\n    if (\n      this.selectedValue === undefined ||\n      this.selectedValue === '' ||\n      this.selectedValue === null\n    ) {\n      this.selectedValue = '--';\n    }\n  }\n  openDropdown(event: any): void {\n    this.dropdownOption = true;\n    setTimeout(() => {\n      const dropdown = event.target.getBoundingClientRect();\n      const selectOption = this.optionList.nativeElement.offsetHeight;\n      if (dropdown.top + selectOption * 2 > window.innerHeight) {\n        this.getTop = dropdown.top - selectOption;\n      } else {\n        this.getTop = dropdown.top + dropdown.height;\n      }\n      this.getLeft = dropdown.left;\n      this.getWidth = dropdown.width;\n      this.maxWidth = dropdown.width * 1.25;\n      this.activeDoropdown = true;\n    }, 10);\n  }\n  selectOption(selectedData: any) {\n    if (typeof selectedData === 'object') {\n      this.selectedValue = selectedData[this.displayProperty];\n      this.selectedData.emit(selectedData);\n    } else {\n      this.selectedValue = selectedData;\n      this.selectedData.emit(selectedData);\n    }\n    this.dropdownOption = false;\n  }\n  closeDropdown() {\n    this.dropdownOption = false;\n  }\n}\n","<div class=\"input-group\">\n  <label *ngIf=\"dropdownLabel != undefined\">\n    {{ dropdownLabel }} <span class=\"sub-label\">{{ dropdownSubLabel }}</span> <span class=\"required\"\n      *ngIf=\"isRequired\">*</span></label>\n  <div class=\"custom-select-box\">\n    <input type=\"text\" [class.line]=\"stylex\" [placeholder]=\"placeholder\" [value]=\"selectedValue | pascal: isStaticData\"\n      readonly (click)=\"openDropdown($event)\" (keyup.enter)=\"openDropdown($event)\"\n      (keyup.arrowup)=\"openDropdown($event)\" (keyup.arrowdown)=\"openDropdown($event)\" />\n    <span *ngIf=\"isArrowIcon\" class=\"arrow\" [class.line]=\"stylex\">\n      <!-- <i class=\"icons\">&#xe9e8;</i> -->\n    </span>\n    <div class=\"vx-overlay active\" *ngIf=\"dropdownOption === true\" (click)=\"closeDropdown()\"></div>\n    <ul class=\"list-of-option\" *ngIf=\"dropdownOption === true\" #optionList (keyup.Escape)=\"closeDropdown()\"\n      [style.top.px]=\"getTop\" [style.left.px]=\"getLeft\" [style.min-width.px]=\"getWidth\" [style.max-width.px]=\"maxWidth\"\n      [class.active]=\"activeDoropdown\">\n      <li *ngFor=\"let data of dataList\">\n        <label *ngIf=\"colorBlock !== true\">\n          <input type=\"radio\" [value]=\"data[valueKey]\" name=\"sliceLabel\" (change)=\"selectOption(data)\" #option\n            (keyup.enter)=\"closeDropdown()\" class=\"pointer-none\" />\n          <span (click)=\"closeDropdown(); selectOption(data)\" *ngIf=\"displayProperty && displayProperty !== ''\"\n            class=\"value\">{{ data[displayProperty] }}</span>\n          <span (click)=\"closeDropdown(); selectOption(data)\" *ngIf=\"!displayProperty || displayProperty === ''\"\n            class=\"value\">{{ data }}</span>\n        </label>\n        <label *ngIf=\"colorBlock === true\" class=\"colors\">\n          <input type=\"radio\" [value]=\"data[valueKey]\" name=\"sliceLabel\" (change)=\"selectOption(data)\" #option\n            (keyup.enter)=\"closeDropdown()\" class=\"pointer-none\" />\n          <span (click)=\"selectOption(data)\" *ngIf=\"displayProperty && displayProperty !== ''\" class=\"value\"\n            [ngStyle]=\"{ color: colorCode }\">{{ data[displayProperty] }}</span>\n          <span (click)=\"selectOption(data)\" *ngIf=\"!displayProperty || displayProperty === ''\" class=\"value\"\n            [ngStyle]=\"{ color: colorCode }\">{{ data }}</span>\n        </label>\n      </li>\n    </ul>\n  </div>\n</div>","import { Component, OnInit, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-checkbox-indeterminate',\n  templateUrl: './cs-checkbox-indeterminate.component.html',\n  styleUrls: ['./cs-checkbox-indeterminate.component.less']\n})\nexport class CsCheckboxIndeterminateComponent implements OnInit {\n  @Input() disabled!: boolean;\n  @Input() ngValue: any;\n  @Input() value: any;\n  @Output() ngValueChange = new EventEmitter<any>();\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n  valueChanged() {\n    const emitValue = {\n      value: this.value,\n      checked: this.ngValue\n    }\n    this.ngValueChange.emit(emitValue);\n  }\n\n  chileClick(event: any){\n    event.stopPropagation();\n  }\n\n}\n","<label class=\"checkbox-item\" [class.disabled]=\"disabled\" (click)=\"chileClick($event)\">\n    <input type=\"checkbox\" [name]=\"value\" [disabled]=\"disabled\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\n    <span class=\"checkbox\">\n      <span class=\"inner\"></span>\n    </span>\n    <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n      <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n      <path fill=\"none\" d=\"M37.9,27H14v-2h23.9V27z\"/>\n    </svg>\n    <span class=\"value\"><ng-content></ng-content></span>\n  </label>\n  ","import { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CsCheckboxComponent } from './cs-checkbox/cs-checkbox.component';\nimport { CsRadioComponent } from './cs-radio/cs-radio.component';\nimport { CsSwitchComponent } from './cs-switch/cs-switch.component';\nimport { CsRadioGroupComponent } from './cs-radio-group/cs-radio-group.component';\nimport { CsSelectComponent } from './cs-select/cs-select.component';\nimport { PascalPipe } from './pipes/pascal.pipe';\nimport { CsCheckboxIndeterminateComponent } from './cs-checkbox-indeterminate/cs-checkbox-indeterminate.component';\n\n@NgModule({\n  declarations: [\n    CsCheckboxComponent,\n    CsRadioComponent,\n    CsSwitchComponent,\n    CsRadioGroupComponent,\n    CsSelectComponent,\n    PascalPipe,\n    CsCheckboxIndeterminateComponent\n  ],\n  imports: [\n    CommonModule,\n    FormsModule\n  ],\n  exports: [\n    CsCheckboxComponent,\n    CsRadioComponent,\n    CsSwitchComponent,\n    CsRadioGroupComponent,\n    CsSelectComponent,\n    CsCheckboxIndeterminateComponent\n  ],\n})\nexport class FormgroupModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NoDataComponent } from './no-data.component';\n\n@NgModule({\n  declarations: [NoDataComponent],\n  imports: [CommonModule],\n  exports: [NoDataComponent],\n})\nexport class NoDataModule {}\n","import { ChangeDetectionStrategy, Component, OnInit, Optional } from '@angular/core';\nimport { Configurations } from '../../../configurations';\n\n@Component({\n  selector: 'app-loader',\n  templateUrl: './loader.component.html',\n  styleUrls: ['./loader.component.less'],\n  // changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoaderComponent implements OnInit {\n  vLoader: any;\n  \n  public env!: any;\n\n  constructor(@Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n    this.vLoader = this.env.vLoader;\n  }\n\n  ngOnInit(): void {}\n}\n","<div class=\"main-loader\">\n  <img src=\"{{vLoader}}\" alt=\"\" />\n  <div class=\"loader-index\">\n    <div class=\"loader-index-circle\"></div>\n  </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LoaderComponent } from './loader/loader.component';\nimport { LoaderInlineComponent } from './loader-inline/loader-inline.component';\n\n@NgModule({\n  declarations: [LoaderComponent, LoaderInlineComponent],\n  imports: [CommonModule],\n  exports: [LoaderComponent, LoaderInlineComponent],\n})\nexport class VLoaderModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { ResponsibilityCentersListComponent } from './responsibility-centers-list.component';\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { FloatingBarModule } from '../floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\nimport { NoDataModule } from '../no-data/no-data.module';\nimport { VLoaderModule } from '../v-loader/v-loader.module';\n\n@NgModule({\n  declarations: [ResponsibilityCentersListComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    PipesModule,\n    FloatingBarModule,\n    FormgroupModule,\n    NoDataModule,\n    VLoaderModule\n  ],\n  exports: [ResponsibilityCentersListComponent],\n})\nexport class RcListModule {}\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-checkbox',\n  templateUrl: './cs-checkbox.component.html',\n  styleUrls: ['./cs-checkbox.component.less'],\n})\nexport class CsCheckboxComponentUI implements OnInit {\n  @Input() disabled = false;\n  @Input() ngValue!: any;\n  @Input() value: any;\n  @Output() ngValueChange = new EventEmitter<any>();\n  constructor() {}\n\n  ngOnInit(): void {}\n  valueChanged() {\n    this.ngValueChange.emit(this.ngValue);\n  }\n\n  chileClick(event: any){\n    event.stopPropagation();\n  }\n}\n","<label class=\"checkbox-item\" [class.disabled]=\"disabled\" (click)=\"chileClick($event)\">\n  <input type=\"checkbox\" [name]=\"value\" [disabled]=\"disabled\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\n  <span class=\"checkbox\">\n    <span class=\"inner\"></span>\n  </span>\n  <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n    <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n    <path class=\"checkmark__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n  </svg>\n  <span class=\"value\"><ng-content></ng-content></span>\n</label>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-radio',\n  templateUrl: './cs-radio.component.html',\n  styleUrls: ['./cs-radio.component.less'],\n})\nexport class CsRadioComponentUI implements OnInit {\n  @Input() disabled!: boolean;\n  @Input() readonly!: boolean;\n  @Input() name!: string;\n  @Input() checked!: boolean;\n  @Input() value: any;\n  @Output() checkedEvent = new EventEmitter();\n  constructor() {}\n\n  ngOnInit(): void {}\n  changeState(evt: any) {\n    this.checkedEvent.emit(evt);\n  }\n}\n","<label class=\"radio-item\" [class.readonly]=\"readonly\">\n  <input type=\"radio\" [disabled]=\"disabled\" [name]=\"name\" [value]=\"value\" [checked]=\"checked\" (change)=\"changeState($event)\" />\n  <span class=\"radio\">\n    <span class=\"inner\"></span>\n  </span>\n  <svg class=\"radiomark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n    <circle class=\"radiomark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n    <circle class=\"radiomark__check\" cx=\"26\" cy=\"26\" r=\"5\" fill=\"none\" />\n  </svg>\n  <span class=\"value\"><ng-content></ng-content></span>\n</label>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-switch',\n  templateUrl: './cs-switch.component.html',\n  styleUrls: ['./cs-switch.component.less'],\n})\nexport class CsSwitchComponentUI {\n  @Input() disabled!: boolean;\n  @Input() ngValue: any;\n  @Input() value: any;\n  @Output() ngValueChange = new EventEmitter<any>();\n  @Input() tooltipMessage: any;\n  @Input() position: any;\n  constructor() {}\n\n  valueChanged() {\n    this.ngValueChange.emit(this.ngValue);\n  }\n}\n","<label class=\"cs-switch\" [class.top]=\"position == 'top'\">\n  <!-- [class.large]=\"large\" -->\n  <span class=\"value\">\n    <span [innerHTML]=\"value\" *ngIf=\"value != undefined\"></span>\n    <!-- <span class=\"notification\" *ngIf=\"!tooltipMessage\" [appTooltip]=\"tooltipMessage\" placement=\"bottom-right\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n        <i class=\"vc-icons\">&#xe9f3;</i>\n      </span> -->\n  </span>\n  <!-- [class.last]=\"last\" -->\n  <span class=\"switch\" *ngIf=\"tooltipMessage === '' || tooltipMessage === undefined\">\n    <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\n    <span class=\"switch-box\">\n      <span class=\"switch-ball\"></span>\n    </span>\n  </span>\n  <span\n    class=\"switch\"\n    *ngIf=\"tooltipMessage !== '' && tooltipMessage !== undefined\"\n    [appTooltip]=\"tooltipMessage\"\n    placement=\"bottom-right\"\n    delay=\"0\"\n    type=\"black\"\n    [tooltipMandatory]=\"true\"\n  >\n    <input type=\"checkbox\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" [disabled]=\"disabled\" />\n    <span class=\"switch-box\">\n      <span class=\"switch-ball\"></span>\n    </span>\n  </span>\n</label>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-radio-group',\n  templateUrl: './cs-radio-group.component.html',\n  styleUrls: ['./cs-radio-group.component.less'],\n})\nexport class CsRadioGroupComponentUI implements OnInit {\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<app-cs-radio>fefre</app-cs-radio>\n<app-cs-radio>fefre</app-cs-radio>\n<app-cs-radio>fefre</app-cs-radio>\n<app-cs-radio>fefre</app-cs-radio>\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({\n  selector: '[clickOutside]',\n})\nexport class ClickOutsideDirective {\n  constructor(private elementRef: ElementRef) {}\n  @Output('clickOutside') clickOutside: EventEmitter<any> = new EventEmitter();\n\n  @HostListener('document:click', ['$event.target']) onMouseEnter(targetElement: any) {\n    const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n    if (!clickedInside) {\n      this.clickOutside.emit(null);\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'pascal',\n})\nexport class PascalPipe implements PipeTransform {\n  transform(value: string, ...args: unknown[]): unknown {\n    if (typeof value !== 'string') {\n      return value;\n    }\n    return value.charAt(0).toUpperCase() + value.slice(1);\n  }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-select',\n  templateUrl: './cs-select.component.html',\n  styleUrls: ['./cs-select.component.less'],\n})\nexport class CsSelectComponentUI implements OnChanges {\n  @Input() dataList!: any[];\n  @Input() dropdownLabel!: string;\n  @Input() displayProperty!: string;\n  @Input() selectedValue!: string;\n  @Input() isRequired!: boolean;\n  @Input() dropdownSubLabel!: string;\n  @Input() disabled!: boolean;\n  @ViewChild('option') option!: ElementRef;\n\n  @Output() selectedData = new EventEmitter();\n  @Output() selectedValueChange = new EventEmitter();\n  @Input() placeholder: any;\n  @Input() stylex: any;\n  @Input() valueKey: any;\n  @Input() multipleSelect: any;\n  @Input() colorProperty!: string;\n\n  @Input() colorSelected!: string;\n  colorCode!: string;\n\n  dropdownOption = false;\n  positionReset!: boolean;\n  getLeft!: number;\n  getTop!: number;\n  getWidth!: number;\n  maxWidth!: number;\n  activeDoropdown = false;\n\n  private optionList!: ElementRef;\n\n  @ViewChild('optionList') set content(content: ElementRef) {\n    if (content) {\n      // initially setter gets called with undefined\n      this.optionList = content;\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['selectedValue']) {\n      this.selectedValue = this.selectedValue || '--';\n    }\n  }\n\n  openDropdown(event: any): void {\n    this.dropdownOption = true;\n    setTimeout(() => {\n      const dropdown = event.target.getBoundingClientRect();\n      const selectOption = this.optionList.nativeElement.offsetHeight;\n      if (dropdown.top + selectOption * 2 > window.innerHeight) {\n        this.getTop = dropdown.top - selectOption;\n      } else {\n        this.getTop = dropdown.top + dropdown.height;\n      }\n      this.getLeft = dropdown.left;\n      this.getWidth = dropdown.width;\n      this.maxWidth = dropdown.width * 1.25;\n    }, 10);\n    setTimeout(() => {\n      this.activeDoropdown = true;\n    }, 100);\n  }\n  selectOption(selectedData: any) {\n    if (typeof selectedData === 'object') {\n      this.selectedValue = selectedData[this.displayProperty];\n      this.colorSelected = selectedData[this.colorProperty];\n    } else {\n      this.selectedValue = selectedData;\n    }\n    this.selectedData.emit(selectedData);\n    this.dropdownOption = false;\n  }\n  closeDropdown() {\n    this.dropdownOption = false;\n  }\n}\n","<div class=\"input-group\" (clickOutside)=\"dropdownOption = false\">\n  <label *ngIf=\"dropdownLabel != undefined\">\n    {{ dropdownLabel }} <span class=\"sub-label\">{{ dropdownSubLabel }}</span> <span class=\"required\" *ngIf=\"isRequired\">*</span></label\n  >\n  <div class=\"custom-select-box\" [class.disabled]=\"disabled\">\n    <input\n      type=\"text\"\n      [class.line]=\"stylex\"\n      [placeholder]=\"placeholder\"\n      [value]=\"selectedValue | pascal\"\n      readonly\n      (click)=\"openDropdown($event)\"\n      (keyup.enter)=\"openDropdown($event)\"\n      (keyup.arrowup)=\"openDropdown($event)\"\n      (keyup.arrowdown)=\"openDropdown($event)\"\n      *ngIf=\"!colorProperty\"\n    />\n    <span class=\"show-label\" *ngIf=\"colorProperty\" (click)=\"openDropdown($event)\">\n      <span class=\"label\" [innerHTML]=\"selectedValue\" [style.backgroundColor]=\"colorSelected + '1A'\" [style.color]=\"colorSelected\"></span>\n    </span>\n    <!-- <span class=\"arrow\" [class.line]=\"stylex\">\n      <i class=\"icons\">&#xe9e8;</i>\n    </span> -->\n    <div class=\"overlay active\" *ngIf=\"dropdownOption === true\" (click)=\"closeDropdown()\"></div>\n    <ul\n      class=\"list-of-option\"\n      *ngIf=\"dropdownOption === true && !colorProperty\"\n      #optionList\n      (keyup.Escape)=\"closeDropdown()\"\n      [style.top.px]=\"getTop\"\n      [style.left.px]=\"getLeft\"\n      [style.min-width.px]=\"getWidth\"\n      [style.max-width.px]=\"maxWidth\"\n      [class.active]=\"activeDoropdown\"\n    >\n      <li *ngFor=\"let data of dataList\">\n        <label>\n          <input type=\"radio\" [value]=\"data[valueKey]\" name=\"sliceLabel\" (change)=\"selectOption(data)\" #option (keyup.enter)=\"closeDropdown()\" class=\"pointer-none\" />\n          <span (click)=\"closeDropdown(); selectOption(data)\" *ngIf=\"displayProperty && displayProperty !== ''\" class=\"value\">{{ data[displayProperty] }}</span>\n          <span (click)=\"closeDropdown(); selectOption(data)\" *ngIf=\"!displayProperty || displayProperty === ''\" class=\"value\">{{ data }}</span>\n        </label>\n      </li>\n    </ul>\n    <ul\n      class=\"list-of-option\"\n      *ngIf=\"dropdownOption === true && colorProperty\"\n      #optionList\n      (keyup.Escape)=\"closeDropdown()\"\n      [style.top.px]=\"getTop\"\n      [style.left.px]=\"getLeft\"\n      [style.min-width.px]=\"getWidth\"\n      [style.max-width.px]=\"maxWidth\"\n      [class.active]=\"activeDoropdown\"\n    >\n      <li *ngFor=\"let data of dataList\">\n        <label class=\"colors\">\n          <input type=\"radio\" [value]=\"data[valueKey]\" name=\"sliceLabel\" (click)=\"selectOption(data)\" #option (keyup.enter)=\"closeDropdown()\" class=\"pointer-none\" />\n          <span\n            (click)=\"selectOption(data)\"\n            *ngIf=\"displayProperty && displayProperty !== ''\"\n            class=\"value\"\n            [ngStyle]=\"{ color: data.segment_color }\"\n            [style.backgroundColor]=\"data.segment_color + '1A'\"\n            >{{ data[displayProperty] }}</span\n          >\n          <span\n            (click)=\"selectOption(data)\"\n            *ngIf=\"!displayProperty || displayProperty === ''\"\n            class=\"value\"\n            [ngStyle]=\"{ color: data.segment_color }\"\n            [style.backgroundColor]=\"data.segment_color + '1A'\"\n            >{{ data }}</span\n          >\n        </label>\n      </li>\n    </ul>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'searchMultiSelect',\n})\nexport class SearchMultiSelectPipe implements PipeTransform {\n  transform(value: any[], key: string, searchKey: string): any[] {\n    if (searchKey && searchKey.length > 0) {\n      searchKey = searchKey.toLowerCase();\n      return value.filter((item) => {\n        if (item[key].toLowerCase().includes(searchKey)) {\n          return item;\n        }\n      });\n    }\n    return value;\n  }\n}\n","import { Component, OnInit, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-cs-checkbox-indeterminate',\n  templateUrl: './cs-checkbox-indeterminate.component.html',\n  styleUrls: ['./cs-checkbox-indeterminate.component.less']\n})\nexport class CsCheckboxIndeterminateComponentUI implements OnInit {\n  @Input() disabled!: boolean;\n  @Input() ngValue: any;\n  @Input() value: any;\n  @Output() ngValueChange = new EventEmitter<any>();\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n  valueChanged() {\n    const emitValue = {\n      value: this.value,\n      checked: this.ngValue\n    }\n    this.ngValueChange.emit(emitValue);\n  }\n\n  chileClick(event: any){\n    event.stopPropagation();\n  }\n\n}\n","<label class=\"checkbox-item\" [class.disabled]=\"disabled\" (click)=\"chileClick($event)\">\n    <input type=\"checkbox\" [name]=\"value\" [disabled]=\"disabled\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\n    <span class=\"checkbox\">\n      <span class=\"inner\"></span>\n    </span>\n    <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n      <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n      <path fill=\"none\" d=\"M37.9,27H14v-2h23.9V27z\"/>\n    </svg>\n    <span class=\"value\"><ng-content></ng-content></span>\n  </label>\n  ","import { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CsCheckboxComponentUI } from './cs-checkbox/cs-checkbox.component';\nimport { CsRadioComponentUI } from './cs-radio/cs-radio.component';\nimport { CsSwitchComponentUI } from './cs-switch/cs-switch.component';\nimport { CsRadioGroupComponentUI } from './cs-radio-group/cs-radio-group.component';\nimport { CsSelectComponentUI } from './cs-select/cs-select.component';\nimport { TooltipModule } from '../tooltip/tooltip.module';\nimport { PascalPipe } from './pipes/pascal.pipe';\nimport { SearchMultiSelectPipe } from './pipes/searchMultiSelect.pipe';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport { CsCheckboxIndeterminateComponentUI } from './cs-checkbox-indeterminate/cs-checkbox-indeterminate.component'\n\n@NgModule({\n  declarations: [\n    CsCheckboxComponentUI,\n    CsRadioComponentUI,\n    CsSwitchComponentUI,\n    CsRadioGroupComponentUI,\n    CsSelectComponentUI,\n    PascalPipe,\n    SearchMultiSelectPipe,\n    ClickOutsideDirective,\n    CsCheckboxIndeterminateComponentUI\n  ],\n  imports: [CommonModule, FormsModule, TooltipModule],\n  exports: [\n    CsCheckboxComponentUI,\n    CsRadioComponentUI,\n    CsSwitchComponentUI,\n    CsRadioGroupComponentUI,\n    CsSelectComponentUI,\n    SearchMultiSelectPipe,\n    CsCheckboxIndeterminateComponentUI\n  ],\n})\nexport class FormgroupModule {}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\nimport { ASSETS } from '../../../constants/assets.constants';\n@Component({\n  selector: 'app-pagination',\n  templateUrl: './pagination.component.html',\n  styleUrls: ['./pagination.component.less'],\n})\nexport class PaginationComponentUI implements OnInit {\n  ASSETS = ASSETS;\n  alphabetsArray!: any;\n  @Input() activeAlphabet = '';\n  @Input() pageCount!: number;\n  @Input() start!: number;\n  @Input() end!: number;\n  @Input() total!: number;\n  public pageArray: Array<number> = [];\n  @Input() currentPage = 1;\n  public enterPageNumber!: any;\n  public isInvalidInput = false;\n\n  @Output() selectedPage: EventEmitter<any> = new EventEmitter();\n  @Output() selectedAlphabet: EventEmitter<any> = new EventEmitter();\n\n  pageList!: any;\n  constructor() {\n    this.alphabetsArray = 'abcdefghijklmnopqrstuvwxyz'.split('');\n  }\n\n  ngOnInit(): void {}\n\n  alphabetChange(alphabet: string) {\n    this.activeAlphabet = alphabet;\n    this.selectedAlphabet.emit(alphabet);\n  }\n\n  ngOnChanges(event: SimpleChanges) {\n    this.pageArray = [];\n\n    if (this.pageCount > 0) {\n      if (this.pageCount < 5) {\n        for (let i = 1; i <= this.pageCount; i++) {\n          this.pageArray.push(i);\n        }\n        return;\n      }\n      this.goToPageArrayGenerate(this.currentPage, false);\n    }\n  }\n\n  increaseOrDecrease(value: number) {\n    // if(this.currentPage === value){return ;}\n    this.currentPage += value;\n    if (\n      this.currentPage > 3 &&\n      this.currentPage <= this.pageCount &&\n      this.pageArray[this.pageArray.length - 1] < this.pageCount\n    ) {\n      if (value > 0) {\n        this.pageArray.shift();\n        this.pageArray.push(this.pageArray[this.pageArray.length - 1] + 1);\n      }\n    }\n\n    if (\n      this.currentPage > 2 &&\n      value < 0 &&\n      this.pageArray[0] > 1 &&\n      this.currentPage < this.pageCount - 2\n    ) {\n      this.pageArray.pop();\n      this.pageArray.unshift(this.pageArray[0] - 1);\n    }\n    this.selectedPage.emit(this.currentPage);\n  }\n  onEnterPress(event: any) {\n    if (event.key.toLowerCase() === 'enter') {\n      if (\n        !this.enterPageNumber ||\n        this.enterPageNumber > this.pageCount ||\n        this.enterPageNumber < 1\n      ) {\n        this.isInvalidInput = true;\n        return;\n      } else {\n        this.isInvalidInput = false;\n        this.goToPageArrayGenerate(this.enterPageNumber, true);\n      }\n    }\n  }\n\n  goToPageArrayGenerate(page: any, shouldEmit: boolean) {\n    //if(this.currentPage === page){return;}\n    this.isInvalidInput = false;\n    this.currentPage = page;\n    this.pageArray = [];\n    if (this.currentPage > 3 && this.currentPage < this.pageCount - 2) {\n      for (let i = this.currentPage - 2; i < this.currentPage + 3; i++) {\n        this.pageArray.push(i);\n      }\n    } else if (this.currentPage <= 3) {\n      if (this.pageCount > 4) {\n        this.pageArray = [1, 2, 3, 4, 5];\n      } else {\n        for (let i = 1; i <= this.pageCount; i++) {\n          this.pageArray.push(i);\n        }\n      }\n    } else if (this.currentPage > this.pageCount - 3) {\n      for (let i = this.pageCount - 4; i < this.pageCount + 1; i++) {\n        this.pageArray.push(i);\n      }\n    } else {\n      for (let i = this.currentPage - 2; i < this.currentPage + 2; i++) {\n        this.pageArray.push(i);\n      }\n    }\n\n    if (shouldEmit) {\n      this.selectedPage.emit(this.currentPage);\n    }\n  }\n}\n","<div\n  class=\"wk-pagination-sec-ds vx-d-flex vx-align-center\"\n  [class.right-align]=\"false\"\n>\n  <div class=\"left vx-label-txt vx-fw-400 vx-tt-uppercase vx-lh-6\">\n    Showing {{ start }} - {{ end }} of {{ total }} records\n    <div class=\"pagination-box\" *ngIf=\"false\">\n      <ul class=\"vx-d-flex vx-align-center vx-m-0 vx-p-0\">\n        <li class=\"vx-d-flex\">\n          <button\n            class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-tt-uppercase vx-pl-2 vx-pr-2 vx-m-0\"\n            [class.active]=\"true\"\n          >\n            All\n          </button>\n        </li>\n        <li class=\"vx-d-flex\">\n          <button\n            class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-tt-uppercase vx-pl-2 vx-pr-2 vx-m-0\"\n            [class.active]=\"false\"\n          >\n            A\n          </button>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"right vx-d-flex vx-align-center\">\n    <div class=\"pagination-box\">\n      <ul class=\"vx-d-flex vx-align-center vx-m-0 vx-p-0\">\n        <li class=\"vx-d-flex vx-mr-1\">\n          <button\n            class=\"vx-m-0\"\n            [disabled]=\"currentPage === 1\"\n            [class.disabled]=\"currentPage === 1\"\n            (click)=\"increaseOrDecrease(-1)\"\n          >\n            <i class=\"icons\">&#xe96b;</i>\n          </button>\n        </li>\n\n        <li class=\"vx-d-flex\" *ngFor=\"let page of pageArray; let i = index\">\n          <button\n            class=\"vx-label-txt vx-fw-400 vx-pl-1 vx-pr-1 vx-d-inline-flex vx-align-center vx-justify-center vx-m-0 vx-ml-1\"\n            [disabled]=\"page === currentPage\"\n            (click)=\"goToPageArrayGenerate(page, true)\"\n            [class.active]=\"page === currentPage\"\n          >\n            {{ page }}\n          </button>\n        </li>\n\n        <li class=\"vx-d-flex vx-ml-2\">\n          <button\n            class=\"vx-m-0\"\n            (click)=\"increaseOrDecrease(1)\"\n            [class.disabled]=\"currentPage === pageCount\"\n          >\n            <i class=\"icons\">&#xe970;</i>\n          </button>\n        </li>\n      </ul>\n    </div>\n\n    <div class=\"goto-page vx-d-flex vx-align-center vx-ml-2\">\n      <div\n        class=\"goto-page-text vx-label-txt vx-tt-uppercase vx-d-block vx-pl-2 vx-pr-2\"\n      >\n        GO TO\n      </div>\n      <div class=\"goto-page-input\">\n        <input\n          [class.invalid]=\"\n            (isInvalidInput && !enterPageNumber) || pageCount < enterPageNumber\n          \"\n          type=\"number\"\n          placeholder=\"Page No.\"\n          [(ngModel)]=\"enterPageNumber\"\n          type=\"number\"\n          placeholder=\"Page No.\"\n          (keyup)=\"onEnterPress($event)\"\n          onkeydown=\"if(event.key==='.'){event.preventDefault();}\"\n          oninput=\"event.target.value = event.target.value.replace(/[^0-9]*/g,'');\"\n          type=\"text\"\n          type=\"number\"\n          placeholder=\"Page No.\"\n        />\n        <button (click)=\"onEnterPress({ key: 'enter' })\">\n          <img [src]=\"ASSETS.enter_icon\" alt=\"\" />\n        </button>\n      </div>\n      <div\n        class=\"goto-page-text vx-label-txt vx-tt-uppercase vx-d-block vx-pl-2 vx-pr-2\"\n      >\n        OF {{ pageCount }}\n      </div>\n    </div>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PaginationComponentUI } from './pagination/pagination.component';\nimport { FormsModule } from '@angular/forms';\n\n\n\n@NgModule({\n  declarations: [\n    PaginationComponentUI\n  ],\n  imports: [\n    CommonModule,\n    FormsModule\n  ],\n  exports: [\n    PaginationComponentUI\n  ]\n})\nexport class PaginationModule { }\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-table-card',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './table-card.component.html',\n  styleUrls: ['./table-card.component.less'],\n  inputs: ['singleSelectedText', 'multipleSelectedText', 'selectedTab'],\n})\nexport class TableCardComponent {\n  tableCard: Array<any> = [];\n  @Input('tableCard') set getTableCard(tab: any) {\n    this.tableCard = tab;\n  }\n  singleSelectedText: string = 'GRC Selected';\n  multipleSelectedText: string = 'GRC Selected';\n  selectedTab = 0;\n\n  @Output() setSelectedTab: EventEmitter<any> = new EventEmitter();\n\n  selectTab(tab: any) {\n    this.selectedTab = tab?.type;\n    this.setSelectedTab.emit(tab);\n  }\n}\n","<div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-2\">\n    <div *ngFor=\"let card of tableCard\" class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" (click)=\"selectTab(card)\" [class.active]=\"selectedTab == card?.type\">\n        <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n                <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">{{card?.title}}</label>\n            </div>\n            <div *ngIf=\"card?.selectedCount\" class=\"selected-count vx-fs-11 vx-fw-600 vx-label-txt vx-lh-4\">{{card?.selectedCount}} {{card?.selectedCount === 1 ? singleSelectedText : multipleSelectedText}}</div>\n        </div>\n        <div class=\"right vx-d-flex vx-justify-end\">\n            <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{card?.count}}</span>\n        </div>\n    </div>\n    <!-- <div class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"false\">\n        <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n                <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">STANDARDS</label>\n            </div>\n            <div class=\"vx-fs-11 vx-fw-600 vx-label-txt vx-lh-4\">1 Program selected</div>\n        </div>\n        <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">8</span>\n        </div>\n    </div>\n    <div class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"false\">\n        <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n                <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">INTERNAL CONTROLS</label>\n            </div>\n            <div class=\"vx-fs-11 vx-fw-600 vx-label-txt vx-lh-4\">1 Program selected</div>\n        </div>\n        <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">20</span>\n        </div>\n    </div>\n    <div class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"false\">\n        <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n                <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">OTHERS</label>\n            </div>\n            <div class=\"vx-fs-11 vx-fw-600 vx-label-txt vx-lh-4\">1 Program selected</div>\n        </div>\n        <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">32</span>\n        </div>\n    </div> -->\n</div>","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'app-no-data',\n  templateUrl: './no-data.component.html',\n  styleUrls: ['./no-data.component.less'],\n})\nexport class NoDataComponentUI implements OnInit {\n  @Input() action!: object;\n  @Input() secondaryAction!: object; //button action\n  @Input() noDataImage!: string;\n  @Input() noDataText!: string;\n  @Input() noDataButton!: string | boolean;\n  @Input() secondaryButton!: string | boolean; //button text\n  @Input() noDataSecButton!: string | boolean;\n  @Input() altText!: string;\n  @Output() buttonAction = new EventEmitter<object>();\n  @Output() secondaryActionButton = new EventEmitter<object>();\n  @Input() smallButton!: boolean;\n  constructor() { }\n\n  ngOnInit(): void { }\n\n  actionEmitter(button: object) {\n    this.buttonAction.emit(button);\n  }\n\n  secondaryActionEmitter(button: object) {\n    this.secondaryActionButton.emit(button);\n  }\n}\n","<div class=\"no-data-wrapper\">\n  <div class=\"no-data-container\">\n    <img [src]=\"noDataImage\" [alt]=\"altText\" class=\"image\" />\n    <p class=\"text\" [innerHTML]=\"noDataText\" *ngIf=\"noDataText\"></p>\n    <div class=\"button-row\">\n      <div *ngIf=\"secondaryButton\">\n        <button class=\"vx-btn md secondary\" (click)=\"actionEmitter($event)\">\n          {{ secondaryButton }}\n        </button>\n      </div>\n      <div *ngIf=\"noDataButton\">\n        <button class=\"vx-btn md primary\" (click)=\"actionEmitter($event)\">\n          {{ noDataButton }}\n        </button>\n      </div>\n    </div>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NoDataComponentUI } from './no-data.component';\n\n@NgModule({\n  declarations: [NoDataComponentUI],\n  imports: [CommonModule],\n  exports: [NoDataComponentUI],\n})\nexport class NoDataModule {}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-list-loader',\n  templateUrl: './list-loader.component.html',\n  styleUrls: ['./list-loader.component.less']\n})\nexport class ListLoaderComponent implements OnInit {\n\n  @Input() fullWidth = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"link-treatment-loader-container\">\n  <!-- <div class=\"link-treatment-tab\">\n        <ul>\n            <li><div class=\"loader\"></div></li>\n            <li><div class=\"loader\"></div></li>\n            <li><div class=\"loader\"></div></li>\n            <li><div class=\"loader\"></div></li>\n        </ul>\n    </div> -->\n  <!-- <div class=\"link-treatment-create-btn\">\n        <div class=\"loader\"></div>\n    </div> -->\n  <div class=\"link-treatment-body\">\n    <!-- <div class=\"search-block\">\n            <div class=\"loader\"></div>\n        </div> -->\n    <div class=\"link-treatment-list\">\n      <ul>\n        <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\">\n          <div class=\"loader\" [class.full-width]=\"fullWidth\"></div>\n        </li>\n      </ul>\n    </div>\n    <!-- <div class=\"link-treatment-footer\">\n            <div class=\"left\">\n                <div class=\"loader\"></div>\n            </div>\n            <div class=\"right\">\n                <div class=\"loader\"></div>\n            </div>\n        </div> -->\n  </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ListLoaderComponent } from './list-loader.component';\n\n@NgModule({\n  declarations: [ListLoaderComponent],\n  imports: [CommonModule],\n  exports: [ListLoaderComponent],\n})\nexport class ListLoaderModule {}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-table-card-loader',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './table-card-loader.component.html',\n  styleUrls: ['./table-card-loader.component.less'],\n})\nexport class TableCardLoaderComponent implements OnInit {\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"table-card-area vx-d-flex vx-align-center vx-mb-2\">\n    <div  *ngFor=\"let data of [1,1,1,1]\" class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-mr-1 vx-w-100\">\n        <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n                <div class=\"loader\"></div>\n            </div>\n        </div>\n        <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center loader\"></span>\n        </div>\n    </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FloatingBarModule } from '../../../../sharedComponents/floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\nimport { PaginationModule } from '../../../../ui-kit/pagination/pagination.module';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\nimport { TableCardComponent } from '../table-card/table-card.component';\nimport { NoDataModule } from '../../../../ui-kit/no-data/no-data.module';\nimport { LINKS } from '../../constants/cdn-link.constant';\nimport { ListLoaderModule } from '../../../../sharedComponents/list-loader/list-loader.module';\nimport { OTHER_GRC_CARD } from '../../constants/grcObject.constant';\nimport { TableCardLoaderComponent } from '../../../../sharedComponents/table-card-loader/table-card-loader.component';\n\n@Component({\n  selector: 'app-grc-object-list',\n  standalone: true,\n  imports: [\n    CommonModule,\n    PopoverModule,\n    FormgroupModule,\n    TooltipModule,\n    FloatingBarModule,\n    PaginationModule,\n    TableCardComponent,\n    NoDataModule,\n    ListLoaderModule,\n    TableCardLoaderComponent,\n  ],\n  templateUrl: './grc-object-list.component.html',\n  styleUrls: ['./grc-object-list.component.less'],\n  inputs: [\n    'grcObject',\n    'currentPage',\n    'loader',\n    'tableCard',\n    'selectedTab',\n    'cardLoader',\n    'onEditGRCId',\n    'mode',\n  ],\n  outputs: ['saveOtherGRC', 'closeOtherGRC', 'getOtherGRCObjects'],\n})\nexport class GrcObjectListComponent implements OnInit {\n  animation!: boolean;\n  CDN_LINK = LINKS;\n  tableCard = OTHER_GRC_CARD;\n  loader: boolean = false;\n  cardLoader: boolean = false;\n  grcObject: any;\n  currentPage: number = 1;\n  selectedGRC: any = [];\n  selectedGRCIds: any = [];\n  searchString: string = '';\n  preSelectedGRC: any = [];\n  selectAllButton: 'Select All' | 'Deselect All' = 'Select All';\n  selectedTab: 0 | 1 | 2 | 3 = 0;\n  mode: 'CREATE' | 'EDIT' = 'CREATE';\n  onEditGRCId: string = '';\n\n  @Input('selectedGRC') set setSelectedGRC(selectedGRC: any) {\n    this.selectedGRC = selectedGRC;\n    this.setSelectedTabCount(selectedGRC);\n    this.selectedGRCIds = this.getIds(this.selectedGRC, '_id');\n    this.preSelectedGRC = JSON.parse(JSON.stringify(selectedGRC));\n  }\n\n  saveOtherGRC: EventEmitter<any> = new EventEmitter();\n  closeOtherGRC: EventEmitter<any> = new EventEmitter();\n  getOtherGRCObjects: EventEmitter<any> = new EventEmitter();\n\n  constructor() {}\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  getIds(selectedList: Array<any>, key: string) {\n    let ids: Array<any> = [];\n    if (selectedList?.length) {\n      selectedList.forEach((element: any) => {\n        ids.push(element[key]);\n      });\n    }\n    return ids ?? [];\n  }\n\n  getSelectedGRC(grc: any, event: any) {\n    if (event) {\n      this.selectedGRC.push(grc);\n      this.selectedGRCIds.push(grc?._id);\n      this.updateTabSelectedCount(true, grc?.type);\n    } else {\n      this.deleteEvent(grc);\n    }\n  }\n\n  deleteEvent(grc: any) {\n    this.selectedGRC = this.selectedGRC?.filter(\n      (selected: any) => selected?._id !== grc?._id\n    );\n    this.selectedGRCIds = this.selectedGRCIds?.filter(\n      (selectedGRCId: any) => selectedGRCId !== grc?._id\n    );\n    this.updateTabSelectedCount(false, grc?.type);\n  }\n\n  handleSearch(event: any) {\n    if (this.searchString != event) {\n      this.currentPage = 1;\n      this.searchString = event;\n      this.getOtherGRCObjects.emit({\n        pageNo: this.currentPage,\n        searchString: this.searchString,\n        type: this.selectedTab,\n      });\n    }\n  }\n\n  selectAll(event: any) {\n    this.grcObject?.data?.forEach((grc: any) => {\n      if (event) {\n        if (!this.selectedGRCIds.includes(grc?._id)) {\n          this.selectedGRC.push(grc);\n          this.selectedGRCIds.push(grc?._id);\n          this.updateTabSelectedCount(true, grc?.type);\n        }\n      } else {\n        this.deleteEvent(grc);\n      }\n    });\n  }\n\n  updateTabSelectedCount(event: boolean, type: number) {\n    if (event) {\n      this.tableCard[type].selectedCount++;\n    } else {\n      this.tableCard[type].selectedCount\n        ? this.tableCard[type].selectedCount--\n        : 0;\n    }\n  }\n\n  isAllSelected(): boolean {\n    if (\n      this.selectedGRCIds &&\n      this.selectedGRCIds.length >= this.grcObject?.data?.length &&\n      this.selectedGRCIds.length > 0\n    ) {\n      for (const grc of this.grcObject?.data) {\n        if (!this.selectedGRCIds.includes(grc?._id)) {\n          this.selectAllButton = 'Select All';\n          return false;\n        }\n      }\n      this.selectAllButton = 'Deselect All';\n      return true;\n    } else {\n      this.selectAllButton = 'Select All';\n      return false;\n    }\n  }\n  save() {\n    this.saveOtherGRC.emit(this.selectedGRC);\n  }\n\n  close() {\n    this.closeOtherGRC.emit(this.preSelectedGRC);\n  }\n\n  changePage(event: number) {\n    this.currentPage = event;\n    this.grcObject.currentPage = event;\n    this.getOtherGRCObjects.emit({\n      pageNo: this.currentPage,\n      searchString: this.searchString,\n      type: this.selectedTab,\n    });\n  }\n\n  setSelectedTab(event: any) {\n    this.grcObject.currentPage = 1;\n    this.currentPage = 1;\n    this.selectedTab = event?.type;\n    this.getOtherGRCObjects.emit({\n      pageNo: this.currentPage,\n      searchString: this.searchString,\n      type: event?.type,\n    });\n  }\n\n  resetSelectedTabCount() {\n    this.tableCard.forEach((tab: any) => {\n      tab.selectedCount = 0;\n    });\n  }\n\n  setSelectedTabCount(data: any) {\n    this.resetSelectedTabCount();\n    data.forEach((tab: any) => {\n      this.updateTabSelectedCount(true, tab?.type);\n    });\n  }\n}\n","<div class=\"workflow-grc-object-list\" [class.animate]=\"animation\">\n  <div\n    class=\"workflow-grc-object-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select GRC Object(s)</div>\n  </div>\n  <div class=\"workflow-grc-object-list-body\">\n    <app-table-card-loader *ngIf=\"cardLoader\"></app-table-card-loader>\n    <div class=\"table-card-area vx-d-flex vx-mb-2\"  *ngIf=\"!cardLoader\">\n      <app-table-card\n        class=\"vx-w-100\"\n        [tableCard]=\"tableCard\"\n        [singleSelectedText]=\"'GRC Object Selected'\"\n        [selectedTab]=\"selectedTab\"\n        [multipleSelectedText]=\"'GRC Objects Selected'\"\n        (setSelectedTab)=\"setSelectedTab($event)\"\n      ></app-table-card>\n    </div>\n\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        type=\"text\"\n        #searchGRC\n        (keyup.enter)=\"handleSearch($event.target.value)\"\n        placeholder=\"Search GRC objects\"\n      />\n    </div>\n\n    <div class=\"workflow-grc-object-list-body-inner vx-mb-4\">\n      <ng-container *ngIf=\"!loader && grcObject?.data?.length\">\n        <app-pagination\n          *ngIf=\"grcObject?.total_pages > 1\"\n          [start]=\"grcObject?.items_from\"\n          [end]=\"grcObject?.items_to\"\n          [total]=\"grcObject?.total_items\"\n          [pageCount]=\"grcObject?.total_pages\"\n          [currentPage]=\"currentPage\"\n          (selectedPage)=\"changePage($event)\"\n        ></app-pagination>\n        <div class=\"select-all vx-mt-1 vx-mb-1 vx-pl-2\">\n          <app-cs-checkbox\n            [ngValue]=\"isAllSelected()\"\n            (ngValueChange)=\"selectAll($event)\"\n            ><div class=\"vx-fs-12 vx-fw-600 vx-label-txt\">\n              {{ selectAllButton }}\n            </div></app-cs-checkbox\n          >\n        </div>\n\n        <div\n          class=\"workflow-grc-object-list-body-table\"\n          [class.with-pagination]=\"grcObject?.total_pages > 1\"\n        >\n          <div class=\"table-header\">\n            <div class=\"table-row\">\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n              >\n                #\n              </div>\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center name\"\n              >\n                NAME\n              </div>\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\"\n              >\n                RESPONSIBILITY CENTER\n              </div>\n            </div>\n          </div>\n          <div class=\"table-body\">\n            <div\n              class=\"table-row\"\n              *ngFor=\"let grc of grcObject?.data; let i = index\"\n              [class.active]=\"selectedGRCIds?.includes(grc?._id)\" [class.disabled]=\"mode === 'EDIT' && onEditGRCId === grc?._id\"\n            >\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n              >\n                <div\n                  class=\"sr-no\"\n                  [appTooltip]=\"grcObject?.items_from + i\"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"true\"\n                >\n                  {{ grcObject?.items_from + i }}\n                </div>\n                <app-cs-checkbox\n                  [ngValue]=\"selectedGRCIds?.includes(grc?._id)\"\n                  (ngValueChange)=\"getSelectedGRC(grc, $event)\"\n                ></app-cs-checkbox>\n              </div>\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center name\"\n              >\n                <div\n                  class=\"name vx-fs-12 vx-label-txt\"\n                  [appTooltip]=\"grc?.name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{ grc?.name }}\n                </div>\n              </div>\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\"\n              >\n                <div class=\"rc-inner vx-d-block\">\n                  <div class=\"vx-d-flex vx-align-center vx-w-100\">\n                    <div\n                      class=\"value vx-fs-12 vx-label-txt\"\n                      [appTooltip]=\"grc?.rcDetails[0]?.rc_name\"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"false\"\n                    >\n                      {{ grc?.rcDetails[0]?.rc_name }}\n                    </div>\n                  </div>\n\n                  <div\n                    class=\"within-part vx-d-flex vx-align-center\"\n                    *ngIf=\"grc?.rcDetails[0]?.parent_rc_names?.length\"\n                  >\n                    <div\n                      class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3 vx-txt-blue\"\n                    >\n                      Within\n                    </div>\n                    <div\n                      class=\"within-value vx-fs-11 vx-paragraph-txt\"\n                      [appTooltip]=\"\n                        grc?.rcDetails[0]?.parent_rc_names\n                          ?.slice()\n                          ?.reverse()\n                          ?.join(' > ')\n                      \"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"false\"\n                    >\n                      {{\n                        grc?.rcDetails[0]?.parent_rc_names\n                          ?.slice()\n                          ?.reverse()\n                          ?.join(\" > \")\n                      }}\n                    </div>\n                  </div>\n                </div>\n                <button\n                  *ngIf=\"grc?.rcDetails?.length > 1\"\n                  class=\"rc-count-btn vx-fs-11 vx-txt-blue vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-3 vx-d-flex vx-align-center vx-justify-center\"\n                  appPopover\n                  (click)=\"rcCount.popover()\"\n                  placement=\"right\"\n                >\n                  +{{ grc?.rcDetails?.length - 1 }}\n                </button>\n                <app-popover #rcCount>\n                  <div class=\"wf-action-list\">\n                    <ul class=\"action-item\">\n                      <li *ngFor=\"let rcDetails of grc?.rcDetails | slice : 1\">\n                        <div class=\"avatar-card\">\n                          <div class=\"vx-d-block vx-w-100\">\n                            <span\n                              class=\"value\"\n                              [appTooltip]=\"rcDetails?.rc_name\"\n                              placement=\"bottom-left\"\n                              delay=\"0\"\n                              type=\"black\"\n                              [tooltipMandatory]=\"false\"\n                              >{{ rcDetails?.rc_name }}</span\n                            >\n                            <div\n                              class=\"within\"\n                              *ngIf=\"rcDetails?.parent_rc_names?.length\"\n                            >\n                              <div class=\"block\">WITHIN</div>\n                              <div\n                                class=\"within-value vx-fs-11 vx-paragraph-txt\"\n                                [appTooltip]=\"\n                                  rcDetails?.parent_rc_names\n                                    ?.slice()\n                                    ?.reverse()\n                                    ?.join(' > ')\n                                \"\n                                placement=\"bottom-left\"\n                                delay=\"0\"\n                                type=\"black\"\n                                [tooltipMandatory]=\"false\"\n                              >\n                                {{\n                                  rcDetails?.parent_rc_names\n                                    ?.slice()\n                                    ?.reverse()\n                                    ?.join(\" > \")\n                                }}\n                              </div>\n                            </div>\n                          </div>\n                        </div>\n                      </li>\n                    </ul>\n                  </div>\n                </app-popover>\n              </div>\n            </div>\n          </div>\n        </div>\n      </ng-container>\n      <app-list-loader *ngIf=\"loader\"></app-list-loader>\n      <app-no-data\n        *ngIf=\"grcObject?.data?.length === 0 && !loader\"\n        [noDataImage]=\"CDN_LINK?.noData\"\n        [noDataText]=\"'No data to display'\"\n      ></app-no-data>\n    </div>\n\n    <app-floating-bar\n      [selectedData]=\"selectedGRC?.length ? selectedGRC : []\"\n      (closeList)=\"close()\"\n      (closeEvent)=\"save()\"\n      [displayElementKey]=\"'name'\"\n      [singularText]=\"'GRC Object selected'\"\n      [pluralText]=\"'GRC Objects selected'\"\n      (deleteEvent)=\"deleteEvent($event)\"\n    ></app-floating-bar>\n  </div>\n</div>\n","import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { cloneDeep } from 'lodash';\n\nimport { ASSETS } from '../../constants/assets.constants';\nimport { ClickOutsideModule } from '../../ui-kit/click-outside/click-outside.module';\nimport { FloatingBarModule } from '../floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\nimport { NoDataModule } from '../no-data/no-data.module';\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\n\n@Component({\n  selector: 'app-group-users-list',\n  templateUrl: './group-users-list.component.html',\n  styleUrls: ['./group-users-list.component.less', '../../forms.less'],\n  standalone: true,\n  imports: [\n    ClickOutsideModule,\n    CommonModule,\n    FloatingBarModule,\n    FormgroupModule,\n    FormsModule,\n    NoDataModule,\n    PipesModule,\n    PopoverModule,\n    TooltipModule,\n  ],\n})\n\nexport class GroupUsersListComponent implements OnInit, OnChanges {\n  @Input() groupsEnabled: any;\n  @Input() usersList = [];\n  @Input() groupsList: any[] = [];\n  @Input() selectedUsers = [];\n  @Input() userIdKey = '';\n  @Input() groupIdKey = '';\n  @Input() openedFrom = '';\n  @Output() saveSelectedList = new EventEmitter();\n  @Output() closeUsersList = new EventEmitter();\n  @Input() selectedGroups: any[] = [];\n  @Input() assigneeGroupsList: any[] = [];\n  @Input() disabledId: any[] = [];\n  @Input() fromResponsibility: any;\n  @Input() reviewerIds: any[] = [];\n  @Input() overseerIds: any[] = [];\n  @Input() assignorId: any[] = [];\n  @Input() loader: boolean = false;\n  @Input() isDisabledSelected: boolean = false;\n  ASSETS = ASSETS;\n  search = '';\n  selectedIds: any[] = [];\n  animation = false;\n  selectedGroupIds: any[] = [];\n  selectedgroupList: any[] = [];\n  constructor(private snackbar: SnackBarService) { }\n\n  ngOnChanges(): void {\n    this.selectedIds = this.selectedUsers.map((ele: any) => {\n      if (ele[this.userIdKey]) {\n        return ele[this.userIdKey];\n      }\n    });\n    this.selectedGroupIds = this.selectedGroups?.map((ele: any) => {\n      if (ele[this.groupIdKey]) {\n        return ele[this.groupIdKey];\n      }\n    });\n  }\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  selectUser(user: any, mode: any) {\n    if (mode) {\n      this.selectedIds.push(user);\n    } else {\n      const index = this.selectedIds.findIndex(\n        (element: any) => element == user\n      );\n      this.selectedIds.splice(index, 1);\n    }\n    this.setList();\n  }\n  deleteEvent(event: any) {\n    const index = this.selectedIds.findIndex(\n      (element: any) => element == event[this.userIdKey]\n    );\n    this.selectedIds.splice(index, 1);\n    this.setList();\n  }\n\n  deleteGroupEvent(event: any) {\n    const groupindex = this.selectedGroupIds.findIndex(\n      (element: any) => element == event['group_id']\n    );\n    this.selectedGroupIds.splice(groupindex, 1);\n    this.setgroupList();\n  }\n\n  selectAll(mode: any) {\n    if (mode) {\n      let list = [...this.usersList];\n      if (!this.isDisabledSelected) {\n        list = list.filter(\n          (user: any) => !this.disabledId.includes(user[this.userIdKey])\n        );\n      }\n\n      this.selectedIds = [];\n      list.forEach((element) => {\n        this.selectedIds.push(element[this.userIdKey]);\n      });\n    } else {\n      if (!this.isDisabledSelected) {\n        this.selectedIds = [];\n      } else {\n        this.selectedIds = this.selectedIds.filter((id: number) =>\n          this.disabledId.includes(id)\n        );\n      }\n    }\n    this.setList();\n  }\n\n  selectAllGroups(mode: any) {\n    if (mode) {\n      const grouplist = [...this.assigneeGroupsList];\n      this.selectedGroupIds = [];\n      grouplist.forEach((element) => {\n        this.selectedGroupIds.push(element[this.groupIdKey]);\n      });\n      this.selectedGroups = grouplist;\n    } else {\n      this.selectedGroupIds = [];\n      this.selectedGroups = [];\n    }\n    this.setgroupList();\n  }\n\n  validationCheck(isChecked: boolean) {\n    if (isChecked) {\n      this.snackbar.show('You can select a maximum of 19 users.', 'alert');\n    }\n  }\n\n  setList() {\n    const data: any = [];\n    const userList = cloneDeep(this.usersList);\n    const selectedIds = cloneDeep(this.selectedIds);\n    userList.forEach((element: any) => {\n      if (selectedIds.includes(element[this.userIdKey])) {\n        data.push(element);\n      }\n    });\n    this.selectedUsers = data;\n  }\n  setgroupList() {\n    const data: any = [];\n    const groupslist = cloneDeep(this.assigneeGroupsList);\n    const selectedGroupIds = cloneDeep(this.selectedGroupIds);\n    groupslist.forEach((element: any) => {\n      if (selectedGroupIds.includes(element[this.groupIdKey])) {\n        data.push(element);\n      }\n    });\n    this.selectedGroups = data;\n  }\n\n  checkSelectAll() {\n    const data = this.usersList.every((user: any) =>\n      this.selectedIds.includes(user[this.userIdKey])\n    );\n    return data;\n  }\n\n  checkselectAllgroups() {\n    const data = this.assigneeGroupsList.every((group: any) =>\n      this.selectedGroupIds.includes(group[this.groupIdKey])\n    );\n    return data;\n  }\n\n  save(selectedIds: any) {\n    let selectedData;\n    if (this.assigneeGroupsList.length) {\n      selectedData = { users: this.selectedIds, groups: this.selectedGroupIds };\n    } else {\n      selectedData = selectedIds;\n    }\n    this.saveSelectedList.emit(selectedData);\n  }\n\n  close() {\n    this.closeUsersList.emit();\n  }\n\n  selectGroup(groupIds: any, mode: any) {\n    if (mode) {\n      groupIds.forEach((userId: any) => {\n        if (!this.selectedIds.includes(userId)) {\n          this.selectedIds.push(userId);\n        }\n      });\n    } else {\n      groupIds.forEach((userId: any) => {\n        const index = this.selectedIds.findIndex(\n          (element: any) => element == userId\n        );\n        this.selectedIds.splice(index, 1);\n      });\n    }\n    this.setList();\n  }\n\n  selectGroupElement(data: any, mode: any) {\n    if (mode) {\n      this.selectedgroupList.push(data);\n      this.selectedGroupIds.push(data[this.groupIdKey]);\n    } else {\n      const index = this.selectedgroupList.findIndex(\n        (ele: { [x: string]: any }) =>\n          ele[this.groupIdKey] === data[this.groupIdKey]\n      );\n      this.selectedgroupList.splice(index, 1);\n      const idIndex = this.selectedGroupIds.findIndex(\n        (ele) => ele === data[this.groupIdKey]\n      );\n      this.selectedGroupIds.splice(idIndex, 1);\n    }\n    this.setgroupList();\n  }\n\n  checkGroupList(groupIds: any[]): boolean {\n    return groupIds?.length\n      ? groupIds.every(id => this.selectedIds.includes(id))\n      : false;\n  }\n\n  hideGroup(groupIds: any[]): boolean {\n    return groupIds?.length\n      ? this.usersList.every(user => !groupIds.includes(user[this.userIdKey]))\n      : false;\n  }\n\n  currentTab = 'USER';\n  switchTab(tab: string) {\n    this.currentTab = tab;\n    this.search = '';\n  }\n}\n","<div class=\"add-risk-group-user-list\" [class.animate]=\"animation\">\n  <div class=\"add-risk-group-user-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select User(s)</div>\n    <!-- <button class=\"add-risk-group-user-list-close\" (click)=\"close()\">\n            <i class=\"icons\">&#xe90d;</i>\n        </button> -->\n  </div>\n  <div class=\"add-risk-group-user-list-body\">\n    <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n    <div class=\"add-risk-group-user-list-tab vx-d-flex vx-align-center vx-mt-1 vx-mb-2\" *ngIf=\"groupsEnabled\">\n      <button (click)=\"switchTab('USER')\"\n        class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n        [class.active]=\"currentTab === 'USER'\">\n        USERS\n        <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{\n          search?.length && currentTab === \"USER\"\n          ? (usersList | search : search: 'employee_name')?.length\n          : usersList?.length\n          }}</span>\n      </button>\n      <button (click)=\"switchTab('GROUP')\"\n        class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n        [class.active]=\"currentTab === 'GROUP'\">\n        USER GROUPS\n        <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{\n          search?.length && currentTab === \"GROUP\"\n          ? (assigneeGroupsList | search : search: 'group_name')?.length\n          : assigneeGroupsList?.length\n          }}</span>\n      </button>\n    </div>\n    <div class=\"search-block vx-mb-2\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"{{\n          currentTab === 'USER' ? 'Search User(s)' : 'Search User Group(s)'\n        }} \" />\n    </div>\n    <ng-container *ngIf=\"!groupsEnabled\">\n      <ng-container *ngIf=\"usersList | search : search: 'employee_name' as userlist\">\n        <ng-container *ngIf=\"groupsList | search : search: 'groupName' as grouplist\">\n          <div class=\"body-top\" *ngIf=\"\n              (userlist?.length > 0 ||\n                (userlist?.length > 0 && grouplist?.length > 0)) &&\n              search?.trim()?.length === 0\n            \">\n            <app-cs-checkbox *ngIf=\"\n                (openedFrom === 'RISK_TREATMENT' && usersList?.length < 19) ||\n                openedFrom !== 'RISK_TREATMENT'\n              \" [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\n              <strong>\n                {{ checkSelectAll() ? \"Deselect All\" : \"Select All\" }}\n              </strong>\n            </app-cs-checkbox>\n          </div>\n          <div class=\"list-block\" [class.without-group]=\"!groupsEnabled\" [class.with-no-data]=\"\n              userlist?.length === 0 && grouplist?.length === 0 && !loader\n            \">\n            <ul class=\"group-user-list\" *ngIf=\"grouplist?.length > 0\">\n              <ng-container *ngFor=\"let group of grouplist\">\n                <li *ngIf=\"!hideGroup(group.userIds)\">\n                  <app-cs-checkbox [ngValue]=\"\n                      checkGroupList(group.userIds) &&\n                      group.userIds?.length !== 0\n                    \" (ngValueChange)=\"selectGroup(group.userIds, $event)\" [disabled]=\"\n                      (openedFrom === 'RISK_TREATMENT' &&\n                        selectedUsers?.length + group.userIds?.length > 19 &&\n                        !checkGroupList(group.userIds)) ||\n                      group.userIds?.length === 0\n                    \" (click)=\"\n                      validationCheck(\n                        openedFrom === 'RISK_TREATMENT' &&\n                          selectedUsers?.length + group.userIds?.length > 19 &&\n                          !checkGroupList(group.userIds)\n                      )\n                    \">\n                    <span class=\"name\">{{ group.groupName\n                      }}<span class=\"counter\">{{\n                        group.userIds?.length > 1\n                        ? group.userIds?.length + \" USERS\"\n                        : group.userIds?.length + \" USER\"\n                        }}</span></span>\n                  </app-cs-checkbox>\n                </li>\n              </ng-container>\n            </ul>\n            <ul class=\"group-user-list\" *ngIf=\"userlist?.length > 0\">\n              <li *ngFor=\"let user of userlist\" [appTooltip]=\"\n                  user\n                    | tooltipMessage\n                      : fromResponsibility\n                      : reviewerIds\n                      : overseerIds\n                      : assignorId\n                      : []\n                      : 'my_member_id'\n                      : (openedFrom === 'RISK_TREATMENT' &&\n                          selectedUsers?.length === 19 &&\n                          !selectedIds?.includes(user[userIdKey])) ||\n                          disabledId?.includes(user[userIdKey])\n                \" placement=\"bottom-left\" delay=\"0\" [tooltipMandatory]=\"true\">\n                <app-cs-checkbox [ngValue]=\"selectedIds?.includes(user[userIdKey])\"\n                  (ngValueChange)=\"selectUser(user[userIdKey], $event)\" [disabled]=\"\n                    (openedFrom === 'RISK_TREATMENT' &&\n                      selectedUsers?.length === 19 &&\n                      !selectedIds?.includes(user[userIdKey])) ||\n                    disabledId?.includes(user[userIdKey])\n                  \" (click)=\"\n                    validationCheck(\n                      openedFrom === 'RISK_TREATMENT' &&\n                        selectedUsers?.length === 19 &&\n                        !selectedIds?.includes(user[userIdKey])\n                    )\n                  \">\n                  <span class=\"name\">{{ user.employee_name }}</span>\n                </app-cs-checkbox>\n              </li>\n            </ul>\n            <app-no-data *ngIf=\"\n                userlist?.length === 0 && grouplist?.length === 0 && !loader\n              \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Users Found'\"></app-no-data>\n          </div>\n        </ng-container>\n      </ng-container>\n    </ng-container>\n\n    <ng-container *ngIf=\"currentTab === 'USER' && groupsEnabled && !loader\">\n      <ng-container *ngIf=\"usersList | search : search: 'employee_name' as userlist\">\n        <div class=\"body-top\" *ngIf=\"userlist?.length > 0 && search?.trim()?.length === 0\">\n          <app-cs-checkbox *ngIf=\"\n              (openedFrom === 'RISK_TREATMENT' && usersList?.length < 19) ||\n              openedFrom !== 'RISK_TREATMENT'\n            \" [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\n            <strong>\n              {{ checkSelectAll() ? \"Deselect All\" : \"Select All\" }}\n            </strong>\n          </app-cs-checkbox>\n        </div>\n\n        <div class=\"list-block\" [class.with-no-data]=\"userlist?.length === 0 && !loader\">\n          <ul class=\"group-user-list\" *ngIf=\"userlist?.length > 0\">\n            <li *ngFor=\"let user of userlist\" [appTooltip]=\"\n                user\n                  | tooltipMessage\n                    : fromResponsibility\n                    : reviewerIds\n                    : overseerIds\n                    : assignorId\n                    : []\n                    : 'my_member_id'\n                    : (openedFrom === 'RISK_TREATMENT' &&\n                        selectedUsers?.length === 19 &&\n                        !selectedIds?.includes(user[userIdKey])) ||\n                        disabledId?.includes(user[userIdKey])\n              \" placement=\"bottom-left\" delay=\"0\" [tooltipMandatory]=\"true\">\n              <app-cs-checkbox [ngValue]=\"selectedIds?.includes(user[userIdKey])\"\n                (ngValueChange)=\"selectUser(user[userIdKey], $event)\" [disabled]=\"\n                  (openedFrom === 'RISK_TREATMENT' &&\n                    selectedUsers?.length === 19 &&\n                    !selectedIds?.includes(user[userIdKey])) ||\n                  disabledId?.includes(user[userIdKey])\n                \" (click)=\"\n                  validationCheck(\n                    openedFrom === 'RISK_TREATMENT' &&\n                      selectedUsers?.length === 19 &&\n                      !selectedIds?.includes(user[userIdKey])\n                  )\n                \">\n                <span class=\"name\">{{ user.employee_name }}</span>\n              </app-cs-checkbox>\n            </li>\n          </ul>\n          <app-no-data *ngIf=\"userlist?.length === 0 && !loader\" [noDataImage]=\"ASSETS.search_data\"\n            [noDataText]=\"'No Users Found'\"></app-no-data>\n        </div>\n      </ng-container>\n    </ng-container>\n    <ng-container *ngIf=\"currentTab === 'GROUP' && groupsEnabled && !loader\">\n      <ng-container *ngIf=\"assigneeGroupsList | search: search : 'group_name' as grouplist\">\n        <div class=\"body-top\" *ngIf=\"grouplist?.length > 0 && search?.trim()?.length === 0\">\n          <app-cs-checkbox [ngValue]=\"checkselectAllgroups()\" (ngValueChange)=\"selectAllGroups($event)\">\n            <strong>\n              {{ checkselectAllgroups() ? \"Deselect All\" : \"Select All\" }}\n            </strong>\n          </app-cs-checkbox>\n        </div>\n        <div class=\"list-block\" [class.with-no-data]=\"grouplist?.length === 0 && !loader\">\n          <ul class=\"group-user-list\" *ngIf=\"grouplist?.length > 0\">\n            <ng-container>\n              <li *ngFor=\"let group of grouplist; let i = index\">\n                <app-cs-checkbox [ngValue]=\"selectedGroupIds?.includes(group[groupIdKey])\"\n                  (ngValueChange)=\"selectGroupElement(group, $event)\" [disabled]=\"\n                    openedFrom === 'RISK_TREATMENT' &&\n                    group.member_ids?.length > 19 &&\n                    !checkGroupList(group?.member_ids)\n                  \" (click)=\"\n                    validationCheck(\n                      openedFrom === 'RISK_TREATMENT' &&\n                        group.member_ids?.length > 19 &&\n                        !checkGroupList(group?.member_ids)\n                    )\n                  \">\n                  <span class=\"name vx-d-flex vx-align-center vx-w-100\">\n                    <span class=\"group-name\" [appTooltip]=\"group?.group_name\" placement=\"bottom-left\" delay=\"0\"\n                      [tooltipMandatory]=\"true\">{{ group?.group_name }}</span>\n                    <span class=\"counter\">{{ group[\"member_count\"] }}\n                      {{ group?.member_count > 1 ? \"USERS\" : \"USER\" }}</span>\n                  </span>\n                </app-cs-checkbox>\n              </li>\n            </ng-container>\n          </ul>\n          <app-no-data *ngIf=\"grouplist?.length === 0 && !loader\" [noDataImage]=\"ASSETS.search_data\"\n            [noDataText]=\"'No Groups Found'\"></app-no-data>\n        </div>\n      </ng-container>\n    </ng-container>\n\n    <app-floating-bar [selectedData]=\"selectedUsers\" [selectedGroups]=\"selectedGroups\"\n      [displayElementKey]=\"'employee_name'\" [elementId]=\"userIdKey\" [singularText]=\"'User selected'\"\n      [pluralText]=\"'Users selected'\" (closeEvent)=\"save(selectedIds)\" (closeList)=\"close()\"\n      (deleteEvent)=\"deleteEvent($event)\" (deleteGroupEvent)=\"deleteGroupEvent($event)\" [groupsEnabled]=\"groupsEnabled\"\n      [nonRemovableUsersList]=\"isDisabledSelected ? disabledId : []\" [isDisabled]=\"\n        groupsList?.length + usersList?.length === 0 ||\n        (selectedUsers?.length === 0 && selectedGroups?.length === 0)\n      \">\n    </app-floating-bar>\n  </div>\n</div>","export const PAGINATION_LIMITS = {\n  short_limit: 10,\n  mid_limit: 30,\n  long_limit: 100,\n};\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FloatingBarModule } from '../../../../sharedComponents/floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\nimport { PaginationModule } from '../../../../ui-kit/pagination/pagination.module';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\nimport { PAGINATION_LIMITS } from '../../constants/pagination-limits.constant';\nimport { ResponsibilityService } from '../../../../workflow-services/responsibility.service';\n\n@Component({\n  selector: 'app-grc-category-listing',\n  standalone: true,\n  imports: [\n    CommonModule,\n    PopoverModule,\n    FormgroupModule,\n    TooltipModule,\n    FloatingBarModule,\n    PaginationModule,\n  ],\n  templateUrl: './grc-category-listing.component.html',\n  styleUrls: ['./grc-category-listing.component.less'],\n  inputs: [\n    'tableCard',\n    'headerText',\n    'currentPage',\n    'selectedTabIndex',\n    'selectedCatAndRisk',\n    'selectedCategoryIds',\n  ],\n})\nexport class GrcCategoryListingComponent implements OnInit {\n  categories: any = [];\n  tableCard: Array<any> = [];\n  selectedCategory: any = [];\n  selectedCategoryIds: any = [];\n  activeCategoryId: string = '';\n  activeCategory: any = {};\n  headerText: string = 'Categories';\n  selectedCatAndRisk: any = [];\n  currentPage: number = 1;\n  totalPage: number = 1;\n  totalCategory: number = 0;\n  perPageLimit: number = PAGINATION_LIMITS?.mid_limit ?? 30;\n  selectedTabIndex: number = 1;\n  nameDisplayKey: any = 'name';\n  categoryFrom: number = 0;\n  categoryEnd: number = 0;\n  @Input('categories') set categoryList(value: any) {\n    this.categories = value;\n    this.activeCategoryId = this.categories[0]?.category_id;\n    this.setPaginationData();\n  }\n\n  @Input('programData') set getProgramData(value: any) {\n    this.categories = value?.data;\n    this.activeCategoryId = value?.data[0]?.category_id;\n    this.totalPage = value?.total_pages;\n    this.totalCategory = value?.total_items ?? 0;\n    this.categoryFrom = value?.items_from ?? 0;\n    this.categoryEnd = value?.items_to ?? 0;\n    this.perPageLimit = PAGINATION_LIMITS?.mid_limit ?? 30;\n  }\n\n  @Output() activeSelectedCategory: EventEmitter<any> = new EventEmitter();\n  @Output() onCategoryPageChange: EventEmitter<any> = new EventEmitter();\n\n  constructor(private responsibilityService: ResponsibilityService) {}\n\n  ngOnInit(): void {}\n\n  getSelectedCategory(category: any, event: any) {\n    if (event) {\n      this.selectedCategory.push(category);\n      this.selectedCategoryIds.push(category?.category_id);\n      this.activeCategoryId = category?.category_id;\n      this.onCategoryClick(category, 'checked');\n    } else {\n      this.deleteEvent(category);\n      this.onCategoryClick(category, 'unchecked');\n    }\n  }\n\n  deleteEvent(category: any) {\n    this.selectedCategory = this.selectedCategory?.filter(\n      (selected: any) => selected?.category_id !== category?.category_id\n    );\n    this.selectedCategoryIds = this.selectedCategoryIds?.filter(\n      (selectedCategoryId: any) => selectedCategoryId !== category?.category_id\n    );\n  }\n\n  onCategoryClick(\n    category: any,\n    clickedType: 'checked' | 'unchecked' | 'view'\n  ) {\n    this.activeCategory = category;\n    this.activeSelectedCategory.emit({\n      category: this.activeCategory,\n      clickedType: clickedType,\n    });\n    this.activeCategoryId = category?.category_id;\n  }\n\n  setPaginationData() {\n    this.perPageLimit =\n      this.tableCard[this.selectedTabIndex]?.limit_per_page ?? 30;\n    this.totalCategory = this.tableCard[this.selectedTabIndex]?.categoryCount;\n    this.totalPage = Math.ceil(\n      this.tableCard[this.selectedTabIndex]?.categoryCount /\n        this.tableCard[this.selectedTabIndex]?.limit_per_page\n    );\n  }\n\n  changePage(event: number) {\n    this.currentPage = event;\n    this.onCategoryPageChange.emit({\n      pageNo: this.currentPage,\n    });\n    this.responsibilityService.responsibilityPageNumber = this.currentPage;\n  }\n}\n","<div class=\"grc-category-listing\">\n    <div class=\"top-heading vx-pl-2 vx-mb-2 vx-d-flex vx-align-center\">\n        <app-cs-checkbox *ngIf=\"false\" [ngValue]=\"true\"></app-cs-checkbox>\n        <app-cs-checkbox-indeterminate *ngIf=\"false\"></app-cs-checkbox-indeterminate>\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-ml-2 vx-lh-4\">{{headerText}}</div>\n    </div>\n    <div class=\"grc-category-listing-inner\">\n        <div class=\"category-table-body\" [class.with-pagination]=\"totalPage > 1\">\n            <div class=\"category-table-row cursor-pointer\" *ngFor=\"let category of categories; let i = index\" [class.active]=\"selectedCategoryIds?.includes(category?.category_id)\" [class.select]=\"activeCategoryId === category?.category_id\" (click)=\"onCategoryClick(category, 'view')\">\n                <div class=\"category-table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                    <div class=\"sr-no\" [appTooltip]=\"i + (categoryFrom || (perPageLimit * (currentPage - 1) + 1))\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{(categoryFrom || (perPageLimit * (currentPage - 1) + 1)) + i}}</div>\n                    <app-cs-checkbox *ngIf=\"false\" [ngValue]=\"selectedCategoryIds?.includes(category?.category_id)\" (ngValueChange)=\"getSelectedCategory(category,$event)\"></app-cs-checkbox>\n                </div>\n                <div class=\"category-table-column vx-pr-1 vx-d-flex vx-align-center category-name\">\n                    <div class=\"value vx-fs-12 vx-label-txt vx-pr-5\" [appTooltip]=\"category[nameDisplayKey]\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{category[nameDisplayKey]}}</div>\n                </div>\n                <div class=\"category-table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n                    <i *ngIf=\"selectedCategoryIds?.includes(category?.category_id) || selectedCategoryIds?.includes(category?._id)\" class=\"icons grc-tick vx-fs-14\">&#xe93d;</i>\n                    <button class=\"arrow-btn vx-fs-12 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe970;</i></button>\n                </div>\n            </div>\n        </div>\n        <app-pagination *ngIf=\"totalPage > 1\" [start]=\"categoryFrom || (perPageLimit * (currentPage - 1) + 1)\" [end]=\"categoryEnd || (perPageLimit * currentPage)\" [total]=\"totalCategory\" [pageCount]=\"totalPage\" [currentPage]=\"currentPage\" (selectedPage)=\"changePage($event)\"></app-pagination>\n    </div>\n</div>","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Optional,\n  Output,\n} from '@angular/core';\nimport { FloatingBarModule } from '../../../../sharedComponents/floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\nimport { PaginationModule } from '../../../../ui-kit/pagination/pagination.module';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\nimport { Configurations } from '../../../../configurations';\n\n@Component({\n  selector: 'app-grc-risk-listing',\n  standalone: true,\n  imports: [\n    CommonModule,\n    PopoverModule,\n    FormgroupModule,\n    TooltipModule,\n    FloatingBarModule,\n    PaginationModule,\n  ],\n  templateUrl: './grc-risk-listing.component.html',\n  styleUrls: ['./grc-risk-listing.component.less'],\n  inputs: [\n    'tableCard',\n    'activeCategory',\n    'headerText',\n    'currentPage',\n    'perPageLimit',\n    'totalListData',\n    'totalPages',\n    'selectedListData',\n    'selectedListDataIds',\n    'selectedCatAndRisk',\n    'calledFrom',\n  ],\n})\nexport class GrcRiskListingComponent implements OnInit {\n  profilePic = '';\n  env: any;\n  dataList: any = [];\n  headerText: string = 'Name';\n  selectedListData: any = [];\n  selectedListDataIds: any = [];\n  perPageLimit: number = 30;\n  currentPage: number = 1;\n  totalPages: number = 1;\n  totalListData: number = 0;\n  selectedCatAndRisk: any = [];\n  activeCategory: any = {};\n  calledFrom: string = '';\n\n  @Input('dataList') set risksList(value: any) {\n    this.dataList = value;\n  }\n\n  @Input('selectedCatAndRisk') set getSelectedCatAndRisk(value: any) {\n    this.selectedCatAndRisk = value;\n    this.getSelectedDataAndIds(value);\n  }\n\n  @Output() getUpdatedDataList: EventEmitter<any> = new EventEmitter();\n  @Output() changeSelectedCatAndRisk: EventEmitter<any> = new EventEmitter();\n\n  constructor(@Optional() config?: Configurations) {\n    this.env = config?.envConfig;\n    this.profilePic = this.env.s3Url + this.env.s3Bucket + this.env.profile;\n  }\n\n  ngOnInit(): void {}\n\n  getSelectedData(responsibility: any, event: any) {\n    if (event) {\n      this.selectedListData.push(responsibility);\n      this.selectedListDataIds.push(responsibility?._id);\n    } else {\n      this.deleteEvent(responsibility);\n    }\n    this.updateOrCreateCategory(\n      this.activeCategory?.category_id,\n      this.activeCategory\n    );\n  }\n\n  deleteEvent(responsibility: any) {\n    this.selectedListData = this.selectedListData?.filter(\n      (selected: any) => selected?._id !== responsibility?._id\n    );\n    this.selectedListDataIds = this.selectedListDataIds?.filter(\n      (selectedListDataId: any) => selectedListDataId !== responsibility?._id\n    );\n  }\n\n  selectAll(event: any) {\n    this.dataList?.forEach((data: any) => {\n      if (event) {\n        if (!this.selectedListDataIds.includes(data?._id)) {\n          this.selectedListData.push(data);\n          this.selectedListDataIds.push(data?._id);\n        }\n      } else {\n        this.deleteEvent(data);\n      }\n    });\n    this.updateOrCreateCategory(\n      this.activeCategory?.category_id,\n      this.activeCategory\n    );\n  }\n\n  isAllSelected(): boolean {\n    if (\n      this.selectedListDataIds &&\n      this.selectedListDataIds.length >= this.selectedListData?.length &&\n      this.selectedListDataIds.length > 0\n    ) {\n      for (const grc of this.dataList) {\n        if (!this.selectedListDataIds.includes(grc?._id)) {\n          return false;\n        }\n      }\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  changePage(event: number) {\n    this.currentPage = event;\n    this.getUpdatedDataList.emit({\n      pageNo: this.currentPage,\n    });\n  }\n\n  updateOrCreateCategory(categoryId: number, category: any) {\n    const categoryIndex = this.findCheckedCategoryIndex(categoryId);\n    if (categoryIndex !== -1) {\n      // Category exists, update risk value\n      this.selectedCatAndRisk[categoryIndex].risks =\n        this.selectedListData ?? [];\n      if (this.selectedListData.length === 0) {\n        // Remove category if selectedListData is empty\n        this.selectedCatAndRisk.splice(categoryIndex, 1);\n      }\n    } else {\n      // Category doesn't exist, create new category with subcategory\n      this.selectedCatAndRisk.push({\n        category: category ?? {},\n        risks: this.selectedListData ?? [],\n      });\n    }\n    this.changeSelectedCatAndRisk.emit(this.selectedCatAndRisk);\n  }\n\n  getSelectedDataAndIds(selectedData: any) {\n    const categoryIndex = this.findCheckedCategoryIndex(\n      this.activeCategory?.category_id\n    );\n    this.selectedListData = [];\n    this.selectedListDataIds = [];\n    if (categoryIndex !== -1) {\n      this.selectedListData = selectedData[categoryIndex]?.risks ?? [];\n      this.selectedListData?.forEach((data: any) => {\n        this.selectedListDataIds.push(data?._id);\n      });\n    }\n  }\n\n  findCheckedCategoryIndex(categoryId: number | number[]) {\n    let categoryIndex = -1;\n    if (Array.isArray(categoryId) && categoryId.length === 0) {\n      // Handle empty categoryId array case\n      const uncategorizedIndex = this.selectedCatAndRisk.findIndex(\n        (cat: any) => cat?.category?._id === 'uncategorized'\n      );\n      if (uncategorizedIndex !== -1) {\n        return uncategorizedIndex;\n      }\n    } else {\n      categoryIndex = this.selectedCatAndRisk.findIndex(\n        (cat: any) => cat?.category?.category_id === categoryId\n      );\n    }\n    return categoryIndex;\n  }\n\n  deleteSelectedRisk(categoryId: number, risk: any) {\n    const categoryIndex = this.findCheckedCategoryIndex(categoryId);\n    if (categoryIndex !== -1) {\n      // Category exists, update risk value\n      const riskIndex = this.selectedCatAndRisk[\n        categoryIndex\n      ]?.risks?.findIndex((item: any) => item?._id === risk?._id);\n      if (riskIndex !== -1) {\n        this.selectedCatAndRisk[categoryIndex]?.risks.splice(riskIndex, 1);\n      }\n\n      if (this.selectedCatAndRisk[categoryIndex]?.risks?.length === 0) {\n        // Remove category if selectedListData is empty\n        this.selectedCatAndRisk.splice(categoryIndex, 1);\n      }\n    }\n    this.changeSelectedCatAndRisk.emit(this.selectedCatAndRisk);\n  }\n}\n","<div class=\"grc-responsibility-listing\">\n    <div class=\"top-heading vx-pl-2 vx-mb-2 vx-d-flex vx-align-center\">\n        <app-cs-checkbox *ngIf=\"isAllSelected() || selectedListDataIds?.length === 0\"  [ngValue]=\"isAllSelected()\" (ngValueChange)=\"selectAll($event)\"></app-cs-checkbox>\n        <app-cs-checkbox-indeterminate *ngIf=\"!isAllSelected() && selectedListDataIds?.length\" [ngValue]=\"true\" (ngValueChange)=\"selectAll(false)\"></app-cs-checkbox-indeterminate>\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-ml-2 vx-lh-4\">{{headerText}}</div>\n    </div>\n    <div class=\"grc-responsibility-listing-inner\">\n        <div class=\"grc-responsibility-table-body\" [class.with-pagination]=\"totalPages > 1\">\n            <div class=\"grc-responsibility-table-row\" *ngFor=\"let list of dataList; let i = index\" [class.active]=\"selectedListDataIds?.includes(list?._id)\">\n                <div class=\"grc-responsibility-table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                    <div class=\"sr-no\" [appTooltip]=\"(perPageLimit * (currentPage - 1)) + i + 1\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{(perPageLimit * (currentPage - 1)) + i + 1}}</div>\n                    <app-cs-checkbox [ngValue]=\"selectedListDataIds?.includes(list?._id)\" (ngValueChange)=\"getSelectedData(list,$event)\"></app-cs-checkbox>\n                </div>\n                <div class=\"grc-responsibility-table-column vx-pr-1 vx-d-flex vx-align-center responsibility-name\">\n                    <div class=\"vx-avatar-group vx-mr-1\">\n                        <div class=\"vx-avatar md\" [appTooltip]=\"list?.entrustedBy?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                            <span *ngIf=\"list?.entrustedBy?.profilePic === ''\" class=\"blue\">{{list.entrustedBy?.shortName}}</span>\n                            <img *ngIf=\"list?.entrustedBy?.profilePic !== ''\" src=\"{{profilePic + list?.entrustedBy?.profilePic}}\" alt=\"\">\n                        </div>\n                        <div *ngIf=\"calledFrom === 'responsibilityLinkage' && list?.entrustedTo?.EntrustedToMembers?.length === 0\" class=\"vx-avatar md\" [appTooltip]=\"list?.entrustedTo?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                            <span *ngIf=\"list?.entrustedTo?.profilePic === ''\" class=\"blue\">{{list?.entrustedTo?.shortName}}</span>\n                            <img *ngIf=\"list?.entrustedTo?.profilePic !== ''\" src=\"{{profilePic + list?.entrustedTo?.profilePic}}\" alt=\"\">\n                        </div>\n                        <div *ngIf=\"calledFrom === 'responsibilityLinkage' && list?.entrustedTo?.EntrustedToMembers?.length\" class=\"vx-avatar md counter\" appPopover (click)=\"multiUser.popover()\" placement=\"left\">\n                            <span class=\"green\">+{{list?.entrustedTo?.EntrustedToMembers?.length}}</span>\n                        </div>\n                        <app-popover #multiUser>\n                            <div class=\"wf-action-list\">\n                                <ul class=\"action-item\">\n                                    <li *ngFor=\"let user of list?.entrustedTo?.EntrustedToMembers\">\n                                        <div class=\"avatar-card\">\n                                            <div *ngIf=\"user?.profile_pic === ''\" class=\"avatar\">{{user?.member_short_name}}</div>\n                                            <div *ngIf=\"user?.profile_pic !== ''\" class=\"avatar\"><img src=\"{{profilePic + user?.profile_pic}}\" alt=\"\"></div>\n                                            <span class=\"value\" [appTooltip]=\"user.member_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{user?.member_name}}</span>\n                                        </div>\n                                    </li>\n                                </ul>\n                            </div>\n                        </app-popover>\n                    </div>\n                    <!-- <i class=\"icons star vx-fs-10 vx-mr-1\" [class.active]=\"true\">&#xea70;</i> -->\n                    <div class=\"name-inner\">\n                        <div class=\"vx-d-flex vx-align-center\">\n                            <div class=\"id vx-fs-10 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">{{list?.controlId}}</div>\n                            <div class=\"name vx-fs-13 vx-label-txt\" [appTooltip]=\"list?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{list?.name}}</div>\n                        </div>\n                        <div class=\"vx-d-flex vx-align-center\" *ngIf=\"list?.withinData?.length\">\n                            <div class=\"vx-fs-10 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">RESPONSIBILITY CENTER:</div>\n                            <div class=\"within-part vx-d-flex vx-align-center vx-pr-3\">\n                                <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">Within</div>\n                                <div class=\"within-value vx-fs-11 vx-paragraph-txt\" ><span *ngFor=\"let parent of list?.withinData; let last = last\" [appTooltip]=\"parent?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{parent?.name}} \n                                    <span *ngIf=\"!last\"> <\n                                    </span>\n                                </span></div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <app-pagination *ngIf=\"totalPages > 1\" [start]=\"perPageLimit * (currentPage - 1) + 1\" [end]=\"perPageLimit * currentPage\" [total]=\"totalListData\" [pageCount]=\"totalPages\" [currentPage]=\"currentPage\" (selectedPage)=\"changePage($event)\"></app-pagination>\n    </div>\n</div>","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FloatingBarModule } from '../../../../sharedComponents/floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\nimport { PaginationModule } from '../../../../ui-kit/pagination/pagination.module';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\nimport { TableCardComponent } from '../table-card/table-card.component';\nimport { GrcCategoryListingComponent } from '../grc-category-listing/grc-category-listing.component';\nimport { GrcRiskListingComponent } from '../grc-risk-listing/grc-risk-listing.component';\nimport { GrcService } from '../../services/grc.service';\nimport { TABLE_CARD } from '../../constants/grcObject.constant';\nimport { NoDataModule } from '../../../../ui-kit/no-data/no-data.module';\nimport { LINKS } from '../../constants/cdn-link.constant';\nimport { ListLoaderModule } from '../../../../sharedComponents/list-loader/list-loader.module';\n\n@Component({\n  selector: 'app-risk-category-risk-listing',\n  standalone: true,\n  imports: [\n    CommonModule,\n    PopoverModule,\n    FormgroupModule,\n    TooltipModule,\n    FloatingBarModule,\n    PaginationModule,\n    TableCardComponent,\n    GrcCategoryListingComponent,\n    GrcRiskListingComponent,\n    ListLoaderModule,\n    NoDataModule,\n  ],\n  templateUrl: './risk-category-risk-listing.component.html',\n  styleUrls: ['./risk-category-risk-listing.component.less'],\n  inputs: ['selectedTab'],\n  outputs: ['closeUsersList'],\n})\nexport class RiskCategoryRiskListingComponent implements OnInit {\n  tableCard = TABLE_CARD;\n  CDN_LINK = LINKS;\n\n  categorySubscription!: Subscription;\n  riskSubscription!: Subscription;\n\n  animation = false;\n  isCategoryLoader = false;\n  isRiskLoader = false;\n\n  selectedTab: number = 1;\n  categoryCurrentPage: number = 1;\n  searchString: string = '';\n  categoriesList: any = [];\n  risksList: any = [];\n  activeCategory: any = {};\n  riskCurrentPage: number = 1;\n  selectedCatAndRisk: any = [];\n  preSelectedCatAndRisk: any = [];\n  selectedCategoryIds: any = [];\n  selectedCategories: any = [];\n  selectedRisks: any = [];\n\n  @Input('selectedCatAndRisk') set selectedCatAndRiskData(value: any) {\n    this.selectedCatAndRisk = value;\n    this.preSelectedCatAndRisk = JSON.parse(JSON.stringify(value));\n    this.getSelectedCategoriesId(this.selectedCatAndRisk);\n    this.getRiskCategoryPayload(value);\n  }\n  @Input() selectedRC: any[] = [];\n\n  closeUsersList: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('dataListing')\n  responsibilityListingComponent!: GrcRiskListingComponent;\n\n  constructor(private grcService: GrcService) {}\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.getCategoriesList();\n    this.getCategoriesCount();\n  }\n\n  setSelectedTab(event: any) {\n    this.selectedTab = event?.type;\n    this.categoryCurrentPage = 1;\n    this.getCategoriesList();\n  }\n\n  getCategoriesList() {\n    if (this.categorySubscription) {\n      this.categorySubscription.unsubscribe();\n    }\n    let queryParam = {\n      pageNo: this.categoryCurrentPage ?? 1,\n      searchString: this.searchString ?? '',\n      type: this.selectedTab ?? 1,\n    };\n    this.isCategoryLoader = true;\n    this.categorySubscription = this.grcService\n      .getRiskCategories(queryParam)\n      .subscribe(\n        (res: any) => {\n          this.categoriesList = res?.map((category: any) => {\n            return {\n              ...category,\n              name: category?.category_name,\n            };\n          });\n          this.riskCurrentPage = 1;\n          this.activeCategory = this.categoriesList?.length\n            ? this.categoriesList[0]\n            : [];\n          this.categoriesList?.length ? this.getRiskList() : null;\n          this.isCategoryLoader = false;\n        },\n        (err: any) => {\n          this.isCategoryLoader = false;\n        }\n      );\n  }\n\n  getCategoriesCount() {\n    let queryParam = {\n      searchString: this.searchString ?? '',\n      rc_ids: this.selectedRC?.map((rc: any) => rc?.rc_id) ?? [],\n    };\n    this.grcService.getRiskCategoriesCount(queryParam).subscribe(\n      (res: any) => {\n        this.tableCard = res.map((item: any) => {\n          return {\n            title: item?.categoryTypeName,\n            count: item?.categoryCount,\n            type: item?.categoryType,\n          };\n        });\n      },\n      (err: any) => {}\n    );\n  }\n\n  getRiskList(clickedType?: any) {\n    if (this.riskSubscription) {\n      this.riskSubscription.unsubscribe();\n    }\n    let payload = {\n      p: this.riskCurrentPage ?? 1,\n      q: this.searchString ?? '',\n      type: this.selectedTab ?? 1,\n      source: 'risk_category',\n      category_id: this.activeCategory?.category_id ?? [],\n      rc_ids: this.selectedRC?.map((rc: any) => rc?.rc_id).join() ?? '',\n    };\n    this.isRiskLoader = true;\n    this.riskSubscription = this.grcService.getRisks(payload).subscribe(\n      (res: any) => {\n        this.risksList = this.setDataListStructure(res);\n        this.isRiskLoader = false;\n      },\n      (err: any) => {\n        this.isRiskLoader = false;\n      }\n    );\n  }\n\n  setDataListStructure(res: any) {\n    const data = res?.map((risk: any) => {\n      return {\n        ...risk,\n        name: risk?.RiskName,\n        controlId: risk?.RiskControlId,\n        _id: risk?.EncryptedRiskId,\n        entrustedBy: {\n          name: risk?.MemberName,\n          email: risk?.MemberEmail,\n          profilePic: risk?.MemberProfilePic ?? '',\n          shortName: risk?.MemberSortName,\n        },\n        entrustedTo: {},\n        withinData: risk?.Entity?.map((within: any) => {\n          return {\n            name: within?.rc_name,\n          };\n        }),\n      };\n    });\n    return data;\n  }\n\n  activeSelectedCategory(event: any) {\n    this.activeCategory = event?.category;\n    this.riskCurrentPage = 1;\n    this.getRiskList(event?.clickedType);\n  }\n\n  getUpdatedDataList(event: any) {\n    this.riskCurrentPage = event?.pageNo;\n    this.getRiskList();\n  }\n\n  getTotalRiskPage() {\n    const totalPage =\n      this.activeCategory?.categoryRiskCount /\n      this.activeCategory?.categoryRiskLimit;\n    return Math.ceil(Math.abs(totalPage));\n  }\n\n  handleSearch(event: any) {\n    if (this.searchString != event) {\n      this.categoryCurrentPage = 1;\n      this.searchString = event;\n      this.getCategoriesList();\n      this.getCategoriesCount();\n    }\n  }\n\n  close() {\n    this.closeUsersList.emit(this.preSelectedCatAndRisk);\n  }\n\n  save() {\n    this.closeUsersList.emit(this.selectedCatAndRisk);\n  }\n\n  onCategoryPageChange(event: any) {\n    this.categoryCurrentPage = event?.pageNo;\n    this.getCategoriesList();\n  }\n\n  changeSelectedCatAndRisk(event: any) {\n    this.selectedCatAndRisk = event;\n    this.getRiskCategoryPayload(event);\n    this.getSelectedCategoriesId(this.selectedCatAndRisk);\n  }\n\n  getSelectedCategoriesId(selectedData: any) {\n    this.selectedCategoryIds = [];\n    selectedData?.forEach((selected: any) => {\n      if (selected?.category?._id === 'uncategorized') {\n        this.selectedCategoryIds?.push('uncategorized');\n      } else {\n        this.selectedCategoryIds?.push(selected?.category?.category_id);\n      }\n    });\n  }\n\n  getRiskCategoryPayload(selectedData: any) {\n    this.selectedRisks = [];\n    this.selectedCategories = [];\n    selectedData.forEach((item: any) => {\n      this.selectedRisks.push(...item?.risks);\n      this.selectedCategories.push(item?.category);\n    });\n  }\n\n  deleteEvent(event: any) {\n    if (this.activeCategory?.category_id == event?.CategoryIds[0]) {\n      this.responsibilityListingComponent.getSelectedData(event, false);\n    } else {\n      this.responsibilityListingComponent?.deleteSelectedRisk(\n        event?.CategoryIds[0],\n        event\n      );\n    }\n  }\n}\n","<div class=\"risk-category-risk-listing\" [class.animate]=\"animation\">\n    <div class=\"risk-category-risk-listing-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\n        <h3 class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Risks</h3></div>\n    <div class=\"risk-category-risk-listing-body\">\n        <app-table-card class=\"vx-w-100\" [tableCard]=\"tableCard\" [singleSelectedText]=\"'Category Selected'\" [multipleSelectedText]=\"'Categories Selected'\" (setSelectedTab)=\"setSelectedTab($event)\" [selectedTab]=\"1\"></app-table-card>\n        <div class=\"search-block vx-mb-2\">\n          <i class=\"icons\">&#xe90b;</i>\n          <input type=\"text\"  #searchRiskCategory (keyup.enter)=\"handleSearch($event.target.value)\" placeholder=\"Search Risk Categories\" />\n        </div>\n        <div class=\"risk-category-risk-listing-body-inner vx-mb-2 vx-d-flex\" [class.with-noData]=\"(!isCategoryLoader && !categoriesList?.length)\">\n            <ng-container *ngIf=\"isCategoryLoader || categoriesList?.length\">\n                <div class=\"inner-item-left vx-pr-2\">\n                    <app-grc-category-listing *ngIf=\"!isCategoryLoader\" [headerText]=\"'Risk Categories'\" [categories]=\"categoriesList\"  [selectedCatAndRisk]=\"selectedCatAndRisk\" [tableCard]=\"tableCard\" [currentPage]=\"categoryCurrentPage\" [selectedTabIndex]=\"selectedTab\" [selectedCategoryIds]=\"selectedCategoryIds\" (activeSelectedCategory)=\"activeSelectedCategory($event)\" (onCategoryPageChange)=\"onCategoryPageChange($event)\"></app-grc-category-listing>\n                    <app-list-loader *ngIf=\"isCategoryLoader\"></app-list-loader>\n                </div>\n                <div class=\"inner-item-right\">\n                    <app-grc-risk-listing #dataListing *ngIf=\"!isRiskLoader && !isCategoryLoader && risksList?.length\" [headerText]=\"'Risk Name'\" [dataList]=\"risksList\" [activeCategory]=\"activeCategory\" [selectedCatAndRisk]=\"selectedCatAndRisk\" (changeSelectedCatAndRisk)=\"changeSelectedCatAndRisk($event)\" [currentPage]=\"riskCurrentPage\" [perPageLimit]=\"activeCategory?.categoryRiskLimit\" [totalListData]=\"activeCategory?.categoryRiskCount\" [totalPages]=\"getTotalRiskPage()\" (getUpdatedDataList)=\"getUpdatedDataList($event)\" ></app-grc-risk-listing>\n                    <app-list-loader *ngIf=\"isRiskLoader || isCategoryLoader\"></app-list-loader>\n                    <app-no-data *ngIf=\"risksList?.length === 0 && !(isRiskLoader || isCategoryLoader)\" [noDataImage]=\"CDN_LINK?.noData\" [noDataText]=\"'No data to display'\"></app-no-data>\n                </div>\n            </ng-container>\n            <app-no-data *ngIf=\"(!isCategoryLoader && !categoriesList?.length)\" [noDataImage]=\"CDN_LINK?.noData\" [noDataText]=\"'No data to display'\"></app-no-data>\n        </div>\n        <app-floating-bar  [selectedData]=\"selectedRisks?.length ? selectedRisks : []\"  (closeList)=\"close()\" (closeEvent)=\"save()\"  [displayElementKey]=\"'name'\" [singularText]=\"'Risk selected'\" [pluralText]=\"'Risks selected'\" (deleteEvent)=\"deleteEvent($event)\"></app-floating-bar>\n    </div>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'getSelectedValue',\n  pure: false,\n})\nexport class GetSelectedValuePipe implements PipeTransform {\n  transform(value: any): Array<any> {\n    value = JSON.parse(JSON.stringify(value));\n    let selectedValue = value.choices\n      .filter((eachChoice: any) => eachChoice['is_selected'])\n      .map((eachChoice: any) => {\n        eachChoice['item_name'] = eachChoice['title'];\n        return eachChoice;\n      });\n    if (value?.hasOther && value?.is_other_selected) {\n      selectedValue.push({\n        item_name: value?.otherValue,\n        is_selected: true,\n      });\n    }\n    return selectedValue;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({\n  name: 'getUserDetails',\n})\n\nexport class  GetUserDetailsPipe implements PipeTransform {\n  transform(ids: number[], list: any[]): any[] {\n    const userDetails = list\n      .filter((item) => ids?.includes(item?.id))\n      .map((item) => {\n        return {\n          name: item?.name,\n          email: item?.email,\n          avatar: item?.imagePath ?? ''\n        };\n      });\n    return userDetails;\n  }\n} ","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'isAttributesValid',\n  pure: false,\n})\nexport class IsAttributesValidPipe implements PipeTransform {\n  transform(attribute: any): boolean {\n    let isValid: boolean = true;\n    if (attribute?.isRequired) {\n      if (\n        attribute.type === 'single-textbox' ||\n        attribute.type === 'date-time'\n      ) {\n        const choice = attribute?.choices[0];\n        if (typeof choice.value === 'string' && choice.value.trim() === '') {\n          isValid = false;\n        }\n      } else if (\n        attribute.type === 'checkbox' ||\n        attribute.type === 'dropdown'\n      ) {\n        let isChoiceSelected = false;\n        if (attribute.hasOther && attribute?.is_other_selected) {\n          isChoiceSelected = true;\n        }\n        if (!isChoiceSelected) {\n          for (const choice of attribute.choices) {\n            if (choice.is_selected) {\n              isChoiceSelected = true;\n              break;\n            }\n          }\n        }\n\n        if (!isChoiceSelected) {\n          isValid = false;\n        }\n      }\n    } else {\n      //  isValid = true;\n    }\n\n    return isValid;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'uniqueResponsibilities',\n})\nexport class UniqueResponsibilitiesPipe implements PipeTransform {\n  transform(value: [], ...args: any[]): unknown {\n    let returnType = args[0];\n    if (returnType === 'entireObject') {\n      const uniqueObjects = Array.from(\n        new Map(value.map((item: any) => [item._id, item])).values()\n      );\n      return uniqueObjects;\n    } else {\n      const uniqueIds = [...new Set(value.map((item: any) => item._id))];\n      return uniqueIds;\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'userShortName',\n})\nexport class GetUserShortNamePipe implements PipeTransform {\n  transform(fullName: string): string {\n    const trimmedName = fullName?.trim()?.toUpperCase();\n\n    if (!trimmedName) {\n      return '--';\n    }\n\n    const parts = trimmedName?.toUpperCase()?.split(' ');\n\n    if (parts.length > 1) {\n      return parts[0].charAt(0) + parts.pop()!.charAt(0);\n    } else {\n      const name = parts[0];\n      return name[1] ? name[0] + name[1] : name[0];\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({\n  name: 'filterResponsibility',\n})\nexport class FilterResponsibilityPipe implements PipeTransform {\n  transform(ids: any[], list: any[]): any[] {\n    return list\n      .filter((item: any) => ids.some((data: any) => data?.rid === item?.rid))\n      .map((item: any) => {\n        return {\n          ...item,\n          _id: item?.rid,\n        };\n      });   \n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { GetSelectedValuePipe } from './get-selected-value.pipe';\nimport { GetUserDetailsPipe } from './get-user-details.pipe';\nimport { IsAttributesValidPipe } from './is-attributes-valid.pipe';\nimport { UniqueResponsibilitiesPipe } from './unique-responsibilities.pipe';\nimport { GetUserShortNamePipe } from './user-short-name.pipe';\nimport { FilterResponsibilityPipe } from './filterResponsibility.pipe';\n\n@NgModule({\n  declarations: [\n    GetSelectedValuePipe,\n    GetUserDetailsPipe,\n    GetUserShortNamePipe,\n    IsAttributesValidPipe,\n    UniqueResponsibilitiesPipe,\n    FilterResponsibilityPipe,\n  ],\n  imports: [CommonModule],\n  exports: [\n    GetSelectedValuePipe,\n    GetUserDetailsPipe,\n    GetUserShortNamePipe,\n    IsAttributesValidPipe,\n    UniqueResponsibilitiesPipe,\n    FilterResponsibilityPipe,\n  ],\n})\nexport class WorkflowPipesModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Optional,\n  Output,\n} from '@angular/core';\n\nimport { FloatingBarModule } from '../../../../sharedComponents/floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\nimport { PaginationModule } from '../../../../ui-kit/pagination/pagination.module';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\nimport { Configurations } from '../../../../configurations';\nimport { WorkflowPipesModule } from '../../workflow-pipes/workflow-pipes.module';\nimport  {PipesModule} from '../../../../pipes/pipes.module'\n@Component({\n  selector: 'app-grc-responsibility-listing',\n  standalone: true,\n  imports: [\n    CommonModule,\n    PopoverModule,\n    FormgroupModule,\n    TooltipModule,\n    FloatingBarModule,\n    PaginationModule,\n    WorkflowPipesModule,\n    PipesModule,\n\n  ],\n  templateUrl: './grc-responsibility-listing.component.html',\n  styleUrls: ['./grc-responsibility-listing.component.less'],\n  inputs: [\n    'tableCard',\n    'activeProgram',\n    'headerText',\n    'currentPage',\n    'perPageLimit',\n    'totalListData',\n    'totalPages',\n    'selectedListData',\n    'selectedListDataIds',\n    'MODE'\n  ],\n})\nexport class GrcResponsibilityListingComponent implements OnInit {\n  profilePic = '';\n  env: any;\n  dataList!: any;\n  headerText: string = 'Name';\n  selectedListData: any = [];\n  selectedListDataIds: any = [];\n  perPageLimit: number = 30;\n  currentPage: number = 1;\n  totalPages: number = 1;\n  totalListData: number = 0;\n  // selectedProgramAndResp: any = [];\n  activeProgram: any = {};\n  calledFrom: string = '';\n  MODE: 'CREATE' | 'EDIT' = 'CREATE';\n\n  @Input() allSelectedResponsibilityIds: any = [];\n\n  @Input('responsibilityData') set getResponsibilityList(value: any) {\n    this.dataList = value;\n  }\n\n  @Input() selectedProgramAndResp: any = [];\n  @Input() searchString: string = '';\n\n  @Output() getUpdatedDataList: EventEmitter<any> = new EventEmitter();\n  @Output() changeSelectedProgramAndResp: EventEmitter<any> =\n    new EventEmitter();\n\n  constructor(@Optional() config?: Configurations) {\n    this.env = config?.envConfig;\n    this.profilePic = this.env.s3Url + this.env.s3Bucket + this.env.profile;\n  }\n\n  ngOnInit(): void {}\n\n  getSelectedData(responsibility: any, event: any) {\n    if (event) {\n      this.selectedListData.push(responsibility);\n      this.selectedListDataIds.push(responsibility?._id);\n      this.allSelectedResponsibilityIds.push(responsibility?._id);\n      this.selectedProgramAndResp.push(responsibility)\n    } else {\n      this.deleteEvent(responsibility);\n    }\n  }\n\n  deleteEvent(responsibility: any) {\n    this.selectedListData = this.selectedListData?.filter(\n      (selected: any) => selected?._id !== responsibility?._id\n    );\n    this.selectedListDataIds = this.selectedListDataIds?.filter(\n      (selectedListDataId: any) => selectedListDataId !== responsibility?._id\n    );\n    this.allSelectedResponsibilityIds = this.allSelectedResponsibilityIds?.filter(\n      (selected: any) => selected !== responsibility?._id\n    );\n    this.selectedProgramAndResp = this.selectedProgramAndResp?.filter(\n      (selected: any) => selected?.rid !== responsibility?.rid\n    );\n    this.changeSelectedProgramAndResp.emit(this.selectedProgramAndResp);\n  }\n\n  selectAll(event: any) {\n    this.dataList?.data?.forEach((data: any) => {\n      if (event) {\n        if (!this.selectedListDataIds.includes(data?._id)) {\n          this.selectedListData.push(data);\n          this.selectedListDataIds.push(data?._id);\n        }\n      } else {\n        this.deleteEvent(data);\n      }\n    });\n    this.updateOrCreateCategory(\n      this.activeProgram?.programId,\n      this.activeProgram\n    );\n  }\n\n  isAllSelected(): boolean {\n    if (\n      this.selectedListDataIds &&\n      this.selectedListDataIds.length >= this.selectedListData?.length &&\n      this.selectedListDataIds.length > 0\n    ) {\n      for (const grc of this.dataList?.data) {\n        if (!this.selectedListDataIds.includes(grc?._id)) {\n          return false;\n        }\n      }\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  changePage(event: number) {\n    this.currentPage = event;\n    this.getUpdatedDataList.emit({\n      pageNo: this.currentPage,\n    });\n  }\n\n  updateOrCreateCategory(programId: number, program: any) {\n    const programIndex = this.findCheckedProgramIndex(programId);\n    if (programIndex !== -1) {\n      // Category exists, update risk value\n      this.selectedProgramAndResp[programIndex].responsibility =\n        this.selectedListData ?? [];\n      this.selectedProgramAndResp[programIndex].category =\n        this.getSubCategoryIds(this.selectedListData ?? []);\n      if (this.selectedListData.length === 0) {\n        // Remove category if selectedListData is empty\n        this.selectedProgramAndResp.splice(programIndex, 1);\n      }\n    } else if (this.selectedListData?.length > 0) {\n      // Category doesn't exist, create new category with subcategory\n      this.selectedProgramAndResp.push({\n        program: program ?? {},\n        category: this.getSubCategoryIds(this.selectedListData ?? []),\n        responsibility: this.selectedListData ?? [],\n      });\n    }\n    this.changeSelectedProgramAndResp.emit(this.selectedProgramAndResp);\n  }\n\n  getSelectedDataAndIds(selectedData: any) {\n    const programIndex = this.findCheckedProgramIndex(\n      this.activeProgram?.programId\n    );\n    this.selectedListData = [];\n    this.selectedListDataIds = [];\n    if (programIndex !== -1) {\n      this.selectedListData = selectedData[programIndex]?.responsibility ?? [];\n      this.selectedListData?.forEach((data: any) => {\n        this.selectedListDataIds.push(data?._id);\n      });\n    }\n  }\n\n  findCheckedProgramIndex(categoryId: number | number[]) {\n    let programIndex = -1;\n    programIndex = this.selectedProgramAndResp.findIndex(\n      (cat: any) => cat?.program?.programId === categoryId\n    );\n    return programIndex;\n  }\n\n  deleteSelectedResponsibility(responsibility: any) {\n    this.selectedProgramAndResp = this.selectedProgramAndResp?.map(\n      (data: any) => {\n        let filteredResponsibility = data?.responsibility?.filter(\n          (resp: any) => resp?._id !== responsibility?._id\n        );\n        return {\n          ...data,\n          responsibility: filteredResponsibility,\n          category: [\n            ...(new Set(\n              filteredResponsibility\n                .map((obj: any) => [obj?.subCategoryId])\n                ?.flat()\n            ) || []),\n          ],\n        };\n      }\n    );\n\n    this.selectedProgramAndResp = this.selectedProgramAndResp.filter(\n      (data: any) => {\n        return data?.responsibility?.length > 0;\n      }\n    );\n    this.changeSelectedProgramAndResp.emit(this.selectedProgramAndResp);\n  }\n\n  getSubCategoryIds(selectedResponsibility: any) {\n    let idSet: any = new Set(\n      selectedResponsibility?.map(\n        (responsibility: any) => responsibility?.subCategoryId ?? []\n      )\n    );\n    if (this.MODE === 'EDIT') {\n      const programIndex = this.findCheckedProgramIndex(\n        this.activeProgram?.programId\n      );\n      if (programIndex !== -1) {\n        const perviousSelectedIds: any =\n          this.selectedProgramAndResp[programIndex]?.category ?? [];\n        idSet = new Set([...idSet, ...perviousSelectedIds]);\n      }\n    }\n    return [...Array.from(idSet)].filter((item) =>\n      Array.isArray(item) ? item.length > 0 : true\n    );\n  }\n}\n","<div class=\"grc-responsibility-listing\">\n    <div class=\"top-heading vx-pl-2 vx-mb-2 vx-d-flex vx-align-center\">\n        <app-cs-checkbox *ngIf=\"isAllSelected() || selectedListDataIds?.length === 0\" [ngValue]=\"isAllSelected()\"\n            (ngValueChange)=\"selectAll($event)\"></app-cs-checkbox>\n        <app-cs-checkbox-indeterminate *ngIf=\"!isAllSelected() && selectedListDataIds?.length\" [ngValue]=\"true\"\n            (ngValueChange)=\"selectAll(false)\"></app-cs-checkbox-indeterminate>\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-ml-2 vx-lh-4\">{{headerText}}</div>\n    </div>\n    <div class=\"grc-responsibility-listing-inner\">\n        <div class=\"grc-responsibility-table-body\" [class.with-pagination]=\"dataList?.total_pages > 1\">\n            <div class=\"grc-responsibility-table-row\"\n                *ngFor=\"let list of dataList?.data | search: searchString : 'name' ; let i = index\"\n                [class.active]=\"allSelectedResponsibilityIds?.includes(list?._id)\">\n                <div class=\"grc-responsibility-table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                    <div class=\"sr-no\" [appTooltip]=\"(perPageLimit * (currentPage - 1)) + i + 1\" placement=\"bottom\"\n                        delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{(perPageLimit * (currentPage - 1)) + i + 1}}\n                    </div>\n                    <app-cs-checkbox [ngValue]=\"allSelectedResponsibilityIds?.includes(list?._id)\"\n                        (ngValueChange)=\"getSelectedData(list,$event)\"></app-cs-checkbox>\n                </div>\n                <div class=\"grc-responsibility-table-column vx-pr-1 vx-d-flex vx-align-center responsibility-name\">\n                    <div class=\"vx-avatar-group vx-mr-1\">\n                        <div class=\"vx-avatar md\" [appTooltip]=\"list?.entrustedBy?.name\" placement=\"bottom-left\"\n                            delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                            <span *ngIf=\"list?.entrustedBy?.profilePic === ''\" class=\"blue\">{{list.entrustedBy?.name |\n                                userShortName }}</span>\n                            <img *ngIf=\"list?.entrustedBy?.profilePic !== ''\"\n                                src=\"{{profilePic + list?.entrustedBy?.profilePic}}\" alt=\"\">\n                        </div>\n                        <div *ngIf=\"list?.entrustedTo?.EntrustedToMembers?.length === 0\" class=\"vx-avatar md\"\n                            [appTooltip]=\"list?.entrustedTo?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n                            [tooltipMandatory]=\"true\">\n                            <span *ngIf=\"list?.entrustedTo?.profilePic === ''\" class=\"blue\">{{list?.entrustedTo?.name |\n                                userShortName }}</span>\n                            <img *ngIf=\"list?.entrustedTo?.profilePic !== ''\"\n                                src=\"{{profilePic + list?.entrustedTo?.profilePic}}\" alt=\"\">\n                        </div>\n                        <div *ngIf=\"list?.entrustedTo?.EntrustedToMembers?.length\" class=\"vx-avatar md counter\"\n                            appPopover (click)=\"multiUser.popover()\" placement=\"left\">\n                            <span class=\"green\">+{{list?.entrustedTo?.EntrustedToMembers?.length}}</span>\n                        </div>\n                        <app-popover #multiUser>\n                            <div class=\"wf-action-list\">\n                                <ul class=\"action-item\">\n                                    <li *ngFor=\"let user of list?.entrustedTo?.EntrustedToMembers\">\n                                        <div class=\"avatar-card\">\n                                            <div *ngIf=\"user?.profile_pic === ''\" class=\"avatar\">{{user?.member_name |\n                                                userShortName }}</div>\n                                            <div *ngIf=\"user?.profile_pic !== ''\" class=\"avatar\"><img\n                                                    src=\"{{profilePic + user?.profile_pic}}\" alt=\"\"></div>\n                                            <span class=\"value\" [appTooltip]=\"user.member_name\" placement=\"bottom-left\"\n                                                delay=\"0\" type=\"black\"\n                                                [tooltipMandatory]=\"false\">{{user?.member_name}}</span>\n                                        </div>\n                                    </li>\n                                </ul>\n                            </div>\n                        </app-popover>\n                    </div>\n                    <!-- <i class=\"icons star vx-fs-10 vx-mr-1\" [class.active]=\"true\">&#xea70;</i> -->\n                    <div class=\"name-inner\">\n                        <div class=\"vx-d-flex vx-align-center\">\n                            <div class=\"name vx-fs-13 vx-label-txt\" [appTooltip]=\"list?.name\" placement=\"bottom-left\"\n                                delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{list?.controlId}}{{list?.name}}\n                            </div>\n                        </div>\n                        <div class=\"vx-d-flex vx-align-center\" *ngIf=\"list?.withinData?.length\">\n                            <div class=\"vx-fs-10 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">RESPONSIBILITY CENTER:\n                            </div>\n                            <div class=\"within-part vx-d-flex vx-align-center vx-pr-3\">\n                                <div\n                                    class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">\n                                    Within</div>\n                                <div class=\"within-value vx-fs-11 vx-paragraph-txt\"><span\n                                        *ngFor=\"let parent of list?.withinData; let last = last\"\n                                        [appTooltip]=\"parent?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n                                        [tooltipMandatory]=\"false\">{{parent?.name}}\n                                        <span *ngIf=\"!last\">\n                                            < </span>\n                                        </span></div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <app-pagination *ngIf=\"dataList?.total_pages > 1\" [start]=\"dataList?.items_from\" [end]=\"dataList?.items_to\"\n            [total]=\"dataList?.total_items\" [pageCount]=\"dataList?.total_pages\" [currentPage]=\"currentPage\"\n            (selectedPage)=\"changePage($event)\"></app-pagination>\n    </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FloatingBarModule } from '../../../../sharedComponents/floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\nimport { PaginationModule } from '../../../../ui-kit/pagination/pagination.module';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\n\n@Component({\n  selector: 'app-grc-sub-category-listing',\n  standalone: true,\n  imports: [\n    CommonModule,\n    PopoverModule,\n    FormgroupModule,\n    TooltipModule,\n    FloatingBarModule,\n    PaginationModule,\n  ],\n  templateUrl: './grc-sub-category-listing.component.html',\n  styleUrls: ['./grc-sub-category-listing.component.less'],\n  inputs: ['currentPage', 'nameDisplayKey', 'activeProgram'],\n})\nexport class GrcSubCategoryListingComponent implements OnInit {\n  categories!: any;\n  activeCategoryId: string = '';\n  selectedCategory: any;\n  currentPage: number = 1;\n  nameDisplayKey: string = 'name';\n  selectedCategoryIds: any = [];\n  activeProgram!: any;\n  selectedProgramAndResp: any[] = [];\n\n  @Input('selectedCategoryIds') set getActiveProgramSelectedCategoryIds(\n    value: any\n  ) {\n    this.selectedCategoryIds = value;\n  }\n\n  @Input('categories') set categoryList(value: any) {\n    this.categories = value;\n    this.activeCategoryId = this.categories?.data[0]?.category_id;\n    this.selectedCategory = this.categories?.data[0];\n    // this.setPaginationData();\n  }\n\n  @Input('selectedProgramAndResp') set getSelectedProgramAndResp(value: any) {\n    this.getSelectedCategoryIds(value);\n  }\n\n  @Output() activeSelectedCategory: EventEmitter<any> = new EventEmitter();\n  @Output() onCategoryPageChange: EventEmitter<any> = new EventEmitter();\n\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  onCategoryClick(category: any) {\n    this.selectedCategory = category;\n    this.activeSelectedCategory.emit({\n      category: this.selectedCategory,\n    });\n    this.activeCategoryId = category?.category_id;\n  }\n\n  changePage(event: number) {\n    this.currentPage = event;\n    this.onCategoryPageChange.emit({\n      pageNo: this.currentPage,\n    });\n  }\n\n  getSelectedCategoryIds(selectedData: any) {\n    this.selectedCategoryIds = [];\n    let programIndex = -1;\n    programIndex = selectedData.findIndex(\n      (cat: any) => cat?.program?.programId === this.activeProgram?.programId\n    );\n    if (programIndex !== -1) {\n      this.selectedCategoryIds = selectedData[programIndex]?.category;\n    } else {\n      this.selectedCategoryIds = [];\n    }\n  }\n}\n","<div class=\"grc-sub-category-listing\">\n    <div class=\"top-heading vx-pl-2 vx-mb-2 vx-d-flex vx-align-center\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-ml-2 vx-lh-4\">PROGRAM CATEGORIES</div>\n    </div>\n    <div class=\"grc-sub-category-listing-inner\">\n        <div class=\"sub-category-table-body\" [class.with-pagination]=\"categories?.total_pages > 1\">\n            <div class=\"sub-category-table-row\" [class.select]=\"activeCategoryId === category?.category_id\" [class.active]=\"false\" *ngFor=\"let category of categories?.data; let i = index\" (click)=\"onCategoryClick(category)\">\n                <div class=\"sub-category-table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                    <div class=\"sr-no\" [appTooltip]=\"categories?.items_from + i\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{categories?.items_from + i}}</div>\n                </div>\n                <div class=\"sub-category-table-column vx-pr-1 vx-d-flex vx-align-center category-name\">\n                    <div class=\"vx-d-block vx-w-100\">\n                        <div class=\"value vx-fs-12 vx-label-txt\" [appTooltip]=\"category[nameDisplayKey]\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{category[nameDisplayKey]}}</div>\n                        <div class=\"within-part vx-d-flex vx-align-center vx-pr-3\">\n                            <div class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">Within</div>\n                            <div class=\"within-value vx-fs-11 vx-paragraph-txt\" [appTooltip]=\"category?.category_name?.slice()?.reverse()?.join(' < ')\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"><span *ngFor=\"let parent of category?.category_name?.slice()?.reverse(); let last = last\">{{parent}} \n                                <span *ngIf=\"!last\"> <\n                                </span>\n                            </span></div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"sub-category-table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n                    <i *ngIf=\"selectedCategoryIds?.includes(category?.category_id) || selectedCategoryIds?.includes(category?._id)\" class=\"icons grc-tick vx-fs-14\">&#xe93d;</i>\n                    <button class=\"arrow-btn vx-fs-12 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe970;</i></button>\n                </div>\n            </div>\n        </div>\n\n        <app-pagination *ngIf=\"categories?.total_pages > 1\" [start]=\"categories?.items_from\" [end]=\"categories?.items_to\" [total]=\"categories?.total_items\" [pageCount]=\"categories?.total_pages\" [currentPage]=\"currentPage\" (selectedPage)=\"changePage($event)\"></app-pagination>\n    </div>\n</div>","export const RESPONSIBILITY_TABLE_CARD = [\n  {\n    title: 'REGULATIONS',\n    count: 0,\n    selectedCount: 0,\n    key: 'REGULATIONS',\n    type: 1,\n  },\n  { title: 'STANDARDS', count: 0, selectedCount: 0, key: 'STANDARDS', type: 2 },\n  {\n    title: 'INTERNAL CONTROLS',\n    count: 0,\n    selectedCount: 0,\n    key: 'INTERNAL_CONTROLS',\n    type: 3,\n  },\n  { title: 'OTHERS', count: 0, selectedCount: 0, key: 'OTHERS', type: 0 },\n];\n","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  ViewChild,\n} from '@angular/core';\nimport { FloatingBarModule } from '../../../../sharedComponents/floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\nimport { PaginationModule } from '../../../../ui-kit/pagination/pagination.module';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\nimport { TableCardComponent } from '../table-card/table-card.component';\nimport { GrcCategoryListingComponent } from '../grc-category-listing/grc-category-listing.component';\nimport { GrcResponsibilityListingComponent } from '../grc-responsibility-listing/grc-responsibility-listing.component';\nimport { NoDataModule } from '../../../../ui-kit/no-data/no-data.module';\nimport { ListLoaderModule } from '../../../../sharedComponents/list-loader/list-loader.module';\nimport { GrcSubCategoryListingComponent } from '../grc-sub-category-listing/grc-sub-category-listing.component';\nimport { Subscription } from 'rxjs';\nimport { RESPONSIBILITY_TABLE_CARD } from '../../constants/link-responsibility.constant';\nimport { GrcService } from '../../services/grc.service';\nimport { TableCardLoaderComponent } from '../../../../sharedComponents/table-card-loader/table-card-loader.component';\nimport { HttpParams } from '@angular/common/http';\nimport { LINKS } from '../../constants/cdn-link.constant';\nimport { WorkflowPipesModule } from '../../workflow-pipes/workflow-pipes.module';\nimport { ResponsibilityService } from '../../../../workflow-services/responsibility.service';\nimport { GetUserDetailsPipe } from '../../workflow-pipes/get-user-details.pipe';\n\n@Component({\n  selector: 'app-program-responsibility-listing',\n  standalone: true,\n  imports: [\n    CommonModule,\n    PopoverModule,\n    FormgroupModule,\n    TooltipModule,\n    FloatingBarModule,\n    PaginationModule,\n    TableCardComponent,\n    GrcCategoryListingComponent,\n    GrcResponsibilityListingComponent,\n    GrcSubCategoryListingComponent,\n    ListLoaderModule,\n    NoDataModule,\n    TableCardLoaderComponent,\n    WorkflowPipesModule,\n  ],\n  templateUrl: './program-responsibility-listing.component.html',\n  styleUrls: ['./program-responsibility-listing.component.less'],\n  outputs: ['closeList'],\n  providers: [GetUserDetailsPipe]\n})\nexport class ProgramResponsibilityListingComponent implements OnInit {\n  programTypes = RESPONSIBILITY_TABLE_CARD;\n  CDN_LINK = LINKS;\n  selectedTab: 0 | 1 | 2 | 3 = 1;\n\n  animation = false;\n\n  programLoader: boolean = false;\n  programCountLoader: boolean = false;\n  responsibilityLoader: boolean = false;\n  categoryLoader: boolean = false;\n  selectedProgramAndResp: any[] = [];\n  preSelectedProgramAndResp: any[] = [];\n  searchString: string = '';\n  currentBusinessCycle!: any;\n  selectedProgram: any;\n  selectedCategory: any;\n  programCurrentPage: number = 1;\n  categoryCurrentPage: number = 1;\n  responsibilityCurrentPage: number = 1;\n  programData: any;\n  categoryData: any;\n  responsibilityData: any = {\n    data: [],\n  };\n  selectedProgramIds: any[] = [];\n  selectedCategoryIds: any[] = [];\n  selectedResponsibilities: any[] = [];\n  selectedRCIds: number[] = [];\n\n  programCall!: Subscription;\n  categoryCall!: Subscription;\n  responsibilityCall!: Subscription;\n\n  @Input('selectedProgramAndResp') set getSelectedProgramAndResp(data: any) {\n    this.selectedResponsibilities = data.map((item: any) => item.rid);\n    this.selectedProgramAndResp = data || [];\n    this.preSelectedProgramAndResp = JSON.parse(JSON.stringify(this.selectedProgramAndResp));\n    this.getSelectedProgramIds(this.selectedProgramAndResp);\n    this.getAllSelectedResponsibilities(this.selectedProgramAndResp);\n  }\n  @Input() selectedRC: any[] = [];\n  @Input() MODE: 'CREATE' | 'EDIT' = 'CREATE';\n\n  closeList: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('dataListing')\n  responsibilityListingComponent!: GrcResponsibilityListingComponent;\n\n  constructor(private grcService: GrcService, private responsibilityService: ResponsibilityService, private getUserDetails: GetUserDetailsPipe) {\n    this.currentBusinessCycle = this.grcService?.getBusinessCycle();\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.getResponsibilitiesList();\n  }\n\n  close() {\n    this.closeList.emit(this.preSelectedProgramAndResp);\n  }\n\n  save() {\n    this.closeList.emit(this.selectedProgramAndResp);\n  }\n\n  getProgramsList(event?: any) {\n    if (this.programCall) {\n      this.programCall.unsubscribe();\n    }\n    this.programLoader = true;\n    const request = {\n      headers: {\n        type: '',\n        paginationType: 'small',\n        a: '',\n        searchText: this.searchString,\n        filterData: {\n          appList: [],\n          riskIds: [],\n          reviewerId: [],\n          responsibilityCenter: this.getSelectedRCIds(this.selectedRC) ?? [],\n          entrustedBy: [],\n          entrustedTo: [],\n          responsibilityCategory: [],\n        },\n        pageNo: this.programCurrentPage || 1,\n        sortObj: { sortBy: '', type: -1 },\n        pageName: 'category',\n        typeArr: [this.selectedTab],\n        start_date: this.currentBusinessCycle?.start_date,\n        end_date: this.currentBusinessCycle?.end_date,\n        selected_cycle_arr: this.currentBusinessCycle?.selected_cycle_arr,\n        selected_cycle: this.currentBusinessCycle?.selected_cycle,\n        time_filter_type: '',\n        state: [2, 3],\n      },\n    };\n    this.programCall = this.grcService.getProgramsList(request).subscribe({\n      next: (res: any) => {\n        this.programLoader = false;\n        // this.programData.data = res.data ?? [];\n        this.programData = { ...res };\n        this.onSelectedProgramChange();\n        this.getCategoryByProgramId(res?.data[0]);\n      },\n      error: (err: any) => {\n        this.programLoader = false;\n      },\n    });\n  }\n\n  onProgramPageChange(event: any) {\n    this.programCurrentPage = event?.pageNo || 1;\n    this.getProgramsList();\n  }\n\n  onSubCategoryPageChange(event: any) {\n    this.categoryCurrentPage = event?.pageNo || 1;\n    this.getCategoryByProgramId(this.selectedProgram);\n  }\n\n  deleteEvent(event: any) {\n    this.responsibilityListingComponent.deleteSelectedResponsibility(event);\n  }\n\n  setSelectedTab(event: any) {\n    this.programCurrentPage = 1;\n    this.selectedTab = event?.type;\n    this.getProgramsList();\n  }\n\n  handleSearch(event: any) {\n    if (this.searchString != event) {\n      this.programCurrentPage = 1;\n      this.searchString = event;\n    }\n\n    console.log(this.searchString);\n  }\n\n  getProgramsCount(paramsObject?: any) {\n    this.programCountLoader = true;\n    const request = {\n      headers: {\n        type: '',\n        paginationType: 'small',\n        a: '',\n        searchText: this.searchString,\n        filterData: {\n          appList: [],\n          riskIds: [],\n          reviewerId: [],\n          responsibilityCenter: this.getSelectedRCIds(this.selectedRC) ?? [],\n          entrustedBy: [],\n          entrustedTo: [],\n          responsibilityCategory: [],\n        },\n        pageNo: 1,\n        sortObj: { sortBy: '', type: '' },\n        pageName: 'category',\n        typeArr: [1, 2, 3, 0],\n        start_date: this.currentBusinessCycle?.start_date,\n        end_date: this.currentBusinessCycle?.end_date,\n        selected_cycle_arr: this.currentBusinessCycle?.selected_cycle_arr,\n        selected_cycle: this.currentBusinessCycle?.selected_cycle,\n        time_filter_type: '',\n        state: [2, 3],\n      },\n    };\n    this.grcService.getProgramsListCount(request).subscribe({\n      next: (res: any) => {\n        this.programCountLoader = false;\n        this.programTypes[0].count =\n          res?.regulationCount?.active + res?.regulationCount?.completed;\n        this.programTypes[1].count =\n          res?.standardCount?.active + res?.standardCount?.completed;\n        this.programTypes[2].count =\n          res?.internalCount?.active + res?.internalCount?.completed;\n        this.programTypes[3].count =\n          res?.otherCount?.active + res?.otherCount?.completed;\n        // }\n      },\n    });\n  }\n\n  getCategoryByProgramId(program: any) {\n    if (this.categoryCall) {\n      this.categoryCall.unsubscribe();\n    }\n    this.selectedProgram = program;\n    this.categoryLoader = true;\n    // this.resetControlVariable();\n    const headers = {\n      id: program?._id,\n      scopeType: 'risk',\n      paginationType: 'small',\n      searchText: this.searchString,\n      filterData: {\n        appList: [],\n        riskIds: [],\n        reviewerId: [],\n        responsibilityCenter: this.getSelectedRCIds(this.selectedRC) ?? [],\n        entrustedBy: [],\n        entrustedTo: [],\n        responsibilityCategory: [],\n      },\n      page: this.categoryCurrentPage || 1,\n      // sortingCount: this.categorySortValue,\n      name: 'name',\n      businessCycle: {\n        start_date: this.currentBusinessCycle?.start_date,\n        end_date: this.currentBusinessCycle?.end_date,\n        selected_cycle_arr: this.currentBusinessCycle?.selected_cycle_arr,\n        selected_cycle: this.currentBusinessCycle?.selected_cycle,\n        time_filter_type: '',\n        // \"scopeType\": 'risk',\n        type: 'risk',\n        callFrom: 'grc',\n        filterData: {\n          appList: [],\n          riskIds: [],\n          reviewerId: [],\n          responsibilityCenter: this.getSelectedRCIds(this.selectedRC) ?? [],\n          entrustedBy: [],\n          entrustedTo: [],\n          responsibilityCategory: [],\n        },\n      },\n    };\n    this.categoryCall = this.grcService.getSubCategoryList(headers).subscribe({\n      next: (res: any) => {\n        this.categoryLoader = false;\n        this.categoryData = { ...res };\n        this.selectedCategory = res?.data[0];\n        this.responsibilityCurrentPage = 1;\n        this.getResponsibilitiesList();\n      },\n      error: (err) => {\n        console.error(err);\n        this.categoryLoader = false;\n      },\n    });\n  }\n\n  activeSelectedProgram(event: any) {\n    this.selectedProgram = event?.category;\n    this.onSelectedProgramChange();\n    this.getCategoryByProgramId(this.selectedProgram);\n    // this.getSelectedCategoryIds(this.selectedProgramAndResp);\n  }\n\n  activeSelectedSubCategory(event: any) {\n    this.selectedCategory = event?.category;\n    this.getResponsibilitiesList();\n  }\n\n  getResponsibilitiesList(event?: any) {\n    if (this.responsibilityCall) {\n      this.responsibilityCall.unsubscribe();\n    }\n\n    // this.respCount = event.sortValue;\n    this.responsibilityLoader = true;\n    let params = new HttpParams();\n    params = params.append('isBusinessCycle', 'true');\n    params = params.append('parentId', this.selectedProgram?.category_id);\n    params = params.append('catId', this.selectedCategory?.category_id);\n    params = params.append('pageNo', this.responsibilityCurrentPage ?? 1);\n    // if ([1, -1].includes(this.controlSortValue)) {\n    //   params = params.append('sortValue', this.controlSortValue);\n    //   params = params.append('sortBy', 'Data.ReportName');\n    // }\n    params = params.append('paginationType', 'small');\n    params = params.append('pageType', 'risk');\n    params = params.append('callFrom', 'grc');\n    const rcIds = this.getSelectedRCIds(this.selectedRC).join(',');\n    let businessCycle = {\n      start_date: this.currentBusinessCycle?.start_date,\n      end_date: this.currentBusinessCycle?.end_date,\n      selected_cycle_arr: this.currentBusinessCycle?.selected_cycle_arr,\n      selected_cycle: this.currentBusinessCycle?.selected_cycle,\n      time_filter_type: '',\n      pageType: 'risk',\n      callFrom: 'grc',\n      filterData: {\n        appList: [],\n        riskIds: [],\n        reviewerId: [],\n        responsibilityCenter: this.getSelectedRCIds(this.selectedRC) ?? [],\n        entrustedBy: [],\n        entrustedTo: [],\n        responsibilityCategory: [],\n      },\n    };\n\n    this.responsibilityCall = this.grcService\n      .getAllResponsibilities(this.responsibilityCurrentPage, rcIds)\n      .subscribe({\n        next: (res: any) => {\n          this.categoryLoader = false;\n          const pageSize = 30;\n          const currentPage = res?.data?.page || 1;\n          const startIndex = (currentPage - 1) * pageSize + 1;\n          const endIndex = Math.min(startIndex + pageSize - 1, res?.data?.total || 0);\n          \n          this.responsibilityData = {\n            data: this.setDataListStructure(res?.data?.responsibilities || [], res?.data?.users || [], res?.data?.responsibilityCenters || []),\n            total_items: res?.data?.total || 0,\n            total_pages: Math.ceil((res?.data?.total || 0) / pageSize),\n            current_page: currentPage,\n            per_page: pageSize,\n            items_from: startIndex,\n            items_to: endIndex\n          };\n          this.responsibilityLoader = false;\n        },\n        error: (err: any) => {\n          this.responsibilityLoader = false;\n        },\n      });\n  }\n\n  getUpdatedDataList(event: any) {\n    this.responsibilityCurrentPage = event?.pageNo;\n    this.getResponsibilitiesList();\n  }\n\n  setDataListStructure(responsibilities: any[], users: any[], responsibilityCenters: any[]) {\n    const data = responsibilities?.map((responsibility: any) => {\n      const responsibilityCenterIds = responsibility?.responsibility_centers || [];\n\n      const mappedResponsibilityCenters = responsibilityCenterIds.map((rcId: number) => {\n        const rc = responsibilityCenters.find((center: any) => center?.id === rcId);\n        return {\n          name: rc?.name || '',\n          id: rcId\n        };\n      });\n\n      const assignorDetails = this.getUserDetails.transform([responsibility?.assignor], users)?.[0] || {};\n      const assigneeDetails = this.getUserDetails.transform(responsibility?.assignees?.userId || [], users) || [];\n\n      return {\n        ...responsibility,\n        name: responsibility?.title || '',\n        controlId:responsibility?.controlId ? '[CID-' + responsibility?.controlId + '] ': '',\n        _id: responsibility?.rid,\n        entrustedBy: {\n          name: assignorDetails?.name || '',\n          email: assignorDetails?.email || '',\n          profilePic: assignorDetails?.avatar || '',\n          shortName: assignorDetails?.short_name || '',\n        },\n        entrustedTo: {\n          name: assigneeDetails[0]?.name || '',\n          email: assigneeDetails[0]?.email || '',\n          profilePic: assigneeDetails[0]?.avatar || '',\n          shortName: assigneeDetails[0]?.short_name || '',\n          EntrustedToMembers: assigneeDetails?.map((user: any) => ({\n            member_name: user?.name,\n            profile_pic: user?.avatar,\n            member_short_name: user?.short_name\n          })) || [],\n        },\n        withinData: mappedResponsibilityCenters,\n        subCategoryId: this.selectedCategory?.category_id,\n      };\n    });\n    return data;\n  }\n\n  onSelectedProgramChange() {\n    this.categoryCurrentPage = 1;\n    this.responsibilityCurrentPage = 1;\n  }\n\n  changeSelectedProgramAndResp(event: any) {\n    this.selectedProgramAndResp = event;\n    this.getSelectedProgramIds(this.selectedProgramAndResp);\n    this.getAllSelectedResponsibilities(this.selectedProgramAndResp);\n    this.getSelectedCategoryIds(this.selectedProgramAndResp);\n  }\n\n  getSelectedProgramIds(selectedData: any) {\n    this.selectedProgramIds = [];\n    selectedData?.forEach((selected: any) => {\n      this.selectedProgramIds.push(selected?.program?.programId);\n    });\n  }\n\n  getSelectedCategoryIds(selectedData: any) {\n    this.selectedCategoryIds = [];\n    let programIndex = -1;\n    programIndex = selectedData.findIndex(\n      (cat: any) => cat?.program?.programId === this.selectedProgram?.programId\n    );\n    if (programIndex !== -1) {\n      this.selectedCategoryIds = selectedData[programIndex]?.category;\n    } else {\n      this.selectedCategoryIds = [];\n    }\n  }\n\n  getAllSelectedResponsibilities(selectedData: any) {\n    this.selectedResponsibilities = [];\n    this.selectedResponsibilities = selectedData.map((item: any) => item?.rid);\n  }\n\n  getSelectedRCIds(selectedRC: any[]) {\n    let selectedRCIds: any[] = [];\n    selectedRCIds = selectedRC?.map((rc: any) => rc?.rcid);\n\n    return selectedRCIds;\n  }\n}\n","<div class=\"program-responsibility-listing\" [class.animate]=\"animation\">\n  <div class=\"program-responsibility-listing-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\n    <h3 class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Responsibilities</h3>\n  </div>\n  <div class=\"program-responsibility-listing-body\">\n    <!-- <app-table-card-loader *ngIf=\"programCountLoader\"></app-table-card-loader> -->\n    <!-- <app-table-card\n            *ngIf=\"!programCountLoader\"\n            class=\"vx-w-100\"\n            [tableCard]=\"programTypes\"\n            [singleSelectedText]=\"'Responsibility Selected'\"\n            [selectedTab]=\"selectedTab\"\n            [multipleSelectedText]=\"'Responsibilities Selected'\"\n            (setSelectedTab)=\"setSelectedTab($event)\">\n        </app-table-card> -->\n    <div class=\"search-block vx-mb-2\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input type=\"text\" #searchRiskCategory (keyup.enter)=\"handleSearch($event.target.value)\"\n        placeholder=\"Search Responsibilities\" />\n    </div>\n    <div class=\"program-responsibility-listing-body-inner vx-mb-2 vx-d-flex\" [class.vx-justify-center]=\"\n        !responsibilityLoader && !responsibilityData?.data?.length\n      \">\n      <ng-container *ngIf=\"responsibilityLoader || responsibilityData?.data?.length\">\n        <!-- <div class=\"inner-item-left vx-pr-2\">\n\n                    <app-grc-category-listing *ngIf=\"!programLoader\" [headerText]=\"'Programs'\" [programData]=\"programData\"  [selectedCatAndRisk]=\"selectedCatAndRisk\" [nameDisplayKey]=\"'item_name'\" [currentPage]=\"programCurrentPage\" [selectedTabIndex]=\"selectedTab\" [selectedCategoryIds]=\"selectedProgramIds\" (activeSelectedCategory)=\"activeSelectedProgram($event)\" (onCategoryPageChange)=\"onProgramPageChange($event)\"></app-grc-category-listing>\n                        \n                    <app-list-loader *ngIf=\"programLoader\"></app-list-loader>\n\n                </div> -->\n\n        <!-- <div class=\"inner-item-mid vx-pr-2\">\n                    <app-grc-sub-category-listing *ngIf=\"!categoryLoader && !programLoader\"  [headerText]=\"'Programs'\" [categories]=\"categoryData\"  [nameDisplayKey]=\"'item_name'\"  [currentPage]=\"categoryCurrentPage\" [selectedCategoryIds]=\"selectedCategoryIds\" [activeProgram]=\"selectedProgram\" [selectedProgramAndResp]=\"selectedProgramAndResp\" (activeSelectedCategory)=\"activeSelectedSubCategory($event)\" (onCategoryPageChange)=\"onSubCategoryPageChange($event)\"></app-grc-sub-category-listing>\n                    <app-list-loader *ngIf=\"categoryLoader || programLoader\"></app-list-loader>\n                </div> -->\n\n        <div class=\"inner-item-right\">\n          <!-- <app-grc-responsibility-listing></app-grc-responsibility-listing> -->\n\n          <app-grc-responsibility-listing #dataListing *ngIf=\"\n              !responsibilityLoader &&\n              !categoryLoader &&\n              !programLoader &&\n              responsibilityData?.data?.length !== 0\n            \" [headerText]=\"'Responsibilities'\" [MODE]=\"MODE\" [responsibilityData]=\"responsibilityData\"\n            [searchString]=\"searchString\" [activeProgram]=\"selectedProgram\" [activeCategory]=\"selectedCategory\"\n            [selectedProgramAndResp]=\"selectedProgramAndResp\" [allSelectedResponsibilityIds]=\"selectedResponsibilities\"\n            (changeSelectedProgramAndResp)=\"\n              changeSelectedProgramAndResp($event)\n            \" [currentPage]=\"responsibilityCurrentPage\" [perPageLimit]=\"30\"\n            [totalListData]=\"responsibilityData?.total_items\" [totalPages]=\"responsibilityData?.total_pages\"\n            (getUpdatedDataList)=\"getUpdatedDataList($event)\"></app-grc-responsibility-listing>\n\n          <app-list-loader *ngIf=\"responsibilityLoader || categoryLoader || programLoader\"\n            [fullWidth]=\"true\"></app-list-loader>\n\n          <app-no-data *ngIf=\"\n              responsibilityData?.data?.length === 0 &&\n              !(responsibilityLoader || categoryLoader || programLoader)\n            \" [noDataImage]=\"CDN_LINK?.noData\" [noDataText]=\"'No data to display'\"></app-no-data>\n        </div>\n      </ng-container>\n      <app-no-data *ngIf=\"!responsibilityLoader && !responsibilityData?.data?.length\" [noDataImage]=\"CDN_LINK?.noData\"\n        [noDataText]=\"'No data to display'\"></app-no-data>\n    </div>\n    <app-floating-bar [selectedData]=\"\n        selectedResponsibilities | filterResponsibility : responsibilityData?.data\n      \" (closeList)=\"close()\" (closeEvent)=\"save()\" [displayElementKey]=\"'title'\"\n      [singularText]=\"'Responsibility selected'\" [pluralText]=\"'Responsibilities selected'\"\n      (deleteEvent)=\"deleteEvent($event)\"></app-floating-bar>\n  </div>\n</div>","import { Component, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RcListModule } from '../../../../sharedComponents/responsibility-centers-list/rc-list.module';\nimport { ListObject, OpenedPopup } from '../../interfaces/add-grc';\nimport { GrcObjectListComponent } from '../grc-object-list/grc-object-list.component';\nimport { GroupUsersListComponent } from '../../../../sharedComponents/group-users-list/group-users-list.component';\nimport { RiskCategoryRiskListingComponent } from '../risk-category-risk-listing/risk-category-risk-listing.component';\nimport { ProgramResponsibilityListingComponent } from '../program-responsibility-listing/program-responsibility-listing.component';\n\n// this component will open all list popup\n@Component({\n  selector: 'lib-list-popup',\n  standalone: true,\n  imports: [\n    CommonModule,\n    RcListModule,\n    GrcObjectListComponent,\n    GroupUsersListComponent,\n    RiskCategoryRiskListingComponent,\n    ProgramResponsibilityListingComponent,\n  ],\n  template: `\n    <app-responsibility-centers-list\n      *ngIf=\"openedPopup === 'RC'\"\n      [responsibilityCentersList]=\"listObject[openedPopup]?.data\"\n      [selectedResponsibilityCenters]=\"listObject[openedPopup]?.selectedData\"\n      [rcIdKey]=\"'item_id'\"\n      (saveSelectedList)=\"saveSelectedList($event)\"\n      (closeRcList)=\"activeDeSelector()\"\n    ></app-responsibility-centers-list>\n    <app-grc-object-list\n      *ngIf=\"openedPopup === 'OTHER_GRC_OBJECTS'\"\n      [grcObject]=\"listObject[openedPopup]?.data\"\n      [selectedGRC]=\"listObject[openedPopup]?.selectedData\"\n      [loader]=\"listObject[openedPopup]?.isLoading\"\n      [tableCard]=\"tableCard\"\n      [selectedTab]=\"GRCSelectedTab\"\n      [cardLoader]=\"otherGrcCardLoader\"\n      [mode]=\"mode\"\n      [onEditGRCId]=\"onEditGRCId\"\n      (getOtherGRCObjects)=\"getOtherGRCObjectList($event)\"\n      (saveOtherGRC)=\"saveSelectedList($event)\"\n      (closeOtherGRC)=\"saveSelectedList($event)\"\n    ></app-grc-object-list>\n    <app-group-users-list\n      *ngIf=\"openedPopup === 'OWNER'\"\n      [usersList]=\"listObject[openedPopup]?.data?.assigneesList ?? []\"\n      [groupsList]=\"listObject[openedPopup]?.data?.groupsList ?? []\"\n      [selectedUsers]=\"listObject[openedPopup].selectedData\"\n      [loader]=\"listObject[openedPopup]?.isLoading\"\n      [userIdKey]=\"'member_id'\"\n      [isDisabledSelected]=\"true\"\n      [disabledId]=\"listObject[openedPopup]?.disabledIds\"\n      [fromResponsibility]=\"'Assignee'\"\n      (saveSelectedList)=\"saveSelectedList($event)\"\n      (closeUsersList)=\"activeDeSelector()\"\n    >\n    </app-group-users-list>\n    <app-risk-category-risk-listing\n      *ngIf=\"openedPopup === 'RISK_CATEGORY'\"\n      [selectedRC]=\"listObject?.RC?.selectedData\"\n      [selectedCatAndRisk]=\"listObject[openedPopup]?.selectedData\"\n      (closeUsersList)=\"saveSelectedList($event)\"\n    ></app-risk-category-risk-listing>\n  \n    <app-program-responsibility-listing\n      *ngIf=\"openedPopup === 'PROGRAM_RESPONSIBILITY'\"\n      [MODE]=\"mode\"\n      [selectedRC]=\"listObject?.RC?.selectedData\"\n      [selectedProgramAndResp]=\"listObject[openedPopup]?.selectedData\"\n      (closeList)=\"saveSelectedList($event)\"\n    ></app-program-responsibility-listing>\n  `,\n  inputs: [\n    'openedPopup',\n    'listObject',\n    'tableCard',\n    'GRCSelectedTab',\n    'onEditGRCId',\n    'mode',\n  ],\n  outputs: ['onSaveSelectedList', 'getOtherGRCObjects'],\n})\nexport class ListPopupComponent {\n  openedPopup: OpenedPopup['type'] = '';\n  listObject: ListObject = {\n    RC: {\n      isLoading: false,\n      data: [],\n      selectedData: [],\n    },\n    OWNER: {\n      isLoading: false,\n      data: [],\n      selectedData: [],\n    },\n    OTHER_GRC_OBJECTS: {\n      isLoading: false,\n      data: {},\n      selectedData: [],\n    },\n    RISK_CATEGORY: {\n      isLoading: false,\n      data: {},\n      selectedData: [],\n    },\n    PROGRAM_RESPONSIBILITY: {\n      isLoading: false,\n      data: {},\n      selectedData: [],\n    },\n  };\n  tableCard: any = [];\n  GRCSelectedTab: 0 | 1 | 2 | 3 = 0;\n  otherGrcCardLoader: boolean = false;\n  mode: 'CREATE' | 'EDIT' = 'CREATE';\n  onEditGRCId: string = '';\n\n  onSaveSelectedList: EventEmitter<any> = new EventEmitter();\n  getOtherGRCObjects: EventEmitter<any> = new EventEmitter();\n\n  saveSelectedList(selectedData: number[]) {\n    switch (this.openedPopup) {\n      \n      case 'RC':\n        this.listObject[this.openedPopup].selectedData =\n          this.listObject.RC.data.filter((rc: any) =>\n            selectedData.includes(rc.item_id)\n          );\n        break;\n      case 'OWNER':\n        this.listObject[this.openedPopup].selectedData = this.listObject[\n          this.openedPopup\n        ].data.assigneesList.filter((user: any) =>\n          selectedData.includes(user.my_member_id)\n        );\n        break;\n      case 'RISK_CATEGORY':\n        this.listObject[this.openedPopup].selectedData = selectedData ?? [];\n        break;\n      case 'PROGRAM_RESPONSIBILITY':\n        console.log('selectedData', selectedData);\n        this.listObject[this.openedPopup].selectedData = selectedData ?? [];\n        break;\n    }\n    if (this.openedPopup === 'RC' || this.openedPopup === 'OWNER') {\n    }\n    if (this.openedPopup === 'OTHER_GRC_OBJECTS') {\n      this.listObject[this.openedPopup].selectedData = selectedData;\n    }\n  \n    this.onSaveSelectedList.emit(this.listObject);\n  }\n\n  activeDeSelector() {\n    this.onSaveSelectedList.emit(this.listObject);\n  }\n\n  getOtherGRCObjectList(event: any) {\n    this.getOtherGRCObjects.emit(event);\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, forwardRef, Provider } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nconst SELECTOR_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => TabSelector),\n  multi: true,\n};\nexport interface TabSelectorInterface {\n  label: string;\n  value: any;\n}\n@Component({\n  selector: 'tab-selector',\n  templateUrl: './tab-selector.component.html',\n  styleUrls: ['./tab-selector.component.less'],\n  providers: [SELECTOR_VALUE_ACCESSOR],\n  standalone: true,\n  imports: [CommonModule],\n  inputs: ['disabled', 'selectedItem', 'displayArray'],\n  outputs: ['onValueChanged'],\n})\nexport class TabSelector implements ControlValueAccessor {\n  displayArray!: Array<TabSelectorInterface>;\n  disabled!: boolean | any;\n  selectedItem = 1;\n\n  onValueChanged: EventEmitter<any> = new EventEmitter();\n  onChanged = (value: any) => {};\n  onTouched = () => {};\n\n  writeValue(value: any): void {\n    this.selectedItem = value ?? 1;\n  }\n  registerOnChange(fn: any): void {\n    this.onChanged = fn;\n  }\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n  valueChanged(value: any) {\n    this.selectedItem = value;\n    this.onChanged(this.selectedItem);\n    this.onTouched();\n    this.onValueChanged.emit(this.selectedItem);\n  }\n}\n","<div class=\"type-field \"  [ngClass]=\"{'two': displayArray?.length === 2, 'four': displayArray?.length === 4}\">\n    <div class=\"type-item\" *ngFor=\"let item of displayArray\" [class.active]=\"selectedItem === item?.value\">\n        <button (click)=\"valueChanged(item?.value)\">{{item?.label}}</button>\n    </div>\n    <span class=\"background-glider\"></span>\n</div>","import { Component, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\n\n@Component({\n  selector: 'lib-edit-mode',\n  standalone: true,\n  imports: [CommonModule, PopoverModule, TooltipModule],\n  inputs: [\n    'selectedData',\n    'type',\n    'nonRemovableIds',\n    'isMultiple',\n    'countColor',\n    'nameDisplayKey',\n  ],\n  outputs: ['isOnEdit', 'onRemoveData'],\n  template: `\n    <div\n      *ngIf=\"selectedData?.length\"\n      class=\"selected\"\n      [class.vx-mb-2]=\"isMultiple\"\n    >\n      <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n        <i\n          *ngIf=\"\n            type !== 'text' &&\n            !nonRemovableIds.includes(selectedData[0]?.item_id)\n          \"\n          (click)=\"removeItem(0)\"\n          class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n          >&#xe9ae;</i\n        >\n        <ng-content [select]=\"'GRC_TYPE'\"></ng-content>\n\n        <span\n          class=\"chipName vx-fs-11 vx-label-txt\"\n          [appTooltip]=\"\n            selectedData[0]?.item_name ??\n            selectedData[0]?.name ??\n            selectedData[0][nameDisplayKey]\n          \"\n          placement=\"bottom-left\"\n          delay=\"0\"\n          type=\"black\"\n          [tooltipMandatory]=\"false\"\n          >{{\n            selectedData[0]?.item_name ??\n              selectedData[0]?.name ??\n              selectedData[0][nameDisplayKey]\n          }}</span\n        >\n        <button\n          *ngIf=\"selectedData.length > 1\"\n          class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n          [ngClass]=\"countColor\"\n          appPopover\n          (click)=\"selectedList.popover()\"\n          placement=\"right\"\n        >\n          +{{ selectedData?.length - 1 }}\n        </button>\n      </div>\n      <button class=\"edit\" type=\"button\" (click)=\"isOnEdit.emit()\">\n        <i class=\"icons\">&#xe9ba;</i> Edit\n      </button>\n    </div>\n    <app-popover #selectedList [dontCloseonClick]=\"true\">\n      <div class=\"wf-action-list\">\n        <ul class=\"action-item\">\n          <li\n            *ngFor=\"\n              let data of selectedData | slice : 1;\n              let i = index;\n              trackBy: identify\n            \"\n          >\n            <div class=\"avatar-card\">\n              <span\n                class=\"value\"\n                [appTooltip]=\"\n                  data?.item_name ?? data?.name ?? data[nameDisplayKey]\n                \"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n              >\n                <i\n                  *ngIf=\"!nonRemovableIds.includes(data?.item_id)\"\n                  (click)=\"removeItem(i + 1)\"\n                  class=\"icons\"\n                  >&#xe90d;</i\n                >\n                {{ data?.item_name ?? data?.name ?? data[nameDisplayKey] }}\n              </span>\n            </div>\n          </li>\n        </ul>\n      </div>\n    </app-popover>\n  `,\n})\nexport class EditModeComponent {\n  selectedData: Array<any> = [];\n  type: string = '';\n  nonRemovableIds: Array<number> = [];\n  isMultiple: boolean = false;\n  countColor: string = '';\n  nameDisplayKey: string = '';\n\n  isOnEdit: EventEmitter<any> = new EventEmitter();\n  onRemoveData: EventEmitter<any> = new EventEmitter();\n\n  constructor() {}\n\n  removeItem(index: number) {\n    this.onRemoveData.emit({ index, data: this.selectedData[index] });\n  }\n\n  identify(index: any, item: any) {\n    return item?.item_name ?? item?.name;\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  HostListener,\n  OnInit,\n  ViewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DatePickerComponent, DpDatePickerModule } from 'ng2-date-picker';\nimport { FormsModule } from '@angular/forms';\nimport { DatePickerConfig } from '../../../interfaces/add-grc';\nimport { CommonService } from '../../../../../services/common.service';\n\n@Component({\n  selector: 'lib-date-picker',\n  standalone: true,\n  imports: [CommonModule, DpDatePickerModule, FormsModule],\n  template: `\n    <div class=\"vx-form-group\">\n      <label class=\"vx-control-panel\">{{ valueDetails?.title }}</label>\n      <div class=\"date-time-picker\">\n        <div class=\"picker-group\">\n          <input\n            class=\"selectBoxEnable\"\n            type=\"text\"\n            readonly\n            placeholder=\"Select a date\"\n            [value]=\"\n              valueDetails?.choices[0].value !== ''\n                ? (valueDetails?.choices[0].value | date : 'dd MMM yyyy')\n                : 'Select a date'\n            \"\n            (click)=\"openDatePicker()\"\n            id=\"date-picker\"\n          />\n          <i class=\"icons\">&#xe92d;</i>\n          <dp-date-picker\n            #datePicker\n            (onSelect)=\"\n              datePickerOverlay = false;\n              closeDatePicker($event);\n              removeError('issueDueDate')\n            \"\n            [config]=\"dateConfig\"\n            [(ngModel)]=\"value\"\n          >\n          </dp-date-picker>\n          <div\n            class=\"vx-overlay\"\n            (click)=\"closeDatePicker($event)\"\n            *ngIf=\"datePickerOverlay\"\n          ></div>\n        </div>\n      </div>\n    </div>\n  `,\n  styleUrls: ['../../../../../forms.less'],\n  inputs: ['valueDetails'],\n})\nexport class VCDatePickerComponent implements OnInit {\n  value: any = new Date();\n  datePickerOverlay: boolean = false;\n  valueDetails!: any;\n  dateConfig: DatePickerConfig = {\n    disableKeypress: true,\n    format: 'DD MMM YYYY',\n    unSelectOnClick: true,\n    openOnClick: false,\n    openOnFocus: false,\n  };\n\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n\n  constructor(private commonService: CommonService) {}\n\n  ngOnInit(): void {}\n\n  openDatePicker = () => {\n    this.datePicker?.api?.open();\n    this.datePickerOverlay = true;\n  };\n\n  closeDatePicker = (event: any) => {\n    this.valueDetails.choices[0].value = event?.date?.$d.toISOString();\n    this.datePicker?.api?.close();\n    this.datePickerOverlay = false;\n  };\n  removeError(field: string) {}\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'date-picker',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datePickerOverlay,\n    };\n    this.commonService.handleDocumentClick(datePickerObject);\n  }\n}\n","import { Component, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TextFieldComponent } from '../../text-field/text-field.component';\nimport { FIELD_TEXT } from '../../../constants/field-text.constant';\nimport { TextFieldIconComponent } from '../../text-field-icon/text-field-icon.component';\nimport { LINKS } from '../../../constants/cdn-link.constant';\nimport { VALIDATION_MESSAGE } from '../../../constants/validation-message.constant';\nimport { EditModeComponent } from '../../edit-mode/edit-mode.component';\n\n@Component({\n  selector: 'lib-attributes-text-box',\n  standalone: true,\n  imports: [\n    CommonModule,\n    TextFieldComponent,\n    TextFieldIconComponent,\n    EditModeComponent,\n  ],\n  template: `\n    <lib-text-field\n      [isEditMode]=\"inputValue && openedPopup == ''\"\n      [titleText]=\"attributeInfo?.title\"\n      [placeholderText]=\"placeholderText\"\n      [(textValue)]=\"this.attributeInfo.choices[0].value\"\n      (textValueChange)=\"onTextChange($event)\"\n      (onClick)=\"onPopupOpen('')\"\n    >\n      <lib-text-field-icon\n        [cdnLink]=\"CDN_LINK.customFields\"\n        [isChecked]=\"inputValue !== ''\"\n        field-icons\n      >\n      </lib-text-field-icon>\n      <span *ngIf=\"attributeInfo?.isRequired\" class=\"required\" is-required\n        >*</span\n      >\n      <lib-edit-mode\n        *ngIf=\"inputValue && openedPopup == ''\"\n        [selectedData]=\"[{ name: inputValue }]\"\n        [type]=\"'text'\"\n        (isOnEdit)=\"onEdit('edit')\"\n        edit-mode\n      ></lib-edit-mode>\n      <p\n        *ngIf=\"isValidationError\"\n        [appScrollInView]=\"true\"\n        class=\"error-message\"\n        error-message\n      >\n        {{ VALIDATION_MESSAGE.attributes }}\n      </p>\n    </lib-text-field>\n  `,\n  styleUrls: ['../../../../../forms.less'],\n  inputs: ['attributeInfo', 'inputValue', 'isValidationError'],\n  outputs: ['onValueChange'],\n})\nexport class AttributesTextBoxComponent {\n  inputValue: string = '';\n  openedPopup: string = '';\n  attributeInfo: any;\n  isValidationError: boolean = false;\n  ALL_TEXT = FIELD_TEXT;\n  CDN_LINK = LINKS;\n  VALIDATION_MESSAGE = VALIDATION_MESSAGE;\n  placeholderText: string = 'Enter the details';\n\n  onValueChange: EventEmitter<any> = new EventEmitter<any>();\n\n  onTextChange = (event: any) => {\n    this.inputValue = event;\n    this.openedPopup = '';\n    this.attributeInfo.choices[0].value = event;\n    if (event) {\n      this.attributeInfo.choices[0].is_selected = true;\n    } else {\n      this.attributeInfo.choices[0].is_selected = false;\n    }\n    this.onValueChange.emit(this.attributeInfo);\n  };\n\n  onPopupOpen = (event: any) => {};\n  onEdit = (event: any) => {\n    this.openedPopup = event;\n  };\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SelectService {\n  private selectMap: any;\n  constructor() {\n    this.selectMap = {};\n  }\n\n  getData(name: string, value: any): { placeholder: string; color: string } {\n    let obj = {\n      placeholder: '',\n      color: '',\n    };\n    if (name && value && this.selectMap.hasOwnProperty(name) && Array.isArray(this.selectMap[name])) {\n      const values: any[][] = this.selectMap[name];\n      for (let i = 0; i < values.length; i++) {\n        if (values[i][0] === value) {\n          obj = {\n            placeholder: values[i][1],\n            color: values[i][2] ?? '',\n          };\n          break;\n        }\n      }\n    }\n    return obj;\n  }\n\n  add(select: { name: string; placeholder: string; value: any; color?: string }): void {\n    let item = [select?.value, select?.placeholder];\n    if (select?.color) {\n      item.push(select?.color);\n    }\n    if (this.selectMap.hasOwnProperty(select.name)) {\n      this.selectMap[select.name] = [...this.selectMap[select.name], item];\n    } else {\n      this.selectMap[select.name] = [item];\n    }\n  }\n\n  remove(name: string): void {\n    delete this.selectMap[name];\n  }\n}\n","import { Component, ElementRef, forwardRef, Input, ViewChild, EventEmitter, OnDestroy, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { nanoid } from 'nanoid';\n\nimport { SelectService } from '../select.service';\n@Component({\n  // tslint:disable-next-line:component-selector\n  selector: 'cs-select',\n  templateUrl: './cs-select.component.html',\n  styleUrls: ['./cs-select.component.less'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => CsSelectComponent),\n      multi: true,\n    },\n  ],\n})\nexport class CsSelectComponent implements OnDestroy {\n  @Input() dropdownLabel!: string;\n  @Input() dropdownSubLabel!: string;\n  @Input() isRequired!: string;\n  @Input() placeholder!: string;\n  @Output() valueChanged = new EventEmitter();\n  dropdownToggle!: boolean;\n  positionReset!: boolean;\n  getLeft!: number;\n  getTop!: number;\n  getWidth!: number;\n  maxWidth!: number;\n\n  valuePlaceholder: string;\n  private optionList!: ElementRef;\n  @Input() setMaxWidth: any;\n  @ViewChild('optionList', { read: ElementRef, static: false }) set content(content: ElementRef) {\n    if (content) {\n      // initially setter gets called with undefined\n      this.optionList = content;\n    }\n  }\n  name!: string;\n  val!: string;\n  showOptions!: boolean;\n  color!: string;\n  constructor(private select: SelectService) {\n    this.name = nanoid();\n    this.valuePlaceholder = '';\n  }\n\n  onChange: any = () => { };\n  onTouch: any = () => { };\n\n  set RadioVal(val: any) {\n    if (val !== undefined && val !== null && this.val !== val) {\n      this.val = val;\n      const { placeholder, color } = this.select.getData(this.name, this.val);\n      this.valuePlaceholder = placeholder;\n      this.color = color;\n      this.onChange(val);\n      this.onTouch(val);\n    }\n  }\n\n  writeValue(value: any, emit?: true): void {\n    this.RadioVal = value;\n    if (emit) {\n      this.valueChanged.emit(this.RadioVal);\n    }\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouch = fn;\n  }\n\n  openDropdown(event: any): void {\n    this.dropdownToggle = true;\n    setTimeout(() => {\n      const dropdown = event.target.getBoundingClientRect();\n      const selectOption = this.optionList.nativeElement.offsetHeight;\n      if (dropdown.top + selectOption * 2 > window.innerHeight) {\n        this.getTop = dropdown.top - selectOption;\n      } else {\n        this.getTop = dropdown.top + dropdown.height;\n      }\n      this.getLeft = dropdown.left;\n      this.getWidth = dropdown.width;\n      if (this.setMaxWidth == true) {\n        this.maxWidth = dropdown.width * 1.5;\n      } else {\n        this.maxWidth = dropdown.width;\n      }\n\n      this.showOptions = true;\n    }, 10);\n  }\n  closeDropdown(): void {\n    this.dropdownToggle = false;\n  }\n\n  ngOnDestroy(): void {\n    this.select.remove(this.name);\n  }\n}\n","<div class=\"selection-wrap\">\n  <div class=\"input-group\">\n    <input\n      type=\"text\"\n      readonly\n      class=\"value\"\n      (click)=\"openDropdown($event)\"\n      (keyup.enter)=\"openDropdown($event)\"\n      tabindex=\"0\"\n      [placeholder]=\"placeholder\"\n      [value]=\"valuePlaceholder\"\n      [style.color]=\"color\"\n    />\n    <!-- <i class=\"icons\">&#xe9e8;</i> -->\n  </div>\n  <div class=\"vx-overlay\" *ngIf=\"dropdownToggle === true\" (click)=\"closeDropdown()\"></div>\n  <div\n    class=\"select-options\"\n    *ngIf=\"dropdownToggle === true\"\n    #optionList\n    (keyup.Escape)=\"closeDropdown()\"\n    (keyup.enter)=\"closeDropdown()\"\n    (click)=\"closeDropdown()\"\n    [style.top.px]=\"getTop\"\n    [style.left.px]=\"getLeft\"\n    [style.maxWidth.px]=\"maxWidth\"\n    [style.minWidth.px]=\"getWidth\"\n    [class.active]=\"showOptions\"\n  >\n    <ng-content select=\"cs-option\"></ng-content>\n  </div>\n</div>\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { CsSelectComponent } from '../cs-select/cs-select.component';\nimport { SelectService } from '../select.service';\n@Component({\n  selector: 'cs-option',\n  templateUrl: './cs-option.component.html',\n  styleUrls: ['./cs-option.component.less'],\n})\nexport class CsOptionComponent implements AfterViewInit {\n  @Input() value!: string;\n  @Input() color!: string;\n  @Input() backgroundColor!: string;\n  @Input() optionTooltip = '';\n  @ViewChild('options', { read: ElementRef, static: false })\n  option!: ElementRef;\n\n  constructor(public csSelect: CsSelectComponent, private select: SelectService) {\n    this.value = '';\n  }\n\n  ngAfterViewInit(): void {\n    this.select.add({\n      name: this.csSelect.name,\n      placeholder: this.option.nativeElement.innerHTML,\n      value: this.value,\n      color: this.color,\n    });\n  }\n\n  change(event: any): void {\n    this.csSelect.writeValue(this.value,true);\n  }\n}\n","<div class=\"list\">\n  <label>\n    <input type=\"radio\" tabindex=\"0\" [value]=\"value\" [name]=\"csSelect.name\" (click)=\"change($event)\" [checked]=\"csSelect.val === value\"  [appTooltip]=\"optionTooltip\" placement=\"bottom-left\" delay=\"0\" [tooltipMandatory]=\"true\" />\n    <span class=\"value\" #options [style.color]=\"color\">\n      <ng-content></ng-content>\n    </span>\n  </label>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CsSelectComponent } from './cs-select/cs-select.component';\nimport { CsOptionComponent } from './cs-option/cs-option.component';\nimport { FormsModule } from '@angular/forms';\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\n\n@NgModule({\n  declarations: [CsSelectComponent, CsOptionComponent],\n  imports: [FormsModule, CommonModule, TooltipModule],\n  exports: [CsSelectComponent, CsOptionComponent],\n})\nexport class SelectModule {}\n","import { Component, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormgroupModule } from '../../../../../ui-kit/formgroup/formgroup.module';\nimport { TooltipModule } from '../../../../../ui-kit/tooltip/tooltip.module';\nimport { PopoverModule } from '../../../../../ui-kit/popover/popover.module';\nimport { SelectModule } from '../../../../../formgroup/select/select.module';\nimport { VALIDATION_MESSAGE } from '../../../constants/validation-message.constant';\n\n@Component({\n  selector: 'lib-attributes-dropdown',\n  standalone: true,\n  imports: [\n    CommonModule,\n    FormgroupModule,\n    TooltipModule,\n    PopoverModule,\n    SelectModule,\n  ],\n  template: `\n    <div class=\"vx-form-group\">\n      <label class=\"vx-control-panel\">\n        {{ dropdownInfo?.title }}\n        <span *ngIf=\"dropdownInfo?.isRequired\" class=\"required\">*</span></label\n      >\n      <cs-select [placeholder]=\"placeholderText\">\n        <cs-option\n          *ngFor=\"let eachChoice of dropdownInfo?.choices; let i = index\"\n          [value]=\"eachChoice?.is_selected\"\n          (click)=\"onValueChanged(eachChoice?.title, i)\"\n          >{{ eachChoice?.title }}</cs-option\n        >\n        <cs-option\n          *ngIf=\"dropdownInfo?.hasOther\"\n          [value]=\"dropdownInfo?.is_other_selected\"\n          (click)=\"onValueChanged(dropdownInfo?.otherValue, 0)\"\n          >{{ dropdownInfo?.otherValue }}</cs-option\n        >\n      </cs-select>\n      <p *ngIf=\"isValidationError\" class=\"error-message\">\n        {{ VALIDATION_MESSAGE.attributes }}\n      </p>\n    </div>\n  `,\n  inputs: ['dropdownInfo', 'isValidationError'],\n  outputs: ['onDataSelection'],\n  styleUrls: ['../../../../../forms.less'],\n})\nexport class AttributesDropdownComponent {\n  dropdownInfo: any = {\n    title: 'HOSTING TYPE',\n    choices: [],\n  };\n  isValidationError: boolean = false;\n  VALIDATION_MESSAGE = VALIDATION_MESSAGE;\n  onDataSelection: EventEmitter<any> = new EventEmitter<any>();\n\n  onValueChanged(event: any, index: number) {\n    if (event === 'Other') {\n      this.dropdownInfo.is_other_selected = true;\n      return;\n    }\n    this.dropdownInfo.choices.forEach((eachChoice: any, dataIndex: number) => {\n      if (index === dataIndex) {\n        eachChoice.is_selected = true;\n        eachChoice.value = 1;\n      } else {\n        eachChoice.is_selected = false;\n        eachChoice.value = 0;\n      }\n    });\n    this.onDataSelection.emit(this.dropdownInfo.choices);\n  }\n\n  get placeholderText() {\n    if (this.dropdownInfo.hasOther && this.dropdownInfo?.is_other_selected) {\n      return this.dropdownInfo.otherValue;\n    }\n    const INDEX: number = this.dropdownInfo.choices.findIndex(\n      (choices: any) => choices.is_selected\n    );\n    if (INDEX > -1) {\n      return this.dropdownInfo.choices[INDEX].title;\n    }\n    return 'Select the relevant option';\n  }\n}\n","import { Component, EventEmitter, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { FloatingBarModule } from '../../../../../sharedComponents/floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../../../../../formgroup/formgroup.module';\nimport { ASSETS } from '../../../../../../lib/constants/assets.constants';\n\n@Component({\n  selector: 'lib-attributes-checkbox',\n  standalone: true,\n  imports: [CommonModule, FormsModule, FloatingBarModule, FormgroupModule],\n  templateUrl: './attributes-checkbox.component.html',\n  styleUrls: ['./attributes-checkbox.component.less'],\n  inputs: ['selectedAttribute'],\n  outputs: ['onSelectedAttributes'],\n})\nexport class AttributesCheckboxComponent implements OnInit {\n  animation: boolean = false;\n  selectedAttribute: any;\n  ASSETS = ASSETS;\n  onSelectedAttributes: EventEmitter<any> = new EventEmitter<any>();\n\n  constructor() {}\n\n  ngOnInit(): void {\n    this.animatePopup();\n  }\n\n  /**\n   * The `animatePopup` function sets the `animation` property to true, waits for 300 milliseconds, and\n   * then sets the `animation` property to false.\n   */\n  animatePopup() {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  /* The `deleteEvent` function is used to remove a selected attribute choice from the\n`selectedAttribute` object. */\n  deleteEvent = (event: any) => {\n    const INDEX = this.selectedAttribute.choices.findIndex(\n      (eachChoice: any) => eachChoice.title === event.title\n    );\n    this.selectedAttribute.choices[INDEX].is_selected = false;\n  };\n\n  /* The `close` function is an arrow function that takes an optional `event` parameter. */\n  close = (event?: any) => {\n    if (event) {\n      this.onSelectedAttributes.emit(this.selectedAttribute);\n    } else {\n      this.onSelectedAttributes.emit();\n    }\n  };\n\n  /* The `selectAttributes` function is a method that is used to toggle the `is_selected` property of a\n choice in the `selectedAttribute` object. It takes two parameters: `index`, which represents the\n index of the choice in the `selectedAttribute.choices` array, and `event`, which represents the\n event that triggered the selection (e.g., a checkbox click). */\n  selectAttributes = (index: number, event: any) => {\n    if (event) {\n      this.selectedAttribute.choices[index].is_selected = true;\n    } else {\n      this.selectedAttribute.choices[index].is_selected = false;\n    }\n  };\n\n  /**\n   * The selectAll function sets the \"is_selected\" property to true for each choice in the\n   * selectedAttribute.\n   */\n  selectAll() {\n    const IS_SELECT_ALL = !this.isSelectAll;\n    this.selectedAttribute.choices.forEach((eachChoice: any) => {\n      eachChoice['is_selected'] = IS_SELECT_ALL;\n    });\n\n    if (this.selectedAttribute?.hasOther) {\n      this.selectedAttribute['is_other_selected'] = IS_SELECT_ALL;\n    }\n  }\n\n  /**\n   * The function checks if all choices in the selectedAttribute have the \"is_selected\" property set to\n   * true.\n   * @returns The code is returning a boolean value indicating whether all choices in the\n   * `selectedAttribute` have the `is_selected` property set to `true`.\n   */\n  get isSelectAll() {\n    return (\n      this.selectedAttribute.choices.every(\n        (eachChoice: any) => eachChoice['is_selected'] === true\n      ) &&\n      ((this.selectedAttribute?.hasOther &&\n        this.selectedAttribute['is_other_selected']) ||\n        !this.selectedAttribute?.hasOther)\n    );\n  }\n\n  /**\n   * The function returns the selected choices from a list of choices.\n   * @returns The `getSelectedValue` method returns an array of choices from the `selectedAttribute`\n   * object where the `is_selected` property is set to `true`.\n   */\n  get getSelectedValue() {\n    return this.selectedAttribute.choices.filter(\n      (eachChoice: any) => eachChoice['is_selected'] === true\n    );\n  }\n}\n","<div class=\"attributes-dialog\" [class.animate]=\"animation\">\n  <div\n    class=\"attributes-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div\n      class=\"vx-fs-14 vx-fw-500 vx-label-txt\"\n      [innerHTML]=\"selectedAttribute?.title\"\n    ></div>\n  </div>\n  <div class=\"attributes-dialog-body\">\n    <div class=\"body-top\" *ngIf=\"selectedAttribute?.choices?.length > 0\">\n      <app-cs-checkbox\n        [ngValue]=\"isSelectAll\"\n        (ngValueChange)=\"selectAll($event)\"\n        ><strong>{{ isSelectAll ? \"Deselect All\" : \"Select All\" }}</strong>\n      </app-cs-checkbox>\n    </div>\n\n    <ul class=\"attributes-dialog-list\">\n      <ng-container>\n        <li\n          *ngFor=\"let choice of selectedAttribute?.choices; let i = index\"\n          #ulElement\n        >\n          <app-cs-checkbox\n            [ngValue]=\"choice.is_selected\"\n            (ngValueChange)=\"selectAttributes(i, $event)\"\n          >\n            <ul class=\"attributes-dialog-name\" #listBlock>\n              <!-- [style.max-width.px]=\"blockWidth / rc.rc_name\" -->\n              <li\n                [appTooltip]=\"choice?.title\"\n                placement=\"bottom\"\n                type=\"black\"\n                delay=\"0\"\n                [tooltipMandatory]=\"true\"\n              >\n                {{ choice?.title }}\n              </li>\n            </ul>\n          </app-cs-checkbox>\n        </li>\n\n        <li *ngIf=\"selectedAttribute?.hasOther\">\n          <app-cs-checkbox\n            [ngValue]=\"selectedAttribute.is_other_selected\"\n            (ngValueChange)=\"selectedAttribute['is_other_selected'] = $event\"\n          >\n            <ul class=\"attributes-dialog-name\" #listBlock>\n              <!-- [style.max-width.px]=\"blockWidth / rc.rc_name\" -->\n              <li\n                [appTooltip]=\"selectedAttribute?.otherValue\"\n                placement=\"bottom\"\n                type=\"black\"\n                delay=\"0\"\n                [tooltipMandatory]=\"true\"\n              >\n                {{ selectedAttribute?.otherValue }}\n              </li>\n            </ul>\n          </app-cs-checkbox>\n        </li>\n      </ng-container>\n    </ul>\n    <app-no-data\n      *ngIf=\"!selectedAttribute?.choices?.length\"\n      [noDataImage]=\"ASSETS.search_data\"\n      [noDataText]=\"'No data to display'\"\n    ></app-no-data>\n\n    <app-floating-bar\n      [selectedData]=\"getSelectedValue\"\n      [displayElementKey]=\"'title'\"\n      (closeEvent)=\"close(getSelectedValue)\"\n      (deleteEvent)=\"deleteEvent($event)\"\n      (closeList)=\"close()\"\n      [isDisabled]=\"\n        (getSelectedValue?.length === 0 ||\n          selectedAttribute?.choices?.length === 0) &&\n        !selectedAttribute?.is_other_selected\n      \"\n    ></app-floating-bar>\n  </div>\n</div>\n","import { Component, EventEmitter, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\nimport { VCDatePickerComponent } from './date-picker/date-picker.component';\nimport { Attributes } from '../../interfaces/add-grc';\nimport { LINKS } from '../../constants/cdn-link.constant';\nimport { AttributesTextBoxComponent } from './attributes-text-box/attributes-text-box.component';\nimport { TextFieldIconComponent } from '../text-field-icon/text-field-icon.component';\nimport { AttributesDropdownComponent } from './attributes-dropdown/attributes-dropdown.component';\nimport { AttributesCheckboxComponent } from './attributes-checkbox/attributes-checkbox.component';\nimport { TextFieldComponent } from '../text-field/text-field.component';\nimport { WorkflowPipesModule } from '../../workflow-pipes/workflow-pipes.module';\nimport { EditModeComponent } from '../edit-mode/edit-mode.component';\nimport { GrcService } from '../../services/grc.service';\nimport { VALIDATION_MESSAGE } from '../../constants/validation-message.constant';\n\n@Component({\n  selector: 'lib-attributes',\n  standalone: true,\n  imports: [\n    CommonModule,\n    PopoverModule,\n    TooltipModule,\n    FormgroupModule,\n    VCDatePickerComponent,\n    AttributesTextBoxComponent,\n    TextFieldIconComponent,\n    AttributesDropdownComponent,\n    AttributesCheckboxComponent,\n    TextFieldComponent,\n    WorkflowPipesModule,\n    EditModeComponent,\n  ],\n  templateUrl: './attributes.component.html',\n  styleUrls: ['./attributes.component.less', '../../../../forms.less'],\n  inputs: ['attributesInfo', 'isFormSubmitted', 'disabled'],\n  outputs: ['onAttributesSelection', 'onClick'],\n})\nexport class AttributesComponent implements OnInit {\n  VALIDATION_MESSAGE: any = VALIDATION_MESSAGE;\n\n  attributesInfo: Attributes = {\n    name: 'Assets',\n    description: 'Credit was comes in, Debit what goes out',\n    value: 1,\n    attributes: [],\n  };\n  CDN_LINK = LINKS;\n  openedPopup: string = '';\n  selectedAttribute: any;\n  currentIndex: number = -1;\n  isFormSubmitted: boolean = false;\n  disabled: boolean = false;\n  multiPlaceholderText: string = 'Select the relevant option';\n\n  onAttributesSelection: EventEmitter<any> = new EventEmitter();\n  onClick: EventEmitter<any> = new EventEmitter();\n\n  constructor(private grcService: GrcService) {}\n\n  ngOnInit(): void {}\n\n  onDataSelection = (data: any, index: number) => {\n    this.attributesInfo.attributes[index].choices = data;\n    this.onAttributesSelection.emit(this.attributesInfo);\n  };\n\n  /* The `onPopupOpen` function is a method in the `AttributesComponent` class. It is used to handle the\nevent when a popup is opened for a specific attribute. */\n  onPopupOpen = (type: string, data: any, index: number) => {\n    this.selectedAttribute = JSON.parse(JSON.stringify(data));\n    this.openedPopup = type;\n    this.currentIndex = index;\n    if (['checkbox'].includes(type)) {\n      this.onClick.emit(true);\n    }\n  };\n\n  /**\n   * The close function updates the attributesInfo, openedPopup, currentIndex, and selectedAttribute\n   * properties.\n   * @param {any} event - The event parameter is an object that represents the event that triggered the\n   * close function. It could be any type of event, such as a mouse click or a keyboard event.\n   */\n  close(event: any) {\n    if (event) {\n      this.attributesInfo.attributes[this.currentIndex] = event;\n    }\n    this.openedPopup = '';\n    this.currentIndex = -1;\n    this.selectedAttribute = null;\n    this.onClick.emit(false);\n  }\n\n  onRemoveData(removedInfo: any, index: number) {\n    if (\n      this.attributesInfo.attributes[index]?.hasOther &&\n      removedInfo?.data?.item_name?.toLowerCase() === 'other'\n    ) {\n      this.attributesInfo.attributes[index].is_other_selected = false;\n      return;\n    }\n    const INDEX = this.attributesInfo.attributes[index].choices.findIndex(\n      (choice: any) => choice.title === removedInfo.data.title\n    );\n    this.attributesInfo.attributes[index].choices[INDEX].is_selected = false;\n    this.onAttributesSelection.emit(this.attributesInfo);\n  }\n}\n","<ng-container>\n  <div\n    class=\"custom-label vx-fs-10 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mb-5 vx-lh-4 vx-d-inline-block\"\n  >\n    Attributes\n  </div>\n  <ng-container\n    *ngFor=\"let eachAttributes of attributesInfo.attributes; let i = index\"\n  >\n    <div\n      *ngIf=\"eachAttributes?.type === 'single-textbox'\"\n      class=\"form-group-row\"\n      [class.disabled]=\"disabled\"\n    >\n      <div class=\"right\">\n        <lib-attributes-text-box\n          [attributeInfo]=\"eachAttributes\"\n          (onValueChange)=\"attributesInfo.attributes[i] = $event\"\n          [isValidationError]=\"\n            isFormSubmitted && !(eachAttributes | isAttributesValid)\n          \"\n        >\n        </lib-attributes-text-box>\n      </div>\n    </div>\n\n    <!-- Installation date -->\n    <div\n      *ngIf=\"eachAttributes?.type === 'date-time'\"\n      class=\"form-group-row\"\n      [class.disabled]=\"disabled\"\n    >\n      <lib-text-field-icon\n        [cdnLink]=\"CDN_LINK.customFields\"\n        [isChecked]=\"eachAttributes?.choices[0]?.value\"\n        field-icons\n      >\n      </lib-text-field-icon>\n      <div class=\"right\">\n        <lib-date-picker [valueDetails]=\"eachAttributes\"></lib-date-picker>\n        <p\n          *ngIf=\"isFormSubmitted && !(eachAttributes | isAttributesValid)\"\n          [appScrollInView]=\"true\"\n          class=\"error-message\"\n          error-message\n        >\n          {{ VALIDATION_MESSAGE.attributes }}\n        </p>\n      </div>\n    </div>\n\n    <!-- Hosting type -->\n    <div\n      *ngIf=\"eachAttributes?.type === 'dropdown'\"\n      class=\"form-group-row\"\n      [class.disabled]=\"disabled\"\n    >\n      <lib-text-field-icon\n        [cdnLink]=\"CDN_LINK.customFields\"\n        [isChecked]=\"(eachAttributes | getSelectedValue).length > 0\"\n        field-icons\n      >\n      </lib-text-field-icon>\n      <div class=\"right\">\n        <lib-attributes-dropdown\n          [dropdownInfo]=\"eachAttributes\"\n          (onDataSelection)=\"onDataSelection($event, i)\"\n          [isValidationError]=\"\n            isFormSubmitted && !(eachAttributes | isAttributesValid)\n          \"\n        ></lib-attributes-dropdown>\n      </div>\n    </div>\n\n    <!-- Hosting location -->\n    <div\n      *ngIf=\"eachAttributes?.type === 'checkbox'\"\n      class=\"form-group-row\"\n      [class.disabled]=\"disabled\"\n      [class.active]=\"false\"\n    >\n      <div class=\"right\">\n        <lib-text-field\n          [isEditMode]=\"\n            (eachAttributes | getSelectedValue).length && openedPopup == ''\n          \"\n          [titleText]=\"eachAttributes?.title\"\n          [placeholderText]=\"multiPlaceholderText\"\n          [isReadOnly]=\"true\"\n          (onClick)=\"onPopupOpen('checkbox', eachAttributes, i)\"\n        >\n          <lib-text-field-icon\n            [cdnLink]=\"CDN_LINK.customFields\"\n            [isChecked]=\"(eachAttributes | getSelectedValue).length > 0\"\n            field-icons\n          >\n          </lib-text-field-icon>\n          <span *ngIf=\"eachAttributes?.isRequired\" class=\"required\" is-required\n            >*</span\n          >\n\n          <lib-edit-mode\n            *ngIf=\"\n              (eachAttributes | getSelectedValue).length && openedPopup == ''\n            \"\n            (onRemoveData)=\"onRemoveData($event, i)\"\n            [selectedData]=\"eachAttributes | getSelectedValue\"\n            [type]=\"'list'\"\n            (isOnEdit)=\"onPopupOpen('checkbox', eachAttributes, i)\"\n            edit-mode\n          ></lib-edit-mode>\n          <p\n            *ngIf=\"isFormSubmitted && !(eachAttributes | isAttributesValid)\"\n            [appScrollInView]=\"true\"\n            class=\"error-message\"\n            error-message\n          >\n            {{ VALIDATION_MESSAGE.attributes }}\n          </p>\n        </lib-text-field>\n      </div>\n    </div>\n  </ng-container>\n  <!-- Technical security -->\n</ng-container>\n\n<lib-attributes-checkbox\n  *ngIf=\"openedPopup === 'checkbox'\"\n  [selectedAttribute]=\"selectedAttribute\"\n  (onSelectedAttributes)=\"close($event)\"\n></lib-attributes-checkbox>\n","import { Component, Input, OnInit, EventEmitter, Output, HostListener } from '@angular/core';\n\n@Component({\n  selector: 'app-smiley-dialog-inline',\n  templateUrl: './smiley-dialog-inline.component.html',\n  styleUrls: ['./smiley-dialog-inline.component.less'],\n})\nexport class SmileyDialogInlineComponent implements OnInit {\n  @Input() message!: string;\n  @Input() actionButtons!: any[];\n  @Output() action: EventEmitter<string> = new EventEmitter();\n  @Output() closeSmiley: EventEmitter<any> = new EventEmitter();\n\n  @HostListener('window:keyup', ['$event']) handleKeyboardEvent(event: KeyboardEvent) {\n    if (event.key === 'Escape') {\n      this.smileyCloseEmitter({});\n    }\n  }\n  constructor() {}\n\n  ngOnInit(): void {\n    setTimeout(()=>{\n      this.smileyCloseEmitter();\n    },5000)\n  }\n\n  actionEmitter(event: any) {\n    this.action.emit(event?.id);\n  }\n\n  smileyCloseEmitter(event?: any) {\n    this.closeSmiley.emit();\n  }\n}\n","<div class=\"vx-smiley-popup\">\n  <button class=\"close\" (click)=\"smileyCloseEmitter($event)\">\n    <i class=\"icons\">&#xe93f;</i>\n  </button>\n  <div class=\"vx-smiley-container vx-text-center\">\n      <div class=\"vx-smiley\">\n          <div class=\"vx-smiley-circle happy\">\n              <div class=\"vx-smiley-circle-inner\">\n                  <div class=\"eyes\">\n                      <div class=\"eye\"></div>\n                      <div class=\"eye\"></div>\n                  </div>\n                  <div class=\"mouth\"></div>\n              </div>\n          </div>\n      </div>\n      <h3>{{ message }}</h3>\n      <div class=\"successSmilyButton\">\n        <button *ngFor=\"let button of actionButtons\" (click)=\"actionEmitter(button)\" [class]=\"button?.class\">\n          {{ button?.buttonText }}\n        </button>\n      </div>\n  </div>\n</div>\n<!-- active -->\n<!-- <div class=\"workflow-smiley-popup active\">\n  <button class=\"close\" (click)=\"smileyCloseEmitter($event)\">\n    <i class=\"icons\">&#xe93f;</i>\n  </button>\n  <div class=\"workflow-smiley-container\">\n    <div class=\"smiley-inner\">\n      <div class=\"smiley-circle active\">\n        <div class=\"smiley-circle-inner\">\n          <div class=\"eyes\">\n            <div class=\"eye\"></div>\n            <div class=\"eye\"></div>\n          </div>\n          <div class=\"mouth\"></div>\n        </div>\n      </div>\n    </div>\n    <h3>{{ message }}</h3>\n    <div class=\"successSmileyButton\">\n      <button *ngFor=\"let button of actionButtons\" (click)=\"actionEmitter(button)\" [class]=\"button?.class\">\n        {{ button?.buttonText }}\n      </button>\n    </div>\n  </div>\n</div> -->\n","import { Component, EventEmitter, OnDestroy, OnInit } from '@angular/core';\nimport { FIELD_TEXT } from '../../shared/constants/field-text.constant';\nimport { LINKS } from '../../shared/constants/cdn-link.constant';\nimport { VALIDATION_MESSAGE } from '../../shared/constants/validation-message.constant';\nimport {\n  AddGrc,\n  Attributes,\n  Button,\n  GRCType,\n  InputType,\n  ListObject,\n  OpenedPopup,\n} from '../../shared/interfaces/add-grc';\nimport { GrcService } from '../../shared/services/grc.service';\nimport { ResponsibilityService } from '../../../workflow-services/responsibility.service';\nimport { AuthService } from '../../../workflow-services/auth.service';\nimport {\n  GRC_TYPE_ARRAY,\n  OTHER_GRC_CARD,\n  OTHER_GRC_TAB_INDEX,\n  SMILEY_BUTTONS,\n  UNCATEGORIZED_LINK_CATEGORY,\n} from '../../shared/constants/grcObject.constant';\nimport { SUCCESS_MESSAGE } from '../../shared/constants/message.contstant';\nimport { Subscription } from 'rxjs';\nimport { UiKitService } from '../../../workflow-services/ui-kit.service';\nimport { ComplianceCommonService } from '../../../workflow-services/common-workflow-services/compliance-common.service';\nimport { OrganizationCommonService } from '../../../workflow-services/common-workflow-services/organization-common.service';\nimport { IframeService } from '../../../services/iframe.service';\nimport { CommonService } from '../../../services/common.service';\n\n@Component({\n  selector: 'lib-grc-object-container',\n  templateUrl: './grc-object-container.component.html',\n  styleUrls: ['./grc-object-container.component.less', '../../../forms.less'],\n  outputs: [\n    'populateOption',\n    'pickerChanged',\n    'closeWorkflow',\n    'disconnectRefresh',\n    'resetForm',\n    'hideElementsFromMoreOptions',\n  ],\n  inputs: ['grcType', 'MODE', 'ID'],\n})\nexport class GrcObjectContainerComponent implements OnInit, OnDestroy {\n  MODE: 'CREATE' | 'EDIT' = 'CREATE';\n  ID: string = '';\n  ALL_TEXT = FIELD_TEXT;\n  CDN_LINK = LINKS;\n  VALIDATION_MESSAGE = VALIDATION_MESSAGE;\n  GRC_TYPE_ARRAY = GRC_TYPE_ARRAY;\n  EDITOR_CONFIG = GrcService.EDITOR_CONFIG;\n  otherGRCCard = JSON.parse(JSON.stringify(OTHER_GRC_CARD));\n  OBJECT_TYPE!: GRCType[];\n  LIST_POPUP: Array<string> = ['RC'];\n  smileyMessage: string = SUCCESS_MESSAGE.ADD_GRC_OBJECT;\n  INPUT_TYPE: InputType = {\n    name: 'NAME',\n    owner: 'OWNER',\n    RC: 'RC',\n    riskCategory: 'RISK_CATEGORY',\n    otherGrcObjects: 'OTHER_GRC_OBJECTS',\n    programResponsibility: 'PROGRAM_RESPONSIBILITY',\n  };\n  ORIGINAL_GRC_ATTRIBUTES: any; // Don't change the value once it is assigned\n  dialogFields: Array<string> = [\n    'RC',\n    'OWNER',\n    'OTHER_GRC_OBJECTS',\n    'RISK_CATEGORY',\n    'ATTRIBUTES',\n    'PROGRAM_RESPONSIBILITY',\n  ];\n  scrollToBottom = false;\n  grcType: 0 | 1 | 2 | 3 = 0;\n  disabledIds: Array<number> = [];\n  openedPopup: OpenedPopup['type'] = '';\n  isLoading: boolean = true;\n  additionalOption: any = {\n    ATTRIBUTES: false,\n    LINK_PROGRAM: false,\n    LINK_RISK_CATEGORIES_RISKS: false,\n    OTHER_GRC_OBJECTS: false,\n  };\n  grcForm: any = {\n    grcObjectType: false,\n    linkProgram: false,\n    linkRisk: false,\n    otherGrcObjects: false,\n  };\n  grcPayload!: AddGrc;\n  listObject!: ListObject;\n  selectedAttributes!: GRCType;\n  showSmiley: boolean = false;\n  actionButtons: Button[] = SMILEY_BUTTONS;\n  grcDataWithTypes: any = {\n    assets: [],\n    processes: [],\n    vendors: [],\n    inventory: [],\n  };\n  GRCSelectedTab: number = 0;\n  otherGRCTabIndex = OTHER_GRC_TAB_INDEX;\n  isFormSubmitted: boolean = false;\n  grcNameValidationError: string = '';\n  isDuplicateName: boolean = false;\n  detailsLoader: boolean = false;\n  selectedCategories: any[] = [];\n  selectedRisks: any[] = [];\n  addedGRC: any;\n  otherGRCSearch: string = '';\n  grcTabLoader: boolean = false;\n  selectedProgram: any[] = [];\n  selectedResponsibility: any[] = [];\n  submitLoader: boolean = false;\n  linkedResponsibilities: any = {};\n\n  populateOption: EventEmitter<any> = new EventEmitter();\n  pickerChanged: EventEmitter<any> = new EventEmitter();\n  closeWorkflow: EventEmitter<any> = new EventEmitter();\n  disconnectRefresh: EventEmitter<any> = new EventEmitter();\n  resetForm: EventEmitter<any> = new EventEmitter();\n  hideElementsFromMoreOptions: EventEmitter<any> = new EventEmitter();\n\n  otherGRCSubscription!: Subscription;\n  hideMoreOption: any = [];\n  responsibilityList: any = [];\n\n  constructor(\n    private grcService: GrcService,\n    private apiService: ResponsibilityService,\n    private authService: AuthService,\n    private uiKitService: UiKitService,\n    private complianceCommonService: ComplianceCommonService,\n    private organizationCommonService: OrganizationCommonService,\n    private iframeService: IframeService,\n    private CommonService: CommonService\n  ) {}\n  ngOnDestroy(): void {\n    this.resetGRCForm();\n  }\n\n  ngOnInit(): void {\n    this.grcPayload = JSON.parse(JSON.stringify(this.grcService.GRC_PAYLOAD));\n    this.grcPayload.type = this.grcType ?? 0;\n    this.listObject = this.grcService.LIST_OBJECT;\n    this._initiateAPI();\n    this.getSubscriptionDetails();\n  }\n\n  getSubscriptionDetails() {\n    this.organizationCommonService?.getSubscriptionDetailsInfo()?.subscribe({\n      next: (res: any) => {\n        if (!res[0]?.risk_flag) {\n          this.hideMoreOption.push('LINK_RISK_CATEGORIES_RISKS');\n          this.hideElementsFromMoreOptions.emit(this.hideMoreOption);\n        }\n      },\n      error: (err: Error) => {\n        console.error(err);\n      },\n    });\n  }\n\n  populateOptionalFields() {\n    const activatedOptions = [];\n    for (const key of Object.keys(this.additionalOption)) {\n      if (this.additionalOption[key] === true) {\n        activatedOptions.push(key);\n      }\n    }\n\n    this.populateOption.emit(activatedOptions);\n  }\n\n  //TODO: implement this\n  addMoreInfo(event: any) {\n    switch (event?.code) {\n      case 'ATTRIBUTES':\n        this.grcForm.grcObjectType = event?.checked;\n        break;\n      case 'LINK_PROGRAM':\n        this.grcForm.linkProgram = event?.checked;\n        break;\n      case 'LINK_RISK_CATEGORIES_RISKS':\n        this.grcForm.linkRisk = event?.checked;\n        break;\n      case 'OTHER_GRC_OBJECTS':\n        this.grcForm.otherGrcObjects = event?.checked;\n        break;\n    }\n    this.scrollToBottom = true;\n  }\n\n  //TODO: implement this\n  onTextChange(event: any) {\n    this.grcPayload.name = event.trim();\n    this.openedPopup = '';\n    this.grcNameValidationError = '';\n    this.isDuplicateName = false;\n  }\n\n  //TODO: implement this\n  onPopupOpen(type: OpenedPopup['type']) {\n    switch (type) {\n      case 'OWNER':\n      case 'RC':\n        this.openedPopup = type;\n        this.pickerChanged.emit(true);\n        break;\n      case 'OTHER_GRC_OBJECTS':\n        this.openedPopup = type;\n        this.getOtherGRCObjects({ rc_ids: '' });\n        this.getOtherGRCTabCount({ rc_ids: '' });\n        this.pickerChanged.emit(true);\n        break;\n      case 'RISK_CATEGORY':\n        this.openedPopup = type;\n        this.authService.previewPanel.next(true);\n        this.pickerChanged.emit(true);\n        break;\n      case 'PROGRAM_RESPONSIBILITY':\n        this.openedPopup = type;\n        this.authService.previewPanel.next(true);\n        this.pickerChanged.emit(true);\n        break;\n      default:\n    }\n  }\n\n  onSaveSelectedList(event: any) {\n    this.listObject = event;\n    if (this.openedPopup === 'OTHER_GRC_OBJECTS') {\n      this.setOtherGRCTypesFormate();\n    }\n    this.setListPayload(this.openedPopup);\n    this.openedPopup = '';\n    this.pickerChanged.emit(false);\n    this.authService.previewPanel.next(false);\n  }\n\n  getAttributeSelection(event: any) {\n    if (event) {\n      this.openedPopup = '';\n      this.pickerChanged.emit(true);\n    } else {\n      this.openedPopup = '';\n      this.pickerChanged.emit(false);\n      this.authService.previewPanel.next(false);\n    }\n  }\n\n  setListPayload(type: string) {\n    if (type === 'OWNER') {\n      this.grcPayload.owners = this.listObject.OWNER.selectedData.map(\n        (item: any) => item.member_id,\n      );\n    }\n\n    if (type === 'RC') {\n      let previousRCIds = JSON.parse(JSON.stringify(this.grcPayload.rc_ids));\n      this.grcPayload.rc_ids = this.listObject.RC.selectedData.map(\n        (item: any) => item?._id\n      );\n      if (\n        !previousRCIds.every((id: any) => this.grcPayload.rc_ids.includes(id))\n      ) {\n        this.resetDataOnRCChange();\n      }\n    }\n    if (type === 'OTHER_GRC_OBJECTS') {\n      this.grcPayload.linked_GRC_ids =\n        this.listObject.OTHER_GRC_OBJECTS.selectedData.map(\n          (item: any) => item._id\n        );\n    }\n    if (type === 'RISK_CATEGORY') {\n      this.grcPayload.risk_category_ids = this.getRiskCategoryPayload(\n        this.listObject?.RISK_CATEGORY?.selectedData\n      );\n    }\n    if (type === 'PROGRAM_RESPONSIBILITY') {\n      this.grcPayload.program_category_ids =\n        this.getProgramResponsibilityPayload(\n          this.listObject?.PROGRAM_RESPONSIBILITY?.selectedData\n        );\n    }\n  }\n\n  onClickOutside() {\n    //this.openedPopup = '';\n  }\n\n  onEdit(event: any, subType: string) {\n    this.openedPopup = event;\n    if (event === 'OTHER_GRC_OBJECTS') {\n      this.GRCSelectedTab = this.otherGRCTabIndex[subType] ?? 0;\n      this.getOtherGRCObjects({ type: this.GRCSelectedTab, rc_ids: '' });\n      this.getOtherGRCTabCount({ rc_ids: '' });\n    }\n    if (this.LIST_POPUP.includes(event)) {\n      this.pickerChanged.emit(true);\n      // this.authService.previewPanel.next(true);\n    }\n    if (event === 'RISK_CATEGORY' || event === 'PROGRAM_RESPONSIBILITY') {\n      this.authService.previewPanel.next(true);\n    }\n  }\n\n  onRemoveData(\n    event: any,\n    type:\n      | 'RC'\n      | 'OWNER'\n      | 'OTHER_GRC_OBJECTS'\n      | 'RISK_CATEGORY'\n      | 'PROGRAM_RESPONSIBILITY'\n  ) {\n    switch (type) {\n      case 'RC':\n        this.listObject[type].selectedData.splice(event.index, 1);\n        this.resetDataOnRCChange();\n        break;\n      case 'OWNER':\n        this.listObject[type].selectedData.splice(event.index, 1);\n        break;\n      case 'OTHER_GRC_OBJECTS':\n        this.removeOtherGRCObjects(event?.data);\n        break;\n      case 'RISK_CATEGORY':\n        this.deleteSelectedRisk(event.data?.CategoryIds[0], event?.data);\n        break;\n      case 'PROGRAM_RESPONSIBILITY':\n        this.deleteSelectedResponsibility(event?.data);\n        break;\n    }\n    this.setListPayload(type);\n  }\n\n  changeAttributesType(event: any) {\n    this.grcType = event ?? 0;\n    this.grcPayload.type = event ?? 0;\n    this.setDefaultGRCObjectType();\n  }\n\n  private _initiateAPI() {\n    if (this.MODE === 'EDIT') {\n      this.getGRCObjectDetails(this.ID);\n      this.smileyMessage = SUCCESS_MESSAGE.UPDATE_GRC_OBJECT;\n    } else {\n      this.detailsLoader = false;\n      this._getGRCObjectType();\n      this._getOwnerList();\n      this._getRCList();\n      this.getOtherGRCObjects({ rc_ids: '' });\n      // this.getOtherGRCTabCount();\n      this.getAllResponsibilities();\n    }\n  }\n\n  private _getOwnerList() {\n    this.listObject.OWNER.isLoading = true;\n    this.apiService.getGRCOwnerList().subscribe({\n      next: (userList: any) => this.mapUserList(userList),\n      error: (error: any) => {},\n    });\n  }\n\n  /**\n   * The function `mapUserList` maps the user list data and performs some additional operations on each\n   * user object.\n   * @param {any} userList - The `userList` parameter is an object that contains a `data` property. The\n   * `data` property is an array of user objects.\n   */\n  private mapUserList(userList: any) {\n    this.listObject['OWNER']['data'] = {};\n    this.listObject['OWNER'].selectedData = [];\n    this.disabledIds = [];\n    // Map will get remove once API change\n    this.listObject['OWNER']['data']['assigneesList'] = userList?.data.map(\n      (user: any) => {\n        user.item_name = user.member_name;\n        user.employee_name = user.member_name;\n        user.my_member_id = user.member_id;\n        user.item_id = user.member_id;\n        if (['ADMIN', 'KEY_ADMIN'].includes(user.user_role)) {\n          this.disabledIds.push(user.member_id);\n          this.listObject['OWNER'].selectedData.push(user);\n        }\n        return user;\n      }\n    );\n    if (this.MODE === 'EDIT') {\n      this.listObject.OWNER.selectedData = this.listObject['OWNER']['data'][\n        'assigneesList'\n      ].filter((item: any) => this.grcPayload.owners.includes(item?.member_id));\n      this.listObject['OWNER'].disabledIds = [...new Set(this.disabledIds)];\n    } else {\n      this.defaultSelectedUser();\n    }\n    this.listObject.OWNER.isLoading = false;\n    this.checkIsDataLoaded();\n  }\n\n  getAllResponsibilitiesList(linkedResponsibilities?: any) {\n    this.grcService.getAllResponsibilities(0, '').subscribe({\n      next: (data: any) => {\n        this.responsibilityList = data?.data?.responsibilities;\n        this.additionalOption.LINK_PROGRAM = true;\n        this.grcForm.linkProgram = true;\n        const responsibilityData = this.responsibilityList.filter((item: any) => linkedResponsibilities?.includes(item?.rid));\n        this.listObject.PROGRAM_RESPONSIBILITY.selectedData =responsibilityData;\n        this.populateOptionalFields();\n        [];\n        \n      },\n      error: (error: any) => {\n        console.error(error);\n      },\n    });\n  }\n\n  /**\n   * The function `defaultSelectedUser()` sets the default selected user based on the current user's role\n   * and assigns it to the `OWNER` list object.\n   */\n  private defaultSelectedUser() {\n    if (!this.authService.isAdmin() && !this.authService.isKeyAdmin()) {\n      const USER = this.listObject['OWNER']['data']['assigneesList'].find(\n        (user: any) => user.member_id === this.authService.getMemberId()\n      );\n      this.listObject['OWNER'].selectedData.push(USER);\n    }\n    this.listObject['OWNER']['disabledIds'] = [...this.disabledIds];\n    this.grcPayload.owners = this.listObject['OWNER'].selectedData.map(\n      (user: any) => user.member_id\n    );\n  }\n\n  private _getRCList() {\n    this.listObject.RC.isLoading = true;\n    this.complianceCommonService?.getRcListInfo()?.subscribe({\n      next: (data: any) => {\n        this.listObject['RC']['data'] = data;\n        this.listObject.RC.isLoading = false;\n        if (this.MODE === 'EDIT') {\n          this.listObject.RC.selectedData = data?.filter((item: any) =>\n            this.grcPayload?.rc_ids?.includes(item?._id)\n          );\n        }\n        this.checkIsDataLoaded();\n      },\n      error: (error: Error) => {\n        console.error(error);\n      },\n    });\n  }\n\n  private _getGRCObjectType() {\n    this.apiService.getObjectType().subscribe({\n      next: (data: GRCType[]) => {\n        // this.setLinkRiskTab(data);\n        const OBJECT_LABEL: any = {\n          ASSETS: 'Asset',\n          PROCESSES: 'Process',\n          VENDORS: 'Vendor',\n          INVENTORY: 'Inventory',\n        };\n        this.OBJECT_TYPE = data.map((item: any, index: number) => {\n          item.value = index;\n          item.label = OBJECT_LABEL[item?.label?.toUpperCase()] ?? item?.label;\n          return item;\n        });\n\n        this.ORIGINAL_GRC_ATTRIBUTES = JSON.parse(\n          JSON.stringify(this.OBJECT_TYPE)\n        );\n\n        if (this.MODE === 'EDIT') {\n          this.OBJECT_TYPE[this.grcType].attributes =\n            this.grcPayload.attributes;\n\n          if (\n            this.grcService.checkAttributesSelected(\n              this.OBJECT_TYPE[this.grcType].attributes\n            )\n          ) {\n            this.grcForm.grcObjectType = true;\n            this.additionalOption.ATTRIBUTES = true;\n            this.populateOptionalFields();\n          }\n        }\n        this.setDefaultGRCObjectType();\n        this.checkIsDataLoaded();\n      },\n      error: (error: any) => {},\n    });\n  }\n\n  private setDefaultGRCObjectType() {\n    this.selectedAttributes =\n      this.OBJECT_TYPE.find((ele: any) => ele.value === this.grcType) ??\n      this.OBJECT_TYPE[0];\n  }\n\n  private checkIsDataLoaded() {\n    this.isLoading =\n      this.listObject.OWNER.isLoading ||\n      this.listObject.RC.isLoading ||\n      this.listObject.OTHER_GRC_OBJECTS.isLoading ||\n      (this.MODE === 'EDIT' && this.detailsLoader);\n  }\n\n  getOtherGRCObjects(event?: any) {\n    if (this.otherGRCSubscription) {\n      this.otherGRCSubscription.unsubscribe();\n    }\n    if (event?.searchString && this.otherGRCSearch !== event?.searchString) {\n      this.getOtherGRCTabCount(event);\n    }\n    this.otherGRCSearch = event?.searchString ?? '';\n    this.listObject.OTHER_GRC_OBJECTS.isLoading = true;\n    // event['rc_ids'] = this.listObject?.RC?.selectedData\n    //   ?.map((rc: any) => rc?._id)\n    //   .join(',');\n    this.otherGRCSubscription = this.grcService\n      .getGRCList(event)\n      .subscribe((data: any) => {\n        this.listObject.OTHER_GRC_OBJECTS.data = data;\n        this.listObject.OTHER_GRC_OBJECTS.isLoading = false;\n        if (this.MODE === 'EDIT') {\n          // this.listObject.OTHER_GRC_OBJECTS.selectedData = data.filter(\n          //   (item: any) => this.grcPayload.linked_GRC_ids.includes(item?._id)\n          // );\n          if (this.grcPayload.linked_GRC_ids?.length) {\n            this.grcForm.otherGrcObjects = true;\n            this.additionalOption.OTHER_GRC_OBJECTS = true;\n            this.populateOptionalFields();\n          }\n        }\n        this.checkIsDataLoaded();\n      });\n  }\n\n  getOtherGRCTabCount(event?: any) {\n    this.grcTabLoader = true;\n    // event['rc_ids'] = this.listObject?.RC?.selectedData\n    //   ?.map((rc: any) => rc?._id)\n    //   .join(',');\n    this.grcService.getGRCTabsCount(event).subscribe((data: any) => {\n      this.grcTabLoader = false;\n      this.otherGRCCard[0].count = data?.assets_type_count;\n      this.otherGRCCard[1].count = data?.processes_type_count;\n      this.otherGRCCard[2].count = data?.vendors_type_count;\n      this.otherGRCCard[3].count = data?.inventory_type_count;\n    });\n  }\n\n  getOtherGRCTabIndex(event?: any, data?: any) {}\n\n  //Populate/Edit GRC Object\n\n  getGRCObjectDetails(grcId: string) {\n    this.apiService.getGRCObjectDetails(grcId).subscribe({\n      next: (data: any) => {\n        this.openedPopup = '';\n        this.populatePayload(data);\n        this.createGRCObject(data?.linkedGrcDetails);\n        this.detailsLoader = false;\n\n        this._getRCList();\n        this._getOwnerList();\n        this._getGRCObjectType();\n        const linkedResponsibilities = data?.linked_responsibilities?.added;\n        if(linkedResponsibilities?.length){\n          this.getAllResponsibilitiesList(linkedResponsibilities);\n        }\n        this.getOtherGRCObjects({ rc_ids: '' });\n      },\n      error: (error: any) => {\n        console.error('error', error);\n      },\n    });\n  }\n\n  private createGRCObject(data: any) {\n    if (data?.length) {\n      this.grcForm.otherGrcObjects = true;\n      this.additionalOption.OTHER_GRC_OBJECTS = true;\n      let GRCObject: any = {\n        assets: [],\n        processes: [],\n        vendors: [],\n        inventory: [],\n      };\n      this.listObject.OTHER_GRC_OBJECTS.selectedData = [...new Set(data)];\n      const GRC_TYPE = GRC_TYPE_ARRAY;\n      data.forEach((item: any) => {\n        GRCObject[GRC_TYPE[item?.type ?? 1]].push(item);\n        this.otherGRCCard[item?.type].selectedCount += 1;\n      });\n\n      this.grcDataWithTypes = GRCObject;\n      this.updateOtherGRCObjectsPayload();\n    }\n  }\n  private populatePayload(data: any) {\n\n    this.grcPayload.name = data?.name;\n    this.grcPayload.type = data?.type;\n    this.grcPayload.owners = data?.owners;\n    this.grcPayload.rc_ids = data?.rc_ids;\n    this.grcPayload.linked_GRC_ids = data?.linked_GRC_ids;\n    this.grcPayload.risk_category_ids =\n      this.populateLinkRisk(data?.risk_category_ids) ?? [];\n    // this.grcPayload.program_category_ids =\n    //   this.populateLinkResponsibility(data?.linked_responsibilities_details) ??\n    //   [];\n    this.grcPayload.attributes = data?.attributes;\n    this.grcPayload.state = data?.state;\n    this.grcPayload.description = data?.description;\n    this.grcPayload.frequency = data?.frequency;\n    this.grcPayload.parent_grc_ids = data?.parent_grc_ids;\n    this.grcPayload.email_notification_member_ids =\n      data?.email_notification_member_ids;\n  }\n\n  public saveGRCObject() {\n    this.isFormSubmitted = true;\n    if (this.grcForm.grcObjectType) {\n      this.grcPayload.attributes = this.selectedAttributes?.attributes;\n    }\n    if (\n      this.grcService.checkValidation(\n        this.grcPayload,\n        this.grcForm?.grcObjectType\n      )\n    ) {\n      this.isLoading = true;\n      this.uiKitService.isLoader = true;\n      this.submitLoader = true;\n      if (this.MODE === 'EDIT') {\n        this.updateGRCObject();\n        return;\n      }\n      let PAYLOAD = JSON.parse(JSON.stringify(this.grcPayload));\n      PAYLOAD.owners = this.getOwnersExceptDefault(PAYLOAD.owners);\n      \n\n      // Transform responsibilities data\n      PAYLOAD.linked_responsibilities =\n        this.CommonService.transformResponsibilitiesData(\n          this.listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.map((resp) => resp?.rid),\n          this.linkedResponsibilities?.responsibilities?.linked || []\n        );\n\n        PAYLOAD.program_category_ids = [];\n\n      this.apiService.addGRCObject(PAYLOAD).subscribe({\n        next: (data: any) => {\n          this.showSmiley = true;\n          this.setMoreOptionsOnSubmit();\n          this.uiKitService.isSmileyOn = true;\n          this.addedGRC = data;\n        },\n        error: (error: any) => {\n          this.isLoading = false;\n          console.error('error', error, error.status);\n          this.submitLoader = false;\n          if (error.status === 409 || error.status === 403) {\n            this.isDuplicateName = true;\n            this.setMoreOptionsOnSubmit();\n            this.mapUserList({\n              data: this.listObject.OWNER.data.assigneesList,\n            });\n            this.grcNameValidationError = VALIDATION_MESSAGE.grc_exists;\n          }\n        },\n      });\n    } else {\n      return;\n    }\n  }\n\n  resetGRCObject() {\n    this.MODE = 'CREATE';\n    this.smileyMessage = SUCCESS_MESSAGE.ADD_GRC_OBJECT;\n    this.grcPayload = JSON.parse(JSON.stringify(this.grcService.GRC_PAYLOAD));\n    this.grcPayload.type = this.grcType;\n    this.isFormSubmitted = false;\n    this.isDuplicateName = false;\n    this.uiKitService.isSmileyOn = false;\n    this.hideElementsFromMoreOptions.emit(this.hideMoreOption);\n    this.OBJECT_TYPE = JSON.parse(JSON.stringify(this.ORIGINAL_GRC_ATTRIBUTES));\n    this.otherGRCCard = JSON.parse(JSON.stringify(OTHER_GRC_CARD));\n    this.resetOtherGRCCard();\n    this.setDefaultGRCObjectType();\n    this.resetGRCDataWithTypes();\n    this.resetListObjectSelection();\n    this.mapUserList({ data: this.listObject.OWNER.data.assigneesList });\n  }\n\n  resetListObjectSelection() {\n    this.listObject.OWNER.selectedData = [];\n    this.listObject.RC.selectedData = [];\n    this.listObject.OTHER_GRC_OBJECTS.selectedData = [];\n    this.listObject.RISK_CATEGORY.selectedData = [];\n    this.listObject.PROGRAM_RESPONSIBILITY.selectedData = [];\n  }\n\n  smileyActions(event: any) {\n    this.showSmiley = false;\n    this.isLoading = false;\n    if (event === 'addMore') {\n      this.resetGRCForm();\n    } else if (event === 'view') {\n      this.resetGRCForm();\n      this.viewGRC();\n    }\n  }\n\n  closeSmiley(event: any) {\n    this.showSmiley = false;\n    this.isLoading = false;\n    this.uiKitService.isSmileyOn = false;\n    this.resetGRCForm();\n    this.closeWorkflow.emit({ evt: this.addedGRC, confirm: false });\n  }\n\n  resetGRCForm() {\n    this.MODE = 'CREATE';\n    this.resetGRCObject();\n    this.grcForm.otherGrcObjects = false;\n    this.grcForm.linkRisk = false;\n    this.grcForm.linkProgram = false;\n    this.grcForm.grcObjectType = false;\n\n    this.resetForm.emit(true);\n  }\n\n  viewGRC() {\n    let url: string;\n    this.disconnectRefresh.emit(false);\n    if (window.location.host.startsWith('localhost')) {\n      url = 'http://' + window.location.host + '/#/manage-grc-objects';\n    } else {\n      url =\n        'https://' +\n        window.location.host +\n        '/organization/#/manage-grc-objects';\n    }\n\n    this.iframeService.redirectIfInIframe(url, this.MODE !== 'EDIT');\n\n    this.resetGRCForm();\n    this.closeSmiley('');\n    this.closeWorkflow.emit({ evt: this.addedGRC, confirm: false });\n  }\n\n  setOtherGRCTypesFormate() {\n    const grcTypes = GRC_TYPE_ARRAY;\n    this.resetGRCDataWithTypes();\n    this.listObject?.OTHER_GRC_OBJECTS?.selectedData?.forEach((item: any) => {\n      this.grcDataWithTypes[grcTypes[item?.type]]?.push(item);\n    });\n    this.updateOtherGRCObjectsPayload();\n  }\n\n  removeOtherGRCObjects(event: any) {\n    const grcTypes = GRC_TYPE_ARRAY;\n    this.listObject.OTHER_GRC_OBJECTS.selectedData =\n      this.listObject.OTHER_GRC_OBJECTS.selectedData.filter(\n        (grc: any) => grc?._id !== event?._id\n      );\n    this.filterOtherGRCData(event, grcTypes[event?.type]);\n    this.otherGRCCard[0].selectedCount\n      ? (this.otherGRCCard[event?.type].selectedCount -= 1)\n      : 0;\n    this.updateOtherGRCObjectsPayload();\n  }\n\n  filterOtherGRCData(event: any, type: string) {\n    this.grcDataWithTypes[type] = this.grcDataWithTypes[type]?.filter(\n      (grc: any) => grc?._id !== event?._id\n    );\n  }\n\n  resetGRCDataWithTypes() {\n    this.grcDataWithTypes = {\n      assets: [],\n      processes: [],\n      vendors: [],\n      inventory: [],\n    };\n  }\n\n  get grcValidationCheck() {\n    if (this.isFormSubmitted && !this.grcPayload.name) {\n      this.grcNameValidationError = VALIDATION_MESSAGE.grcObjectName;\n    }\n    return (\n      this.isFormSubmitted && !(this.grcPayload.name || this.isDuplicateName)\n    );\n  }\n\n  getRiskCategoryPayload(selectedData: any) {\n    const riskCategoryPayload: any = [];\n    this.selectedRisks = [];\n    this.selectedCategories = [];\n    selectedData.forEach((item: any) => {\n      riskCategoryPayload.push({\n        category_id: [item?.category?.category_id ?? []],\n        risk_ids: item?.risks?.map((risk: any) => risk?.RiskId),\n      });\n      this.selectedRisks?.push(...item?.risks);\n      this.selectedCategories.push(item?.category);\n    });\n    return riskCategoryPayload;\n  }\n\n  getProgramResponsibilityPayload(selectedData: any) {\n    this.selectedResponsibility = this.responsibilityList.filter((item: any) =>\n      selectedData.some((data: any) => data?.rid === item?.rid)\n    );\n    return selectedData;\n  }\n\n  updateGRCObject() {\n    let PAYLOAD = JSON.parse(JSON.stringify(this.grcPayload));\n    PAYLOAD.owners = this.getOwnersExceptDefault(PAYLOAD.owners);\n\n    // Transform responsibilities data to get added/removed\n    PAYLOAD.linked_responsibilities =\n      this.CommonService.transformResponsibilitiesData(\n        this.selectedResponsibility.map((resp) => resp?.rid),\n        this.linkedResponsibilities?.responsibilities?.linked || []\n      );\n\n    this.apiService.updateGRCObject(PAYLOAD, this.ID).subscribe({\n      next: (data: any) => {\n        this.showSmiley = true;\n        this.setMoreOptionsOnSubmit();\n        this.uiKitService.isSmileyOn = true;\n        this.addedGRC = data;\n      },\n      error: (error: any) => {\n        this.isLoading = false;\n        console.error('error', error, error.status);\n        if (error.status === 409) {\n          this.isDuplicateName = true;\n          this.setMoreOptionsOnSubmit();\n          this.grcNameValidationError = VALIDATION_MESSAGE.grc_exists;\n        }\n      },\n    });\n  }\n  updateOtherGRCObjectsPayload() {\n    this.grcPayload.linked_GRC_ids =\n      this.listObject.OTHER_GRC_OBJECTS.selectedData.map(\n        (item: any) => item._id\n      );\n  }\n\n  deleteSelectedRisk(categoryId: number, risk: any) {\n    const categoryIndex = this.findCheckedCategoryIndex(categoryId);\n    if (categoryIndex !== -1) {\n      // Category exists, update risk value\n      const riskIndex = this.listObject?.RISK_CATEGORY?.selectedData[\n        categoryIndex\n      ]?.risks?.findIndex((item: any) => item?._id === risk?._id);\n      if (riskIndex !== -1) {\n        this.listObject?.RISK_CATEGORY?.selectedData[\n          categoryIndex\n        ]?.risks.splice(riskIndex, 1);\n      }\n\n      if (\n        this.listObject?.RISK_CATEGORY?.selectedData[categoryIndex]?.risks\n          ?.length === 0\n      ) {\n        // Remove category if selectedListData is empty\n        this.listObject?.RISK_CATEGORY?.selectedData.splice(categoryIndex, 1);\n      }\n    }\n    this.grcPayload.risk_category_ids = this.getRiskCategoryPayload(\n      this.listObject?.RISK_CATEGORY?.selectedData\n    );\n  }\n\n  deleteSelectedResponsibility(responsibility: any) {\n    this.listObject.PROGRAM_RESPONSIBILITY.selectedData =\n      this.listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.map(\n        (data: any) => {\n          let filteredResponsibility = data?.responsibility?.filter(\n            (resp: any) => resp?._id !== responsibility?._id\n          );\n          return {\n            ...data,\n            responsibility: filteredResponsibility,\n            category: [\n              ...(new Set(\n                filteredResponsibility.map((obj: any) => data?.category)?.flat()\n              ) || []),\n            ],\n          };\n        }\n      );\n\n    this.listObject.PROGRAM_RESPONSIBILITY.selectedData =\n      this.listObject?.PROGRAM_RESPONSIBILITY?.selectedData.filter(\n        (data: any) => {\n          return data?.responsibility?.length > 0;\n        }\n      );\n    this.grcPayload.program_category_ids = this.getProgramResponsibilityPayload(\n      this.listObject?.PROGRAM_RESPONSIBILITY?.selectedData\n    );\n  }\n\n  findCheckedCategoryIndex(categoryId: number | number[]) {\n    let categoryIndex = -1;\n    if (Array.isArray(categoryId) && categoryId?.length === 0) {\n      // Handle empty categoryId array case\n      const uncategorizedIndex =\n        this.listObject?.RISK_CATEGORY?.selectedData.findIndex(\n          (cat: any) => cat?.category?._id === 'uncategorized'\n        );\n      if (uncategorizedIndex !== -1) {\n        return uncategorizedIndex;\n      }\n    } else {\n      categoryIndex = this.listObject?.RISK_CATEGORY?.selectedData.findIndex(\n        (cat: any) => cat?.category?.category_id === categoryId\n      );\n    }\n    return categoryIndex;\n  }\n\n  setLinkRiskTab(tabDetails: any) {\n    this.otherGRCCard = tabDetails.map((tab: any, index: number) => {\n      return {\n        title: tab?.label,\n        count: 0,\n        selectedCount: 0,\n        key: tab?.label?.toLowerCase(),\n        type: index,\n      };\n    });\n    this.getOtherGRCTabCount({ rc_ids: '' });\n  }\n\n  populateLinkRisk(selectedData: any) {\n    let updatedData = selectedData?.map((data: any) => {\n      if (data?.category_id && Object?.keys(data?.category_id)?.length === 0) {\n        return {\n          ...data,\n          category: UNCATEGORIZED_LINK_CATEGORY,\n        };\n      }\n      return {\n        ...data,\n        category: {\n          category_id: data?.category_id[0],\n        },\n      };\n    });\n    if (updatedData.length) {\n      this.grcForm.linkRisk = true;\n      this.additionalOption.LINK_RISK_CATEGORIES_RISKS = true;\n      this.populateOptionalFields();\n    }\n    this.listObject.RISK_CATEGORY.selectedData = updatedData;\n    return this.getRiskCategoryPayload(updatedData);\n  }\n\n  populateLinkResponsibility(selectedData: any) {\n    // If selectedData is an array of { rid, id }\n    this.listObject.PROGRAM_RESPONSIBILITY.selectedData = selectedData;\n    if (selectedData?.length) {\n      this.grcForm.linkProgram = true;\n      this.additionalOption.LINK_PROGRAM = true;\n      this.populateOptionalFields();\n    }\n    this.selectedResponsibility = selectedData;\n    return selectedData;\n  }\n\n  getOwnersExceptDefault(users: any) {\n    const usersId = users.filter(\n      (user: any) => !this.disabledIds.includes(user)\n    );\n    return usersId || [];\n  }\n\n  setMoreOptionsOnSubmit() {\n    this.isLoading = false;\n    this.uiKitService.isLoader = false;\n    this.submitLoader = false;\n  }\n\n  resetOtherGRCCard() {\n    this.otherGRCCard.forEach((tab: any) => {\n      tab.count = 0;\n      tab.selectedCount = 0;\n    });\n  }\n\n  resetDataOnRCChange() {\n    this.listObject.PROGRAM_RESPONSIBILITY.selectedData = [];\n    this.listObject.RISK_CATEGORY.selectedData = [];\n    if (this.listObject.RC.selectedData.length === 0) {\n      this.resetMoreOptionsOnRCChange();\n    }\n  }\n\n  resetMoreOptionsOnRCChange() {\n    this.grcForm.linkProgram = false;\n    this.additionalOption.LINK_PROGRAM = false;\n    this.grcForm.linkRisk = false;\n    this.additionalOption.LINK_RISK_CATEGORIES_RISKS = false;\n    this.populateOptionalFields();\n  }\n\n  getAllResponsibilities() {\n    this.apiService.getAllResponsibilities().subscribe({\n      next: (data: any) => {\n        this.linkedResponsibilities = {\n          responsibilities: {\n            linked: data?.linked_responsibilities || [],\n            data:\n              data?.responsibilities?.map((resp: any) => ({\n                ReportId: resp?.linked_responsibilities_details?.rid,\n                ReportName: resp?.report_name,\n                CategoryId: resp?.category_id,\n                CategoryName: resp?.category_name,\n                frequency: resp?.frequency,\n                status: resp?.status,\n              })) || [],\n          },\n        };\n      },\n    });\n  }\n}\n","<ng-container *ngIf=\"!showSmiley\">\n  <div class=\"workflow-grc\">\n    <div class=\"form-group-row\" [class.disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\n      *ngIf=\"!isLoading\">\n      <lib-text-field-icon [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\" [cdnLink]=\"CDN_LINK.grcType\"\n        [isChecked]=\"true\" field-icons>\n      </lib-text-field-icon>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">\n            GRC OBJECT TYPE<span class=\"required\">*</span>\n          </label>\n          <div class=\"select\">\n            <tab-selector [selectedItem]=\"grcPayload.type\" [displayArray]=\"OBJECT_TYPE\"\n              (onValueChanged)=\"changeAttributesType($event)\"></tab-selector>\n          </div>\n        </div>\n      </div>\n    </div>\n    <!-- Object name field -->\n    <lib-text-field [disabled]=\"\n        openedPopup &&\n        openedPopup !== INPUT_TYPE.name &&\n        dialogFields?.includes(openedPopup)\n      \" [isEditMode]=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\" [titleText]=\"ALL_TEXT?.grcObjectName\"\n      [placeholderText]=\"ALL_TEXT?.grcObjectPlaceholder\" [(textValue)]=\"grcPayload.name\"\n      (textValueChange)=\"onTextChange($event)\" (clickOutside)=\"onClickOutside()\"\n      (onClick)=\"onPopupOpen(INPUT_TYPE.name)\">\n      <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcObjectName\" [isChecked]=\"grcPayload.name\" field-icons>\n      </lib-text-field-icon>\n      <span class=\"required\" is-required>*</span>\n      <lib-edit-mode *ngIf=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\" [selectedData]=\"[grcPayload]\"\n        [type]=\"'text'\" (isOnEdit)=\"onEdit(INPUT_TYPE.name)\" edit-mode></lib-edit-mode>\n      <p *ngIf=\"grcValidationCheck || isDuplicateName\" [appScrollInView]=\"true\" class=\"error-message\" error-message>\n        {{ grcNameValidationError }}\n      </p>\n      <vcomply-editor [editorConfig]=\"EDITOR_CONFIG\" [(ngModel)]=\"grcPayload.description\"\n        rich-text-editor></vcomply-editor>\n    </lib-text-field>\n\n    <!-- Specify Owners -->\n    <lib-text-field [disabled]=\"\n        openedPopup &&\n        openedPopup !== INPUT_TYPE.owner &&\n        dialogFields?.includes(openedPopup)\n      \" [active]=\"openedPopup && openedPopup == INPUT_TYPE.owner\" [isEditMode]=\"\n        listObject.OWNER?.selectedData?.length &&\n        openedPopup !== INPUT_TYPE.owner\n      \" [titleText]=\"ALL_TEXT?.grcOwnersTitle\" [placeholderText]=\"ALL_TEXT?.grcOwnersPlaceholder\" [isReadOnly]=\"true\"\n      (onClick)=\"onPopupOpen(INPUT_TYPE.owner)\">\n      <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcOwners\" [isChecked]=\"listObject.OWNER?.selectedData?.length > 0\"\n        field-icons>\n      </lib-text-field-icon>\n      <span class=\"required\" is-required>*</span>\n      <lib-edit-mode *ngIf=\"\n          listObject.OWNER?.selectedData?.length &&\n          openedPopup !== INPUT_TYPE.owner\n        \" [nonRemovableIds]=\"disabledIds\" [countColor]=\"'greenBg'\" [selectedData]=\"listObject.OWNER?.selectedData\"\n        [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.owner)\" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.owner)\"\n        edit-mode></lib-edit-mode>\n    </lib-text-field>\n\n    <!-- Link Responsibility Centers (RC) -->\n    <lib-text-field [disabled]=\"\n        openedPopup &&\n        openedPopup !== INPUT_TYPE.RC &&\n        dialogFields?.includes(openedPopup)\n      \" [active]=\"openedPopup && openedPopup == INPUT_TYPE.RC\" [isEditMode]=\"\n        listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\n      \" [titleText]=\"ALL_TEXT?.grcRCTitle\" [placeholderText]=\"ALL_TEXT?.grcRCPlaceholder\" [isReadOnly]=\"true\"\n      (onClick)=\"onPopupOpen(INPUT_TYPE.RC)\">\n      <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcRC\" [isChecked]=\"listObject.RC?.selectedData?.length > 0\" field-icons>\n      </lib-text-field-icon>\n      <span class=\"required\" is-required>*</span>\n      <lib-edit-mode *ngIf=\"\n          listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\n        \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.RC)\" [selectedData]=\"listObject.RC?.selectedData\"\n        [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.RC)\" edit-mode></lib-edit-mode>\n      <p *ngIf=\"isFormSubmitted && !listObject.RC?.selectedData?.length\" [appScrollInView]=\"true\" class=\"error-message\"\n        error-message>\n        {{ VALIDATION_MESSAGE.grcRC }}\n      </p>\n    </lib-text-field>\n\n    <!-- Link Program and Responsibility -->\n    <lib-text-field [disabled]=\"\n        openedPopup &&\n        openedPopup !== INPUT_TYPE?.programResponsibility &&\n        dialogFields?.includes(openedPopup)\n      \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.programResponsibility\" *ngIf=\"grcForm?.linkProgram\"\n      [titleText]=\"ALL_TEXT?.grcProgramResponsibilityTitle\"\n      [placeholderText]=\"ALL_TEXT?.grcProgramResponsibilityPlaceholder\" [isReadOnly]=\"true\"\n      (onClick)=\"onPopupOpen(INPUT_TYPE.programResponsibility)\" [isEditMode]=\"\n        listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\n        openedPopup !== INPUT_TYPE?.programResponsibility\n      \">\n      <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkOthers\"\n        [isChecked]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length > 0\" field-icons>\n      </lib-text-field-icon>\n\n      <lib-edit-mode *ngIf=\"\n          listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\n          openedPopup !== INPUT_TYPE?.PROGRAM_RESPONSIBILITY\n        \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.programResponsibility)\"\n        [selectedData]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData \" [nameDisplayKey]=\"'title'\" [type]=\"'list'\"\n        (isOnEdit)=\"onEdit(INPUT_TYPE.programResponsibility)\" edit-mode>\n      </lib-edit-mode>\n    </lib-text-field>\n\n    <!-- Link Risk Categories and Risk -->\n    <lib-text-field [disabled]=\"\n        openedPopup &&\n        openedPopup !== INPUT_TYPE?.riskCategory &&\n        dialogFields?.includes(openedPopup)\n      \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.riskCategory\" *ngIf=\"grcForm?.linkRisk\"\n      [titleText]=\"ALL_TEXT?.grcRiskCategoryTitle\" [placeholderText]=\"ALL_TEXT?.grcRiskCategoryPlaceholder\"\n      [isReadOnly]=\"true\" (onClick)=\"onPopupOpen(INPUT_TYPE.riskCategory)\" [isEditMode]=\"\n        listObject?.RISK_CATEGORY?.selectedData?.length &&\n        openedPopup !== INPUT_TYPE?.riskCategory\n      \">\n      <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkGRC\" [isChecked]=\"listObject.RISK_CATEGORY?.selectedData?.length > 0\"\n        field-icons>\n      </lib-text-field-icon>\n\n      <lib-edit-mode *ngIf=\"\n          listObject.RISK_CATEGORY?.selectedData?.length &&\n          openedPopup !== INPUT_TYPE.RISK_CATEGORY\n        \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.riskCategory)\" [selectedData]=\"selectedRisks\"\n        [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.riskCategory, data?.key)\" edit-mode>\n      </lib-edit-mode>\n    </lib-text-field>\n  </div>\n\n  <!-- Link Other GRC Objects -->\n  <!-- Hidden for now -->\n  <!-- <lib-text-field *ngIf=\"grcForm?.otherGrcObjects\" [disabled]=\"\n      openedPopup &&\n      openedPopup !== INPUT_TYPE?.otherGrcObjects &&\n      dialogFields?.includes(openedPopup)\n    \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.otherGrcObjects\" [titleText]=\"ALL_TEXT?.otherGRCObjectsTitle\"\n    [placeholderText]=\"ALL_TEXT?.otherGRCObjectsPlaceholder\" [isReadOnly]=\"true\"\n    (onClick)=\"onPopupOpen(INPUT_TYPE.otherGrcObjects)\" [isEditMode]=\"\n      listObject?.OTHER_GRC_OBJECTS?.selectedData?.length &&\n      openedPopup !== INPUT_TYPE?.otherGrcObjects\n    \">\n    <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkOthers\"\n      [isChecked]=\"listObject?.OTHER_GRC_OBJECTS?.selectedData?.length > 0\" field-icons>\n    </lib-text-field-icon>\n\n    <lib-edit-mode *ngFor=\"let data of GRC_TYPE_ARRAY\"\n      (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.otherGrcObjects)\" [selectedData]=\"grcDataWithTypes[data]\"\n      [type]=\"'list'\" [isMultiple]=\"true\" (isOnEdit)=\"onEdit(INPUT_TYPE.otherGrcObjects, data)\" edit-mode>\n      <div class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\">\n        {{ data | titlecase }}\n      </div>\n    </lib-edit-mode>\n  </lib-text-field> -->\n  <lib-attributes [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\n    *ngIf=\"selectedAttributes?.attributes?.length && this.grcForm.grcObjectType\" [attributesInfo]=\"selectedAttributes\"\n    [isFormSubmitted]=\"isFormSubmitted\" (onClick)=\"getAttributeSelection($event)\"></lib-attributes>\n  <lib-list-popup [openedPopup]=\"openedPopup\" [listObject]=\"listObject\" [tableCard]=\"otherGRCCard\"\n    [otherGrcCardLoader]=\"grcTabLoader\" [GRCSelectedTab]=\"GRCSelectedTab\" [mode]=\"MODE\" [onEditGRCId]=\"ID\"\n    (onSaveSelectedList)=\"onSaveSelectedList($event)\"\n    (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"></lib-list-popup>\n</ng-container>\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\"\n  (action)=\"smileyActions($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\n<app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n  FIELD_SELECTOR,\n  REPORT_CASE,\n} from '../../constants/report-case.constants';\n\nexport enum report {\n  REPORT_CASE = 'reportCase',\n  ADD_CASE_TO_WORKFLOW = 'addCaseToWorkflow',\n}\n\n@Component({\n  selector: 'app-case-type',\n  template: `\n    <div\n      class=\"form-group-row\"\n      [class.active]=\"false\"\n      [class.disabled]=\"fieldSelector?.includes(fieldSelected)\"\n    >\n      <div class=\"left checked\">\n        <svg\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\"\n            >{{ reportTexts.case_type }} <span class=\"required\">*</span></label\n          >\n          <div class=\"risk-type-field caseType\">\n            <div\n              class=\"type-item\"\n              [class.active]=\"caseSelected === caseType.REPORT_CASE\"\n            >\n              <button (click)=\"toggleCaseType(caseType.REPORT_CASE)\">\n                {{ reportTexts.report_case }}\n              </button>\n              <i\n                class=\"icons info\"\n                [appTooltip]=\"reportTexts.tooltipMessage.report_case\"\n                placement=\"bottom-right\"\n                delay=\"0\"\n                type=\"white\"\n                [tooltipMandatory]=\"true\"\n                >&#xe932;</i\n              >\n            </div>\n            <div\n              class=\"type-item\"\n              [class.active]=\"caseSelected === caseType.ADD_CASE_TO_WORKFLOW\"\n            >\n              <button (click)=\"toggleCaseType(caseType.ADD_CASE_TO_WORKFLOW)\">\n                {{ reportTexts.add_case }}\n              </button>\n              <i\n                class=\"icons info\"\n                [appTooltip]=\"reportTexts.tooltipMessage.add_case\"\n                placement=\"bottom-right\"\n                delay=\"0\"\n                type=\"white\"\n                [tooltipMandatory]=\"true\"\n                >&#xe932;</i\n              >\n            </div>\n            <span class=\"background-glider\"></span>\n          </div>\n        </div>\n      </div>\n    </div>\n  `,\n  styleUrls: ['./case-type.component.less', '../../../forms.less'],\n})\nexport class CaseTypeComponent implements OnInit {\n  reportTexts = REPORT_CASE;\n  caseType = report;\n  caseSelected = report.REPORT_CASE;\n  fieldSelector = FIELD_SELECTOR;\n\n  @Input() fieldSelected: string = '';\n\n  @Output() caseTypeChange = new EventEmitter<report>();\n\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  toggleCaseType(type: report) {\n    this.caseSelected = type;\n    this.caseTypeChange.emit(type);\n  }\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { BehaviorSubject, Observable, catchError, of, map } from 'rxjs';\n\nimport { AuthService } from './auth.service';\nimport { Configurations } from '../configurations';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class OrganizationUserService {\n  private organizationUsers: BehaviorSubject<any[]> = new BehaviorSubject<\n    any[]\n  >([] || null);\n  env: any;\n  permissions: any = [];\n\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  private getAllOrgUser() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.organizationGet + 'getAllUsers&type=all', {\n        headers,\n      })\n      .pipe(\n        map((res) => this.setOrganizationUsers(res)),\n        catchError((error) => {\n          console.error('Error fetching organization users:', error);\n          return of([]);\n        })\n      );\n  }\n\n  private setOrganizationUsers(data: any[]) {\n    const res = this.dataMap(data);\n    this.organizationUsers.next(res);\n    return res;\n  }\n\n  private dataMap(data: any[]): any[] {\n    return data.map((user) => ({\n      ...user,\n      employee_id: user?.member_id,\n      employee_pic: user?.member_pic,\n      employee_name: user?.member_name,\n      employee_email: user?.member_email,\n      employee_short_name: user?.short_name,\n      my_member_id: user?.member_id,\n      user_id: user?.member_id,\n    }));\n  }\n\n  public getOrganizationUsers() {\n    const currentUsers = this.organizationUsers.getValue();\n    if (currentUsers && currentUsers.length) {\n      return of(this.organizationUsers.value);\n    }\n    return this.getAllOrgUser();\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { DateTime } from 'luxon';\nimport { AuthService } from '../../workflow-services/auth.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DateUtilityService {\n\n  constructor(private authService: AuthService) {}\n  \n  convertToUTC(date: string | Date): Date {\n    const userTimezone = this.authService.getUserTimeZone();\n    if (!date || !userTimezone) return new Date(date);\n  \n    const dateTime = DateTime\n      .fromJSDate(new Date(date))\n      .setZone(userTimezone, { keepLocalTime: true })\n      .startOf('day')\n      .toUTC();\n  \n    return dateTime.toJSDate();\n  }\n} ","export const FILE_URL = {\n    format: '/responsibility/evidence/',\n}","import { FileSize } from \"../interfaces/policy.interface\";\n\nexport const FILE_SIZE: FileSize = {\n    MAX_SIZE: 200 * 1024 * 1024,\n    ERROR: 'alert',\n    MESSAGE: 'Maximum allowed size is 200 MB.'\n  }","export const API_URLS = {\n  fetchPolicyList: 'policy/fetchPolicyList&policyLink=true',\n  LINKED_POLICIES:'policy/linkedPolicies&policyId=',\n  LINKED_PROGRAMS:'getLinkedPrograms&polid='\n};\n","import {\n  HttpClient,\n  HttpBackend,\n  HttpHeaders,\n  HttpErrorResponse,\n  HttpParams,\n} from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { catchError, map, retry } from 'rxjs/operators';\nimport { AuthService } from './auth.service';\nimport { Configurations } from '../configurations';\nimport { BehaviorSubject, of, throwError } from 'rxjs';\nimport { API_URLS } from '../workflow-engine-container/api-constants';\nimport { FILE_SIZE } from '../constants/policy.constant';\n@Injectable({\n  providedIn: 'root',\n})\nexport class PolicyService {\n  env!: any;\n  public PolicyCategoryList: BehaviorSubject<any> = new BehaviorSubject<any>(\n    null\n  );\n  public linkedPolicies$ = new BehaviorSubject<any>(null);\n  public templateView: BehaviorSubject<any> = new BehaviorSubject<any>(false);\n  public linkRelatePolicies: any = {};\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  getCategoriesList() {\n    if (this.PolicyCategoryList?.getValue()) {\n      return of(this.PolicyCategoryList?.value);\n    }\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.policyGet + 'category/dropdownList&type=contract', {\n        headers,\n      })\n      .pipe(\n        map((res) => {\n          this.PolicyCategoryList?.next(res);\n          return res;\n        }),\n        catchError((error) => {\n          console.error('Error fetching Policy Category', error);\n          return of(null);\n        })\n      )\n      .pipe(retry(2));\n  }\n\n  // https://devapi.v-comply.com/policy/?mode=category/detailAll\n  getWorkflowList(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post(\n        this.env.policyPost + 'approvalworkflow/fetchall',\n        { category_id: payload, source_page: 'WORKFLOW_ENGINE' },\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  getPolicyList(req: any) {\n    const url = this.env?.policyGet;\n    let params = req.params || new HttpParams();\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    switch (req.method.toLowerCase()) {\n      case 'get':\n        return this.http\n          .get(url + req.mode, { headers, params })\n          .pipe(retry(2));\n      default:\n        return throwError(() => new Error('Unsupported request method'));\n    }\n  }\n\n  submitPolicy(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post(this.env.policyPost + 'policy/add&serviceType=1', payload, { headers })\n      .pipe(retry(2));\n  }\n\n  getReviewers(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post(\n        this.env.policyPost + 'category/detailAll',\n        { categoryId: payload },\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n  getRCList() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.organizationGet + 'responsibilityCenterTree', {\n        headers,\n      })\n      .pipe(retry(2));\n  }\n\n  // getOrganizationUsers() {\n  //   const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n  //   return this.http\n  //     .get<any[]>(this.env.organizationGet + 'organizationUsers&from=risk', {\n  //       headers,\n  //     })\n  //     .pipe(retry(2));\n  // }\n  getOrganizationPeople() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.organizationGet + 'people', {\n        headers,\n      })\n      .pipe(retry(2));\n  }\n\n  getCategoryWorkFlows(id: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env.policyGet + 'approvalworkflow/fetchall&category_id=' + id,\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  fileUploadWorkroom(payload: any, des: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post<any>(this.env.fileUploadEndPoint + des, payload, {\n      headers,\n    });\n  }\n\n  saveUploadedFiles(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post<any>(\n      this.env.policyPost + 'attachment/create',\n      payload,\n      { headers }\n    );\n  }\n  uploadFile(data: any, id: string, path: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post(this.env.fileUpload + '?id=' + id + '&path=' + path, data, {\n        headers,\n      })\n      .pipe(retry(2));\n  }\n\n  uploadDocxFile(data: any, id: string, path: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post(\n        this.env.docxUpload +\n          '?id=' +\n          id +\n          '&path=' +\n          path +\n          '&bypass-token=true',\n        data,\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  savePolicyDetails(\n    uname: any,\n    uid: any,\n    id: any,\n    name: any,\n    html: any,\n    isSendForApprove: any\n  ) {\n    const payload = JSON.stringify({\n      policyLogs: JSON.stringify([\n        {\n          policyName: name,\n          policyDesc: html,\n          oldPolicyName: name,\n          type: 2,\n          active_flag: 1,\n          modified_member: [{ modifier_id: uid, modifier_name: uname }],\n          modified_by: uname,\n          modified_on: new Date(),\n        },\n      ]),\n      policyDesc: JSON.stringify([\n        {\n          policyName: name,\n          policyDesc: html,\n          oldPolicyName: name,\n          type: 2,\n          active_flag: 1,\n          modified_member: [{ modifier_id: uid, modifier_name: uname }],\n          modified_by: uname,\n          modified_on: new Date(),\n        },\n      ]),\n      Is_approval: isSendForApprove,\n    });\n\n    let headers = new HttpHeaders().set('Content-Type', 'application/json');\n    headers = headers.append('token', this.authService.getAuthorizationToken());\n    return this.http.post(this.env.saveDoc + id, payload, { headers });\n  }\n\n  public fileSizeLimit(file: File): boolean {\n    const sizeInMB = file?.size || 0;\n    return sizeInMB <= FILE_SIZE.MAX_SIZE;\n  }\n\n  editPolicy(id: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.policyGet + 'policy/list&obj_id=' + id + '&serviceType=1', { headers })\n      .pipe(retry(2));\n  }\n\n  updatePolicy(payload: any, policyId: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.put<any>(\n      this.env.policyPut + 'policy/update&contractId=' + policyId + '&serviceType=1',\n      payload,\n      { headers }\n    );\n  }\n\n  extractFile(extension: any, path: any, id: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    if (extension === 'pdf' || extension === 'PDF') {\n      return this.http.get(\n        this.env.linkPdf + '?filePath=' + path + '&id=' + id,\n        { headers }\n      );\n    } else {\n      return this.http.post(\n        this.env.linkDoc,\n        { filePath: path, id },\n        { headers }\n      );\n    }\n  }\n\n  createApprovalWorkflow(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post<any>(\n      this.env.policyPost + 'approvalworkflow/create',\n      payload,\n      { headers }\n    );\n  }\n  editApprovalWorkflow(payload: any, id: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post<any>(\n      this.env.policyPost + 'approvalworkflow/update&workflowId=' + id,\n      payload,\n      { headers }\n    );\n  }\n\n  LinkedPoliciesList(policyId: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.get(\n      this.env?.policyGet + API_URLS.LINKED_POLICIES + policyId,\n      { headers }\n    );\n  }\n\n  getLinkedPrograms(policyId: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.get(this.env?.complianceGet + API_URLS.LINKED_PROGRAMS + policyId, { headers });\n  }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-line-loader',\n  templateUrl: './line-loader.component.html',\n  styleUrls: ['./line-loader.component.less'],\n})\nexport class LineLoaderComponent implements OnInit {\n  @Input() loaderHeight!: any;\n\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"line-loader\" [style.height.px]=\"loaderHeight\">\n  <div class=\"line-loader-bar\"></div>\n</div>\n","import {\n  Component,\n  OnInit,\n  OnChanges,\n  Output,\n  EventEmitter,\n  Input,\n} from '@angular/core';\nimport { AuthService } from '../../workflow-services/auth.service';\nimport { PolicyService } from '../../workflow-services/policy.service';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\nimport { ResponsibilityService } from '../../workflow-services/responsibility.service';\nimport { ASSETS } from '../../constants/assets.constants';\nimport { FILE_URL } from '../../constants/file-upload.constant';\nimport { FILE_SIZE } from '../../constants/policy.constant';\n\n@Component({\n  selector: 'app-format-and-evidence',\n  templateUrl: './format-and-evidence.component.html',\n  styleUrls: ['./format-and-evidence.component.less', '../../forms.less'],\n})\nexport class FormatAndEvidenceComponent implements OnInit {\n  ASSETS = ASSETS;\n  @Output() updateFiles = new EventEmitter();\n  @Input() mode = '';\n  @Input() categories: any[] = [];\n  @Input() organization_id: any = '';\n  @Input() orgDetails: any = {};\n  @Input() set formatEvidanceData(value: any) {\n    if (value) {\n      this.initializeData(value, 'not ng on init');\n    }\n  }\n  isNewLinkDisabled = false;\n  isEditDisabled = false;\n  constructor(\n    private responsibilityService: ResponsibilityService,\n    private policyService: PolicyService,\n    private authService: AuthService,\n    private snackbarService: SnackBarService\n  ) { }\n\n  formate: any = {\n    hasUploadFormate: false,\n    formateType: 'FILE', // LINK\n    isEvidenceRequired: false,\n    links: [],\n    files: [],\n    uploadInProgress: {},\n  };\n\n  newLink = {\n    link: '',\n    containsError: false,\n  };\n  ngOnInit(): void {\n    if (this.formatEvidanceData) {\n      this.initializeData(this.formatEvidanceData, 'ng on init');\n    }\n  }\n\n  initializeData(settings: any, type: string) {\n    this.formate.hasUploadFormate = settings?.formatRequired ?? false;\n    this.formate.formateType =\n      settings?.formatLinks?.length > 0 ? 'LINK' : 'FILE';\n    this.formate.isEvidenceRequired = settings?.evidenceRequired ?? false;\n    this.formate.links = this.arraytoLinkObject(settings?.formatLinks) ?? [];\n    if (this.mode == 'reportACase') {\n      this.formate.files = settings;\n    } else {\n      this.formate.files = settings?.formatFiles ?? [];\n    }\n  }\n  toggleIsFormateUpload(status: boolean) {\n    if (status === true) {\n      this.formate.hasUploadFormate = true;\n    } else {\n      this.formate.hasUploadFormate = false;\n    }\n    this.emitValue();\n  }\n\n  toggleIsFormatRequired(status: boolean) {\n    if (status === true) {\n      this.formate.isEvidenceRequired = true;\n    } else {\n      this.formate.isEvidenceRequired = false;\n    }\n    this.emitValue();\n  }\n\n  toggleAttachmentType(type: string) {\n    this.formate.formateType = type;\n    if (type === 'LINK' && this.formate.links.length === 0) {\n      // TODO\n    }\n    this.emitValue();\n  }\n\n  insertLink(mode: any, index: number = -1) {\n    // const urlRegex = new RegExp('(https?://)?([\\\\da-z.-]+)\\\\.([a-z.]{2,6})[/\\\\w .-]*/?');\n    const urlRegex =\n      /(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9]+\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]+\\.[^\\s]{2,})/gi;\n    if (mode === 'CREATE') {\n      if (this.newLink.link.length === 0) {\n        this.resetNewLink();\n        return;\n      }\n      const isValid = urlRegex.test(this.newLink.link);\n      if (isValid) {\n        this.newLink.containsError = false;\n        this.formate.links.push(this.newLink);\n        this.resetNewLink();\n      } else {\n        this.newLink.containsError = true;\n      }\n    } else if (mode === 'EDIT') {\n      if (this.formate.links[index].link.length === 0) {\n        this.formate.links.splice(index, 1);\n        this.isEditEnabled();\n        this.isNewLinkDisabled = false;\n        this.emitValue();\n        return;\n      }\n      const isValid = urlRegex.test(this.formate.links[index].link);\n      if (isValid) {\n        this.formate.links[index].isEditing = false;\n        this.formate.links[index].containsError = false;\n        this.formate.links[index].isEditing = false;\n        this.isNewLinkDisabled = false;\n        this.isEditEnabled();\n      } else {\n        this.formate.links[index].containsError = true;\n      }\n    }\n    this.emitValue();\n  }\n\n  editLink(index: number) {\n    this.formate.links[index].isEditing = true;\n    this.isNewLinkDisabled = true;\n    this.isEditEnabled();\n  }\n\n  deleteLink(index: number) {\n    this.formate.links.splice(index, 1);\n    this.isEditEnabled();\n    this.emitValue();\n  }\n\n  resetNewLink() {\n    this.newLink = {\n      link: '',\n      containsError: false,\n    };\n    this.emitValue();\n  }\n\n  private fileProcessing(file: File, uid: string) {\n    if (this.policyService.fileSizeLimit(file)) {\n      this.uploadFile(file, uid);\n    } else {\n      this.snackbarService.show(FILE_SIZE.MESSAGE, FILE_SIZE.ERROR);\n    }\n  }\n\n  onFileDropped(files: any) {\n    Array.from(files).forEach((file: any) => {\n      const uid: string = Math.random().toString(36).substring(2, 14);\n      this.fileProcessing(file, uid);\n    });\n  }\n\n  uploadFile(file: any, uid: string) {\n    this.formate.uploadInProgress[uid] = file.name;\n    const formData = new FormData();\n    formData.append('file', file);\n    if (this.mode == 'policy' || this.mode == 'policyReviewer') {\n      const path = 'o/' + this.organization_id + '/policy/';\n      this.policyService\n        .fileUploadWorkroom(formData, path)\n        .subscribe((data: any) => {\n          this.formate.files.push({\n            filepath: path,\n            file_name: data.org_file,\n            filename: data.name,\n            original_filename: data.org_file,\n            linkSet: '',\n            type: file.type,\n            fid: data?.fid,\n          });\n          delete this.formate.uploadInProgress[uid];\n          this.emitValue();\n        });\n    } else {\n      const url = `org-${this.organization_id}${FILE_URL.format}`;\n      this.getSignedUrl({fileName: file.name, contentType: file.type}, file, uid );\n      // this.responsibilityService\n      //   .uploadToNode(formData, url)\n      //   .subscribe((data: any) => {\n      //     this.formate.files.push({\n      //       filepath:data?.file_url_path,\n      //       file_name: data.org_file,\n      //       filename: data.name,\n      //       original_filename: data.org_file,\n      //       type: file.type,\n      //     });\n      //     delete this.formate.uploadInProgress[uid];\n      //     this.emitValue();\n      //   });\n    }\n  }\n\n  getSignedUrl(fileMetaData:any, file: File, uid: any) {\n    const payload = {\n      ...fileMetaData,\n      organization: {\n        oid: this.orgDetails?.oid,\n        dataResidencyRegion: this.orgDetails?.region,\n      },\n      \n    };\n    this.responsibilityService.getSignedUrl(payload).subscribe((data: any) => {\n      this.saveToS3(file, data, fileMetaData, uid);\n    });\n  }\n\n  saveToS3(file: any, data: any, fileMetaData: any, uid: any) {\n    this.responsibilityService.saveToS3(file, data?.signedUrl).subscribe((res: any) => {\n            this.formate.files.push({\n            filepath:data?.filePath,\n            file_name: file.name,\n            filename: file.name,\n            original_filename: file.name,\n            type: file.type,\n            fid: data?.fid,\n          });\n          delete this.formate.uploadInProgress[uid];\n          this.emitValue();\n    });\n  }\n\n  deleteAttachment(index: number) {\n    this.formate.files.splice(index, 1);\n    this.emitValue();\n  }\n\n  emitValue() {\n    if (this.mode == 'reportACase') {\n      this.updateFiles.emit(this.formate);\n      return;\n    }\n    if (this.mode == 'policy' || this.mode == 'policyReviewer') {\n      const payload = {\n        isFormateUploaded: this.formate.hasUploadFormate,\n        links:\n          this.formate.formateType === 'LINK'\n            ? this.getLinksArray(\n                this.formate.links?.length ? [...this.formate.links] : []\n              )\n            : [],\n        files: this.formate.formateType === 'FILE' ? this.formate.files : [],\n        formateType: this.formate.formateType,\n        isEvidenceRequired: this.formate.isEvidenceRequired,\n      };\n      payload.links = payload.links.filter((ele: any) => ele !== undefined);\n\n      this.updateFiles.emit(payload);\n    } else {\n      const payload = {\n        isFormateUploaded: this.formate.hasUploadFormate,\n        links:\n          this.formate.hasUploadFormate && this.formate.formateType === 'LINK'\n            ? this.getLinksArray([...this.formate.links])\n            : [],\n        files:\n          this.formate.hasUploadFormate && this.formate.formateType === 'FILE'\n            ? this.formate.files\n            : [],\n        formateType: this.formate.formateType,\n        isEvidenceRequired: this.formate.isEvidenceRequired,\n      };\n      payload.links = payload.links.filter((ele: any) => ele !== undefined);\n      this.updateFiles.emit(payload);\n    }\n  }\n  getLinksArray(links: any) {\n    const link = links.map((e: any) => {\n      if (e.link && !e?.containsError && !e?.isEditing) {\n        return e.link;\n      }\n    });\n    if (link?.length <= 1 && link[0] === undefined) {\n      return [];\n    } else {\n      return link;\n    }\n  }\n\n  arraytoLinkObject(linksArray: any) {\n    if (linksArray) {\n      const links = linksArray.map((e: any) => {\n        return { link: e, containsError: false, isEditing: false };\n      });\n\n      return links;\n    } else {\n      return [];\n    }\n  }\n\n  isEditEnabled() {\n    for (const item of this.formate.links) {\n      if (item.isEditing === true) {\n        this.isEditDisabled = true;\n        return;\n      } else {\n        this.isEditDisabled = false;\n      }\n    }\n  }\n  policyLinkSetList = [\n    // 'Policy Charter',\n    // 'Related Policy Documents/Other References',\n    // 'Procedures Linked to this Policy',\n    // 'Implementation Guidelines for this Policy',\n    // 'Training Materials for this Policy'\n    'Charter',\n    'Related Documents',\n    'Reference Materials',\n    'Related procedures',\n    'Implementation guidelines',\n    'Training Materials',\n    'Regulatory Documents',\n    'Other',\n  ];\n  selectedLinkSetChange(event: any, index: number) {\n    this.formate.files[index].linkSet = event;\n    if (event === 'Other' && !this.formate?.files[index]?.others) {\n      this.formate.files[index].others = [''];\n    }\n    this.emitValue();\n  }\n\n  addMoreDocumentsDetails(index: number) {\n    this.formate.files[index].others.push('');\n  }\n\n  uploadPolicyAttachments(formData: any) {\n    const path = 'o/' + this.organization_id + '/policy/';\n    this.policyService\n      .fileUploadWorkroom(formData, path)\n      .subscribe((data: any) => {\n        const payload = {\n          file_name: data.name,\n          original_file_name: data.org_file,\n          path: path,\n          organisation_id: this.authService.getOrganizationId(),\n          member_id: this.authService.getMemberId(),\n          category_id: this.categories,\n          clap_id: 0,\n          contract_type: 4,\n          folder_id: 0,\n        };\n      });\n  }\n}\n","<div class=\"vx-form-group\" [class.policy-upload-file]=\"['policy', 'reportACase']?.includes(mode)\">\n  <label class=\"vx-control-panel\" *ngIf=\"mode == 'responsibility'\">\n    Format & Evidence\n  </label>\n  <div class=\"upload-format\" *ngIf=\"\n      mode != 'policy' && mode != 'policyReviewer' && mode != 'reportACase'\n    \">\n    <span class=\"text\">Do you want to upload a format for this responsibility?</span>\n    <div class=\"radio-group\">\n      <app-cs-radio [name]=\"'format_required'\" [checked]=\"formate.hasUploadFormate === true\"\n        (checkedEvent)=\"toggleIsFormateUpload(true)\">Yes</app-cs-radio>\n      <app-cs-radio [name]=\"'format_required'\" [checked]=\"formate.hasUploadFormate === false\"\n        (checkedEvent)=\"toggleIsFormateUpload(false)\">No\n      </app-cs-radio>\n    </div>\n  </div>\n  <div class=\"form-tab\" *ngIf=\"formate?.hasUploadFormate || mode == 'policyReviewer'\">\n    <button type=\"button\" [class.active]=\"formate?.formateType === 'FILE'\" (click)=\"toggleAttachmentType('FILE')\"\n      [disabled]=\"formate.links?.length > 0\">\n      Insert File\n    </button>\n    <button type=\"button\" [class.active]=\"formate?.formateType === 'LINK'\" (click)=\"toggleAttachmentType('LINK')\"\n      [disabled]=\"formate.files?.length > 0\">\n      Insert Link\n    </button>\n  </div>\n\n  <ng-container *ngIf=\"\n      (formate?.hasUploadFormate && formate.formateType === 'FILE') ||\n      (mode == 'policy' && formate.formateType === 'FILE') ||\n      (mode == 'policyReviewer' && formate.formateType === 'FILE') ||\n      (mode == 'reportACase' && formate.formateType === 'FILE')\n    \">\n    <!-- -----------------------------file upload in progress ----------------------------------  -->\n    <ng-container *ngIf=\"(formate?.uploadInProgress | keyvalue).length > 0\">\n      <div class=\"file-list\" *ngFor=\"\n          let eachFile of formate?.uploadInProgress | keyvalue;\n          let i = index\n        \">\n        <div class=\"file-container\">\n          <span class=\"file-name\">{{ eachFile.value }}</span>\n        </div>\n        <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\n      </div>\n    </ng-container>\n    <!-- --------------------------------file upload ends here -----------------------------------------  -->\n    <ng-container *ngIf=\"formate.files?.length > 0\">\n      <ng-container *ngIf=\"mode != 'policy'\">\n        <div class=\"file-list\" *ngFor=\"let eachFile of formate.files; let i = index\">\n          <div class=\"file-container\">\n            <span class=\"file-name\">{{ eachFile?.file_name }}</span>\n            <button (click)=\"deleteAttachment(i)\">\n              <i class=\"icons\">&#xe90d;</i>\n            </button>\n          </div>\n        </div>\n      </ng-container>\n\n      <div *ngIf=\"mode == 'policy'\" class=\"policy-related-document-field vx-p-3 vx-pt-2\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mb-2\">\n          LINK THE DOCUMENT AND SPECIFY THE RELATIONSHIP WITH THIS POLICY\n        </div>\n        <div class=\"file-list policy\" *ngFor=\"let eachFile of formate.files; let i = index\">\n          <div class=\"file-container\">\n            <span class=\"file table {{\n                eachFile?.file_name.split('.')[\n                  eachFile?.file_name.split('.')?.length - 1\n                ]\n              }}\">\n              <i class=\"icons\">&#xe92e;</i>\n              <span class=\"format {{\n                  eachFile?.file_name.split('.')[\n                    eachFile?.file_name.split('.')?.length - 1\n                  ]\n                }}\">{{\n                eachFile?.file_name.split(\".\")[\n                eachFile?.file_name.split(\".\")?.length - 1\n                ]\n                }}\n              </span>\n            </span>\n            <span class=\"file-name\">{{ eachFile?.file_name }}</span>\n            <div class=\"button-group\">\n              <button (click)=\"deleteAttachment(i)\">\n                <i class=\"icons\">&#xe90d;</i>\n              </button>\n            </div>\n          </div>\n          <cs-select [(ngModel)]=\"eachFile.linkSet\" (ngModelChange)=\"selectedLinkSetChange($event, i)\"\n            [placeholder]=\"'Define the document\\'s relationship to this policy'\" name=\"selected\">\n            <cs-option *ngFor=\"let data of policyLinkSetList\" [value]=\"data\">\n              {{ data }}\n            </cs-option>\n          </cs-select>\n          <!-- <ng-container *ngFor=\"let other of eachFile?.others; let j = index\">\n                        <input *ngIf=\"eachFile?.linkSet === 'Other (specify own)'\" [ngModel]=\"eachFile.others[j]\" (ngModelChange)=\"selectedLinkSetChange('Other (specify own)',i, $event, j)\" class=\"linkage-input\" type=\"text\" placeholder=\"Type the linkage details\" />\n                    </ng-container>\n                    <button *ngIf=\"eachFile?.linkSet === 'Other (specify own)'\" class=\"linkage-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-mt-2\" (click)=\"addMoreDocumentsDetails(i)\">+ ADD MORE</button> -->\n        </div>\n      </div>\n\n      <!-- <label class=\"vx-control-panel\" *ngIf=\"mode=='policy'\">\n                LINK THE DOCUMENT AND SPECIFY THE RELATIONSHIP WITH THIS POLICY\n            </label>\n            <ng-container *ngFor=\"let eachFile of formate.files; let i = index\">\n                <div class=\"file-list\" *ngIf=\"mode!='policy'\">\n                    <div class=\"file-container\">\n                        <span class=\"file-name\">{{ eachFile?.file_name }} </span>\n                        <button (click)=\"deleteAttachment(i)\">\n                            <i class=\"icons\">&#xe90d;</i>\n                        </button>\n                    </div>\n                </div>\n                <div class=\"file-list policy\" *ngIf=\"mode=='policy'\">\n                    <div class=\"file-container\">\n                        <span class=\"file-name\">{{eachFile?.file_name}}</span>\n                        <div class=\"button-group\">\n                            <!- - <button class=\"edit\">\n                                <i class=\"icons\">&#xe9ba;</i>\n                            </button> - ->\n                            <button (click)=\"deleteAttachment(i)\">\n                                <i class=\"icons\">&#xe90d;</i>\n                            </button>\n                        </div>\n                    </div>\n                    <cs-select [(ngModel)]=\"eachFile.linkSet\" (ngModelChange)=\"selectedLinkSetChange($event,i)\" [placeholder]=\"'Define the document\\'s relationship to this policy'\" name=\"selected\" >\n                        <cs-option *ngFor=\"let data of policyLinkSetList\" [value]=\"data\">\n                            {{data}}\n                        </cs-option>\n                    </cs-select>\n                </div>\n            </ng-container> -->\n    </ng-container>\n    <!-- -----------------------------------drag and drop ---------------------------------------------- -->\n    <div class=\"tab-group\" [class.uploaded]=\"formate.files?.length > 0\" appDragDrop\n      (fileDropped)=\"onFileDropped($event)\">\n      <label class=\"upload-file\">\n        <img [src]=\"ASSETS.upload\" alt=\"\" class=\"image\" />\n        <div class=\"browse\">\n          <span>\n            <ng-container *ngIf=\"mode != 'policy' && mode != 'reportACase'\">Drop your files here /\n            </ng-container>\n            <ng-container *ngIf=\"mode == 'policy' || mode == 'reportACase'\">Drop your files here /\n            </ng-container>\n            <span class=\"label\">Browse\n              <input type=\"file\" multiple (change)=\"onFileDropped($event.target.files)\" />\n            </span>\n          </span>\n          <!-- <span *ngIf=\"mode!='policy'\">Drop your files here /</span>\n                    <span *ngIf=\"mode=='policy'\">Drag & drop to upload files associated with this policy /</span>\n                    <span class=\"label\">Browse\n                        <input type=\"file\" multiple (change)=\"onFileDropped($event.target.files)\">\n                    </span> -->\n        </div>\n      </label>\n    </div>\n    <!-- ------------------------------------------drag drop ends here -------------------------------------------- -->\n  </ng-container>\n\n  <ng-container *ngIf=\"\n      (formate?.hasUploadFormate && formate.formateType === 'LINK') ||\n      (mode == 'policyReviewer' && formate.formateType === 'LINK')\n    \">\n    <ng-container *ngIf=\"formate.links.length > 0\">\n      <ng-container *ngFor=\"let link of formate.links; let i = index\">\n        <div class=\"file-list\" *ngIf=\"!link.isEditing\">\n          <div class=\"file-container\">\n            <span class=\"file-name\">{{ link.link }} </span>\n            <span class=\"button-group\">\n              <button [class.disabled]=\"isEditDisabled\" class=\"edit\" (click)=\"editLink(i)\">\n                <i class=\"icons\">&#xe9ba;</i>\n              </button>\n              <button (click)=\"deleteLink(i)\">\n                <i class=\"icons\">&#xe90d;</i>\n              </button>\n            </span>\n          </div>\n        </div>\n        <ng-container *ngIf=\"link.isEditing\">\n          <input type=\"text\" class=\"edit-link\" appAutofocus placeholder=\"Enter the link here\" [(ngModel)]=\"link.link\"\n            (focusout)=\"insertLink('EDIT', i)\" (keydown.enter)=\"insertLink('EDIT', i)\" />\n          <p class=\"error-message\" *ngIf=\"link.containsError\">\n            Please insert a valid link\n          </p>\n        </ng-container>\n      </ng-container>\n    </ng-container>\n    <input [disabled]=\"isNewLinkDisabled\" class=\"edit-link\" type=\"text\" [(ngModel)]=\"newLink.link\"\n      placeholder=\"Enter the link here\" (focusout)=\"insertLink('CREATE')\" (keydown.enter)=\"insertLink('CREATE')\" />\n    <p class=\"error-message\" *ngIf=\"newLink.containsError\">\n      Please insert a valid link\n    </p>\n  </ng-container>\n  <div class=\"upload-format\" *ngIf=\"mode == 'responsibility'\">\n    <span class=\"text\">Do you want evidence of completion of the responsibility to be\n      uploaded?</span>\n    <div class=\"radio-group\">\n      <app-cs-radio [name]=\"'evidence_required'\" [checked]=\"formate.isEvidenceRequired === true\"\n        (checkedEvent)=\"toggleIsFormatRequired(true)\">Yes</app-cs-radio>\n      <app-cs-radio [name]=\"'evidence_required'\" [checked]=\"formate.isEvidenceRequired === false\"\n        (checkedEvent)=\"toggleIsFormatRequired(false)\">No\n      </app-cs-radio>\n    </div>\n  </div>\n</div>","import { AfterViewInit, Directive, ElementRef, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\n\n@Directive({\n  selector: '[appScrollInView]'\n})\nexport class ScrollInViewDirective implements OnChanges {\n@Input() appScrollInView = false;\n  constructor(private el: ElementRef) {\n  }\nngOnChanges(change:SimpleChanges){\n  if(change?.appScrollInView && change?.appScrollInView?.currentValue === true){\n       this.scroll();\n  }\n}\n  ngAfterViewInit() {\n      // Otherwise Angular throws error: Expression has changed after it was checked.\n  this.scroll();\n  }\n\n  scroll(){\n    if(this.appScrollInView){\n      window.setTimeout(() => {\n        this.el.nativeElement.scrollIntoView({behavior: 'smooth', block: 'center'});\n    });\n    }\n  }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ASSETS } from '../../constants/assets.constants';\n\n@Component({\n  selector: 'app-checkbox-list',\n  templateUrl: './checkbox-list.component.html',\n  styleUrls: ['./checkbox-list.component.less'],\n})\nexport class CheckboxListComponent implements OnInit {\n  @Input() itemsList: any = [];\n  @Input() selectedItems: any = [];\n  @Input() identifierKey = '';\n  @Input() displayKey = '';\n  @Input() tooltipKey = '';\n  @Input() config!: any;\n  @Input() twoColumn = false;\n  @Input() loaded: boolean = true;\n  @Output() closeList = new EventEmitter();\n  @Output() saveList = new EventEmitter();\n  searchItem = '';\n  animation = true;\n  ASSETS = ASSETS;\n  constructor() { }\n\n  ngOnInit(): void {\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.selectedItems = this.arrayToId(this.selectedItems, this.identifierKey);\n  }\n  selectItem(item: any, checked: boolean) {\n    if (checked) {\n      this.selectedItems.push(item);\n      this.selectedItems = Array.from(new Set(this.selectedItems));\n    } else {\n      const itemIndex = this.selectedItems.findIndex((el: any) => el === item);\n      if (itemIndex !== -1) {\n        this.selectedItems.splice(itemIndex, 1);\n      }\n    }\n  }\n  deleteItem(item: any) {\n    const itemIndex = this.selectedItems.findIndex(\n      (el: any) => el === item[this.identifierKey]\n    );\n    if (itemIndex !== -1) {\n      this.selectedItems.splice(itemIndex, 1);\n    }\n  }\n\n  save() {\n    this.saveList.emit(this.selectedItems);\n  }\n\n  close() {\n    this.closeList.emit();\n  }\n\n  arrayToId(array: any, identifierKey: any) {\n    return array.map((a: any) => a[identifierKey]);\n  }\n  selectAll(evt: any) {\n    if (evt === true) {\n      this.selectedItems = this.itemsList.map((e: any) => {\n        return e[this.identifierKey];\n      });\n    } else {\n      this.selectedItems = [];\n    }\n  }\n}\n","<div class=\"add-risk-rc\" [class.animate]=\"animation\">\n  <div\n    class=\"add-risk-rc-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">{{ config?.panelTitle }}</div>\n    <!-- <button class=\"add-risk-rc-close\" (click)=close()>\n            <i class=\"icons\">&#xe90d;</i>\n        </button> -->\n  </div>\n  <div class=\"add-risk-rc-body\">\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        type=\"text\"\n        placeholder=\"{{ config?.searchPlaceholder }}\"\n        [(ngModel)]=\"searchItem\"\n      />\n    </div>\n    <app-loader-inline *ngIf=\"loaded\"></app-loader-inline>\n    <ng-container\n      *ngIf=\"itemsList | search : searchItem : displayKey as searchList\"\n    >\n      <div\n        class=\"body-top\"\n        *ngIf=\"\n          config?.selectAllEnabled &&\n          searchList?.length > 0 &&\n          searchItem?.trim()?.length === 0\n        \"\n      >\n        <app-cs-checkbox\n          [ngValue]=\"\n            itemsList?.length === selectedItems?.length &&\n            selectedItems?.length > 0\n          \"\n          (ngValueChange)=\"selectAll($event)\"\n          ><strong>\n            {{\n              itemsList?.length === selectedItems?.length &&\n              selectedItems?.length > 0\n                ? \"Deselect All\"\n                : \"Select All\"\n            }}</strong\n          >\n        </app-cs-checkbox>\n      </div>\n      <div class=\"add-risk-rc-list\" *ngIf=\"searchList?.length > 0\">\n        <ul [class.two-column]=\"twoColumn\">\n          <li *ngFor=\"let item of searchList\" #ulElement>\n            <app-cs-checkbox\n              *ngIf=\"config.workflow !== 'policy'\"\n              [ngValue]=\"selectedItems.includes(item[identifierKey])\"\n              (ngValueChange)=\"selectItem(item[identifierKey], $event)\"\n              [appTooltip]=\"tooltipKey ? item[tooltipKey] : item[displayKey]\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              [tooltipMandatory]=\"true\"\n            >\n              {{ item[displayKey]\n              }}{{\n                item?.parent_items?.length && config.workflow === \"policy\"\n                  ? \" < \" + item?.parent_items?.join(\" < \")\n                  : \"\"\n              }}\n            </app-cs-checkbox>\n            <app-cs-checkbox\n              *ngIf=\"config.workflow === 'policy'\"\n              [ngValue]=\"selectedItems.includes(item[identifierKey])\"\n              (ngValueChange)=\"selectItem(item[identifierKey], $event)\"\n            >\n              <ul class=\"add-category-name\">\n                <li\n                  *ngFor=\"let data of item?.parent_items; let i = index\"\n                  [appTooltip]=\"data\"\n                  placement=\"bottom-left\"\n                  type=\"black\"\n                  delay=\"0\"\n                  [tooltipMandatory]=\"true\"\n                >\n                  <i *ngIf=\"i > 0\" class=\"icons\">&#xe910;</i>{{ data }}\n                </li>\n                <li\n                  [appTooltip]=\"item[displayKey]\"\n                  placement=\"bottom-left\"\n                  type=\"black\"\n                  delay=\"0\"\n                  [tooltipMandatory]=\"true\"\n                >\n                  <i *ngIf=\"item?.parent_items?.length > 0\" class=\"icons\"\n                    >&#xe910;</i\n                  >\n                  {{ item[displayKey] }}\n                </li>\n              </ul>\n            </app-cs-checkbox>\n          </li>\n        </ul>\n      </div>\n      <app-no-data\n        *ngIf=\"searchList?.length === 0 && !loaded\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"\n          config?.noDataText?.length > 0\n            ? config?.noDataText\n            : 'No data to display'\n        \"\n      ></app-no-data>\n    </ng-container>\n\n    <app-floating-bar\n      *ngIf=\"!loaded\"\n      [selectedData]=\"selectedItems | listMapper : itemsList : identifierKey\"\n      [displayElementKey]=\"displayKey\"\n      [singularText]=\"config?.floatingTextSingular\"\n      [pluralText]=\"\n        config?.floatingTextPlural\n          ? config?.floatingTextPlural\n          : 'Users selected'\n      \"\n      (closeEvent)=\"save()\"\n      (closeList)=\"close()\"\n      [isDisabled]=\"selectedItems.length === 0 || itemsList.length === 0\"\n      (deleteEvent)=\"deleteItem($event)\"\n    ></app-floating-bar>\n  </div>\n</div>\n","import { Component } from '@angular/core';\n\nimport { ReportACaseService } from '../../services/report-a-case.service';\n\nimport { REPORT_CASE } from '../../constants/report-case.constants';\n\n@Component({\n  selector: 'app-information-block',\n  templateUrl: './information-block.component.html',\n  styleUrls: ['./information-block.component.less'],\n})\nexport class InformationBlockComponent {\n  workflowDetails: any = {};\n  defaultFlow = REPORT_CASE.default_flow;\n  reportText = REPORT_CASE\n  isDefaultFlow: boolean = true;\n\n  constructor(private reportACaseService: ReportACaseService) {\n    this.getWorkflowDetails();\n  }\n\n  getWorkflowDetails() {\n    this.reportACaseService.workflow$.subscribe((res: any) => {\n      this.workflowDetails = res?.data?.workflow_details;\n      if(res){\n      this.isDefaultFlow = res?.data?.workflow_details?.isDefault;\n      }\n    });\n  }\n}\n","<div class=\"information-block vx-mb-3\" [class.warning]=\"!isDefaultFlow\">\n  <div class=\"vx-d-flex\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2\">\n      THIS WORKFLOW IS ASSIGNED TO THIS CASE BASED ON THE INFORMATION ADDED\n      WITHIN THE CASE DETAILS SECTION.\n    </div>\n    <i\n      class=\"icons info vx-fs-12 vx-txt-blue\"\n      [appTooltip]=\"reportText.tooltipMessage.workflow\"\n      placement=\"bottom-right\"\n      delay=\"0\"\n      type=\"white\"\n      [tooltipMandatory]=\"true\"\n      >&#xe91f;</i\n    >\n  </div>\n  <div\n    class=\"information-block-chip vx-d-inline-flex vx-align-center vx-pl-2 vx-pr-2\"\n  >\n    <div class=\"value vx-fs-11\">\n      {{\n        isDefaultFlow\n          ? defaultFlow\n          : workflowDetails?.workflow_name\n      }}\n    </div>\n    <!-- <div\n      class=\"preview-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-pl-2 vx-ml-2\"\n    >\n      PREVIEW\n    </div> -->\n  </div>\n  <div\n    class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-4 vx-mt-3 vx-d-flex\"\n  >\n    <i class=\"icons vx-fs-12 vx-mr-1\">&#xe933;</i>THE WORKFLOW HAS BEEN UPDATED\n    AS PER YOUR SELECTION\n  </div>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\n\ninterface WorkflowFormInputProps {\n  placeholder?: string;\n  disabled?: boolean;\n  errorMessage?: string;\n  hasError?: boolean;\n  inputId?: string;\n  errorId?: string;\n  value?: string;\n}\n\n@Component({\n  selector: 'app-vc-input',\n  template: `\n    <ng-content select=\"[label]\"></ng-content>\n    <div class=\"workflow-form-input vx-mb-5\" [class.with-cross]=\"remove\">\n      <input\n        #input\n        [id]=\"inputId\"\n        type=\"text\"\n        [placeholder]=\"placeholder\"\n        [class.disabled]=\"disabled\"\n        [class.error]=\"hasError\"\n        [(ngModel)]=\"value\"\n        (input)=\"onValueChange($event.target.value)\"\n      />\n      <i *ngIf=\"remove\" class=\"icons cross vx-fs-12\" (click)=\"removeReason()\"\n        >&#xe90d;</i\n      >\n      <div\n        *ngIf=\"hasError\"\n        [id]=\"errorId\"\n        class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\"\n        role=\"alert\"\n      >\n        {{ errorMessage }}\n      </div>\n    </div>\n  `,\n  styleUrls: ['./vc-input.component.less', '../../../forms.less'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VCInputComponent implements OnInit {\n  @Input() placeholder: WorkflowFormInputProps['placeholder'] =\n    'Placeholder text';\n  @Input() disabled: WorkflowFormInputProps['disabled'] = false;\n  @Input() errorMessage: WorkflowFormInputProps['errorMessage'] =\n    'Please enter a valid value';\n  @Input() hasError: WorkflowFormInputProps['hasError'] = false;\n  @Input() inputId = '';\n  @Input() errorId = '';\n  @Input() value: string = '';\n  @Input() remove: boolean = false;\n\n  @Output() valueChange = new EventEmitter<string>();\n  @Output() removeReasonChange = new EventEmitter<string>();\n\n  @ViewChild('input') inputElement!: ElementRef;\n\n  focus() {\n    this.inputElement.nativeElement.focus();\n  }\n  ngOnInit(): void {\n    this.hasError = false;\n  }\n\n  onValueChange(value: string) {\n    this.valueChange.emit(value);\n  }\n\n  removeReason() {\n    this.removeReasonChange.emit();\n  }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-vc-label',\n  template: `\n    <div class=\"workflow-form-label\">\n      <div\n        class=\"label-name vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-lh-4 vx-align-center\"\n      >\n          {{ labelText }}\n        <i\n          *ngIf=\"showInfo\"\n          class=\"icons info vx-fs-12 vx-txt-blue vx-m-0 vx-ml-1\"\n          [appTooltip]=\"tooltipText\"\n          placement=\"bottom-right\"\n          delay=\"0\"\n          type=\"white\"\n          [tooltipMandatory]=\"true\"\n          >&#xe91f;</i\n        >\n          <span\n            *ngIf=\"required\"\n            class=\"required vx-fs-16 vx-fw-400 vx-ml-1 vx-d-inline-block\"\n            >*</span\n          >\n      </div>\n      <div class=\"label-details vx-fs-11 vx-mt-1\">\n        {{ details }}\n      </div>\n    </div>\n  `,\n  styleUrls: ['./vc-label.component.less'],\n})\nexport class VCFormLabelComponent {\n  @Input() labelText: string = '';\n  @Input() details: string = '';\n  @Input() required: boolean = false;\n  @Input() showInfo: boolean = false;\n  @Input() tooltipText: string = '';\n}\n","import { Component, Input } from '@angular/core';\nimport { ASSETS } from '../../../constants/assets.constants';\n\n@Component({\n  selector: 'app-field-holder',\n  template: `\n    <div\n      [appScrollInView]=\"scrollToBottom\"\n      class=\"form-group-row\"\n      [class.active]=\"active\"\n      [class.disabled]=\"disabled\"\n    >\n      <div class=\"left\" [class.checked]=\"checked\">\n        <img *ngIf=\"!checked\" [src]=\"image\" alt=\"\" />\n\n        <svg\n          *ngIf=\"checked\"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <ng-content select=\"[field]\"></ng-content>\n        </div>\n      </div>\n    </div>\n  `,\n  styleUrls: ['../../../forms.less'],\n})\nexport class FieldHolderComponent {\n  ASSETS = ASSETS;\n  @Input() image: string = '';\n  @Input() active: boolean = false;\n  @Input() disabled: boolean = false;\n  @Input() checked: boolean = false;\n  @Input() scrollToBottom: boolean = false;\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FIELD_SELECTOR, REPORT_CASE } from '../../constants/report-case.constants';\nimport { ASSETS } from '../../../constants/assets.constants';\nimport { EditorConfig } from 'vcomply-editor';\nimport { report } from '../case-type-slider/case-type.component';\n\n@Component({\n  selector: 'app-case-details',\n  template: `\n    <app-field-holder\n      [image]=\"ASSETS.what\"\n      [checked]=\"payload?.name?.trim()?.length > 0\"\n      [disabled]=\"fieldSelector?.includes(fieldSelected)\"\n    >\n      <ng-container field>\n        <app-vc-input\n          [placeholder]=\"reportTexts.case_details.name.placeholder\"\n          [(value)]=\"payload.name\"\n          [hasError]=\"validationError.name.isError\"\n          [errorMessage]=\"validationError.name.message\"\n          (valueChange)=\"onNameChange($event)\"\n        >\n          <app-vc-label\n            label\n            [labelText]=\"reportTexts.case_details.name.title\"\n            [required]=\"true\"\n          ></app-vc-label>\n        </app-vc-input>\n        <app-vc-label\n          [labelText]=\"reportTexts.case_details.description.title\"\n          [required]=\"true\"\n        ></app-vc-label>\n        <vcomply-editor\n          [(ngModel)]=\"payload.description.text\"\n          [editorConfig]=\"description\"\n          (clickOutside)=\"checkDescription()\"\n          (ngModelChange)=\"onDescriptionChange($event)\"\n        ></vcomply-editor>\n        <p *ngIf=\"validationError.description.isError\" class=\"error-message\">\n          {{ validationError.description.message }}\n        </p>\n        <div\n          *ngIf=\"caseTypeSelected === caseType.REPORT_CASE\"\n          class=\"switch-row align-right\"\n        >\n          <app-cs-switch\n            [ngValue]=\"payload?.receive_updates\"\n            (ngValueChange)=\"payload.receive_updates = $event\"\n          >\n            <div class=\"toggle-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-lh-4\">{{ reportTexts.receive_updates }}</div>\n            <i\n              class=\"icons info vx-fs-12 vx-txt-blue\"\n              [appTooltip]=\"reportTexts.tooltipMessage.receive_updates\"\n              placement=\"bottom-right\"\n              delay=\"0\"\n              type=\"white\"\n              [tooltipMandatory]=\"true\"\n              >&#xe91f;</i\n            >\n          </app-cs-switch>\n        </div>\n      </ng-container>\n    </app-field-holder>\n  `,\n  styleUrls: ['../../../forms.less'],\n})\nexport class CaseDetailsComponent implements OnInit {\n  reportTexts = REPORT_CASE;\n  ASSETS = ASSETS;\n  caseType = report;\n  description: EditorConfig = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Add details about what happened',\n  };\n  fieldSelector = FIELD_SELECTOR;\n\n  @Input() payload: any;\n  @Input() fieldSelected: string = '';\n  @Input() validationError: any;\n  @Input() caseTypeSelected: string = '';\n\n  constructor() { }\n\n  ngOnInit(): void { }\n\n  onNameChange(event: any) {\n    this.validationError.name.isError = false;\n    this.validationError.name.message = '';\n  }\n\n  onDescriptionChange(event: any) {\n    this.validationError.description.isError = false;\n    this.validationError.description.message = '';\n  }\n\n  checkDescription() {\n    if (this.payload.description.text == '<br>') {\n      this.payload.description.text = '';\n    }\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\n\n\n@Component({\n  selector: 'app-vc-dropdown',\n  templateUrl: './vc-dropdown.component.html',\n  styleUrls: ['./vc-dropdown.component.less'],\n})\nexport class DropdownComponent implements OnInit, OnChanges {\n  isOpen = false;\n  selectedItems: any[] = [];\n  @Input() selectedList: any[] = [];\n\n  @Input() config: any = {\n    items: [],\n    isMulti: false,\n    showIndeterminateCheckbox: false,\n    indeterminateCheckboxLabel: '',\n  };\n\n  @Output() selectionChange = new EventEmitter<any | any[]>();\n\n  onSingleSelect(item: any): void {\n    if (!this.config.isMulti) {\n      this.selectionChange.emit(item);\n      this.isOpen = false;\n    }\n  }\n\n  ngOnInit(): void {\n    if (this.selectedList?.length) {\n      this.selectedItems = [...new Set(this.selectedList)];\n    }\n    this.resetContainer();\n  }\n\n  constructor() {}\n  ngOnChanges(changes: SimpleChanges): void {\n    if (\n      changes['selectedList'] &&\n      changes['selectedList'].currentValue.length\n    ) {\n      this.selectedItems = [...new Set(this.selectedList)];\n    }\n  }\n\n  resetContainer(): void {      \n  }\n\n  toggleSelectAll(selected: boolean): void {\n    this.selectedItems = selected\n      ? this.config.items?.map((item : any) => item?.id)\n      : [];\n\n    this.selectionChange.emit(this.selectedItems);\n  }\n\n  isAllSelected(): boolean {\n    return (\n      this.config.items?.length > 0 &&\n      this.config.items?.every((item: any) => this.selectedItems?.includes(item?.id))\n    );\n  }\n\n  toggleSelection(item: any, selected: boolean): void {\n    if (selected) {\n      if (!this.selectedItems?.includes(item?.id)) {\n        this.selectedItems?.push(item?.id);\n      }\n    } else {\n      this.selectedItems = this.selectedItems?.filter((id) => id !== item?.id);\n    }\n    this.selectionChange.emit(this.selectedItems);\n  }\n}\n","<div class=\"wf-action-list selection-list\">\n  <ul class=\"action-item\">\n    <!-- single select -->\n    <div *ngIf=\"!config?.isMulti\">\n      <li *ngFor=\"let data of config.items\">\n        <div\n          [vuiTooltip]=\"data?.isDisabled ? data?.tooltipMsg || '' : ''\"\n          placement=\"bottom-left\"\n          delay=\"0\"\n          type=\"black\"\n          [tooltipMandatory]=\"true\"\n        >\n          <button (click)=\"onSingleSelect(data)\" [disabled]=\"data?.isDisabled\">\n            <i *ngIf=\"data?.icon\" class=\"icons\" [innerHTML]=\"data?.icon\"></i\n            >{{ data?.name }}\n          </button>\n        </div>\n      </li>\n    </div>\n    <!-- multiple select with checkbox -->\n    <div *ngIf=\"config?.showIndeterminateCheckbox\">\n      <li>\n        <div class=\"avatar-card\">\n          <span class=\"value\">\n            <app-cs-checkbox\n              *ngIf=\"\n                selectedItems?.length === config?.items?.length ||\n                selectedItems?.length === 0\n              \"\n              [ngValue]=\"isAllSelected()\"\n              (ngValueChange)=\"toggleSelectAll($event)\"\n              >{{ config.indeterminateCheckboxLabel }}</app-cs-checkbox\n            >\n\n            <app-cs-checkbox-indeterminate\n              *ngIf=\"\n                selectedItems?.length !== 0 &&\n                selectedItems.length !== config?.items?.length\n              \"\n              [ngValue]=\"true\"\n              (ngValueChange)=\"toggleSelectAll(false)\"\n              >{{\n                config.indeterminateCheckboxLabel\n              }}</app-cs-checkbox-indeterminate\n            >\n          </span>\n        </div>\n      </li>\n      <li *ngFor=\"let data of config.items\">\n        <div class=\"avatar-card\">\n          <app-cs-checkbox\n            [ngValue]=\"selectedItems.includes(data?.id)\"\n            (ngValueChange)=\"toggleSelection(data, $event)\"\n            >{{ data?.name }}</app-cs-checkbox\n          >\n        </div>\n      </li>\n    </div>\n  </ul>\n</div>\n","import { Component, Input, Output, EventEmitter, SimpleChanges, OnChanges } from '@angular/core';\n\ninterface ChipItem {\n  id: string | number;\n  label: string;\n}\n\n@Component({\n  selector: 'app-chip-capsule',\n  templateUrl: './chip-capsule.component.html',\n  styleUrls: ['./chip-capsule.component.less'],\n})\nexport class ChipCapsuleComponent implements OnChanges {\n  @Input() items: any[] = [];\n  @Input() removable = true;\n  @Output() remove = new EventEmitter<any>();\n\n\n  ngOnInit(): void {\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['items']) {\n      this.items = changes['items'].currentValue;\n    }\n  }\n\n  onRemove(item: any): void {\n    this.remove.emit(item);\n  }\n}\n","<div class=\"chip-capsule vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n  <i\n    *ngIf=\"removable\"\n    (click)=\"onRemove(items[0])\"\n    class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n    >&#xe9ae;</i\n  >\n  <div\n    class=\"value vx-fs-11 vx-lh-4\"\n    [appTooltip]=\"items[0]?.label ?? ''\"\n    placement=\"bottom-left\"\n    delay=\"0\"\n    type=\"black\"\n    [tooltipMandatory]=\"false\"\n  >\n    {{ items[0]?.label }}\n  </div>\n  <button\n    *ngIf=\"items.length > 1\"\n    class=\"chip-count vx-fs-9 vx-fw-500 vx-txt-white vx-lh-3 vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\"\n    appPopover\n    (click)=\"chipCount.popover()\"\n    placement=\"right\"\n  >\n    +{{ items.length - 1 }}\n  </button>\n</div>\n<app-popover #chipCount [dontCloseonClick]=\"true\">\n  <div *ngIf=\"items.length > 1\" class=\"wf-action-list\">\n    <ul class=\"action-item\">\n      <li *ngFor=\"let item of items | slice : 1; let i = index\">\n        <div class=\"avatar-card\">\n          <span\n            class=\"value\"\n            [vuiTooltip]=\"item.label\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"false\"\n          >\n            <i\n              *ngIf=\"removable\"\n              (click)=\"onRemove(item)\"\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              >&#xe9ae;</i\n            >\n            {{ item?.label }}\n          </span>\n        </div>\n      </li>\n    </ul>\n  </div>\n</app-popover>\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport {\n  DEFAULT_FORM_CONFIG,\n  SelectionPopupState,\n} from '../../constants/report-case.constants';\n\nexport enum SelectionState {\n  EMPTY = 'EMPTY',\n  SELECTED = 'SELECTED',\n  DISABLED = 'DISABLED',\n}\n\n@Component({\n  selector: 'app-form-selectBox',\n  templateUrl: './form-selectBox.component.html',\n  styleUrls: ['./form-selectBox.component.less'],\n})\nexport class FormSelectBoxComponent {\n  public subscriptions: Subscription[] = [];\n  public userGroupSubscription!: Subscription;\n\n  readonly SelectionPopupState: SelectionPopupState =\n    SelectionPopupState.DROP_DOWN;\n  readonly SelectionState: SelectionState = SelectionState.EMPTY;\n\n  _config: any = DEFAULT_FORM_CONFIG;\n\n  @Input() title: string = '';\n  @Input() key: string = '';\n  @Input() action: string = '';\n  @Input() state: string = SelectionState.EMPTY;\n  @Input() popupState: string = SelectionPopupState.DROP_DOWN;\n  @Input() isCaseTypeSelected: boolean = false;\n  @Input() chipItems: any[] = [];\n  @Input() chipGroupItems?: any[] = [];\n  @Input() set config(value: any) {\n    this._config = { ...DEFAULT_FORM_CONFIG, ...value };\n  }\n  @Input() isError: boolean = false;\n  @Input() errorMessage: string = '';\n  @Input() selectedData: any = [];\n  @Input() removable: boolean = true;\n  @Input() disabled: boolean = false;\n  @Input() editDisabled: boolean = false;\n\n  @Output() selectedItemListChange = new EventEmitter<any>();\n  @Output() selectedGroupItemListChange = new EventEmitter<any>();\n  @Output() fieldClicked = new EventEmitter<any>();\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['config']) {\n      this._config = changes['config'].currentValue;\n    }\n    if (changes['chipItems']) {\n      this.chipItems = changes['chipItems'].currentValue;\n    }\n    if (changes['chipGroupItems']) {\n      this.chipGroupItems = changes['chipGroupItems'].currentValue;\n    }\n  }\n\n  openSelection() {\n    this.fieldClicked.emit('true');\n  }\n\n  setDropdownList(event: any) {\n    this.state = SelectionState.SELECTED;\n    this.chipItems = [\n      {\n        label: event?.name,\n        value: event?._id,\n      },\n    ];\n    this.selectedItemListChange.emit(this.chipItems);\n  }\n\n  removeSelectedList(event: any) {\n    this.chipItems = this.chipItems.filter(\n      (item: any) => item?.value !== event?.value\n    );\n    if (!this.chipItems?.length && !this.chipGroupItems?.length) {\n      this.state = SelectionState.EMPTY;\n    }\n    this.selectedItemListChange.emit(this.chipItems);\n  }\n\n  removeGroupSelectedList(event: any) {\n    this.chipGroupItems = this.chipGroupItems?.filter(\n      (item: any) => item?.value !== event?.value\n    );\n    if (!this.chipItems?.length && !this.chipGroupItems?.length) {\n      this.state = SelectionState.EMPTY;\n    }\n    this.selectedGroupItemListChange.emit(this.chipGroupItems);\n  }\n}\n","<ng-content select=\"[label]\"></ng-content>\n<div class=\"workflow-form-selectbox vx-mb-2\">\n  <!-- Before Selection -->\n  <div\n    [appTooltip]=\"disabled ? _config.disabledText : ''\"\n    placement=\"bottom-left\"\n    delay=\"0\"\n    type=\"black\"\n    [tooltipMandatory]=\"true\"\n  >\n    <div\n      *ngIf=\"state.toLowerCase() === 'empty'\"\n      class=\"before-selection vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\"\n      [class.error]=\"_config.isError\"\n      [class.disabled]=\"disabled\"\n      appPopover\n      (click)=\"\n        popupState === 'drop-down' ? selectionPopup.popover() : openSelection()\n      \"\n      placement=\"left\"\n    >\n      <div\n        class=\"selection-value vx-fs-13 vx-lh-5\"\n        [innerHTML]=\"_config.placeholder\"\n      ></div>\n      <i class=\"icons arrow vx-fs-12\">&#xe9e8;</i>\n    </div>\n  </div>\n\n  <app-popover #selectionPopup [dontCloseonClick]=\"_config?.isMulti\">\n    <app-vc-dropdown\n      [config]=\"_config\"\n      [selectedList]=\"selectedData\"\n      (selectionChange)=\"setDropdownList($event)\"\n    ></app-vc-dropdown>\n  </app-popover>\n  <!-- After Selection -->\n  <div\n    [appTooltip]=\"disabled ? _config.disabledText : ''\"\n    placement=\"bottom-left\"\n    delay=\"0\"\n    type=\"black\"\n    [tooltipMandatory]=\"true\"\n  >\n    <div\n      *ngIf=\"state.toLowerCase() === 'selected'\"\n      class=\"after-selection vx-d-flex vx-align-center vx-justify-between vx-pl-2 vx-pr-2\"\n      [class.disabled]=\"disabled ? 'disabled' : ''\"\n    >\n      <div class=\"vx-d-flex vx-align-center\">\n        <app-chip-capsule\n          *ngIf=\"chipItems?.length\"\n          [items]=\"chipItems\"\n          (remove)=\"removeSelectedList($event)\"\n          [removable]=\"removable\"\n        ></app-chip-capsule>\n        <span\n          class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\n          *ngIf=\"chipItems?.length > 0 && chipGroupItems?.length > 0\"\n          >&</span\n        >\n        <app-chip-capsule\n          *ngIf=\"chipGroupItems?.length\"\n          [items]=\"chipGroupItems\"\n          (remove)=\"removeGroupSelectedList($event)\"\n        ></app-chip-capsule>\n      </div>\n      <button\n        *ngIf=\"!editDisabled\"\n        class=\"edit-btn vx-fs-11 vx-fw-500 vx-lh-4 vx-d-flex vx-align-center vx-p-0 vx-m-0 vx-tt-uppercase\"\n        appPopover\n        (click)=\"\n          popupState === 'drop-down'\n            ? selectionPopup.popover()\n            : openSelection()\n        \"\n        placement=\"right\"\n      >\n        <i class=\"icons vx-fs-12 vx-mr-1\">&#xe9ba;</i> EDIT\n      </button>\n    </div>\n  </div>\n  <!-- Disabled Selection -->\n  <div\n    *ngIf=\"state.toLowerCase() === 'disabled'\"\n    class=\"disabled-selection vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\"\n    [vuiTooltip]=\"_config.disabledText ? _config.disabledText : ''\"\n    placement=\"bottom-left\"\n    delay=\"0\"\n    type=\"black\"\n    [tooltipMandatory]=\"true\"\n  >\n    <div class=\"selection-value vx-fs-13 vx-lh-5\">\n      {{ _config?.placeholder }}\n    </div>\n    <i class=\"icons arrow vx-fs-12\">&#xe9e8;</i>\n  </div>\n  <!-- Error Message -->\n  <div *ngIf=\"isError\" class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\">\n    {{ errorMessage }}\n  </div>\n  <!--loader-->\n  <app-loader *ngIf=\"false\"></app-loader>\n</div>\n","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  SimpleChanges,\n  OnInit,\n  OnDestroy,\n} from '@angular/core';\n\nimport { ASSETS } from '../../../constants/assets.constants';\nimport {\n  ACTION_CODE,\n  DEFAULT_FORM_CONFIG,\n  FIELD_SELECTOR,\n  REPORT_CASE,\n  SelectionPopupState,\n  SelectionState,\n} from '../../constants/report-case.constants';\n\nimport { ComplianceCommonService } from '../../../workflow-services/common-workflow-services/compliance-common.service';\nimport { report } from '../case-type-slider/case-type.component';\n\n@Component({\n  selector: 'app-rc-details',\n  template: `\n    <app-field-holder\n      [image]=\"ASSETS.responsibility_center\"\n      [active]=\"rcClicked\"\n      [disabled]=\"\n        fieldSelector?.includes(fieldSelected) &&\n        fieldSelected !== currentSelector\n      \"\n      [checked]=\"payload?.rc_details?.ids?.length\"\n    >\n\n      <ng-container field>\n        <app-form-selectBox\n          [config]=\"config\"\n          [state]=\"state\"\n          [popupState]=\"SelectionPopupState.SELECTION_DIALOG\"\n          [chipItems]=\"selectedItems\"\n          [isError]=\"validationError.rc.isError\"\n          [errorMessage]=\"validationError.rc.message\"\n          [editDisabled]=\"rcEditDisable\"\n          [removable]=\"!rcEditDisable\"\n          (fieldClicked)=\"activateSelector($event)\"\n          (selectedItemListChange)=\"setRcList($event)\"\n        >\n          <app-vc-label\n            label\n            [labelText]=\"rcTexts.case_details.rc.title\"\n            [required]=\"\n              caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW ||\n              workflowType === 'ACTW'\n            \"\n          ></app-vc-label>\n        </app-form-selectBox>\n        <ng-container\n          *ngIf=\"\n            (caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW ||\n              workflowType === 'ACTW') &&\n            payload?.rc_details?.ids?.length > 1\n          \"\n        >\n          <div class=\"switch-row switch-disabled align-right vx-d-flex vx-align-center\">\n            <div\n              class=\"toggle-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-lh-4  vx-mr-2\"\n            >\n              {{ rcTexts.case_details.rc.sameRcText }}\n            </div>\n            <app-cs-switch [ngValue]=\"true\" [disabled]=\"true\"> </app-cs-switch>\n          </div>\n          <!-- <app-cs-radio\n            class=\"main-filed\"\n            [name]=\"'ff_responsibility_rc_link'\"\n            [checked]=\"payload?.rc_details?.separate_rc_cases\"\n            (checkedEvent)=\"onRcTypeChange(true)\"\n            ><div class=\"rc-radio-text\">\n              {{ rcTexts.case_details.rc.separateRcText }}\n            </div>\n            <i\n              class=\"icons\"\n              [appTooltip]=\"rcTexts.case_details.rc.separateRcTooltip\"\n              placement=\"bottom-right\"\n              type=\"white\"\n              delay=\"0\"\n              [tooltipMandatory]=\"true\"\n              >&#xe91f;</i\n            ></app-cs-radio\n          >\n          <app-cs-radio\n            class=\"main-filed\"\n            [name]=\"'ff_responsibility_rc_link'\"\n            [checked]=\"!payload?.rc_details?.separate_rc_cases\"\n            (checkedEvent)=\"onRcTypeChange(false)\"\n            >{{ rcTexts.case_details.rc.sameRcText\n            }}<i\n              class=\"icons\"\n              [appTooltip]=\"rcTexts.case_details.rc.sameRcTooltip\"\n              placement=\"bottom-right\"\n              type=\"white\"\n              delay=\"0\"\n              [tooltipMandatory]=\"true\"\n              >&#xe91f;</i\n            ></app-cs-radio\n          > -->\n          <p\n            *ngIf=\"!payload?.rc_details?.separate_rc_cases\"\n            class=\"vx-fs-11 vx-lh-4 vx-fw-500 vx-txt-black vx-mb-2\"\n            [class.disabled]=\"fieldSelector?.includes(fieldSelected)\"\n          >\n            SELECT THE MAIN RESPONSIBILITY CENTER BASED ON WHICH THE WORKFLOW\n            FOR THIS CASE WILL BE DEFINED\n          </p>\n          <app-form-selectBox\n            *ngIf=\"!payload?.rc_details?.separate_rc_cases\"\n            [config]=\"mainRcConfig\"\n            [state]=\"mainRcState\"\n            [popupState]=\"SelectionPopupState.DROP_DOWN\"\n            [chipItems]=\"selectedMainRcItems\"\n            [isError]=\"validationError.mainRc.isError\"\n            [errorMessage]=\"validationError.mainRc.message\"\n            [editDisabled]=\"\n              mode === 'EDIT' &&\n              caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW &&\n              workflowType !== 'ACTW'\n            \"\n            (fieldClicked)=\"activateSelector($event)\"\n            (selectedItemListChange)=\"saveMainRcList($event)\"\n          >\n          </app-form-selectBox>\n        </ng-container>\n      </ng-container>\n    </app-field-holder>\n    <app-responsibility-centers-list\n      *ngIf=\"rcClicked\"\n      [responsibilityCentersList]=\"responsibilityCentersList\"\n      [selectedResponsibilityCenters]=\"selectedRcList\"\n      [rcIdKey]=\"'rc_id'\"\n      (saveSelectedList)=\"saveSelectedRCList($event)\"\n      (closeRcList)=\"activateSelector(false)\"\n      [singularText]=\"rcTexts.case_details.rc.singularText\"\n      [pluralText]=\"rcTexts.case_details.rc.pluralText\"\n      [loaded]=\"!rcListLoader\"\n    >\n    </app-responsibility-centers-list>\n  `,\n  styleUrls: ['../../../forms.less', './rc-details.component.less'],\n})\nexport class RcDetailsComponent implements OnInit, OnDestroy {\n  ASSETS = ASSETS;\n  rcTexts = REPORT_CASE;\n  caseType = report;\n  responsibilityCentersList: any[] = [];\n  mainRcConfig: any = {\n    ...DEFAULT_FORM_CONFIG,\n    action: ACTION_CODE.RC,\n    placeholder: this.rcTexts.case_details.rc.mainRcPlaceholder,\n    items: [],\n  };\n  config: any = {\n    ...DEFAULT_FORM_CONFIG,\n    action: ACTION_CODE.RC,\n    placeholder: this.rcTexts.case_details.rc.placeholder,\n    items: [],\n  };\n  rcClicked: boolean = false;\n  rcListLoader: boolean = false;\n  SelectionState = SelectionState;\n  SelectionPopupState = SelectionPopupState;\n  state: string = SelectionState.EMPTY;\n  mainRcState: string = SelectionState.EMPTY;\n  selectedItems: any[] = [];\n  selectedRcList: any[] = [];\n  selectedMainRcItems: any[] = [];\n  fieldSelector = FIELD_SELECTOR;\n  currentSelector = 'RC';\n\n  @Input() payload: any = {};\n  @Input() fieldSelected: string = '';\n  @Input() caseTypeSelected: string = report.REPORT_CASE;\n  @Input() validationError: any = {};\n  @Input() set initialSelection(value: any) {\n    this.selectedItems = value?.ids;\n\n    this.selectedMainRcItems = value?.main_rc_id;\n    if (value?.main_rc_id) {\n      this.mainRcState = SelectionState.SELECTED;\n    }\n\n  }\n  @Input() mode: string = '';\n  @Input() workflowType: string = '';\n\n  @Output() fieldClicked = new EventEmitter();\n  @Output() onRcChange = new EventEmitter<any>();\n  @Output() filterDeselector = new EventEmitter<any>();\n\n  constructor(private complianceService: ComplianceCommonService) { }\n  ngOnDestroy(): void {\n    this.selectedItems = [];\n    this.selectedRcList = [];\n    this.selectedMainRcItems = [];\n    this.mainRcState = SelectionState.EMPTY;\n    this.state = SelectionState.EMPTY;\n    this.complianceService.rcList?.next(null);\n    this.selectedItems = [];\n    this.selectedRcList = [];\n    this.selectedMainRcItems = [];\n  }\n\n  ngOnInit() {\n    if (this.mode === 'EDIT') {\n      this.getResponsibilityCentersList();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['payload']) {\n      if (!this.payload?.rc_details?.ids?.length) {\n        this.state = SelectionState.EMPTY;\n        this.selectedItems = [];\n        this.selectedRcList = [];\n      }\n    }\n    if (changes['caseTypeSelected']) {\n      this.responsibilityCentersList = [];\n    }\n  }\n\n  getResponsibilityCentersList() {\n    this.rcListLoader = true;\n    const allVisible = this.caseTypeSelected === 'reportCase' && this.workflowType === 'RAC' && this.mode !== 'EDIT' ? true : false;\n    this.complianceService\n      .getRcListInfo(undefined, allVisible)\n      .subscribe((res: any) => {\n        this.responsibilityCentersList = res;\n        if (this.mode === 'EDIT') {\n          this.populateSelectedItems();\n        }\n        this.rcListLoader = false;\n      });\n  }\n\n  populateSelectedItems() {\n    if (this.selectedItems?.length) {\n      this.selectedItems = this.responsibilityCentersList\n        ?.filter((rc: any) => this.selectedItems?.some((item: any) => item === rc?._id))\n        ?.map((rc: any) => ({\n          label: rc?.item_name,\n          value: rc?.rc_id,\n        }));\n      this.selectedRcList = this.responsibilityCentersList?.filter((rc: any) =>\n        this.selectedItems?.some((item: any) => item?.value === rc?.rc_id)\n      );\n      this.mainRcConfig.items = this.selectedRcList.map((rc: any) => ({\n        name: rc?.item_name,\n        _id: rc?._id,\n      }));\n      this.selectedMainRcItems = this.responsibilityCentersList\n        ?.filter((rc: any) => this.selectedMainRcItems?.includes(rc?._id))\n        ?.map((rc: any) => ({\n          label: rc?.item_name,\n          value: rc?._id,\n        }));\n      this.state = SelectionState.SELECTED;\n    } else {\n      this.mode === 'EDIT' && this.workflowType !== 'ACTW' && this.caseTypeSelected === this.caseType.ADD_CASE_TO_WORKFLOW\n        ? ((this.state = SelectionState.DISABLED),\n          (this.config.disabledText = this.rcTexts.case_details.rc.placeholder))\n        : (this.state = SelectionState.EMPTY);\n    }\n  }\n\n  saveSelectedRCList(event: any) {\n    this.rcClicked = false;\n    this.setSelectedRcList(event);\n    this.setMainRcList(event);\n    this.selectedItems = this.responsibilityCentersList\n      .filter((rc: any) => event.includes(rc?.rc_id))\n      .map((rc: any) => ({\n        label: rc?.item_name,\n        value: rc?.rc_id,\n      }));\n    this.setPayload(event);\n    this.state = SelectionState.SELECTED;\n    this.fieldClicked.emit('');\n    this.validationError.rc.isError = false;\n    this.validationError.rc.message = '';\n    this.filterDeselector.emit(false);\n  }\n\n  setMainRcList(event: any) {\n    this.mainRcConfig.items = this.responsibilityCentersList\n      .filter((rc: any) => event.includes(rc?.rc_id))\n      .map((rc: any) => ({\n        name: rc?.item_name,\n        _id: rc?._id,\n      }));\n  }\n\n  saveMainRcList(event: any) {\n    this.mainRcState = SelectionState.SELECTED;\n    this.payload.rc_details.main_rc_id = event[0]?.value;\n    this.onRcChange.emit(this.payload.rc_details.main_rc_id);\n    this.validationError.mainRc.isError = false;\n    this.validationError.mainRc.message = '';\n  }\n\n  setPayload(event: any) {\n    this.payload.rc_details.ids = this.responsibilityCentersList\n      .filter((rc: any) => event.includes(rc?.rc_id))\n      .map((rc: any) => rc?._id);\n    if (this.payload.rc_details.ids.length === 1) {\n      this.onRcChange.emit(this.payload.rc_details.ids[0]);\n    }\n  }\n\n  setSelectedRcList(event: any) {\n    this.selectedRcList = this.responsibilityCentersList.filter((rc: any) =>\n      event.includes(rc?.rc_id)\n    );\n  }\n\n  activateSelector(active: boolean) {\n    this.rcClicked = active;\n    if (this.mode !== 'EDIT') {\n      this.getResponsibilityCentersList();\n    }\n    if (active) {\n      this.fieldClicked.emit('RC');\n      this.filterDeselector.emit(true);\n    } else {\n      this.fieldClicked.emit('');\n      this.filterDeselector.emit(false);\n    }\n  }\n\n  setRcList(event: any) {\n    if (!event?.length) {\n      this.resetRcList();\n      return;\n    }\n\n    this.selectedRcList = this.responsibilityCentersList?.filter((rc: any) =>\n      event?.some((item: any) => item?.value === rc?.rc_id)\n    );\n    this.payload.rc_details.ids = this.selectedRcList?.map(\n      (rc: any) => rc?._id\n    );\n    this.state = SelectionState.SELECTED;\n  }\n\n  resetRcList() {\n    this.selectedRcList = [];\n    this.payload.rc_details.ids = [];\n    this.selectedItems = [];\n    this.state = SelectionState.EMPTY;\n  }\n\n  onRcTypeChange(event: any) {\n    this.payload.rc_details.separate_rc_cases = event;\n  }\n\n  get rcEditDisable() {\n    return (\n      this.mode === 'EDIT' &&\n      this.caseTypeSelected === this.caseType.ADD_CASE_TO_WORKFLOW &&\n      this.workflowType !== 'ACTW' &&\n      this.payload?.rc_details?.ids?.length === 1\n    );\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\nimport {\n  DEFAULT_FORM_CONFIG,\n  FIELD_SELECTOR,\n  REPORT_CASE,\n  SelectionPopupState,\n  SelectionState,\n} from '../../constants/report-case.constants';\nimport { ASSETS } from '../../../constants/assets.constants';\nimport { ReportACaseService } from '../../services/report-a-case.service';\nimport { report } from '../case-type-slider/case-type.component';\nimport { EditorConfig } from 'vcomply-editor';\n\n@Component({\n  selector: 'app-case-type-dropdown',\n  template: `\n    <app-field-holder\n      [image]=\"ASSETS.case_type\"\n      [disabled]=\"fieldSelector?.includes(fieldSelected)\"\n      [checked]=\"payload?.case_type?.id\"\n    >\n      <ng-container field>\n        <app-form-selectBox\n          [config]=\"config\"\n          [chipItems]=\"chipItems\"\n          [state]=\"state\"\n          [popupState]=\"selectionPopupState.DROP_DOWN\"\n          [isError]=\"validationError.caseType.isError\"\n          [errorMessage]=\"validationError.caseType.message\"\n          [selectedData]=\"initialType\"\n          [editDisabled]=\"caseTypeEditDisable\"\n          [removable]=\"!caseTypeEditDisable\"\n          (selectedItemListChange)=\"onSelectedItemListChange($event)\"\n        >\n          <app-vc-label\n            label\n            [labelText]=\"reportTexts.case_details.case_type.title\"\n            [required]=\"true\"\n          ></app-vc-label>\n        </app-form-selectBox>\n        <div\n        class=\"vx-form-group\"\n        *ngFor=\"let tag of payload?.case_type?.custom_fields\"\n      >\n        <label class=\"vx-control-panel\">{{ tag?.name }}</label>\n        <vcomply-editor\n          [(ngModel)]=\"tag.value\"\n          [editorConfig]=\"customField\"\n        ></vcomply-editor>\n      </div>\n      </ng-container>\n    </app-field-holder>\n  `,\n  styleUrls: ['../../../forms.less'],\n})\nexport class CaseDropdownComponent implements OnInit {\n  reportTexts = REPORT_CASE;\n  ASSETS = ASSETS;\n  config: any = {\n    ...DEFAULT_FORM_CONFIG,\n    placeholder: this.reportTexts.case_details.case_type.placeholder,\n    items: [],\n  };\n  chipItems: any[] = [];\n  allTypes: any[] = [];\n  selectionState = SelectionState;\n  selectionPopupState = SelectionPopupState;\n  isLoading: boolean = false;\n  initialType: any;\n  state = SelectionState.EMPTY;\n  caseType = report;\n  fieldSelector = FIELD_SELECTOR;\n  customField: EditorConfig = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Add value',\n  };\n\n  @Input() fieldSelected: string = '';\n  @Input() payload: any;\n  @Input() validationError: any;\n  @Input() set initialSelection(value: any) {\n    this.initialType = value?.id;\n  }\n  @Input() mode: string = '';\n  @Input() caseTypeSelected: string = '';\n  @Input() workflowType: string = '';\n\n  @Output() onCaseTypeChange = new EventEmitter<any>();\n  @Output() onCaseTypeLoading = new EventEmitter<boolean>();\n\n  constructor(private reportACaseService: ReportACaseService) { }\n\n  ngOnInit(): void {\n    this.getAllTypes();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['initialSelection']) {\n      this.populateInitialType();\n    }\n    if (changes['payload']) {\n      if (!this.payload?.case_type?.id) {\n        this.state = SelectionState.EMPTY;\n      }\n    }\n  }\n\n  getAllTypes() {\n    this.isLoading = true;\n    this.onCaseTypeLoading.emit(true);\n    this.reportACaseService.getAllTypes().subscribe({\n      next: (res: any) => {\n        this.allTypes = res?.data?.types;\n        this.config.items = this.allTypes;\n        this.config = JSON.parse(JSON.stringify(this.config));\n        if (this.mode === 'EDIT') {\n          this.populateInitialType();\n        }\n        this.isLoading = false;\n        this.onCaseTypeLoading.emit(false);\n      },\n      error: (err: any) => {\n        this.isLoading = false;\n        this.onCaseTypeLoading.emit(false);\n      },\n    });\n  }\n\n  populateInitialType() {\n    if (this.initialType) {\n      this.state = SelectionState.SELECTED;\n      this.chipItems = this.allTypes\n        ?.filter((type: any) => type?._id === this.initialType)\n        ?.map((type: any) => ({\n          label: type?.name,\n          value: type?._id,\n        }));\n    }\n  }\n\n  onSelectedItemListChange(event: any) {\n    this.validationError.caseType.isError = false;\n    this.validationError.caseType.message = '';\n    this.payload.case_type.id = event[0]?.value;\n    this.payload.case_type.custom_fields = this.allTypes?.find(\n      (type: any) => type?._id === event[0]?.value\n    )?.custom_fields;\n    this.state = SelectionState.SELECTED;\n    this.onCaseTypeChange.emit(this.payload.case_type.id);\n  }\n\n  get caseTypeEditDisable() {\n    return (\n      this.mode === 'EDIT' &&\n      this.caseTypeSelected === this.caseType.ADD_CASE_TO_WORKFLOW &&\n      this.workflowType !== 'ACTW'\n    );\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  HostListener,\n  Input,\n  ViewChild,\n} from '@angular/core';\n\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport moment from 'moment';\nimport { formatDate } from '@angular/common';\n\nimport { ASSETS } from '../../../constants/assets.constants';\nimport { FIELD_SELECTOR, REPORT_CASE } from '../../constants/report-case.constants';\n\nimport { CommonService } from '../../../services/common.service';\nimport { AuthService } from '../../../workflow-services/auth.service';\nimport { DateUtilityService } from '../../services/date-utility.service';\nimport { DateTime } from 'luxon';\n\n@Component({\n  selector: 'app-report-date',\n  template: `\n    <app-field-holder\n      [image]=\"ASSETS.when\"\n      [disabled]=\"fieldSelector?.includes(fieldSelected)\"\n      [checked]=\"payload?.occurrence_date\"\n    >\n      <ng-container field>\n        <app-vc-label\n          label\n          [labelText]=\"reportTexts.case_details.when.title\"\n          [required]=\"true\"\n        >\n        </app-vc-label>\n        <div class=\"date-time-picker\">\n          <div class=\"picker-group\">\n            <input\n              type=\"text\"\n              readonly\n              [placeholder]=\"reportTexts.case_details.when.placeholder\"\n              [value]=\"getDisplayDate(payload?.occurrence_date)\"\n              (click)=\"openDatePicker()\"\n              id=\"effective-date\"\n            />\n            <i class=\"icons\">&#xe92d;</i>\n            <dp-date-picker\n              #datePicker\n              (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\n              [config]=\"dateConfig\"\n              [(ngModel)]=\"payload.occurrence_date\"\n            >\n            </dp-date-picker>\n            <div\n              class=\"vx-overlay\"\n              (click)=\"closeDatePicker($event)\"\n              *ngIf=\"datePickerOverlay\"\n            ></div>\n          </div>\n        </div>\n        <p *ngIf=\"validationError.reportDate.isError\" class=\"error-message\">\n          {{ validationError.reportDate.message }}\n        </p>\n      </ng-container>\n    </app-field-holder>\n  `,\n  styleUrls: ['./report-date.component.less', '../../../forms.less'],\n})\nexport class ReportDateComponent {\n  ASSETS = ASSETS;\n  reportTexts = REPORT_CASE;\n\n  datePickerOverlay = false;\n  dateConfig = {\n    disableKeypress: true,\n    format: 'DD MM YYYY',\n    unSelectOnClick: true,\n    openOnClick: false,\n    openOnFocus: false,\n    max: moment(),\n  };\n  fieldSelector = FIELD_SELECTOR;\n\n  @Input() payload: any;\n  @Input() fieldSelected: string = '';\n  @Input() validationError: any;\n\n  constructor(\n    private commonService: CommonService,\n    private authService: AuthService,\n    private dateUtilityService: DateUtilityService\n  ) { }\n\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n\n  openDatePicker() {\n    this.datePicker?.api?.open();\n    this.datePickerOverlay = true;\n  }\n\n  closeDatePicker(evt: any) {\n    this.datePickerOverlay = false;\n\n    if (!evt) {\n      return;\n    }\n    if (evt?.date?.$d) {\n      let monthArray = [\n        'Jan',\n        'Feb',\n        'Mar',\n        'Apr',\n        'May',\n        'Jun',\n        'Jul',\n        'Aug',\n        'Sep',\n        'Oct',\n        'Nov',\n        'Dec',\n      ];\n      const dateValue = new Date(evt?.date?.$d).getDate();\n      const monthValue = monthArray[new Date(evt?.date?.$d).getMonth()];\n      const yearValue = new Date(evt?.date?.$d).getFullYear();\n      const dateStr = `${dateValue} ${monthValue} ${yearValue}`;\n    }\n    if (evt?.date?.$d) {\n      this.payload.occurrence_date = this.dateUtilityService.convertToUTC(evt?.date);\n    }\n    this.datePicker?.api?.close();\n    this.resetValidationErrors();\n  }\n\n  resetValidationErrors() {\n    this.validationError.reportDate.isError = false;\n  }\n\n  getDisplayDate(utcDate: Date | string | null): string {\n    if (!utcDate) return '';\n    const userTimezone = this.authService.getUserTimeZone();\n    const dateTime = DateTime\n      .fromJSDate(new Date(utcDate))\n      .setZone('utc')\n      .setZone(userTimezone)\n      .startOf('day');\n  \n    return dateTime.toFormat('dd MMM yyyy');\n  }\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'effective-date',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datePickerOverlay,\n    };\n    this.commonService.handleDocumentClick(datePickerObject);\n  }\n}\n","import {\n  Component,\n  OnInit,\n  Input,\n  EventEmitter,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\nimport {\n  DEFAULT_FORM_CONFIG,\n  FIELD_SELECTOR,\n  REPORT_CASE,\n  SelectionPopupState,\n  SelectionState,\n} from '../../constants/report-case.constants';\nimport { ASSETS } from '../../../constants/assets.constants';\nimport { ReportACaseService } from '../../services/report-a-case.service';\nimport { report } from '../case-type-slider/case-type.component';\n\n@Component({\n  selector: 'app-case-priority',\n  template: `\n    <app-field-holder\n      [image]=\"ASSETS.case_type\"\n      [disabled]=\"fieldSelector?.includes(fieldSelected)\"\n      [checked]=\"payload?.priority?.id\"\n    >\n      <ng-container field>\n        <app-form-selectBox\n          [config]=\"config\"\n          [chipItems]=\"chipItems\"\n          [state]=\"state\"\n          [popupState]=\"selectionPopupState.DROP_DOWN\"\n          [isError]=\"validationError.priority.isError\"\n          [errorMessage]=\"validationError.priority.message\"\n          [editDisabled]=\"priorityEditDisable\"\n          [removable]=\"!priorityEditDisable\"\n          (selectedItemListChange)=\"onSelectedItemListChange($event)\"\n        >\n          <app-vc-label\n            label\n            [labelText]=\"reportTexts.case_details.priority.title\"\n            [required]=\"caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW\"\n          ></app-vc-label>\n        </app-form-selectBox>\n      </ng-container>\n    </app-field-holder>\n  `,\n  styleUrls: ['../../../forms.less'],\n})\nexport class CasePriorityComponent implements OnInit {\n  reportTexts = REPORT_CASE;\n  ASSETS = ASSETS;\n  caseType = report;\n  config: any = {\n    ...DEFAULT_FORM_CONFIG,\n    placeholder: this.reportTexts.case_details.priority.placeholder,\n    items: [],\n  };\n  chipItems: any[] = [];\n  allPriorities: any[] = [];\n  selectionState = SelectionState;\n  selectionPopupState = SelectionPopupState;\n  state = SelectionState.EMPTY;\n  isLoading: boolean = false;\n  initialPriority: any;\n  fieldSelector = FIELD_SELECTOR;\n\n  @Input() fieldSelected: string = '';\n  @Input() payload: any;\n  @Input() caseTypeSelected: string = '';\n  @Input() validationError: any = {};\n  @Input() set initialSelection(value: any) {\n    this.initialPriority = value?.id;\n  }\n  @Input() mode: string = '';\n  @Input() workflowType: string = '';\n\n  @Output() onPriorityChange = new EventEmitter<any>();\n  @Output() onPriorityLoader = new EventEmitter<boolean>();\n\n  constructor(private reportACaseService: ReportACaseService) { }\n\n  ngOnInit(): void {\n    this.getAllPriorities();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['initialSelection']) {\n      this.populateInitialPriority();\n    }\n    if (changes['payload']) {\n      if (!this.payload?.priority?.id) {\n        this.state = SelectionState.EMPTY;\n      }\n    }\n  }\n\n  getAllPriorities() {\n    this.isLoading = true;\n    this.onPriorityLoader.emit(true);\n    this.reportACaseService.getAllPriorities().subscribe({\n      next: (res: any) => {\n        this.allPriorities = res?.data?.priorities;\n        this.config.items = this.allPriorities;\n        this.config = JSON.parse(JSON.stringify(this.config));\n        if (this.mode === 'EDIT') {\n          this.populateInitialPriority();\n        }\n        this.isLoading = false;\n        this.onPriorityLoader.emit(false);\n      },\n      error: (err: any) => {\n        this.isLoading = false;\n        this.onPriorityLoader.emit(false);\n      },\n    });\n  }\n\n  populateInitialPriority() {\n    if (this.initialPriority) {\n      this.state = SelectionState.SELECTED;\n      this.chipItems = this.allPriorities\n        ?.filter((priority: any) => priority?._id === this.initialPriority)\n        ?.map((priority: any) => ({\n          label: priority?.name,\n          value: priority?._id,\n        }));\n    }\n  }\n\n  onSelectedItemListChange(event: any) {\n    this.payload.priority.id = event[0]?.value;\n    this.validationError.priority.isError = false;\n    this.validationError.priority.message = '';\n    this.state = SelectionState.SELECTED;\n    this.onPriorityChange.emit(this.payload.priority.id);\n  }\n\n  get priorityEditDisable() {\n    return (\n      this.caseTypeSelected === this.caseType.ADD_CASE_TO_WORKFLOW &&\n      this.mode === 'EDIT' &&\n      this.workflowType !== 'ACTW'\n    );\n  }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-listline-loader',\n  templateUrl: './link-treatment-loader.component.html',\n  styleUrls: ['./link-treatment-loader.component.less'],\n})\nexport class LinkTreatmentLoaderComponent implements OnInit {\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"link-treatment-loader-container\">\n  <!-- <div class=\"link-treatment-tab\">\n        <ul>\n            <li><div class=\"loader\"></div></li>\n            <li><div class=\"loader\"></div></li>\n            <li><div class=\"loader\"></div></li>\n            <li><div class=\"loader\"></div></li>\n        </ul>\n    </div> -->\n  <!-- <div class=\"link-treatment-create-btn\">\n        <div class=\"loader\"></div>\n    </div> -->\n  <div class=\"link-treatment-body\">\n    <!-- <div class=\"search-block\">\n            <div class=\"loader\"></div>\n        </div> -->\n    <div class=\"link-treatment-list\">\n      <ul>\n        <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\">\n          <div class=\"loader\"></div>\n        </li>\n      </ul>\n    </div>\n    <!-- <div class=\"link-treatment-footer\">\n            <div class=\"left\">\n                <div class=\"loader\"></div>\n            </div>\n            <div class=\"right\">\n                <div class=\"loader\"></div>\n            </div>\n        </div> -->\n  </div>\n</div>\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { ASSETS } from '../../../constants/assets.constants';\nexport interface ListEvent {\n  searchKey?: string;\n  page?: number;\n}\nexport interface panelConfig {\n  panelTitle: '';\n  entitySingular: '';\n  entityPlural: '';\n  displayKey: '';\n  identifierKey: '';\n  parentKey: '';\n  parentDisplayKey: '';\n  searchPlaceholder: '';\n  noDataText: '';\n}\n@Component({\n  selector: 'app-category-list-selection',\n  templateUrl: './category-list-selection.component.html',\n  styleUrls: ['./category-list-selection.component.less'],\n})\nexport class CategoryListSelectionComponent implements OnInit {\n  @Output() fetchData = new EventEmitter<ListEvent>();\n  @Output() back = new EventEmitter();\n  @Output() next = new EventEmitter();\n  @Output() cancel = new EventEmitter();\n  ASSETS = ASSETS;\n  list = [];\n  searchKey = '';\n  selectedList: any = [];\n  @Input('categoryList') set setList(value: any) {\n    this.list = value;\n  }\n  @Input() config!: panelConfig;\n  @Input() currentPage: any = 1;\n  @Input() recordStart: any = 1;\n  @Input() recordEnd: any = 1;\n  @Input() totalRecords: any = 1;\n  @Input() totalPages: any = 1;\n  @Input() loading: any = true;\n  @Input() selectionMode: 'single' | 'multiple' = 'multiple';\n  @Input('selectedList') set setSelected(value: any) {\n    if (value) {\n      this.selectedList = [...value];\n      this.setSelectedIds();\n    }\n  }\n  animation = true;\n  selectedIds: any = [];\n  constructor() { }\n\n  ngOnInit(): void { }\n\n  //This method handles the page change\n  pageChanged(page: number) {\n    this.currentPage = page;\n    this.fetchData.emit({ page: this.currentPage, searchKey: this.searchKey });\n  }\n\n  //This method handles the search\n  search() {\n    this.currentPage = 1;\n    this.fetchData.emit({ page: this.currentPage, searchKey: this.searchKey });\n  }\n\n  itemSelected(event: any, item: any) {\n    if (this.selectionMode === 'single') {\n      this.selectedList = [item];\n      this.setSelectedIds();\n    } else {\n      if (event) {\n        this.selectedList.push(item);\n        this.setSelectedIds();\n      } else {\n        let index = this.selectedList.findIndex(\n          (x: any) => x?._id === item?._id\n        );\n        if (index >= 0) {\n          this.selectedList = this.selectedList.filter(\n            (ele: any) =>\n              ele[this.config?.identifierKey] !==\n              item[this.config?.identifierKey]\n          );\n          this.setSelectedIds();\n        }\n      }\n    }\n  }\n\n  setSelectedIds() {\n    this.selectedIds = this.selectedList.map(\n      (ele: any) => ele[this.config?.identifierKey]\n    );\n    this.selectedList = Array.from(\n      new Set(this.selectedList.map((a: any) => a._id))\n    ).map((id) => {\n      return this.selectedList.find((a: any) => a._id === id);\n    });\n  }\n  deleteItem(evt: any) {\n    this.selectedList = this.selectedList.filter(\n      (ele: any) =>\n        ele[this.config?.identifierKey] !== evt[this.config?.identifierKey]\n    );\n    this.setSelectedIds();\n  }\n\n  close() {\n    this.cancel.emit();\n  }\n  save() {\n    this.next.emit(this.selectedList);\n  }\n\n  selectAll(evt: any) {\n    if (evt) {\n      this.selectedList = [...this.selectedList, ...this.list];\n      this.setSelectedIds();\n    } else if (evt === false) {\n      const currentPageList = this.list.map((ele: any) => ele._id);\n      this.selectedList = this.selectedList.filter(\n        (ele: any) => !currentPageList.includes(ele?._id)\n      );\n      this.setSelectedIds();\n    }\n  }\n  checkSelectAll() {\n    const data = this.list.every((rc: any) =>\n      this.selectedIds.includes(rc[this.config.identifierKey])\n    );\n    return data;\n  }\n}\n","<div class=\"radio-list\" [class.animate]=\"animation\">\n  <div\n    class=\"radio-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">{{ config?.panelTitle }}</div>\n  </div>\n\n  <div class=\"radio-list-body\">\n    <div class=\"search-block vx-mb-2\" *ngIf=\"true\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        (keydown.enter)=\"search()\"\n        type=\"text\"\n        [placeholder]=\"config?.searchPlaceholder\"\n        [(ngModel)]=\"searchKey\"\n      />\n    </div>\n\n    <app-pagination\n      *ngIf=\"totalPages > 1\"\n      [start]=\"recordStart\"\n      [end]=\"recordEnd\"\n      [total]=\"totalRecords\"\n      [pageCount]=\"totalPages\"\n      [currentPage]=\"currentPage\"\n      (selectedPage)=\"pageChanged($event)\"\n    ></app-pagination>\n\n    <!-- it is visible when list data is available -->\n    <ng-container\n      *ngIf=\"!loading && (list | search: searchKey) as filteredList\"\n    >\n      <div *ngIf=\"filteredList.length > 0\">\n        <div\n          class=\"categories vx-mb-4\"\n          [class.mt-2]=\"totalPages === 0\"\n          *ngIf=\"selectionMode === 'multiple'\"\n        >\n          <app-cs-checkbox\n            [ngValue]=\"checkSelectAll()\"\n            (ngValueChange)=\"selectAll($event)\"\n          >\n            <span class=\"vx-fw-600 vx-label-txt\">{{\n              checkSelectAll() ? \"Deselect All\" : \"Select All\"\n            }}</span>\n          </app-cs-checkbox>\n        </div>\n        <ul\n          class=\"categories-list vx-mb-4\"\n          [class.with-selectAll]=\"selectionMode === 'multiple'\"\n          [class.with-pagination]=\"totalPages > 1\"\n        >\n          <li *ngFor=\"let item of filteredList; let i = index\">\n            <app-cs-radio\n              *ngIf=\"selectionMode === 'single'\"\n              [checked]=\"selectedIds?.includes(item[config?.identifierKey])\"\n              (checkedEvent)=\"itemSelected($event, item)\"\n              [appTooltip]=\"item[config.displayKey]\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              [tooltipMandatory]=\"true\"\n            >\n              <div class=\"name\">{{ item[config.displayKey] }}</div>\n              <div\n                class=\"within vx-d-flex vx-align-center vx-justify-start vx-mt-1\"\n              >\n                <div\n                  class=\"block vx-fs-9 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2\"\n                  *ngIf=\"item[config?.parentKey] != ''\"\n                >\n                  WITHIN\n                </div>\n                <div\n                  class=\"data vx-fs-11 vx-paragraph-txt vx-lh-4 vx-pr-5\"\n                  [appTooltip]=\"item[config?.parentKey] | within: list\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{ item[config?.parentKey] | within: list }}\n                </div>\n              </div>\n            </app-cs-radio>\n            <app-cs-checkbox\n              *ngIf=\"selectionMode === 'multiple'\"\n              [ngValue]=\"selectedIds?.includes(item[config?.identifierKey])\"\n              (ngValueChange)=\"itemSelected($event, item)\"\n              [appTooltip]=\"item[config.displayKey]\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              [tooltipMandatory]=\"true\"\n            >\n              <div class=\"name\">{{ item[config.displayKey] }}</div>\n              <div\n                class=\"within vx-d-flex vx-align-center vx-justify-start vx-mt-1\"\n              >\n                <div\n                  class=\"block vx-fs-9 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2\"\n                  *ngIf=\"item[config?.parentKey] != ''\"\n                >\n                  WITHIN\n                </div>\n                <div\n                  class=\"data vx-fs-11 vx-paragraph-txt vx-lh-4 vx-pr-5\"\n                  [appTooltip]=\"item[config?.parentKey] | within: list\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{ item[config?.parentKey] | within: list }}\n                </div>\n              </div>\n            </app-cs-checkbox>\n          </li>\n        </ul>\n      </div>\n      <app-no-data\n        *ngIf=\"!filteredList?.length\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"\n          config?.noDataText?.length > 0\n            ? config?.noDataText\n            : 'No data to display'\n        \"\n      ></app-no-data>\n    </ng-container>\n    <!-- It is visible when the list items are getting loaded -->\n    <app-listline-loader *ngIf=\"loading\"></app-listline-loader>\n\n    <app-floating-bar\n      [selectedData]=\"selectedList\"\n      [displayElementKey]=\"config?.displayKey\"\n      [singularText]=\"config?.entitySingular\"\n      [pluralText]=\"\n        config?.entityPlural ? config?.entityPlural : 'Users selected'\n      \"\n      (closeEvent)=\"save()\"\n      (closeList)=\"close()\"\n      (deleteEvent)=\"deleteItem($event)\"\n      [isDisabled]=\"selectedList.length === 0 || list?.length === 0\"\n    >\n    </app-floating-bar>\n  </div>\n</div>\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\nimport { ASSETS } from '../../../constants/assets.constants';\nimport {\n  ACTION_CODE,\n  FIELD_SELECTOR,\n  REPORT_CASE,\n  SELECTOR_CONFIG,\n  SelectionPopupState,\n  SelectionState,\n} from '../../constants/report-case.constants';\nimport { report } from '../case-type-slider/case-type.component';\nimport { ReportACaseService } from '../../services/report-a-case.service';\nimport { EditorConfig } from '@vcomply/editor';\n\n@Component({\n  selector: 'app-case-category',\n  template: `\n\n    <app-field-holder\n      [image]=\"ASSETS.case_category\"\n      [disabled]=\"fieldSelector?.includes(fieldSelected)\"\n      [active]=\"categoryClicked\"\n      [checked]=\"payload?.category?.ids?.length\"\n    >\n      <ng-container field>\n        <app-form-selectBox\n          [config]=\"config\"\n          [state]=\"state\"\n          [popupState]=\"SelectionPopupState.SELECTION_DIALOG\"\n          [chipItems]=\"selectedItems\"\n          [editDisabled]=\"categoryEditDisable\"\n          [removable]=\"!categoryEditDisable\"\n          (fieldClicked)=\"activateSelector($event)\"\n          (selectedItemListChange)=\"setCategoryList($event)\"\n        >\n          <app-vc-label\n            label\n            [labelText]=\"categoryTexts.case_details.category.title\"\n          ></app-vc-label>\n        </app-form-selectBox>\n        <div\n          class=\"vx-form-group\"\n          *ngFor=\"let tag of payload?.category?.custom_fields\"\n        >\n          <label class=\"vx-control-panel\">{{ tag?.name }}</label>\n          <vcomply-editor\n            [(ngModel)]=\"tag.value\"\n            [editorConfig]=\"customField\"\n            [editorConfig]=\"(i | getEditorConfig: 'category') ?? customField\"\n          ></vcomply-editor>\n        </div>\n      </ng-container>\n    </app-field-holder>\n    <app-field-holder\n      *ngIf=\"caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW\"\n      [disabled]=\"fieldSelected === 'RC'\"\n      [active]=\"categoryClicked\"\n    >\n      <ng-container field>\n        <app-form-selectBox\n          [config]=\"config\"\n          [state]=\"additionalCategoryState\"\n          [popupState]=\"SelectionPopupState.SELECTION_DIALOG\"\n          [chipItems]=\"selectedAdditionalItems\"\n          (fieldClicked)=\"activateAdditionalCategorySelector($event)\"\n          (selectedItemListChange)=\"setAdditionalCategoryList($event)\"\n        >\n          <app-vc-label\n            label\n            [labelText]=\"categoryTexts.case_details.additional_category.title\"\n          ></app-vc-label>\n        </app-form-selectBox>\n        <div\n          class=\"vx-form-group\"\n          *ngFor=\"let tag of payload?.additional_category?.custom_fields; let i = index; trackBy: trackByIndex\"\n        >\n          <label class=\"vx-control-panel\">{{ tag?.name }}</label>\n          <vcomply-editor\n            [ngModel]=\"tag?.value || ''\"\n            (ngModelChange)=\"updateCustomField($event, i)\"\n            [editorConfig]=\"(i | getEditorConfig: 'additionalCategory') ?? customField\"\n          ></vcomply-editor>\n        </div>\n      </ng-container>\n    </app-field-holder>\n    <app-category-list-selection\n      *ngIf=\"categoryClicked\"\n      [categoryList]=\"caseCategoryList\"\n      [config]=\"config\"\n      [loading]=\"categoryListLoader\"\n      [selectedList]=\"selectedCategoryList\"\n      [selectionMode]=\"\n        caseTypeSelected === caseType.REPORT_CASE ? 'multiple' : 'single'\n      \"\n      (cancel)=\"activateSelector(false)\"\n      (next)=\"saveSelectedCategoryList($event)\"\n    ></app-category-list-selection> \n    <app-category-list-selection\n      *ngIf=\"additionalCategoryClicked\"\n      [categoryList]=\"\n        caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW &&\n        payload?.category?.ids?.length\n          ? filteredCaseCategoryList\n          : caseCategoryList\n      \"\n      [config]=\"config\"\n      [loading]=\"categoryListLoader\"\n      [selectedList]=\"selectedAdditionalCategoryList\"\n      (cancel)=\"activateAdditionalCategorySelector(false)\"\n      (next)=\"saveSelectedAdditionalCategoryList($event)\"\n    ></app-category-list-selection>\n  `,\n  styleUrls: ['../../../forms.less'],\n})\nexport class CaseCategoryComponent implements OnInit, OnChanges {\n  ASSETS = ASSETS;\n  categoryTexts = REPORT_CASE;\n  caseCategoryList: any[] = [];\n  config: any = {\n    ...SELECTOR_CONFIG.CASE_CATEGORY,\n    placeholder: this.categoryTexts.case_details.category.placeholder,\n  };\n  categoryClicked: boolean = false;\n  additionalCategoryClicked: boolean = false;\n  categoryListLoader: boolean = false;\n  SelectionState = SelectionState;\n  SelectionPopupState = SelectionPopupState;\n  state: string = SelectionState.EMPTY;\n  additionalCategoryState: string = SelectionState.EMPTY;\n  selectedItems: any[] = [];\n  selectedAdditionalItems: any[] = [];\n  selectedCategoryList: any[] = [];\n  selectedAdditionalCategoryList: any[] = [];\n  initialCategory: any;\n  caseType = report;\n  fieldSelector = FIELD_SELECTOR;\n  customField: EditorConfig = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Add value',\n    id: 'customField'\n  };\n  initialAdditionalCategory: any;\n  filteredCaseCategoryList: any[] = [];\n\n  @Input() payload: any = {};\n  @Input() fieldSelected: string = '';\n  @Input() caseTypeSelected: any;\n  @Input() set initialSelection(value: any) {\n    this.initialCategory = value?.ids;\n\n  }\n  @Input() set initialAdditionalSelection(value: any) {\n    this.initialAdditionalCategory = value?.ids;\n  }\n  @Input() mode: string = '';\n  @Input() workflowType: string = '';\n\n  @Output() onCategoryChange = new EventEmitter<any>();\n  @Output() fieldClicked = new EventEmitter<any>();\n  @Output() filterDeselector = new EventEmitter<any>();\n\n  constructor(private caseService: ReportACaseService) { }\n\n  ngOnInit() {\n    this.getAllCategories();\n  }\n\n  trackByIndex(index: number) {\n    return index;\n  }\n\n  updateCustomField(value: any, index: number) {\n    if (this.payload?.additional_category?.custom_fields) {\n      this.payload.additional_category.custom_fields[index].value = value;\n      this.payload.additional_category.custom_fields = [...this.payload.additional_category.custom_fields];\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['payload']) {\n      if (!this.payload?.category?.ids?.length) {\n        this.state = SelectionState.EMPTY;\n        this.additionalCategoryState = SelectionState.EMPTY;\n        this.selectedItems = [];\n        this.selectedCategoryList = [];\n        this.selectedAdditionalItems = [];\n        this.selectedAdditionalCategoryList = [];\n      } else {\n        this.updateFilteredCategoryList();\n\n      }\n      this.populateInitialCategory();\n    }\n    if (changes['initialSelection'] || changes['initialAdditionalSelection']) {\n      this.populateInitialCategory();\n    }\n  }\n\n  getAllCategories() {\n    this.categoryListLoader = true;\n    this.caseService.getAllCategories().subscribe((res: any) => {\n      this.caseCategoryList = res?.data;\n      if (this.mode === 'EDIT') {\n        this.populateInitialCategory();\n        this.updateFilteredCategoryList();\n      }\n      this.categoryListLoader = false;\n    });\n  }\n\n  populateInitialCategory() {\n    if (this.isACTWWorkflow()) {\n      this.updateACTWCategory();\n      return;\n    }\n\n    if (this.isRACWorkflow()) {\n      this.updateRACCategory();\n      return;\n    }\n\n    this.handleDefaultCase();\n  }\n\n  private isACTWWorkflow(): boolean {\n    return (\n      (this.initialCategory?.length || this.initialAdditionalCategory?.length) &&\n      this.workflowType === 'ACTW'\n    );\n  }\n\n  private isRACWorkflow(): boolean {\n    return (this.initialCategory?.length || this.initialAdditionalCategory?.length) && this.workflowType === 'RAC';\n  }\n\n  private handleDefaultCase(): void {\n    const isEditModeWithRestrictions =\n      this.mode === 'EDIT' &&\n      this.workflowType !== 'ACTW' &&\n      this.caseTypeSelected === this.caseType.ADD_CASE_TO_WORKFLOW;\n\n    this.state = isEditModeWithRestrictions\n      ? SelectionState.DISABLED\n      : SelectionState.EMPTY;\n\n    if (isEditModeWithRestrictions) {\n      this.config.disabledText = this.categoryTexts.case_details.category.placeholder;\n    }\n\n  }\n\n  updateRACCategory() {\n    if (this.initialCategory?.length) {\n      this.state = SelectionState.SELECTED;\n      this.selectedCategoryList = this.caseCategoryList?.filter(\n        (category: any) =>\n          this.initialCategory?.some((id: any) => id === category?._id)\n      );\n      this.selectedItems = this.caseCategoryList\n        .filter((category: any) =>\n          this.initialCategory?.some((id: any) => id === category?._id)\n        )\n        .map((category: any) => ({\n          label: category?.name,\n          value: category?._id,\n        }));\n    }\n    if (this.initialAdditionalCategory?.length) {\n\n      this.selectedAdditionalCategoryList = this.caseCategoryList?.filter(\n        (category: any) =>\n          this.initialAdditionalCategory?.some(\n            (id: any) => id === category?._id\n          ) || this.initialAdditionalCategory?.includes(category?._id)\n      );\n      this.selectedAdditionalItems = this.selectedAdditionalCategoryList\n        .map((category: any) => ({\n          label: category?.name,\n          value: category?._id,\n        }));\n      this.additionalCategoryState = SelectionState.SELECTED;\n\n      if (!this.initialCategory?.length) {\n        this.handleDefaultCase();\n\n      }\n    }\n  }\n\n  updateACTWCategory() {\n    this.additionalCategoryState = SelectionState.SELECTED;\n    this.selectedAdditionalCategoryList = this.caseCategoryList?.filter(\n      (category: any) =>\n        this.initialCategory.some((id: any) => id === category?._id) || this.initialAdditionalCategory.includes(category?._id)\n    );\n    this.selectedAdditionalItems = this.selectedAdditionalCategoryList.map((category: any) => ({\n      label: category?.name,\n      value: category?._id,\n    }));\n  }\n\n  saveSelectedCategoryList(event: any) {\n    this.categoryClicked = false;\n    this.setSelectedCategoryList(event);\n    this.selectedItems = this.caseCategoryList\n      .filter((category: any) =>\n        event.some((eventItem: any) => eventItem?._id === category?._id)\n      )\n      .map((category: any) => ({\n        label: category?.name,\n        value: category?._id,\n      }));\n    this.payload.category.ids = event.map((item: any) => item?._id);\n    this.updateFilteredCategoryList();\n    this.payload.category.custom_fields = event.flatMap(\n      (item: any) => item?.custom_fields\n    );\n    this.onCategoryChange.emit(this.payload.category.ids);\n    this.state = SelectionState.SELECTED;\n    this.fieldClicked.emit('');\n    this.filterDeselector.emit(false);\n  }\n\n  updateFilteredCategoryList(): void {\n    if (this.caseTypeSelected === this.caseType.ADD_CASE_TO_WORKFLOW) {\n      this.filteredCaseCategoryList = this.caseCategoryList.filter(\n        (category: any) => !this.payload.category.ids.includes(category._id)\n      );\n    }\n  }\n\n  saveSelectedAdditionalCategoryList(event: any) {\n    this.additionalCategoryClicked = false;\n    this.setSelectedAdditionalCategoryList(event);\n    this.selectedAdditionalItems = this.caseCategoryList\n      .filter((category: any) =>\n        event.some((eventItem: any) => eventItem?._id === category?._id)\n      )\n      .map((category: any) => ({\n        label: category?.name,\n        value: category?._id,\n      }));\n    if (!this.payload['additional_category']) {\n      this.payload['additional_category'] = {};\n    }\n    this.payload['additional_category']['ids'] = event.map((item: any) => item?._id);\n    this.payload['additional_category']['custom_fields'] = event.flatMap(\n      (item: any) => item?.custom_fields\n    );\n    this.additionalCategoryState = SelectionState.SELECTED;\n    this.fieldClicked.emit('');\n    this.filterDeselector.emit(false);\n  }\n\n  setSelectedAdditionalCategoryList(event: any[]) {\n    this.selectedAdditionalCategoryList = this.caseCategoryList.filter(\n      (category: any) =>\n        event.some((eventItem: any) => eventItem?._id === category?._id)\n    );\n  }\n\n  setSelectedCategoryList(event: any[]) {\n    this.selectedCategoryList = this.caseCategoryList.filter((category: any) =>\n      event.some((eventItem: any) => eventItem?._id === category?._id)\n    );\n  }\n\n  activateSelector(active: boolean) {\n    this.categoryClicked = active;\n    if (active) {\n      this.fieldClicked.emit('category');\n      this.filterDeselector.emit(true);\n    } else {\n      this.fieldClicked.emit('');\n      this.filterDeselector.emit(false);\n    }\n  }\n\n  activateAdditionalCategorySelector(active: boolean) {\n    this.additionalCategoryClicked = active;\n    if (active) {\n      this.fieldClicked.emit('additionalCategory');\n      this.filterDeselector.emit(true);\n    } else {\n      this.fieldClicked.emit('');\n      this.filterDeselector.emit(false);\n    }\n  }\n\n  setCategoryList(event: any) {\n    if (!event?.length) {\n      this.resetCategoryList();\n      return;\n    }\n    this.selectedCategoryList = this.caseCategoryList.filter((category: any) =>\n      event.some((eventItem: any) => eventItem?.value === category?._id)\n    );\n    this.payload.category.ids = this.selectedCategoryList?.map(\n      (category: any) => category?._id\n    );\n    this.onCategoryChange.emit(this.payload.category.ids);\n  }\n\n  setAdditionalCategoryList(event: any[]) {\n    if (!event?.length) {\n      this.resetAdditionalCategoryList();\n      return;\n    }\n    this.selectedAdditionalCategoryList = this.caseCategoryList.filter(\n      (category: any) =>\n        event.some((eventItem: any) => eventItem?.value === category?._id)\n    );\n    this.payload.additional_category.ids =\n      this.selectedAdditionalCategoryList?.map(\n        (category: any) => category?._id\n      );\n  }\n\n  get categoryEditDisable() {\n    return (\n      this.mode === 'EDIT' &&\n      this.caseTypeSelected === this.caseType.ADD_CASE_TO_WORKFLOW &&\n      this.workflowType !== 'ACTW'\n    );\n  }\n\n  resetCategoryList() {\n    this.selectedCategoryList = [];\n    this.payload.category.ids = [];\n    this.state = SelectionState.EMPTY;\n    this.filteredCaseCategoryList = [...this.caseCategoryList];\n  }\n\n  resetAdditionalCategoryList() {\n    this.selectedAdditionalCategoryList = [];\n    this.payload.additional_category.ids = [];\n    this.additionalCategoryState = SelectionState.EMPTY;\n  }\n}\n","export const DEFAULT_TIME: string = '11:30 PM';\nexport const DEFAULT_24HR: string = '23:30:00';\n","export const API = {\n  subscriptionList: `subscriptionList`,\n  goToPolicyWorkroom: `/all/policy/workroom?id=`,\n  editPolicy: `/all/policy/edit-policy?id=`,\n  responsibilityList: `sailsResponsibilitiesList`,\n};\n\n\nexport const PROGRAM_LIST_API = {\n  programList: 'sailsProgramList',\n  categoryList: 'sailsProgramCategories',\n};\n","export const MONTH_NAMES = [\n  { value: 1, month: 'Jan' },\n  { value: 2, month: 'Feb' },\n  { value: 3, month: 'Mar' },\n  { value: 4, month: 'Apr' },\n  { value: 5, month: 'May' },\n  { value: 6, month: 'Jun' },\n  { value: 7, month: 'Jul' },\n  { value: 8, month: 'Aug' },\n  { value: 9, month: 'Sep' },\n];","export const NO_DATA_FOUND_IMAGE = 'No results matched your search criteria.';\n\nexport const PAGINATION_LIMIT = 30;\nexport const ONGOING_FREQUENCY = 'Ongoing responsibilities don’t follow a set schedule—they’re triggered by specific events. When you select this frequency, no due dates are generated automatically. You can add due dates manually as the event occurs, giving you full control over timing.'","import { Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport {  retry } from 'rxjs/operators';\nimport { Configurations } from '../../configurations';\nimport { AuthService } from '../../workflow-services/auth.service';\nimport moment from 'moment/moment';\nimport { DEFAULT_TIME } from '../../constants/time.constants';\nimport { FrequencyObject } from '../../interfaces/frequency.interface';\nimport { API } from '../../constants/api.constants';\nimport { GrcService } from '../../workflow/shared/services/grc.service';\nimport dayjs from 'dayjs';\nimport { MONTH_NAMES } from './frequency.constant';\nimport { PAGINATION_LIMIT } from '../../constants/common.constants';\n@Injectable({\n  providedIn: 'root',\n})\nexport class FrequencyService {\n  public monthArray: Array<string> = [\n    'January',\n    'February',\n    'March',\n    'April',\n    'May',\n    'June',\n    'July',\n    'August',\n    'September',\n    'October',\n    'November',\n    'December',\n  ];\n\n  public dayName: Array<string> = [\n    'Monday',\n    'Tuesday',\n    'Wednesday',\n    'Thursday',\n    'Friday',\n    'Saturday',\n    'Sunday',\n  ]; // full day name\n\n  public quarterlyMonth: Array<string> = [\n    'January, April, July, October',\n    'February, May, August, November',\n    'March, June, September, December',\n  ];\n\n  public dateConfig = {\n    format: 'DD MM YYYY',\n    showGoToCurrent: false,\n  };\n\n  public frequencyInfo = {\n    placeholder: '',\n    pattern: '',\n    case: '',\n    failedAfter: 0,\n    window: 0,\n    timeIn12hr: '',\n    timeIn24Hr: '',\n    lifecycleDetails: '0000-00-00~~0',\n    startFrom: Math.floor(Date.now() / 1000),\n    reportId: 0,\n    failed_time_utc: Math.floor(Date.now() / 1000),\n    continuous_failed_days: 0,\n    dateOfModified: 0,\n    startDate: '',\n  };\n\n  public frequencyDetails: object = {\n    pattern: '',\n    notificationPending: 0,\n    dateOfModified: 0,\n    deactivationValue: 0,\n    selectedReport: 0,\n    lifecycle: '0000-00-00~~0',\n    startDate: Math.floor(new Date().getTime() / 1000),\n    startOnTheDay: Math.floor(new Date().getTime() / 1000),\n    window: 0,\n    failed: 0,\n    time: DEFAULT_TIME,\n  };\n\n  private env!: any;\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    private grcService: GrcService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  timeFrom12hTo24h(value: string) {\n    if (value != undefined) {\n      const time_arr = value.split(' ');\n      const meridian = time_arr[1];\n      const hr_min = time_arr[0].split(':').map(Number);\n      const hr = hr_min[0];\n      const min = hr_min[1] ? hr_min[1] : '00';\n      let return_time = '';\n\n      if (meridian?.toLowerCase() == 'pm') {\n        if (hr == 12) {\n          return_time = 12 + ':' + min + ':00';\n        } else if (hr < 12) {\n          return_time = +hr + 12 + ':' + min + ':00';\n        }\n      } else {\n        if (hr == 12) {\n          return_time = '00:' + min + ':00';\n        } else if (hr < 12) {\n          return_time = hr + ':' + min + ':00';\n        }\n      }\n\n      return return_time;\n    } else {\n      return '';\n    }\n  }\n\n  timeIn12(value: any) {\n    if (value != undefined) {\n      let hr;\n      let min;\n      let meridian;\n      if (value.split(':')[0] >= 12) {\n        hr = value.split(':')[0] === '12' ? 12 : value.split(':')[0] - 12;\n        min = value.split(':')[1];\n        if (min.length < 2) {\n          min = '0' + min;\n        }\n        meridian = 'pm';\n      } else {\n        hr = value.split(':')[0] == '00' ? 12 : value.split(':')[0];\n        min = value.split(':')[1];\n        if (min.length < 2) {\n          min = '0' + min;\n        }\n        meridian = 'am';\n      }\n      return hr + ':' + min + ' ' + meridian;\n    } else {\n      return '';\n    }\n  }\n\n  frameworkStartDate(row: any) {\n    let calculatedDay: number = 0;\n    const startDate = new Date(parseInt(row.start_date) * 1000).getDay();\n    const getDate = new Date(parseInt(row.start_date) * 1000).getDate();\n    const currentDate = new Date().getDay();\n    const startMonth = new Date(parseInt(row.start_date) * 1000).getMonth();\n\n    if (\n      parseInt(row.start_date) < Date.now() / 1000 &&\n      (row.frequency_template === 'every week' ||\n        row.frequency_template === 'every 2 weeks' ||\n        row.frequency_template === 'every 3 weeks')\n    ) {\n      let daysToBeAdded = 0;\n      for (let i = 0; i < 7; i++) {\n        if ((currentDate + i) % 7 === startDate) {\n          daysToBeAdded = i;\n          break;\n        }\n      }\n      const timestampToBeAdded = daysToBeAdded * 24 * 60 * 60 * 1000;\n      calculatedDay = new Date(\n        new Date().getTime() + timestampToBeAdded\n      ).getTime();\n    } else if (\n      parseInt(row.start_date) < Date.now() / 1000 &&\n      !(\n        row.frequency_template === 'every week' ||\n        row.frequency_template === 'every 2 weeks' ||\n        row.frequency_template === 'every 3 weeks'\n      ) &&\n      row.frequency_template !== 'every day'\n    ) {\n      const momentUnix = moment(\n        getDate +\n          '-' +\n          (new Date().getMonth() + 1) +\n          '-' +\n          new Date().getFullYear() +\n          ' 00:00',\n        'DD-MM-YYYY HH:mm'\n      ).unix();\n      calculatedDay = momentUnix * 1000;\n    } else if (\n      row.frequency_template === 'every day' &&\n      parseInt(row.start_date) < Date.now() / 1000\n    ) {\n      calculatedDay = Date.now();\n    } else {\n      calculatedDay = parseInt(row.start_date) * 1000;\n    }\n    return calculatedDay / 1000;\n  }\n\n  frameworkFrequency(frequency: any, start_date: any) {\n    try {\n      const startDate = new Date(start_date * 1000);\n      const firstHalfMonth = ['1', '2', '3', '4', '5', '6'];\n      const secondHalfMonth = ['7', '8', '9', '10', '11', '12'];\n      const getDayData = startDate.getDay() === 0 ? 7 : startDate.getDay();\n      const month = startDate.getMonth();\n      let quarterPattern = '~1,4,7,10~0';\n      switch (month) {\n        case 0:\n        case 3:\n        case 6:\n        case 9:\n          quarterPattern = '~1,4,7,10~0';\n          break;\n        case 1:\n        case 4:\n        case 7:\n        case 10:\n          quarterPattern = '~2,5,8,11~0';\n          break;\n        case 2:\n        case 5:\n        case 8:\n        case 11:\n          quarterPattern = '~3,6,9,12~0';\n          break;\n      }\n      // ];\n      let frequency_pattern;\n\n      frequency = frequency.toLowerCase();\n      let continuous_failed_days = 0;\n      // @ => day (1 to 7)\n      // # => month (1 to 12)\n      // ? => month % 2 == 0 ? \"2,4,6,8,10,12\" : \"1,3,5,7,9,11\"\n\n      if (frequency === 'every week') {\n        frequency_pattern = '2~' + getDayData + '~0~1';\n        continuous_failed_days = 10;\n      } else if (frequency === 'one time') {\n        frequency_pattern =\n          '0~' +\n          startDate.getFullYear() +\n          '~' +\n          (startDate.getMonth() + 1) +\n          '~' +\n          startDate.getDate();\n      } else if (frequency === 'every day') {\n        frequency_pattern = '1~0~0~1';\n        continuous_failed_days = 15;\n      } else if (frequency === 'every alternate day') {\n        frequency_pattern = '1~0~0~2';\n        continuous_failed_days = 15;\n      } else if (frequency === 'every 10 days') {\n        frequency_pattern = '1~0~0~10';\n        continuous_failed_days = 15;\n      } else if (frequency === 'every 2 weeks') {\n        frequency_pattern = '2~' + getDayData + '~0~2';\n        continuous_failed_days = 10;\n      } else if (frequency === 'every fortnight') {\n        frequency_pattern = '1~' + getDayData + '~0~14';\n        continuous_failed_days = 15;\n      } else if (frequency === 'every 3 weeks') {\n        frequency_pattern = '2~' + getDayData + '~0~3';\n        continuous_failed_days = 10;\n      } else if (frequency === 'every month') {\n        frequency_pattern =\n          '3~' + startDate.getDate() + '~1,2,3,4,5,6,7,8,9,10,11,12~0';\n        continuous_failed_days = 10;\n      } else if (frequency === 'every 45 days') {\n        frequency_pattern = '1~0~0~45';\n        continuous_failed_days = 15;\n      } else if (frequency === 'every alternate month') {\n        frequency_pattern =\n          '3~' +\n          startDate.getDate() +\n          '~' +\n          ((startDate.getMonth() + 1) % 2 == 0\n            ? '2,4,6,8,10,12'\n            : '1,3,5,7,9,11') +\n          '~0';\n        continuous_failed_days = 10;\n      } else if (frequency === 'every quarter') {\n        frequency_pattern = '7~' + startDate.getDate() + quarterPattern;\n      } else if (frequency === 'every 120 days') {\n        frequency_pattern = '1~0~0~120';\n      } else if (frequency === 'half yearly') {\n        const index1 = firstHalfMonth.indexOf(\n          (startDate.getMonth() + 1).toString()\n        );\n        const index2 = secondHalfMonth.indexOf(\n          (startDate.getMonth() + 1).toString()\n        );\n        const pattern =\n          index1 > -1\n            ? '~' +\n              firstHalfMonth[index1] +\n              ',' +\n              secondHalfMonth[index1] +\n              '~0'\n            : '~' +\n              firstHalfMonth[index2] +\n              ',' +\n              secondHalfMonth[index2] +\n              '~0';\n        frequency_pattern = '3~' + startDate.getDate() + pattern;\n        continuous_failed_days = 10;\n      } else if (frequency === 'yearly') {\n        frequency_pattern =\n          '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~1';\n      } else if (frequency === 'every 2 years') {\n        frequency_pattern =\n          '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~2';\n      } else if (frequency === 'every 3 years') {\n        frequency_pattern =\n          '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~3';\n      } else if (frequency === 'every 4 years') {\n        frequency_pattern =\n          '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~4';\n      } else if (frequency === 'every 5 years') {\n        frequency_pattern =\n          '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~5';\n      } else if (frequency === 'every 10 years') {\n        frequency_pattern =\n          '4~' + startDate.getDate() + '~' + (startDate.getMonth() + 1) + '~10';\n      } else if (frequency === 'to be decided later') {\n        frequency_pattern = '';\n      } else {\n        frequency_pattern = '';\n      }\n      // this.editData.frequency_details = frequency_pattern;\n\n      return { frequency_pattern, continuous_failed_days };\n    } catch (e) {\n      console.error(e);\n      return { frequency_pattern: '', continuous_failed_days: 0 };\n    }\n  }\n\n  shortHand_freqCal(frequency: any, day: any, month: any, year?: any) {\n    const monthNames = MONTH_NAMES;\n    let frequency_details;\n    let continuous_failed_days = 0;\n    const date_value = new Date();\n\n    date_value.setMonth(\n      typeof month !== 'number'\n        ? monthNames.filter((x) => x.month === month?.substring(0, 3))[0]\n            ?.value - 1\n        : month\n    );\n    if (!year) {\n      date_value.setFullYear(20 + month.split(\"'\")[1]);\n    } else {\n      date_value.setFullYear(year);\n    }\n    date_value.setDate(day);\n    let quarterPattern = '~1,4,7,10~0';\n    const firstHalfMonth = ['1', '2', '3', '4', '5', '6'];\n    const secondHalfMonth = ['7', '8', '9', '10', '11', '12'];\n    frequency = frequency.toLowerCase();\n\n    switch (date_value.getMonth()) {\n      case 0:\n      case 3:\n      case 6:\n      case 9:\n        quarterPattern = '~1,4,7,10~0';\n        break;\n      case 1:\n      case 4:\n      case 7:\n      case 10:\n        quarterPattern = '~2,5,8,11~0';\n        break;\n      case 2:\n      case 5:\n      case 8:\n      case 11:\n        quarterPattern = '~3,6,9,12~0';\n        break;\n    }\n    const getDay = date_value.getDay() === 0 ? 7 : date_value.getDay();\n    switch (frequency) {\n      case 'every week':\n        frequency_details = '2~' + getDay + '~0~1';\n        continuous_failed_days = 10;\n        break;\n      case 'one time':\n        frequency_details =\n          '0~' +\n          '' +\n          date_value.getFullYear() +\n          '~' +\n          (date_value.getMonth() + 1) +\n          '~' +\n          date_value.getDate();\n        break;\n      case 'every day':\n        frequency_details = '1~0~0~1';\n        continuous_failed_days = 15;\n        break;\n      case 'every alternate day':\n        frequency_details = '1~0~0~2';\n        continuous_failed_days = 15;\n        break;\n      case 'every 10 days':\n        frequency_details = '1~0~0~10';\n        continuous_failed_days = 15;\n        break;\n      case 'every 2 weeks':\n        frequency_details = '2~' + getDay + '~0~2';\n        continuous_failed_days = 10;\n        break;\n      case 'every fortnight':\n        frequency_details = '1~' + getDay + '~0~14';\n        continuous_failed_days = 15;\n        break;\n      case 'every 3 weeks':\n        frequency_details = '2~' + getDay + '~0~3';\n        continuous_failed_days = 10;\n        break;\n      case 'every month':\n        frequency_details =\n          '3~' + date_value.getDate() + '~1,2,3,4,5,6,7,8,9,10,11,12~0';\n        continuous_failed_days = 10;\n        break;\n      case 'every 45 days':\n        frequency_details = '1~0~0~45';\n        continuous_failed_days = 15;\n        break;\n      case 'every alternate month':\n        frequency_details =\n          '3~' +\n          date_value.getDate() +\n          '~' +\n          ((date_value.getMonth() + 1) % 2 === 0\n            ? '2,4,6,8,10,12'\n            : '1,3,5,7,9,11') +\n          '~0';\n        continuous_failed_days = 10;\n        break;\n      case 'every quarter':\n        frequency_details = '7~' + date_value.getDate() + quarterPattern;\n        break;\n      case 'every 120 days':\n        frequency_details = '1~0~0~120';\n        continuous_failed_days = 15;\n        break;\n      case 'half yearly':\n        const index1 = firstHalfMonth.indexOf(\n          (date_value.getMonth() + 1).toString()\n        );\n        const index2 = secondHalfMonth.indexOf(\n          (date_value.getMonth() + 1).toString()\n        );\n        const pattern =\n          index1 > -1\n            ? '~' +\n              firstHalfMonth[index1] +\n              ',' +\n              secondHalfMonth[index1] +\n              '~0'\n            : '~' +\n              firstHalfMonth[index2] +\n              ',' +\n              secondHalfMonth[index2] +\n              '~0';\n        frequency_details = '3~' + date_value.getDate() + pattern;\n        break;\n      case 'annual':\n      case 'yearly':\n        frequency_details =\n          '4~' +\n          date_value.getDate() +\n          '~' +\n          (date_value.getMonth() + 1) +\n          '~1';\n        break;\n      case 'every 2 years':\n        frequency_details =\n          '4~' +\n          date_value.getDate() +\n          '~' +\n          (date_value.getMonth() + 1) +\n          '~2';\n        break;\n      case 'every 3 years':\n        frequency_details =\n          '4~' +\n          date_value.getDate() +\n          '~' +\n          (date_value.getMonth() + 1) +\n          '~3';\n        break;\n      case 'every 4 years':\n        frequency_details =\n          '4~' +\n          date_value.getDate() +\n          '~' +\n          (date_value.getMonth() + 1) +\n          '~4';\n        break;\n      case 'every 5 years':\n        frequency_details =\n          '4~' +\n          date_value.getDate() +\n          '~' +\n          (date_value.getMonth() + 1) +\n          '~5';\n        break;\n      case 'every 10 years':\n        frequency_details =\n          '4~' +\n          date_value.getDate() +\n          '~' +\n          (date_value.getMonth() + 1) +\n          '~10';\n        break;\n      case 'ongoing':\n        frequency_details = '10~0~0~0';\n        break;\n      case 'to be decided later':\n      default:\n        frequency_details = '5~0~0~0';\n    }\n    return {\n      pattern: frequency_details,\n      continuous_failed_days: continuous_failed_days,\n    };\n  }\n\n  getOnCompletionOfResponsibility() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.complianceGet + 'reports/onCompletionOfReports', {\n        headers,\n      })\n      .pipe(retry(2));\n  }\n\n  changeTimeZone(date: any) {\n    if (typeof date === 'number') {\n      date = new Date(date);\n    }\n    const invDate = new Date(\n      date.toLocaleString('en-US', {\n        timeZone: this.authService?.userDetails?.timezone,\n      })\n    );\n    return invDate;\n  }\n\n  getResponsibilityList(payload: any) {\n    const limit = PAGINATION_LIMIT;\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken(),\n    )\n    return this.http\n      .get<any>(\n        `${this.env.complianceGet}sailsResponsibilitiesList&page=${payload?.pageNo}&limit=${limit}${payload?.searchTerm ? `&searchTerm=${payload?.searchTerm}` : ''}&bizCycleRequired=0&include=assignees&group=all`,\n        { headers }\n      )\n      .pipe(retry(1));\n  }\n\n  getResponsibilitiesCount(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<any>(\n        this.env.responsibilityPost + 'manage_responsibilities_reports_count',\n        payload,\n        { headers }\n      )\n      .pipe(retry(1));\n  }\n\n  getAllResponsibilities(pageNo: number, payload: any) {\n    const businessCycle = this.grcService.getBusinessCycle();\n    const formattedCycle = businessCycle.selected_cycle\n      ? dayjs(businessCycle.selected_cycle.split('-')[0]).format('YYYY-MM-DD') + \n        ':' + \n        dayjs(businessCycle.selected_cycle.split('-')[1]).format('YYYY-MM-DD')\n      : '';\n    \n    const headers = new HttpHeaders()\n      .set('token', this.authService.getAuthorizationToken())\n      .set('biz_cycle', formattedCycle);\n    return this.http.get<any[]>(\n      this.env.complianceGet + API.responsibilityList + `&page=${pageNo}&limit=${PAGINATION_LIMIT}${payload?.searchTerm ? `&searchTerm=${payload?.searchTerm}` : ''}` ,\n      { headers }\n    );\n  }\n\n  formatDate() {\n    const currentDate = new Date();\n    const day = String(currentDate?.getDate()).padStart(2, '0');\n    const month = String(currentDate?.getMonth() + 1).padStart(2, '0');\n    const year = currentDate?.getFullYear();\n    const formattedDate = `${day}-${month}-${year}`;\n    return formattedDate;\n  }\n  \n  /**\n   * Converts a frequency configuration object into a standardized FrequencyObject format.\n   * \n   * @param frequency - The input frequency configuration object with the following properties:\n   * - case: The type of frequency ('one_time' | 'daily' | 'weekly' | 'monthly' | 'quarterly' | 'semester' | 'yearly' | 'random' | 'ongoing' | 'on_completion_of' | 'biannually')\n   * - window: Number of days before the task can be started\n   * - failedAfter: Number of days after which the task is considered failed\n   * - continuous_failed_days: Number of days after which the task is auto-deactivated\n   * - day: The day of occurrence\n   * - timeIn24Hr: Time in 24-hour format\n   * - every: Frequency interval\n   * - selectedDay: Array of selected days for weekly frequency (1-7 representing Monday-Sunday)\n   * - selectedMonth: Array of selected months (0-11 representing January-December)\n   * - startFrom: Unix timestamp for the start date\n   * - lifecycleDetails: String in format \"YYYY-MM-DD~~N\" where N is the number of occurrences\n   * - randomTypeSelected: Index for random frequency type (0: weekly, 1: monthly, 2: quarterly, 3: yearly)\n   * - randomInstances: Number of random occurrences\n   * - selectedType: Number of reminders for ongoing frequency\n   * - selectedOngoingType: Index for ongoing frequency type (1: week, 2: month, 3: quarter, 4: semester, 5: year)\n   * \n   * @returns A FrequencyObject with the following structure:\n   * - type: Frequency type\n   * - startBefore: Days before task can start\n   * - endAfter: Days after which task fails\n   * - autoDeactivate: Days after which task is deactivated\n   * - day: Day of occurrence\n   * - time: Time in 24-hour format\n   * - repeatOptions: {\n   *     every: number,\n   *     repeatOn: string (binary representation of selected days/months),\n   *     lifecycle: {\n   *       startFrom: string (YYYY-MM-DD),\n   *       endBy?: string (YYYY-MM-DD),\n   *       endAfter?: number\n   *     }\n   *   }\n   * - random?: { type: string, occurrence: number }\n   * - onComplete: {}\n   * - onGoing: { reminders: number, startOf: 'week' | 'month' | 'quarter' | 'semester' | 'year' }\n   * \n   * @example\n   * ```typescript\n   * const frequency = {\n   *   case: 'weekly',\n   *   window: 2,\n   *   failedAfter: 1,\n   *   continuous_failed_days: 3,\n   *   day: 1,\n   *   timeIn24Hr: '09:00:00',\n   *   every: 1,\n   *   selectedDay: [1, 3, 5], // Monday, Wednesday, Friday\n   *   startFrom: 1678900000,\n   *   lifecycleDetails: '2024-12-31~~10'\n   * };\n   * const result = setFrequencyObject(frequency);\n   * ```\n   */\n  setFrequencyObject(frequency: any): FrequencyObject | null {\n    console.log(frequency, \"frequency\");\n    const repeatOptions = this.repeatOptions(frequency);\n    const lifecycleDetails = frequency.lifecycleDetails.split('~~');\n    const frequencyObject: FrequencyObject = {\n      type: frequency.case,\n      startBefore: frequency.window,\n      endAfter: frequency.failedAfter,\n      autoDeactivate: frequency.continuous_failed_days,\n      day: frequency.day, \n      time: frequency.timeIn24Hr,\n      repeatOptions: {\n        every: frequency.every,\n        repeatOn: repeatOptions,\n        lifecycle: {\n          startFrom: moment(frequency.startFrom * 1000).format('YYYY-MM-DD'),\n          endBy:lifecycleDetails[0] !== '0000-00-00' ? moment(lifecycleDetails[0] , 'DD-MMMM-YYYY').format('YYYY-MM-DD') : undefined,\n          endAfter: \n                frequency.case === 'one_time'\n                    ? 1\n                    : lifecycleDetails[1] !== '0'\n                    ? parseInt(lifecycleDetails[1])\n                    : undefined,\n        }\n      },\n      random: this.getRandomFrequency(frequency),\n      onComplete: frequency.case === 'on_complete' ? frequency.onCompletion : {},\n      onGoing: this.getOngoing(frequency),\n    }  \n    return frequencyObject;\n  } \n\n  repeatOptions(frequency: any): string {\n   if(frequency?.selectedDay?.length > 0) {\n    const weekDays = [];\n     for(let i = 0; i < 7; i ++) {\n      if(frequency.selectedDay.includes(i + 1)) {\n        weekDays.push(1);\n      } else {\n        weekDays.push(0);\n      }\n     }\n     return weekDays.join('');\n   } else if(frequency?.selectedMonth?.length > 0) {\n    const months = [ ];\n    for(let i = 0; i < 12; i ++) {\n      if(frequency?.selectedMonth?.includes(i)) {\n        months.push(1);\n      } else {\n        months.push(0);\n      }\n   }\n   return months.join('');\n   } else {\n    return '';\n   }\n  }\n\n  getOngoing(frequency: any) {\n    return {\n      reminders: frequency?.selectedType,\n      startOf: frequency?.selectedType ?  ['week','month' ,'quarter' ,'semester' ,'year'][frequency?.selectedOngoingType - 1] : ''\n    }\n  }\n  getRandomFrequency(frequency: any) {\n    return {\n     type: ['weekly', 'monthly', 'quarterly', 'yearly'][frequency?.randomTypeSelected],\n     occurrence: frequency?.randomInstances\n    }\n  }\n\n  createFrequencyPattern(frequency: any) {\n    console.log(frequency, 'frequency');\n    let pattern = '';\n    let selectedDay = frequency.day\n    switch (frequency.type) {\n\n      case 'one_time':\n        let date_value = frequency.repeatOptions?.lifecycle?.startFrom?.split('-');\n\n        pattern =\n          '0~' +\n          '' +\n          date_value[0] +\n          '~' +\n          (date_value[1]) +\n          '~' +\n          date_value[2];\n        break;\n      case 'daily':\n        pattern = `1~0~0~${frequency.repeatOptions?.every}`;\n        break;\n      case 'weekly':\n        pattern = `2~${this.getDay(frequency.repeatOptions?.repeatOn)}~0~${frequency.repeatOptions?.every}`;\n        break;   \n      case 'monthly':\n        pattern =\n          `3~${selectedDay}~${this.getMonth(frequency.repeatOptions?.repeatOn)}~0`;\n        break;\n     \n      case 'quarterly':\n        pattern = `7~${selectedDay}~${this.getMonth(frequency.repeatOptions?.repeatOn)}~0`;\n        break;\n     \n     case 'semester':\n      pattern = `9~${selectedDay}~${this.getMonth(frequency.repeatOptions?.repeatOn)}~0`;\n      break;\n      case 'yearly':\n        pattern =\n          `4~${selectedDay}~${this.getMonth(frequency.repeatOptions?.repeatOn)}~1`;\n        break;\n      case 'ongoing':\n        const type = ['week', 'month', 'quarter', 'semester', 'year'];\n        const index = type.indexOf(frequency.onGoing?.startOf);\n        pattern = `10~${frequency.onGoing?.reminders}~${index}~0`;\n        break;\n      case 'random': \n        let randomType = ['weekly', 'monthly', 'quarterly', 'yearly'];\n        let randomIndex = randomType.indexOf(frequency.random.type);\n        pattern = `8~${randomIndex + 1}~${this.getMonth(frequency.repeatOptions?.repeatOn)}~${frequency.random.occurrence}`;\n        break;\n      case 'on_complete':\n        pattern = `6~0~0~${frequency.onComplete?.dueAfter}`;\n        break;\n      default:\n        pattern = `5~${frequency.random.occurrence}~0~0`;\n    }\n    return pattern;\n  }\n\n  getDay(repeatOptions: string) {\n    const day = repeatOptions.split('').map(Number);\n    const dayName = [];\n    for(let i = 0; i < 7; i ++) {\n      if(day[i] === 1) {\n        dayName.push(i + 1);\n      }\n    }\n    return dayName.join(',');\n  }\n\n  getMonth(repeatOptions: string) {\n      const month = repeatOptions.split('').map(Number);\n      const monthName = [];\n      for(let i = 0; i < 12; i ++) {\n        if(month[i] === 1) {\n          monthName.push(i + 1);\n        }\n      }\n      return monthName.join(',');\n  }\n    \n    getLifecyclePattern (frequency: any) {\n      let pattern = \"0000-00-00~~0\";\n      if(!frequency?.repeatOptions?.lifecycle?.endBy && !frequency?.repeatOptions?.lifecycle?.endAfter) {\n        return  {\n          startFrom: new Date(frequency?.repeatOptions?.lifecycle?.startFrom).getTime() / 1000,\n           pattern\n        }\n      } else if(frequency?.repeatOptions?.lifecycle?.endBy) {\n        return  {\n          startFrom: new Date(frequency?.repeatOptions?.lifecycle?.startFrom).getTime() / 1000,\n           pattern: this.formatDateString(frequency?.repeatOptions?.lifecycle?.endBy)\n        }\n      } else if(frequency?.repeatOptions?.lifecycle?.endAfter) {\n        return  {\n          startFrom: new Date(frequency?.repeatOptions?.lifecycle?.startFrom).getTime() / 1000,\n           pattern: \"0000-00-00~~\" + frequency?.repeatOptions?.lifecycle?.endAfter\n        }\n      }\n      return {\n        startFrom: new Date(frequency?.repeatOptions?.lifecycle?.startFrom).getTime() / 1000,\n        pattern: \"0000-00-00~~0\"\n      }\n    }\n\n    /**\n * Converts a date string in \"YYYY-MM-DD\" format to \"DD-Month-YYYY~~0\".\n * \n * @param {string} dateString - The input date string in \"YYYY-MM-DD\" format.\n * @returns {string} - The formatted date string in \"DD-Month-YYYY~~0\" format.\n * \n * @example\n * ```typescript\n * formatDateString(\"2025-03-27\"); // Returns \"27-March-2025~~0\"\n * ```\n */\n formatDateString(dateString: string): string {\n  const date = new Date(dateString);\n  \n  const day = date.getDate();\n  const year = date.getFullYear();\n  \n  const monthNames = [\n      \"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n      \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n  ];\n  const month = monthNames[date.getMonth()];\n\n  return `${day}-${month}-${year}~~0`;\n}\n\n/**\n * Retrieves the name of a month based on its numerical value.\n * \n * @param {number} month - The month number (1-12) where:\n *   1 = January\n *   2 = February\n *   ...\n *   12 = December\n * \n * @returns {string | undefined} The name of the month (e.g., \"JAN\", \"FEB\", etc.) or undefined if the month number is invalid\n * \n * @example\n * getMonthName(1)  // Returns: \"Jan\"\n * getMonthName(12) // Returns: \"Dec\"\n * getMonthName(13) // Returns: undefined\n */\npublic getMonthName(selectedMonth: number) {  \n  return MONTH_NAMES.find((month: any) => month.value === selectedMonth)?.month;\n}\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ASSETS } from '../../../constants/assets.constants';\nimport { NO_DATA_FOUND_IMAGE } from '../../../constants/common.constants';\n\n@Component({\n  selector: 'app-assignee',\n  templateUrl: './assignee.component.html',\n  styleUrls: ['./assignee.component.less'],\n})\nexport class AssigneeComponent implements OnInit {\n  ASSETS = ASSETS;\n  animation = true;\n  search: string = '';\n  selectedAssignees: any[] = [];\n  noSearchText = NO_DATA_FOUND_IMAGE;\n\n  @Input() assigneeList: any[] = [];\n  @Input() activeAssignee: any[] = [];\n  @Input() payload: any;\n\n  @Output() closeEvent = new EventEmitter<any>();\n  @Output() selectedAssigneeEvent = new EventEmitter<any>();\n\n  ngOnInit(): void {\n    if (this.activeAssignee?.length) {\n      this.selectedAssignees = [...this.activeAssignee];\n    }\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  closeList(event?: any) {\n    this.closeEvent.emit(event);\n  }\n\n  onSelectAssignee(assignee: any) {\n    this.selectedAssignees = [assignee];\n  }\n\n  deleteAssignee(assignee: any) {\n    this.selectedAssignees = [];\n  }\n\n  isSelected(assignee: any): boolean {\n    return this.selectedAssignees.some((item) => item?._id === assignee?._id);\n  }\n\n  selectedAssigneeData(event: any) {\n    this.selectedAssigneeEvent.emit(event);\n  }\n}\n","<div class=\"assignee-list\">\n  <div\n    class=\"assignee-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt vx-d-flex vx-align-center\">\n      <button\n        class=\"back-btn vx-fs-16 vx-p-0 vx-m-0 vx-mr-3 vx-d-flex vx-align-center\"\n        [appTooltip]=\"'Back'\"\n        placement=\"bottom\"\n        delay=\"0\"\n        type=\"black\"\n        [tooltipMandatory]=\"true\"\n        (click)=\"closeList()\"\n      >\n        <i class=\"icons\">&#xeb29;</i></button\n      >Select Assignee(s)\n    </div>\n  </div>\n  <div class=\"assignee-list-body\">\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search User\" />\n    </div>\n    <app-loader-inline *ngIf=\"false\"></app-loader-inline>\n    <div class=\"assignee-list-body-inner vx-mb-4\">\n      <ng-container>\n        <div class=\"assignee-list-area\">\n          <ul class=\"vx-d-flex vx-p-0 vx-m-0\">\n            <li\n              *ngFor=\"\n                let data of assigneeList | search : search as assigneeList\n              \"\n              class=\"vx-pr-5\"\n            >\n              <app-cs-radio\n                [value]=\"data?._id\"\n                [checked]=\"isSelected(data)\"\n                (checkedEvent)=\"onSelectAssignee(data)\"\n              >\n                <div\n                  class=\"assignee-name vx-fs-12\"\n                  [appTooltip]=\"data?.member_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{ data?.member_name }}\n                </div>\n                <div\n                  *ngIf=\"data?.usergroup_id?.length\"\n                  class=\"assignee-lable vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-3 vx-ml-2\"\n                  [appTooltip]=\"data?.associatedGroups[0]?.group_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{ data?.associatedGroups[0]?.group_name }}\n                </div>\n                <button\n                  *ngIf=\"data?.usergroup_id?.length > 1\"\n                  class=\"count-btn vx-fs-9 vx-fw-600 vx-txt-white vx-pl-1 vx-pr-1 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\"\n                  appPopover\n                  (click)=\"assigneePopover.popover()\"\n                  placement=\"right\"\n                >\n                  +{{ data?.usergroup_id?.length - 1 }}\n                </button>\n                <app-popover #assigneePopover>\n                  <div class=\"wf-action-list\">\n                    <ul class=\"action-item\">\n                      <li\n                        *ngFor=\"\n                          let group of data?.associatedGroups | slice : 1;\n                          let i = index\n                        \"\n                      >\n                        <div class=\"avatar-card\">\n                          <span class=\"value\">{{ group?.group_name }}</span>\n                        </div>\n                      </li>\n                    </ul>\n                  </div>\n                </app-popover>\n              </app-cs-radio>\n            </li>\n          </ul>\n          <app-no-data\n            *ngIf=\"!(assigneeList | search : search)?.length\"\n            [noDataImage]=\"ASSETS.search_data\"\n            [noDataText]=\"noSearchText\"\n          ></app-no-data>\n        </div>\n      </ng-container>\n    </div>\n    <app-floating-bar\n      [selectedData]=\"selectedAssignees\"\n      [elementId]=\"'_id'\"\n      [displayElementKey]=\"'member_name'\"\n      [singularText]=\"'Assignee selected'\"\n      (closeList)=\"closeList($event)\"\n      (closeEvent)=\"selectedAssigneeData($event)\"\n      (deleteEvent)=\"deleteAssignee($event)\"\n      [isDisabled]=\"!selectedAssignees?.length || !assigneeList?.length\"\n    ></app-floating-bar>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-banner',\n  template: `\n    <div\n      class=\"workflow-form-alert vx-d-flex vx-align-center vx-mb-2 vx-pl-4 vx-pr-4\"\n      [ngClass]=\"bannerClass\"\n      [class.banner-center]=\"isCenter\"\n    >\n      <i *ngIf=\"icon\" class=\"icons alert-icon vx-fs-16\" [innerHTML]=\"icon\"></i>\n      <div class=\"alert-value vx-fs-11 vx-lh-4\">\n        <ng-content select=\"[banner]\"></ng-content>\n      </div>\n    </div>\n  `,\n  styleUrls: ['./banner.component.less'],\n})\nexport class BannerComponent {\n  @Input() icon: string = '&#xe931;'; // Default icon\n  @Input() bannerClass?: string;\n  @Input() isCenter: boolean = false;\n}\n","import {\n  Component,\n  ElementRef,\n  Input,\n  OnInit,\n  ViewChild,\n  Output,\n  EventEmitter,\n  HostListener,\n} from '@angular/core';\nimport { DatePickerComponent, IDatePickerConfig } from 'ng2-date-picker';\nimport dayjs from 'dayjs';\n\nimport {\n  REPORT_CASE,\n  HELPER_TEXT,\n  EMAIL_REMINDERS,\n  MONTH_NAMES,\n  BANNER_CASE_RESOLUTION_DEADLINE_WARNING,\n} from '../../constants/report-case.constants';\nimport { CommonService } from '../../../services/common.service';\nimport { FrequencyService } from '../../../sharedComponents/frequency/frequency.service';\nimport { ASSETS } from '../../../constants/assets.constants';\nimport { DateUtilityService } from '../../services/date-utility.service';\n\n@Component({\n  selector: 'app-due-date',\n  templateUrl: './due-date.component.html',\n  styleUrls: ['./due-date.component.less'],\n})\nexport class DueDateComponent implements OnInit {\n  @ViewChild('deadlineDatePicker') datePicker!: DatePickerComponent;\n  @ViewChild('deadlineDatePicker', { read: ElementRef, static: false })\n  ASSETS = ASSETS;\n  animation = true;\n  datePickerPopUp!: ElementRef;\n  datePickerOverlay = false;\n  dateConfig: IDatePickerConfig = {\n    disableKeypress: true,\n    format: 'DD MM YYYY',\n    unSelectOnClick: true,\n    openOnClick: false,\n    openOnFocus: false,\n    min: '',\n  };\n  commonService: any;\n  dueDateTexts = REPORT_CASE;\n  helperText = HELPER_TEXT;\n  assigneeClicked: boolean = false;\n  assigneeList: any[] = [];\n  assigneeData: { [key: number]: any[] } = {};\n  currentStageIndex: number = -1;\n  activeAssignee: any[] = [];\n  emailReminder: number = EMAIL_REMINDERS.email_reminder;\n  escalationEmail: number = EMAIL_REMINDERS.escalation_email_reminder;\n  showError: boolean = false;\n  showAssigneeError: boolean = false;\n  public CaseDeadlineWarning = BANNER_CASE_RESOLUTION_DEADLINE_WARNING;\n\n  @Input() payload: any;\n  @Input() dueDate: any;\n  @Input() workflowDetails: any;\n  @Input() userList: any[] = [];\n  @Input() groupList: any[] = [];\n  @Input() mode: string = '';\n  @Input() set initialSelection(value: any) {\n    this.dueDate = value?.resolution_deadline?.due_date;\n    if (this.mode === 'EDIT') {\n      this.emailReminder = value?.resolution_deadline?.assignee_remind_before;\n      this.escalationEmail = value?.resolution_deadline?.owner_remind_before;\n    }\n  }\n  @Input() min: string = '';\n  @Input() taskCount: number = 0;\n  @Input() validDeadline: string = '';\n\n  @Output() closeDueDateResolution = new EventEmitter();\n  @Output() closeDueDateEvent = new EventEmitter();\n\n  constructor(\n    private commonDateService: CommonService,\n    private frequencyService: FrequencyService,\n    private dateUtilityService: DateUtilityService\n  ) { }\n\n  ngOnInit(): void {\n    this.setMinDate();\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.setAssigneeList();\n    this.initializeEditMode();\n  }\n\n  private initializeEditMode() {\n    if (!this.payload?.caseToWorkflow?.resolution_deadline?.due_date) return;\n\n    const deadline = this.payload.caseToWorkflow.resolution_deadline;\n    this.initializeDeadlineValues(deadline);\n    this.initializeStageAssignees(deadline);\n  }\n\n  private initializeDeadlineValues(deadline: any) {\n    this.dueDate = this.dateUtilityService.convertToUTC(deadline?.due_date);\n    this.emailReminder =\n      deadline.assignee_remind_before || EMAIL_REMINDERS.email_reminder;\n    this.escalationEmail =\n      deadline.owner_remind_before || EMAIL_REMINDERS.escalation_email_reminder;\n  }\n\n  private initializeStageAssignees(deadline: any) {\n    if (!deadline?.stages_assignees?.length) return;\n\n    const stageAssigneeMap = this.createStageAssigneeMap(\n      deadline.stages_assignees\n    );\n    this.mapWorkflowStages(stageAssigneeMap);\n  }\n\n  private setMinDate() {\n    if (this.taskCount > 0 && this.validDeadline) {\n      this.dateConfig.min = dayjs(this.validDeadline);\n    } else {\n      this.dateConfig.min = this.frequencyService.formatDate();\n    }\n  }\n\n  private createStageAssigneeMap(stagesAssignees: any[]): Map<string, string> {\n    return new Map(\n      stagesAssignees.map((stage: any) => [stage?.stage_id, stage?.assignee_id])\n    );\n  }\n\n  private mapWorkflowStages(stageAssigneeMap: Map<string, string>) {\n    this.workflowDetails?.stages_assignees?.forEach(\n      (workflowStage: any, index: number) => {\n        const assigneeId = stageAssigneeMap?.get(workflowStage?.stage_id);\n        if (!assigneeId) return;\n\n        const assignee = this.assigneeList?.find(\n          (assignee: any) => assignee?._id === assigneeId\n        );\n        if (assignee) {\n          this.assigneeData[index] = [assignee];\n        }\n      }\n    );\n  }\n\n  openDatePicker() {\n    this.datePicker?.api?.open();\n    this.datePickerOverlay = true;\n  }\n\n  /**\n   * closes the date picker from policy form\n   */\n  closeDatePicker(evt: any) {\n    this.datePickerOverlay = false;\n\n    if (!evt) {\n      return;\n    }\n    if (evt?.date?.$d) {\n      let monthArray = [\n        'Jan',\n        'Feb',\n        'Mar',\n        'Apr',\n        'May',\n        'Jun',\n        'Jul',\n        'Aug',\n        'Sep',\n        'Oct',\n        'Nov',\n        'Dec',\n      ];\n      const dateValue = evt?.date?.$d?.getDate();\n      const monthValue = monthArray[evt?.date?.$d?.getMonth()];\n      const yearValue = evt?.date?.$d?.getFullYear();\n      const dateStr = `${dateValue} ${monthValue} ${yearValue}`;\n    }\n    if (evt?.date?.$d) {\n      this.dueDate = evt?.date?.$d;\n      this.showError = false;\n    }\n    this.datePicker?.api?.close();\n  }\n\n  closeDueDate() {\n    this.closeDueDateEvent.emit();\n  }\n\n  activateSelector(active: boolean, stageIndex?: number) {\n    this.assigneeClicked = active;\n    if (active) {\n      this.currentStageIndex = stageIndex ?? -1;\n      this.activeAssignee =\n        this.currentStageIndex !== -1\n          ? this.assigneeData[this.currentStageIndex]\n          : [];\n    }\n  }\n\n  setAssigneeList() {\n    const directAssignees = this.getAssignees();\n    const groupAssignees = this.getGroupAssignees();\n    this.assigneeList = this.getUniqueAssignees(\n      directAssignees,\n      groupAssignees\n    );\n  }\n\n  getAssignees(): any[] {\n    const assigneeIds = this.payload.caseToWorkflow?.assignees || [];\n\n    return (\n      this.userList\n        ?.filter((user: any) => assigneeIds.includes(user?._id))\n        ?.map((user: any) => {\n          const userGroups = this.getUserGroups(user);\n          return {\n            ...user,\n            associatedGroups: userGroups,\n          };\n        }) || []\n    );\n  }\n\n  getUserGroups(user: any): any[] {\n    return this.groupList?.filter((group: any) =>\n      user?.usergroup_id?.includes(group?.group_id)\n    );\n  }\n\n  getGroupAssignees(): any[] {\n    const assigneeGroupIds = this.payload.caseToWorkflow?.assignees_group || [];\n\n    return (\n      assigneeGroupIds.flatMap((groupId: string) => {\n        const group = this.findGroupById(groupId);\n        return this.getAssigneesFromGroup(group);\n      }) || []\n    );\n  }\n\n  findGroupById(groupId: string): any {\n    return this.groupList?.find((group: any) => group?._id === groupId);\n  }\n\n  getAssigneesFromGroup(group: any): any[] {\n    return (\n      group?.associatedUsers\n        ?.map((user: any) => {\n          const userFromList = this.findUserById(user?.userId?._id);\n          if (userFromList) {\n            const userGroups = this.getUserGroups(userFromList);\n            return {\n              ...userFromList,\n              associatedGroups: userGroups,\n            };\n          }\n          return null;\n        })\n        .filter((user: any) => user !== null) || []\n    );\n  }\n\n  findUserById(userId: string): any {\n    return this.userList?.find((user: any) => user?._id === userId);\n  }\n\n  getUniqueAssignees(directAssignees: any[], groupAssignees: any[]): any[] {\n    return [...directAssignees, ...groupAssignees].reduce(\n      (acc: any[], user: any) => {\n        if (!acc.some((u: any) => u?._id === user?._id)) {\n          acc.push(user);\n        }\n        return acc;\n      },\n      []\n    );\n  }\n\n  selectedAssignee(event: any[]) {\n    if (this.currentStageIndex !== -1) {\n      this.assigneeData[this.currentStageIndex] = event;\n    }\n    this.assigneeClicked = false;\n    if (event?.length > 0) {\n      this.showAssigneeError = false;\n    }\n  }\n\n  saveCaseResolutionDeadline() {\n    if (!this.isDueDateValid()) {\n      this.showError = true;\n      return;\n    } else if (!this.areAssigneesValid()) {\n      this.showAssigneeError = true;\n      return;\n    }\n    this.showError = false;\n    this.showAssigneeError = false;\n    this.setPayload();\n    this.closeDueDateResolution.emit();\n  }\n\n  isDueDateValid(): boolean {\n    if (!this.dueDate) return false;\n    if (this.taskCount > 0 && this.validDeadline) {\n      const validDeadlineDate = dayjs(this.validDeadline);\n      const selectedDate = dayjs(this.dueDate);\n      return selectedDate.isValid() && selectedDate.isAfter(validDeadlineDate);\n    }\n    return dayjs(this.dueDate).isValid();\n  }\n\n  areAssigneesValid(): boolean {\n    return this.workflowDetails?.stages_assignees?.every(\n      (stage: any, index: number) =>\n        this.assigneeData[index] && this.assigneeData[index]?.length > 0\n    );\n  }\n\n  formatDueDate(date: any): string {\n    const utcDate = this.dateUtilityService.convertToUTC(date);\n    return utcDate.toISOString();\n  }\n\n  setDeadlineReminders(): void {\n    this.payload.caseToWorkflow.resolution_deadline.assignee_remind_before =\n      this.emailReminder;\n    this.payload.caseToWorkflow.resolution_deadline.owner_remind_before =\n      this.escalationEmail;\n  }\n\n  setStagesAssignees(): any[] {\n    return this.workflowDetails?.stages_assignees\n      .map((stage: any, index: number) => {\n        const assigneeData = this.assigneeData[index];\n        return assigneeData\n          ? this.createStageAssignee(stage, assigneeData)\n          : null;\n      })\n      .filter(Boolean);\n  }\n\n  createStageAssignee(stage: any, assigneeData: any[]): any {\n    return {\n      stage_id: stage?.stage_id || '',\n      assignee_id: assigneeData[0]?._id || '',\n      due_date: stage?.due_date || '',\n    };\n  }\n\n  setPayload() {\n    const formattedDate = this.formatDueDate(this.dueDate);\n    this.payload.caseToWorkflow.resolution_deadline.due_date = formattedDate;\n    this.setDeadlineReminders();\n    const stagesAssignees = this.setStagesAssignees();\n    this.payload.caseToWorkflow.resolution_deadline.stages_assignees =\n      stagesAssignees;\n    this.payload.caseToWorkflow.workflow_id = this.workflowDetails?._id;\n  }\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'deadline-date',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datePickerOverlay,\n    };\n    this.commonDateService.handleDocumentClick(datePickerObject);\n  }\n\n  onInputChange() {\n    if (this.emailReminder === 0) {\n      this.emailReminder = EMAIL_REMINDERS.email_reminder;\n    }\n    if (this.escalationEmail === 0) {\n      this.escalationEmail = EMAIL_REMINDERS.escalation_email_reminder;\n    }\n  }\n}\n","<div class=\"configure-resolution\">\n  <div\n    class=\"configure-resolution-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n      Configure Resolution Deadline & Stage Details\n    </div>\n  </div>\n  <div class=\"configure-resolution-body\">\n    <div class=\"configure-resolution-body-inner\">\n      <app-loader-inline *ngIf=\"false\"></app-loader-inline>\n      <app-no-data\n        *ngIf=\"false\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No data to display'\"\n      ></app-no-data>\n\n      <ng-container>\n        <div\n          class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n        >\n          SPECIFY THE DEADLINE TO CLOSE THIS CASE\n          <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n        </div>\n        <app-banner *ngIf=\"mode === 'EDIT' && taskCount > 0\">\n          <p banner>\n            {{ CaseDeadlineWarning }}\n          </p>\n        </app-banner>\n        <div class=\"case-calendar vx-mb-3\">\n          <div class=\"case-calendar-inner vx-d-flex vx-align-center\">\n            <input\n              type=\"text\"\n              readonly\n              placeholder=\"{{\n                dueDateTexts.case_details.due_date.deadline_placeholder\n              }}\"\n              (click)=\"openDatePicker()\"\n              [value]=\"dueDate | date : 'dd MMM yyyy'\"\n              id=\"deadline-date\"\n            />\n            <i class=\"icons\">&#xe92d;</i>\n            <dp-date-picker\n              #deadlineDatePicker\n              (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\n              [config]=\"dateConfig\"\n              [(ngModel)]=\"dueDate\"\n            >\n            </dp-date-picker>\n            <div\n              class=\"vx-overlay\"\n              (click)=\"closeDatePicker($event)\"\n              *ngIf=\"datePickerOverlay\"\n            ></div>\n          </div>\n          <div *ngIf=\"showError\" class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\">\n            {{ dueDateTexts.errorMessage.dueDate }}\n          </div>\n        </div>\n        <div class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-1\">\n          <div\n            class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-tt-uppercase\"\n          >\n            CONFIGURE DEADLINE & ASSIGNEE FOR EACH STAGE IN THE WORKFLOW\n            <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n          </div>\n          <!-- <div class=\"toggle-area vx-d-flex vx-align-center\">\n            <app-cs-switch>Allow Reopening of Previous Stage</app-cs-switch>\n            <i\n              class=\"icons info vx-fs-12 vx-txt-blue vx-ml-2\"\n              [appTooltip]=\"\n                'If enabled, this option allows the assignee to revisit and reopen a previously completed stage. The stage will be reset, and the assigned user will need to complete it again.'\n              \"\n              placement=\"bottom-right\"\n              delay=\"0\"\n              type=\"white\"\n              [tooltipMandatory]=\"true\"\n              >&#xe91f;</i\n            >\n          </div> -->\n        </div>\n        <div class=\"configure-resolution-table\">\n          <div class=\"table-header\">\n            <div class=\"table-row\">\n              <div\n                class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n              >\n                #\n              </div>\n              <div\n                class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\n              >\n                STAGE NAME\n              </div>\n              <div\n                class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\n              >\n                TRANSITION STATUS\n                <i\n                  class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n                  [appTooltip]=\"helperText.transition_status\"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"white\"\n                  [tooltipMandatory]=\"true\"\n                  >&#xe91f;</i\n                >\n              </div>\n              <div\n                class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\n              >\n                ASSIGNEE\n                <i\n                  class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n                  [appTooltip]=\"helperText.assignee\"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"white\"\n                  [tooltipMandatory]=\"true\"\n                  >&#xe91f;</i\n                >\n              </div>\n              <div\n                class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center deadline\"\n              >\n                DEADLINE\n                <i\n                  class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\"\n                  [appTooltip]=\"helperText.deadline\"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"white\"\n                  [tooltipMandatory]=\"true\"\n                  >&#xe91f;</i\n                >\n              </div>\n            </div>\n          </div>\n          <div class=\"table-body\">\n            <div\n              class=\"table-row\"\n              *ngFor=\"\n                let data of workflowDetails?.stages_assignees;\n                let i = index\n              \"\n            >\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n              >\n                <div\n                  class=\"sr-no vx-fs-13 vx-d-flex vx-align-center vx-justify-center\"\n                  [appTooltip]=\"i + 1\"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"true\"\n                >\n                  {{ i + 1 }}\n                </div>\n              </div>\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center stage-name\"\n              >\n                <div\n                  class=\"value vx-fs-13 vx-pr-2\"\n                  [appTooltip]=\"data?.name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{ data?.name }}\n                </div>\n              </div>\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center status\"\n              >\n                <div class=\"value vx-fs-12\">\n                  {{ data?.status_transition?.fromName }}<br /><span\n                    class=\"vx-mr-1\"\n                    >To</span\n                  >{{ data?.status_transition?.toName }}\n                </div>\n              </div>\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assignee\"\n                (click)=\"activateSelector(true, i)\"\n              >\n                <div\n                  *ngIf=\"!assigneeData[i]?.length\"\n                  class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\"\n                >\n                  <div class=\"value vx-fs-13\">Select a User</div>\n                  <i class=\"icons arrow vx-fs-12\">&#xe9e8;</i>\n                </div>\n                <div\n                  *ngIf=\"assigneeData[i]?.length > 0\"\n                  class=\"after-select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-2\"\n                >\n                  <div\n                    class=\"value-chip vx-fs-11 vx-pl-2 vx-pr-2 vx-lh-6\"\n                    [appTooltip]=\"assigneeData[i][0]?.member_name\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                  >\n                    {{ assigneeData[i][0]?.member_name }}\n                  </div>\n                  <button\n                    (click)=\"activateSelector(true, i)\"\n                    class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n                  >\n                    <i class=\"icons vx-fs-12 vx-txt-blue vx-mr-1\">&#xe9ba;</i\n                    >EDIT\n                  </button>\n                </div>\n              </div>\n              <div\n                class=\"table-column vx-pl-1 vx-pr-2 vx-d-flex vx-align-center deadline\"\n              >\n                <div\n                  class=\"case-calendar vx-d-flex vx-justify-between vx-pt-3 vx-pb-3\"\n                >\n                  <div\n                    class=\"case-calendar-inner vx-d-flex vx-align-center\"\n                    [class.disabled]=\"true\"\n                  >\n                    <input\n                      type=\"text\"\n                      readonly\n                      value=\"{{ dueDate | date : 'dd MMM yyyy' }}\"\n                      (click)=\"openDatePicker()\"\n                      id=\"stage-deadline-date\"\n                    />\n                    <i class=\"icons\">&#xe92d;</i>\n                    <dp-date-picker\n                      #datePicker\n                      (onSelect)=\"\n                        datePickerOverlay = false; closeDatePicker($event)\n                      \"\n                      [config]=\"dateConfig\"\n                    >\n                    </dp-date-picker>\n                    <div\n                      class=\"vx-overlay\"\n                      (click)=\"closeDatePicker($event)\"\n                      *ngIf=\"datePickerOverlay\"\n                    ></div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n          <div\n            *ngIf=\"showAssigneeError\"\n            class=\"errorMsg vx-fs-11 vx-lh-4 vx-mt-1\"\n          >\n            {{ dueDateTexts.errorMessage.stageAssignee }}\n          </div>\n        </div>\n        <div\n          class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n        >\n          EMAIL REMINDER CONFIGURATION\n          <span class=\"required vx-fs-16 vx-fw-400\">*</span>\n        </div>\n        <div class=\"divider vx-mb-2\"></div>\n        <div\n          class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n        >\n          REMINDER EMAIL\n        </div>\n        <div\n          class=\"email-configure-box vx-d-flex vx-align-center vx-flex-wrap vx-p-2 vx-pl-3 vx-pr-3 vx-mb-2\"\n        >\n          <div class=\"vx-fs-13 vx-mr-1\">\n            Send regular email reminders to the assignee\n          </div>\n          <input\n            type=\"number\"\n            [(ngModel)]=\"emailReminder\"\n            onkeydown=\"return event.key !== '.'\"\n            oninput=\"this.value = Math.abs(this.value)\"\n            (change)=\"onInputChange()\"\n          />\n          <div class=\"vx-fs-13 vx-ml-1\">\n            <span class=\"black-text\">days</span> before the stage deadline.\n          </div>\n        </div>\n        <div\n          class=\"label-top vx-fs-11 vx-fw-500 vx-label-txt vx-lh-4 vx-mb-1 vx-tt-uppercase\"\n        >\n          ESCALATION EMAIL\n        </div>\n        <div\n          class=\"email-configure-box vx-d-flex vx-align-center vx-flex-wrap vx-p-2 vx-pl-3 vx-pr-3 vx-mb-2\"\n        >\n          <div class=\"vx-fs-13 vx-mr-1\">\n            Send email escalation to the Case Owner\n          </div>\n          <input\n            type=\"number\"\n            [(ngModel)]=\"escalationEmail\"\n            onkeydown=\"return event.key !== '.'\"\n            oninput=\"this.value = Math.abs(this.value)\"\n            (change)=\"onInputChange()\"\n          />\n          <div class=\"vx-fs-13 vx-ml-1\">\n            <span class=\"black-text\">days</span> before the overall case\n            deadline, if the case is still open.\n          </div>\n        </div>\n      </ng-container>\n    </div>\n    <app-floating-bar\n      (closeList)=\"closeDueDate()\"\n      (closeEvent)=\"saveCaseResolutionDeadline()\"\n    ></app-floating-bar>\n  </div>\n</div>\n<app-assignee\n  *ngIf=\"assigneeClicked\"\n  [payload]=\"payload\"\n  [assigneeList]=\"assigneeList\"\n  [activeAssignee]=\"activeAssignee\"\n  (selectedAssigneeEvent)=\"selectedAssignee($event)\"\n  (closeEvent)=\"activateSelector(false)\"\n></app-assignee>\n","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { ASSETS } from '../../../constants/assets.constants';\nimport {\n  ACTION_CODE,\n  DEFAULT_FORM_CONFIG,\n  FIELD_SELECTOR,\n  REPORT_CASE,\n  SelectionPopupState,\n  SelectionState,\n} from '../../constants/report-case.constants';\nimport { ReportACaseService } from '../../services/report-a-case.service';\n\n@Component({\n  selector: 'app-case-resolution-deadline',\n  template: `<app-field-holder\n      [image]=\"ASSETS.case_resolution_deadline\"\n      [checked]=\"(state === SelectionState.SELECTED)\"\n      [disabled]=\"fieldSelector?.includes(fieldSelected)\"\n    >\n    \n        <app-form-selectBox\n           field\n          [config]=\"config\"\n          [state]=\"state\"\n          [popupState]=\"SelectionPopupState.SELECTION_DIALOG\"\n          [chipItems]=\"selectedItems\"\n          [removable]=\"false\"\n          (fieldClicked)=\"activateSelector($event)\"\n          [isError]=\"validationError.caseResolutionDeadline.isError\"\n          [errorMessage]=\"validationError.caseResolutionDeadline.message\"\n          [disabled]=\"isCaseResolutionDeadlineDisabled()\"\n        >\n          <app-vc-label\n            label\n            [labelText]=\"dueDateTexts.case_details.due_date.title\"\n            [required]=\"true\"\n            [showInfo]=\"true\"\n            [tooltipText]=\"dueDateHelpText\"\n          ></app-vc-label>\n        </app-form-selectBox>\n    </app-field-holder>\n    <app-due-date\n      *ngIf=\"dueDateClicked\"\n      (closeDueDateEvent)=\"activateSelector(false)\"\n      [payload]=\"payload\"\n      [workflowDetails]=\"workflowDetails\"\n      [userList]=\"userList\"\n      [groupList]=\"groupList\"\n      [initialSelection]=\"initialResolutionDeadline\"\n      [mode]=\"mode\"\n      [validDeadline]=\"latestValidDeadline\"\n      [taskCount]=\"taskCount\"\n      (closeDueDateResolution)=\"saveSelectedDueDate()\"\n    ></app-due-date>`,\n  styleUrls: ['../../../forms.less'],\n})\nexport class CaseResolutionDeadlineComponent implements OnInit {\n  ASSETS = ASSETS;\n  dueDateTexts = REPORT_CASE;\n  responsibilityCentersList: any[] = [];\n  config: any = {\n    ...DEFAULT_FORM_CONFIG,\n    action: ACTION_CODE.RC,\n    placeholder: this.dueDateTexts.case_details.due_date.placeholder,\n    items: [],\n    disabledText: this.dueDateTexts.case_details.due_date.disabledText,\n  };\n  dueDateClicked: boolean = false;\n  rcListLoader: boolean = false;\n  SelectionState = SelectionState;\n  SelectionPopupState = SelectionPopupState;\n  state: string = SelectionState.EMPTY;\n  selectedItems: any[] = [];\n  selectedRcList: any[] = [];\n  workflowDetails: any = {};\n  initialResolutionDeadline: any = {};\n  fieldSelector = FIELD_SELECTOR;\n  dueDateHelpText = this.dueDateTexts.case_details.due_date.helpText;\n  latestValidDeadline: string = '';\n  taskCount: number = 0;\n\n  @Input() payload: any = {};\n  @Input() userList: any[] = [];\n  @Input() groupList: any[] = [];\n  @Input() mode: string = '';\n  @Input() caseId: string = '';\n  @Input() set initialSelection(value: any) {\n    this.initialResolutionDeadline = value;\n    if (value?.resolution_deadline?.stages_assignees?.length) {\n      this.selectedItems = [\n        {\n          label: 'Configured',\n          value: 'configured',\n        },\n      ];\n      this.state = SelectionState.SELECTED;\n    }\n  }\n  @Input() fieldSelected: string = '';\n  @Input() validationError: any = {};\n  @Output() fieldClicked = new EventEmitter<string>();\n  @Output() filterDeselector = new EventEmitter<any>();\n\n  constructor(private reportACaseService: ReportACaseService) {\n    this.getWorkflowDetails();\n  }\n\n  ngOnInit() {\n    if (this.caseId) {\n      this.validateDeadline();\n    }\n  }\n\n  validateDeadline() {\n    this.reportACaseService.validateCaseDeadline(this.caseId).subscribe({\n      next: (res: any) => {\n        this.taskCount = res?.data?.totalOpenTask;\n        if (res?.data?.totalOpenTask > 0 && res?.data?.latestValidDeadline) {\n          this.latestValidDeadline = res?.data?.latestValidDeadline;\n        }\n      }\n    });\n  }\n\n  saveSelectedDueDate() {\n    this.dueDateClicked = false;\n    this.fieldClicked.emit('');\n    this.filterDeselector.emit(false);\n    this.selectedItems = [\n      {\n        label: 'Configured',\n        value: 'configured',\n      },\n    ];\n    this.state = SelectionState.SELECTED;\n    this.validationError.caseResolutionDeadline.isError = false;\n    this.validationError.caseResolutionDeadline.message = '';\n  }\n\n  setSelectedRcList(event: any) {\n    this.selectedRcList = this.responsibilityCentersList.filter((rc: any) =>\n      event.includes(rc?.rc_id)\n    );\n  }\n\n  activateSelector(active: boolean) {\n    this.dueDateClicked = active;\n    this.fieldClicked.emit(active ? 'CASE_RESOLUTION_DEADLINE' : '');\n    this.filterDeselector.emit(active ? true : false);\n  }\n\n  getWorkflowDetails() {\n    this.reportACaseService.workflow$.subscribe((res: any) => {\n      this.workflowDetails = res?.data?.workflow_details;\n    });\n  }\n\n  isCaseResolutionDeadlineDisabled(): boolean {\n    const hasAssignees = this.payload?.caseToWorkflow?.assignees?.length > 0;\n    const hasAssigneeGroups =\n      this.payload?.caseToWorkflow?.assignees_group?.length > 0;\n    const hasValidRcDetails =\n      this.payload?.rc_details?.ids?.length === 1 ||\n      this.payload?.rc_details?.main_rc_id;\n\n    return (\n      !hasValidRcDetails ||\n      !this.payload?.case_type?.id ||\n      !this.payload?.priority?.id ||\n      !(hasAssignees || hasAssigneeGroups) ||\n      !this.payload?.caseToWorkflow?.owners?.length\n    );\n  }\n}\n","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  SimpleChanges,\n} from '@angular/core';\nimport { ASSETS } from '../../../constants/assets.constants';\nimport {\n  ACTION_CODE,\n  DEFAULT_FORM_CONFIG,\n  FIELD_SELECTOR,\n  REPORT_CASE,\n  SelectionPopupState,\n  SelectionState,\n} from '../../constants/report-case.constants';\n\n@Component({\n  selector: 'app-case-assignees',\n  template: `\n    <app-field-holder\n      [image]=\"ASSETS.case_assignees\"\n      [checked]=\"\n        payload?.caseToWorkflow?.assignees?.length ||\n        payload?.caseToWorkflow?.assignees_group?.length\n      \"\n      [disabled]=\"fieldSelector?.includes(fieldSelected)\"\n    >\n      <ng-container field>\n        <app-form-selectBox\n          [config]=\"config\"\n          [state]=\"state\"\n          [popupState]=\"SelectionPopupState.SELECTION_DIALOG\"\n          [chipItems]=\"selectedItems\"\n          [chipGroupItems]=\"selectedGroupItems\"\n          (fieldClicked)=\"activateSelector($event)\"\n          (selectedItemListChange)=\"setAssigneesList($event)\"\n          (selectedGroupItemListChange)=\"setAssigneeGroupsList($event)\"\n          [isError]=\"validationError.caseAssignee.isError\"\n          [errorMessage]=\"validationError.caseAssignee.message\"\n        >\n          <app-vc-label\n            label\n            [labelText]=\"assigneesTexts.case_details.assignees.title\"\n            [required]=\"true\"\n            [showInfo]=\"true\"\n            [tooltipText]=\"assigneesHelpText\"\n          ></app-vc-label>\n        </app-form-selectBox>\n      </ng-container>\n    </app-field-holder>\n    <app-group-users-list\n      *ngIf=\"assigneesClicked\"\n      [usersList]=\"userList\"\n      [userIdKey]=\"'_id'\"\n      [selectedUsers]=\"selectedAssigneesList\"\n      [selectedGroups]=\"selectedAssigneeGroups\"\n      [groupsEnabled]=\"true\"\n      [assigneeGroupsList]=\"groupList\"\n      [groupIdKey]=\"'group_id'\"\n      (closeUsersList)=\"activateSelector(false)\"\n      (saveSelectedList)=\"saveSelectedAssigneesList($event)\"\n    >\n    </app-group-users-list>\n  `,\n  styleUrls: ['../../../forms.less'],\n})\nexport class CaseAssigneesComponent {\n  ASSETS = ASSETS;\n  assigneesTexts = REPORT_CASE;\n  responsibilityCentersList: any[] = [];\n  config: any = {\n    ...DEFAULT_FORM_CONFIG,\n    placeholder: this.assigneesTexts.case_details.assignees.placeholder,\n    items: [],\n  };\n  assigneesClicked: boolean = false;\n  rcListLoader: boolean = false;\n  SelectionState = SelectionState;\n  SelectionPopupState = SelectionPopupState;\n  state: string = SelectionState.EMPTY;\n  selectedItems: any[] = [];\n  selectedGroupItems: any[] = [];\n  selectedAssigneesList: any[] = [];\n  selectedAssigneeGroups: any[] = [];\n  selectedGroupIds: any[] = [];\n  userIds: any[] = [];\n  initialAssignees: any = {};\n  fieldSelector = FIELD_SELECTOR;\n  assigneesHelpText = this.assigneesTexts.case_details.assignees.helpText;\n\n  @Input() payload: any = {};\n  @Input() fieldSelected: string = '';\n  @Input() userList: any[] = [];\n  @Input() groupList: any[] = [];\n  @Input() set initialSelection(value: any) {\n    this.initialAssignees = value;\n    if (value?.assignees?.length || value?.assignees_group?.length) {\n      this.state = SelectionState.SELECTED;\n      this.selectedItems = value?.assignees;\n      this.selectedGroupItems = value?.assignees_group;\n      this.populateAssigneesList(this.initialAssignees);\n      this.populateGroupAssigneesList(this.initialAssignees);\n    }\n  }\n  @Input() validationError: any = {};\n\n  @Output() fieldClicked = new EventEmitter();\n  @Output() onRcChange = new EventEmitter<any>();\n  @Output() filterDeselector = new EventEmitter<any>();\n\n  ngOnInit() { }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['userList']) {\n      this.populateAssigneesList(this.initialAssignees);\n    }\n    if (changes['groupList']) {\n      this.populateGroupAssigneesList(this.initialAssignees);\n    }\n  }\n\n  saveSelectedAssigneesList(event: any) {\n    this.assigneesClicked = false;\n    this.setSelectedAssigneesList(event);\n    const users = event?.users ? event?.users : event;\n    this.updateSelectedAssignees(users || []);\n    this.updateSelectedAssigneeGroups(event?.groups || []);\n    this.selectedGroupIds = this.getSelectedGroupIds(event?.groups || []);\n    this.setPayload(users || [], this.selectedGroupIds);\n    this.state = SelectionState.SELECTED;\n    this.fieldClicked.emit('');\n    this.validationError.caseAssignee.isError = false;\n    this.validationError.caseAssignee.message = '';\n    this.filterDeselector.emit(false);\n  }\n\n  populateAssigneesList(value: any) {\n    this.selectedAssigneesList = this.userList?.filter((user: any) =>\n      value?.assignees?.includes(user?._id)\n    );\n    this.selectedItems = this.userList\n      ?.filter((user: any) => value?.assignees?.includes(user?._id))\n      ?.map((user: any) => ({\n        label: user?.member_name,\n        value: user?._id,\n      }));\n  }\n\n  populateGroupAssigneesList(value: any) {\n    this.selectedAssigneeGroups = this.groupList.filter((group: any) =>\n      value?.assignees_group?.includes(group?._id)\n    );\n    this.selectedGroupItems = this.groupList\n      ?.filter((group: any) => value?.assignees_group?.includes(group?._id))\n      ?.map((group: any) => ({\n        label: group?.group_name,\n        value: group?._id,\n      }));\n  }\n\n  updateSelectedAssignees(usersIds: string[]) {\n    this.selectedItems = this.userList\n      ?.filter((user: any) => usersIds?.includes(user?._id))\n      ?.map((user: any) => ({\n        label: user?.member_name,\n        value: user?._id,\n      }));\n  }\n\n  updateSelectedAssigneeGroups(groupsIds: string[]) {\n    this.selectedGroupItems = this.groupList\n      ?.filter((group: any) => groupsIds?.includes(group?.group_id))\n      ?.map((group: any) => ({\n        label: group?.group_name,\n        value: group?.group_id,\n      }));\n  }\n\n  getSelectedGroupIds(groupIds: number[]) {\n    return this.groupList\n      ?.filter((group: any) => groupIds?.includes(group?.group_id))\n      ?.map((group: any) => group?._id);\n  }\n\n  setSelectedAssigneesList(event: any) {\n    this.selectedAssigneesList = this.userList?.filter((user: any) =>\n      event?.users?.includes(user?._id)\n    );\n    this.selectedAssigneeGroups = this.groupList?.filter((group: any) =>\n      event?.groups?.includes(group?.group_id)\n    );\n  }\n\n  activateSelector(active: boolean) {\n    this.assigneesClicked = active;\n    this.fieldClicked.emit(active ? 'CASE_ASSIGNEE' : '');\n    this.filterDeselector.emit(active ? true : false);\n  }\n\n  setAssigneesList(event: any) {\n    this.selectedAssigneesList = this.userList?.filter((user: any) =>\n      event?.some((eventItem: any) => eventItem?.value === user?._id)\n    );\n    this.userIds = this.selectedAssigneesList.map((user: any) => user?._id);\n    this.setPayload(this.userIds, this.selectedGroupIds);\n    this.state =\n      this.userIds?.length || event?.length\n        ? SelectionState.SELECTED\n        : SelectionState.EMPTY;\n  }\n\n  setAssigneeGroupsList(event: any) {\n    this.selectedAssigneeGroups = this.groupList?.filter((group: any) =>\n      event?.some((eventItem: any) => eventItem?.value === group?.group_id)\n    );\n    const currentUserIds =\n      this.payload.caseToWorkflow?.assignees || this.userIds;\n    const groupIds = this.selectedAssigneeGroups.map(\n      (group: any) => group?.group_id\n    );\n    this.selectedGroupIds = this.getSelectedGroupIds(groupIds);\n    this.setPayload(currentUserIds, this.selectedGroupIds);\n    this.state =\n      currentUserIds?.length || event?.length\n        ? SelectionState.SELECTED\n        : SelectionState.EMPTY;\n  }\n\n  setPayload(users: any, groups: any) {\n    this.payload.caseToWorkflow = {\n      ...this.payload.caseToWorkflow,\n      assignees: users,\n      assignees_group: groups,\n    };\n    this.resetStagePayload();\n  }\n\n  resetStagePayload() {\n    this.payload?.caseToWorkflow?.resolution_deadline?.stages_assignees?.forEach(\n      (stage: any) => {\n        stage.assignee_id = '';\n      }\n    );\n  }\n}\n","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  OnInit,\n  OnDestroy\n} from '@angular/core';\nimport { ASSETS } from '../../../constants/assets.constants';\nimport {\n  ACTION_CODE,\n  DEFAULT_FORM_CONFIG,\n  FIELD_SELECTOR,\n  REPORT_CASE,\n  SelectionPopupState,\n  SelectionState,\n} from '../../constants/report-case.constants';\nimport { ReportACaseService } from '../../services/report-a-case.service';\n@Component({\n  selector: 'app-case-owners',\n  template: `\n\n    <app-field-holder\n      [image]=\"ASSETS.case_owners\"\n      [active]=\"ownerClicked\"\n      [disabled]=\"fieldSelector?.includes(fieldSelected)\"\n      [checked]=\"payload?.caseToWorkflow?.owners?.length\"\n    >  \n        <app-form-selectBox\n        field\n          [config]=\"config\"\n          [state]=\"state\"\n          [popupState]=\"SelectionPopupState.SELECTION_DIALOG\"\n          [chipItems]=\"selectedItems\"\n          (fieldClicked)=\"activateSelector($event)\"\n          (selectedItemListChange)=\"setOwnerList($event)\"\n          [isError]=\"validationError.caseOwner.isError\"\n          [errorMessage]=\"validationError.caseOwner.message\"\n          [disabled]=\"isCaseOwnerSelectionDisabled()\"\n          class=\"case-owner-field\"\n        >\n          <app-vc-label\n            label\n            [labelText]=\"ownerTexts.case_details.owners.title\"\n            [required]=\"true\"\n            [showInfo]=\"true\"\n            [tooltipText]=\"ownersHelpText\"\n          ></app-vc-label>\n        </app-form-selectBox>\n    </app-field-holder>\n    <app-group-users-list\n      *ngIf=\"ownerClicked\"\n      [usersList]=\"caseOwnersList\"\n      [userIdKey]=\"'_id'\"\n      [selectedUsers]=\"selectedOwnerList\"\n      (closeUsersList)=\"activateSelector(false)\"\n      (saveSelectedList)=\"saveSelectedOwnerList($event)\"\n    ></app-group-users-list>\n  `,\n  styleUrls: ['../../../forms.less'],\n\n})\nexport class CaseOwnersComponent implements OnInit, OnDestroy {\n  ASSETS = ASSETS;\n  ownerTexts = REPORT_CASE;\n  caseOwnersList: any[] = [];\n  config: any = {\n    ...DEFAULT_FORM_CONFIG,\n    placeholder: this.ownerTexts.case_details.owners.placeholder,\n    items: [],\n    disabledText: this.ownerTexts.case_details.owners.disabledText,\n  };\n  ownersHelpText = this.ownerTexts.case_details.owners.helpText;\n  ownerClicked: boolean = false;\n  ownerListLoader: boolean = false;\n  SelectionState = SelectionState;\n  SelectionPopupState = SelectionPopupState;\n  state: string = SelectionState.EMPTY;\n  selectedItems: any[] = [];\n  selectedOwnerList: any[] = [];\n  workflowDetails: any = {};\n  fieldSelector = FIELD_SELECTOR;\n  isInternalChange: boolean = false;\n\n  @Input() payload: any = {};\n  @Input() fieldSelected: string = '';\n  @Input() set initialSelection(value: any) {\n    if (value?.length) {\n      this.state = SelectionState.SELECTED;\n      this.selectedItems = [...value];\n      const isString = typeof value[0] === 'string';\n      if (isString && (this.mode === 'CREATE' || this.isInternalChange)) {\n        this.populateOwnerList();\n      }\n    }\n  }\n  @Input() workflowId: string = '';\n  @Input() validationError: any = {};\n  @Input() mode: string = '';\n\n  @Output() fieldClicked = new EventEmitter();\n  @Output() filterDeselector = new EventEmitter<any>();\n\n  constructor(private reportACaseService: ReportACaseService) {\n    this.getWorkflowDetails();\n  }\n  ngOnDestroy(): void {\n    this.isInternalChange = false;\n  }\n\n  ngOnInit() {\n    if (this.workflowId) {\n      this.getCaseOwnersList(this.workflowId);\n    }\n  }\n\n  getWorkflowDetails() {\n    this.reportACaseService.workflow$.subscribe((res) => {\n      this.workflowDetails = res?.data?.workflow_details;\n      if (this.workflowDetails?._id) {\n        this.getCaseOwnersList(this.workflowDetails?._id);\n      }\n    });\n  }\n\n  getCaseOwnersList(workflowId: string) {\n    this.ownerListLoader = true;\n    this.reportACaseService.getCaseOwners(workflowId).subscribe((res: any) => {\n      this.caseOwnersList = res?.data?.map((owner: any) => ({\n        ...owner,\n        employee_name: owner?.member_name,\n      }));\n\n      if (this.mode === 'EDIT') {\n        this.populateOwnerList();\n      } else {\n        this.setDefaultOwner();\n      }\n      this.ownerListLoader = false;\n    });\n  }\n\n  populateOwnerList() {\n    this.selectedOwnerList = this.caseOwnersList.filter((owner: any) => {\n      const isString = typeof this.selectedItems[0] === 'string';\n      if (isString) {\n        return this.selectedItems.includes(owner?._id)\n      }\n      return this.selectedItems.some((item: any) => item?.value === owner?._id)\n    }\n    );\n\n    this.selectedItems = [... new Set(this.selectedOwnerList)]\n      .map((owner: any) => ({\n        label: owner?.employee_name,\n        value: owner?._id,\n      }));\n\n\n  }\n\n  setDefaultOwner() {\n    const { created_by } = this.workflowDetails || {};\n    if (!created_by) return;\n\n    const defaultOwner = this.caseOwnersList?.find(\n      (owner: any) => owner?._id === created_by\n    );\n    if (!defaultOwner) return;\n\n    const isOwnerAlreadySelected = this.selectedOwnerList.some(\n      (owner) => owner?._id === defaultOwner?._id\n    );\n    if (isOwnerAlreadySelected) return;\n\n    this.selectedOwnerList.push(defaultOwner);\n    this.selectedItems.push({\n      label: defaultOwner?.employee_name,\n      value: defaultOwner?._id,\n    });\n    this.setPayload([defaultOwner?._id]);\n    this.validationError.caseOwner.isError = false;\n    this.validationError.caseOwner.message = '';\n    this.state = SelectionState.SELECTED;\n\n  }\n\n  saveSelectedOwnerList(event: any) {\n    this.ownerClicked = false;\n    this.setSelectedOwnersList(event);\n    this.selectedItems = this.caseOwnersList\n      ?.filter((owner: any) => event?.includes(owner?._id))\n      .map((owner: any) => ({\n        label: owner?.employee_name,\n        value: owner?._id,\n      }));\n    this.setPayload(event);\n    this.validationError.caseOwner.isError = false;\n    this.validationError.caseOwner.message = '';\n    this.state = SelectionState.SELECTED;\n    this.fieldClicked.emit('');\n    this.filterDeselector.emit(false);\n    this.isInternalChange = true;\n\n  }\n\n  setSelectedOwnersList(event: any) {\n    this.selectedOwnerList = this.caseOwnersList?.filter((owner: any) =>\n      event?.includes(owner?._id)\n    );\n  }\n\n  activateSelector(active: boolean) {\n    this.ownerClicked = active;\n    this.fieldClicked.emit(active ? 'CASE_OWNER' : '');\n    this.filterDeselector.emit(active ? true : false);\n  }\n\n  setOwnerList(event: any) {\n    this.selectedItems = event || [];\n    this.selectedOwnerList = this.caseOwnersList?.filter((owner: any) =>\n      event?.some((eventItem: any) => eventItem?.value === owner?._id)\n    );\n\n    const ownerIds = event?.map((item: any) => item?.value) || [];\n    this.setPayload(ownerIds);\n    this.state = event?.length ? SelectionState.SELECTED : SelectionState.EMPTY;\n\n  }\n\n  setPayload(event: any) {\n    this.payload.caseToWorkflow = {\n      ...this.payload.caseToWorkflow,\n      owners: event,\n    };\n  }\n\n  isCaseOwnerSelectionDisabled(): boolean {\n    const hasValidRcDetails =\n      this.payload?.rc_details?.ids?.length === 1 ||\n      this.payload?.rc_details?.main_rc_id;\n\n    return (\n      !hasValidRcDetails ||\n      !this.payload?.case_type?.id ||\n      !this.payload?.priority?.id\n    );\n  }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FIELD_SELECTOR, REPORT_CASE } from '../../constants/report-case.constants';\nimport { ASSETS } from '../../../constants/assets.constants';\n\n@Component({\n  selector: 'app-linked-assessment',\n  template: `\n    <app-field-holder\n      [image]=\"ASSETS.link_controls\"\n      [checked]=\"true\"\n      [disabled]=\"fieldSelector?.includes(fieldSelected)\"\n    >\n      <ng-container field>\n        <label class=\"vx-control-panel\">Linked Assessment Question </label>\n        <div\n          class=\"selected\"\n          *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\n        >\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <span\n              *ngIf=\"\n                (['ASSESSMENT'].includes(openedFrom) &&\n                  assessmentQuestion?.questionName) ||\n                isLinkQuestionVisible\n              \"\n              class=\"chipName vx-fs-11 vx-label-txt full-width\"\n              appTooltip=\"{{\n                assessmentQuestion?.questionNumber +\n                  ': ' +\n                  assessmentQuestion?.questionName\n              }}\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              [innerHTML]=\"assessmentQuestion?.questionNumber +\n                  ': ' +\n                  assessmentQuestion?.questionName\"\n              ></span\n            >\n          </div>\n        </div>\n      </ng-container>\n    </app-field-holder>\n  `,\n  styleUrls: ['../../../forms.less'],\n})\nexport class LinkedAssessmentComponent implements OnInit {\n  reportTexts = REPORT_CASE;\n  ASSETS = ASSETS;\n  linkText = '';\n  isLinkQuestionVisible: boolean = false;\n  fieldSelector = FIELD_SELECTOR;\n\n  @Input() openedFrom: string = '';\n  @Input() payload: any;\n  @Input() responsibilityData: any;\n  @Input() assessmentQuestion: any;\n  @Input() fieldSelected: any;\n\n  ngOnInit() {\n    this.setLink();\n  }\n\n  setLink() {\n    if (\n      ['ASSESSMENT'].includes(this.openedFrom) ||\n      this.isLinkQuestionVisible\n    ) {\n      this.linkText = 'Linked Responsibility';\n    } else if (\n      ['COMPLIANCE_WORKROOM'].includes(this.openedFrom) ||\n      this.payload?.responsibilityLinked?.length\n    ) {\n      this.linkText = 'Linked Responsibilities';\n    } else {\n      this.linkText = 'Link Responsibilities';\n    }\n  }\n}\n","import { ASSETS } from './assets.constants';\n\nexport const LINK_RESPONSIBILITY_CONSTANTS = {\n  NO_DATA_MESSAGE: {\n    NO_DATA: 'No data to display.',\n  },\n\n  NO_DATA: {\n    IMAGE: ASSETS.search_data,\n  },\n\n  FLOATING_BAR: {\n    SINGULAR_TEXT: 'Responsibility',\n    PLURAL_TEXT: 'Responsibilities',\n  },\n};\n","export const AVATAR_CONSTANTS = {\n  TYPE: {\n    ASSIGNOR: 'ASSIGNOR',\n    REVIEWER: 'REVIEWER',\n  },\n  COLOR: {\n    GREEN: 'green',\n    BLUE: 'blue',\n  },\n  ANYONE: 'ANYONE',\n  ALL: 'ALL',\n};","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-avatar',\n  templateUrl: './avatar.component.html',\n  styleUrls: ['./avatar.component.less'],\n})\nexport class AvatarComponent {\n  @Input() userDetails: any[] = [];\n  @Input() type: 'ASSIGNEE' | 'ASSIGNOR' | 'ALL' | 'ANYONE' = 'ASSIGNOR';\n  @Input() avatarClass: string = 'blue';\n}\n","<div class=\"vx-avatar md\" [class.counter]=\"type === 'ANYONE'\">\n    <span\n      *ngIf=\"type === 'ANYONE'\"\n      [ngClass]=\"avatarClass\"\n      appPopover\n      (click)=\"users.popover()\"\n      placement=\"left\"\n      >+{{ userDetails?.length }}</span\n    >\n    <ng-container *ngIf=\"type !== 'ANYONE'\">\n      <span\n        *ngIf=\"!userDetails[0]?.avatar\"\n        [ngClass]=\"avatarClass\"\n        [appTooltip]=\"\n          type === 'ASSIGNOR'\n            ? 'Entrusted By: ' + userDetails[0]?.name\n            : 'Entrusted To: ' + userDetails[0]?.name\n        \"\n        placement=\"bottom-left\"\n        delay=\"0\"\n        type=\"black\"\n        [tooltipMandatory]=\"true\"\n        >{{ userDetails[0]?.short_name }}</span\n      >\n      <img\n        *ngIf=\"userDetails[0]?.avatar\"\n        [src]=\"userDetails[0]?.avatar\"\n        [alt]=\"userDetails[0]?.short_name\"\n        [appTooltip]=\"\n          type === 'ASSIGNOR'\n            ? 'Entrusted By: ' + userDetails[0]?.name\n            : 'Entrusted To: ' + userDetails[0]?.name\n        \"\n        placement=\"bottom-left\"\n        delay=\"0\"\n        type=\"black\"\n        [tooltipMandatory]=\"true\"\n      />\n    </ng-container>\n  \n    <app-popover #users>\n      <div class=\"wf-action-list\">\n        <ul class=\"action-item\">\n          <li\n            *ngFor=\"let user of userDetails\"\n            appTooltip=\"{{ user?.name }}\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"true\"\n          >\n            <div class=\"avatar-card\">\n              <div class=\"avatar\">\n                <ng-container *ngIf=\"!user?.avatar\">{{\n                  user?.short_name\n                }}</ng-container>\n                <img\n                  *ngIf=\"user?.avatar\"\n                  [src]=\"user?.avatar\"\n                  alt=\"\"\n                  width=\"24\"\n                  height=\"24\"\n                />\n              </div>\n              <span class=\"value\">{{ user?.name }}</span>\n            </div>\n          </li>\n        </ul>\n      </div>\n    </app-popover>\n  </div>\n  ","import { Optional, Pipe, PipeTransform } from '@angular/core';\nimport { Configurations } from '../../configurations';\n\n@Pipe({\n  name: 'getUserDetails',\n})\nexport class GetUserDetailsPipe implements PipeTransform {\n  public environment: any;\n  constructor(@Optional() config?: Configurations) {\n    this.environment = config?.envConfig;\n  }\n\n  transform(ids: number[], list: any[]): any[] {\n    const userDetails = list\n      .filter((item) => ids?.includes(item?.id))\n      .map((item) => {\n        return {\n          name: item?.name,\n          email: item?.email,\n          short_name: this.getShortName(item?.name),\n          avatar: item?.avatar\n            ? this.environment.s3Url +\n              this.environment.s3Bucket +\n              this.environment.profile +\n              item?.imagePath\n            : '',\n        };\n      });\n    return userDetails;\n  }\n\n  getShortName(name: string) {\n    const nameArray = name?.split(' ');\n    if(nameArray?.length > 1) {\n      return nameArray[0]?.charAt(0) + nameArray[nameArray?.length - 1]?.charAt(0);\n    }\n    return nameArray[0]?.charAt(0) + nameArray[0]?.charAt(1)?.toUpperCase();\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'getRCList',\n})\nexport class GetRCListPipe implements PipeTransform {\n  transform(value: any, list: any[], allList: any[]): any {\n    if(!list?.length || !allList?.length) return [];\n\n    const bridgedList = value?.map((item: any) => list?.find((allItem: any) => allItem?.id === item)?.rcid);\n\n    const allRcList = bridgedList?.map((item: any) => allList?.find((allItem: any) => allItem?.rcid === item));\n\n    return allRcList?.map((item: any) => {\n        const parentRc = item?.rc_name.reverse();\n        const parentRcName = parentRc?.join(' < ');\n        return parentRcName;\n    })\n  }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'isRespSelected',\n  pure: false,\n})\nexport class ParentResponsibilitySelectionPipe implements PipeTransform {\n  transform(value: any, list: any[], isChild: boolean = false): any {\n    if (isChild) {\n        return list.some(\n            (ele: any) =>\n              ele.responsibilityId === value?.rid &&\n              ele.assigneeId === value?.assignees?.userId[0] &&\n              ele.responsibilityCenter === value?.responsibilityCenters[0]\n          );\n    }\n    return list.some((item: any) => item?.responsibilityId === value);\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { LINK_RESPONSIBILITY_CONSTANTS } from '../../constants/link-responsibility.constants';\nimport { FrequencyService } from '../frequency/frequency.service';\nimport { ComplianceCommonService } from '../../workflow-services/common-workflow-services/compliance-common.service';\nimport { AVATAR_CONSTANTS } from '../../ui-kit/avatar/avatar.constants';\nimport { Responsibility } from './link-responsibility.interface';\n\n@Component({\n  selector: 'app-link-responsibility-list',\n  templateUrl: './link-responsibility.component.html',\n  styleUrls: ['./link-responsibility.component.less'],\n})\nexport class LinkResponsibilityListComponent implements OnInit {\n  @Input() onCompletionOfResponsibility: any;\n  @Input() feature: any;\n  @Input() respIdKey: string = '';\n  @Input() selectedResponsibilityValues: any = [];\n  @Input() radioSelection: boolean = false;\n  @Input() parentResponsibility: any;\n\n  @Output() closeButton = new EventEmitter();\n  @Output() selectedResponsibility = new EventEmitter();\n\n  AVATAR_CONSTANTS = AVATAR_CONSTANTS;\n\n  animation: boolean = false;\n  responsibilityLoader: boolean = false;\n  isValidObj: boolean = false;\n  isOnCompletionRc: boolean = false;\n\n  responsibilitiesData: any = {};\n  responsibilityTabCount: any = {\n    regulationCount: 0,\n    standardCount: 0,\n    internalCount: 0,\n    othersCount: 0,\n  };\n  typeToCountProperty: any = {\n    0: 'othersCount',\n    1: 'regulationCount',\n    2: 'standardCount',\n    3: 'internalCount',\n  };\n  responsibilityPayload = {\n    type: 'all',\n    paginationType: 'large',\n    a: '',\n    searchText: '',\n    filterData: {\n      appList: [],\n      riskIds: [],\n      reviewerId: [],\n      responsibilityCenter: [],\n      entrustedBy: [],\n      entrustedTo: [],\n      responsibilityCategory: [],\n      complianceType: [1],\n    },\n    pageNo: 1,\n    sortObj: {\n      sortBy: '',\n      type: '',\n    },\n    pageName: 'overview',\n  };\n\n  selectedResponsibilityId: any[] = [];\n  responsibilityTabs: any[] = [\n    { name: 'REGULATIONS', type: 1 },\n    { name: 'STANDARDS', type: 2 },\n    { name: 'INTERNAL CONTROLS', type: 3 },\n    { name: 'OTHERS', type: 0 },\n  ];\n\n  currentTab: number = 1;\n  responsibilityCurrentPage: number = 1;\n  regulationCount: number = 0;\n  standardsCount: number = 0;\n  internalsCount: number = 0;\n  othersCount: number = 0;\n\n  responsibilitySearchText: string = '';\n  noDataMessage: string = LINK_RESPONSIBILITY_CONSTANTS.NO_DATA_MESSAGE.NO_DATA;\n  noDataImagePath: string = LINK_RESPONSIBILITY_CONSTANTS.NO_DATA.IMAGE;\n  floaterBarText: any = LINK_RESPONSIBILITY_CONSTANTS.FLOATING_BAR;\n\n  responsibilityList: any;\n  featureFlag_on_completion_of: any;\n  close: any;\n  userList: any[] = [];\n  rcList: any[] = [];\n  allRcList: any[] = [];\n  viewResponsibilityId: any;\n  viewResponsibilityData: any = {};\n  responsibilityFloaterBarData: any = [];\n\n  isResponsibilitySelected: boolean = false;\n\n  constructor(\n    private frequencyService: FrequencyService,\n    private complianceCommonService: ComplianceCommonService\n  ) {}\n\n  ngOnInit(): void {\n    this.getResponsibilityValues();\n    this.getResponsibilityList();\n    this.getRcList();\n  }\n\n  back() {\n    this.closeButton.emit();\n  }\n\n  getResponsibilityValues() {\n    if (this.selectedResponsibilityValues?.length) {\n      this.responsibilityFloaterBarData = this.selectedResponsibilityValues.map(\n        (item: any) => item?.responsibilityId\n      );\n      this.populateResponsibilityValues();\n    }\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  populateResponsibilityValues() {\n    if (!Array.isArray(this.selectedResponsibilityValues)) return;\n\n    this.selectedResponsibilityValues =\n      this.selectedResponsibilityValues.flatMap(\n        ({\n          responsibilityId,\n          reportName,\n          assigneeIds = [],\n          responsibilityCenters = [],\n          assigneeBridgeId = [],\n          responsibilityCenterBridgeId = [],\n        }) => {\n          if (\n            !Array.isArray(assigneeIds) ||\n            !Array.isArray(responsibilityCenters)\n          )\n            return [];\n\n          return assigneeIds.flatMap((assigneeId) =>\n            responsibilityCenters.map((responsibilityCenter) => ({\n              responsibilityId,\n              assigneeId,\n              responsibilityCenter,\n              reportName,\n              assigneeBridgeId,\n              responsibilityCenterBridgeId,\n            }))\n          );\n        }\n      );\n  }\n\n  getRcList() {\n    this.complianceCommonService.getRcListInfo().subscribe((res: any) => {\n      this.allRcList = res;\n    });\n  }\n\n  getResponsibilityList(pageNo: number = 1) {\n    this.responsibilityLoader = true;\n    this.frequencyService\n      ?.getAllResponsibilities(pageNo, this.responsibilityPayload)\n      .subscribe({\n        next: (res: any) => {\n          if (res?.data) {\n            this.responsibilitiesData = this.mapResponsibilitiesData(res?.data);\n            this.userList = res?.data?.users;\n            this.rcList = res?.data?.responsibilityCenters;\n          }\n          this.responsibilityLoader = false;\n        },\n        error: () => {\n          this.responsibilityLoader = false;\n        },\n      });\n  }\n\n  private mapResponsibilitiesData(res: any) {\n    const pageSize = 10;\n    const currentPage = res?.page || 1;\n    const totalItems = res?.total || 0;\n\n    const startIndex = (currentPage - 1) * pageSize + 1;\n    const endIndex = Math.min(startIndex + pageSize - 1, totalItems);\n\n    return {\n      data: res?.responsibilities.filter((item: any) => item?.rid !== this.parentResponsibility?.rid),\n      total_responsibilities: totalItems,\n      total_pages: Math.ceil(totalItems / pageSize),\n      responsibilityCurrentPage: currentPage,\n      responsibilities_from: startIndex,\n      responsibilities_to: endIndex,\n    };\n  }\n\n  responsibilityPageChange(pageNumber: number) {\n    if (pageNumber !== this.responsibilitiesData.responsibilityCurrentPage) {\n      this.responsibilityCurrentPage = pageNumber;\n      this.responsibilityPayload.pageNo = pageNumber;\n      this.getResponsibilityList(pageNumber);\n    }\n  }\n\n  deleteItem(item: any) {\n    const index = this.selectedResponsibilityId.findIndex(\n      (element: any) => element == item[this.respIdKey]\n    );\n    this.selectedResponsibilityId.splice(index, 1);\n    this.selectedResponsibilityValues =\n      this.selectedResponsibilityValues.filter(\n        (ele: any) => ele[this.respIdKey] !== item[this.respIdKey]\n      );\n    this.isValidObj = false;\n  }\n\n  save(event: any) {\n    this.closeButton.emit();\n    this.filterUniqueResponsibilityValues();\n    this.selectedResponsibility.emit(this.selectedResponsibilityValues);\n  }\n\n  filterUniqueResponsibilityValues() {\n    if (!this.selectedResponsibilityValues?.length) return;\n    \n    const result: Responsibility = {};\n\n    this.selectedResponsibilityValues.forEach((item: any) => {\n\n      this.insertUniqueResponsibility(result, item);\n    });\n    // Convert the result object into an array\n    this.selectedResponsibilityValues = Object.values(result);\n  }\n\n  insertUniqueResponsibility(result: Responsibility, item: any) {\n    const { responsibilityId, assigneeId, responsibilityCenter } = item;\n    if (!result[responsibilityId]) {\n      result[responsibilityId] = {\n        responsibilityId,\n        assigneeIds: [],\n        responsibilityCenters: [],\n        assigneeBridgeId: [],\n        responsibilityCenterBridgeId: [],\n        reportName: item?.reportName,\n      };\n    } \n      // Add assigneeId if not already present\n      if (!result[responsibilityId]?.assigneeIds?.includes(assigneeId)) {\n        result[responsibilityId]?.assigneeIds?.push(assigneeId);\n      }\n\n      // Add responsibilityCenter if not already present\n      if (\n        !result[responsibilityId]?.responsibilityCenters?.includes(\n          responsibilityCenter\n        )\n      ) {\n        result[responsibilityId]?.responsibilityCenters?.push(\n          responsibilityCenter\n        );\n      }\n      this.getBridgeIds(result);\n    \n  }\n\n  getBridgeIds(result: any) {\n    for (const key in result) {\n      const item = result[key];\n      item.assigneeIds.forEach((assigneeId: any) => {\n        const assignee = this.userList.find(\n          (user: any) => user?.id === assigneeId\n        );\n        if (!item.assigneeBridgeId.find((id: any) => id === assignee?.uid)) {\n          item.assigneeBridgeId?.push(assignee?.uid);\n        }\n      });\n      item.responsibilityCenters.forEach((responsibilityCenter: any) => {\n        const rc = this.rcList.find(\n          (rc: any) => rc?.id === responsibilityCenter\n        );\n        if (\n          !item.responsibilityCenterBridgeId.find((id: any) => id === rc?.rcid)\n        ) {\n          item.responsibilityCenterBridgeId?.push(rc?.rcid);\n        }\n      });\n    }\n  }\n\n  onClickTabChange(tab: any) {\n    this.currentTab = tab?.type;\n    this.responsibilityPayload.filterData.complianceType = [this.currentTab];\n    this.responsibilityCurrentPage = 1;\n    this.responsibilityPayload.pageNo = this.responsibilityCurrentPage;\n    this.responsibilityPayload.searchText = this.responsibilitySearchText;\n    this.selectedResponsibilityValues = this.selectedResponsibilityValues;\n    this.getResponsibilityList();\n  }\n\n  search() {\n    this.responsibilityPayload.searchText = this.responsibilitySearchText;\n    this.responsibilityCurrentPage = 1;\n    this.responsibilityPayload.pageNo = this.responsibilityCurrentPage;\n    this.getResponsibilityList();\n  }\n\n  setResponsibilitiesCount() {\n    const payload = JSON.parse(JSON.stringify(this.responsibilityPayload));\n    payload.filterData.complianceType = [0, 1, 2, 3];\n    this.frequencyService\n      ?.getResponsibilitiesCount(payload)\n      .subscribe((res: any) => {\n        this.responsibilityTabCount.regulationCount = res?.regulation_count;\n        this.responsibilityTabCount.standardCount = res?.standard_count;\n        this.responsibilityTabCount.internalCount = res?.internal_count;\n        this.responsibilityTabCount.othersCount = res?.others_count;\n      });\n  }\n\n  // This function is used to initialize all the Feature flag based variables\n  featureFlagInitialization() {\n    this.featureFlag_on_completion_of = this.feature.isFeatureEnabled(\n      'ff_frequency_on_completion_of'\n    );\n    this.isOnCompletionRc = this.feature.isFeatureEnabled(\n      'ff_on_completion_rc'\n    );\n  }\n\n  selectResp(resp: any, mode: boolean) {\n    const checkedResp = this.generateResponsibilityId(resp);\n    if (!checkedResp?.length) return;\n\n    checkedResp.forEach((item: any) => {\n      const existsIndex = this.selectedResponsibilityValues.findIndex(\n        (ele: any) =>\n          ele.responsibilityId === item.responsibilityId &&\n          ele.assigneeId === item.assigneeId &&\n          ele.responsibilityCenter === item.responsibilityCenter\n      );\n      if (mode && existsIndex === -1) {\n        // Add if not present\n        this.selectedResponsibilityValues.push(item);\n      } else {\n        // Remove if present\n        this.selectedResponsibilityValues.splice(existsIndex, 1);\n      }\n    });\n\n    this.selectedResponsibilityId = this.selectedResponsibilityValues.map(\n      (ele: any) => ele.responsibilityId\n    );\n    this.isResponsibilitySelected = this.selectedResponsibilityValues.some(\n      (ele: any) => ele?.responsibilityId === resp?.id\n    );\n    this.responsibilityFloaterBarData = [\n      ...new Set(this.selectedResponsibilityId),\n    ];\n  }\n\n  generateResponsibilityId(resp: any) {\n    const assigneeIds = resp?.assignees?.userId || [];\n    const responsibilityCenters = resp?.responsibilityCenters || [null];\n\n    const respObj: any[] = [];\n\n    assigneeIds.forEach((assigneeId: any) => {\n      if (!responsibilityCenters?.length) {\n        respObj.push(this.generateRespObj(resp, assigneeId, null));\n        return;\n      }\n      responsibilityCenters.forEach((rc: any) => {\n        respObj.push(this.generateRespObj(resp, assigneeId, rc));\n      });\n    });\n\n    return respObj;\n  }\n\n  generateRespObj(resp: any, assigneeId: any, responsibilityCenter: any) {\n    return {\n      responsibilityId: resp?.rid,\n      assigneeId: assigneeId,\n      responsibilityCenter: responsibilityCenter,\n      reportName: resp?.title,\n      assigneeBridgeId: [],\n      responsibilityCenterBridgeId: [],\n    };\n  }\n\n  viewResponsibility(id: any) {\n    if (this.viewResponsibilityId === id) {\n      this.viewResponsibilityId = null;\n      this.viewResponsibilityData = {};\n      return;\n    }\n    this.viewResponsibilityId = id;\n    const responsibility = this.responsibilitiesData?.data?.find(\n      (item: any) => item?.id === id\n    );\n    this.viewResponsibilityData[id] =\n      this.createSeparateResponsibilities(responsibility);\n  }\n\n  createSeparateResponsibilities(responsibility: any): any[] {\n    if (!responsibility) return [];\n\n    const assignees = responsibility.assignees?.userId || [];\n    const responsibilityCenters = responsibility.responsibilityCenters || [\n      null,\n    ];\n    // If no assignees or RCs, return original responsibility\n    if (assignees.length === 0 && responsibilityCenters.length === 0) {\n      return [responsibility];\n    }\n    const newResponsibilities: any[] = [];\n\n    // Create a new responsibility for each assignee-RC combination\n    assignees.forEach((assigneeId: number) => {\n      responsibilityCenters.forEach((rcId: number) => {\n        const newResponsibility = {\n          ...cloneDeep(responsibility),\n          assignees: {\n            ...responsibility.assignees,\n            userId: [assigneeId],\n            activeUserId: [assigneeId],\n          },\n          responsibilityCenters: [rcId],\n          assigneeDetails: [\n            {\n              assignee: assigneeId,\n              responsibilityCenter: rcId,\n              performance: null,\n              nextDueDate: null,\n              reviewerPerformance: null,\n              reviewerNextDueDate: null,\n            },\n          ],\n        };\n        newResponsibilities.push(newResponsibility);\n      });\n    });\n\n    return newResponsibilities;\n  }\n}\n","<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n  <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n    <div class=\"vx-d-flex vx-align-center\">\n      <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n    </div>\n  </div>\n  <div class=\"frequency-responsibility-list-body\">\n    <div *ngIf=\"responsibilitiesData?.allResponsibilityCount > 0\"\n      class=\"vx-d-flex vx-align-center vx-justify-between vx-mb-2\">\n      <ng-container *ngFor=\"let tab of responsibilityTabs; let i = index\">\n        <div\n          class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"currentTab === i + 1 || (currentTab === 0 && i === 3)\" (click)=\"onClickTabChange(tab)\"\n          [class.pointer-none]=\"responsibilityLoader\">\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">{{\n                tab.name }}</label>\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{\n              responsibilityTabCount[typeToCountProperty[tab.type]] || 0\n              }}</span>\n          </div>\n        </div>\n      </ng-container>\n    </div>\n\n    <div class=\"frequency-responsibility-list-search vx-mb-2\">\n      <i class=\"icons vx-fs-12\">&#xe90b;</i>\n      <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n        placeholder=\"Search Responsibilities\" />\n    </div>\n    <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n    <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n        !responsibilityLoader && responsibilitiesData?.total_pages > 1\n      \">\n      <app-no-data *ngIf=\"\n          responsibilitiesData?.data?.length === 0 && !responsibilityLoader\n        \" [noDataImage]=\"noDataImagePath\" [noDataText]=\"noDataMessage\"></app-no-data>\n      <ng-container *ngIf=\"responsibilitiesData?.data?.length > 0 && !responsibilityLoader\">\n        <div class=\"table-header\">\n          <div class=\"table-row\">\n            <div\n              class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n              #\n            </div>\n            <div\n              class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\"\n              [class.with-rc]=\"isOnCompletionRc\">\n              RESPONSIBILITIES\n            </div>\n            <div\n              class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\"\n              *ngIf=\"isOnCompletionRc\">\n              RESPONSIBILITY CENTER\n            </div>\n          </div>\n        </div>\n        <div class=\"table-body\">\n          <ng-container *ngFor=\"\n              let responsibility of responsibilitiesData?.data;\n              let i = index\n            \">\n            <div class=\"table-row clickable\" [class.active]=\"\n                responsibility?.rid\n                  | isRespSelected : selectedResponsibilityValues\n              \" [class.open]=\"this.viewResponsibilityId === responsibility?.id\" [class.selected]=\"\n                responsibility?.rid\n                  | isRespSelected : selectedResponsibilityValues\n              \">\n              <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                <div class=\"sr-no\" [appTooltip]=\"'1'\" placement=\"bottom\" delay=\"0\" type=\"black\"\n                  [tooltipMandatory]=\"true\">\n                  {{ responsibilitiesData?.responsibilities_from + i }}\n                </div>\n                <app-cs-checkbox [value]=\"responsibility?.rid\" [ngValue]=\"\n                    responsibility?.rid\n                      | isRespSelected : selectedResponsibilityValues\n                  \" (ngValueChange)=\"selectResp(responsibility, $event)\">\n                </app-cs-checkbox>\n              </div>\n              <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-name\">\n                <div class=\"avatarFileArea vx-d-flex vx-align-center\">\n                  <app-avatar [type]=\"AVATAR_CONSTANTS.TYPE.ASSIGNOR\" [userDetails]=\"\n                      [responsibility?.assignor] | getUserDetails : userList\n                    \"></app-avatar>\n                  <ng-container *ngIf=\"\n                      responsibility?.assignees?.userId\n                        | getUserDetails : userList as assigneeDetails\n                    \">\n                    <app-avatar [avatarClass]=\"AVATAR_CONSTANTS.COLOR.GREEN\" [type]=\"\n                        assigneeDetails?.length > 1\n                          ? AVATAR_CONSTANTS.ANYONE\n                          : AVATAR_CONSTANTS.ALL\n                      \" [userDetails]=\"assigneeDetails\" appStopPropagation></app-avatar>\n                  </ng-container>\n                </div>\n                <div class=\"name-details\">\n                  <div class=\"value vx-fs-13 vx-neutral-100 vx-lh-5\" [appTooltip]=\"responsibility?.title\"\n                    placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                    {{responsibility?.controlId ? '[CID-' + responsibility?.controlId + '] ' : ''}}\n                    {{ responsibility?.title }}\n                  </div>\n                  <div class=\"vx-d-flex vx-align-center\">\n                    <div class=\"vx-fs-11 vx-fw-500 vx-neutral-100 vx-lh-4 vx-tt-uppercase vx-mr-1\">\n                      RESPONSIBILITY CENTER:\n                    </div>\n                    <ng-container *ngIf=\"\n                        responsibility?.responsibilityCenters\n                          | getRCList : rcList : allRcList as rcList\n                      \">\n                      <div class=\"resp-name vx-fs-11 vx-gray-60 vx-lh-4 vx-mr-2\"\n                        [appTooltip]=\"rcList?.length > 0 ? rcList[0] : '--'\" placement=\"bottom-left\" delay=\"0\"\n                        type=\"black\" [tooltipMandatory]=\"false\">\n                        {{ rcList?.length > 0 ? rcList[0] : \"--\" }}\n                      </div>\n                    </ng-container>\n                    <button *ngIf=\"responsibility?.responsibilityCenters?.length > 1\" class=\"vx-badgeNum xs minimal\"\n                      appPopover (click)=\"respPopover.popover()\" placement=\"left\">\n                      +{{ responsibility?.responsibilityCenters?.length - 1 }}\n                    </button>\n                    <app-popover #respPopover>\n                      <div class=\"wf-action-list\">\n                        <ul class=\"action-item\">\n                          <li *ngFor=\"let rc of rcList | slice : 1\">\n                            <div class=\"avatar-card\">\n                              <span class=\"value\" [appTooltip]=\"rc\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n                                [tooltipMandatory]=\"false\">{{ rc }}</span>\n                            </div>\n                          </li>\n                        </ul>\n                      </div>\n                    </app-popover>\n                  </div>\n                </div>\n              </div>\n              <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n                <button *ngIf=\"\n                    responsibility?.assigneeType === AVATAR_CONSTANTS.ALL.toLowerCase() ||\n                    responsibility?.rcType === AVATAR_CONSTANTS.ALL.toLowerCase()\n                  \" (click)=\"viewResponsibility(responsibility?.id)\" class=\"vx-icon-button minimal small\">\n                  <i class=\"icons\">\n                    {{\n                    viewResponsibilityId === responsibility?.id\n                    ? \"&#xe9e7;\"\n                    : \"&#xe9e8;\"\n                    }}</i>\n                </button>\n              </div>\n            </div>\n            <div *ngIf=\"\n                viewResponsibilityId === responsibility?.id &&\n                viewResponsibilityData[viewResponsibilityId]?.length\n              \" class=\"open-more\">\n              <div class=\"table-row\" *ngFor=\"\n                  let data of viewResponsibilityData[viewResponsibilityId]\n                \">\n                <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                  <app-cs-checkbox [value]=\"data?.rid\" [ngValue]=\"\n                      data\n                        | isRespSelected : selectedResponsibilityValues : true\n                    \" (ngValueChange)=\"selectResp(data, $event)\">\n                  </app-cs-checkbox>\n                </div>\n                <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-name\">\n                  <ng-container *ngIf=\"\n                      data?.assignees?.userId\n                        | getUserDetails : userList as assigneeDetails\n                    \">\n\n                    <div class=\"avatar-area\">\n                      <app-avatar [type]=\"AVATAR_CONSTANTS.TYPE.ASSIGNOR\" [userDetails]=\"assigneeDetails\"></app-avatar>\n                    </div>\n                    <div class=\"name-details\">\n                      <div class=\"value vx-fs-11 vx-neutral-100 vx-lh-4\" [appTooltip]=\"assigneeDetails[0]?.name\"\n                        placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                        {{ assigneeDetails[0]?.name }}\n                      </div>\n                      <div class=\"vx-d-flex vx-align-center\">\n                        <div class=\"vx-fs-11 vx-fw-500 vx-neutral-100 vx-lh-4 vx-tt-uppercase vx-mr-1\">\n                          RESPONSIBILITY CENTER:\n                        </div>\n                        <ng-container *ngIf=\"\n                          data?.responsibilityCenters\n                            | getRCList : rcList : allRcList as childRcList\n                        \">\n                          <div class=\"resp-name vx-fs-11 vx-gray-60 vx-lh-4 vx-mr-2\" [appTooltip]=\"\n                            childRcList?.length > 0 ? childRcList[0] : '--'\n                          \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                            {{ childRcList?.length > 0 ? childRcList[0] : \"--\" }}\n                          </div>\n                        </ng-container>\n                      </div>\n                    </div>\n                  </ng-container>\n                </div>\n                <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"></div>\n              </div>\n            </div>\n          </ng-container>\n        </div>\n      </ng-container>\n    </div>\n    <app-pagination *ngIf=\"!responsibilityLoader && responsibilitiesData?.total_pages > 1\"\n      [start]=\"responsibilitiesData?.responsibilities_from\" [end]=\"responsibilitiesData?.responsibilities_to\"\n      [total]=\"responsibilitiesData?.total_responsibilities\" [pageCount]=\"responsibilitiesData?.total_pages\"\n      [currentPage]=\"responsibilitiesData?.responsibilityCurrentPage\" (selectedPage)=\"responsibilityPageChange($event)\">\n    </app-pagination>\n    <app-floating-bar *ngIf=\"!responsibilityLoader\" [selectedData]=\"responsibilityFloaterBarData\"\n      [displayElementKey]=\"'ReportName'\" (closeList)=\"back()\" (closeEvent)=\"save($event)\"\n      (deleteEvent)=\"deleteItem($event)\" [isDisabled]=\"!responsibilityFloaterBarData?.length\" [isResponsibility]=\"true\"\n      [singularText]=\"floaterBarText.SINGULAR_TEXT\" [pluralText]=\"floaterBarText.PLURAL_TEXT\"></app-floating-bar>\n  </div>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n  FIELD_SELECTOR,\n  REPORT_CASE,\n} from '../../constants/report-case.constants';\nimport { ASSETS } from '../../../constants/assets.constants';\n\n@Component({\n  selector: 'app-linked-responsibilities',\n  template: `\n    <app-field-holder\n      [image]=\"ASSETS.link_items\"\n      [active]=\"respSelected\"\n      [disabled]=\"fieldSelector?.includes(fieldSelected)\"\n      [checked]=\"true\"\n    >\n      <ng-container field>\n        <label class=\"vx-control-panel\"\n          >{{ linkText }}\n          <button\n            class=\"button\"\n            *ngIf=\"['COMPLIANCE_WORKROOM'].includes(openedFrom)\"\n            (click)=\"activateSelector(true)\"\n          >\n            Link More Responsibilities\n          </button>\n        </label>\n        <input\n          type=\"text\"\n          placeholder=\"Select responsibilities that are linked to this issue\"\n          readonly\n          *ngIf=\"\n            !['COMPLIANCE_WORKROOM', 'ASSESSMENT'].includes(openedFrom) &&\n            !payload?.responsibilities_Linked?.length\n          \"\n          (click)=\"activateSelector(true)\"\n        />\n        <div\n          class=\"selected\"\n          *ngIf=\"\n            ['COMPLIANCE_WORKROOM', 'ASSESSMENT'].includes(openedFrom) ||\n            payload?.responsibilities_Linked?.length\n          \"\n        >\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <span\n              *ngIf=\"\n                ['COMPLIANCE_WORKROOM', 'ASSESSMENT'].includes(openedFrom) &&\n                responsibilityData?.responsibilityName\n              \"\n              class=\"chipName vx-fs-11 vx-label-txt full-width\"\n              [appTooltip]=\"responsibilityData?.responsibilityName\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ responsibilityData?.responsibilityName }}</span\n            >\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              *ngIf=\"!['COMPLIANCE_WORKROOM', 'ASSESSMENT'].includes(openedFrom)\"\n              (click)=\"\n                deleteItem(\n                  'LINK_MORE_RESPONSIBILITY',\n                  payload?.responsibilityLinked[0]\n                )\n              \"\n              >&#xe9ae;</i\n            >\n            <span\n              *ngIf=\"\n                !['COMPLIANCE_WORKROOM', 'ASSESSMENT'].includes(openedFrom) &&\n                payload?.responsibilities_Linked?.length\n              \"\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"payload?.responsibilities_Linked[0]?.ReportName\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ payload?.responsibilities_Linked[0]?.ReportName }}</span\n            >\n            <button\n              *ngIf=\"\n                (['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\n                  payload?.responsibilities_Linked?.length) ||\n                payload?.responsibilities_Linked?.length > 1\n              \"\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"linkResp.popover()\"\n              placement=\"right\"\n            >\n              +{{\n                !['COMPLIANCE_WORKROOM'].includes(openedFrom)\n                  ? payload?.responsibilities_Linked?.length - 1\n                  : payload?.responsibilities_Linked?.length\n              }}\n            </button>\n          </div>\n          <button\n            *ngIf=\"\n              activeField !== 'LINK_MORE_RESPONSIBILITY' &&\n              payload?.responsibilities_Linked?.length\n            \"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"activateSelector(true)\"\n          >\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n        <app-popover #linkResp [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li\n                *ngFor=\"\n                  let resp of payload?.responsibilities_Linked\n                    | slice\n                      : (!['COMPLIANCE_WORKROOM'].includes(openedFrom) ? 1 : 0)\n                \"\n              >\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"deleteItem(resp)\">&#xe90d;</i>\n                    {{ resp?.reportName }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </ng-container>\n    </app-field-holder>\n    <app-link-responsibility-list\n      *ngIf=\"respSelected\"\n      [selectedResponsibilityValues]=\"payload?.responsibilities_Linked\"\n      (closeButton)=\"activateSelector(false)\"\n      [respIdKey]=\"'ReportId'\"\n      [radioSelection]=\"false\"\n      [parentResponsibility]=\"responsibilityData\"\n      (selectedResponsibility)=\"selectResponsibility($event)\"\n    ></app-link-responsibility-list>\n  `,\n  styleUrls: ['../../../forms.less'],\n})\nexport class LinkedResponsibilitiesComponent {\n  ASSETS = ASSETS;\n  reportTexts = REPORT_CASE;\n  linkText = '';\n  respSelected: boolean = false;\n  fieldSelector = FIELD_SELECTOR;\n\n  @Input() openedFrom: string = '';\n  @Input() isLinkQuestionVisible: boolean = false;\n  @Input() payload: any;\n  @Input() fieldSelected: string = '';\n  @Input() responsibilityData: any;\n\n  @Output() fieldClicked = new EventEmitter();\n\n  ngOnInit() {\n    this.setLink();\n  }\n\n  setLink() {\n    if (\n      ['ASSESSMENT'].includes(this.openedFrom) ||\n      this.isLinkQuestionVisible\n    ) {\n      this.linkText = 'Linked Responsibility';\n    } else if (\n      ['COMPLIANCE_WORKROOM'].includes(this.openedFrom) ||\n      this.payload?.responsibilityLinked?.length\n    ) {\n      this.linkText = 'Linked Responsibilities';\n    } else {\n      this.linkText = 'Link Responsibilities';\n    }\n  }\n\n  activateSelector(active: boolean) {\n    this.respSelected = active;\n\n    if (active) {\n      this.fieldClicked.emit('LINK_MORE_RESPONSIBILITY');\n    } else {\n      this.fieldClicked.emit('');\n    }\n  }\n\n  selectResponsibility(resp: any) {\n    this.payload.responsibilities_Linked = resp;\n  }\n\n  deleteItem(element: any) {\n    const itemIndex = this.payload?.responsibilities_Linked?.findIndex(\n      (item: any) => item?.responsibilityId === element?.responsibilityId\n    );\n    if (itemIndex > -1) {\n      this.payload?.responsibilities_Linked?.splice(itemIndex, 1);\n    }\n  }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport {\n  ADD_TO_CASE_WORKFLOW,\n  ADDITIONAL_OPTION_STATUS,\n  EXCEPTION_TYPE,\n  OVERSIGHT_SELECTOR_CONFIG,\n  REPORT_CASE,\n  REPORT_CASE_PAYLOAD,\n  RISK_CLASSIFICATION,\n  SIDE_SELECTOR_ELEMENTS,\n  VALIDATION_ERROR,\n  WORKFLOW_DETAILS_PARAMS,\n  ACTION_BUTTONS,\n  SMILEY_MESSAGE,\n  FIELD_SELECTOR,\n} from '../constants/report-case.constants';\nimport { report } from '../components/case-type-slider/case-type.component';\nimport { ReportACaseService } from '../services/report-a-case.service';\nimport { UiKitService } from '../../workflow-services/ui-kit.service';\nimport { OrganizationUserService } from '../../workflow-services/organization-user.service';\nimport { ResponsibilityService } from '../../workflow-services/responsibility.service';\nimport { ASSETS } from '../../constants/assets.constants';\nimport { ReportCasePermissionService } from '../../services/report-case-permission.service';\nimport { ComplianceCommonService } from '../../workflow-services/common-workflow-services/compliance-common.service';\nimport { IframeService } from '../../services/iframe.service';\nimport { DateUtilityService } from '../services/date-utility.service';\n\n@Component({\n  selector: 'app-workflow-case',\n  templateUrl: './workflow-case.component.html',\n  styleUrls: ['./workflow-case.component.less', '../../forms.less'],\n})\nexport class WorkflowCaseComponent implements OnInit, OnDestroy {\n  reportTexts = REPORT_CASE;\n  ASSETS = ASSETS;\n  caseType = report;\n  caseTypeSelected = report.REPORT_CASE;\n  payload = JSON.parse(JSON.stringify(REPORT_CASE_PAYLOAD));\n  params = WORKFLOW_DETAILS_PARAMS;\n  validationError = VALIDATION_ERROR;\n  riskClassification = RISK_CLASSIFICATION;\n  addToCasePayload = JSON.parse(JSON.stringify(ADD_TO_CASE_WORKFLOW));\n  exceptionType = EXCEPTION_TYPE;\n  oversight_config = OVERSIGHT_SELECTOR_CONFIG;\n  smileyMessage = SMILEY_MESSAGE;\n  actionButtons: any[] = ACTION_BUTTONS;\n  sideSelectorElements: any = SIDE_SELECTOR_ELEMENTS;\n  additionalOptionStatus: any = ADDITIONAL_OPTION_STATUS;\n  fieldSelector = FIELD_SELECTOR;\n  caseData: any;\n\n  fieldClicked: string = '';\n  activeField: string = '';\n  activeSelector: string = '';\n\n  showSmiley: boolean = false;\n  scrollToBottom: boolean = false;\n\n  workflowDetailsData: any;\n  groupList: any[] = [];\n  userList: any = [];\n  selectedOversights: any = {\n    cc_list: [],\n    cc_failures_list: [],\n  };\n  loader = {\n    userListLoader: false,\n    typeLoader: false,\n    priorityLoader: false,\n    caseLoader: false,\n    groupListLoader: false,\n    reportCaseLoader: false,\n    permissionLoader: false,\n  };\n\n  @Input() openedFrom: any;\n  @Input() source: any;\n  @Input() caseId: any;\n  @Input() mode: any;\n  @Input() workflowType: any;\n  @Input() responsibilityData: any;\n  @Input() assessmentQuestion: any;\n  @Input() caseTypePermission: boolean = false;\n\n  @Output() closeWorkflow = new EventEmitter();\n  @Output() populateOption = new EventEmitter();\n  @Output() caseReportedBy = new EventEmitter();\n  @Output() userListEmitter = new EventEmitter();\n  @Output() disconnectRefresh = new EventEmitter();\n  @Output() pickerChanged = new EventEmitter();\n\n  constructor(\n    private reportACaseService: ReportACaseService,\n    private uiKitService: UiKitService,\n    private organizationUserService: OrganizationUserService,\n    private responsibilityService: ResponsibilityService,\n    private complianceCommonService: ComplianceCommonService,\n    private iframeService: IframeService,\n    private dateUtilityService: DateUtilityService\n  ) {\n    this.permissionLoader();\n  }\n  ngOnDestroy(): void {\n    this.resetForm();\n  }\n\n  ngOnInit() {\n\n    this.getUserList();\n    this.getGroupList();\n\n    if (this.workflowType === 'ACTW') {\n      this.additionalOptionStatus = { ...ADDITIONAL_OPTION_STATUS };\n    }\n    if (this.mode === 'EDIT') {\n      this.getCaseDetails();\n    }\n    this.pickerChanged.emit(false);\n  }\n\n  permissionLoader() {\n    this.reportACaseService.caseTypeLoader.subscribe((res) => {\n      this.loader.permissionLoader = res;\n    });\n  }\n\n\n  getUserList() {\n    this.loader.userListLoader = true;\n    this.organizationUserService.getOrganizationUsers().subscribe((res) => {\n      this.userList = res;\n      this.userListEmitter.emit(res);\n      if (\n        this.mode === 'EDIT' &&\n        this.caseTypeSelected === report.ADD_CASE_TO_WORKFLOW\n      ) {\n        this.populateOversights();\n      }\n      this.loader.userListLoader = false;\n    });\n  }\n\n  getGroupList() {\n    this.loader.groupListLoader = true;\n    this.responsibilityService.getOrganizationGroups().subscribe((res) => {\n      this.groupList = res;\n      this.loader.groupListLoader = false;\n    });\n  }\n\n  getCaseDetails() {\n    this.loader.caseLoader = true;\n    this.reportACaseService\n      .getCaseDetails(this.caseId)\n      .subscribe((res: any) => {\n        this.caseReportedBy.emit(res?.data?.created_by);\n        this.setCaseDetails(res);\n        this.loader.caseLoader = false;\n      });\n  }\n\n  setCaseDetails(res: any) {\n    if (res?.data?.added_to_workflow || this.workflowType === 'ACTW') {\n      this.caseTypeSelected = report.ADD_CASE_TO_WORKFLOW;\n      this.populateAddCasePayload(res?.data);\n      this.getWorkflowDetails(res?.data);\n\n    } else {\n      this.caseTypeSelected = report.REPORT_CASE;\n      this.populateReportCasePayload(res?.data);\n    }\n  }\n\n  // edit case\n\n  getWorkflowDetails(data: any) {\n    this.params.case_type.id = data?.case_type?.id;\n    this.params.priority.id = data?.priority?.id;\n    this.params.rc_details.id =\n      data?.rc_details?.main_rc_id || data?.rc_details?.ids?.[0];\n    this.params.category.id = data?.category?.ids[0];\n    const workflow_id = data?.workflow_id;\n    this.reportACaseService.getWorkflowDetails(this.params, workflow_id);\n  }\n\n  populateReportCasePayload(data: any) {\n    this.payload.name = data?.name;\n    this.payload.description = data?.description;\n    this.payload.occurrence_date = this.dateUtilityService.convertToUTC(data?.occurrence_date);\n    this.payload.priority = data?.priority;\n    this.payload.case_type = data?.case_type;\n    this.payload.rc_details = data?.rc_details;\n    this.payload.receive_updates = data?.receive_updates;\n    this.payload.supporting_documents = data?.supporting_documents;\n    this.payload.category = data?.category;\n  }\n\n  populateAddCasePayload(data: any) {\n    this.reportACaseService.workflowCode.next('ACW');\n    this.addToCasePayload.name = data?.name;\n    this.addToCasePayload.description = data?.description;\n    this.addToCasePayload.priority = data?.priority;\n    this.addToCasePayload.occurrence_date = this.dateUtilityService.convertToUTC(data?.occurrence_date);\n    this.addToCasePayload.case_type = data?.case_type;\n    this.addToCasePayload.rc_details = data?.rc_details;\n    this.addToCasePayload.risk_class = data?.risk_class;\n    if (this.workflowType === 'ACTW') {\n      this.addToCasePayload.additional_category = data?.category;\n    } else {\n      this.addToCasePayload.category = data?.category;\n      this.addToCasePayload.additional_category = data?.additional_category;\n    }\n    if (data?.caseToWorkflow) {\n      this.populateAdditionalFields(data?.caseToWorkflow);\n      this.populateResolutionDeadline(data?.caseToWorkflow);\n      this.populateUserDetails(data?.caseToWorkflow);\n      this.setOptionalField(data?.caseToWorkflow, data?.risk_class);\n    }\n  }\n\n  populateUserDetails(data: any) {\n    this.addToCasePayload.caseToWorkflow.assignees_group =\n      data?.assignees_group;\n    this.addToCasePayload.caseToWorkflow.owners = data?.owners;\n    this.addToCasePayload.caseToWorkflow.assignees = data?.assignees;\n    this.addToCasePayload.caseToWorkflow.workflow_id = data?.workflow_id;\n    this.addToCasePayload.caseToWorkflow.assignees_group =\n      data?.assignees_group;\n  }\n\n  populateResolutionDeadline(data: any) {\n    this.addToCasePayload.caseToWorkflow.resolution_deadline =\n      data?.resolution_deadline;\n    const date = this.dateUtilityService.convertToUTC(data?.resolution_deadline?.due_date);\n    date.setDate(date.getDate() + 1);\n    date.setHours(0, 0, 0, 0);\n    this.addToCasePayload.caseToWorkflow.resolution_deadline.due_date =\n      date.toISOString();\n    this.addToCasePayload?.caseToWorkflow?.resolution_deadline?.stages_assignees?.forEach(\n      (stage: any) => {\n        stage.due_date = date.toISOString();\n      }\n    );\n  }\n\n  populateAdditionalFields(data: any) {\n    this.addToCasePayload.caseToWorkflow.exception_type = data?.exception_type;\n    this.addToCasePayload.caseToWorkflow.associated_risks =\n      data?.associated_risks;\n    this.addToCasePayload.caseToWorkflow.evidence_enabled =\n      data?.evidence_enabled;\n    this.addToCasePayload.caseToWorkflow.recommendations =\n      data?.recommendations;\n    this.addToCasePayload.caseToWorkflow.oversights.cc_ids =\n      data?.oversights?.cc_ids;\n    this.addToCasePayload.caseToWorkflow.oversights.cc_failures_ids =\n      data?.oversights?.cc_failures_ids;\n    this.populateOversights();\n  }\n\n  populateOversights() {\n    this.selectedOversights.cc_list = this.userList?.filter((user: any) =>\n      this.addToCasePayload.caseToWorkflow.oversights.cc_ids?.includes(\n        user?._id as never\n      )\n    );\n    this.selectedOversights.cc_failures_list = this.userList?.filter(\n      (user: any) =>\n        this.addToCasePayload.caseToWorkflow.oversights.cc_failures_ids?.includes(\n          user?._id as never\n        )\n    );\n  }\n\n  setOptionalField(data: any, riskClass: number) {\n    this.additionalOptionStatus = {\n      EXCEPTION_TYPE: data?.exception_type ? true : false,\n      EVIDENCE: data?.evidence_enabled ? true : false,\n      ASSOCIATED_RISKS: data?.associated_risks?.text?.length ? true : false,\n      OVERSIGHT:\n        data?.oversights?.cc_ids?.length > 0 ||\n          data?.oversights?.cc_failures_ids?.length > 0\n          ? true\n          : false,\n      RECOMMENDED_ACTIONS:\n        data?.recommendations?.text?.length > 0 ? true : false,\n      RISK_CLASSIFICATION: riskClass ? true : false,\n    };\n    this.populateOptionalFields();\n  }\n\n  populateOptionalFields() {\n    const activatedOptions = [];\n    for (const key of Object.keys(this.additionalOptionStatus)) {\n      if (this.additionalOptionStatus[key] === true) {\n        activatedOptions.push(key);\n      }\n    }\n    this.populateOption.emit(activatedOptions);\n  }\n\n  // Change in case type\n  onCaseTypeChange(caseType: report) {\n    this.caseTypeSelected = caseType;\n    this.complianceCommonService.rcList?.next(null);\n    if (caseType === report.REPORT_CASE) {\n      this.resetForm();\n      this.reportACaseService.workflowCode.next('RAC');\n    } else if (caseType === report.ADD_CASE_TO_WORKFLOW) {\n      this.resetForm();\n      this.reportACaseService.workflowCode.next('ACW');\n    }\n    this.additionalOptionStatus = { ...ADDITIONAL_OPTION_STATUS };\n    this.reportACaseService.resetMoreOption.next(true);\n  }\n\n  saveSupportingDocument(event: any) {\n    const document = event?.files;\n    this.payload.supporting_documents = [...document] as never;\n  }\n\n  onCategoryChange(event: any) {\n    this.params.category.id = event[0];\n    if (this.caseTypeSelected === report.ADD_CASE_TO_WORKFLOW) {\n      this.reportACaseService.getWorkflowDetails(this.params);\n    }\n  }\n\n  onPriorityChange(event: any) {\n    this.params.priority.id = event;\n    if (this.caseTypeSelected === report.ADD_CASE_TO_WORKFLOW) {\n      this.reportACaseService.getWorkflowDetails(this.params);\n    }\n  }\n\n  onRcChange(event: any) {\n    this.params.rc_details.id = event;\n    if (this.caseTypeSelected === report.ADD_CASE_TO_WORKFLOW) {\n      this.reportACaseService.getWorkflowDetails(this.params);\n    }\n    this.pickerToggle(false);\n  }\n\n  onCaseTypeDropdownChange(event: any) {\n    this.params.case_type.id = event;\n    if (this.caseTypeSelected === report.ADD_CASE_TO_WORKFLOW) {\n      this.reportACaseService.getWorkflowDetails(this.params);\n    }\n  }\n\n  handleCaseIdFromResponse(res: any): void {\n    const caseId = res?.data?._id || res?.data?.id;\n    if (caseId && this.openedFrom === 'ASSESSMENT') {\n      sessionStorage.setItem('case_id', caseId.toString());\n    }\n  }\n\n  reportCase() {\n    if (this.openedFrom === 'COMPLIANCE_WORKROOM' || this.openedFrom === 'ASSESSMENT') {\n      this.filterResponsibilities(this.payload);\n      this.filterAssessment(this.payload);\n    }\n    const isValid = this.checkValidation(this.payload);\n    if (!isValid) return;\n    if (this.mode === 'EDIT') {\n      this.updateCase();\n    } else {\n      this.loader.reportCaseLoader = true;\n      this.reportACaseService.reportACase(this.payload).subscribe({\n        next: (res) => {\n          this.caseData = { ...res?.data, source: this.source };\n          this.showSmiley = true;\n          this.uiKitService.isSmileyOn = true;\n          this.loader.reportCaseLoader = false;\n          this.handleCaseIdFromResponse(res);\n        },\n        error: (err) => {\n          console.log(err, 'err');\n          this.loader.reportCaseLoader = false;\n        },\n      });\n    }\n  }\n\n  updateCase() {\n    this.loader.reportCaseLoader = true;\n    this.reportACaseService.updateCase(this.payload, this.caseId).subscribe({\n      next: (res: any) => {\n        this.caseData = { ...res?.data, source: this.source };\n        this.showSmiley = true;\n        this.uiKitService.isSmileyOn = true;\n        this.loader.reportCaseLoader = false;\n      },\n      error: (err) => {\n        this.loader.reportCaseLoader = false;\n      },\n    });\n  }\n\n  // Check validation for report a case\n  checkValidation(payload: any) {\n    return (\n      this.validateName(payload.name) &&\n      this.validateDescription(payload.description.text) &&\n      this.validateCaseType(payload.case_type.id) &&\n      this.validateReportDate(payload.occurrence_date)\n    );\n  }\n\n  checkAddToCaseValidation(payload: any) {\n    return (\n      this.validateName(payload?.name) &&\n      this.validateDescription(payload?.description?.text) &&\n      this.validateRc(payload) &&\n      this.validateCaseType(payload?.case_type?.id) &&\n      this.validateCasePriority(payload?.priority?.id) &&\n      this.validateCaseOwner(payload?.caseToWorkflow?.owners) &&\n      (this.validateCaseAssignee(payload?.caseToWorkflow?.assignees) ||\n        this.validateCaseAssigneeGroup(\n          payload?.caseToWorkflow?.assignees_group\n        )) &&\n      this.validateCaseResolutionDeadline(\n        payload?.caseToWorkflow?.resolution_deadline\n      )\n    );\n  }\n\n  validateName(name: string) {\n    if (!name) {\n      this.validationError.name.isError = true;\n      this.validationError.name.message = this.reportTexts.errorMessage.name;\n      return false;\n    }\n    return true;\n  }\n\n  validateDescription(description: string) {\n    if (!description) {\n      this.validationError.description.isError = true;\n      this.validationError.description.message =\n        this.reportTexts.errorMessage.description;\n      return false;\n    }\n    return true;\n  }\n\n  validateCaseType(caseType: string) {\n    if (!caseType) {\n      this.validationError.caseType.isError = true;\n      this.validationError.caseType.message =\n        this.reportTexts.errorMessage.caseType;\n      return false;\n    }\n    return true;\n  }\n\n  validateReportDate(reportDate: string) {\n    if (!reportDate) {\n      this.validationError.reportDate.isError = true;\n      this.validationError.reportDate.message =\n        this.reportTexts.errorMessage.reportDate;\n      return false;\n    }\n    return true;\n  }\n\n  validateCasePriority(priority: string) {\n    if (!priority) {\n      this.validationError.priority.isError = true;\n      this.validationError.priority.message =\n        this.reportTexts.errorMessage.priority;\n      return false;\n    }\n    return true;\n  }\n\n  validateRc(payload: any) {\n    if (!payload?.rc_details?.ids?.length) {\n      this.validationError.rc.isError = true;\n      this.validationError.rc.message = this.reportTexts.errorMessage.rc;\n      return false;\n    }\n    if (\n      payload?.rc_details?.ids?.length > 1 &&\n      !payload?.rc_details?.separate_rc_cases &&\n      !payload?.rc_details?.main_rc_id\n    ) {\n      this.validationError.mainRc.isError = true;\n      this.validationError.mainRc.message =\n        this.reportTexts.errorMessage.mainRc;\n      return false;\n    }\n    return true;\n  }\n\n  validateCaseOwner(owners: any) {\n    if (!owners?.length) {\n      this.validationError.caseOwner.isError = true;\n      this.validationError.caseOwner.message =\n        this.reportTexts.errorMessage.caseOwner;\n      return false;\n    }\n    return true;\n  }\n\n  validateCaseAssignee(assignees: any) {\n    if (!assignees?.length) {\n      if (!this.addToCasePayload?.caseToWorkflow?.assignees_group?.length) {\n        this.validationError.caseAssignee.isError = true;\n        this.validationError.caseAssignee.message =\n          this.reportTexts.errorMessage.caseAssignee;\n        return false;\n      }\n    }\n    return true;\n  }\n\n  validateCaseAssigneeGroup(assignees_group: any) {\n    if (!assignees_group?.length) {\n      if (!this.addToCasePayload?.caseToWorkflow?.assignees?.length) {\n        this.validationError.caseAssignee.isError = true;\n        this.validationError.caseAssignee.message =\n          this.reportTexts.errorMessage.caseAssignee;\n        return false;\n      }\n    }\n    return true;\n  }\n\n  validateCaseResolutionDeadline(resolutionDeadline: any) {\n    let caseAssignee: boolean = true;\n    resolutionDeadline?.stages_assignees?.forEach((stage: any) => {\n      if (!stage?.assignee_id) {\n        caseAssignee = false;\n      }\n    });\n    if (!resolutionDeadline?.due_date || !caseAssignee) {\n      this.validationError.caseResolutionDeadline.isError = true;\n      this.validationError.caseResolutionDeadline.message =\n        this.reportTexts.errorMessage.caseResolutionDeadline;\n      return false;\n    }\n    return true;\n  }\n\n  // field selector and de-selector\n  onFieldClicked(event: any) {\n    this.fieldClicked = event;\n    this.pickerToggle(event ? true : false);\n  }\n\n  addMoreInfo(event: any) {\n    this.additionalOptionStatus[event.code] = event.checked;\n    this.scrollToBottom = true;\n  }\n\n  setActiveFieldSelector(field: string, type: string) {\n    this.activeField = field;\n    this.activeSelector = type;\n    this.fieldClicked = field;\n    this.pickerToggle(true);\n  }\n\n  fieldDeselector(type: any) {\n    this.activeSelector = '';\n    this.activeField = '';\n    this.fieldClicked = '';\n    this.pickerToggle(false);\n  }\n\n  pickerToggle(type: boolean) {\n    this.pickerChanged.emit(type);\n  }\n\n  // Add Case to workflow\n  setException(type: any) {\n    this.addToCasePayload.caseToWorkflow.exception_type = type;\n  }\n\n  checkDescription() {\n    console.log(\n      this.addToCasePayload?.caseToWorkflow?.associated_risks?.text,\n      'text'\n    );\n  }\n\n  selectFile(type: string, files: any) {\n    switch (type) {\n      case 'ASSOCIATED_RISKS': {\n        for (let i = 0; i <= files.length - 1; i++) {\n          const name = files[i].file.name ?? '';\n          // this.addToCasePayload.associated_risks.attachments.push(name);\n          this.uploadFile(files[i].file, type);\n        }\n        break;\n      }\n    }\n  }\n\n  uploadFile(file: any, type: string) {\n    console.log(file, type, 'file');\n  }\n\n  setEvidence(value: any) {\n    this.addToCasePayload.caseToWorkflow.evidence_enabled = value;\n  }\n\n  deleteItem(type: any, element: any) {\n    switch (type) {\n      case 'CASE_CC': {\n        const itemIndex = this.selectedOversights.cc_list?.findIndex(\n          (item: any) => item?.employee_email === element?.employee_email\n        );\n        if (itemIndex !== -1) {\n          this.selectedOversights.cc_list?.splice(itemIndex, 1);\n        }\n        break;\n      }\n      case 'CASE_FCC': {\n        const itemIndex = this.selectedOversights.cc_failures_list?.findIndex(\n          (item: any) => item?.employee_email === element?.employee_email\n        );\n        if (itemIndex !== -1) {\n          this.selectedOversights.cc_failures_list?.splice(itemIndex, 1);\n        }\n        break;\n      }\n    }\n  }\n\n  selectorAction(evt: any, type: any) {\n    switch (type) {\n      case 'CASE_CC': {\n        this.selectedOversights.cc_list = evt;\n        this.getCcUsers(evt, 'cc');\n        this.fieldDeselector(type);\n        break;\n      }\n      case 'CASE_FCC': {\n        this.selectedOversights.cc_failures_list = evt;\n        this.getCcUsers(evt, 'fcc');\n        this.fieldDeselector(type);\n        break;\n      }\n    }\n    this.activeSelector = '';\n    this.fieldClicked = '';\n    this.pickerToggle(false);\n  }\n\n  getCcUsers(evt: any, type: string) {\n    const userList = this.userList?.filter((user: any) =>\n      evt?.includes(user?.employee_email)\n    );\n    if (type === 'cc') {\n      this.selectedOversights.cc_list = userList;\n    } else {\n      this.selectedOversights.cc_failures_list = userList;\n    }\n  }\n\n  filterOversights() {\n    this.addToCasePayload.caseToWorkflow.oversights.cc_ids =\n      this.selectedOversights.cc_list\n        ?.map((item: any) => item?._id)\n        ?.filter(Boolean) as any;\n    this.addToCasePayload.caseToWorkflow.oversights.cc_failures_ids =\n      this.selectedOversights.cc_failures_list\n        ?.map((item: any) => item?._id)\n        ?.filter(Boolean) as any;\n  }\n\n  filterResponsibilities(payload: any) {\n    if (this.openedFrom === 'COMPLIANCE_WORKROOM') {\n      this.payload.source = this.source;\n      const { rid, uid, rcid } = this.responsibilityData || {};\n      const allRespIds = [];\n      const transformed = [];\n  \n      for (const item of payload?.responsibilities_Linked || []) {\n        const { responsibilityId, assigneeBridgeId, responsibilityCenterBridgeId } = item;\n        if (responsibilityId != null) {\n          allRespIds.push(responsibilityId);\n          transformed.push({\n            rid: responsibilityId,\n            uid: assigneeBridgeId,\n            rcid: responsibilityCenterBridgeId,\n          });\n        }\n      }\n  \n      // Add current responsibility\n      if (rid != null) {\n        allRespIds.push(rid);\n        transformed.push( {\n          rid: rid,\n          uid: [uid], \n          rcid: [rcid],\n        });\n      }\n  \n      payload.responsibilities_Linked = allRespIds;\n      payload.linked_responsibilities_details = transformed;\n    }\n  }\n\n  filterAssessment(payload: any) {\n    if (\n      this.openedFrom === 'ASSESSMENT' ||\n      this.openedFrom === 'COMPLIANCE_WORKROOM'\n    ) {\n      const { rid, uid, rcid } = this.responsibilityData || {};\n      const {\n        addid,\n        aid,\n        questionId: question_id,\n        auditeeId: auditee_id,\n      } = this.assessmentQuestion || {};\n      this.payload.source = this.source;\n      payload.linked_assessment_issues = {\n        rid: this.source ? rid : '',\n        addid,\n        aid,\n        question_id,\n        auditee_id,\n        uid,\n        rcid,\n      };\n      payload.source = this.source;\n    }\n  }\n\n  addDueDateId(payload: any) {\n    const assessmentCompletion = JSON.parse(sessionStorage.getItem('wvData') || '{}').responsibilityData;\n    if (this.openedFrom === 'ASSESSMENT') {\n      payload.linked_assessment_issues.addid =\n        assessmentCompletion?.addid;\n    }\n  }\n\n  formatDueDate(date: any): string {\n    const utcDate = this.dateUtilityService.convertToUTC(date);\n    return utcDate.toISOString();\n  }\n  \n  updateDate() {\n    const date = this.formatDueDate(\n      this.addToCasePayload?.caseToWorkflow?.resolution_deadline?.due_date\n    );\n    this.addToCasePayload.caseToWorkflow.resolution_deadline.due_date = date;\n\n    this.addToCasePayload?.caseToWorkflow?.resolution_deadline?.stages_assignees?.forEach(\n      (stage: any) => {\n        stage.due_date = date;\n      }\n    );\n  }\n\n  addToCase() {\n    this.filterOversights();\n    const isValid = this.checkAddToCaseValidation(this.addToCasePayload);\n    if (!isValid) return;\n    this.updateDate();\n    if (this.workflowType === 'ACTW') {\n      this.addCaseToWorkflow();\n    } else if (this.mode === 'EDIT' && this.workflowType !== 'ACTW') {\n      this.filterResponsibilities(this.addToCasePayload);\n      this.filterAssessment(this.addToCasePayload);\n      this.updateAddToCase();\n    } else {\n      this.filterResponsibilities(this.addToCasePayload);\n      this.filterAssessment(this.addToCasePayload);\n      this.loader.reportCaseLoader = true;\n      this.reportACaseService.reportACase(this.addToCasePayload).subscribe({\n        next: (res: any) => {\n          this.caseData = { ...res?.data, source: this.source };\n          this.showSmiley = true;\n          this.uiKitService.isSmileyOn = true;\n          this.loader.reportCaseLoader = false;\n          this.handleCaseIdFromResponse(res);\n        },\n        error: (err) => {\n          this.loader.reportCaseLoader = false;\n        },\n      });\n    }\n  }\n\n  addCaseToWorkflow() {\n    this.loader.reportCaseLoader = true;\n    let payload = { ...this.addToCasePayload };\n    const workflowPayload = {\n      ...payload,\n      case_id: this.caseId,\n    };\n\n    this.reportACaseService.addCaseToWorkflow(workflowPayload).subscribe({\n      next: (res: any) => {\n        this.caseData = { ...res?.data, source: this.source };\n        this.showSmiley = true;\n        this.uiKitService.isSmileyOn = true;\n        this.loader.reportCaseLoader = false;\n        this.handleCaseIdFromResponse(res);\n      },\n      error: (err) => {\n        this.loader.reportCaseLoader = false;\n      },\n    });\n  }\n\n  updateAddToCase() {\n    this.loader.reportCaseLoader = true;\n    this.reportACaseService\n      .updateCase(this.addToCasePayload, this.caseId)\n      .subscribe({\n        next: (res: any) => {\n          this.caseData = { ...res?.data, source: this.source };\n          this.showSmiley = true;\n          this.uiKitService.isSmileyOn = true;\n          this.loader.reportCaseLoader = false;\n          this.handleCaseIdFromResponse(res);\n        },\n        error: (err) => {\n          this.loader.reportCaseLoader = false;\n        },\n      });\n  }\n\n  // Smiley actions\n  smileyActions(evt: any) {\n    if (evt === 'reportCase') {\n      this.resetForm();\n      this.showSmiley = false;\n      this.uiKitService.isSmileyOn = false;\n    } else if (evt === 'viewCase') {\n      this.showSmiley = false;\n      this.uiKitService.isSmileyOn = false;\n      this.viewCase();\n    }\n  }\n\n  viewCase() {\n    let url: string;\n    let urlSubstring = '';\n    this.disconnectRefresh.emit(false);\n    if (this.caseTypePermission) {\n      urlSubstring = '/case/reported-cases';\n    } else {\n      urlSubstring = '/case/reported-cases/reported-by-me';\n    }\n    url = 'https://' + window.location.host + urlSubstring;\n\n    this.iframeService.redirectIfInIframe(url, true);\n    this.resetForm();\n    this.closeSmiley();\n  }\n\n  resetForm() {\n    this.reportACaseReset();\n    this.addToCaseReset();\n  }\n\n  reportACaseReset() {\n    this.payload = JSON.parse(JSON.stringify(REPORT_CASE_PAYLOAD));\n  }\n\n  addToCaseReset() {\n    this.addToCasePayload.name = '';\n    this.addToCasePayload.description = { text: '', attachments: [] };\n    this.addToCasePayload.priority = { id: '', custom_fields: [] };\n    this.addToCasePayload.case_type = { id: '', custom_fields: [] };\n    this.addToCasePayload.rc_details = {\n      ids: [],\n      separate_rc_cases: false,\n      main_rc_id: '',\n    };\n    this.addToCasePayload.category = { ids: [], custom_fields: [] };\n    this.addToCasePayload.additional_category = { ids: [], custom_fields: [] };\n    this.addToCasePayload.risk_class = 0;\n    this.addToCasePayload.caseToWorkflow.assignees_group = [];\n    this.addToCasePayload.caseToWorkflow.owners = [];\n    this.addToCasePayload.caseToWorkflow.assignees = [];\n    this.addToCasePayload.caseToWorkflow.workflow_id = '';\n    this.addToCasePayload.caseToWorkflow.resolution_deadline = {\n      due_date: '',\n      stages_assignees: [],\n      assignee_remind_before: 0,\n      owner_remind_before: 0,\n    };\n    this.addToCasePayload.caseToWorkflow.exception_type = '';\n    this.addToCasePayload.caseToWorkflow.associated_risks = {\n      text: '',\n      attachments: [],\n    };\n    this.addToCasePayload.caseToWorkflow.evidence_enabled = false;\n    this.addToCasePayload.caseToWorkflow.recommendations = {\n      text: '',\n      attachments: [],\n    };\n    this.addToCasePayload.caseToWorkflow.oversights = {\n      cc_ids: [],\n      cc_failures_ids: [],\n    };\n    this.selectedOversights.cc_list = [];\n    this.selectedOversights.cc_failures_list = [];\n    this.additionalOptionStatus = { ...ADDITIONAL_OPTION_STATUS };\n  }\n\n  closeSmiley(evt?: any) {\n    this.resetForm();\n    this.showSmiley = false;\n    this.uiKitService.isSmileyOn = false;\n    this.closeWorkFlow(this.caseData, false);\n  }\n\n  closeWorkFlow(evt: any, confirm: any) {\n    this.closeWorkflow.emit({ evt, confirm });\n  }\n\n  onCaseLoader(event: any, type: string) {\n    switch (type) {\n      case 'type': {\n        this.loader.typeLoader = event;\n        break;\n      }\n      case 'priority': {\n        this.loader.priorityLoader = event;\n        break;\n      }\n    }\n  }\n\n  get displayAdditionalOptions() {\n    return (\n      this.additionalOptionStatus.EXCEPTION_TYPE ||\n      this.additionalOptionStatus.EVIDENCE ||\n      this.additionalOptionStatus.PRIORITY ||\n      this.additionalOptionStatus.ISSUE_TYPE ||\n      this.additionalOptionStatus.ASSOCIATED_RISKS ||\n      this.additionalOptionStatus.OVERSIGHT ||\n      this.additionalOptionStatus.RECOMMENDED_ACTIONS\n    );\n  }\n\n  get checkloader() {\n    if (this.mode === 'EDIT') {\n      return (\n        this.loader.typeLoader &&\n        this.loader.priorityLoader &&\n        this.loader.caseLoader &&\n        this.loader.groupListLoader &&\n        this.loader.userListLoader\n      );\n    }\n    return (\n      (this.loader.typeLoader && this.loader.priorityLoader) ||\n      (this.loader.permissionLoader && this.workflowType === 'ACTW') ||\n      this.loader.reportCaseLoader\n    );\n  }\n}\n","<div *ngIf=\"!showSmiley\" class=\"workflow-case\">\n  <app-case-type\n    *ngIf=\"mode !== 'EDIT' && caseTypePermission\"\n    [fieldSelected]=\"fieldClicked\"\n    (caseTypeChange)=\"onCaseTypeChange($event)\"\n  ></app-case-type>\n  <app-linked-responsibilities\n    *ngIf=\"['COMPLIANCE_WORKROOM', 'ASSESSMENT'].includes(openedFrom)\"\n    [payload]=\"\n      caseTypeSelected === caseType.REPORT_CASE ? payload : addToCasePayload\n    \"\n    [openedFrom]=\"openedFrom\"\n    [fieldSelected]=\"fieldClicked\"\n    [responsibilityData]=\"responsibilityData\"\n    (fieldClicked)=\"onFieldClicked($event)\"\n  ></app-linked-responsibilities>\n  <app-linked-assessment\n    *ngIf=\"openedFrom === 'ASSESSMENT'\"\n    [payload]=\"payload\"\n    [openedFrom]=\"openedFrom\"\n    [fieldSelected]=\"fieldClicked\"\n    [responsibilityData]=\"responsibilityData\"\n    [assessmentQuestion]=\"assessmentQuestion\"\n    (fieldClicked)=\"onFieldClicked($event)\"\n  ></app-linked-assessment>\n  <app-case-details\n    [payload]=\"\n      caseTypeSelected === caseType.REPORT_CASE ? payload : addToCasePayload\n    \"\n    [fieldSelected]=\"fieldClicked\"\n    [validationError]=\"validationError\"\n    [caseTypeSelected]=\"caseTypeSelected\"\n  ></app-case-details>\n  <span\n    *ngIf=\"caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW\"\n    class=\"head-label vx-fs-10 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\"\n  >\n    CASE DETAILS\n  </span>\n  <app-information-block\n    *ngIf=\"caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW\"\n  ></app-information-block>\n  <app-rc-details\n    [payload]=\"\n      caseTypeSelected === caseType.REPORT_CASE ? payload : addToCasePayload\n    \"\n    [fieldSelected]=\"fieldClicked\"\n    [caseTypeSelected]=\"caseTypeSelected\"\n    [validationError]=\"validationError\"\n    [initialSelection]=\"\n      caseTypeSelected === caseType.REPORT_CASE\n        ? payload?.rc_details\n        : addToCasePayload?.rc_details\n    \"\n    [mode]=\"mode\"\n    [workflowType]=\"workflowType\"\n    (fieldClicked)=\"onFieldClicked($event)\"\n    (onRcChange)=\"onRcChange($event)\"\n    (filterDeselector)=\"pickerToggle($event)\"\n  ></app-rc-details>\n  <app-case-type-dropdown\n    [payload]=\"\n      caseTypeSelected === caseType.REPORT_CASE ? payload : addToCasePayload\n    \"\n    [fieldSelected]=\"fieldClicked\"\n    [validationError]=\"validationError\"\n    [initialSelection]=\"\n      caseTypeSelected === caseType.REPORT_CASE\n        ? payload?.case_type\n        : addToCasePayload?.case_type\n    \"\n    [mode]=\"mode\"\n    [caseTypeSelected]=\"caseTypeSelected\"\n    [workflowType]=\"workflowType\"\n    (onCaseTypeChange)=\"onCaseTypeDropdownChange($event)\"\n    (onCaseTypeLoading)=\"onCaseLoader($event, 'type')\"\n  ></app-case-type-dropdown>\n  <app-case-category\n    [payload]=\"\n      caseTypeSelected === caseType.REPORT_CASE ? payload : addToCasePayload\n    \"\n    [fieldSelected]=\"fieldClicked\"\n    [caseTypeSelected]=\"caseTypeSelected\"\n    [initialSelection]=\"\n      caseTypeSelected === caseType.REPORT_CASE\n        ? payload?.category\n        : addToCasePayload?.category\n    \"\n    [initialAdditionalSelection]=\"\n      caseTypeSelected === caseType.REPORT_CASE\n        ? payload?.additional_category\n        : addToCasePayload?.additional_category\n    \"\n    [mode]=\"mode\"\n    [workflowType]=\"workflowType\"\n    (onCategoryChange)=\"onCategoryChange($event)\"\n    (fieldClicked)=\"onFieldClicked($event)\"\n    (filterDeselector)=\"pickerToggle($event)\"\n  ></app-case-category>\n  <app-report-date\n    [payload]=\"\n      caseTypeSelected === caseType.REPORT_CASE ? payload : addToCasePayload\n    \"\n    [fieldSelected]=\"fieldClicked\"\n    [validationError]=\"validationError\"\n    (fieldClicked)=\"onFieldClicked($event)\"\n  ></app-report-date>\n  <app-case-priority\n    [payload]=\"\n      caseTypeSelected === caseType.REPORT_CASE ? payload : addToCasePayload\n    \"\n    [fieldSelected]=\"fieldClicked\"\n    [caseTypeSelected]=\"caseTypeSelected\"\n    [validationError]=\"validationError\"\n    [initialSelection]=\"\n      caseTypeSelected === caseType.REPORT_CASE\n        ? payload?.priority\n        : addToCasePayload?.priority\n    \"\n    [mode]=\"mode\"\n    [workflowType]=\"workflowType\"\n    (onPriorityChange)=\"onPriorityChange($event)\"\n    (onPriorityLoader)=\"onCaseLoader($event, 'priority')\"\n  ></app-case-priority>\n  <span\n    *ngIf=\"caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW\"\n    class=\"head-label vx-fs-10 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\"\n  >\n    USER DETAILS\n  </span>\n  <app-case-owners\n    *ngIf=\"caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW\"\n    [payload]=\"addToCasePayload\"\n    [initialSelection]=\"addToCasePayload?.caseToWorkflow?.owners\"\n    [workflowId]=\"addToCasePayload?.caseToWorkflow?.workflow_id\"\n    [fieldSelected]=\"fieldClicked\"\n    [validationError]=\"validationError\"\n    [mode]=\"mode\"\n    (fieldClicked)=\"onFieldClicked($event)\"\n    (filterDeselector)=\"pickerToggle($event)\"\n  ></app-case-owners>\n  <app-case-assignees\n    *ngIf=\"caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW\"\n    [payload]=\"addToCasePayload\"\n    [fieldSelected]=\"fieldClicked\"\n    [initialSelection]=\"addToCasePayload?.caseToWorkflow\"\n    [userList]=\"userList\"\n    [groupList]=\"groupList\"\n    [validationError]=\"validationError\"\n    (fieldClicked)=\"onFieldClicked($event)\"\n    (filterDeselector)=\"pickerToggle($event)\"\n  ></app-case-assignees>\n  <app-field-holder\n    *ngIf=\"caseTypeSelected === caseType.REPORT_CASE\"\n    [image]=\"ASSETS.format_evidence\"\n    [disabled]=\"fieldSelector?.includes(fieldClicked)\"\n    [checked]=\"payload?.supporting_documents?.length\"\n  >\n    <ng-container field>\n      <app-vc-label\n        label\n        [labelText]=\"reportTexts.case_details.attachments.title\"\n      ></app-vc-label>\n      <app-format-and-evidence\n        (updateFiles)=\"saveSupportingDocument($event)\"\n        [mode]=\"'reportACase'\"\n        [formatEvidanceData]=\"payload?.supporting_documents\"\n      ></app-format-and-evidence>\n    </ng-container>\n  </app-field-holder>\n  <span\n    *ngIf=\"caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW\"\n    class=\"head-label vx-fs-10 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4 vx-mb-4\"\n  >\n    CASE RESOLUTION DETAILS\n  </span>\n  <app-case-resolution-deadline\n    *ngIf=\"caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW\"\n    [payload]=\"addToCasePayload\"\n    [userList]=\"userList\"\n    [groupList]=\"groupList\"\n    [initialSelection]=\"addToCasePayload?.caseToWorkflow\"\n    [fieldSelected]=\"fieldClicked\"\n    [mode]=\"mode\"\n    [caseId]=\"caseId\"\n    (fieldClicked)=\"onFieldClicked($event)\"\n    [validationError]=\"validationError\"\n    (filterDeselector)=\"pickerToggle($event)\"\n  ></app-case-resolution-deadline>\n  <span\n    *ngIf=\"\n      caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW &&\n      displayAdditionalOptions\n    \"\n    class=\"head-label vx-fs-10 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\"\n  >\n    ADDITIONAL OPTIONS\n  </span>\n  <!-- Exception Type -->\n  <app-field-holder\n    *ngIf=\"\n      additionalOptionStatus.EXCEPTION_TYPE &&\n      caseTypeSelected === caseType.ADD_CASE_TO_WORKFLOW\n    \"\n    [scrollToBottom]=\"scrollToBottom\"\n    [active]=\"false\"\n    [disabled]=\"fieldSelector?.includes(fieldClicked)\"\n    [checked]=\"addToCasePayload?.caseToWorkflow?.exception_type\"\n    [image]=\"ASSETS.objectives\"\n  >\n    <ng-container field>\n      <label class=\"vx-control-panel\">Exception Type</label>\n      <app-cs-radio\n        class=\"main-filed\"\n        [value]=\"exceptionType.DESIGN_EXCEPTION\"\n        name=\"exception-type\"\n        [checked]=\"\n          addToCasePayload?.caseToWorkflow?.exception_type ===\n          exceptionType.DESIGN_EXCEPTION\n        \"\n        (checkedEvent)=\"setException(exceptionType.DESIGN_EXCEPTION)\"\n        >Design Exception\n      </app-cs-radio>\n      <app-cs-radio\n        class=\"main-filed\"\n        [value]=\"exceptionType.EFFECTIVENESS_EXCEPTION\"\n        name=\"exception-type\"\n        [checked]=\"\n          addToCasePayload?.caseToWorkflow?.exception_type ===\n          exceptionType.EFFECTIVENESS_EXCEPTION\n        \"\n        (checkedEvent)=\"setException(exceptionType.EFFECTIVENESS_EXCEPTION)\"\n        >Effectiveness Exception\n      </app-cs-radio>\n    </ng-container>\n  </app-field-holder>\n\n  <!-- Associated Risks -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    *ngIf=\"additionalOptionStatus.ASSOCIATED_RISKS\"\n    [class.disabled]=\"fieldSelector?.includes(fieldClicked)\"\n  >\n    <div\n      class=\"left\"\n      [class.checked]=\"addToCasePayload?.caseToWorkflow?.associated_risks?.text\"\n    >\n      <img\n        [src]=\"ASSETS.associated_risks\"\n        alt=\"im\"\n        *ngIf=\"\n          !addToCasePayload?.caseToWorkflow?.associated_risks?.text?.trim()\n            ?.length\n        \"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"\n          addToCasePayload?.caseToWorkflow?.associated_risks?.text?.trim()\n            .length\n        \"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Associated Risks </label>\n        <ng-container\n          *ngIf=\"\n            addToCasePayload?.caseToWorkflow?.associated_risks?.attachments\n              ?.length > 0\n          \"\n        >\n          <div\n            class=\"file-list\"\n            *ngFor=\"\n              let uploadingFile of addToCasePayload?.caseToWorkflow\n                ?.associated_risks?.attachments\n            \"\n          >\n            <div class=\"file-container\">\n              <span class=\"file-name\">{{ uploadingFile }}</span>\n            </div>\n          </div>\n        </ng-container>\n        <ng-container\n          *ngIf=\"\n            addToCasePayload?.caseToWorkflow?.associated_risks?.attachments\n              ?.length > 0\n          \"\n        >\n          <div\n            class=\"file-list\"\n            *ngFor=\"\n              let file of addToCasePayload?.caseToWorkflow?.associated_risks\n                ?.attachments\n            \"\n          >\n            <div class=\"file-container\">\n              <span class=\"file-name\">{{ file?.name }}</span>\n              <button>\n                <i class=\"icons\" (click)=\"deleteFile(file, 'ASSOCIATED_RISKS')\"\n                  >&#xe90d;</i\n                >\n              </button>\n            </div>\n          </div>\n        </ng-container>\n        <vcomply-editor\n          [(ngModel)]=\"addToCasePayload.caseToWorkflow.associated_risks.text\"\n          [editorConfig]=\"{\n            mode: 'prime',\n            colorPalette: true,\n            link: true,\n            file: false,\n            placeholder: 'Associated Risks'\n          }\"\n          (clickOutside)=\"checkDescription()\"\n          (sendSavedFiles)=\"selectFile('ASSOCIATED_RISKS', $event)\"\n        ></vcomply-editor>\n      </div>\n    </div>\n  </div>\n\n  <!-- Overseer -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    [class.active]=\"false\"\n    *ngIf=\"additionalOptionStatus.OVERSIGHT\"\n    [class.disabled]=\"fieldSelector?.includes(fieldClicked)\"\n  >\n    <div\n      class=\"left\"\n      [class.checked]=\"\n        addToCasePayload?.caseToWorkflow?.oversights?.cc_ids?.length ||\n        addToCasePayload?.caseToWorkflow?.oversights?.cc_failures_ids?.length\n      \"\n    >\n      <img\n        [src]=\"ASSETS.oversight\"\n        alt=\"\"\n        *ngIf=\"\n          !(\n            addToCasePayload?.caseToWorkflow?.oversights?.cc_ids?.length ||\n            addToCasePayload?.caseToWorkflow?.oversights?.cc_failures_ids\n              ?.length\n          )\n        \"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        *ngIf=\"\n          addToCasePayload?.caseToWorkflow?.oversights?.cc_ids?.length ||\n          addToCasePayload?.caseToWorkflow?.oversights?.cc_failures_ids?.length\n        \"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Oversight</label>\n        <div class=\"select\" *ngIf=\"!selectedOversights?.cc_list?.length\">\n          <input\n            type=\"text\"\n            (click)=\"setActiveFieldSelector('CASE_CC', 'CASE_CC')\"\n            placeholder=\"Who should have oversight of this case?\"\n            readonly\n          />\n        </div>\n\n        <div class=\"selected\" *ngIf=\"selectedOversights?.cc_list?.length\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"deleteItem('CASE_CC', selectedOversights?.cc_list[0])\"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"selectedOversights?.cc_list[0]?.employee_name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ selectedOversights?.cc_list[0]?.employee_name }}</span\n            >\n            <button\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"CC.popover()\"\n              placement=\"right\"\n              *ngIf=\"selectedOversights?.cc_list?.length > 1\"\n            >\n              +{{ selectedOversights?.cc_list?.slice(1).length }}\n            </button>\n          </div>\n          <button\n            *ngIf=\"activeField !== 'CASE_CC'\"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"setActiveFieldSelector('CASE_CC', 'CASE_CC')\"\n          >\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n        <div\n          class=\"select\"\n          *ngIf=\"\n            !selectedOversights?.cc_failures_list ||\n            selectedOversights?.cc_failures_list?.length === 0\n          \"\n        >\n          <input\n            (click)=\"setActiveFieldSelector('CASE_FCC', 'CASE_FCC')\"\n            type=\"text\"\n            placeholder=\"Who should be notified if the case is not resolved?\"\n            readonly\n          />\n        </div>\n\n        <div\n          class=\"selected\"\n          *ngIf=\"selectedOversights?.cc_failures_list?.length\"\n        >\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"\n                deleteItem('CASE_FCC', selectedOversights?.cc_failures_list[0])\n              \"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"\n                selectedOversights?.cc_failures_list[0]?.employee_name\n              \"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{\n                selectedOversights?.cc_failures_list[0]?.employee_name\n              }}</span\n            >\n            <button\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"FCC.popover()\"\n              placement=\"right\"\n              *ngIf=\"selectedOversights?.cc_failures_list?.length > 1\"\n            >\n              +{{ selectedOversights?.cc_failures_list?.slice(1)?.length }}\n            </button>\n          </div>\n          <button\n            *ngIf=\"activeField !== 'CASE_FCC'\"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"setActiveFieldSelector('CASE_FCC', 'CASE_FCC')\"\n          >\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n      </div>\n      <app-popover #CC [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li\n              *ngFor=\"\n                let cc of selectedOversights?.cc_list | slice : 1;\n                let j = index\n              \"\n            >\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i class=\"icons\" (click)=\"deleteItem('CASE_CC', cc)\"\n                    >&#xe90d;</i\n                  >\n                  {{ cc?.employee_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <app-popover #FCC [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li\n              *ngFor=\"\n                let fcc of selectedOversights?.cc_failures_list | slice : 1;\n                let j = index\n              \"\n            >\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i class=\"icons\" (click)=\"deleteItem('CASE_FCC', fcc)\"\n                    >&#xe90d;</i\n                  >\n                  {{ fcc?.employee_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </div>\n  </div>\n\n  <!-- Evidence -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    *ngIf=\"additionalOptionStatus.EVIDENCE\"\n    [class.disabled]=\"fieldSelector?.includes(fieldClicked)\"\n  >\n    <div class=\"left\" [class.checked]=\"true\">\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Evidence</label>\n        <div class=\"upload-format\">\n          <span class=\"text\"\n            >Do you want evidence of completion of the case to be\n            uploaded?</span\n          >\n          <div class=\"radio-group\">\n            <app-cs-radio\n              [name]=\"'file-evidence'\"\n              [value]=\"1\"\n              [checked]=\"addToCasePayload?.caseToWorkflow?.evidence_enabled\"\n              (checkedEvent)=\"setEvidence(true)\"\n              >Yes\n            </app-cs-radio>\n            <app-cs-radio\n              [name]=\"'file-evidence'\"\n              [value]=\"0\"\n              [checked]=\"!addToCasePayload?.caseToWorkflow?.evidence_enabled\"\n              (checkedEvent)=\"setEvidence(false)\"\n              >No\n            </app-cs-radio>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- Recommended Actions -->\n  <div\n    class=\"form-group-row\"\n    *ngIf=\"additionalOptionStatus.RECOMMENDED_ACTIONS\"\n    [class.disabled]=\"fieldSelector?.includes(fieldClicked)\"\n  >\n    <div\n      class=\"left\"\n      [class.checked]=\"addToCasePayload?.caseToWorkflow?.recommendations?.text\"\n    >\n      <img\n        [src]=\"ASSETS.recommended_action\"\n        alt=\"im\"\n        *ngIf=\"\n          !(\n            addToCasePayload?.caseToWorkflow?.recommendations?.text\n            | spaceBreaker\n          )?.length\n        \"\n      />\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"\n          (\n            addToCasePayload?.caseToWorkflow?.recommendations?.text\n            | spaceBreaker\n          )?.length > 0\n        \"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Recommended Actions</label>\n        <ng-container\n          *ngIf=\"\n            addToCasePayload?.caseToWorkflow?.recommendations?.attachments\n              ?.length > 0\n          \"\n        >\n          <div\n            class=\"file-list\"\n            *ngFor=\"\n              let uploadingFile of addToCasePayload?.caseToWorkflow\n                ?.recommendations?.attachments\n            \"\n          >\n            <div class=\"file-container\">\n              <span class=\"file-name\">{{ uploadingFile }}</span>\n            </div>\n            <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\n          </div>\n        </ng-container>\n        <ng-container\n          *ngIf=\"\n            addToCasePayload?.caseToWorkflow?.recommendations?.attachments\n              ?.length > 0\n          \"\n        >\n          <div\n            class=\"file-list\"\n            *ngFor=\"\n              let file of addToCasePayload?.caseToWorkflow?.recommendations\n                ?.attachments\n            \"\n          >\n            <div class=\"file-container\">\n              <span class=\"file-name\">{{ file?.name }}</span>\n              <button>\n                <i\n                  class=\"icons\"\n                  (click)=\"deleteFile(file, 'RECOMMENDED_ACTIONS')\"\n                  >&#xe90d;</i\n                >\n              </button>\n            </div>\n          </div>\n        </ng-container>\n        <vcomply-editor\n          [(ngModel)]=\"addToCasePayload.caseToWorkflow.recommendations.text\"\n          [editorConfig]=\"{\n            mode: 'prime',\n            colorPalette: true,\n            link: true,\n            file: true,\n            placeholder: 'Recommended actions'\n          }\"\n          (ngModelChange)=\"\n            addToCasePayload?.caseToWorkflow?.recommendations?.text?.trim()\n              ?.length > 0\n              ? removeError('issueRecommendation')\n              : null\n          \"\n          (clickOutside)=\"checkDescription()\"\n          (sendSavedFiles)=\"selectFile('RECOMMENDED_ACTIONS', $event)\"\n        ></vcomply-editor>\n      </div>\n    </div>\n  </div>\n  <!-- Risk Classification -->\n  <div\n    *ngIf=\"additionalOptionStatus.RISK_CLASSIFICATION\"\n    class=\"form-group-row\"\n    id=\"risk_classification\"\n    [class.disabled]=\"fieldSelector?.includes(fieldClicked)\"\n  >\n    <div class=\"left\" [class.checked]=\"addToCasePayload.risk_class\">\n      <img [src]=\"ASSETS.risks\" alt=\"im\" *ngIf=\"!addToCasePayload.risk_class\" />\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"addToCasePayload.risk_class\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Risk Classification</label>\n        <div class=\"classification\">\n          <label\n            class=\"low\"\n            *ngFor=\"let class of riskClassification\"\n            [ngClass]=\"[class.class]\"\n          >\n            <input\n              type=\"radio\"\n              name=\"classification\"\n              [value]=\"class.value\"\n              [checked]=\"addToCasePayload.risk_class === class.value\"\n              [(ngModel)]=\"addToCasePayload.risk_class\"\n            />\n            <span>{{ class.name }}</span>\n          </label>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n<app-loader-inline *ngIf=\"checkloader\"></app-loader-inline>\n<app-checkbox-list\n  [config]=\"oversight_config\"\n  [twoColumn]=\"true\"\n  [itemsList]=\"userList\"\n  [selectedItems]=\"selectedOversights?.cc_list\"\n  [identifierKey]=\"'employee_email'\"\n  [displayKey]=\"'employee_name'\"\n  [tooltipKey]=\"'employee_email'\"\n  *ngIf=\"activeSelector === 'CASE_CC'\"\n  (saveList)=\"selectorAction($event, 'CASE_CC')\"\n  (closeList)=\"fieldDeselector('CASE_CC')\"\n  [loaded]=\"loader.userListLoader\"\n></app-checkbox-list>\n\n<app-checkbox-list\n  [config]=\"oversight_config\"\n  [twoColumn]=\"true\"\n  [itemsList]=\"userList\"\n  [selectedItems]=\"selectedOversights?.cc_failures_list\"\n  [identifierKey]=\"'employee_email'\"\n  [displayKey]=\"'employee_name'\"\n  [tooltipKey]=\"'employee_email'\"\n  *ngIf=\"activeSelector === 'CASE_FCC'\"\n  (saveList)=\"selectorAction($event, 'CASE_FCC')\"\n  (closeList)=\"fieldDeselector('CASE_FCC')\"\n  [loaded]=\"loader.userListLoader\"\n></app-checkbox-list>\n\n<app-smiley-dialog-inline\n  *ngIf=\"showSmiley\"\n  [message]=\"smileyMessage\"\n  [actionButtons]=\"actionButtons\"\n  (action)=\"smileyActions($event)\"\n  (closeSmiley)=\"closeSmiley($event)\"\n></app-smiley-dialog-inline>\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional, signal, WritableSignal } from '@angular/core';\nimport { catchError, of, retry, map, BehaviorSubject } from 'rxjs';\nimport { AuthService } from '../auth.service';\nimport { Configurations } from '../../configurations';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class RiskCommonService {\n  private riskCategory: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n  private riskSettings: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n\n  env: any;\n\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config?.envConfig;\n    }\n  }\n\n  private getRiskCategory(params?: any, headers?: any) {\n    return this.http\n      ?.get<any[]>(this.env?.riskGet + 'category/list', {\n        params,\n        headers,\n      })\n      .pipe(\n        map((res) => this.setRiskCategory(res)),\n        catchError((error) => {\n          console.error('Error fetching Risk Category List', error);\n          return of(null);\n        })\n      );\n  }\n\n  private setRiskCategory(data: any) {\n    this.riskCategory?.next(data);\n    return data;\n  }\n\n  public getRiskCategoryInfo(params?: any, headers?: any) {\n    if (this.riskCategory?.getValue()) {\n      return of(this.riskCategory?.value);\n    }\n    return this.getRiskCategory(params, headers);\n  }\n\n  private getRiskSettings(headers?: any) {\n    return this.http\n      ?.get<any[]>(this.env?.riskGet + 'settings/GetRiskSettingsDetails', {\n        headers,\n      })\n      .pipe(\n        map((res) => this.setRiskSettings(res)),\n        catchError((error) => {\n          console.error('Error fetching Risk Settings', error);\n          return of(null);\n        })\n      );\n  }\n\n  private setRiskSettings(data: any) {\n    this.riskSettings?.next(data);\n    return data;\n  }\n\n  public getRiskSettingsInfo(headers?: any) {\n    if (this.riskSettings?.getValue()) {\n      return of(this.riskSettings?.value);\n    }\n    return this.getRiskSettings(headers);\n  }\n}\n","import { HttpClient, HttpBackend, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { catchError, retry } from 'rxjs/operators';\nimport { AuthService } from './auth.service';\nimport { Configurations } from '../configurations';\nimport { RiskCommonService } from './common-workflow-services/risk-common.service';\nimport { BehaviorSubject, of, map } from 'rxjs';\n@Injectable({\n  providedIn: 'root',\n})\nexport class AddRiskService {\n  env!: any;\n  private orgUserRisk: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n  private rcList: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n  private groupList: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n  private adminList: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    private riskCommonService: RiskCommonService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  getAdminKeyAdminList() {\n    if (this.adminList?.getValue()) {\n      return of(this.adminList?.value);\n    }\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env.organizationGet + 'organisationUsersList&type=admin_keyadmin',\n        { headers }\n      )\n      .pipe(\n        map((res) => {\n          this.adminList?.next(res);\n          return res;\n        }),\n        catchError((error) => {\n          return of(null);\n        })\n      )\n      .pipe(retry(2));\n  }\n\n  getCategoryList() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.riskCommonService?.getRiskCategoryInfo({}, headers);\n  }\n\n  getOrganizationUsers() {\n    if (this.orgUserRisk?.getValue()) {\n      return of(this.orgUserRisk?.value);\n    }\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.organizationGet + 'organizationUsers&from=risk', {\n        headers,\n      })\n      .pipe(\n        map((res) => {\n          this.orgUserRisk?.next(res);\n          return res;\n        }),\n        catchError((error) => {\n          return of(null);\n        })\n      )\n      .pipe(retry(2));\n  }\n\n  getResponsibilityCenterList(rcArray: any[], riskId: String) {\n    if (this.rcList?.getValue()) {\n      return of(this.rcList?.value);\n    }\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    if (riskId?.length > 0) {\n      return this.http\n        .post<any[]>(\n          this.env.riskPost +\n            'risk/responsibilityCenterList' +\n            '&risk_id=' +\n            riskId,\n          { rc_id_arr: rcArray ?? [] },\n          { headers }\n        )\n        .pipe(retry(2));\n    } else {\n      return this.http\n        .post<any[]>(\n          this.env.riskPost + 'risk/responsibilityCenterList',\n          { rc_id_arr: rcArray ?? [] },\n          { headers }\n        )\n        .pipe(\n          map((res) => {\n            this.rcList?.next(res);\n            return res;\n          }),\n          catchError((error) => {\n            return of(null);\n          })\n        )\n        .pipe(retry(2));\n    }\n  }\n\n  getRiskSettingDetails() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.riskCommonService?.getRiskSettingsInfo(headers);\n  }\n\n  downLoadFile(data: any, type: string, filename: string) {\n    if (window.navigator && (window.navigator as any)?.msSaveOrOpenBlob) {\n      const blob = new Blob([this.base64ToArrayBuffer(data)], { type });\n      (window.navigator as any)?.msSaveOrOpenBlob(blob, filename);\n    } else {\n      const url = 'data:' + type.toString() + ';base64,' + data;\n      const a = document.createElement('a');\n      a.setAttribute('href', url);\n      a.setAttribute('download', filename);\n      a.style.visibility = 'hidden';\n      document.body.appendChild(a);\n      a.click();\n      document.body.removeChild(a);\n    }\n    return 'DOWNLOADED';\n  }\n\n  base64ToArrayBuffer(base64: any) {\n    const binaryString = window.atob(base64);\n    const len = binaryString.length;\n    const bytes = new Uint8Array(len);\n    for (let i = 0; i < len; i++) {\n      bytes[i] = binaryString.charCodeAt(i);\n    }\n    return bytes.buffer;\n  }\n\n  downloadTemplate(categoryId: string) {\n    const headers = new HttpHeaders({\n      token: this.authService.getAuthorizationToken(),\n    });\n    return this.http.get(\n      this.env?.riskGet + 'template/riskBulkUpload&catgeory_id=' + categoryId,\n      { headers, observe: 'events', reportProgress: true }\n    );\n  }\n\n  downloadResponsibilityTemplate(version?: any) {\n    const headers = new HttpHeaders({\n      token: this.authService.getAuthorizationToken(),\n    });\n    return this.http.get(\n      this.env.complianceGet +\n        'template/report' +\n        (version === 'v2' ? '/v2' : '') + '&serviceType=1',\n      { headers, observe: 'events', reportProgress: true }\n    );\n  }\n\n  addRisk(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<any>(this.env.risk + 'risk/CreateRisk', payload, { headers })\n      .pipe(retry(2));\n  }\n\n  addBulkRisk(payload: any[]) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<any>(this.env.riskPost + 'risk/BulkUpload', payload, { headers })\n      .pipe(retry(2));\n  }\n\n  getRiskDetail(riskId: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<any>(\n        this.env.riskPost +\n          'risk/RiskDetailsById&RiskId=' +\n          riskId +\n          '&callFrom=RISK_EDIT',\n        {},\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  updateRisk(riskId: string, payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<any>(this.env.risk + 'risk/CreateRisk&RiskId=' + riskId, payload, {\n        headers,\n      })\n      .pipe(retry(2));\n  }\n\n  //To get groupList\n  getGroupsList() {\n    if (this.groupList?.getValue()) {\n      return of(this.groupList?.value);\n    }\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env.organizationGet +\n          'groupsList&permType=managerisks&fetch_all=true',\n        {\n          headers,\n        }\n      )\n      .pipe(\n        map((res) => {\n          this.groupList?.next(res);\n          return res;\n        }),\n        catchError((error) => {\n          return of(null);\n        })\n      )\n      .pipe(retry(2));\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'search'\n})\nexport class SearchPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    const key = args[1];\n    if(value && value?.length){\n      const searchTerm = args[0]?.toLowerCase()?.trim();\n      return value?.filter((ele:any) => {return ele[key]?.toLowerCase().includes(searchTerm?.toLowerCase()) || ele[key]?.toString()?.toLowerCase()?.includes(searchTerm)});\n    }else{\n      return [];\n    }\n  \n  }\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ASSETS } from '../../../../../lib/constants/assets.constants';\n\n@Component({\n  selector: 'vui-pagination',\n  templateUrl: './pagination.component.html',\n  styleUrls: ['./pagination.component.less'],\n})\nexport class PaginationComponent {\n  ASSETS = ASSETS;\n  currPage = 1;\n  @Input() from: number = 1;\n  @Input() to: number = 30;\n  @Input() total: any = 100;\n  @Input() showPageDetail: boolean = true;\n  @Input() totalPage: number = 15;\n  @Input('currentPage') set setPage(page: any) {\n    this.currPage = page;\n    this.displayArrayUpdate(page);\n  }\n  @Input('totalPage') set setTotalPage(page: any) {\n    this.totalPage = page;\n    this.displayArrayUpdate(page);\n    this.startArray();\n  }\n  @Input() pageInSingleView: number = 5;\n  @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\n  public displayArray: any = [];\n  enterPageNo!: number | any;\n  enterPressed = false;\n  isInvalidInput: boolean = false;\n\n  //Function responsible to generate the array to display the pagination at the beginning\n  startArray() {\n    this.displayArray = [];\n    if (this.totalPage <= this.pageInSingleView) {\n      for (let i = 1; i <= this.totalPage; ++i) {\n        this.displayArray.push(i);\n      }\n    } else if (this.pageInSingleView < this.totalPage) {\n      for (let i = 1; i <= this.pageInSingleView; ++i) {\n        this.displayArray.push(i);\n      }\n    }\n  }\n\n  //Function responsible for update the current page while clicking prev or next button\n  currentIndexUpdate(value: number) {\n    this.currPage += value;\n    if (\n      this.currPage <= this.totalPage &&\n      this.currPage >\n        this.pageInSingleView - Math.floor(this.pageInSingleView / 2) &&\n      this.totalPage > this.pageInSingleView\n    ) {\n      this.displayArrayUpdate(this.currPage);\n    } else if (this.currPage <= this.pageInSingleView) {\n      this.displayArray = [];\n      this.startArray();\n    }\n    this.pageChanged.emit(this.currPage);\n    this.enterPageNo = null;\n    this.enterPressed = false;\n  }\n\n  //Function responsible for updating the current page while clicking on any page number\n  currentIndexAssign(value: number) {\n    this.currPage = value;\n    if (\n      this.currPage <= this.totalPage &&\n      this.currPage >\n        this.pageInSingleView - Math.floor(this.pageInSingleView / 2) &&\n      this.totalPage > this.pageInSingleView\n    ) {\n      this.displayArrayUpdate(this.currPage);\n    } else if (this.currPage <= this.pageInSingleView) {\n      this.displayArray = [];\n      this.startArray();\n    }\n    this.pageChanged.emit(this.currPage);\n    this.enterPageNo = null;\n    this.enterPressed = false;\n  }\n\n  //Number validation check\n  validateNumber(e: any) {\n    const pattern = /^-?(0|[1-9]\\d*)?$/;\n    return pattern.test(e);\n  }\n\n  //Function responsible for updating the current page while entering the page number\n  onEnterPress(event: any) {\n    if (event.key.toLowerCase() === 'enter') {\n      this.enterPressed = true;\n      if (\n        this.enterPageNo <= this.totalPage &&\n        this.enterPageNo > 0 &&\n        this.enterPageNo &&\n        this.validateNumber(this.enterPageNo)\n      ) {\n        this.currPage = this.enterPageNo;\n        if (\n          this.currPage <= this.totalPage &&\n          this.currPage >\n            this.pageInSingleView - Math.floor(this.pageInSingleView / 2) &&\n          this.totalPage > this.pageInSingleView\n        ) {\n          this.displayArrayUpdate(this.currPage);\n        } else if (this.currPage <= this.pageInSingleView) {\n          this.displayArray = [];\n          this.startArray();\n        }\n        this.pageChanged.emit(this.currPage);\n      }\n    }\n  }\n\n  //Function responsible for manipulating the displayArray\n  displayArrayUpdate(index: any) {\n    if (\n      this.currPage >\n        this.pageInSingleView - Math.floor(this.pageInSingleView / 2) &&\n      this.currPage <= this.totalPage - Math.floor(this.pageInSingleView / 2) &&\n      this.totalPage > this.pageInSingleView\n    ) {\n      if (this.pageInSingleView % 2 != 0) {\n        let appendElement = this.pageInSingleView / 2;\n        appendElement = Math.floor(appendElement);\n        let startIndex = this.currPage - appendElement;\n        let endIndex = this.currPage + appendElement;\n\n        this.displayArray = [];\n        for (let i = startIndex; i <= endIndex; ++i) {\n          this.displayArray.push(i);\n        }\n      } else if (this.pageInSingleView % 2 === 0) {\n        let appendElement = this.pageInSingleView / 2;\n        let startIndex = this.currPage - appendElement;\n        let endIndex = this.currPage + appendElement - 1;\n        this.displayArray = [];\n        for (let i = startIndex; i <= endIndex; ++i) {\n          this.displayArray.push(i);\n        }\n      }\n    } else if (\n      this.currPage >\n      this.totalPage - Math.floor(this.pageInSingleView / 2)\n    ) {\n      this.displayArray = [];\n      for (\n        let i = this.totalPage - this.pageInSingleView + 1;\n        i <= this.totalPage;\n        ++i\n      ) {\n        this.displayArray.push(i);\n      }\n    }\n    this.displayArray = this.displayArray.filter((ele: any) => ele > 0);\n  }\n}\n","<div\n  class=\"pagination-sec-ds vx-d-flex vx-align-center vx-pb-2\"\n  [class.right-align]=\"false\"\n>\n  <div class=\"left vx-label-txt vx-fs-12 vx-fw-400 vx-tt-uppercase vx-lh-6\">\n    <ng-container *ngIf=\"showPageDetail\"\n      >SHOWING {{ from }} - {{ to }} OF {{ total }} RECORDS</ng-container\n    >\n    <div class=\"pagination-box\" *ngIf=\"false\">\n      <ul class=\"vx-d-flex vx-align-center vx-m-0 vx-p-0\">\n        <li class=\"vx-d-flex\">\n          <button\n            class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-2 vx-pr-2 vx-m-0\"\n            [class.active]=\"true\"\n          >\n            All\n          </button>\n        </li>\n        <li class=\"vx-d-flex\">\n          <button\n            class=\"vx-d-inline-flex vx-align-center vx-justify-center vx-label-txt vx-fw-400 vx-fs-11 vx-tt-uppercase vx-pl-2 vx-pr-2 vx-m-0\"\n            [class.active]=\"false\"\n          >\n            A\n          </button>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"right vx-d-flex vx-align-center\" *ngIf=\"totalPage > 1\">\n    <div class=\"pagination-box\">\n      <ul class=\"vx-d-flex vx-align-center vx-m-0 vx-p-0\">\n        <li class=\"vx-d-flex vx-mr-1\">\n          <button\n            class=\"vx-m-0\"\n            [class.disabled]=\"currPage === 1\"\n            (click)=\"currentIndexUpdate(-1)\"\n          >\n            <i class=\"icons vx-fs-10\">&#xe96b;</i>\n          </button>\n        </li>\n\n        <li class=\"vx-d-flex\" *ngFor=\"let page of displayArray; let i = index\">\n          <button\n            (click)=\"currentIndexAssign(page)\"\n            class=\"vx-label-txt vx-fs-11 vx-fw-400 vx-pl-1 vx-pr-1 vx-d-inline-flex vx-align-center vx-justify-center vx-m-0 vx-ml-1\"\n            [class.active]=\"currPage == page\"\n          >\n            {{ page }}\n          </button>\n        </li>\n\n        <li class=\"vx-d-flex vx-ml-2\">\n          <button\n            class=\"vx-m-0\"\n            [class.disabled]=\"currPage === totalPage\"\n            (click)=\"currentIndexUpdate(1)\"\n          >\n            <i class=\"icons vx-fs-10\">&#xe970;</i>\n          </button>\n        </li>\n      </ul>\n    </div>\n\n    <div class=\"goto-page vx-d-flex vx-align-center vx-ml-2\">\n      <div\n        class=\"goto-page-text vx-label-txt vx-fs-11 vx-tt-uppercase vx-d-block vx-pl-2 vx-pr-2\"\n      >\n        GO TO\n      </div>\n      <div class=\"goto-page-input\">\n        <input\n          (ngModelChange)=\"enterPressed = false\"\n          [class.invalid]=\"enterPageNo > totalPage && enterPressed\"\n          type=\"number\"\n          [(ngModel)]=\"enterPageNo\"\n          (keyup)=\"onEnterPress($event)\"\n          placeholder=\"Page No.\"\n        />\n        <button>\n          <img [src]=\"ASSETS.enter_icon\" alt=\"\" />\n        </button>\n      </div>\n      <div\n        class=\"goto-page-text vx-label-txt vx-fs-11 vx-tt-uppercase vx-d-block vx-pl-2 vx-pr-2\"\n      >\n        OF {{ totalPage }}\n      </div>\n    </div>\n  </div>\n</div>\n","\n\nimport { Component, forwardRef, Provider } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst CHECKBOX_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => CheckboxComponent),\n  multi: true,\n};\n\n@Component({\n  selector: 'vui-checkbox',\n  templateUrl: './checkbox.component.html',\n  styleUrls: ['./checkbox.component.less'],\n  providers: [CHECKBOX_VALUE_ACCESSOR],\n  inputs:['disabled','checked','indeterminateEnabled'],\n\n})\nexport class CheckboxComponent implements ControlValueAccessor{\n  disabled !:boolean | any;\n  checked !:boolean | any;\n  indeterminateEnabled !:boolean | any;\n  onChanged = (value:any) => {};\n  onTouched = () => {};\n\n  writeValue(value: boolean): void {\n    this.checked = value ?? false\n  }\n  registerOnChange(fn: any): void {\n    this.onChanged = fn;\n  }\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n  valueChanged(){\n \n    this.checked = !this.checked;\n    this.onChanged(this.checked);\n    this.onTouched();\n  }\n}\n","<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\n    <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"valueChanged()\"/>\n    <span class=\"checkbox\">\n      <span class=\"inner\"></span>\n    </span>\n    <!-- svg for checkmark -->\n    <ng-container *ngIf=\"!indeterminateEnabled\">\n        <svg  class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n            <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n            <path class=\"checkmark__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n          </svg>\n    </ng-container>\n   \n    <ng-container *ngIf=\"indeterminateEnabled\">\n        <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n            <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n            <path fill=\"none\" d=\"M37.9,27H14v-2h23.9V27z\"/>\n          </svg>\n    </ng-container>\n \n    <span class=\"value\"><ng-content></ng-content></span>\n  </label>\n  ","import {\n  Component,\n  Input,\n  OnInit,\n  Output,\n  EventEmitter,\n  OnChanges,\n} from '@angular/core';\n\n@Component({\n  selector: 'vui-floating-bar',\n  templateUrl: './floating-bar.component.html',\n  styleUrls: ['./floating-bar.component.less'],\n})\nexport class VuiFloatingBarComponent implements OnInit, OnChanges {\n  @Input() selectedData: any;\n  @Input() groupSelected: any;\n  @Input() displayElementKey = '';\n  @Input() elementId: any = '';\n  @Input() singularText = '';\n  @Input() pluralText = '';\n  @Input() showNextButton = true;\n  @Input() showFrequencyText = false;\n  @Input() showWorkflow = false;\n  @Input() workflowText = '';\n  @Input() currentFrequency = '';\n  @Input() isDisabled = false;\n  @Input() workflowList = [\n    'SEQUENTIAL',\n    'ANY REVIEWER CAN MARK THIS AS REVIEWED',\n  ];\n  @Input() selectedWorkflow: any;\n  @Input() workflowPlaceHolder: any;\n  @Input() mode: string = 'CREATE';\n  @Input() nextDisabled = false;\n  @Input() nonRemovableUsersList: any = [];\n  @Input() removePosition: any;\n  @Output() closeEvent: EventEmitter<any> = new EventEmitter();\n  @Output() deleteEvent: EventEmitter<number> = new EventEmitter();\n  @Output() closeList: EventEmitter<any> = new EventEmitter();\n  @Output() workflowTypeChanged: EventEmitter<any> = new EventEmitter();\n  constructor() {\n    this.selectedData = [];\n  }\n\n  ngOnChanges() {\n    if (this.groupSelected?.length) {\n      this.selectedWorkflow = 'ANY REVIEWER CAN MARK THIS AS REVIEWED';\n    }\n  }\n\n  ngOnInit(): void {}\n\n  next() {\n    this.closeEvent.emit(this.selectedData);\n  }\n\n  deleteSelected(index: number) {\n    this.deleteEvent.emit(index);\n  }\n  close() {\n    this.closeList.emit();\n  }\n  selectedWorkflowType(event: any) {\n    // debugger\n  }\n\n  selectedWorkflowChange(event: any) {\n    this.workflowTypeChanged.emit(event);\n  }\n}\n","<div class=\"reviewer-floating-bar\">\n  <div class=\"reviewer-floating-bar-container\">\n    <div class=\"left\">\n      <!-- <ng-container *ngIf=\"selectedData.length > 0\">\n        <div class=\"counter\" *ngIf=\"selectedData?.length\"\n          placement=\"left\">{{selectedData?.length}}</div>\n        <div class=\"name\" *ngIf=\"selectedData?.length>1\">\n          <span *ngIf=\"selectedData?.slice(1).length === 1\">{{singularText}}</span>\n          <span *ngIf=\"selectedData?.slice(1).length > 1\">{{pluralText}}</span>\n        </div>\n      </ng-container> -->\n      <ng-content> </ng-content>\n    </div>\n    <div\n      class=\"center\"\n      *ngIf=\"showWorkflow && (mode === 'CREATE' || mode === 'EDIT')\"\n    >\n      <label>REVIEWER<br />WORKFLOW</label>\n      <cs-select\n        [(ngModel)]=\"selectedWorkflow\"\n        (ngModelChange)=\"selectedWorkflowChange($event)\"\n        [placeholder]=\"selectedWorkflow\"\n        [class.disabled]=\"\n          groupSelected.length &&\n          selectedWorkflow === 'ANY REVIEWER CAN MARK THIS AS REVIEWED'\n        \"\n      >\n        <cs-option *ngFor=\"let data of workflowList\" [value]=\"data\">\n          {{ data }}\n        </cs-option>\n      </cs-select>\n    </div>\n\n    <div class=\"right\">\n      <button appRipple class=\"cancel\" (click)=\"close()\">Cancel</button>\n      <button\n        *ngIf=\"showNextButton\"\n        [disabled]=\"nextDisabled\"\n        (click)=\"next()\"\n        appRipple\n      >\n        Next <i class=\"icons\">&#xe91e;</i>\n      </button>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { SearchPipe } from '../pipes/search.pipe';\nimport { ASSETS } from '../../../constants/assets.constants';\n\n@Component({\n  selector: 'user-group-list',\n  templateUrl: './user-group-list.component.html',\n  styleUrls: ['./user-group-list.component.less'],\n})\nexport class UserGroupListComponent implements OnInit {\n  ASSETS = ASSETS;\n  @Output() save = new EventEmitter();\n  @Output() cancel = new EventEmitter();\n  @Input() groupEnabled!: false;\n  @Input() panelTitle = 'Select User(s)';\n  @Input() singleSelect = false;\n  @Input() selectedReviewer = false;\n  @Input() featureflag = false;\n  @Input() reviewerWorkflowType: string = 'SEQUENTIAL';\n  @Output() reviewerWorkflowTypeChange = new EventEmitter();\n  @Input() mode: string = 'CREATE';\n  @Input() fieldType = '';\n  searchKey = '';\n  isPagination: any;\n  approvalWorkflowType: 'ANYONE' | 'ROUNDROBIN' | 'SEQUENTIAL' = 'SEQUENTIAL';\n  usersList: any = [];\n  groupsList: any = [];\n  @Input() fromResponsibility: any;\n  @Input() assignorId: any[] = [];\n  @Input() assigneeIds: any[] = [];\n  @Input() reviewerIds: any[] = [];\n  @Input() overseerIds: any[] = [];\n  @Input() FromProgram = false;\n  @Input() userListInfo!: any;\n  @Input() groupListInfo!: any;\n  @Input() fromApprovalWorkflow: boolean = false;\n  @Input() set approvalType(value: 'ANYONE' | 'ROUNDROBIN' | 'SEQUENTIAL') {\n    this.approvalWorkflowType = value;\n  }\n  @Input() showFutureUsersSwitch: boolean = false;\n  @Input() futureUsersWillSelect: boolean = false;\n  @Input() isAllDisabled: boolean = false;\n  @Input() isGroupTabShow: boolean = true;\n\n  @Output() fetchUserData = new EventEmitter();\n\n  @Input() disabledIds: any = [];\n  @Input() nonRemovableUserIds: any = [];\n  @Input() allUserSelectedDisabled = false;\n  selectedUsers: any = [];\n  selectedUserIds: any = [];\n  allUsersIds: any = [];\n  allUserSelected = false;\n\n  @Input() nonRemovableGroupIds: any = [];\n  selectedGroups: any = [];\n  selectedGroupIds: any = [];\n  allGroupsIds: any = [];\n  allGroupSelected = false;\n  allGroupSelectedDisabled = false;\n  searchPipe = new SearchPipe();\n\n  userCurrentPage = 1;\n  groupCurrentPage = 1;\n  @Input() loading: boolean = false;\n  nonDisabledUsers: any[] = [];\n  @Input('userlist') set setUserList(value: any) {\n    if (value && value?.length) {\n      this.usersList = [...value];\n      this.allUsersIds = this.usersList.map((ele: any) => ele?.member_id);\n      this.allUserSelectedStatus();\n      this.setUserListInit();\n    }\n  }\n\n  @Input('selectedUsers') set setSelectedUser(value: any) {\n    if (value?.length) {\n      this.selectedUsers = this.uniqueByProp(\n        [...this.selectedUsers, ...value],\n        'member_id'\n      );\n      this.selectedUserIds = this.selectedUsers.map(\n        (ele: any) => ele?.member_id\n      );\n      this.allUserSelectedStatus();\n      this.setUserListInit();\n    }\n  }\n\n  defaultSelectedUsers: any = [];\n  defaultSelectedUserIds: any = [];\n  @Input('defaultSelectedUsers') set setDefaultSelectedUsers(value: any) {\n    this.defaultSelectedUsers = this.uniqueByProp(\n      [...this.defaultSelectedUsers, ...value],\n      'member_id'\n    );\n    this.defaultSelectedUserIds = this.defaultSelectedUsers.map(\n      (ele: any) => ele?.member_id\n    );\n  }\n  @Input() userType: string = 'assignees';\n  showConfirmation = false;\n\n  setUserListInit() {\n    if (this.userCurrentPage === 1) {\n      const selected = this.selectedUsers;\n      const otherUser = this.usersList.filter(\n        (ele: any) => !this.selectedUserIds.includes(ele?.member_id)\n      );\n      this.usersList = this.uniqueByProp(\n        [...selected?.sort(), ...otherUser?.sort()],\n        'member_id'\n      );\n    }\n  }\n  allUserSelectedStatus() {\n    this.allUserSelected =\n      this.allUsersIds.sort().toString() ===\n      this.selectedUserIds.sort()?.toString();\n    this.allUserSelectedDisabled =\n      this.allUsersIds.sort().toString() ===\n      this.selectedUserIds.sort()?.toString() &&\n      this.allUsersIds.sort().toString() ===\n      this.nonRemovableUserIds.sort()?.toString();\n  }\n\n  @Input('groupList') set setGroupList(value: any) {\n    if (value && value?.length) {\n      this.groupsList = [...value];\n      this.allGroupsIds = this.groupsList.map((ele: any) => ele?.group_id);\n      this.allGroupSelectedStatus();\n      this.setGroupListInit();\n    }\n  }\n\n  @Input('selectedGroups') set setSelectedGroup(value: any) {\n    this.selectedGroups = this.uniqueByProp(\n      [...this.selectedGroups, ...value],\n      'group_id'\n    );\n    this.selectedGroupIds = this.selectedGroups.map(\n      (ele: any) => ele?.group_id\n    );\n    this.allGroupSelectedStatus();\n    this.setGroupListInit();\n  }\n\n  setGroupListInit() {\n    if (this.userCurrentPage === 1) {\n      const selected = this.selectedGroups;\n      const otherGroup = this.groupsList.filter(\n        (ele: any) => !this.selectedGroupIds.includes(ele?.group_id)\n      );\n      this.groupsList = this.uniqueByProp(\n        [...selected?.sort(), ...otherGroup?.sort()],\n        'group_id'\n      );\n    }\n  }\n  allGroupSelectedStatus() {\n    this.allGroupSelected =\n      this.allGroupsIds?.sort()?.toString() ===\n      this.selectedGroupIds?.sort()?.toString();\n    this.allGroupSelectedDisabled =\n      this.allGroupsIds.sort().toString() ===\n      this.selectedGroupIds.sort()?.toString() &&\n      this.allGroupsIds.sort().toString() ===\n      this.nonRemovableGroupIds.sort()?.toString();\n  }\n\n  userPageChange(page: any) {\n    this.userCurrentPage = page;\n    this.fetchUserData.emit({ page, searchKey: this.searchKey });\n  }\n\n  /**\n   * #### Description\n   * Selects item or deselect a itme\n   * @param evt\n   * @param payload\n   */\n  selectItem(evt: any, payload: any) {\n    evt?.target?.checked === true\n      ? this.manipulateSelectedUser('ADD', payload)\n      : this.manipulateSelectedUser('DELETE', payload);\n  }\n\n  selectItemRadio(evt: any, payload: any) {\n    if (evt?.target?.checked) {\n      this.selectedUsers = [];\n      this.manipulateSelectedUser('ADD', payload);\n    }\n  }\n\n  /**\n   * #### Description\n   *\n   * Manipulates selected items in role list\n   * @param action :'ADD' | 'DELETE'\n   * @param payload\n   */\n  manipulateSelectedUser(action: 'ADD' | 'DELETE', payload: any) {\n    if (action === 'ADD') {\n      this.selectedUsers = this.uniqueByProp(\n        [...this.selectedUsers, ...[payload]],\n        'member_id'\n      );\n      this.selectedUserIds = this.selectedUsers.map(\n        (ele: any) => ele?.member_id\n      );\n    } else if (action === 'DELETE') {\n      let index = this.selectedUsers.findIndex(\n        (ele: any) => ele?.member_id === payload?.member_id\n      );\n      if (index > -1) {\n        this.selectedUsers = this.selectedUsers.filter(\n          (ele: any) => ele?.member_id !== payload?.member_id\n        );\n        this.selectedUserIds = this.selectedUserIds.filter(\n          (ele: any) => ele !== payload?.member_id\n        );\n      }\n    }\n    this.allUserSelectedStatus();\n  }\n  selectAllUser(evt: any) {\n    const isChecked = evt?.target?.checked === true;\n    const sourceUsers = this.fromResponsibility ? this.disableUsers() : this.usersList;\n    \n    if (isChecked) {\n      this.selectedUsers = sourceUsers;\n      this.selectedUserIds = this.selectedUsers.map((user: { member_id: string | number }) => user?.member_id);\n    } else {\n      this.selectedUsers = this.usersList.filter((user: { member_id: string | number }) => \n        this.nonRemovableUserIds.includes(user?.member_id)\n      );\n      this.selectedUserIds = this.selectedUsers.map((user: { member_id: string | number }) => user?.member_id);\n    }\n    \n    this.allUserSelectedStatus();\n  }\n\n  /**\n   * #### Description\n   * Selects item or deselect a itme\n   * @param evt\n   * @param payload\n   */\n  selectGroup(evt: any, payload: any) {\n    evt?.target?.checked === true\n      ? this.manipulateSelectedGroup('ADD', payload)\n      : this.manipulateSelectedGroup('DELETE', payload);\n  }\n\n  /**\n   * #### Description\n   *\n   * Manipulates selected items in role list\n   * @param action :'ADD' | 'DELETE'\n   * @param payload\n   */\n  manipulateSelectedGroup(action: 'ADD' | 'DELETE', payload: any) {\n    if (action === 'ADD') {\n      this.selectedGroups = this.uniqueByProp(\n        [...this.selectedGroups, ...[payload]],\n        'group_id'\n      );\n      this.selectedGroupIds = this.selectedGroups.map(\n        (ele: any) => ele?.group_id\n      );\n    } else if (action === 'DELETE') {\n      let index = this.selectedGroups.findIndex(\n        (ele: any) => ele?.group_id === payload?.group_id\n      );\n      if (index > -1) {\n        this.selectedGroups = this.selectedGroups.filter(\n          (ele: any) => ele?.group_id !== payload?.group_id\n        );\n        this.selectedGroupIds = this.selectedGroupIds.filter(\n          (ele: any) => ele !== payload?.group_id\n        );\n      }\n    }\n    this.allGroupSelectedStatus();\n  }\n  selectAllGroup(evt: any) {\n    const groupData = this.searchPipe.transform(\n      this.groupsList,\n      this.searchKey,\n      'group_name'\n    );\n    if (evt?.target?.checked === true) {\n      this.selectedGroups = groupData;\n      this.selectedGroupIds = groupData.map((ele: any) => ele?.group_id);\n    } else {\n      this.selectedGroups = this.groupsList.filter((ele: any) =>\n        this.nonRemovableGroupIds.includes(ele?.group_id)\n      );\n      this.selectedGroupIds = this.selectedGroups.map(\n        (ele: any) => ele?.group_id\n      );\n    }\n    this.allGroupSelectedStatus();\n  }\n\n  animation = true;\n  constructor() { }\n\n  ngOnInit(): void {\n    let disabledIds = [...this.disabledIds, ...this.nonRemovableUserIds];\n    this.disabledIds = [...new Set(disabledIds)];\n    this.paginationVisible();\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n  currentTab = 'USER';\n  switchTab(tab: string) {\n    this.currentTab = tab;\n    this.searchKey = '';\n  }\n\n  saveList() {\n    if (\n      this.defaultSelectedUserIds &&\n      this.defaultSelectedUserIds?.length &&\n      this.selectedUserIds &&\n      this.selectedUserIds?.length\n    ) {\n      this.defaultSelectedUserIds?.forEach((id: number): any => {\n        if (!this.selectedUserIds?.includes(id)) {\n          this.showConfirmation = true;\n        }\n      });\n    } else {\n      this.showConfirmation = false;\n    }\n    if (!this.showConfirmation)\n      this.save.emit({\n        users: this.selectedUsers,\n        groups: this.selectedGroups,\n        futureUsersWillSelect: this.futureUsersWillSelect,\n      });\n  }\n\n  confirmAction(evt: 'YES' | 'NO') {\n    if (evt === 'YES') {\n      this.save.emit({\n        users: this.selectedUsers,\n        groups: this.selectedGroups,\n        futureUsersWillSelect: this.futureUsersWillSelect,\n      });\n    } else if (evt === 'NO') {\n      this.showConfirmation = false;\n    }\n  }\n\n  closeList() {\n    this.cancel.emit();\n  }\n\n  //\n\n  /**\n   * #### Description\n   *\n   * Returns the unique array of object based on unique key\n   * @param array\n   * @param key\n   * @returns\n   */\n  uniqueByProp(array: any, key: string) {\n    return Array.from(\n      array\n        .reduce(\n          (acc: any, item: any) => (\n            item && item[key] && acc.set(item[key], item), acc\n          ),\n          new Map()\n        )\n        .values()\n    );\n  }\n\n  paginationVisible() {\n    if (this.userListInfo?.total_pages > 1) {\n      this.isPagination = true;\n    } else {\n      this.isPagination = false;\n    }\n  }\n  workflowTypeChanged(event: string) {\n    this.reviewerWorkflowType = event;\n    this.reviewerWorkflowTypeChange.emit(event);\n  }\n\n  disableUsers() {\n    switch (this.fromResponsibility) {\n      case 'Assignee':\n        this.nonDisabledUsers = this.usersList.filter(\n          (user: any) =>\n            !(\n              this.reviewerIds?.includes(user?.member_id) ||\n              this.overseerIds?.includes(user?.member_id)\n            )\n        );\n        break;\n      case 'Reviewer':\n        this.nonDisabledUsers = this.usersList.filter(\n          (user: any) =>\n            !(\n              this.overseerIds?.includes(user?.member_id) ||\n              this.assigneeIds?.includes(user?.member_id)\n            )\n        );\n        break;\n      case 'Overseer':\n        this.nonDisabledUsers = this.usersList.filter(\n          (user: any) =>\n            !(\n              this.assignorId?.includes(user?.member_id) ||\n              this.reviewerIds?.includes(user?.member_id) ||\n              this.assigneeIds?.includes(user?.member_id)\n            )\n        );\n        break;\n        case 'collaborator':\n          this.nonDisabledUsers = this.usersList.filter(\n            (user: any) =>\n              !(\n                this.disabledIds?.includes(user?.member_id)\n              )\n          );\n        break;\n      default:\n    }\n    return this.nonDisabledUsers;\n  }\n\n  setAllUsersSelected(event: any) {\n    this.futureUsersWillSelect = event;\n    if (event) {\n      this.selectedUsers = [];\n      this.selectedGroups = [];\n      this.selectedUserIds = [];\n      this.selectedGroupIds = [];\n    }\n  }\n}\n","<div class=\"user-group-list\" [class.animate]=\"animation\">\n  <div class=\"user-group-list-head\">\n    <h3 class=\"user-group-list-title\">{{ panelTitle }}</h3>\n  </div>\n  <div class=\"user-group-list-body\">\n    <div class=\"user-group-list-body-inner\">\n      <app-loader-inline *ngIf=\"loading\"></app-loader-inline>\n      <div class=\"user-group-list-tab vx-d-flex vx-align-center vx-justify-between vx-mb-2\" *ngIf=\"groupEnabled\">\n        <div class=\"vx-d-flex vx-align-center\">\n          <button (click)=\"switchTab('USER')\"\n            class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n            [class.active]=\"currentTab === 'USER'\">\n            USERS\n            <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{\n              searchKey?.length && currentTab === \"USER\"\n              ? (usersList | search : searchKey : 'member_name')?.length\n              : usersList?.length || userListInfo?.total_items\n              }}</span>\n          </button>\n          <button *ngIf=\"isGroupTabShow\" (click)=\"switchTab('GROUP')\"\n            class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n            [class.active]=\"currentTab === 'GROUP'\">\n            {{ featureflag ? \"USER GROUPS\" : \"GROUPS\" }}\n            <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{\n              searchKey?.length && currentTab === \"GROUP\"\n              ? (groupsList | search : searchKey : \"group_name\")?.length\n              : groupsList?.length || groupListInfo?.total_items\n              }}</span>\n          </button>\n        </div>\n\n        <div class=\"future-user vx-d-flex vx-align-center\" *ngIf=\"showFutureUsersSwitch\">\n          <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">\n            Visible to All Current & Future Users\n          </div>\n          <i class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1 vx-mr-1\" [appTooltip]=\"\n              'If selected, this policy will be visible to all users that are currently active in your VComply account and users that might be added in the future.'\n            \" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n          <app-cs-switch [ngValue]=\"futureUsersWillSelect\" (ngValueChange)=\"setAllUsersSelected($event)\">\n          </app-cs-switch>\n        </div>\n      </div>\n\n      <div class=\"search-block vx-mb-2\">\n        <i class=\"icons\">&#xe90b;</i>\n        <input *ngIf=\"!featureflag\" [(ngModel)]=\"searchKey\" type=\"text\" placeholder=\"{{\n            currentTab === 'USER' ? 'Search User' : 'Search Group'\n          }}\" />\n        <input *ngIf=\"featureflag\" [(ngModel)]=\"searchKey\" type=\"text\" placeholder=\"{{\n            currentTab === 'USER' ? 'Search User' : 'Search User Group'\n          }}\" />\n      </div>\n\n      <ng-container *ngIf=\"currentTab === 'USER' && !loading\">\n        <ng-container *ngIf=\"usersList | search : searchKey : 'member_name' as users\">\n          <vui-pagination *ngIf=\"\n              userListInfo?.total_pages > 1 &&\n              usersList?.length !== userListInfo?.total_items\n            \" [currentPage]=\"userCurrentPage\" [totalPage]=\"userListInfo?.total_pages\"\n            (pageChanged)=\"userPageChange($event)\"></vui-pagination>\n          <div class=\"user-group-list-mid\" [class.with-pagination]=\"isPagination\">\n            <ng-container *ngIf=\"users?.length > 0; else nouser\">\n              <div class=\"user-list-select vx-mb-2\">\n                <vui-checkbox *ngIf=\"!singleSelect\" #user [checked]=\"allUserSelected || futureUsersWillSelect\"\n                  [disabled]=\"\n                    allUserSelectedDisabled ||\n                    futureUsersWillSelect ||\n                    isAllDisabled\n                  \" (change)=\"selectAllUser($event)\">\n                  <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">\n                    {{ !user?.checked ? \"Select All\" : \"Deselect All\" }}\n                  </div>\n                </vui-checkbox>\n              </div>\n              <div class=\"user-list-item\">\n                <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\n                  <ng-container *ngFor=\"let user of users\">\n                    <li class=\"vx-mb-3\" *ngIf=\"!singleSelect\" [appTooltip]=\"\n                        user\n                          | tooltipMessage\n                            : fromResponsibility\n                            : reviewerIds\n                            : overseerIds\n                            : assignorId\n                            : assigneeIds\n                            : 'member_id'\n                            : disabledIds?.includes(user?.member_id)\n                            : FromProgram\n                      \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                      <vui-checkbox (change)=\"selectItem($event, user)\" [disabled]=\"\n                          disabledIds?.includes(user?.member_id) ||\n                          futureUsersWillSelect ||\n                          isAllDisabled\n                        \" [checked]=\"\n                          selectedUserIds?.includes(user?.member_id) ||\n                          futureUsersWillSelect\n                        \">\n                        <div class=\"user-name\">\n                          {{ user?.member_name }}\n                        </div>\n                      </vui-checkbox>\n                    </li>\n                    <li class=\"vx-mb-3\" *ngIf=\"singleSelect\">\n                      <app-cs-radio [name]=\"'radio-selector'\" (checkedEvent)=\"selectItemRadio($event, user)\"\n                        [name]=\"'rx-category'\" [checked]=\"selectedUserIds?.includes(user?.member_id)\"\n                        [appTooltip]=\"user?.member_email\" placement=\"bottom-left\" delay=\"0\" [tooltipMandatory]=\"true\">\n                        {{ user?.member_name }}\n                      </app-cs-radio>\n                    </li>\n                  </ng-container>\n                </ul>\n              </div>\n            </ng-container>\n            <ng-template #nouser>\n              <app-no-data *ngIf=\"!loading\" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"\n                  searchKey?.length > 0 ? 'No match found.' : 'No Users found.'\n                \"></app-no-data>\n            </ng-template>\n          </div>\n        </ng-container>\n      </ng-container>\n\n      <ng-container *ngIf=\"currentTab === 'GROUP'\">\n        <ng-container *ngIf=\"groupsList | search : searchKey : 'group_name' as groups\">\n          <div class=\"user-group-list-mid\" [class.with-pagination]=\"isPagination\">\n            <ng-container *ngIf=\"groups?.length > 0; else nogroup\">\n              <div class=\"user-list-select vx-mb-2\">\n                <vui-checkbox #group [checked]=\"allGroupSelected\" [disabled]=\"allGroupSelectedDisabled\"\n                  (change)=\"selectAllGroup($event)\">\n                  <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">\n                    {{ !group?.checked ? \"Select All\" : \"Deselect All\" }}\n                  </div>\n                </vui-checkbox>\n              </div>\n              <div class=\"user-list-item\">\n                <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\n                  <li class=\"vx-mb-3\" *ngFor=\"let group of groups\">\n                    <vui-checkbox (change)=\"selectGroup($event, group)\" [disabled]=\"\n                        nonRemovableGroupIds?.includes(group?.group_id)\n                      \" [checked]=\"selectedGroupIds?.includes(group?.group_id)\">\n                      <div class=\"user-name vx-d-flex vx-align-center vx-w-100\" [appTooltip]=\"group?.group_name\"\n                        placement=\"bottom-left\" delay=\"0\" [tooltipMandatory]=\"true\">\n                        <div class=\"group-name\">{{ group?.group_name }}</div>\n                        <span class=\"counter vx-fs-9 vx-fw-600 vx-pl-1 vx-pr-1 vx-lh-3 vx-tt-uppercase\">{{\n                          group?.member_count }}\n                          {{ group?.member_count > 1 ? \"USERS\" : \"USER\" }}</span>\n                      </div>\n                    </vui-checkbox>\n                  </li>\n                </ul>\n              </div>\n            </ng-container>\n            <ng-template #nogroup>\n              <app-no-data *ngIf=\"!loading\" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"\n                  searchKey?.length > 0\n                    ? 'No match found.'\n                    : 'No data to display.'\n                \"></app-no-data>\n            </ng-template>\n          </div>\n        </ng-container>\n      </ng-container>\n    </div>\n\n    <div class=\"user-group-list-footer\">\n      <vui-floating-bar *ngIf=\"\n          (!singleSelect || (!singleSelect && selectedReviewer)) && !loading\n        \" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\" (workflowTypeChanged)=\"workflowTypeChanged($event)\"\n        [selectedWorkflow]=\"reviewerWorkflowType\" [showWorkflow]=\"selectedReviewer\" [groupSelected]=\"selectedGroups\"\n        [mode]=\"mode\" [nextDisabled]=\"fromApprovalWorkflow && selectedUsers?.length === 0\">\n        <ng-container *ngIf=\"!groupEnabled\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n            *ngFor=\"let element of selectedUsers?.slice(0, 1); let i = index\">\n            <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\"\n              (click)=\"selectItem({ target: { checked: false } }, element)\">&#xe9ae;</i>\n            <div *ngIf=\"\n                fromApprovalWorkflow &&\n                approvalWorkflowType.toLowerCase() === 'sequential'\n              \" class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\">\n              {{ 1 == selectedUsers?.length ? \"Final\" : 1 }}\n            </div>\n            <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"element?.member_name\" placement=\"bottom-left\"\n              delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ element?.member_name }}</span>\n            <button *ngIf=\"selectedUsers?.length > 1\"\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n              appPopover (click)=\"groupDisable.popover()\" placement=\"left\">\n              +{{ selectedUsers?.slice(1)?.length }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip\" *ngFor=\"let element of selectedUsers?.slice(0,1);let i = index\"><i *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\" (click)=\"selectItem({target:{checked:false}},element)\" class=\"icons\">&#xe90d;</i> <span>{{element?.member_name}}</span></div>\n              <div class=\"counter\" *ngIf=\"selectedUsers?.length>1\" appPopover (click)=\"groupDisable.popover()\"\n              placement=\"left\">+{{selectedUsers?.slice(1)?.length}}</div> -->\n        </ng-container>\n        <div class=\"user-group-chip\" *ngIf=\"selectedUsers?.length && groupEnabled\">\n          <i class=\"icons cross\" *ngIf=\"!nonRemovableUserIds?.includes(selectedUsers[0]?.member_id)\" (click)=\"\n              selectItem({ target: { checked: false } }, selectedUsers[0])\n            \">&#xe9ae;</i>\n          <div class=\"user-group-name\">{{ selectedUsers[0]?.member_name }}</div>\n          <ng-container *ngIf=\"groupEnabled\">\n            <div class=\"counter\" *ngIf=\"selectedUsers?.length > 1\" appPopover (click)=\"userCount.popover()\"\n              placement=\"left\">\n              +{{ selectedUsers?.length - 1 }}\n            </div>\n          </ng-container>\n        </div>\n        <div class=\"name userGroup-name\">\n          <!-- {{selectedGroups && selectedGroups?.length > 0 ?' & ':''}} -->\n          <span class=\"userGroup-text\" *ngIf=\"selectedUsers?.length === 1\">User {{ selectedGroups?.length > 0 ? \" & \" :\n            \" selected\" }}</span>\n          <span class=\"userGroup-text\" *ngIf=\"selectedUsers?.length > 1\">Users {{ selectedGroups?.length > 0 ? \" & \" :\n            \"selected\" }}</span>\n        </div>\n\n        <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\n          <i class=\"icons cross\" *ngIf=\"!nonRemovableGroupIds?.includes(selectedGroups[0]?.group_id)\" (click)=\"\n              selectGroup({ target: { checked: false } }, selectedGroups[0])\n            \">&#xe9ae;</i>\n          <div class=\"user-group-name\">{{ selectedGroups[0]?.group_name }}</div>\n          <div class=\"counter group\" *ngIf=\"selectedGroups?.length > 1\" appPopover (click)=\"groupCount.popover()\"\n            placement=\"left\">\n            +{{ selectedGroups?.length - 1 }}\n          </div>\n        </div>\n        <div class=\"name userGroup-name\">\n          <span *ngIf=\"selectedGroups?.length === 1\">{{\n            featureflag ? \"User Group selected\" : \"Group selected\"\n            }}</span>\n          <span *ngIf=\"selectedGroups?.length > 1\">{{\n            featureflag ? \"User Groups selected\" : \"Groups selected\"\n            }}</span>\n        </div>\n\n        <app-popover #userCount [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"let element of selectedUsers | slice : 1; let i = index\">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\" (click)=\"\n                        selectItem({ target: { checked: false } }, element)\n                      \">&#xe90d;</i>\n                    {{ element?.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n\n        <app-popover #groupDisable [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"let element of selectedUsers.slice(1); let i = index\">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" *ngIf=\"!nonRemovableUserIds?.includes(element?.member_id)\" (click)=\"\n                        selectItem({ target: { checked: false } }, element)\n                      \">&#xe90d;</i>\n                    <span *ngIf=\"\n                        fromApprovalWorkflow &&\n                        approvalWorkflowType.toLowerCase() === 'sequential'\n                      \" class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\">{{\n                      i + 1 === selectedUsers?.length - 1 ? \"Final\" : i + 2\n                      }}</span>\n                    {{ element?.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n\n        <app-popover #groupCount [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let element of selectedGroups | slice : 1;\n                  let i = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" *ngIf=\"!nonRemovableGroupIds?.includes(element?.group_id)\" (click)=\"\n                        selectGroup({ target: { checked: false } }, element)\n                      \">&#xe90d;</i>\n                    {{ element?.group_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </vui-floating-bar>\n      <vui-floating-bar *ngIf=\"singleSelect && !loading\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\"\n        [nextDisabled]=\"fromApprovalWorkflow && selectedUsers?.length === 0\">\n        <div class=\"chip\" *ngIf=\"selectedUsers?.length\">\n          <ng-container>\n            <i class=\"icons\" (click)=\"\n                selectItem({ target: { checked: false } }, selectedUsers[0])\n              \">&#xe90d;</i>\n            <span class=\"value\"> {{ selectedUsers[0]?.member_name }}</span>\n          </ng-container>\n        </div>\n      </vui-floating-bar>\n    </div>\n  </div>\n\n  <div class=\"user-group-list-confirmation\" *ngIf=\"showConfirmation\">\n    <div class=\"confirmation-top\">\n      <div class=\"icon-block\"><i class=\"icons\">&#xe930;</i></div>\n      <div class=\"text\">\n        This action will reset the default {{ userType }} selected for the\n        Program.\n      </div>\n    </div>\n    <div class=\"confirmation-bottom\">\n      <div class=\"message\">Are you sure you would like to proceed?</div>\n      <div class=\"button-group\">\n        <button class=\"no-btn\" (click)=\"confirmAction('NO')\">NO</button>\n        <button class=\"yes-btn\" (click)=\"confirmAction('YES')\">YES</button>\n      </div>\n    </div>\n  </div>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({\n  name: 'filter',\n})\nexport class FilterPipe implements PipeTransform {\n  transform(items: any[], searchText: string): any[] {\n    if (!items) {\n      return [];\n    }\n    if (!searchText) {\n      return items;\n    }\n    searchText = searchText.toLowerCase();\n    if(items?.length){\n    return items.filter((it: any) => {\n      return JSON.stringify(it).toLowerCase().includes(searchText);\n    });\n  }else{\n     return [];\n  }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n\n@Pipe({\n  name: 'shortMerge',\n  pure:false\n})\nexport class ShortMergePipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n     if(args[0] && args[0].length> 0){\n        let primaryEntries = value.filter((e:any)=> args[0].includes(e?.member_id));\n        let secondaryEntries = value.filter((e:any)=> !args[0].includes(e?.member_id));\n        return [...primaryEntries,...secondaryEntries];\n     }else{\n       return value;\n     }\n  }\n\n}\n","import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  SimpleChanges,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { ASSETS } from '../../constants/assets.constants';\n@Component({\n  selector: 'app-owner-list',\n  templateUrl: './owner-list.component.html',\n  styleUrls: ['./owner-list.component.less'],\n})\nexport class OwnerListComponent implements OnInit, OnChanges {\n  @Input() usersList = [];\n  @Input() selectedUsers = [];\n  @Input() userIdKey = '';\n  @Input() itemNameKey = '';\n  @Input() itemEmailKey = '';\n  @Input() showWorkflow!: boolean;\n  @Input() listHeading = 'Select User(s)';\n  @Input() searchPlaceholder = 'Search User';\n  @Input() pluralText: string = '';\n  @Input() singularText: string = '';\n  @Input() reviewerWorkflowType: string = 'SEQUENTIAL';\n  @Input() mode: string = 'CREATE';\n  @Input() noDataText = '';\n  @Input() workflowList = [\n    'SEQUENTIAL',\n    'ANY REVIEWER CAN MARK THIS AS REVIEWED',\n  ];\n  @Input() workflowText = 'Reviewer Workflow';\n  @Input() disabledIds: any = [];\n  @Input() nonRemovableUsersList: any = [];\n  @Output() saveSelectedList = new EventEmitter();\n  @Output() closeUsersList = new EventEmitter();\n  @Output() reviewerWorkflowTypeChange = new EventEmitter();\n  @Input() fromResponsibility: any;\n  @Input() assignorId: any[] = [];\n  @Input() assigneeIds: any[] = [];\n  @Input() reviewerIds: any[] = [];\n  @Input() overseerIds: any[] = [];\n  ASSETS = ASSETS;\n  search = '';\n  selectedIds: any[] = [];\n  animation = false;\n\n  constructor() { }\n\n  ngOnChanges(): void {\n    this.selectedIds = this.selectedUsers.map((ele: any) => {\n      if (ele[this.userIdKey]) {\n        return ele[this.userIdKey];\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    let disabledIds = [...this.disabledIds, ...this.nonRemovableUsersList];\n    this.disabledIds = [...new Set(disabledIds)];\n\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  selectUser(user: any, mode: any) {\n    if (mode) {\n      this.selectedIds.push(user);\n    } else {\n      const index = this.selectedIds.findIndex(\n        (element: any) => element == user\n      );\n      this.selectedIds.splice(index, 1);\n    }\n    this.setList();\n  }\n\n  deleteEvent(event: any) {\n    const index = this.selectedIds.findIndex(\n      (element: any) => element == event[this.userIdKey]\n    );\n    this.selectedIds.splice(index, 1);\n    this.setList();\n  }\n\n  selectAll(mode: any) {\n    if (mode) {\n      let list = [...this.usersList];\n      this.selectedIds = [];\n      list.forEach((element) => {\n        this.selectedIds.push(element[this.userIdKey]);\n      });\n    } else {\n      this.selectedIds = [...this.nonRemovableUsersList];\n    }\n    this.setList();\n  }\n\n  setList() {\n    const data: any = [];\n    const userList = cloneDeep(this.usersList);\n    const selectedIds = cloneDeep(this.selectedIds);\n    selectedIds.forEach((element: any) => {\n      const index = userList.findIndex(\n        (user: any) => user[this.userIdKey] == element\n      );\n      if (index !== -1) {\n        data.push(userList[index]);\n      }\n    });\n    // userList.forEach((element: any) => {\n    //   if (selectedIds.includes(element[this.userIdKey])) {\n    //     data.push(element);\n    //   }\n    // });\n    this.selectedUsers = data;\n  }\n\n  checkSelectAll() {\n    const data = this.usersList.every((user: any) =>\n      this.selectedIds.includes(user[this.userIdKey])\n    );\n    return data;\n  }\n\n  save(selectedIds: any) {\n    this.saveSelectedList.emit(selectedIds);\n  }\n\n  close() {\n    this.closeUsersList.emit();\n  }\n\n  workflowTypeChanged(event: string) {\n    this.reviewerWorkflowType = event;\n    this.reviewerWorkflowTypeChange.emit(event);\n  }\n}\n","<div class=\"add-risk-owner-list\" [class.animate]=\"animation\">\n  <div\n    class=\"add-risk-owner-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">{{ listHeading }}</div>\n  </div>\n  <div class=\"add-risk-owner-list-body\">\n    <div class=\"search-block vx-mb-2\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        type=\"text\"\n        [(ngModel)]=\"search\"\n        [attr.placeholder]=\"searchPlaceholder\"\n      />\n    </div>\n    <ng-container *ngIf=\"usersList | filter : search as searchList\">\n      <div\n        class=\"body-top vx-pb-4\"\n        *ngIf=\"searchList?.length > 0 && search?.trim()?.length === 0\"\n      >\n        <app-cs-checkbox\n          [ngValue]=\"checkSelectAll()\"\n          (ngValueChange)=\"selectAll($event)\"\n        >\n          <strong>{{\n            checkSelectAll(activeTab) ? \"Deselect All\" : \"Select All\"\n          }}</strong>\n        </app-cs-checkbox>\n      </div>\n      <ul class=\"owner-list vx-mb-4\" *ngIf=\"searchList.length > 0\">\n        <li\n          *ngFor=\"let user of searchList\"\n          [appTooltip]=\"\n            user\n              | tooltipMessage\n                : fromResponsibility\n                : reviewerIds\n                : overseerIds\n                : assignorId\n                : assigneeIds\n                : 'my_member_id'\n                : disabledIds?.includes(user[userIdKey])\n          \"\n          placement=\"bottom-left\"\n          delay=\"0\"\n          [tooltipMandatory]=\"true\"\n        >\n          <app-cs-checkbox\n            [disabled]=\"disabledIds?.includes(user[userIdKey])\"\n            [ngValue]=\"selectedIds?.includes(user[userIdKey])\"\n            (ngValueChange)=\"selectUser(user[userIdKey], $event)\"\n          >\n            <span class=\"name\">{{ user[itemNameKey] }}</span>\n          </app-cs-checkbox>\n        </li>\n      </ul>\n      <app-no-data\n        *ngIf=\"searchList.length === 0\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"noDataText?.length > 0 ? noDataText : 'No Users Found'\"\n      ></app-no-data>\n    </ng-container>\n\n    <app-floating-bar\n      [selectedData]=\"selectedUsers | shortMerge : nonRemovableUsersList\"\n      [displayElementKey]=\"itemNameKey\"\n      [elementId]=\"userIdKey\"\n      [nonRemovableUsersList]=\"nonRemovableUsersList\"\n      [singularText]=\"singularText\"\n      [pluralText]=\"pluralText\"\n      (closeEvent)=\"save(selectedIds)\"\n      (closeList)=\"close()\"\n      (deleteEvent)=\"deleteEvent($event)\"\n      (workflowTypeChanged)=\"workflowTypeChanged($event)\"\n      [showWorkflow]=\"showWorkflow\"\n      [workflowText]=\"workflowText\"\n      [selectedWorkflow]=\"reviewerWorkflowType\"\n      [workflowList]=\"workflowList\"\n      [mode]=\"mode\"\n      [workflowPlaceHolder]=\"''\"\n      [isDisabled]=\"selectedUsers?.length === 0 || usersList?.length === 0\"\n    >\n    </app-floating-bar>\n  </div>\n</div>\n","import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  SimpleChanges,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { CategoryList } from '../../interfaces/categoryList';\nimport { ASSETS } from '../../constants/assets.constants';\n// import isEqual from 'lodash-es/isEqual';\n@Component({\n  selector: 'app-category-list',\n  templateUrl: './category-list.component.html',\n  styleUrls: ['./category-list.component.less'],\n})\nexport class CategoryListComponent implements OnInit, OnChanges {\n  @Input() categoryList: CategoryList;\n  @Input() selectedCategory: any = {\n    type: 'strategic',\n    selectedCategory: '',\n  };\n  search = '';\n  activeTab: any = 'strategic';\n  ASSETS = ASSETS;\n\n  animation = false;\n  @Output() saveSelectedCategory = new EventEmitter();\n  @Output() closeList = new EventEmitter();\n  @Output() closeCategoriesList = new EventEmitter();\n  @Input() loaded: boolean = true;\n\n  constructor() {\n    this.categoryList = {\n      strategic: {\n        name: 'STRATEGIC',\n        data: [],\n      },\n      operational: {\n        name: 'OPERATIONAL',\n        data: [],\n      },\n      compliance: {\n        name: 'COMPLIANCE',\n        data: [],\n      },\n      others: {\n        name: 'OTHERS',\n        data: [],\n      },\n    };\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    this.activeTab = this.selectedCategory?.type ?? '';\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.selectedCategory = cloneDeep(this.selectedCategory);\n  }\n  selectCategory(type: any, category: any) {\n    this.selectedCategory.type = type;\n    this.selectedCategory.selectedCategory = category;\n  }\n  save() {\n    this.saveSelectedCategory.emit(this.selectedCategory);\n  }\n  deleteEvent(event: any) {\n    this.selectedCategory.selectedCategory = '';\n    this.selectedCategory.type = '';\n  }\n\n  close() {\n    this.closeCategoriesList.emit();\n  }\n}\n","<div class=\"category-list\" [class.animate]=\"animation\">\n  <div\n    class=\"category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Risk Category</div>\n  </div>\n  <div class=\"category-list-body\">\n    <div\n      class=\"filter-card-row vx-d-flex vx-align-center vx-justify-between vx-pb-2\"\n    >\n      <div\n        class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n        [class.active]=\"activeTab == 'strategic'\"\n        (click)=\"activeTab = 'strategic'\"\n      >\n        <div class=\"left\">\n          <label\n            class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n            >{{ categoryList?.strategic?.name }}</label\n          >\n          <p\n            *ngIf=\"\n              selectedCategory.type == 'strategic' &&\n              selectedCategory.selectedCategory.length != 0\n            \"\n          >\n            1 Category selected\n          </p>\n        </div>\n        <span class=\"counter\">{{ categoryList?.strategic?.data?.length }}</span>\n      </div>\n      <div\n        class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n        [class.active]=\"activeTab == 'operational'\"\n        (click)=\"activeTab = 'operational'\"\n      >\n        <div class=\"left\">\n          <label\n            class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n            >{{ categoryList?.operational?.name }}</label\n          >\n          <p\n            *ngIf=\"\n              selectedCategory.type == 'operational' &&\n              selectedCategory.selectedCategory.length != 0\n            \"\n          >\n            1 Category selected\n          </p>\n        </div>\n        <span class=\"counter\">{{\n          categoryList?.operational?.data?.length\n        }}</span>\n      </div>\n      <div\n        class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n        [class.active]=\"activeTab == 'compliance'\"\n        (click)=\"activeTab = 'compliance'\"\n      >\n        <div class=\"left\">\n          <label\n            class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n            >{{ categoryList?.compliance?.name }}</label\n          >\n          <p\n            *ngIf=\"\n              selectedCategory.type == 'compliance' &&\n              selectedCategory.selectedCategory.length != 0\n            \"\n          >\n            1 Category selected\n          </p>\n        </div>\n        <span class=\"counter\">{{\n          categoryList?.compliance?.data?.length\n        }}</span>\n      </div>\n      <div\n        class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n        [class.active]=\"activeTab == 'others'\"\n        (click)=\"activeTab = 'others'\"\n      >\n        <div class=\"left\">\n          <label\n            class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n            >{{ categoryList?.others?.name }}</label\n          >\n          <p\n            *ngIf=\"\n              selectedCategory.type == 'others' &&\n              selectedCategory.selectedCategory.length != 0\n            \"\n          >\n            1 Category selected\n          </p>\n        </div>\n        <span class=\"counter\">{{ categoryList?.others?.data?.length }}</span>\n      </div>\n    </div>\n    <div class=\"search-block vx-mb-2\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        type=\"text\"\n        [(ngModel)]=\"search\"\n        placeholder=\"Search Risk Category\"\n      />\n    </div>\n    <app-loader-inline *ngIf=\"!loaded\"></app-loader-inline>\n    <ng-container\n      *ngIf=\"categoryList[activeTab]?.data | filter : search as searchList\"\n    >\n      <ul class=\"categories vx-mb-4\" *ngIf=\"searchList.length > 0\">\n        <li *ngFor=\"let category of searchList\">\n          <app-cs-radio\n            (checkedEvent)=\"selectCategory(activeTab, category)\"\n            [name]=\"'category'\"\n            [checked]=\"\n              selectedCategory?.selectedCategory?.category_id ===\n              category?.category_id\n            \"\n          >\n            <span\n              class=\"name\"\n              [appTooltip]=\"category.category_name\"\n              placement=\"bottom-left\"\n              type=\"black\"\n              delay=\"0\"\n              [tooltipMandatory]=\"true\"\n            >\n              {{ category?.category_name }}</span\n            >\n          </app-cs-radio>\n        </li>\n      </ul>\n      <app-no-data\n        *ngIf=\"searchList.length === 0 && loaded\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No Categories Found'\"\n      ></app-no-data>\n    </ng-container>\n\n    <app-floating-bar\n      *ngIf=\"loaded\"\n      [selectedData]=\"\n        selectedCategory?.selectedCategory?.category_name\n          ? [selectedCategory.selectedCategory]\n          : []\n      \"\n      [displayElementKey]=\"'category_name'\"\n      [singularText]=\"'Risk Category selected'\"\n      [pluralText]=\"'Risk Categories selected'\"\n      (closeEvent)=\"save()\"\n      (deleteEvent)=\"deleteEvent($event)\"\n      (closeList)=\"close()\"\n      [isDisabled]=\"\n        categoryList.length === 0 || !selectedCategory?.selectedCategory\n      \"\n    >\n    </app-floating-bar>\n  </div>\n</div>\n","export const HOURS: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\nexport const MINUTES: string[] = ['', '', '00', '30', ''];\nexport const AM_PM: string[] = ['', '', 'AM', 'PM', ''];\nexport const TIME_VARIABLE = ['HOURS', 'MINUTES', 'MERIDIEM'];\n","import { Component, EventEmitter, Input } from '@angular/core';\nimport { AM_PM, MINUTES, TIME_VARIABLE } from '../constants/constant';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\n\n@Component({\n  selector: 'app-time-picker',\n  templateUrl: './time-picker.component.html',\n  styleUrls: ['./time-picker.component.less'],\n  outputs: ['onTimeSelection'],\n})\nexport class TimePickerComponent {\n  public MINUTES: string[] = MINUTES;\n  public AM_PM: string[] = AM_PM;\n  private selectedTime: any;\n  public hourArray: number[] = [9, 10, 11, 12, 13];\n  public TIME_VARIABLE = TIME_VARIABLE; //['HOURS', 'MINUTES', 'MERIDIEM']\n  private defaultSelectedTime: string = '';\n  @Input('time') set defaultTime(inputTime: string) {\n    if (!inputTime) {\n      inputTime = DEFAULT_TIME;\n    }\n    this.defaultSelectedTime = inputTime;\n    const timeDetails = inputTime.split(' ');\n    let time = timeDetails[0].split(':');\n    if (!['00', '30'].includes(time[1])) {\n      time[1] = '00';\n    }\n    this.selectedTime = {\n      HOURS: parseInt(time[0]),\n      MINUTES: time[1],\n      MERIDIEM: timeDetails[1]?.toUpperCase(),\n    };\n    this.setDefault();\n  }\n  onTimeSelection: EventEmitter<any> = new EventEmitter();\n\n  constructor() {}\n\n  onScroll(event: any, type: any): void {\n    const scrollStatus = this.getScrollDirection(event);\n\n    switch (type) {\n      case this.TIME_VARIABLE[0]:\n        this.hourArray = this.getNextValuesOnMouseWheel(\n          this.hourArray,\n          scrollStatus\n        );\n        break;\n      case this.TIME_VARIABLE[1]:\n        this.setMinutes(scrollStatus);\n        break;\n      case this.TIME_VARIABLE[2]:\n        this.setMeridiem(scrollStatus);\n        break;\n    }\n  }\n\n  onValueSelect(value: string | number, type: string): void {\n    if (value) {\n      this.selectedTime[type] = value;\n      this.setDefault();\n    }\n  }\n\n  /**\n   * The function `handleMouseWheelEvent` takes an array of current values and a direction ('up' or\n   * 'down') as input, and returns an array of next values based on the direction and the maximum and\n   * minimum values.\n   * @param {number[]} currentValues - An array of numbers representing the current values.\n   * @param {'up' | 'down'} direction - The direction parameter is a string that can have two possible\n   * values: 'up' or 'down'. It indicates the direction of the mouse wheel event, whether it is\n   * scrolling up or scrolling down.\n   * @returns an array of numbers representing the next values based on the current values and the\n   * direction of the mouse wheel event.\n   */\n  getNextValuesOnMouseWheel(\n    currentValues: number[],\n    direction: 'up' | 'down'\n  ): number[] {\n    // Define the maximum and minimum values\n    const maxValue = 12;\n    const minValue = 1;\n\n    // Define the maximum number of elements in the returned array\n    const maxElements = 5;\n\n    if (direction === 'up') {\n      let nextValues = [];\n      for (let i = 0; i < maxElements; i++) {\n        // Calculate the next value by subtracting 1 from the current value\n        let nextValue = currentValues[i] - 1;\n        // Wrap around if the next value is less than the minimum value\n        if (nextValue < minValue) {\n          // Calculate the wrapped value using modulo operator (%)\n          nextValue =\n            maxValue - ((minValue - nextValue - 1) % (maxValue - minValue + 1));\n        }\n        // Add the next value to the array\n        nextValues.push(nextValue);\n      }\n      // Return the array with the next values\n      return nextValues;\n    }\n\n    if (direction === 'down') {\n      let nextValues = [];\n      for (let i = 0; i < maxElements; i++) {\n        // Calculate the next value by adding 1 and the index\n        let nextValue = currentValues[0] + 1 + i;\n        // Wrap around if the next value exceeds the maximum value\n        if (nextValue > maxValue) {\n          nextValue = minValue + ((nextValue - maxValue) % maxValue) - 1;\n        }\n        // Add the next value to the array\n        nextValues.push(nextValue);\n      }\n      // Return the array with the next values\n      return nextValues;\n    }\n\n    // If the direction is neither 'up' nor 'down', return the current values unchanged\n    return currentValues;\n  }\n\n  onCloseTimePicker(actionType: 'cancel' | 'ok'): void {\n    const time =\n      this.selectedTime.HOURS +\n      ':' +\n      this.selectedTime.MINUTES +\n      ' ' +\n      this.selectedTime.MERIDIEM;\n    this.onTimeSelection.emit({\n      actionType: actionType,\n      selectedValue: actionType === 'ok' ? time : this.defaultSelectedTime,\n    });\n  }\n\n  private getScrollDirection(event: any): 'up' | 'down' {\n    if (event.deltaY < 0) {\n      return 'up';\n    } else {\n      return 'down';\n    }\n  }\n\n  private setMinutes(type: 'up' | 'down') {\n    if (type === 'up') {\n      const index = this.MINUTES.indexOf('00');\n      if (index === 1) {\n        this.MINUTES.unshift('');\n        this.MINUTES.pop();\n      }\n    } else {\n      const index = this.MINUTES.indexOf('00');\n      if (index === 2) {\n        this.MINUTES.shift();\n        this.MINUTES.push('');\n      }\n    }\n    this.findSelectedValue(TIME_VARIABLE[1], this.MINUTES);\n  }\n\n  private setMeridiem(type: 'up' | 'down') {\n    if (type === 'up') {\n      const index = this.AM_PM.indexOf('AM');\n      if (index === 1) {\n        this.AM_PM.unshift('');\n        this.AM_PM.pop();\n      }\n    } else {\n      const index = this.AM_PM.indexOf('AM');\n      if (index === 2) {\n        this.AM_PM.shift();\n        this.AM_PM.push('');\n      }\n    }\n\n    this.findSelectedValue(TIME_VARIABLE[2], this.AM_PM);\n  }\n\n  private findSelectedValue(type: string, array: Array<any>) {\n    this.selectedTime[type] = array[2];\n  }\n\n  private setDefault(): void {\n    const defaultHours = this.selectedTime.HOURS;\n    const defaultMinutes = this.selectedTime.MINUTES;\n    const defaultMeridiem = this.selectedTime.MERIDIEM;\n    this.hourArray[2] = defaultHours;\n    this.setHoursToDefault(defaultHours);\n    if (defaultMinutes === '30') {\n      this.MINUTES[2] = defaultMinutes;\n      this.MINUTES[1] = '00';\n      this.MINUTES[3] = '';\n    } else {\n      this.MINUTES[1] = '';\n      this.MINUTES[2] = '00';\n      this.MINUTES[3] = '30';\n    }\n\n    if (defaultMeridiem === 'PM') {\n      this.AM_PM[2] = defaultMeridiem;\n      this.AM_PM[1] = 'AM';\n      this.AM_PM[3] = '';\n      // this.setMeridiem('up');\n    } else {\n      this.AM_PM[1] = '';\n      this.AM_PM[2] = 'AM';\n      this.AM_PM[3] = 'PM';\n    }\n  }\n\n  private setHoursToDefault(defaultHours: number): void {\n    let prevIndex = 2;\n    let nextIndex = 1;\n    this.hourArray = this.hourArray.map((value: number, index: number) => {\n      value = defaultHours;\n      if (index < 2) {\n        value = value - prevIndex;\n        if (value < 1) {\n          value = 12 + value;\n        }\n        prevIndex--;\n      } else if (index > 2) {\n        value = value + nextIndex;\n        if (value > 12) {\n          value = value - 12;\n        }\n        nextIndex++;\n      }\n\n      return value;\n    });\n  }\n}\n","<div class=\"timePicker\">\n  <div class=\"vx-d-flex vx-align-center vx-justify-center\">\n    <div class=\"timePicker-inner vx-d-flex vx-align-center vx-p-3\">\n      <div class=\"timePicker-column\" #hour_column>\n        <div\n          *ngFor=\"let eachHour of hourArray; let i = index\"\n          class=\"timePicker-no vx-paragraph-txt vx-fs-14 vx-fw-500 vx-ml-1 vx-mr-1\"\n          [class.active]=\"i === 2\"\n          (mousewheel)=\"onScroll($event, TIME_VARIABLE[0])\"\n          [id]=\"'hour_column_' + (i + 1)\"\n          (click)=\"onValueSelect(eachHour, TIME_VARIABLE[0])\"\n        >\n          <ng-container *ngIf=\"eachHour > 0 && eachHour < 13\">\n            {{ eachHour }}\n          </ng-container>\n        </div>\n      </div>\n      <div class=\"timePicker-column\" #minutes_column>\n        <div\n          *ngFor=\"let eachMinutes of MINUTES; let i = index\"\n          class=\"timePicker-no vx-paragraph-txt vx-fs-14 vx-fw-500 vx-ml-1 vx-mr-1\"\n          [class.active]=\"i === 2\"\n          [id]=\"'minutes_column_' + (i + 1)\"\n          (mousewheel)=\"onScroll($event, TIME_VARIABLE[1])\"\n          (click)=\"onValueSelect(eachMinutes, TIME_VARIABLE[1])\"\n        >\n          {{ eachMinutes }}\n        </div>\n      </div>\n      <div class=\"timePicker-column\" #meridiem_column>\n        <div\n          *ngFor=\"let eachMeridiem of AM_PM; let i = index\"\n          class=\"timePicker-no vx-paragraph-txt vx-fs-14 vx-fw-500 vx-ml-1 vx-mr-1 vx-tt-uppercase\"\n          [class.active]=\"i === 2\"\n          [id]=\"'meridiem_column_' + (i + 1)\"\n          (mousewheel)=\"onScroll($event, TIME_VARIABLE[2])\"\n          (click)=\"onValueSelect(eachMeridiem, TIME_VARIABLE[2])\"\n        >\n          {{ eachMeridiem }}\n        </div>\n      </div>\n    </div>\n  </div>\n  <div\n    class=\"timePicker-bottom vx-d-flex vx-align-center vx-justify-between vx-p-2\"\n  >\n    <button\n      (click)=\"onCloseTimePicker('cancel')\"\n      class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center vx-lh-6\"\n    >\n      CANCEL\n    </button>\n    <button\n      (click)=\"onCloseTimePicker('ok')\"\n      class=\"ok-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center vx-lh-6\"\n    >\n      OK\n    </button>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment/moment';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\n\n@Component({\n  selector: 'app-frequency-dialog-top',\n  templateUrl: './frequency-dialog-top.component.html',\n  styleUrls: ['./frequency-dialog-top.component.less'],\n})\nexport class FrequencyDialogTopComponent implements OnInit {\n  @Input() occurrenceFirst = 0;\n  @Input() id = 0; // 0 = Daily, 1: weekly, 5: Annually\n  @Input() inputTime = '11:00 pm';\n  @Input() frequencyType = 0; // 0 = days, 1 = weeks & 2 = years\n  @Input() yearlyDay = new Date().getDate();\n\n  @Output() valueChangedFirst: EventEmitter<any> = new EventEmitter();\n  @Output() nextDisable: EventEmitter<any> = new EventEmitter();\n  @Output() timeChanged: EventEmitter<any> = new EventEmitter();\n  @Output() yearlyDateChanged: EventEmitter<any> = new EventEmitter();\n\n  todayDate = new Date();\n  dateObjectData = new Date();\n  timeData = '11:00 pm';\n  DEFAULT_TIME = DEFAULT_TIME;\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  enterValueFirst(event: any, actionType: string) {\n    if (this.id !== 0 && this.id !== 1 && this.id !== 5) {\n      this.enterValue(this.occurrenceFirst, actionType);\n      return;\n    }\n    if (\n      !Number.isNaN(Number(this.occurrenceFirst)) &&\n      this.occurrenceFirst !== 0 &&\n      Number(this.occurrenceFirst) > 0\n    ) {\n      this.occurrenceFirst = Number(this.occurrenceFirst);\n      this.valueChangedFirst.emit({\n        type: actionType,\n        value: Number(this.occurrenceFirst),\n        pageName: '',\n      });\n    } else {\n      this.occurrenceFirst = 1;\n    }\n  }\n\n  enterValue(event: any, actionType: any) {\n    if (\n      !Number.isNaN(Number(event)) &&\n      event !== 0 &&\n      Number(event) > 0 &&\n      Number(event) < 32\n    ) {\n      this.occurrenceFirst = Number(event);\n      this.valueChangedFirst.emit({\n        type: actionType,\n        value: Number(event),\n        pageName: '',\n      });\n    } else {\n      this.occurrenceFirst = new Date().getDate();\n    }\n  }\n\n  getToday(): string {\n    return moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')?.split(' ')[0];\n  }\n\n  onTimeChanged(event: any) {\n    try {\n      event = event.selectedValue;\n      this.timeData = event;\n      if (typeof this.dateObjectData == 'object') {\n        this.dateObjectData = moment(this.dateObjectData)?.toDate();\n      }\n      let timeStamp = moment(\n        this.dateObjectData.getDate() +\n          '-' +\n          (this.dateObjectData.getMonth() + 1) +\n          '-' +\n          this.dateObjectData.getFullYear() +\n          ' ' +\n          this.timeData,\n        'DD-MM-YYYY hh:mm a'\n      ).unix();\n      if (Date.now() / 1000 > timeStamp) {\n        this.nextDisable.emit(true);\n      } else {\n        this.nextDisable.emit(false);\n      }\n      this.timeChanged.emit(event);\n    } catch (e) {\n      console.error(e);\n    }\n  }\n\n  enterYearDay(event: any) {\n    if (\n      !Number.isNaN(Number(this.yearlyDay)) &&\n      this.yearlyDay !== 0 &&\n      Number(this.yearlyDay) > 0 &&\n      Number(this.yearlyDay) < 32\n    ) {\n      //this.yearlyDay = Number(event.target.value);\n      this.yearlyDateChanged.emit(this.yearlyDay);\n    } else {\n      this.yearlyDay = new Date().getDate();\n    }\n  }\n}\n","<div class=\"frequency-dialog-top vx-p-3 vx-d-flex vx-align-center\">\n  <div class=\"vx-fs-13 vx-paragraph-txt vx-mr-3\">\n    {{ id === 0 || id === 1 || id === 5 ? \"Every\" : \"Day\" }}\n  </div>\n  <input\n    type=\"number\"\n    [id]=\"'occurrence' + id\"\n    [(ngModel)]=\"occurrenceFirst\"\n    class=\"day-counter\"\n    onkeydown=\"return event.keyCode !== 190\"\n    min=\"0\"\n    oninput=\"this.value = Math.abs(this.value)\"\n    (focusout)=\"enterValueFirst($event, 'occurrenceFirst')\"\n  />\n  <div\n    *ngIf=\"frequencyType === 1\"\n    class=\"vx-fs-13 vx-paragraph-txt vx-ml-3 vx-mr-3\"\n  >\n    {{ occurrenceFirst > 1 ? \"weeks\" : \"week\" }} by\n  </div>\n  <div\n    class=\"vx-fs-13 vx-paragraph-txt vx-ml-3 vx-mr-3\"\n    *ngIf=\"id !== 0 && id !== 1 && id !== 5\"\n  >\n    by\n  </div>\n  <ng-container *ngIf=\"frequencyType === 2\">\n    <div class=\"vx-fs-13 vx-paragraph-txt vx-ml-3 vx-mr-3\">\n      {{ occurrenceFirst > 1 ? \"years\" : \"year\" }} on day\n    </div>\n    <input\n      type=\"number\"\n      type=\"number\"\n      [id]=\"'occurrence-day' + id\"\n      [(ngModel)]=\"yearlyDay\"\n      (focusout)=\"enterYearDay($event)\"\n      onkeydown=\"return event.keyCode !== 190\"\n      min=\"0\"\n      oninput=\"this.value = Math.abs(this.value)\"\n    />\n    <div class=\"vx-fs-13 vx-paragraph-txt vx-ml-3 vx-mr-3\">by</div>\n  </ng-container>\n  <div\n    class=\"time-picker vx-d-flex vx-align-center vx-justify-end vx-pr-3\"\n    appPopover\n    (click)=\"timePicker.popover()\"\n    placement=\"right\"\n  >\n    <input\n      type=\"text\"\n      [id]=\"'time-picker-input-top' + id\"\n      [(ngModel)]=\"inputTime\"\n      readonly\n      [placeholder]=\"DEFAULT_TIME\"\n    />\n    <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\n      <i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe955;</i>\n    </div>\n  </div>\n  <app-popover #timePicker [dontCloseonClick]=\"true\">\n    <app-time-picker\n      [time]=\"inputTime\"\n      (onTimeSelection)=\"onTimeChanged($event); timePicker.closePopover('top')\"\n    ></app-time-picker>\n  </app-popover>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-frequency-dialog-due-date',\n  templateUrl: './frequency-dialog-due-date.component.html',\n  styleUrls: ['./frequency-dialog-due-date.component.less'],\n})\nexport class FrequencyDialogDueDateComponent implements OnInit {\n  constructor() {}\n\n  defaultWindow: number = 1;\n  defaultFailed: number = 0;\n  defaultDeactivate: number = 0;\n\n  @Input() mode = '';\n  @Input() completedValue = 5; // take input for completed\n  @Input() deactivateValue = 15;\n  @Input() isDeactivated = false;\n  @Input() id = 0;\n  @Input() pageName = '';\n  @Input() windowCloses: number = 2;\n  @Input() assessWindowOpen!: number;\n\n  @Output() valueChange: EventEmitter<any> = new EventEmitter();\n  @Output() windowOpenChange: EventEmitter<any> = new EventEmitter();\n  @Output() extensionValueChange: EventEmitter<any> = new EventEmitter();\n\n  ngOnInit(): void {}\n\n  onValueChange(event: any, actionType: any) {\n    if (\n      !Number.isNaN(Number(event?.target?.value)) &&\n      parseInt(event?.target?.value) > 0\n    ) {\n      this.valueChange.emit({\n        type: actionType,\n        value: Number(event?.target?.value),\n        pageName: this.pageName,\n      });\n    } else {\n      if (actionType === 'completed') {\n        this.completedValue = this.defaultWindow;\n        this.valueChange.emit({\n          type: actionType,\n          value: this.defaultWindow,\n          pageName: this.pageName,\n        });\n      }\n    }\n  }\n\n  onWindowOpenChange(event: any, actionType: any) {\n    if (\n      !Number.isNaN(Number(event?.target?.value)) &&\n      parseInt(event?.target?.value) > 0\n    ) {\n      this.windowOpenChange.emit({\n        type: actionType,\n        value: Number(event?.target?.value),\n        pageName: this.pageName,\n      });\n    } else {\n      if (actionType === 'window open') {\n        this.completedValue = this.defaultWindow;\n        this.windowOpenChange.emit({\n          type: actionType,\n          value: this.defaultWindow,\n          pageName: this.pageName,\n        });\n      }\n    }\n  }\n\n  onExtensionValueChange(event: any, actionType: any) {\n    if (\n      !Number.isNaN(Number(event?.target?.value)) &&\n      parseInt(event?.target?.value) > 0\n    ) {\n      this.extensionValueChange.emit({\n        type: actionType,\n        value: Number(event?.target?.value),\n        pageName: this.pageName,\n      });\n    } else {\n      if (actionType === 'extension') {\n        this.completedValue = this.defaultWindow;\n        this.extensionValueChange.emit({\n          type: actionType,\n          value: this.defaultWindow,\n          pageName: this.pageName,\n        });\n      }\n    }\n  }\n}\n","<div class=\"frequency-bottom-item vx-mt-5\">\n  <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n    Assessment window opens\n  </div>\n  <div\n    class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\n  >\n    The risk can be assessed on the assessment due date and\n    <input\n      class=\"countNum\"\n      [id]=\"'complete-' + id\"\n      type=\"number\"\n      [(ngModel)]=\"assessWindowOpen\"\n      (change)=\"onWindowOpenChange($event, 'window open')\"\n      onkeydown=\"return event.keyCode !== 190\"\n      min=\"0\"\n      oninput=\"this.value = Math.abs(this.value)\"\n    />\n    {{ assessWindowOpen < 2 ? 'day' : 'days' }} before the assessment due date.\n  </div>\n</div>\n\n<div class=\"frequency-bottom-item vx-mt-5\">\n  <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n    Extension\n  </div>\n  <div\n    class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\n  >\n  The risk can be assessed\n    <input\n      class=\"countNum\"\n      type=\"number\"\n      [id]=\"'not-completed-' + id\"\n      [(ngModel)]=\"windowCloses\"\n      (change)=\"onExtensionValueChange($event, 'extension')\"\n      onkeydown=\"return event.keyCode !== 190\"\n      min=\"0\"\n      oninput=\"this.value = Math.abs(this.value)\"\n    />\n    {{ windowCloses < 2 ? 'day' : 'days' }} after the assessment due date.\n  </div>\n</div>\n\n<div class=\"frequency-bottom-item vx-mt-5\">\n  <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n    Assessment window closes:\n  </div>\n  <div\n    class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\n  >\n    The risk cannot be assessed\n    <span class=\"vx-fw-500 vx-label-txt\">{{windowCloses}}</span>\n    {{ windowCloses < 2 ? 'day' : 'days' }} after the assessment due date.\n  </div>\n</div>\n\n<div class=\"frequency-bottom-item vx-mt-5\">\n  <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n    REASSESSMENT EMAIL NOTIFICATION:\n  </div>\n  <div\n    class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\n  >\n    VComply will send an email reminder\n    <input\n      class=\"countNum\"\n      [id]=\"'complete-' + id\"\n      type=\"number\"\n      [(ngModel)]=\"completedValue\"\n      (change)=\"onValueChange($event, 'completed')\"\n      onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\" />\n      {{ completedValue < 2 ? 'day' : 'days' }} before the risk assessment due date if it is not done.\n  </div>\n</div>\n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-frequency-dialog-checkbox-list',\n  templateUrl: './frequency-dialog-checkbox-list.component.html',\n  styleUrls: ['./frequency-dialog-checkbox-list.component.less']\n})\nexport class FrequencyDialogCheckboxListComponent implements OnInit {\n\n  @Input() id = -1;\n  @Input() listArray: Array<string> = [];\n  @Input() selectedIndex: Array<number> = [];\n  @Output() selectedCheckbox = new EventEmitter<any>();\n\n  constructor() { }\n\n  \n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"frequency-dialog-checkbox-list vx-d-flex\" [class.week]=\"id === 1\" [class.vx-align-center]=\"id === 1\" [class.month]=\"id === 2 || id === 4\" [class.vx-flex-wrap]=\"id === 2 || id === 4\">\n    <!-- <div class=\"frequency-dialog-checkbox-list vx-d-flex vx-align-center week\"> -->\n    <!-- <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">Monday</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">Tuesday</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">Wednesday</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">Thursday</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">Friday</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">Saturday</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">Sunday</div></app-cs-checkbox> -->\n\n    <app-cs-checkbox \n        *ngFor=\"let eachList of listArray; let i = index;\"\n        [id]=\"i\" [value]=\"i\" [ngValue]=\"selectedIndex.includes(i)\" \n        (ngValueChange)=\"selectedCheckbox.emit({checked:$event, index:i})\"\n        [disabled]=\"id === 4 && selectedIndex.length == 2 && !selectedIndex.includes(i)\"\n        >\n        <div class=\"vx-fs-12 vx-label-txt\">{{eachList}}</div>\n    </app-cs-checkbox>\n</div>\n\n<div *ngIf=\"false\" class=\"frequency-dialog-checkbox-list vx-d-flex vx-flex-wrap month\">\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">January</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">February</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">March</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">April</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">May</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">June</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">June</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">August</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">September</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">October</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">November</div></app-cs-checkbox>\n    <app-cs-checkbox><div class=\"vx-fs-12 vx-label-txt\">December</div></app-cs-checkbox>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FrequencyService } from '../../frequency/frequency.service';\nimport moment from 'moment/moment';\n\n@Component({\n  selector: 'app-frequency-dialog-weekly',\n  templateUrl: './frequency-dialog-weekly.component.html',\n  styleUrls: ['./frequency-dialog-weekly.component.less'],\n})\nexport class FrequencyDialogWeeklyComponent implements OnInit {\n  weeklyInterval = '11:00 pm';\n  weeklyInput = 1;\n  weeklyWindow = 2;\n  weeklyLifeCycleStart = this.frequencyService.changeTimeZone(new Date());\n  weeklyLifeCycleEndTime = new Date(\n    this.weeklyLifeCycleStart.getTime() + 86400000\n  );\n  weeklyLifecycleOccurance = 10;\n  selectedWeekly = [\n    this.frequencyService.changeTimeZone(new Date())?.getDay() == 0\n      ? 6\n      : this.frequencyService.changeTimeZone(new Date())?.getDay() - 1,\n  ];\n  weeklyDeactivatedValue = 10;\n  dayArray: Array<string> = [];\n  frequencyInfo: any;\n  lifecycleDetails: any = '0000-00-00~~0';\n  weeklyExtension: number = 2;\n  weeklyWindowOpen: number = 2;\n\n  @Input() mode: any = '';\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.dayArray = [...new Set(this.frequencyService.dayName)];\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    if (\n      this.frequencyData?.pattern != '' &&\n      parseInt(this.frequencyData?.pattern?.split('~')[0]) === 2\n    ) {\n      this.populateFrequency();\n    }\n    this.getWeeklyFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~');\n    this.selectedWeekly = patternInfo[1]\n      .split(',')\n      .map((ele: any) => Number(ele) - 1);\n    this.weeklyInterval = this.frequencyData?.failedTime;\n    this.weeklyWindow = this.frequencyData?.window;\n    this.weeklyInput = patternInfo[3];\n    this.weeklyLifecycleOccurance = Number(patternInfo[3]);\n    this.startDate =\n      this.frequencyData?.startFrom ?? this.frequencyData?.startDate;\n    this.weeklyLifeCycleStart = new Date(\n      (this.frequencyData?.startDate ?? this.frequencyData?.startDate) * 1000\n    );\n    this.weeklyDeactivatedValue = this.frequencyData?.continuous_failed_days;\n    this.weeklyWindowOpen = this.frequencyData?.can_assess_before_days;\n    this.weeklyExtension = this.frequencyData?.failed_after_days;\n  }\n\n  onTimeChanged(event: string) {\n    this.weeklyInterval = event;\n    this.getWeeklyFrequency();\n  }\n\n  valueChangedFirst(event: any) {\n    this.weeklyInput = event.value;\n    this.getWeeklyFrequency();\n  }\n\n  onDaySelected(event: any) {\n    if (event.checked) {\n      this.selectedWeekly.push(event.index);\n    } else {\n      this.selectedWeekly = this.selectedWeekly.filter(\n        (ele) => ele !== event.index\n      );\n    }\n    this.getWeeklyFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(\n      this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 +\n        86400000\n    );\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.weeklyLifeCycleStart = new Date(this.startDate * 1000);\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getWeeklyFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'deactivated') {\n      this.weeklyDeactivatedValue = event.value;\n    } else if (event.type === 'completed') {\n      this.weeklyWindow = event.value;\n    } else {\n      // this.weeklyFailed = event.value;\n    }\n    this.getWeeklyFrequency();\n  }\n\n  onWindowOpenChange(event: any) {\n    if (event?.type?.toLowerCase() === 'window open') {\n      this.weeklyWindowOpen = event?.value;\n    }\n    this.getWeeklyFrequency();\n  }\n\n  onExtensionChange(event: any) {\n    if (event?.type?.toLowerCase() === 'extension') {\n      this.weeklyExtension = event.value;\n    }\n    this.getWeeklyFrequency();\n  }\n\n  getWeeklyFrequency() {\n    this.selectedWeekly = this.selectedWeekly.sort((n1, n2) => n1 - n2);\n    this.frequencyInfo.placeholder = this.getPlaceholder(\n      Number(this.weeklyInput)\n    );\n    this.frequencyInfo.pattern =\n      2 +\n      '~' +\n      this.selectedWeekly.map((ele) => ele + 1).join(',') +\n      '~' +\n      '0' +\n      '~' +\n      this.weeklyInput;\n    this.frequencyInfo.case = 'week';\n    this.frequencyInfo.window = this.weeklyWindow;\n    this.frequencyInfo.timeIn12hr = this.weeklyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.weeklyInterval\n    );\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom =\n      this.startDate ?? Math.floor(Date.now() / 1000);\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.continuous_failed_days = this.weeklyDeactivatedValue;\n    this.frequencyInfo.failed_after_days = this.weeklyExtension;\n    this.frequencyInfo.can_assess_before_days = this.weeklyWindowOpen;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getPlaceholder(weeklyInput: number) {\n    let placeholder = '';\n    weeklyInput = Number(weeklyInput);\n\n    const selectedDay = this.selectedWeekly.map((ele) => {\n      return this.frequencyService.dayName[ele];\n    });\n    if (weeklyInput === 1) {\n      placeholder =\n        'Every ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\n    }\n    if (weeklyInput === 2) {\n      placeholder =\n        'Every alternate ' +\n        selectedDay.join(', ') +\n        ' by ' +\n        this.weeklyInterval;\n    }\n    if (weeklyInput === 3) {\n      placeholder =\n        'Every 3rd ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\n    }\n    if (weeklyInput > 3) {\n      placeholder =\n        'Every ' +\n        this.weeklyInput +\n        'th ' +\n        selectedDay.join(', ') +\n        ' by ' +\n        this.weeklyInterval;\n    }\n    return placeholder;\n  }\n}\n","<div class=\"frequency-dialog-weekly\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\n    <div class=\"frequency-dialog-weekly-item vx-mb-5\">\n        <app-frequency-dialog-top\n            [id]=\"1\"\n            [inputTime]=\"weeklyInterval\"\n            [occurrenceFirst]=\"weeklyInput\"\n            [frequencyType]=\"1\"\n            (timeChanged)=\"onTimeChanged($event)\"\n            (valueChangedFirst)=\"valueChangedFirst($event)\"\n        ></app-frequency-dialog-top>\n        <app-frequency-dialog-checkbox-list\n            [id]=\"1\"\n            [listArray]=\"dayArray\"\n            [selectedIndex]=\"selectedWeekly\"\n            (selectedCheckbox)=\"onDaySelected($event)\"\n        ></app-frequency-dialog-checkbox-list>\n    </div>\n    <app-frequency-dialog-due-date\n        [id] = '1'\n        [mode]=\"mode\"\n        [pageName]=\"'weekly'\"\n        [deactivateValue]=\"weeklyDeactivatedValue\"\n        [isDeactivated]=\"true\"\n        [assessWindowOpen]=\"weeklyWindowOpen\"\n        [windowCloses]=\"weeklyExtension\"\n        [completedValue]=\"weeklyWindow\"\n        (valueChange)=\"onValueChange($event)\"\n        (windowOpenChange)=\"onWindowOpenChange($event)\"\n        (extensionValueChange)=\"onExtensionChange($event)\"\n    ></app-frequency-dialog-due-date>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FrequencyService } from '../../frequency/frequency.service';\nimport moment from 'moment/moment';\n\n@Component({\n  selector: 'app-frequency-dialog-monthly',\n  templateUrl: './frequency-dialog-monthly.component.html',\n  styleUrls: ['./frequency-dialog-monthly.component.less'],\n})\nexport class FrequencyDialogMonthlyComponent implements OnInit {\n  monthlyInterval = '11:00 pm';\n  monthlyInput = this.frequencyService.changeTimeZone(new Date())?.getDate();\n  monthlyFailed = 5;\n  monthlyWindow = 7;\n  monthlyLifeCycleStart = this.frequencyService.changeTimeZone(new Date());\n  monthlyLifeCycleEndTime = new Date(\n    this.monthlyLifeCycleStart.getTime() + 86400000\n  );\n  monthlyLifecycleOccurance = 10;\n  monthlySeletedLifecycleType = 2;\n  selectedMonthly = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n  monthlyDeactivatedValue = 10;\n  frequencyInfo: any;\n  monthNameArray: Array<string> = [];\n  shortMonth: Array<string> = [];\n  lifecycleDetails: any = '0000-00-00~~0';\n  monthlyExtension: number = 5;\n  monthlyWindowOpen: number = 7;\n\n  @Input() mode: any = '';\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService?.frequencyInfo);\n    this.monthNameArray = [...new Set(this.frequencyService?.monthArray)];\n    this.shortMonth = this.frequencyService?.monthArray.map((month) =>\n      month.substring(0, 3)\n    );\n    if (\n      this.frequencyData?.pattern != '' &&\n      parseInt(this.frequencyData?.pattern.split('~')[0]) === 3\n    ) {\n      this.populateFrequency();\n    }\n    this.getMonthlyFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~');\n    this.selectedMonthly = patternInfo[2]\n      .split(',')\n      .map((ele: any) => Number(ele) - 1);\n    this.monthlyInterval = this.frequencyData?.failedTime;\n    this.monthlyWindow = this.frequencyData?.window;\n    this.monthlyInput = Number(patternInfo[1]);\n    this.monthlyLifecycleOccurance = Number(patternInfo[1]);\n    this.startDate = this.frequencyData?.startDate;\n    this.monthlyLifeCycleStart = new Date(this.frequencyData?.startDate * 1000);\n    this.monthlyFailed = this.frequencyData?.failed;\n    this.monthlyDeactivatedValue = this.frequencyData?.continuous_failed_days;\n    this.lifecycleDetails = this.frequencyData?.lifecycle;\n    this.monthlyWindowOpen = this.frequencyData?.can_assess_before_days;\n    this.monthlyExtension = this.frequencyData?.failed_after_days;\n    if (this.frequencyData?.lifecycle == '0000-00-00~~0') {\n      this.monthlySeletedLifecycleType = 2;\n    } else {\n      this.monthlySeletedLifecycleType = 1;\n    }\n  }\n\n  valueChangedFirst(event: any) {\n    this.monthlyInput = event.value;\n    this.getMonthlyFrequency();\n  }\n\n  onTimeChanged(event: string) {\n    this.monthlyInterval = event;\n    this.getMonthlyFrequency();\n  }\n\n  onMonthSelected(event: any) {\n    if (event.checked) {\n      this.selectedMonthly.push(event.index);\n    } else {\n      this.selectedMonthly = this.selectedMonthly.filter(\n        (ele) => ele !== event.index\n      );\n    }\n    this.getMonthlyFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(\n      this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 +\n        86400000\n    );\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.monthlyLifeCycleStart = new Date(this.startDate * 1000);\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getMonthlyFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'deactivated') {\n      this.monthlyDeactivatedValue = event.value;\n    } else if (event.type === 'completed') {\n      this.monthlyWindow = event.value;\n    } else {\n      this.monthlyFailed = event.value;\n    }\n    this.getMonthlyFrequency();\n  }\n\n  onWindowOpenChange(event: any) {\n    if (event?.type?.toLowerCase() === 'window open') {\n      this.monthlyWindowOpen = event?.value;\n    }\n    this.getMonthlyFrequency();\n  }\n\n  onExtensionChange(event: any) {\n    if (event?.type?.toLowerCase() === 'extension') {\n      this.monthlyExtension = event.value;\n    }\n    this.getMonthlyFrequency();\n  }\n\n  getMonthlyFrequency() {\n    this.selectedMonthly = this.selectedMonthly.sort((n1, n2) => n1 - n2);\n    const monthIndex = this.selectedMonthly.map((ele) => ele + 1);\n    this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(\n      Number(this.monthlyInput)\n    );\n    this.frequencyInfo.pattern =\n      3 + '~' + this.monthlyInput + '~' + monthIndex + '~' + '0';\n    this.frequencyInfo.case = 'month';\n    this.frequencyInfo.failedAfter = this.monthlyFailed;\n    this.frequencyInfo.window = this.monthlyWindow;\n    this.frequencyInfo.timeIn12hr = this.monthlyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.monthlyInterval\n    );\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = Math.floor(\n      this.monthlyLifeCycleStart.getTime() / 1000\n    );\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.continuous_failed_days = this.monthlyDeactivatedValue;\n    this.frequencyInfo.failed_after_days = this.monthlyExtension;\n    this.frequencyInfo.can_assess_before_days = this.monthlyWindowOpen;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getFrequencyPlaceholder(monthlyInput: number) {\n    const selectedMonth = this.selectedMonthly.map((ele) => {\n      return this.shortMonth[ele];\n    });\n    let placeholder = '';\n    if (monthlyInput === 1) {\n      placeholder =\n        '1st of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput === 2) {\n      placeholder =\n        '2nd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput === 3) {\n      placeholder =\n        '3rd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput === 21 || monthlyInput === 31) {\n      placeholder =\n        monthlyInput +\n        'st of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput === 22) {\n      placeholder =\n        monthlyInput +\n        'nd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput === 23) {\n      placeholder =\n        monthlyInput +\n        'rd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput > 3) {\n      placeholder =\n        monthlyInput +\n        'th of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    }\n    return placeholder;\n  }\n}\n","\n<div class=\"frequency-dialog-monthly\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\n    <div class=\"frequency-dialog-monthly-item vx-mb-5\">\n        <app-frequency-dialog-top\n            [id]=\"2\"\n            [inputTime]=\"monthlyInterval\"\n            [occurrenceFirst]=\"monthlyInput\"\n            [frequencyType]=\"3\"\n            (timeChanged)=\"onTimeChanged($event)\"\n            (valueChangedFirst)=\"valueChangedFirst($event)\">\n        </app-frequency-dialog-top>\n        <app-frequency-dialog-checkbox-list\n            [id]=\"2\"\n            [listArray]=\"monthNameArray\"\n            [selectedIndex]=\"selectedMonthly\"\n            (selectedCheckbox)=\"onMonthSelected($event)\">\n        </app-frequency-dialog-checkbox-list>\n    </div>\n    <app-frequency-dialog-due-date\n      [id] = '2'\n      [mode]=\"mode\"\n      [pageName]=\"'monthly'\"\n      [deactivateValue]=\"monthlyDeactivatedValue\"\n      [isDeactivated]=\"true\"\n      [completedValue]=\"monthlyWindow\"\n      [windowCloses]=\"monthlyExtension\"\n      [assessWindowOpen]=\"monthlyWindowOpen\"\n      (valueChange)=\"onValueChange($event)\"\n      (windowOpenChange)=\"onWindowOpenChange($event)\"\n      (extensionValueChange)=\"onExtensionChange($event)\"\n   ></app-frequency-dialog-due-date>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-frequency-dialog-radio-list',\n  templateUrl: './frequency-dialog-radio-list.component.html',\n  styleUrls: ['./frequency-dialog-radio-list.component.less'],\n})\nexport class FrequencyDialogRadioListComponent implements OnInit {\n  @Input() radioList = [];\n  @Input() selectedIndex = -1;\n  @Input() name = '';\n  noAnimation = true;\n  @Output() selectedRadio = new EventEmitter();\n  constructor() {}\n\n  ngOnInit(): void {\n    setTimeout(() => {\n      this.noAnimation = false;\n    }, 1000);\n  }\n}\n","<!-- <div class=\"frequency-dialog-radio-list vx-d-flex vx-align-center quarterly\">\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">January, April, July, October</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">February, May, August, November</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">March, June, September, December</div></app-cs-radio>\n</div>\n\n<div *ngIf=\"false\" class=\"frequency-dialog-radio-list vx-d-flex vx-flex-wrap yearly\">\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">January</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">February</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">March</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">April</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">May</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">June</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">June</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">August</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">September</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">October</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">November</div></app-cs-radio>\n    <app-cs-radio><div class=\"vx-fs-12 vx-label-txt\">December</div></app-cs-radio>\n</div> -->\n\n<div class=\"frequency-dialog-radio-list vx-d-flex \" [class.vx-align-center]=\"name === 'quarter'\" [class.quarterly]=\"name === 'quarter'\" [class.vx-flex-wrap]=\"name === 'annual'\" [class.yearly]=\"name === 'annual'\">\n    <app-cs-radio \n        *ngFor=\"let eachList of radioList; let i = index;\" \n        [id]=\"i\" \n        [value]=\"i\" \n        [name]=\"name\"\n        [checked]=\"(selectedIndex === i)\" \n        (checkedEvent)=\"selectedRadio.emit($event)\">\n        <div class=\"vx-fs-12 vx-label-txt\">{{eachList}}</div>\n    </app-cs-radio>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment/moment';\nimport { FrequencyService } from '../../frequency/frequency.service';\n\n@Component({\n  selector: 'app-frequency-dialog-quarterly',\n  templateUrl: './frequency-dialog-quarterly.component.html',\n  styleUrls: ['./frequency-dialog-quarterly.component.less'],\n})\nexport class FrequencyDialogQuarterlyComponent implements OnInit {\n  quarterlyInterval = '11:00 pm';\n  quarterlyInput = this.frequencyService.changeTimeZone(new Date())?.getDate();\n  quarterlyFailed = 5;\n  quarterlyWindow = 7;\n  selectedQuarterly = 1;\n  quarterlyLifeCycleStart = this.frequencyService.changeTimeZone(new Date());\n  quarterlyLifeCycleEndTime = new Date(\n    this.quarterlyLifeCycleStart.getTime() + 86400000\n  );\n  quarterlyLifecycleOccurance = 10;\n  quarterlySeletedLifecycleType = 2;\n  quarterlyGroup = [0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11];\n  frequencyInfo: any;\n  quarterlyArray: Array<string> = [];\n  quarterlyExtension: number = 5;\n  quarterlyWindowOpen: number = 7;\n\n  @Input() mode: any = '';\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService?.frequencyInfo);\n    this.quarterlyArray = [...new Set(this.frequencyService.quarterlyMonth)];\n    const indexOfMonth = this.quarterlyGroup.indexOf(\n      this.frequencyService.changeTimeZone(new Date())?.getMonth()\n    );\n    this.selectedQuarterly =\n      indexOfMonth < 4 ? 0 : indexOfMonth > 3 && indexOfMonth < 8 ? 1 : 2;\n    if (\n      this.frequencyData?.pattern != '' &&\n      parseInt(this.frequencyData?.pattern?.split('~')[0]) === 7\n    ) {\n      this.populateFrequency();\n    }\n    this.getQuarterlyFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~');\n    const month = parseInt(patternInfo[2].split(',').map(Number)[0]);\n    const index = this.quarterlyGroup.indexOf(month - 1);\n    this.selectedQuarterly = index < 4 ? 0 : index > 3 && index < 8 ? 1 : 2;\n    this.quarterlyInterval = this.frequencyData?.failedTime;\n    this.quarterlyWindow = this.frequencyData?.window;\n    this.quarterlyInput = patternInfo[1];\n    this.quarterlyLifecycleOccurance = Number(patternInfo[1]);\n    this.startDate = this.frequencyData?.startDate;\n    this.quarterlyLifeCycleStart = new Date(\n      this.frequencyData?.startDate * 1000\n    );\n    this.quarterlyFailed = this.frequencyData?.failed;\n    this.lifecycleDetails = this.frequencyData?.lifecycle;\n    this.quarterlyWindowOpen = this.frequencyData?.can_assess_before_days;\n    this.quarterlyExtension = this.frequencyData?.failed_after_days;\n  }\n\n  valueChangedFirst(event: any) {\n    this.quarterlyInput = event.value;\n    this.getQuarterlyFrequency();\n  }\n\n  onTimeChanged(event: string) {\n    this.quarterlyInterval = event;\n    this.getQuarterlyFrequency();\n  }\n\n  selectedMonth(event: any) {\n    this.selectedQuarterly = parseInt(event.target.value);\n    this.getQuarterlyFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(\n      this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 +\n        86400000\n    );\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getQuarterlyFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.quarterlyWindow = event.value;\n    } else {\n      this.quarterlyFailed = event.value;\n    }\n    this.getQuarterlyFrequency();\n  }\n\n  onWindowOpenChange(event: any) {\n    if (event?.type?.toLowerCase() === 'window open') {\n      this.quarterlyWindowOpen = event?.value;\n    }\n    this.getQuarterlyFrequency();\n  }\n\n  onExtensionChange(event: any) {\n    if (event?.type?.toLowerCase() === 'extension') {\n      this.quarterlyExtension = event.value;\n    }\n    this.getQuarterlyFrequency();\n  }\n\n  getQuarterlyFrequency() {\n    let monthSequence =\n      this.selectedQuarterly === 0\n        ? this.quarterlyGroup.slice(0, 4)\n        : this.selectedQuarterly === 1\n        ? this.quarterlyGroup.slice(4, 8)\n        : this.quarterlyGroup.slice(8);\n    monthSequence = monthSequence.map((ele) => ele + 1);\n    this.frequencyInfo.pattern =\n      7 + '~' + this.quarterlyInput + '~' + monthSequence + '~' + '0';\n    this.frequencyInfo.case = 'quarterly';\n    this.frequencyInfo.failedAfter = this.quarterlyFailed;\n    this.frequencyInfo.window = this.quarterlyWindow;\n    this.frequencyInfo.timeIn12hr = this.quarterlyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.quarterlyInterval\n    );\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.placeholder = this.getPlaceholder(\n      Number(this.quarterlyInput)\n    );\n    this.frequencyInfo.failed_after_days = this.quarterlyExtension;\n    this.frequencyInfo.can_assess_before_days = this.quarterlyWindowOpen;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getPlaceholder(quarterlyInput: number) {\n    let placeholder = '';\n    if (quarterlyInput === 1) {\n      placeholder =\n        '1st of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput === 2) {\n      placeholder =\n        '2nd of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput === 3) {\n      placeholder =\n        '3rd of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput === 21 || quarterlyInput === 31) {\n      placeholder =\n        quarterlyInput +\n        'st of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput === 22) {\n      placeholder =\n        quarterlyInput +\n        'nd of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput === 23) {\n      placeholder =\n        quarterlyInput +\n        'rd of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput > 3) {\n      placeholder =\n        quarterlyInput +\n        'th of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    }\n    return placeholder;\n  }\n}\n","\n<div class=\"frequency-dialog-quarterly\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\n    <div class=\"frequency-dialog-quarterly-item vx-mb-5\">\n        <app-frequency-dialog-top\n            [id]=\"3\"\n            [inputTime]=\"quarterlyInterval\"\n            [occurrenceFirst]=\"quarterlyInput\"\n            [frequencyType]=\"3\"\n            (timeChanged)=\"onTimeChanged($event)\"\n            (valueChangedFirst)=\"valueChangedFirst($event)\"\n        ></app-frequency-dialog-top>\n        <app-frequency-dialog-radio-list></app-frequency-dialog-radio-list>\n        <app-frequency-dialog-radio-list\n            [radioList]=\"quarterlyArray\"\n            [selectedIndex]=\"selectedQuarterly\"\n            (selectedRadio)=\"selectedMonth($event)\"\n            [name]=\"'quarter'\">\n        </app-frequency-dialog-radio-list>\n    </div>\n    <app-frequency-dialog-due-date\n      [id] = '3'\n      [mode]=\"mode\"\n      [pageName]=\"'quarterly'\"\n      [isDeactivated]=\"false\"\n      [completedValue]=\"quarterlyWindow\"\n      [windowCloses]=\"quarterlyExtension\"\n      [assessWindowOpen]=\"quarterlyWindowOpen\"\n      (valueChange)=\"onValueChange($event)\"\n      (windowOpenChange)=\"onWindowOpenChange($event)\"\n      (extensionValueChange)=\"onExtensionChange($event)\"\n      ></app-frequency-dialog-due-date>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment/moment';\nimport { FrequencyService } from '../../frequency/frequency.service';\n\n@Component({\n  selector: 'app-frequency-dialog-biannual',\n  templateUrl: './frequency-dialog-biannual.component.html',\n  styleUrls: ['./frequency-dialog-biannual.component.less'],\n})\nexport class FrequencyDialogBiannualComponent implements OnInit {\n  biannualInterval = '11:00 pm';\n  biannualInput = this.frequencyService.changeTimeZone(new Date())?.getDate();\n  biannualFailed = 5;\n  biannualWindow = 30;\n  biannualDay = this.frequencyService.changeTimeZone(new Date())?.getDate();\n  biannualLifeCycleStart = this.frequencyService.changeTimeZone(new Date());\n  biannualLifeCycleEndTime = new Date(\n    this.biannualLifeCycleStart.getTime() + 86400000\n  );\n  biannualLifecycleOccurance = 10;\n  biannualSeletedLifecycleType = 2;\n  biannualSelected: Array<number> = [];\n  biannualLifecycle = false;\n  frequencyInfo: any;\n  monthNameArray: Array<string> = [];\n  shortMonth: Array<string> = [];\n  selectedMonthly: Array<number> = [];\n  biannuallyExtension: number = 5;\n  biannualWindowOpen: number = 30;\n\n  @Input() mode: any = '';\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.monthNameArray = [...new Set(this.frequencyService.monthArray)];\n    this.shortMonth = this.frequencyService.monthArray.map((month) =>\n      month.substring(0, 3)\n    );\n    if (\n      this.frequencyData?.pattern != '' &&\n      parseInt(this.frequencyData?.pattern.split('~')[0]) === 9\n    ) {\n      this.populateFrequency();\n    }\n    this.getBiannualFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~');\n    this.biannualSelected = patternInfo[2]\n      .split(',')\n      .map((ele: any) => Number(ele) - 1);\n    this.biannualInterval = this.frequencyData?.failedTime;\n    this.biannualWindow = this.frequencyData?.window;\n    this.biannualInput = patternInfo[1];\n    this.biannualLifecycleOccurance = Number(patternInfo[1]);\n    this.biannualLifeCycleStart = new Date(\n      this.frequencyData?.startDate * 1000\n    );\n    this.biannualFailed = this.frequencyData?.failed;\n    this.lifecycleDetails = this.frequencyData?.lifecycle;\n    this.biannualWindowOpen = this.frequencyData?.can_assess_before_days;\n    this.biannuallyExtension = this.frequencyData?.failed_after_days;\n  }\n\n  onMonthSelected(event: any) {\n    if (event.checked) {\n      this.biannualSelected.push(event.index);\n    } else {\n      this.biannualSelected = this.biannualSelected.filter(\n        (ele) => ele !== event.index\n      );\n    }\n    this.getBiannualFrequency();\n  }\n\n  valueChangedFirst(event: any) {\n    this.biannualInput = event.value;\n    this.getBiannualFrequency();\n  }\n\n  onTimeChanged(event: string) {\n    this.biannualInterval = event;\n    this.getBiannualFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.biannualWindow = event.value;\n    } else {\n      this.biannualFailed = event.value;\n    }\n    this.getBiannualFrequency();\n  }\n\n  onWindowOpenChange(event: any) {\n    if (event?.type?.toLowerCase() === 'window open') {\n      this.biannualWindowOpen = event?.value;\n    }\n    this.getBiannualFrequency();\n  }\n\n  onExtensionChange(event: any) {\n    if (event?.type?.toLowerCase() === 'extension') {\n      this.biannuallyExtension = event.value;\n    }\n    this.getBiannualFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(\n      this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 +\n        86400000\n    );\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getBiannualFrequency();\n  }\n\n  getBiannualFrequency() {\n    this.biannualSelected = this.biannualSelected.sort((n1, n2) => n1 - n2);\n    const monthIndex = this.biannualSelected.map((ele) => ele + 1);\n    this.frequencyInfo.pattern =\n      9 + '~' + this.biannualInput + '~' + monthIndex.join(',') + '~0';\n    this.frequencyInfo.case = 'biannual';\n    this.frequencyInfo.failedAfter = this.biannualFailed;\n    this.frequencyInfo.window = this.biannualWindow;\n    this.frequencyInfo.timeIn12hr = this.biannualInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.biannualInterval\n    );\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(\n      Number(this.biannualInput)\n    );\n    this.frequencyInfo.failed_after_days = this.biannuallyExtension;\n    this.frequencyInfo.can_assess_before_days = this.biannualWindowOpen;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getFrequencyPlaceholder(biannualInput: number) {\n    let placeholder = '';\n    const selectedMonth = this.biannualSelected.map((ele) => {\n      return this.shortMonth[ele];\n    });\n    if (biannualInput === 1) {\n      placeholder =\n        '1st of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput === 2) {\n      placeholder =\n        '2nd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput === 3) {\n      placeholder =\n        '3rd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput === 21 || biannualInput === 31) {\n      placeholder =\n        biannualInput +\n        'st of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput === 22) {\n      placeholder =\n        biannualInput +\n        'nd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput === 23) {\n      placeholder =\n        biannualInput +\n        'rd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput > 3) {\n      placeholder =\n        biannualInput +\n        'th of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    }\n    return placeholder;\n  }\n}\n","\n<div class=\"frequency-dialog-biannual\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\n    <div class=\"frequency-dialog-biannual-item vx-mb-5\">\n        <app-frequency-dialog-top\n            [id]=\"4\"\n            [inputTime]=\"biannualInterval\"\n            [occurrenceFirst]=\"biannualInput\"\n            [frequencyType]=\"4\"\n            (timeChanged)=\"onTimeChanged($event)\"\n            (valueChangedFirst)=\"valueChangedFirst($event)\"\n        ></app-frequency-dialog-top>\n        <app-frequency-dialog-checkbox-list\n            [id]=\"4\"\n            [listArray]=\"monthNameArray\"\n            [selectedIndex]=\"biannualSelected\"\n            (selectedCheckbox)=\"onMonthSelected($event)\">\n        </app-frequency-dialog-checkbox-list>\n    </div>\n    <app-frequency-dialog-due-date\n      [pageName]=\"'biannual'\"\n      [mode]=\"mode\"\n      [id]=\"4\"\n      [completedValue]=\"biannualWindow\"\n      [windowCloses]=\"biannuallyExtension\"\n      [assessWindowOpen]=\"biannualWindowOpen\"\n      (valueChange)=\"onValueChange($event)\"\n      (windowOpenChange)=\"onWindowOpenChange($event)\"\n      (extensionValueChange)=\"onExtensionChange($event)\"\n    ></app-frequency-dialog-due-date>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment/moment';\nimport { FrequencyService } from '../../frequency/frequency.service';\n\n@Component({\n  selector: 'app-frequency-dialog-annual',\n  templateUrl: './frequency-dialog-annual.component.html',\n  styleUrls: ['./frequency-dialog-annual.component.less'],\n})\nexport class FrequencyDialogAnnualComponent implements OnInit {\n  monthList: Array<any> = [];\n  yearlyInterval: string = '11:00 pm';\n  yearlyInput: number = 1;\n  yearlyFailed: number = 5;\n  yearlyWindow: number = 30;\n  yearlyDay = this.frequencyService.changeTimeZone(new Date())?.getDate();\n  yearlyLifeCycleStart = this.frequencyService.changeTimeZone(new Date());\n  yearlyLifeCycleEndTime = new Date(\n    this.yearlyLifeCycleStart.getTime() + 86400000\n  );\n  yearlyLifecycleOccurance: number = 10;\n  yearlySeletedLifecycleType: number = 2;\n  yearlySelected = this.frequencyService.changeTimeZone(new Date())?.getMonth();\n  lifecycleDetails: any = '0000-00-00~~0';\n  previousStartDate = Math.floor(Date.now() / 1000);\n  frequencyInfo: any;\n  shortMonth: Array<string> = [];\n  annuallyExtension: number = 5;\n  annualWindowOpen: number = 30;\n\n  @Input() frequencyData: any;\n  @Input() mode: any = '';\n  @Input() startDate = Math.floor(Date.now() / 1000);\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.monthList = this.frequencyService.monthArray;\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.shortMonth = this.frequencyService.monthArray.map((month) =>\n      month.substring(0, 3)\n    );\n    if (\n      this.frequencyData?.pattern != '' &&\n      parseInt(this.frequencyData?.pattern.split('~')[0]) === 4\n    ) {\n      this.populateFrequency();\n    }\n    this.getAnnualFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~').map(Number);\n    this.yearlySelected = patternInfo[2] - 1;\n    this.yearlyInterval = this.frequencyData?.failedTime;\n    this.yearlyWindow = this.frequencyData?.window;\n    this.yearlyInput = patternInfo[3];\n    this.yearlyDay = patternInfo[1];\n    this.yearlyLifecycleOccurance = Number(patternInfo[1]);\n    this.yearlyLifeCycleStart = new Date(this.frequencyData?.startDate * 1000);\n    this.startDate =\n      this.frequencyData?.startFrom ?? this.frequencyData?.startDate;\n    this.yearlyFailed = this.frequencyData?.failed;\n    this.lifecycleDetails = this.frequencyData?.lifecycle;\n    this.annualWindowOpen = this.frequencyData?.can_assess_before_days;\n    this.annuallyExtension = this.frequencyData?.failed_after_days;\n  }\n\n  onTimeChanged(event: string) {\n    this.yearlyInterval = event;\n    this.getAnnualFrequency();\n  }\n\n  dateChange(event: number) {\n    this.yearlyDay = event;\n    this.getAnnualFrequency();\n  }\n\n  valueChangedFirst(event: any) {\n    this.yearlyInput = event.value;\n    this.getAnnualFrequency();\n  }\n\n  selectedMonth(event: any) {\n    this.yearlySelected = parseInt(event.target.value);\n    this.getAnnualFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(\n      this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 +\n        86400000\n    );\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getAnnualFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.yearlyWindow = event.value;\n    } else {\n      this.yearlyFailed = event.value;\n    }\n    this.getAnnualFrequency();\n  }\n\n  onWindowOpenChange(event: any) {\n    if (event?.type?.toLowerCase() === 'window open') {\n      this.annualWindowOpen = event?.value;\n    }\n    this.getAnnualFrequency();\n  }\n\n  onExtensionChange(event: any) {\n    if (event?.type?.toLowerCase() === 'extension') {\n      this.annuallyExtension = event.value;\n    }\n    this.getAnnualFrequency();\n  }\n\n  // frequency pattern and details info\n  getAnnualFrequency() {\n    this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(\n      Number(this.yearlyInput)\n    );\n    this.frequencyInfo.pattern =\n      4 +\n      '~' +\n      this.yearlyDay +\n      '~' +\n      (this.yearlySelected + 1) +\n      '~' +\n      this.yearlyInput;\n    this.frequencyInfo.case = 'yearly';\n    this.frequencyInfo.failedAfter = this.yearlyFailed;\n    this.frequencyInfo.window = this.yearlyWindow;\n    this.frequencyInfo.timeIn12hr = this.yearlyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.yearlyInterval\n    );\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.failed_after_days = this.annuallyExtension;\n    this.frequencyInfo.can_assess_before_days = this.annualWindowOpen;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getFrequencyPlaceholder(yearlyInput: any) {\n    let placeholder = '';\n    if (yearlyInput === 1) {\n      placeholder = this.getPlaceholderForSt2();\n    } else {\n      placeholder = this.getPlaceholderForGt1();\n    }\n    return placeholder;\n  }\n\n  // if yearlyInput is smaller than 2 then this function will called\n  getPlaceholderForSt2() {\n    let placeholder = '';\n    if (this.yearlyDay === 1) {\n      placeholder =\n        '1st of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 2) {\n      placeholder =\n        '2nd of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 3) {\n      placeholder =\n        '3rd of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay > 3) {\n      placeholder =\n        this.yearlyDay +\n        'th of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 31 || this.yearlyDay === 21) {\n      placeholder =\n        this.yearlyDay +\n        'st of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 22) {\n      placeholder =\n        this.yearlyDay +\n        'nd of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 23) {\n      placeholder =\n        this.yearlyDay +\n        'rd of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    return placeholder;\n  }\n\n  // if yearlyInput is greater than 1 then this function will called\n  getPlaceholderForGt1() {\n    let placeholder = '';\n    if (this.yearlyDay === 1) {\n      placeholder =\n        '1st of ' +\n        this.shortMonth[this.yearlySelected] +\n        ', Interval: every ' +\n        this.yearlyInput +\n        ' years by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 2) {\n      placeholder =\n        '2nd of ' +\n        this.shortMonth[this.yearlySelected] +\n        ', Interval: every ' +\n        this.yearlyInput +\n        ' years by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 3) {\n      placeholder =\n        '3rd of ' +\n        this.shortMonth[this.yearlySelected] +\n        ', Interval: every ' +\n        this.yearlyInput +\n        ' years by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay > 3) {\n      placeholder =\n        this.yearlyDay +\n        'th of ' +\n        this.shortMonth[this.yearlySelected] +\n        ', Interval: every ' +\n        this.yearlyInput +\n        ' years by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 31 || this.yearlyDay === 21) {\n      placeholder =\n        this.yearlyDay +\n        'st of ' +\n        this.shortMonth[this.yearlySelected] +\n        ', Interval: every ' +\n        this.yearlyInput +\n        ' years by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 22) {\n      placeholder =\n        this.yearlyDay +\n        'nd of ' +\n        this.shortMonth[this.yearlySelected] +\n        ', Interval: every ' +\n        this.yearlyInput +\n        ' years by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 23) {\n      placeholder =\n        this.yearlyDay +\n        'rd of ' +\n        this.shortMonth[this.yearlySelected] +\n        ', Interval: every ' +\n        this.yearlyInput +\n        ' years by ' +\n        this.yearlyInterval;\n    }\n    return placeholder;\n  }\n}\n","\n<div class=\"frequency-dialog-annual\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\n    <div class=\"frequency-dialog-annual-item vx-mb-5\">\n        <app-frequency-dialog-top\n            [id]=\"5\"\n            [inputTime]=\"yearlyInterval\"\n            [occurrenceFirst]=\"yearlyInput\"\n            [yearlyDay]=\"yearlyDay\"\n            [frequencyType]=\"2\"\n            (timeChanged)=\"onTimeChanged($event)\"\n            (valueChangedFirst)=\"valueChangedFirst($event)\"\n            (yearlyDateChanged)=\"dateChange($event)\">\n        </app-frequency-dialog-top>\n        <app-frequency-dialog-radio-list\n            [radioList]=\"monthList\"\n            [selectedIndex]=\"yearlySelected\"\n            (selectedRadio)=\"selectedMonth($event)\"\n            [name]=\"'annual'\">\n        </app-frequency-dialog-radio-list>\n    </div>\n    <app-frequency-dialog-due-date\n      [pageName]=\"'yearly'\"\n      [mode]=\"mode\"\n      [id]=\"5\"\n      [completedValue]=\"yearlyWindow\"\n      [windowCloses]=\"annuallyExtension\"\n      [assessWindowOpen]=\"annualWindowOpen\"\n      (valueChange)=\"onValueChange($event)\"\n      (windowOpenChange)=\"onWindowOpenChange($event)\"\n      (extensionValueChange)=\"onExtensionChange($event)\"\n      >\n    </app-frequency-dialog-due-date>\n</div>\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport {\n  DatePickerComponent,\n  IDatePickerConfig,\n  SingleCalendarValue,\n} from 'ng2-date-picker';\nimport { CommonService } from '../../../services/common.service';\nimport { FrequencyService } from '../../frequency/frequency.service';\nimport moment from 'moment/moment';\nimport dayjs from 'dayjs';\n\n@Component({\n  selector: 'app-frequency-dialog-one-time',\n  templateUrl: './frequency-dialog-one-time.component.html',\n  styleUrls: ['./frequency-dialog-one-time.component.less'],\n})\nexport class FrequencyDialogOneTimeComponent implements OnInit {\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  datepickerOverlay = false;\n  showDateError = false;\n  oneTimeFailed = 5;\n  oneTimeWindow = 15;\n  oneTimeStartTime: any = '11:00 pm';\n  oneTimeSelected = '';\n  dateConfig: IDatePickerConfig = {\n    min: '',\n  };\n  todayDate = this.frequencyService.changeTimeZone(\n    new Date()?.setDate(new Date()?.getDate() + 1)\n  );\n  frequencyInfo: any;\n  shortMonth: Array<string> = [];\n  dateObjectData = this.frequencyService.changeTimeZone(\n    new Date()?.setDate(new Date()?.getDate() + 1)\n  );\n  minDate = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')?.split(' ')[0];\n  selectedDate: any;\n  oneTimeExtension: number = 5;\n  oneTimeWindowOpen: number = 15;\n\n  @Input() frequencyData: any;\n  @Input() mode: any = '';\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n\n  constructor(\n    private frequencyService: FrequencyService,\n    private commonService: CommonService\n  ) {}\n\n  ngOnInit(): void {\n    this.dateConfig = this.frequencyService.dateConfig;\n    this.dateConfig['min'] = this.formatDate();\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.shortMonth = this.frequencyService.monthArray.map((month) =>\n      month.substring(0, 3)\n    );\n    this.selectedDate = moment(this.todayDate);\n    if (\n      this.frequencyData?.pattern != '' &&\n      this.frequencyData?.pattern.split('~')[0] === '0'\n    ) {\n      this.populateFrequency();\n    } else {\n      this.getOneTimeFrequency();\n    }\n  }\n\n  formatDate() {\n    const newDate = new Date(\n      this.frequencyService.changeTimeZone(\n        new Date().setDate(new Date().getDate() + 1)\n      )\n    );\n    const day = String(newDate.getDate()).padStart(2, '0');\n    const month = String(newDate.getMonth() + 1).padStart(2, '0');\n    const year = newDate.getFullYear();\n    const formattedDate = `${day}-${month}-${year}`;\n    return formattedDate;\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData?.pattern.split('~');\n    const timeStamp = moment(\n      `${patternInfo[3]}-${patternInfo[2]}-${patternInfo[1]} ${this.frequencyData?.failedTime}`,\n      'DD-MM-YYYY HH:mm a'\n    ).unix();\n    this.todayDate = new Date(timeStamp * 1000);\n    this.selectedDate = moment(this.todayDate);\n    this.oneTimeFailed = this.frequencyData?.failed;\n    this.oneTimeWindow = this.frequencyData?.window;\n    this.oneTimeStartTime = this.frequencyData?.failedTime;\n    this.oneTimeSelected =\n      patternInfo[1] + '~' + patternInfo[2] + '~' + patternInfo[3];\n    this.dateObjectData = new Date(\n      moment(\n        this.oneTimeSelected + ' ' + this.oneTimeStartTime,\n        'YYYY~MM~DD HH:mm:ss'\n      ).unix() * 1000\n    );\n    this.oneTimeWindowOpen = this.frequencyData?.can_assess_before_days;\n    this.oneTimeExtension = this.frequencyData?.failed_after_days;\n    this.getOneTimeFrequency();\n  }\n\n  openDatePicker() {\n    const newDate = dayjs(this.todayDate);\n    this.datePicker?.api?.moveCalendarTo(newDate);\n    this.datePicker?.api?.open();\n    this.datepickerOverlay = true;\n  }\n  closeDatepicker() {\n    this.datePicker?.api?.close();\n    this.datepickerOverlay = false;\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.oneTimeWindow = event.value;\n    } else {\n      this.oneTimeFailed = event.value;\n    }\n    this.closeDatepicker();\n    this.getOneTimeFrequency();\n  }\n\n  onWindowOpenChange(event: any) {\n    if (event?.type?.toLowerCase() === 'window open') {\n      this.oneTimeWindowOpen = event?.value;\n    }\n    this.getOneTimeFrequency();\n  }\n\n  onExtensionChange(event: any) {\n    if (event?.type?.toLowerCase() === 'extension') {\n      this.oneTimeExtension = event.value;\n    }\n    this.getOneTimeFrequency();\n  }\n\n  onTimeChanged(event: any) {\n    this.oneTimeStartTime = event.selectedValue;\n    if (typeof this.dateObjectData == 'object') {\n      this.dateObjectData = moment(this.dateObjectData)?.toDate();\n    }\n    let timeStamp = moment(\n      this.dateObjectData.getDate() +\n        '-' +\n        (this.dateObjectData.getMonth() + 1) +\n        '-' +\n        this.dateObjectData.getFullYear() +\n        ' ' +\n        this.oneTimeStartTime,\n      'DD-MM-YYYY hh:mm a'\n    ).unix();\n    this.oneTimeSelected = moment(timeStamp * 1000)\n      .format('YYYY~MM~DDTHH:mm:ssZ')\n      .split('T')[0];\n    this.getOneTimeFrequency();\n  }\n\n  dateChange(event: any) {\n    this.selectedDate = event?.date?.$d;\n    const newDate = moment(this.selectedDate).unix();\n\n    this.dateObjectData = new Date(newDate * 1000);\n    this.todayDate = this.dateObjectData;\n    let timeStamp = moment(\n      this.dateObjectData.getDate() +\n        '-' +\n        (this.dateObjectData.getMonth() + 1) +\n        '-' +\n        this.dateObjectData.getFullYear() +\n        ' ' +\n        this.oneTimeStartTime,\n      'DD-MM-YYYY hh:mm a'\n    ).unix();\n    const momentDate = moment(event?.date?.$d);\n    this.oneTimeSelected = momentDate\n      .format('YYYY~MM~DDTHH:mm:ssZ')\n      .split('T')[0];\n    this.getOneTimeFrequency();\n  }\n\n  getOneTimeFrequency() {\n    if (this.oneTimeSelected !== '') {\n      this.todayDate = moment(this.todayDate)?.toDate();\n    }\n    this.selectedDate = moment(this.todayDate);\n    this.frequencyInfo.placeholder =\n      'One Time ' +\n      this.todayDate.getDate() +\n      ' ' +\n      this.shortMonth[this.todayDate.getMonth()] +\n      ' ' +\n      this.todayDate.getFullYear() +\n      ' by ' +\n      this.oneTimeStartTime;\n    this.frequencyInfo.pattern =\n      0 +\n      '~' +\n      (this.oneTimeSelected === ''\n        ? this.frequencyService\n            .changeTimeZone(new Date()?.setDate(new Date()?.getDate() + 1))\n            ?.getFullYear() +\n          '~' +\n          (this.frequencyService\n            .changeTimeZone(new Date()?.setDate(new Date()?.getDate() + 1))\n            ?.getMonth() +\n            1) +\n          '~' +\n          this.frequencyService\n            .changeTimeZone(new Date()?.setDate(new Date()?.getDate() + 1))\n            ?.getDate()\n        : this.oneTimeSelected);\n    this.frequencyInfo.case = 'oneTime';\n    this.frequencyInfo.failedAfter = this.oneTimeFailed;\n    this.frequencyInfo.window = this.oneTimeWindow;\n    this.frequencyInfo.timeIn12hr = this.oneTimeStartTime;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.oneTimeStartTime\n    );\n    this.frequencyInfo.failed_time_utc = 0;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.failed_after_days = this.oneTimeExtension;\n    this.frequencyInfo.can_assess_before_days = this.oneTimeWindowOpen;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'frequency-date',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datepickerOverlay,\n    };\n    this.commonService.handleDocumentClick(datePickerObject);\n  }\n}\n","<div class=\"frequency-dialog-one-time\" *ngIf=\"true\">\n  <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n    REASSESSMENT FREQUENCY:\n  </div>\n  <div\n    class=\"frequency-dialog-one-time-item vx-p-3 vx-d-flex vx-align-center vx-justify-between vx-mb-5\"\n  >\n    <div class=\"date-picker\">\n      <i class=\"icons calendar-icon vx-fs-14 vx-txt-blue\">&#xe92d;</i>\n      <!-- <input class=\"datePicker\" (click)=\"openDatePicker()\" placeholder=\"Select Date\"> -->\n      <input\n        class=\"datePicker\"\n        type=\"text\"\n        [value]=\"todayDate | date : 'dd MMM yyyy'\"\n        [placeholder]=\"todayDate | date : 'dd MMM yyyy'\"\n        (click)=\"openDatePicker()\"\n        readonly\n        id=\"frequency-date\"\n      />\n      <!-- <dp-date-picker #datePicker placeholder='Select Date' (click)=\"openDatePicker()\" (click)=\"closeDatepicker()\"></dp-date-picker> -->\n      <dp-date-picker\n        #datePicker\n        [id]=\"'start-date-' + 6\"\n        [placeholder]=\"todayDate | date : 'dd MMM yyyy'\"\n        [(ngModel)]=\"selectedDate\"\n        [config]=\"dateConfig\"\n        (onSelect)=\"\n          openDatePicker();\n          dateChange($event);\n          showDateError = false;\n          datepickerOverlay = false\n        \"\n      >\n      </dp-date-picker>\n      <div\n        class=\"overlay\"\n        (click)=\"closeDatepicker()\"\n        *ngIf=\"datepickerOverlay\"\n      ></div>\n    </div>\n    <div\n      class=\"time-picker vx-d-flex vx-align-center vx-justify-end vx-pr-3\"\n      appPopover\n      (click)=\"timePicker.popover()\"\n      placement=\"right\"\n    >\n      <input\n        type=\"text\"\n        readonly\n        [(ngModel)]=\"oneTimeStartTime\"\n        placeholder=\"Select Time\"\n      />\n      <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\n        <i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe955;</i>\n      </div>\n    </div>\n    <app-popover #timePicker [dontCloseonClick]=\"true\">\n      <app-time-picker\n        [time]=\"oneTimeStartTime\"\n        (onTimeSelection)=\"\n          onTimeChanged($event); timePicker.closePopover('top')\n        \"\n      ></app-time-picker>\n    </app-popover>\n  </div>\n  <app-frequency-dialog-due-date\n    [id]=\"6\"\n    [mode]=\"mode\"\n    [pageName]=\"'one-time'\"\n    [isDeactivated]=\"false\"\n    [completedValue]=\"oneTimeWindow\"\n    [windowCloses]=\"oneTimeExtension\"\n    [assessWindowOpen]=\"oneTimeWindowOpen\"\n    (valueChange)=\"onValueChange($event)\"\n    (windowOpenChange)=\"onWindowOpenChange($event)\"\n    (extensionValueChange)=\"onExtensionChange($event)\"\n  ></app-frequency-dialog-due-date>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport moment from 'moment/moment';\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\nimport { FrequencyService } from '../../frequency/frequency.service';\n\n@Component({\n  selector: 'app-frequency-dialog-container',\n  templateUrl: './frequency-dialog-container.component.html',\n  styleUrls: ['./frequency-dialog-container.component.less'],\n})\nexport class FrequencyDialogContainerComponent implements OnInit {\n  currentTab = 'WEEKLY';\n  frequencyDetails: any = {\n    pattern: '',\n    window: 0,\n    timeIn12hr: '',\n    can_assess_before_days: 0,\n    failed_after_days: 0,\n  };\n  isNextDisabled: boolean = false;\n  frequencyTab = 'weekly';\n  currentTabName = 'a weekly';\n  frequencyData: any;\n  frequencyList = [\n    {\n      name: 'Daily',\n      type: 'daily',\n    },\n    {\n      name: 'Weekly',\n      type: 'weekly',\n    },\n    {\n      name: 'Monthly',\n      type: 'monthly',\n    },\n    {\n      name: 'Quarterly',\n      type: 'quarterly',\n    },\n    {\n      name: 'Biannual',\n      type: 'biannual',\n    },\n    {\n      name: 'Annual',\n      type: 'annual',\n    },\n    {\n      name: 'One Time',\n      type: 'oneTime',\n    },\n    {\n      name: 'Random',\n      type: 'random',\n    },\n    {\n      name: 'On Completion Of',\n      type: 'on_complete',\n    },\n    {\n      name: 'Ongoing',\n      type: 'ongoing',\n    },\n  ];\n  selectedFrequencyData: any;\n\n  @Input() mode: any = '';\n  @Input('frequencyDetails') set getFrequencyDetails(frequency: any) {\n    this.frequencyDetails['pattern'] = frequency?.frequency;\n    this.frequencyDetails['window'] = frequency?.remind_before_days;\n    this.frequencyDetails['failedTime'] = frequency?.frequency_time;\n    this.frequencyDetails['failed_after_days'] = frequency?.failed_after_days;\n    this.frequencyDetails['can_assess_before_days'] =\n      frequency?.can_assess_before_days;\n  }\n\n  @Output() selectedFrequency = new EventEmitter<any>();\n  @Output() closeFrequency = new EventEmitter();\n\n  constructor(\n    private frequencyService: FrequencyService,\n    private snackbar: SnackBarService\n  ) {}\n\n  ngOnInit(): void {\n    if (this.frequencyDetails?.pattern != '') {\n      this.populateFrequency();\n    }\n  }\n\n  ngOnChanges() {\n    this.selectedFrequencyData = Object.assign({ ...this.frequencyDetails });\n    this.frequencyData = Object.assign({ ...this.frequencyDetails });\n  }\n\n  close() {\n    this.closeFrequency.emit();\n  }\n\n  onFrequencySelected(event: any) {\n    this.frequencyData = event;\n    this.isNextDisabled = this.isInvalid();\n  }\n\n  populateFrequency() {\n    const frequencyPattern = parseInt(\n      this.frequencyDetails?.pattern.split('~')[0]\n    );\n    switch (frequencyPattern) {\n      case 0:\n        this.frequencyTab = 'oneTime';\n        this.currentTabName = 'a one time';\n        break;\n      case 1:\n        this.frequencyTab = 'daily';\n        this.currentTabName = 'a daily';\n        break;\n      case 2:\n        this.frequencyTab = 'weekly';\n        this.currentTabName = 'a weekly';\n        break;\n      case 3:\n        this.frequencyTab = 'monthly';\n        this.currentTabName = 'a monthly';\n        break;\n      case 4:\n        this.frequencyTab = 'annual';\n        this.currentTabName = 'an annual ';\n        break;\n      case 5:\n        this.frequencyTab = 'daily';\n        this.currentTabName = 'a daily';\n        break;\n      case 6:\n        this.frequencyTab = 'on_complete';\n        this.currentTabName = 'an on completion of';\n        this.frequencyData.report_id = this.frequencyDetails.selectedReport;\n        break;\n      case 7:\n        this.frequencyTab = 'quarterly';\n        this.currentTabName = 'a quarterly';\n        break;\n      case 8:\n        this.frequencyTab = 'random';\n        this.currentTabName = 'a random';\n        break;\n      case 9:\n        this.frequencyTab = 'biannual';\n        this.currentTabName = 'a biannual';\n        break;\n      case 10:\n        this.frequencyTab = 'ongoing';\n        this.currentTabName = 'an ongoing';\n        break;\n    }\n    this.isNextDisabled = false;\n  }\n\n  switchTab(frequency: any) {\n    this.frequencyTab = frequency;\n    if (frequency == 'oneTime') {\n      this.currentTabName = 'a one time';\n    } else {\n      this.currentTabName =\n        frequency.startsWith('On') || frequency.toLowerCase() === 'annual'\n          ? 'an ' + frequency\n          : 'a ' + frequency;\n    }\n  }\n\n  isInvalid(): boolean {\n    let isInvalid = false;\n    const frequencyDetails = this.frequencyData?.pattern?.split('~');\n    switch (this.frequencyTab) {\n      case 'daily':\n        if (this.frequencyData.continuous_failed_days < 2) {\n          this.snackbar.show('Input value should be greater than 1.', 'alert');\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n          this.isNextDisabled = false;\n        }\n        break;\n      case 'weekly':\n        if (this.frequencyData.continuous_failed_days < 2) {\n          this.snackbar.show('Input value should be greater than 1.', 'alert');\n          isInvalid = true;\n          break;\n        } else {\n          isInvalid = false;\n          this.isNextDisabled = false;\n        }\n        if (\n          frequencyDetails[1] == '' ||\n          !frequencyDetails[1] ||\n          frequencyDetails.length < 4\n        ) {\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n        }\n        break;\n      case 'monthly':\n        if (this.frequencyData.continuous_failed_days < 2) {\n          this.snackbar.show('Input value should be greater than 1.', 'alert');\n          isInvalid = true;\n          break;\n        } else {\n          isInvalid = false;\n          this.isNextDisabled = false;\n        }\n        if (\n          frequencyDetails[2] == '' ||\n          !frequencyDetails[2] ||\n          frequencyDetails.length < 4\n        ) {\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n        }\n\n        break;\n      case 'biannual':\n        if (\n          frequencyDetails.length === 0 ||\n          frequencyDetails[2] === '' ||\n          frequencyDetails[2].split(',')?.length < 2\n        ) {\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n        }\n        break;\n      case 'oneTime':\n        if (frequencyDetails?.length > 0) {\n          const selectedTime = moment(\n            `${frequencyDetails[3]}-${frequencyDetails[2]}-${frequencyDetails[1]} ${this.frequencyData.timeIn12hr}`,\n            'DD-MM-YYYY HH:mm a'\n          ).unix();\n          if (\n            this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 >\n            selectedTime\n          ) {\n            this.snackbar.show('Please set a future date.', 'alert');\n            isInvalid = true;\n            break;\n          } else {\n            isInvalid = false;\n            this.isNextDisabled = false;\n          }\n        } else {\n          isInvalid = true;\n        }\n        break;\n      case 'on_complete':\n        if (this.frequencyData.reportId > 0) {\n          isInvalid = false;\n        } else {\n          isInvalid = true;\n        }\n        break;\n\n      case 'random':\n        if (\n          parseInt(frequencyDetails[1]) == 2 &&\n          (frequencyDetails[2] == '' ||\n            !frequencyDetails[2] ||\n            frequencyDetails.length < 4)\n        ) {\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n        }\n        break;\n      default:\n        isInvalid = false;\n    }\n    return isInvalid;\n  }\n\n  save() {\n    let frequency_details = {\n      frequency: this.frequencyData?.pattern,\n      started_at: this.frequencyService?.changeTimeZone(new Date())\n        ? moment(this.frequencyService?.changeTimeZone(new Date()))?.format(\n            'YYYY-MM-DD'\n          )\n        : moment().format('YYYY-MM-DD'),\n      frequency_time: this.frequencyData?.timeIn12hr,\n      remind_before_days: this.frequencyData?.window,\n      placeholder: this.frequencyData?.placeholder,\n      failed_after_days: this.frequencyData?.failed_after_days,\n      can_assess_before_days: this.frequencyData?.can_assess_before_days,\n    };\n    this.selectedFrequency.emit(frequency_details);\n    this.closeFrequency.emit();\n  }\n}\n","<div class=\"risk-frequency-dialog\">\n    <div class=\"risk-frequency-dialog-head vx-p-3 vx-mb-4 vx-d-flex vx-align-center vx-justify-between\">\n        <div class=\"risk-frequency-dialog-title vx-fs-14 vx-fw-500 vx-label-txt\">Set a Reassessment Frequency</div>\n    </div>\n    <div class=\"risk-frequency-dialog-body vx-pl-4 vx-pr-4\">\n        <div class=\"risk-frequency-dialog-body-inner\">\n            <div class=\"risk-frequency-dialog-tab vx-d-flex vx-align-center\">\n                <button (click)=\"switchTab('weekly')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'weekly'\">WEEKLY</button>\n                <button (click)=\"switchTab('monthly')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'monthly'\">MONTHLY</button>\n                <button (click)=\"switchTab('quarterly')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'quarterly'\">QUARTERLY</button>\n                <button (click)=\"switchTab('biannual')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'biannual'\">BIANNUAL</button>\n                <button (click)=\"switchTab('annual')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'annual'\">ANNUAL</button>\n                <button (click)=\"switchTab('oneTime')\" class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" [class.active]=\"frequencyTab === 'oneTime'\">ONE TIME</button>\n            </div>\n\n            <div class=\"risk-frequency-dialog-container vx-pl-4 vx-pr-4\">\n                <!-- <app-frequency-dialog-weekly *ngIf=\"frequencyTab === 'WEEKLY'\"></app-frequency-dialog-weekly> -->\n                <app-frequency-dialog-weekly *ngIf=\"frequencyTab === 'weekly'\"\n                    [mode]=\"mode\"\n                    (frequencyDetails)=\"onFrequencySelected($event)\"\n                    [frequencyData]=\"frequencyDetails\"\n                ></app-frequency-dialog-weekly>\n                <!-- <app-frequency-dialog-monthly *ngIf=\"frequencyTab === 'MONTHLY'\"></app-frequency-dialog-monthly> -->\n                <app-frequency-dialog-monthly *ngIf=\"frequencyTab === 'monthly'\"\n                    [mode]=\"mode\"\n                    (frequencyDetails)=\"onFrequencySelected($event)\"\n                    [frequencyData]=\"frequencyDetails\">\n                </app-frequency-dialog-monthly>\n                <!-- <app-frequency-dialog-quarterly *ngIf=\"frequencyTab === 'QUARTERLY'\"></app-frequency-dialog-quarterly>\n                <app-frequency-dialog-biannual *ngIf=\"frequencyTab === 'BIANNUAL'\"></app-frequency-dialog-biannual>\n                <app-frequency-dialog-annual *ngIf=\"frequencyTab === 'ANNUAL'\"></app-frequency-dialog-annual>\n                <app-frequency-dialog-one-time *ngIf=\"frequencyTab === 'ONETIME'\"></app-frequency-dialog-one-time> -->\n                <app-frequency-dialog-quarterly \n                    *ngIf=\"frequencyTab === 'quarterly'\"\n                    [mode]=\"mode\"\n                    (frequencyDetails)=\"onFrequencySelected($event)\"\n                    [frequencyData]=\"frequencyDetails\">\n                </app-frequency-dialog-quarterly>\n                <app-frequency-dialog-biannual \n                    *ngIf=\"frequencyTab === 'biannual'\"\n                    [mode]=\"mode\"\n                    (frequencyDetails)=\"onFrequencySelected($event)\"\n                    [frequencyData]=\"frequencyDetails\">\n                </app-frequency-dialog-biannual>\n                <app-frequency-dialog-annual \n                    *ngIf=\"frequencyTab === 'annual'\"\n                    [mode]=\"mode\"\n                    (frequencyDetails)=\"onFrequencySelected($event)\"\n                    [frequencyData]=\"frequencyDetails\">\n                </app-frequency-dialog-annual>\n                <app-frequency-dialog-one-time \n                    *ngIf=\"frequencyTab === 'oneTime'\"\n                    [mode]=\"mode\"\n                    (frequencyDetails)=\"onFrequencySelected($event)\"\n                    [frequencyData]=\"frequencyDetails\">\n                </app-frequency-dialog-one-time>\n            </div>\n        </div>\n    </div>\n    <div class=\"risk-frequency-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-2 vx-pl-3 vx-pr-3\">\n        <div class=\"vx-fs-12 vx-paragraph-txt\">You have selected <span class=\"vx-fw-500 vx-label-txt\">{{currentTabName}}</span> frequency.</div>\n        <div class=\"vx-d-flex vx-align-center\">\n            <button class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-6\" (click)=\"close()\">CANCEL</button>\n            <button class=\"next-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-ml-3 vx-d-flex vx-align-center vx-lh-6\" [class.disabled]=\"isNextDisabled\" (click)=\"save()\">NEXT <i class=\"icons vx-fs-11 vx-ml-2\">&#xe91e;</i></button>\n        </div>\n    </div>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\nimport { cloneDeep } from 'lodash';\n\n@Pipe({\n  name: 'refDisconnect'\n})\nexport class RefDisconnectPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    return   cloneDeep(value);\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n\n@Pipe({\n  name: 'spaceTrim',\n  pure:false\n})\nexport class SpaceTrimPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    let text = value;\n    return text?.replace(/\\&nbsp;/g, '').trim();\n  }\n\n}\n","import {\n  Component,\n  Input,\n  EventEmitter,\n  OnInit,\n  Optional,\n  Output,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { EditorConfig } from 'vcomply-editor';\nimport { Configurations } from '../configurations';\nimport { CategoryList } from '../interfaces/categoryList';\nimport { ConfirmationAlert } from '../interfaces/confirmation-alert';\nimport { FrequencyService } from '../sharedComponents/frequency/frequency.service';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\nimport { AddRiskService } from '../workflow-services/add-risk.service';\nimport { AuthService } from '../workflow-services/auth.service';\nimport { UiKitService } from '../workflow-services/ui-kit.service';\nimport moment from 'moment/moment';\nimport {\n  GRC_TYPE_ARRAY,\n  OTHER_GRC_CARD,\n} from '../workflow/shared/constants/grcObject.constant';\nimport { GrcService } from '../workflow/shared/services/grc.service';\nimport { Subscription } from 'rxjs';\nimport { OrganizationCommonService } from '../workflow-services/common-workflow-services/organization-common.service';\nimport { IframeService } from '../services/iframe.service';\nimport { ASSETS } from '../constants/assets.constants';\n\n@Component({\n  selector: 'app-workflow-risk',\n  templateUrl: './workflow-risk.component.html',\n  styleUrls: ['./workflow-risk.component.less', '../forms.less'],\n})\nexport class WorkflowRiskComponent implements OnInit {\n  ASSETS = ASSETS;\n  GRC_TYPE_ARRAY = GRC_TYPE_ARRAY;\n  responsibilityCentersList: any = [];\n  selectedResponsibilityCenters: any = [];\n  mitigationDetails: any = [];\n  ownersList: any = [];\n  nonRemovableUsersList: any = [];\n  editDetails!: any;\n  smileyMessage = `You're All Set!`;\n  riskData!: any;\n  actionButtons = [\n    { buttonText: 'Add More Risks', class: 'white-btn', id: 'addMore' },\n    { buttonText: 'View Risk', class: 'blue-btn', id: 'viewRisks' },\n  ];\n  sideSelectorElements: any = [\n    'rc',\n    'owner',\n    'overseer',\n    'category',\n    'frequency',\n  ];\n  showSmiley = false;\n  @Input() feature!: any;\n  @Input() mode = 'EDIT';\n  @Input() riskId = '';\n  @Input() defaultRiskType = 'NORMAL';\n  @Input() moveToRegisterMode = '';\n  @Input() secondaryOpenPortal = '';\n  @Output() showConfirmationAlert = new EventEmitter();\n  @Output() pickerChanged = new EventEmitter();\n  @Output() populateOption = new EventEmitter();\n  @Output() closeWorkflow = new EventEmitter();\n  @Output() disconnectRefresh = new EventEmitter();\n  @Output() refreshForm = new EventEmitter();\n  @Output() hideElementsFromMoreOptions = new EventEmitter();\n  @Output() rcSelected = new EventEmitter();\n  @Input() openedFrom = '';\n  scrollToBottom = false;\n  categoryList: CategoryList = {\n    strategic: {\n      name: 'STRATEGIC',\n      data: [],\n    },\n    operational: {\n      name: 'OPERATIONAL',\n      data: [],\n    },\n    compliance: {\n      name: 'COMPLIANCE',\n      data: [],\n    },\n    others: {\n      name: 'OTHERS',\n      data: [],\n    },\n  };\n  overseersList: any = [];\n  overseersGroupList: any = [];\n  adminsList: any = [];\n  overseersIdList: any = [];\n  timezone!: string;\n  date!: Date;\n  riskNameFocus = false;\n  assessmentFocus = false;\n  riskTypeChangeAllowed = false;\n  riskForm: any = {\n    riskType: 'NORMAL',\n    title: '',\n    description: '',\n    responsibilityCentersList: [],\n    ownersList: [],\n    groupsList: [],\n    category: {\n      type: 'strategic',\n      selectedCategory: '',\n    },\n    categoryCustomTags: [],\n    overseersList: [],\n    overseersGroupList: [],\n    mitigation: 0,\n    assessment_deadline_days: 0,\n    head_ids: [],\n    addRiskOwner: false,\n    addOverseer: false,\n    addMitigation: false,\n    addMitigationPlan: false,\n    mitigationDescriptionPlan: '',\n    frequency_details: {\n      frequency: '',\n      started_at: '',\n      frequency_time: '',\n      remind_before_days: 0,\n    },\n    addRiskLabel: false,\n    riskLabelValue: 1,\n    enableAllFutureBusinessCycle: true,\n    GRC: false,\n    selectedGRCObjects: [],\n    risk_owner: '',\n  };\n  apiUrl = '';\n  memberId = 0;\n  organizationId = 0;\n\n  usersListLoaded = false;\n  adminsListLoaded = false;\n  categoryListLoaded = false;\n  rcListLoaded = false;\n  submitted = false;\n  frequencyDetails = {\n    frequency: '',\n    started_at: '',\n    frequency_time: '',\n    remind_before_days: 0,\n    failed_after_days: 0,\n    can_assess_before_days: 0,\n  };\n  frequencyPlaceholder = 'Set a Reassessment Frequency';\n  shortMonth: Array<string> = [];\n  settingsInfo!: any;\n  loader = false;\n  activeSelector = '';\n  currentTimeStamp = Math.round(Date.now() / 1000);\n  featureflag_groups: boolean = false;\n  groupsList: any = [];\n  otherGRCCard = JSON.parse(JSON.stringify(OTHER_GRC_CARD));\n\n  /* Creating an array for risk label with it's value. */\n  riskLabelList: any = [\n    { name: 'Newly Identified Risk', value: 1 },\n    { name: 'Rapidly Changing Risk', value: 2 },\n  ];\n  otherGRCSubscription!: Subscription;\n  grcList: any;\n  grcLoader: boolean = false;\n  selectedGRCTab: number = 0;\n  grcDataWithTypes: any = {\n    assets: [],\n    processes: [],\n    vendors: [],\n    inventory: [],\n  };\n  grcSearchString: string = '';\n  grcTabLoader: boolean = false;\n  settingLoader: boolean = false;\n\n  constructor(\n    private riskService: AddRiskService,\n    private authService: AuthService,\n    private uiKitService: UiKitService,\n    private snackBar: SnackBarService,\n    private frequencyService: FrequencyService,\n    private grcService: GrcService,\n    private organizationCommonService: OrganizationCommonService,\n    private iframeService: IframeService,\n    @Optional() config?: Configurations\n  ) {\n    this.timezone = this.authService.getUserTimeZone();\n  }\n\n  description: EditorConfig = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Add a description for this risk',\n  };\n\n  mitigationDescriptionPlan: EditorConfig = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Describe the recommended mitigation plans',\n  };\n\n  ngOnInit(): void {\n    this._initiateAPIs();\n  }\n\n  _initiateAPIs() {\n    this.featureflag_groups = this.feature.isFeatureEnabled('ff_risk_groups');\n    this.pickerChanged.emit(false);\n    this.loader = true;\n    this.uiKitService.isLoader = true;\n    this.getSettingsInfo();\n    if (this.mode === 'EDIT') {\n      this.initiateEditAPI();\n    }\n\n    this.shortMonth = this.frequencyService.monthArray.map((month) =>\n      month.substring(0, 3)\n    );\n    if (this.mode === 'CREATE') {\n      this.organizationId = this.authService.getOrganizationId();\n    }\n    this.memberId = this.authService.getMemberId();\n    this.addCurrentUser();\n    this.checkWhetherAllListsLoaded();\n    this.initializeRiskType();\n  }\n\n  initiateEditAPI() {\n    if (this.featureflag_groups) {\n      this.getGroupList();\n    }\n    this.getOwnersList();\n    this.getAdminsList();\n    this.getCategoryList();\n    this.getRCList();\n  }\n\n  addCurrentUser() {\n    const user = this.authService?.getUserDetails()?.user;\n    if (this.secondaryOpenPortal !== 'OTHER' && this.mode !== 'EDIT') {\n      this.nonRemovableUsersList.push(this.memberId);\n      this.riskForm.ownersList.push({\n        member_id: this.memberId,\n        member_name: user?.name,\n        member_email: user?.email,\n      });\n    }\n  }\n\n  initializeRiskType() {\n    if (this.openedFrom === 'REPORTED_RISK') {\n      this.riskForm.riskType = 'REPORTED';\n      this.riskTypeChangeAllowed = false;\n    } else if (this.openedFrom === 'MOVE_TO_REGISTER') {\n      this.riskForm.riskType = 'NORMAL';\n      this.riskTypeChangeAllowed = false;\n    } else {\n      this.setRiskTypeBasedOnSubscription();\n    }\n  }\n\n  //TO get groupList data\n  getGroupList() {\n    this.riskService.getGroupsList().subscribe(\n      (res: any) => {\n        this.groupsList = res?.data;\n      },\n      (err) => {\n        console.error(err);\n      }\n    );\n  }\n\n  setRiskTypeBasedOnSubscription() {\n    if (this.openedFrom === 'REPORTED_RISK') {\n      this.riskForm.riskType = 'REPORTED';\n    }\n    this.organizationCommonService?.getOrgUserInfo()?.subscribe({\n      next: (res: any) => {\n        if (res && res?.permission) {\n          const permission = JSON.parse(res?.permission);\n          if (this.authService?.isAdmin() || this.authService?.isKeyAdmin()) {\n            this.riskTypeChangeAllowed = true;\n          } else if (this.authService.isManager()) {\n            if (permission?.MRISK === 1) {\n              this.riskTypeChangeAllowed = true;\n            } else {\n              this.riskTypeChangeAllowed = false;\n              this.riskForm.riskType = 'REPORTED';\n            }\n          } else if (this.authService.isUser()) {\n            this.riskTypeChangeAllowed = false;\n            this.riskForm.riskType = 'REPORTED';\n          }\n        } else {\n          this.riskTypeChangeAllowed = false;\n          this.riskForm.riskType = 'REPORTED';\n        }\n\n        if (res && res?.roleActions) {\n          const moduleIndex = res.roleActions.findIndex(\n            (element: any) => element.moduleName == 'risk'\n          );\n          const riskPermissions =\n            res.roleActions[moduleIndex].subModule[1].permissions;\n          riskPermissions.forEach((permission: any) => {\n            if (permission.name == 'manage risks' && permission.enable) {\n              this.riskTypeChangeAllowed = true;\n              this.riskForm.riskType = 'NORMAL';\n            }\n          });\n        }\n        if (this.mode === 'EDIT') {\n          this.riskForm.riskType = 'NORMAL';\n          this.riskTypeChangeAllowed = false;\n        }\n      },\n    });\n  }\n\n  changeRisk(type: string) {\n    this.riskForm = { ...this.riskForm, ...{ riskType: type } };\n    this.setPopupButtons();\n    if (type === 'REPORTED') {\n      this.riskForm.assessment_deadline_days = 0;\n    }\n  }\n\n  getCurrentlyLoggedInUser() {\n    if (this.mode === 'EDIT') {\n      const ownersList = this.setList(\n        this.ownersList,\n        this.editDetails?.owner,\n        'member_id'\n      )?.map((ele: any) => ele?.member_id);\n      if (ownersList.includes(this.memberId)) {\n        return [this.authService.getMemberId()];\n      } else {\n        return [];\n      }\n    } else {\n      return [this.authService.getMemberId()];\n    }\n  }\n\n  setPopupButtons() {\n    if (this.riskForm.riskType === 'REPORTED') {\n      this.actionButtons = [\n        { buttonText: 'Add More Risks', class: 'white-btn', id: 'addMore' },\n        {\n          buttonText: 'View Reported Risks',\n          class: 'blue-btn',\n          id: 'manageReportedRisk',\n        },\n      ];\n    } else {\n      this.actionButtons = [\n        { buttonText: 'Add More Risks', class: 'white-btn', id: 'addMore' },\n        { buttonText: 'View Risk', class: 'blue-btn', id: 'viewRisks' },\n      ];\n    }\n  }\n  getRiskDetails(riskId: any) {\n    this.riskService.getRiskDetail(riskId).subscribe(\n      (res: any) => {\n        this.loader = false;\n        this.uiKitService.isLoader = false;\n        this.editDetails = cloneDeep(res);\n        this.riskForm.title = res.title;\n        if (this.openedFrom === 'MOVE_TO_REGISTER') {\n          this.riskForm.riskType = 'NORMAL';\n          this.riskTypeChangeAllowed = false;\n        } else {\n          this.riskForm.riskType = res?.risk_type ?? 'REPORTED';\n        }\n\n        this.riskForm.description = res.description;\n        this.riskForm.responsibilityCentersList = this.setList(\n          this.responsibilityCentersList,\n          res.rc_id,\n          'item_id'\n        );\n        this.riskForm.ownersList = this.setList(\n          this.ownersList,\n          res.owner,\n          'member_id'\n        );\n        this.riskForm.groupsList = this.setList(\n          this.groupsList,\n          res?.usergroup_ids,\n          '_id'\n        );\n        this.riskForm.mitigationDescriptionPlan = res.mitigationDescriptionPlan;\n        const type = this.setCategoryType(res.category_type[0]);\n        const categoryIndex = this.categoryList[type]?.data?.findIndex(\n          (element: any) => element.category_id == res.category[0]\n        );\n        if (categoryIndex != -1) {\n          this.riskForm.category = {\n            type,\n            selectedCategory: this.categoryList[type]?.data[categoryIndex],\n          };\n          this.riskForm.categoryCustomTags = res.category_custom_tag;\n        }\n        this.riskForm.risk_owner = res.risk_owner;\n        this.riskForm.overseersList = this.setList(\n          this.ownersList,\n          res.manage_oversight,\n          'member_id'\n        );\n        this.riskForm.overseersGroupList = this.setList(\n          this.groupsList,\n          res?.overseergroup_ids,\n          '_id'\n        );\n        this.riskForm.mitigation = res?.mitigation\n          ? res?.mitigation\n          : this.riskForm?.mitigation;\n        this.riskForm.assessment_deadline_days = res.assessment_deadline_days;\n        this.riskForm.addRiskOwner = res.risk_owner ? true : false;\n        this.riskForm.addOverseer =\n          res.manage_oversight.length > 0 || res?.overseergroup_ids?.length > 0\n            ? true\n            : false;\n        this.riskForm.addMitigation = res.mitigation ? true : false;\n        this.organizationId = res.organisation_id;\n        this.riskForm.head_ids = res?.head_ids ? res?.head_ids : [];\n        this.riskForm.mitigationDescriptionPlan =\n          res?.mitigation_plan_recommendation ?? '';\n        this.riskForm.addMitigationPlan =\n          res?.mitigation_plan_recommendation.trim()?.length ? true : false;\n        this.riskForm.addRiskLabel = res.risk_label ? true : false;\n        if (res.assessment_date_timestamp) {\n          this.date = new Date(res.assessment_date);\n        }\n        if (res.IfAssessmentDone > 0) {\n          res.all_owner_arr.forEach((element: any) => {\n            if (element.assessment_done > 0) {\n              this.nonRemovableUsersList.push(element.member_id);\n            }\n          });\n        }\n        if (this.secondaryOpenPortal === 'OTHER' && this.mode === 'EDIT') {\n          this.nonRemovableUsersList = Array.from(\n            new Set<any[]>([...this.nonRemovableUsersList, ...res?.owner])\n          );\n        }\n        if (this.secondaryOpenPortal !== 'OTHER' && this.mode === 'EDIT') {\n          this.nonRemovableUsersList = Array.from(\n            new Set<any[]>([\n              ...this.nonRemovableUsersList,\n              ...this.getCurrentlyLoggedInUser(),\n            ])\n          );\n        }\n        if (res?.risk_type === 'NORMAL') {\n          this.nonRemovableUsersList = Array.from(\n            new Set<any[]>([\n              ...this.nonRemovableUsersList,\n              ...this.getCurrentlyLoggedInUser(),\n            ])\n          );\n        }\n        this.rcSelected.emit(1);\n        this.saveSelectedList(res.linkedGrcDetails);\n        this.getOtherGRCTabCount({ rc_ids: '' });\n        this.getOtherGRCObjects({ rc_ids: '' });\n        this.riskForm.enableAllFutureBusinessCycle =\n          res?.future_businesscycle_visibility;\n        this.populateOptionalFields();\n        this.frequencyDataPopulate(res?.frequency_details);\n        this.riskForm.frequency_details = res?.frequency_details;\n        this.getFrequencyPlaceholder(res.frequency_details);\n        this.setOverseersList();\n      },\n      (err) => {\n        console.log(err);\n        this.loader = false;\n        this.uiKitService.isLoader = false;\n      }\n    );\n  }\n\n  populateOptionalFields() {\n    const activatedOptions = [];\n    if (this.riskForm.addMitigation) {\n      activatedOptions.push('MITIGATION');\n    }\n    if (this.riskForm.addRiskOwner) {\n      activatedOptions.push('RISK_OWNER');\n    }\n    if (this.riskForm.addOverseer) {\n      activatedOptions.push('OVERSEER');\n    }\n    if (this.riskForm.addMitigationPlan) {\n      activatedOptions.push('MITIGATION_PLAN');\n    }\n    if (this.riskForm.addRiskLabel) {\n      activatedOptions.push('RISK_LABEL');\n    }\n\n    if (this.riskForm.selectedGRCObjects?.length) {\n      activatedOptions.push('GRC_OBJECTS');\n      this.riskForm.GRC = true;\n    }\n    this.populateOption.emit(activatedOptions);\n  }\n\n  setCategoryType(type: any) {\n    if (type === 1) {\n      return 'strategic';\n    } else if (type === 2) {\n      return 'operational';\n    } else if (type === 3) {\n      return 'compliance';\n    } else if (type === 0) {\n      return 'others';\n    } else {\n      return 'strategic';\n    }\n  }\n\n  getRCList() {\n    const rcArray: any[] = [];\n    this.riskService\n      .getResponsibilityCenterList(\n        rcArray,\n        this.mode === 'EDIT' ? this.riskId : ''\n      )\n      .subscribe(\n        (res) => {\n          this.responsibilityCentersList = res;\n          this.rcListLoaded = true;\n        },\n        (err) => {\n          console.error(err);\n          this.rcListLoaded = true;\n        }\n      );\n  }\n\n  getCategoryList() {\n    this.riskService.getCategoryList().subscribe(\n      (res: any) => {\n        this.categoryList.strategic.data = res.strategic_arr;\n        this.categoryList.operational.data = res.operational_arr;\n        this.categoryList.compliance.data = res.compliance_arr;\n        this.categoryList.others.data = res.others_arr;\n        this.categoryListLoaded = true;\n      },\n      (err) => {\n        console.error(err);\n        this.categoryListLoaded = true;\n      }\n    );\n  }\n\n  getOwnersList() {\n    this.riskService.getOrganizationUsers().subscribe(\n      (res: any) => {\n        this.ownersList = res;\n\n        this.usersListLoaded = true;\n        this.setOverseersList();\n      },\n      (err) => {\n        console.error(err);\n        this.usersListLoaded = true;\n      }\n    );\n  }\n  getAdminsList() {\n    this.riskService.getAdminKeyAdminList().subscribe(\n      (res) => {\n        this.adminsList = res;\n        this.adminsListLoaded = true;\n      },\n      (err) => {\n        console.error(err);\n        this.adminsListLoaded = true;\n      }\n    );\n  }\n\n  getSettingsInfo() {\n    this.settingLoader = false;\n    this.riskService.getRiskSettingDetails().subscribe(\n      (res) => {\n        this.settingsInfo = res;\n        this.settingLoader = true;\n        this.hideOptionalFields(res);\n        this.mitigationDetails = res?.risk_mitigation_priority?.mitigation_data;\n        let defaultMitigation = this.mitigationDetails?.filter(\n          (ele: any) => ele?.mitigation_name === 'LOW'\n        );\n        if (defaultMitigation?.length) {\n          this.riskForm.mitigation = defaultMitigation[0]?.mitigation_id;\n        }\n      },\n      (err) => {\n        console.error(err);\n        this.settingLoader = true;\n      }\n    );\n  }\n\n  hideOptionalFields(res: any) {\n    if (res?.risk_automation_enable === 1) {\n      this.hideElementsFromMoreOptions.emit(['MITIGATION']);\n    }\n  }\n\n  checkWhetherAllListsLoaded() {\n    const editLoader =\n      this.mode === 'EDIT'\n        ? this.usersListLoaded &&\n        this.categoryListLoaded &&\n        this.rcListLoaded &&\n        this.adminsListLoaded\n        : true;\n    if (this.settingLoader && editLoader) {\n      if (this.mode === 'EDIT') {\n        this.getRiskDetails(this.riskId);\n      } else {\n        this.loader = false;\n        this.uiKitService.isLoader = false;\n      }\n    } else {\n      setTimeout(() => {\n        this.checkWhetherAllListsLoaded();\n      }, 300);\n    }\n  }\n\n  setOverseersList() {\n    let ids: any = [];\n    let rcOwnerIds: any = [];\n    const users = cloneDeep(this.riskForm.ownersList);\n    const responsibilityCenters = cloneDeep(\n      this.riskForm.responsibilityCentersList\n    );\n    const admins = cloneDeep(this.adminsList);\n    const allUsers = cloneDeep(this.ownersList);\n    users.forEach((user: any) => {\n      ids.push(user.member_id);\n    });\n    admins.forEach((user: any) => {\n      ids.push(user.member_id);\n    });\n    responsibilityCenters.forEach((rc: any) => {\n      const ary = [...rc.owner, ...rc.parent_owners];\n      ids = [...ids, ...ary];\n      rcOwnerIds = [...rcOwnerIds, ...ary];\n    });\n\n    ids = [...new Set(ids)];\n    rcOwnerIds = [...new Set(rcOwnerIds)];\n    this.riskForm.head_ids = rcOwnerIds;\n    this.overseersList = allUsers.filter(\n      (user: any) => !ids.includes(user.member_id)\n    );\n    this.riskForm.overseersList = this.riskForm.overseersList.filter(\n      (user: any) => !ids.includes(user.member_id)\n    );\n    //Groups which are selected in Owners field should not be visible Overseer\n    let groupids: any = [];\n    const groups = cloneDeep(this.riskForm.groupsList);\n    const allgroups = cloneDeep(this.groupsList);\n    groups.forEach((group: any) => {\n      groupids.push(group.group_id);\n    });\n    groupids = [...new Set(groupids)];\n    this.overseersGroupList = allgroups.filter(\n      (group: any) => !groupids.includes(group.group_id)\n    );\n    this.riskForm.overseersGroupList =\n      this.riskForm?.overseersGroupList?.filter(\n        (user: any) => !groupids.includes(user.group_id)\n      );\n  }\n\n  activateSelector(type: any, event: boolean) {\n    this.activeSelector = event ? type : '';\n    if (\n      ['rc', 'owner', 'overseer', 'category', 'frequency', 'GRC'].includes(type)\n    ) {\n      this.pickerChanged.emit(event);\n    }\n    if (event) {\n      switch (type) {\n        case 'category':\n          this.getCategoryList();\n          break;\n        case 'owner':\n        case 'overseer':\n          if (this.featureflag_groups) {\n            this.getGroupList();\n          }\n          this.getOwnersList();\n          this.getAdminsList();\n          break;\n        case 'rc':\n          this.getRCList();\n          break;\n      }\n    }\n    if (type === 'GRC' && event) {\n      this.grcSearchString = '';\n      this.getOtherGRCObjects();\n      this.getOtherGRCTabCount({ rc_ids: '' });\n    }\n  }\n\n  activeDeselector() {\n    this.activeSelector = '';\n    this.pickerChanged.emit(false);\n  }\n\n  remove(type: any, event: any, index?: number) {\n    switch (type) {\n      case 'rc':\n        const rcIndex = this.riskForm.responsibilityCentersList.findIndex(\n          (rc: any) => rc.rc_id == event.rc_id\n        );\n        this.riskForm.responsibilityCentersList.splice(rcIndex, 1);\n        this.saveSelectedList([]);\n        this.getOtherGRCTabCount({ rc_ids: '' });\n        this.getOtherGRCObjects({ rc_ids: '', type: this.selectedGRCTab });\n        break;\n      case 'owner':\n        const ownerIndex = this.riskForm.ownersList.findIndex(\n          (owner: any) => owner.member_id == event.member_id\n        );\n        this.riskForm.ownersList.splice(ownerIndex, 1);\n        this.setOverseersList();\n        break;\n      case 'Ownergroup':\n        const groupIndex = this.riskForm?.groupsList.findIndex(\n          (owner: any) => owner.group_id == event.group_id\n        );\n        this.riskForm.groupsList.splice(groupIndex, 1);\n        break;\n      case 'overseer':\n        const overseerIndex = this.riskForm.overseersList.findIndex(\n          (overseer: any) => overseer.member_id == event.member_id\n        );\n        this.riskForm.overseersList.splice(overseerIndex, 1);\n        break;\n      case 'overseergroup':\n        const overseergroupIndex = this.riskForm?.overseersGroupList.findIndex(\n          (overseer: any) => overseer.group_id == event.group_id\n        );\n        this.riskForm.overseersGroupList.splice(overseergroupIndex, 1);\n        break;\n      case 'category':\n        this.riskForm.category = {\n          type: 'strategic',\n          selectedCategory: '',\n        };\n        this.riskForm.categoryCustomTags = [];\n        break;\n      case 'GRC':\n        this.removeOtherGRCObjects(event);\n        // this.riskForm.selectedGRCObjects.splice(index, 1);\n        // this.saveSelectedList(this.riskForm.selectedGRCObjects);\n        break;\n    }\n  }\n\n  saveSelectedRCList(rcIds: any) {\n    this.saveSelectedList([]);\n    this.activeDeselector();\n    const selectedRC = this.setList(\n      this.responsibilityCentersList,\n      rcIds,\n      'item_id'\n    );\n    this.rcSelected.emit(selectedRC?.length);\n\n    this.riskForm.responsibilityCentersList = selectedRC;\n    this.getOtherGRCTabCount({ rc_ids: '' });\n    this.getOtherGRCObjects({ rc_ids: '', type: this.selectedGRCTab });\n    this.setOverseersList();\n    this.pickerChanged.emit(false);\n  }\n\n  saveSelectedCategory(category: any) {\n    this.activeDeselector();\n    this.riskForm.category = category;\n    const customTags: any = [];\n    category.selectedCategory.custom_tag.forEach((element: any) => {\n      const tag = {\n        custom_tag_name: element.tagName,\n        custom_tag_value: '',\n      };\n      customTags.push(tag);\n    });\n    this.riskForm.categoryCustomTags = customTags;\n    this.pickerChanged.emit(false);\n  }\n\n  saveSelectedOwnersList(ids: any) {\n    this.activeDeselector();\n    if (this.featureflag_groups) {\n      let ownerids;\n      let groupIds;\n      ownerids = this.returnIds(ids.users, 'member_id');\n      groupIds = this.returnIds(ids.groups, 'group_id');\n      const selectedOwners = this.setList(\n        this.ownersList,\n        ownerids,\n        'member_id'\n      );\n      const selectedGroups = this.setList(\n        this.groupsList,\n        groupIds,\n        'group_id'\n      );\n      this.setList(this.groupsList, groupIds, 'group_id');\n      this.riskForm.ownersList = selectedOwners;\n      this.riskForm.groupsList = selectedGroups;\n    } else {\n      const selectedOwners = this.setList(this.ownersList, ids, 'member_id');\n      this.riskForm.ownersList = selectedOwners;\n    }\n    this.setOverseersList();\n    this.pickerChanged.emit(false);\n  }\n\n  saveSelectedOverseersList(ids: any) {\n    this.activeDeselector();\n    if (!this.featureflag_groups) {\n      const selectedOverseers = this.setList(\n        this.overseersList,\n        ids,\n        'member_id'\n      );\n      this.riskForm.overseersList = selectedOverseers;\n    } else {\n      let overseerids;\n      let overseerGroupIds;\n      overseerids = this.returnIds(ids.users, 'member_id');\n      overseerGroupIds = this.returnIds(ids.groups, 'group_id');\n      const selectedOverseers = this.setList(\n        this.overseersList,\n        overseerids,\n        'member_id'\n      );\n      const selectedOverseerGroups = this.setList(\n        this.overseersGroupList,\n        overseerGroupIds,\n        'group_id'\n      );\n      this.riskForm.overseersList = selectedOverseers;\n      this.riskForm.overseersGroupList = selectedOverseerGroups;\n    }\n    this.pickerChanged.emit(false);\n  }\n\n  changeRiskAssessment(name: string): void {\n    switch (name) {\n      case 'subtract':\n        if (this.riskForm.assessment_deadline_days > 1) {\n          this.riskForm.assessment_deadline_days -= 1;\n          this.setDate(this.riskForm.assessment_deadline_days);\n        }\n        break;\n      case 'add':\n        this.riskForm.assessment_deadline_days += 1;\n        this.setDate(this.riskForm.assessment_deadline_days);\n        break;\n    }\n  }\n\n  setDate(days: number): void {\n    if (days >= 0) {\n      const miliseconds = days * 86400 * 1000;\n      const d: number = new Date(\n        new Date(Date.now()).toLocaleString('en-US', {\n          timeZone: this.timezone,\n        })\n      ).getTime();\n      this.date = new Date(d + miliseconds);\n    }\n  }\n\n  changeRiskAssessmentDeadline(event: number): void {\n    if (!isNaN(event)) {\n      this.setDate(event);\n    }\n  }\n\n  setList(list: any[], ids: any[], key: string) {\n    const data: any = [];\n    list.forEach((element: any) => {\n      if (ids.includes(element[key])) {\n        data.push(element);\n      }\n    });\n    return data;\n  }\n\n  returnIds(list: any[], key: string) {\n    return list.map((ele) => {\n      if (ele[key]) {\n        return ele[key];\n      }\n    });\n  }\n\n  submitRisk() {\n    this.setPopupButtons();\n    const valid = this.validateRisk();\n    if (!valid) {\n      return false;\n    } else if (this.mode === 'EDIT' && this.editDetails.IfAssessmentDone > 0) {\n      const prevRCArr = this.editDetails.rc_id;\n      const currRCArr = this.returnIds(\n        this.riskForm.responsibilityCentersList,\n        'rc_id'\n      );\n      if (\n        prevRCArr.length === currRCArr.length &&\n        prevRCArr\n          .sort()\n          .every((value: any, index: any) => value === currRCArr.sort()[index])\n      ) {\n        this.createRisk(this.riskForm);\n      } else {\n        const confirmationDetails: ConfirmationAlert = {\n          isVisible: true,\n          message: `The Responsibility Center(s) associated with this risk has been modified.\n               Hence, this risk needs to be reassessed. Once you confirm, the current due date will be closed and a new risk assessment due date will be generated.`,\n          action: 'EDIT_RISK',\n        };\n        this.showConfirmationAlert.emit(confirmationDetails);\n      }\n    } else {\n      this.createRisk(this.riskForm);\n    }\n  }\n\n  addMoreInfo(event: any) {\n    switch (event.code) {\n      case 'RISK_OWNER':\n        this.riskForm.addRiskOwner = event?.checked;\n        break;\n      case 'OVERSEER':\n        this.riskForm.addOverseer = event?.checked;\n        break;\n      case 'MITIGATION':\n        this.riskForm.addMitigation = event?.checked;\n        break;\n      case 'MITIGATION_PLAN':\n        this.riskForm.addMitigationPlan = event?.checked;\n        break;\n      case 'RISK_LABEL':\n        this.riskForm.addRiskLabel = event?.checked;\n        break;\n      case 'GRC_OBJECTS':\n        this.riskForm.GRC = event?.checked;\n        break;\n    }\n    this.scrollToBottom = true;\n  }\n\n  validateRisk() {\n    this.submitted = true;\n    const event = this.riskForm.title;\n    const re = /&nbsp;|<br>/g;\n    this.riskForm.title = event.replace(re, '').trim();\n    // ((!this.settingsInfo.assessment_deadline_enable) && (this.riskForm?.assessment_deadline_days < 1) && this.riskForm?.riskType !== 'REPORTED') ||\n    if (\n      !this.riskForm.title ||\n      this.riskForm.responsibilityCentersList.length == 0 ||\n      this.riskForm.ownersList.length == 0 ||\n      (this.riskForm.riskType === 'REPORTED' &&\n        !this.riskForm?.description?.trim()?.length) ||\n      (this.riskForm?.riskType !== 'REPORTED' &&\n        (!this.riskForm?.frequency_details?.frequency ||\n          this.riskForm?.frequency_details?.frequency === ''))\n    ) {\n      return false;\n    } else {\n      return true;\n    }\n  }\n\n  createRisk(riskForm: any) {\n    this.loader = true;\n    this.uiKitService.isLoader = false;\n    const payload: any = {\n      title: riskForm.title,\n      description: riskForm.description,\n      category_custom_tag: riskForm.categoryCustomTags,\n      assessment_deadline_enable: this.settingsInfo?.assessment_deadline_enable,\n      owner: this.returnIds(riskForm.ownersList, 'member_id'),\n      category: riskForm.category?.selectedCategory?.category_id\n        ? [riskForm.category.selectedCategory.category_id]\n        : [],\n      manage_oversight: riskForm.addOverseer\n        ? this.returnIds(riskForm.overseersList, 'member_id')\n        : [],\n      rc_id: this.returnIds(riskForm.responsibilityCentersList, 'item_id'),\n      head_ids: riskForm.head_ids,\n      rating_arr: [],\n      member_id: this.memberId,\n      organisation_id: this.organizationId,\n      risk_progress_flag:\n        this.mode === 'EDIT' ? this.editDetails.risk_progress_flag : 1,\n      IfAssessmentDone:\n        this.mode == 'EDIT' ? this.editDetails.IfAssessmentDone : 0,\n      workshop_id: this.mode == 'EDIT' ? this.editDetails.workshop_id : 0,\n      complete_assessment: 0,\n      mitigation: riskForm.addMitigation ? riskForm.mitigation : 0,\n      weightage_enable: this.settingsInfo?.weightage_enable,\n      treatment_type: this.settingsInfo?.treatment_criteria,\n      weightage_details: this.settingsInfo?.weightage_details,\n      weightage_set_by: this.settingsInfo?.weightage_set_by,\n      weightage_str: [\n        this.settingsInfo?.weightage_details?.impact?.value,\n        this.settingsInfo?.weightage_details?.likelihood?.value,\n        this.settingsInfo?.weightage_details?.velocity?.value,\n        this.settingsInfo?.weightage_details?.vulnerability?.value,\n      ],\n      assessment_deadline_set_by: this.settingsInfo?.assessment_deadline_set_by,\n      // assessment_deadline_days: (this.settingsInfo.assessment_deadline_enable) ? this.settingsInfo.assessment_deadline_days : riskForm.assessment_deadline_days,\n      risk_type: this.riskForm?.riskType ?? 'NORMAL',\n      risk_owner: riskForm.addRiskOwner ? riskForm.risk_owner ?? '' : '',\n      mitigation_plan_recommendation: this.riskForm?.mitigationDescriptionPlan,\n      frequency_details: this.riskForm?.frequency_details,\n      risk_label: riskForm?.addRiskLabel ? riskForm?.riskLabelValue : 1,\n      future_businesscycle_visibility:\n        riskForm?.enableAllFutureBusinessCycle ?? true,\n      linked_GRC_ids: this.riskForm.GRC\n        ? this.riskForm.selectedGRCObjects.map((grc: any) => grc?._id)\n        : [],\n    };\n    if (this.featureflag_groups) {\n      payload['usergroup_ids'] = this.returnIds(riskForm.groupsList, '_id');\n      payload['overseergroup_ids'] = riskForm.addOverseer\n        ? this.returnIds(riskForm.overseersGroupList, '_id')\n        : [];\n    }\n    if (this.mode == 'CREATE') {\n      this.riskService.addRisk(payload).subscribe(\n        (res: any) => {\n          this.riskData = res;\n          this.riskId = res._id;\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.showSmiley = true;\n          this.uiKitService.isSmileyOn = true;\n        },\n        (err) => {\n          console.log(err);\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.snackBar.show(\n            'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n            'alert'\n          );\n        }\n      );\n    }\n    if (this.mode == 'EDIT' && this.openedFrom !== 'MOVE_TO_REGISTER') {\n      this.smileyMessage = `The risk has been modified.`;\n      this.riskService.updateRisk(this.riskId, payload).subscribe(\n        (res: any) => {\n          this.riskData = res;\n          this.showSmiley = true;\n          this.uiKitService.isSmileyOn = true;\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n        },\n        (err) => {\n          console.log(err);\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.snackBar.show(\n            'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n            'alert'\n          );\n        }\n      );\n    }\n\n    if (this.openedFrom === 'MOVE_TO_REGISTER') {\n      this.closeWorkflow.emit({\n        evt: { action: 'MOVE_TO_REGISTER', payload },\n        confirm: false,\n      });\n    }\n  }\n\n  resetForm() {\n    this.scrollToBottom = false;\n    this.showSmiley = false;\n    this.uiKitService.isSmileyOn = false;\n    this.riskForm = {\n      title: '',\n      description: '',\n      riskType: this.riskForm?.riskType,\n      addMitigationPlan: false,\n      mitigationDescriptionPlan: '',\n      responsibilityCentersList: [],\n      ownersList: [],\n      groupsList: [],\n      category: {\n        type: 'strategic',\n        selectedCategory: '',\n      },\n      categoryCustomTags: [],\n      overseersList: [],\n      mitigation: 0,\n      assessment_deadline_days: 0,\n      head_ids: [],\n      risk_owner: '',\n      addRiskOwner: false,\n      addOverseer: false,\n      addMitigation: false,\n      frequency_details: {\n        frequency: '',\n        started_at: '',\n        frequency_time: '',\n        remind_before_days: 0,\n      },\n      riskLabelValue: 1,\n      addRiskLabel: false,\n      GRC: false,\n      selectedGRCObjects: [],\n      enableAllFutureBusinessCycle: true,\n    };\n    this.nonRemovableUsersList = [];\n    this.organizationId = this.authService.getOrganizationId();\n    this.memberId = this.authService.getMemberId();\n    this.nonRemovableUsersList = this.getCurrentlyLoggedInUser();\n    this.date = new Date();\n    this.submitted = false;\n    this.refreshForm.emit(true);\n    this.rcSelected.emit(false);\n    this.frequencyDetails = {\n      frequency: '',\n      started_at: '',\n      frequency_time: '',\n      remind_before_days: 0,\n      failed_after_days: 0,\n      can_assess_before_days: 0,\n    };\n    this.frequencyPlaceholder = 'Set a Reassessment Frequency';\n\n    this.populateOptionalFields();\n    this.addCurrentUser();\n    this.getOwnersList();\n  }\n\n  action(event: string) {\n    switch (event) {\n      case 'addMore':\n        this.resetForm();\n        this.populateOptionalFields();\n        break;\n      case 'viewRisks':\n        this.viewRisks();\n        break;\n      case 'manageReportedRisk':\n        this.redirectToReported();\n        break;\n    }\n  }\n\n  closeSmiley(event: any) {\n    this.showSmiley = false;\n    this.uiKitService.isSmileyOn = false;\n    this.closeWorkflow.emit({ evt: this.riskData, confirm: false });\n  }\n\n  viewRisks(): void {\n    this.disconnectRefresh.emit(false);\n    let url: string;\n    if (window.location.host.startsWith('localhost')) {\n      url = 'http://' + window.location.host;\n    } else {\n      url = 'https://' + window.location.host;\n    }\n\n    if (window.location.host.startsWith('localhost')) {\n      url += '/risk-workroom/' + this.riskId;\n    } else {\n      if (window.location.href.includes('/riskv2')) {\n        url += '/riskv2/risk-workroom/' + this.riskId;\n      } else {\n        url += '/risk/risk-workroom/' + this.riskId;\n      }\n    }\n\n    this.iframeService.redirectIfInIframe(url, true);\n    //this.resetForm();\n  }\n\n  redirectToReported(): void {\n    this.disconnectRefresh.emit(false);\n    let url: string;\n    if (window.location.host.startsWith('localhost')) {\n      url = 'http://' + window.location.host;\n    } else {\n      url = 'https://' + window.location.host;\n    }\n\n    if (window.location.host.startsWith('localhost')) {\n      url += '/reported-risk';\n    } else {\n      if (window.location.href.includes('/riskv2')) {\n        url += '/riskv2/reported-risk';\n      } else {\n        url += '/risk/reported-risk';\n      }\n    }\n\n    this.iframeService.redirectIfInIframe(url, true);\n\n    //this.resetForm();\n  }\n  checkDescription() {\n    if (this.riskForm.description == '<br>') {\n      this.riskForm.description = '';\n    }\n  }\n\n  checkMitigationPlan() {\n    if (this.riskForm.mitigationDescriptionPlan == '<br>') {\n      this.riskForm.mitigationDescriptionPlan = '';\n    }\n  }\n\n  frequencyData(event: any) {\n    this.activeDeselector();\n    this.frequencyDataPopulate(event);\n    this.riskForm.frequency_details = {\n      frequency: event?.frequency,\n      started_at: event?.started_at,\n      frequency_time: event?.frequency_time,\n      remind_before_days: event?.remind_before_days,\n      can_assess_before_days: event?.can_assess_before_days,\n      failed_after_days: event?.failed_after_days,\n    };\n    this.frequencyPlaceholder = event?.placeholder;\n    this.pickerChanged.emit(false);\n  }\n\n  getFrequencyPlaceholder(res: any) {\n    try {\n      if (res?.frequency) {\n        const frequencyDetails = res?.frequency.split('~');\n        const frequencyTime =\n          res?.frequency_time === '00:00:00' ? '12:00 am' : res?.frequency_time;\n        switch (parseInt(frequencyDetails[0])) {\n          case 2:\n            this.getWeeklyPlaceholder(frequencyDetails, frequencyTime);\n            break;\n          case 3:\n            this.getMonthlyPlaceholder(frequencyDetails, frequencyTime);\n            break;\n          case 4:\n            this.getYearlyPlaceholder(frequencyDetails, frequencyTime);\n            break;\n          case 7:\n            this.getQuarterlyPlaceholder(frequencyDetails, frequencyTime);\n            break;\n          case 9:\n            this.getBiannualPlaceholder(frequencyDetails, frequencyTime);\n            break;\n          case 0:\n            {\n              const dateObject = new Date(\n                moment(\n                  frequencyDetails[1] +\n                  '-' +\n                  frequencyDetails[2] +\n                  '-' +\n                  frequencyDetails[3] +\n                  ' 00:00:00',\n                  'YYYY-MM-DD HH:mm:ss'\n                ).unix() * 1000\n              );\n              // tslint:disable-next-line: max-line-length\n              this.frequencyPlaceholder =\n                'One Time ' +\n                dateObject.getDate() +\n                ' ' +\n                this.shortMonth[dateObject.getMonth()] +\n                ' ' +\n                dateObject.getFullYear() +\n                ' by ' +\n                frequencyTime;\n            }\n            break;\n        }\n      }\n    } catch (e) {\n      // tslint:disable-next-line: no-console\n      console.log(e);\n    }\n  }\n\n  /**\n   * It takes a frequencyDetails array and a frequencyTime string and returns a frequencyPlaceholder\n   * string.\n   * @param {any} frequencyDetails - [\"1\", \"1,2,3,4,5\", \"1\", \"1\", \"1\", \"1\", \"1\", \"1\", \"1\", \"1\", \"1\",\n   * \"1\", \"1\", \"1\", \"1\", \"1\", \"1\", \"\n   * @param {any} frequencyTime - \"10:00 AM\"\n   */\n  getWeeklyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    {\n      const selectedDay = frequencyDetails[1].split(',').map((ele: any) => {\n        return this.frequencyService.dayName[parseInt(ele) - 1];\n      });\n\n      if (parseInt(frequencyDetails[3]) === 1) {\n        this.frequencyPlaceholder =\n          'Every ' + selectedDay.join() + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[3]) === 2) {\n        this.frequencyPlaceholder =\n          'Every alternate ' + selectedDay.join() + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[3]) === 3) {\n        this.frequencyPlaceholder =\n          'Every 3rd ' + selectedDay.join() + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[3]) > 3) {\n        this.frequencyPlaceholder =\n          'Every ' +\n          parseInt(frequencyDetails[3]) +\n          'th ' +\n          selectedDay.join() +\n          ' by ' +\n          frequencyTime;\n      }\n    }\n  }\n\n  /**\n   * It takes a string of comma separated numbers and returns a string of comma separated month names.\n   * @param {any} frequencyDetails - [\"1\", \"1\", \"1,2,3,4,5,6,7,8,9,10,11,12\"]\n   * @param {any} frequencyTime - \"10:00 AM\"\n   */\n  getMonthlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    {\n      const selectedMonth = frequencyDetails[2].split(',').map((ele: any) => {\n        return this.shortMonth[parseInt(ele) - 1];\n      });\n      if (parseInt(frequencyDetails[1]) === 1) {\n        this.frequencyPlaceholder =\n          '1st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 2) {\n        this.frequencyPlaceholder =\n          '2nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 3) {\n        this.frequencyPlaceholder =\n          '3rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (\n        parseInt(frequencyDetails[1]) === 21 ||\n        parseInt(frequencyDetails[1]) === 31\n      ) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'st of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 22) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'nd of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 23) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'rd of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) > 3) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'th of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      }\n    }\n  }\n\n  /**\n   * If the frequencyDetails[1] is less than 2, then the frequencyPlaceholder is set to the 1st, 2nd,\n   * 3rd, or nth of every month by frequencyTime.\n   *\n   * If the frequencyDetails[1] is greater than 1, then the frequencyPlaceholder is set to the 1st,\n   * 2nd, 3rd, or nth of every month, Interval: every yearSequence years by frequencyTime.\n   *\n   * I'm trying to write a test that will test the above function.\n   *\n   * Here's what I have so far:\n   * @param {any} frequencyDetails - [0] = \"Yearly\"\n   * @param {any} frequencyTime - \"10:00 AM\"\n   */\n  getYearlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    {\n      const yearSequence =\n        parseInt(frequencyDetails[3]) > 0 ? parseInt(frequencyDetails[3]) : 1;\n      if (yearSequence < 2) {\n        if (parseInt(frequencyDetails[1]) === 1) {\n          this.frequencyPlaceholder =\n            '1st of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 2) {\n          this.frequencyPlaceholder =\n            '2nd of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 3) {\n          this.frequencyPlaceholder =\n            '3rd of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) > 3) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'th of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (\n          parseInt(frequencyDetails[1]) === 31 ||\n          parseInt(frequencyDetails[1]) === 21\n        ) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'st of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 22) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'nd of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 23) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'rd of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n      }\n\n      if (yearSequence > 1) {\n        if (parseInt(frequencyDetails[1]) === 1) {\n          // tslint:disable-next-line: max-line-length\n          this.frequencyPlaceholder =\n            '1st of ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ', Interval: every ' +\n            yearSequence +\n            ' years by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 2) {\n          // tslint:disable-next-line: max-line-length\n          this.frequencyPlaceholder =\n            '2nd of' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ', Interval: every ' +\n            yearSequence +\n            ' years by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 3) {\n          // tslint:disable-next-line: max-line-length\n          this.frequencyPlaceholder =\n            '3rd of ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ', Interval: every ' +\n            yearSequence +\n            ' years by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) > 3) {\n          // tslint:disable-next-line: max-line-length\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'th of ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ', Interval: every ' +\n            yearSequence +\n            ' years by ' +\n            frequencyTime;\n        }\n        if (\n          parseInt(frequencyDetails[1]) === 31 ||\n          parseInt(frequencyDetails[1]) === 21\n        ) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'st of ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ', Interval: every ' +\n            yearSequence +\n            ' years by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 22) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'nd of ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ', Interval: every ' +\n            yearSequence +\n            ' years by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 23) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'rd of ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ', Interval: every ' +\n            yearSequence +\n            ' years by ' +\n            frequencyTime;\n        }\n      }\n    }\n  }\n\n  /**\n   * If the frequencyDetails[1] is 1, 2, 3, 21, 22, 23, or greater than 3, then set the\n   * frequencyPlaceholder to a string that includes the frequencyDetails[1] and the frequencyTime.\n   * @param {any} frequencyDetails - [\"3\", \"1\", \"1,2,3\"]\n   * @param {any} frequencyTime - \"10:00 AM\"\n   */\n  getQuarterlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    {\n      const quarterly = [\n        'January, April, July, October',\n        'February, May, August, November',\n        ' March, June, September, December',\n      ];\n      if (parseInt(frequencyDetails[1]) === 1) {\n        this.frequencyPlaceholder =\n          '1st of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 2) {\n        this.frequencyPlaceholder =\n          '2nd of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 3) {\n        this.frequencyPlaceholder =\n          '3rd of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (\n        parseInt(frequencyDetails[1]) === 21 ||\n        parseInt(frequencyDetails[1]) === 31\n      ) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'st of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 22) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'nd of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 23) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'rd of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) > 3) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'th of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      }\n    }\n  }\n\n  /**\n   * It takes a string of comma separated numbers and returns a string of comma separated month names.\n   * @param {any} frequencyDetails - [\"1\", \"1\", \"1,2,3,4,5,6,7,8,9,10,11,12\"]\n   * @param {any} frequencyTime - \"10:00 AM\"\n   */\n  getBiannualPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    {\n      const selectedMonth = frequencyDetails[2].split(',').map((ele: any) => {\n        return this.shortMonth[parseInt(ele) - 1];\n      });\n      if (parseInt(frequencyDetails[1]) === 1) {\n        this.frequencyPlaceholder =\n          '1st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 2) {\n        this.frequencyPlaceholder =\n          '2nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 3) {\n        this.frequencyPlaceholder =\n          '3rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (\n        parseInt(frequencyDetails[1]) === 21 ||\n        parseInt(frequencyDetails[1]) === 31\n      ) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'st of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 22) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'nd of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 23) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'rd of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) > 3) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'th of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      }\n    }\n  }\n\n  /**\n   * It takes an event object, and if it exists, it creates a new object with the same properties as\n   * the event object, and assigns it to the frequencyDetails property.\n   *\n   * If the event object is undefined, then the frequencyDetails property will be undefined.\n   *\n   * If the event object is null, then the frequencyDetails property will be null.\n   *\n   * If the event object is an empty object, then the frequencyDetails property will be an empty\n   * object.\n   *\n   * If the event object is an object with properties, then the frequencyDetails property will be an\n   * object with the same properties.\n   *\n   * If the event object is an object with properties, but some of those properties are undefined, then\n   * the frequencyDetails property will be an object with the same properties, but some of those\n   * properties will be undefined.\n   *\n   * If the event object is an object with properties, but some of those properties are null, then the\n   * @param {any} event - any = {\n   */\n  frequencyDataPopulate(event: any) {\n    let data = {\n      frequency: event?.frequency,\n      started_at: event?.started_at,\n      frequency_time: event?.frequency_time,\n      remind_before_days: event?.remind_before_days,\n      failed_after_days: event?.failed_after_days,\n      can_assess_before_days: event?.can_assess_before_days,\n    };\n    this.frequencyDetails = data;\n  }\n\n  /**\n   * The function `getOtherGRCTabCount` retrieves the count of different types of items (assets,\n   * processes, vendors, inventory) and updates the corresponding tabs with the count.\n   * @param {any} [event] - The \"event\" parameter is an optional parameter that can be passed to the\n   * \"getOtherGRCTabCount\" function. It is of type \"any\", which means it can accept any data type.\n   */\n  getOtherGRCTabCount(event?: any) {\n    event['rc_ids'] = this.getAllRCIds(this.riskForm.responsibilityCentersList);\n    this.grcTabLoader = true;\n    this.grcService.getGRCTabsCount(event).subscribe((data: any) => {\n      this.otherGRCCard.forEach((tab: any, index: number) => {\n        const OBJECT_LABEL: any = {\n          ASSET: 'Assets',\n          PROCESS: 'Processes',\n          VENDOR: 'Vendors',\n          INVENTORY: 'Inventory',\n        };\n        this.grcTabLoader = false;\n        const TAB_NAME = OBJECT_LABEL[tab?.title?.toUpperCase()];\n        if (TAB_NAME) {\n          tab.title = TAB_NAME;\n          tab.value = index;\n          tab.selectedCount = 0;\n          tab.key = TAB_NAME?.toLowerCase();\n        }\n        const key = `${tab.key}_type_count`;\n        if (data.hasOwnProperty(key)) {\n          tab.count = data[key];\n        }\n      });\n    });\n  }\n\n  getAllRCIds(rcIds: any) {\n    const allIds: number[] = rcIds.flatMap((rc: any) => [\n      ...rc.item_parent_ids.map(Number),\n      ...rc.item_child_ids.map(Number),\n      Number(rc.rc_id),\n    ]);\n\n    return this.responsibilityCentersList\n      .filter((rc: any) => allIds.includes(rc?.rc_id))\n      .map((ele: any) => ele._id)\n      .join(',');\n  }\n\n  getOtherGRCObjects(event?: any) {\n    if (this.otherGRCSubscription) {\n      this.otherGRCSubscription.unsubscribe();\n    }\n    if (!event) {\n      event = {\n        rc_ids: '',\n        type: this.selectedGRCTab,\n        state: 1,\n        page: 1,\n      };\n    }\n    if (event?.searchString && this.grcSearchString !== event?.searchString) {\n      this.grcSearchString = event?.searchString;\n      this.getOtherGRCTabCount({\n        rc_ids: '',\n        searchString: this.grcSearchString,\n      });\n    }\n    this.grcLoader = true;\n    event['rc_ids'] = this.getAllRCIds(this.riskForm.responsibilityCentersList);\n    event['grcType'] = this.selectedGRCTab;\n    this.otherGRCSubscription = this.grcService\n      .getGRCList(event)\n      .subscribe((data: any) => {\n        this.grcList = data;\n        this.grcLoader = false;\n        // if (this.MODE === 'EDIT') {\n        //   // this.listObject.OTHER_GRC_OBJECTS.selectedData = data.filter(\n        //   //   (item: any) => this.grcPayload.linked_GRC_ids.includes(item?._id)\n        //   // );\n        //   if (this.grcPayload.linked_GRC_ids?.length) {\n        //     this.grcForm.otherGrcObjects = true;\n        //     this.additionalOption.OTHER_GRC_OBJECTS = true;\n        //     this.populateOptionalFields();\n        //   }\n        // }\n      });\n  }\n\n  saveSelectedList(event: any) {\n    this.riskForm.selectedGRCObjects = event;\n    this.activateSelector('GRC', false);\n    this.setOtherGRCTypesFormate();\n  }\n  setOtherGRCTypesFormate() {\n    const grcTypes = GRC_TYPE_ARRAY;\n    this.resetGRCDataWithTypes();\n    if (this.riskForm?.selectedGRCObjects?.length > 0) {\n      this.riskForm?.selectedGRCObjects?.forEach((item: any) => {\n        this.grcDataWithTypes[grcTypes[item?.type]]?.push(item);\n      });\n    }\n  }\n\n  removeOtherGRCObjects(event: any) {\n    const grcTypes = GRC_TYPE_ARRAY;\n    this.riskForm.selectedGRCObjects = this.riskForm?.selectedGRCObjects.filter(\n      (grc: any) => grc?._id !== event?._id\n    );\n    this.filterOtherGRCData(event, grcTypes[event?.type]);\n    this.otherGRCCard[0].selectedCount\n      ? (this.otherGRCCard[event?.type].selectedCount -= 1)\n      : 0;\n  }\n\n  filterOtherGRCData(event: any, type: string) {\n    this.grcDataWithTypes[type] = this.grcDataWithTypes[type]?.filter(\n      (grc: any) => grc?._id !== event?._id\n    );\n  }\n\n  resetGRCDataWithTypes() {\n    this.grcDataWithTypes = {\n      assets: [],\n      processes: [],\n      vendors: [],\n      inventory: [],\n    };\n  }\n}\n","<div class=\"workflw-risk\" *ngIf=\"!showSmiley\">\n  <!-- Risk Type -->\n  <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\n    <div class=\"left checked\">\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Risk Type <span class=\"required\">*</span></label\n        >\n        <div class=\"risk-type-field\">\n          <div\n            class=\"type-item\"\n            [class.active]=\"riskForm?.riskType === 'NORMAL'\"\n          >\n            <button\n              [class.disabled]=\"!riskTypeChangeAllowed\"\n              (click)=\"changeRisk('NORMAL')\"\n            >\n              ADD TO RISK REGISTER\n            </button>\n            <i\n              class=\"icons info\"\n              [appTooltip]=\"\n                'This option lets you add a risk directly to the Risk Register. The risk owners will receive an alert and they can begin the the risk assessment process.'\n              \"\n              placement=\"bottom-right\"\n              delay=\"0\"\n              type=\"white\"\n              [tooltipMandatory]=\"true\"\n              >&#xe932;</i\n            >\n          </div>\n          <div\n            class=\"type-item\"\n            [class.active]=\"riskForm?.riskType === 'REPORTED'\"\n          >\n            <button\n              [class.disabled]=\"!riskTypeChangeAllowed\"\n              (click)=\"changeRisk('REPORTED')\"\n            >\n              REPORT A RISK\n            </button>\n            <i\n              class=\"icons info\"\n              [appTooltip]=\"\n                'This options lets you report a risk and assign it to the risk owners. The risk owners will have the option to either add the risk to the Risk Register or flag it for a follow-up at a later date.'\n              \"\n              placement=\"bottom-right\"\n              delay=\"0\"\n              type=\"white\"\n              [tooltipMandatory]=\"true\"\n              >&#xe932;</i\n            >\n          </div>\n          <span class=\"background-glider\"></span>\n        </div>\n        <p *ngIf=\"false\" class=\"error-message\">Add a risk type</p>\n      </div>\n    </div>\n  </div>\n\n  <!-- Risk Name -->\n  <div\n    class=\"form-group-row\"\n    [class.active]=\"false\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'name' &&\n      sideSelectorElements.includes(activeSelector)\n    \"\n  >\n    <div class=\"left\" [class.checked]=\"riskForm.title\">\n      <img\n        [src]=\"ASSETS.what\"\n        alt=\"im\"\n        *ngIf=\"\n          riskForm?.title?.trim()?.length === 0 || activeSelector === 'name'\n        \"\n      />\n\n      <svg\n        *ngIf=\"riskForm?.title?.trim()?.length > 0 && activeSelector !== 'name'\"\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >WHAT RISK WOULD YOU LIKE TO MANAGE?\n          <span class=\"required\">*</span></label\n        >\n        <input\n          spaceTrim\n          type=\"text\"\n          (keydown)=\"activeSelector = 'name'\"\n          (focusin)=\"activateSelector('name', true)\"\n          (focusout)=\"activateSelector('name', false)\"\n          [(ngModel)]=\"riskForm.title\"\n          placeholder=\"Add a risk name\"\n          *ngIf=\"riskForm?.title?.trim() == '' || activeSelector === 'name'\"\n        />\n        <div\n          class=\"selected\"\n          *ngIf=\"riskForm?.title?.trim() != '' && activeSelector !== 'name'\"\n        >\n          <div class=\"chip-container\">\n            <span class=\"value\">{{ riskForm.title }}</span>\n          </div>\n          <button\n            class=\"edit\"\n            (click)=\"activateSelector('name', true)\"\n            type=\"button\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <p *ngIf=\"submitted && !riskForm.title\" class=\"error-message\">\n          Add a risk name\n        </p>\n        <vcomply-editor\n          [(ngModel)]=\"riskForm.description\"\n          [editorConfig]=\"description\"\n          (clickOutside)=\"checkDescription()\"\n        ></vcomply-editor>\n        <p\n          *ngIf=\"\n            submitted &&\n            riskForm.riskType === 'REPORTED' &&\n            !riskForm?.description?.trim()?.length\n          \"\n          class=\"error-message\"\n        >\n          Add a risk description\n        </p>\n      </div>\n    </div>\n  </div>\n\n  <!-- Risk Manager -->\n  <div\n    class=\"form-group-row\"\n    [class.active]=\"activeSelector === 'owner'\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'owner' &&\n      sideSelectorElements.includes(activeSelector)\n    \"\n  >\n    <div class=\"left\" [class.checked]=\"riskForm?.ownersList?.length > 0\">\n      <img\n        *ngIf=\"riskForm?.ownersList?.length == 0 || activeSelector === 'owner'\"\n        [src]=\"ASSETS.im_creating\"\n        alt=\"\"\n      />\n\n      <svg\n        *ngIf=\"riskForm?.ownersList?.length > 0 && activeSelector !== 'owner'\"\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >WHO IS RESPONSIBLE FOR MANAGING THIS RISK?\n          <span class=\"required\">*</span>\n          <i\n            class=\"icons\"\n            [appTooltip]=\"\n              'This is the person that is responsible for managing the risk.'\n            \"\n            placement=\"bottom\"\n            delay=\"0\"\n            type=\"white\"\n            [tooltipMandatory]=\"true\"\n            >&#xe91f;</i\n          >\n        </label>\n        <div class=\"select\" *ngIf=\"riskForm?.ownersList?.length == 0\">\n          <input\n            type=\"text\"\n            (click)=\"activateSelector('owner', true)\"\n            placeholder=\"Select Risk Manager(s)\"\n            readonly\n          />\n        </div>\n\n        <div\n          class=\"selected\"\n          *ngIf=\"\n            riskForm?.ownersList?.length > 0 || riskForm?.groupsList.length > 0\n          \"\n        >\n          <div\n            class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            *ngIf=\"!featureflag_groups\"\n          >\n            <ng-container\n              *ngIf=\"\n                riskForm?.ownersList\n                  | shortMerge : nonRemovableUsersList as ownerList\n              \"\n            >\n              <ng-container *ngFor=\"let owner of ownerList?.slice(0, 1)\">\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  *ngIf=\"!nonRemovableUsersList.includes(owner?.member_id)\"\n                  (click)=\"remove('owner', owner)\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"owner?.member_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ owner?.member_name }}</span\n                >\n              </ng-container>\n            </ng-container>\n            <button\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"popoverOwner.popover()\"\n              placement=\"left\"\n              *ngIf=\"riskForm?.ownersList?.length > 1\"\n            >\n              +{{ riskForm?.ownersList?.slice(1).length }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\" *ngIf=\"!featureflag_groups\" [class.more-one]=\"riskForm?.ownersList?.length>1\" [class.plus]=\"riskForm?.ownersList?.length>2\">\n                      <ng-container *ngIf=\"(riskForm?.ownersList|shortMerge : nonRemovableUsersList) as ownerList\">\n                          <span class=\"chip\" *ngFor=\"let owner of ownerList?.slice(0,2)\"><i class=\"icons\" *ngIf=\"!nonRemovableUsersList.includes(owner?.member_id)\" (click)=\"remove('owner',owner)\">&#xe90d;</i> {{owner?.member_name}}</span>\n                          <button class=\"count\" *ngIf=\"riskForm?.ownersList?.length > 2\" type=\"button\" appPopover (click)=\"popoverOwner.popover()\" placement=\"right\">+{{riskForm?.ownersList?.slice(2).length}}</button>\n                      </ng-container>\n                  </div> -->\n\n          <div class=\"vx-d-flex vx-align-center\" *ngIf=\"featureflag_groups\">\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <i\n                class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                *ngIf=\"\n                  !nonRemovableUsersList.includes(\n                    riskForm?.ownersList[0]?.member_id\n                  )\n                \"\n                (click)=\"remove('owner', riskForm?.ownersList[0])\"\n                >&#xe9ae;</i\n              >\n              <span\n                class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"riskForm?.ownersList[0]?.member_name\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{ riskForm?.ownersList[0]?.member_name }}</span\n              >\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                appPopover\n                (click)=\"popoverUser.popover()\"\n                placement=\"right\"\n                *ngIf=\"riskForm?.ownersList.length > 1\"\n              >\n                +{{ riskForm?.ownersList.length - 1 }}\n              </button>\n            </div>\n            <span\n              class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\n              *ngIf=\"riskForm?.groupsList.length > 0\"\n              >&</span\n            >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"riskForm?.groupsList.length > 0\"\n            >\n              <i\n                class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                (click)=\"remove('Ownergroup', riskForm?.groupsList[0])\"\n                >&#xe9ae;</i\n              >\n              <span\n                class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"riskForm?.groupsList[0]?.group_name\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{ riskForm?.groupsList[0]?.group_name }}</span\n              >\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover\n                (click)=\"group.popover()\"\n                placement=\"right\"\n                *ngIf=\"riskForm?.groupsList?.length > 1\"\n              >\n                +{{ riskForm?.groupsList?.length - 1 }}\n              </button>\n            </div>\n          </div>\n\n          <!-- <div class=\"chip-container\" *ngIf=\"featureflag_groups\">\n                      <div class=\"chip-inner\" >\n                        <i class=\"icons cross vx-mr-1\" *ngIf=\"!nonRemovableUsersList.includes(riskForm?.ownersList[0]?.member_id)\" (click)=\"remove('owner',riskForm?.ownersList[0])\" >&#xe90d;</i>\n                          <span class=\"chip\">\n                              <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{riskForm?.ownersList[0]?.member_name}}</span></span>\n                          <button *ngIf=\"riskForm?.ownersList.length > 1\" class=\"count user\" appPopover (click)=\"popoverUser.popover()\" placement=\"right\">+{{riskForm?.ownersList.length - 1}}</button>\n                      </div>\n                      <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"riskForm?.groupsList.length > 0\" >&</span>\n                      <div class=\"chip-inner\" *ngIf=\"riskForm?.groupsList.length > 0\" >\n                        <i class=\"icons cross vx-mr-1\" (click)=\"remove('Ownergroup', riskForm?.groupsList[0])\" >&#xe90d;</i>\n                          <span class=\"chip\" [appTooltip]=\"riskForm?.groupsList[0]?.group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{riskForm?.groupsList[0]?.group_name}}</span></span>\n                          <button *ngIf=\"riskForm?.groupsList?.length > 1\" class=\"count\" appPopover (click)=\"group.popover()\" placement=\"right\">+{{riskForm?.groupsList?.length -1}}</button>\n                      </div>\n                  </div> -->\n\n          <button\n            *ngIf=\"activeSelector !== 'owner'\"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"activateSelector('owner', true)\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <p\n          *ngIf=\"submitted && riskForm?.ownersList?.length === 0\"\n          class=\"error-message\"\n        >\n          Select Owner(s) for this risk.\n        </p>\n        <app-popover #popoverOwner [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ng-container\n              *ngIf=\"\n                riskForm?.ownersList\n                  | shortMerge : nonRemovableUsersList as ownerPop\n              \"\n            >\n              <ul class=\"action-item\">\n                <li *ngFor=\"let owner of ownerPop | slice : 1; let j = index\">\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i\n                        *ngIf=\"\n                          !nonRemovableUsersList.includes(owner?.member_id)\n                        \"\n                        class=\"icons\"\n                        (click)=\"remove('owner', owner)\"\n                        >&#xe90d;</i\n                      >\n                      {{ owner.member_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </ng-container>\n          </div>\n        </app-popover>\n        <app-popover #popoverUser [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ng-container\n              *ngIf=\"\n                riskForm?.ownersList\n                  | shortMerge : nonRemovableUsersList as ownerPop\n              \"\n            >\n              <ul class=\"action-item\">\n                <li *ngFor=\"let owner of ownerPop | slice : 1; let j = index\">\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i\n                        *ngIf=\"\n                          !nonRemovableUsersList.includes(owner?.member_id)\n                        \"\n                        class=\"icons\"\n                        (click)=\"remove('owner', owner)\"\n                        >&#xe90d;</i\n                      >\n                      {{ owner.member_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </ng-container>\n          </div>\n        </app-popover>\n        <app-popover #group [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"let data of riskForm?.groupsList | slice : 1\">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('Ownergroup', data)\"\n                      >&#xe90d;</i\n                    >\n                    {{ data.group_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n    </div>\n  </div>\n\n  <!-- Responsibility Center -->\n  <div\n    class=\"form-group-row\"\n    [class.active]=\"activeSelector === 'rc'\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'rc' &&\n      sideSelectorElements.includes(activeSelector)\n    \"\n  >\n    <div\n      class=\"left\"\n      [class.checked]=\"riskForm?.responsibilityCentersList?.length > 0\"\n    >\n      <img\n        *ngIf=\"\n          riskForm?.responsibilityCentersList?.length == 0 ||\n          activeSelector === 'rc'\n        \"\n        [src]=\"ASSETS.responsibility_center\"\n        alt=\"\"\n      />\n\n      <svg\n        *ngIf=\"\n          riskForm?.responsibilityCentersList?.length > 0 &&\n          activeSelector !== 'rc'\n        \"\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Responsibility Center <span class=\"required\">*</span>\n          <i\n            class=\"icons\"\n            [appTooltip]=\"\n              'Responsibility Centers represent the corporate and operational infrastructure of an organization. One or more Responsibility Centers can be exposed to a risk and accordingly, the risk must be assessed against each Responsibility Center.'\n            \"\n            placement=\"bottom\"\n            delay=\"0\"\n            type=\"white\"\n            [tooltipMandatory]=\"true\"\n            >&#xe91f;</i\n          >\n        </label>\n        <div\n          class=\"select\"\n          *ngIf=\"riskForm?.responsibilityCentersList?.length == 0\"\n        >\n          <input\n            type=\"text\"\n            (click)=\"activateSelector('rc', true)\"\n            placeholder=\"Select Responsibility Center(s)\"\n            readonly\n          />\n        </div>\n        <div\n          class=\"selected\"\n          *ngIf=\"riskForm?.responsibilityCentersList?.length > 0\"\n        >\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <ng-container\n              *ngFor=\"\n                let rcName of riskForm?.responsibilityCentersList?.slice(0, 1)\n              \"\n            >\n              <i\n                class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                (click)=\"remove('rc', rcName)\"\n                >&#xe9ae;</i\n              >\n              <span\n                class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"rcName.item_name\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{ rcName.item_name }}</span\n              >\n            </ng-container>\n            <button\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"popoverRC.popover()\"\n              placement=\"left\"\n              *ngIf=\"riskForm?.responsibilityCentersList?.length > 1\"\n            >\n              +{{ riskForm?.responsibilityCentersList?.slice(1).length }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\" [class.more-one]=\"riskForm?.responsibilityCentersList?.length>1\" [class.plus]=\"riskForm?.responsibilityCentersList?.length>2\">\n                      <span class=\"chip\" *ngFor=\"let rcName of riskForm?.responsibilityCentersList?.slice(0,2)\"><i class=\"icons\" (click)=\"remove('rc',rcName)\">&#xe90d;</i> {{rcName.item_name}}</span>\n                      <button class=\"count\" *ngIf=\"riskForm?.responsibilityCentersList?.length > 2\" type=\"button\" appPopover (click)=\"popoverRC.popover()\" placement=\"right\">+{{riskForm?.responsibilityCentersList?.slice(2).length}}</button>\n                  </div> -->\n\n          <button\n            *ngIf=\"activeSelector !== 'rc'\"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"activateSelector('rc', true)\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <p\n          *ngIf=\"submitted && riskForm?.responsibilityCentersList?.length == 0\"\n          class=\"error-message\"\n        >\n          Assign this risk to a Responsibility Center(s)\n        </p>\n        <app-popover #popoverRC [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li\n                *ngFor=\"\n                  let rcName of riskForm?.responsibilityCentersList | slice : 1;\n                  let j = index\n                \"\n              >\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('rc', rcName)\">&#xe90d;</i>\n                    {{ rcName.item_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n    </div>\n  </div>\n\n  <!-- Risk Frequency -->\n  <div\n    class=\"form-group-row\"\n    [class.active]=\"activeSelector === 'frequency'\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'frequency' &&\n      sideSelectorElements?.includes(activeSelector)\n    \"\n    *ngIf=\"riskForm?.riskType !== 'REPORTED'\"\n  >\n    <div class=\"left\" [class.checked]=\"riskForm?.category?.selectedCategory\">\n      <img\n        *ngIf=\"\n          !riskForm?.frequency_details?.frequency ||\n          riskForm?.frequency_details?.frequency === '' ||\n          activeSelector === 'frequency'\n        \"\n        [src]=\"ASSETS.when\"\n        alt=\"\"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        *ngIf=\"\n          (riskForm?.frequency_details?.frequency &&\n            riskForm?.frequency_details?.frequency !== '') ||\n          activeSelector !== 'frequency'\n        \"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >HOW OFTEN DOES THIS RISK NEED TO BE REASSESSED?\n          <span class=\"required\">*</span>\n          <i\n            class=\"icons\"\n            [appTooltip]=\"\n              'The option lets you specify the risk reassessment frequency.'\n            \"\n            placement=\"bottom\"\n            delay=\"0\"\n            type=\"white\"\n            [tooltipMandatory]=\"true\"\n            >&#xe91f;</i\n          ></label\n        >\n        <div\n          class=\"select\"\n          *ngIf=\"!riskForm?.frequency_details?.frequency\"\n          (click)=\"activateSelector('frequency', true)\"\n        >\n          <input\n            type=\"text\"\n            placeholder=\"Set a Reassessment Frequency\"\n            readonly\n          />\n        </div>\n        <div\n          class=\"selected button-sec\"\n          *ngIf=\"riskForm?.frequency_details?.frequency\"\n        >\n          <span\n            class=\"chip\"\n            [appTooltip]=\"frequencyPlaceholder\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"false\"\n            >{{ frequencyPlaceholder }}</span\n          >\n          <button\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"activateSelector('frequency', true)\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <div class=\"vx-mt-1\">\n          <app-cs-switch\n            [ngValue]=\"riskForm?.enableAllFutureBusinessCycle\"\n            (ngValueChange)=\"riskForm.enableAllFutureBusinessCycle = $event\"\n            >DO YOU WANT THIS TO SHOW IN ALL FUTURE BUSINESS CYCLES?\n          </app-cs-switch>\n        </div>\n        <p\n          *ngIf=\"\n            submitted &&\n            (!riskForm?.frequency_details?.frequency ||\n              riskForm?.frequency_details?.frequency === '')\n          \"\n          class=\"error-message\"\n        >\n          Please select the frequency of occurrence for this risk.\n        </p>\n      </div>\n    </div>\n  </div>\n\n  <!-- Risk Category -->\n  <div\n    class=\"form-group-row\"\n    [class.active]=\"activeSelector === 'category'\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'category' &&\n      sideSelectorElements.includes(activeSelector)\n    \"\n  >\n    <div class=\"left\" [class.checked]=\"riskForm?.category?.selectedCategory\">\n      <img\n        *ngIf=\"\n          !riskForm?.category?.selectedCategory || activeSelector === 'category'\n        \"\n        [src]=\"ASSETS.case_category\"\n        alt=\"\"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        *ngIf=\"\n          riskForm?.category?.selectedCategory && activeSelector !== 'category'\n        \"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Risk Category\n          <i\n            class=\"icons\"\n            [appTooltip]=\"'Risk Categories are used to group similar risks.'\"\n            placement=\"bottom\"\n            delay=\"0\"\n            type=\"white\"\n            [tooltipMandatory]=\"true\"\n            >&#xe91f;</i\n          ></label\n        >\n        <div class=\"select\" *ngIf=\"!riskForm?.category?.selectedCategory\">\n          <input\n            type=\"text\"\n            (click)=\"activateSelector('category', true)\"\n            placeholder=\"Select Risk Category\"\n            readonly\n          />\n        </div>\n        <div class=\"selected\" *ngIf=\"riskForm?.category?.selectedCategory\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"remove('category', riskForm.category.selectedCategory)\"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"riskForm?.category?.selectedCategory?.category_name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ riskForm?.category?.selectedCategory?.category_name }}</span\n            >\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                      <span class=\"chip\"><i class=\"icons\" (click)=\"remove('category',riskForm.category.selectedCategory)\">&#xe90d;</i>{{riskForm?.category?.selectedCategory?.category_name}}</span>\n                  </div> -->\n          <button\n            *ngIf=\"activeSelector !== 'category'\"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"activateSelector('category', true)\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </div>\n      <ng-container *ngIf=\"riskForm?.categoryCustomTags?.length > 0\">\n        <div\n          class=\"vx-form-group\"\n          *ngFor=\"let tag of riskForm.categoryCustomTags\"\n        >\n          <label class=\"vx-control-panel\">{{ tag.custom_tag_name }}</label>\n          <input\n            type=\"text\"\n            [(ngModel)]=\"tag.custom_tag_value\"\n            [placeholder]=\"tag.custom_tag_name\"\n          />\n        </div>\n      </ng-container>\n    </div>\n  </div>\n\n  <!-- Recommended Mitigation Plan -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    [class.active]=\"false\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'mitigation' &&\n      sideSelectorElements.includes(activeSelector)\n    \"\n  >\n    <div\n      id=\"riskSpace\"\n      class=\"left\"\n      [class.checked]=\"(riskForm.mitigationDescriptionPlan | spaceTrim) !== ''\"\n    >\n      <img\n        *ngIf=\"(riskForm.mitigationDescriptionPlan | spaceTrim) === ''\"\n        [src]=\"ASSETS.objectives\"\n        alt=\"\"\n      />\n      <svg\n        *ngIf=\"(riskForm.mitigationDescriptionPlan | spaceTrim) !== ''\"\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label for=\"\" class=\"vx-control-panel\"\n          >Recommended Mitigation Plans<link\n            rel=\"manifest\"\n            href=\"./manifest.json\"\n          />\n          <i\n            class=\"icons\"\n            [appTooltip]=\"\n              'Specify the mitigation plan that can be undertaken to mitigate the risk.'\n            \"\n            placement=\"bottom\"\n            delay=\"0\"\n            type=\"white\"\n            [tooltipMandatory]=\"true\"\n            >&#xe91f;</i\n          >\n        </label>\n        <vcomply-editor\n          [(ngModel)]=\"riskForm.mitigationDescriptionPlan\"\n          [editorConfig]=\"mitigationDescriptionPlan\"\n          (clickOutside)=\"checkMitigationPlan()\"\n        >\n        </vcomply-editor>\n      </div>\n    </div>\n  </div>\n\n  <!-- Assessment Deadline -->\n  <!-- !settingsInfo?.assessment_deadline_enable && riskForm?.riskType !== 'REPORTED' && ((currentTimeStamp < editDetails?.assessment_date_timestamp) || !editDetails?.IfAssessmentDone ) -->\n  <div\n    class=\"form-group-row\"\n    [class.active]=\"activeSelector === 'assessment'\"\n    id=\"deadline\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'assessment' &&\n      sideSelectorElements.includes(activeSelector)\n    \"\n    *ngIf=\"false\"\n  >\n    <div class=\"left\" [class.checked]=\"riskForm?.assessment_deadline_days >= 1\">\n      <img\n        [src]=\"ASSETS.when\"\n        *ngIf=\"\n          riskForm?.assessment_deadline_days < 1 ||\n          activeSelector === 'assessment'\n        \"\n        alt=\"\"\n      />\n      <svg\n        class=\"checkIcon\"\n        *ngIf=\"\n          riskForm?.assessment_deadline_days >= 1 &&\n          activeSelector !== 'assessment'\n        \"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Assessment Deadline <span class=\"required\">*</span>\n          <i\n            class=\"icons\"\n            [appTooltip]=\"\n              'This is the date that the inherent risk assessment must be completed by.'\n            \"\n            placement=\"bottom\"\n            delay=\"0\"\n            type=\"white\"\n            [tooltipMandatory]=\"true\"\n            >&#xe91f;</i\n          ></label\n        >\n        <div class=\"input\">\n          <span class=\"text\">Set Number of days</span>\n          <div class=\"input-group counter\">\n            <button (click)=\"changeRiskAssessment('subtract')\">\n              <i class=\"icons\">&#xea53;</i>\n            </button>\n            <input\n              type=\"number\"\n              [(ngModel)]=\"riskForm.assessment_deadline_days\"\n              (focusin)=\"activateSelector('assessment', true)\"\n              (focusout)=\"activateSelector('assessment', false)\"\n              name=\"riskAssessmentDeadline\"\n              validateAssessment\n              #deadline=\"ngModel\"\n              (ngModelChange)=\"changeRiskAssessmentDeadline($event)\"\n              onkeydown=\"return event.keyCode !== 190\"\n              min=\"0\"\n              oninput=\"this.value = Math.abs(this.value)\"\n            />\n            <button (click)=\"changeRiskAssessment('add')\">\n              <i class=\"icons\">&#xe915;</i>\n            </button>\n          </div>\n        </div>\n        <p\n          *ngIf=\"submitted && riskForm?.assessment_deadline_days < 1\"\n          class=\"error-message\"\n        >\n          Enter a value greater than 0.\n        </p>\n        <label\n          class=\"vx-control-panel\"\n          *ngIf=\"riskForm?.assessment_deadline_days >= 1\"\n        >\n          This risk assessment needs to be completed by\n          {{ date | date : \"dd MMM yyyy\" }}\n        </label>\n      </div>\n    </div>\n  </div>\n\n  <!--Risk Owner-->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    [class.active]=\"false\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'riskowner' &&\n      sideSelectorElements.includes(activeSelector)\n    \"\n    *ngIf=\"riskForm.addRiskOwner\"\n  >\n    <div class=\"left\" [class.checked]=\"riskForm.risk_owner\">\n      <img\n        [src]=\"ASSETS.case_owners\"\n        alt=\"im\"\n        *ngIf=\"\n          riskForm?.risk_owner?.trim()?.length === 0 ||\n          activeSelector === 'riskowner'\n        \"\n      />\n\n      <svg\n        *ngIf=\"\n          riskForm?.risk_owner?.trim()?.length > 0 &&\n          activeSelector !== 'riskowner'\n        \"\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label for=\"\" class=\"vx-control-panel\"\n          >Risk Owner<link rel=\"manifest\" href=\"./manifest.json\" />\n          <i\n            class=\"icons\"\n            appTooltip=\"This is either a person, department owner or a functional role within the organization that owns the risk. Example: For IT risk, the Risk Owner could be the 'Director of IT & Security.'\"\n            placement=\"bottom\"\n            delay=\"0\"\n            type=\"white\"\n            [tooltipMandatory]=\"true\"\n            >&#xe91f;</i\n          >\n        </label>\n        <input\n          spaceTrim\n          type=\"text\"\n          (keydown)=\"activeSelector = 'riskowner'\"\n          (focusin)=\"activateSelector('riskowner', true)\"\n          (focusout)=\"activateSelector('riskowner', false)\"\n          [(ngModel)]=\"riskForm.risk_owner\"\n          placeholder=\"Specify the name of the person, department head or funct...\"\n          [appTooltip]=\"\n            'Specify the name of the person, department head or functional role that owns this risk'\n          \"\n          placement=\"bottom\"\n          delay=\"0\"\n          [tooltipMandatory]=\"true\"\n          *ngIf=\"\n            riskForm?.risk_owner?.trim() == '' || activeSelector === 'riskowner'\n          \"\n        />\n        <div\n          class=\"selected\"\n          *ngIf=\"\n            riskForm?.risk_owner?.trim() != '' && activeSelector !== 'riskowner'\n          \"\n        >\n          <div class=\"chip-container\">\n            <span class=\"value\">{{ riskForm.risk_owner }}</span>\n          </div>\n          <button\n            class=\"edit\"\n            (click)=\"activateSelector('riskowner', true)\"\n            type=\"button\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- Risk Overseer -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    [class.active]=\"activeSelector === 'overseer'\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'overseer' &&\n      sideSelectorElements.includes(activeSelector)\n    \"\n    *ngIf=\"riskForm.addOverseer\"\n  >\n    <div class=\"left\" [class.checked]=\"riskForm?.overseersList?.length > 0\">\n      <img\n        *ngIf=\"\n          riskForm?.overseersList?.length == 0 || activeSelector === 'overseer'\n        \"\n        [src]=\"ASSETS.oversight\"\n        alt=\"\"\n      />\n      <svg\n        class=\"checkIcon\"\n        *ngIf=\"\n          riskForm?.overseersList?.length > 0 && activeSelector !== 'overseer'\n        \"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Risk Oversight<i\n            class=\"icons\"\n            [appTooltip]=\"\n              'This is the person that is responsible for overseeing the risk but who is not responsible for managing the risk.'\n            \"\n            placement=\"bottom\"\n            delay=\"0\"\n            type=\"white\"\n            [tooltipMandatory]=\"true\"\n            >&#xe91f;</i\n          ></label\n        >\n        <div\n          class=\"select\"\n          *ngIf=\"\n            riskForm?.overseersList?.length == 0 &&\n            riskForm?.overseersGroupList?.length == 0\n          \"\n        >\n          <input\n            type=\"text\"\n            (click)=\"activateSelector('overseer', true)\"\n            placeholder=\"Select Risk Oversight(s)\"\n            readonly\n          />\n        </div>\n        <div\n          class=\"selected\"\n          *ngIf=\"\n            riskForm?.overseersList?.length > 0 ||\n            riskForm?.overseersGroupList.length > 0\n          \"\n        >\n          <ng-container *ngIf=\"!featureflag_groups\">\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <ng-container\n                *ngFor=\"let owner of riskForm?.overseersList?.slice(0, 1)\"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"remove('overseer', owner)\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"owner.member_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ owner.member_name }}</span\n                >\n              </ng-container>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover\n                (click)=\"popoverOverseer.popover()\"\n                placement=\"right\"\n                *ngIf=\"riskForm?.overseersList?.length > 1\"\n              >\n                +{{ riskForm?.overseersList?.slice(1).length }}\n              </button>\n            </div>\n          </ng-container>\n\n          <div class=\"vx-d-flex vx-align-center\" *ngIf=\"featureflag_groups\">\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <i\n                class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                (click)=\"remove('overseer', riskForm?.overseersList[0])\"\n                >&#xe9ae;</i\n              >\n              <span\n                class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"riskForm?.overseersList[0]?.member_name\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                *ngIf=\"riskForm?.overseersList.length > 0\"\n                >{{ riskForm?.overseersList[0]?.member_name }}</span\n              >\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                appPopover\n                (click)=\"overseer.popover()\"\n                placement=\"right\"\n                *ngIf=\"riskForm?.overseersList.length > 1\"\n              >\n                +{{ riskForm?.overseersList.length - 1 }}\n              </button>\n            </div>\n            <span\n              class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\n              *ngIf=\"\n                riskForm?.overseersList.length > 0 &&\n                riskForm?.overseersGroupList.length > 0\n              \"\n              >&</span\n            >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"riskForm?.overseersGroupList.length > 0\"\n            >\n              <i\n                class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                (click)=\"\n                  remove('overseergroup', riskForm?.overseersGroupList[0])\n                \"\n                >&#xe9ae;</i\n              >\n              <span\n                class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"riskForm?.overseersGroupList[0]?.group_name\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{ riskForm?.overseersGroupList[0]?.group_name }}</span\n              >\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover\n                (click)=\"overseerGroup.popover()\"\n                placement=\"right\"\n                *ngIf=\"riskForm?.overseersGroupList?.length > 1\"\n              >\n                +{{ riskForm?.overseersGroupList?.length - 1 }}\n              </button>\n            </div>\n          </div>\n          <button\n            *ngIf=\"activeSelector !== 'overseer'\"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"activateSelector('overseer', true)\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <app-popover #popoverOverseer [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li\n                *ngFor=\"\n                  let owner of riskForm?.overseersList | slice : 1;\n                  let j = index\n                \"\n              >\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('overseer', owner)\"\n                      >&#xe90d;</i\n                    >\n                    {{ owner.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #overseer [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li\n                *ngFor=\"\n                  let owner of riskForm?.overseersList | slice : 1;\n                  let j = index\n                \"\n              >\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('overseer', owner)\"\n                      >&#xe90d;</i\n                    >\n                    {{ owner.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #overseerGroup [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"let data of riskForm?.overseersGroupList | slice : 1\">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('overseergroup', data)\"\n                      >&#xe90d;</i\n                    >\n                    {{ data.group_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n    </div>\n  </div>\n\n  <!-- Risk Mitigation Priority -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    [class.active]=\"false\"\n    [class.disabled]=\"\n      activeSelector && sideSelectorElements.includes(activeSelector)\n    \"\n    *ngIf=\"riskForm.addMitigation\"\n  >\n    <div class=\"left\" [class.checked]=\"riskForm.mitigation\">\n      <img [src]=\"ASSETS.priority\" *ngIf=\"!riskForm.mitigation\" alt=\"\" />\n      <!-- <svg viewBox=\"25 25 50 50\" class=\"edit-loader\">\n              <circle cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke=\"#1e5dd3\" stroke-width=\"3\" class=\"loader-path\"></circle>\n          </svg> -->\n      <svg\n        class=\"checkIcon\"\n        *ngIf=\"riskForm.mitigation\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Risk Mitigation Priority\n          <i\n            class=\"icons\"\n            [appTooltip]=\"\n              'This sets the priority level for the mitigation of each risk.'\n            \"\n            placement=\"bottom\"\n            delay=\"0\"\n            type=\"white\"\n            [tooltipMandatory]=\"true\"\n            >&#xe91f;</i\n          ></label\n        >\n\n        <cs-select\n          [(ngModel)]=\"riskForm.mitigation\"\n          [placeholder]=\"'Select a mitigation priority'\"\n          name=\"riskForm.mitigation\"\n        >\n          <cs-option\n            *ngFor=\"let data of mitigationDetails\"\n            [value]=\"data?.mitigation_id\"\n            [color]=\"data?.mitigation_color\"\n          >\n            {{ data.mitigation_name }}\n          </cs-option>\n        </cs-select>\n      </div>\n    </div>\n  </div>\n\n  <!-- Risk Label -->\n  <div\n    class=\"form-group-row\"\n    [class.active]=\"false\"\n    [class.disabled]=\"\n      activeSelector && sideSelectorElements.includes(activeSelector)\n    \"\n    *ngIf=\"riskForm?.addRiskLabel\"\n  >\n    <div class=\"left\" [class.checked]=\"false\">\n      <!-- <img *ngIf=\"true\"\n              src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg\" alt=\"\" /> -->\n\n      <svg\n        class=\"checkIcon\"\n        *ngIf=\"true\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >RISK LABEL\n          <i\n            class=\"icons\"\n            [appTooltip]=\"\n              'This option lets you specify if this is a newly identified risk or it is a rapidly changing risk.'\n            \"\n            placement=\"bottom\"\n            delay=\"0\"\n            type=\"white\"\n            [tooltipMandatory]=\"true\"\n            >&#xe91f;</i\n          ></label\n        >\n        <cs-select\n          [(ngModel)]=\"riskForm.riskLabelValue\"\n          [placeholder]=\"'Select a risk label'\"\n          name=\"riskForm?.riskLabelValue\"\n        >\n          <cs-option *ngFor=\"let data of riskLabelList\" [value]=\"data?.value\">\n            {{ data?.name }}\n          </cs-option>\n        </cs-select>\n      </div>\n    </div>\n  </div>\n  <!-- Link with  GRC -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    [class.active]=\"activeSelector === 'GRC'\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'GRC' &&\n      sideSelectorElements.includes(activeSelector)\n    \"\n    *ngIf=\"riskForm?.GRC\"\n  >\n    <div\n      class=\"left\"\n      [class.checked]=\"this.riskForm?.selectedGRCObjects?.length > 0\"\n    >\n      <img\n        *ngIf=\"\n          this.riskForm?.selectedGRCObjects?.length == 0 ||\n          activeSelector === 'GRC'\n        \"\n        [src]=\"ASSETS.link_items\"\n        alt=\"\"\n      />\n\n      <svg\n        *ngIf=\"\n          this.riskForm?.selectedGRCObjects?.length > 0 &&\n          activeSelector !== 'GRC'\n        \"\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">LINK GRC OBJECT(S) </label>\n        <div class=\"select\" *ngIf=\"riskForm?.selectedGRCObjects?.length === 0\">\n          <input\n            type=\"text\"\n            (click)=\"activateSelector('GRC', true)\"\n            placeholder=\"Select GRC object(s) to link with this risk.\"\n            readonly\n          />\n        </div>\n        <ng-container *ngIf=\"riskForm?.selectedGRCObjects?.length\">\n          <ng-container\n            *ngFor=\"let selectedGRC of GRC_TYPE_ARRAY; let i = index\"\n          >\n            <div\n              *ngIf=\"grcDataWithTypes[selectedGRC]?.length\"\n              class=\"selected vx-mb-2\"\n            >\n              <div\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              >\n                <ng-container\n                  *ngFor=\"let grc of grcDataWithTypes[selectedGRC]?.slice(0, 1)\"\n                >\n                  <i\n                    class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                    (click)=\"remove('GRC', grc, 0)\"\n                    >&#xe9ae;</i\n                  >\n                  <div\n                    class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\n                  >\n                    {{ selectedGRC | titlecase }}\n                  </div>\n\n                  <span\n                    class=\"chipName vx-fs-11 vx-label-txt\"\n                    [appTooltip]=\"grc?.name\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                    >{{ grc?.name }}</span\n                  >\n                </ng-container>\n\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover\n                  (click)=\"popoverGRC.popover()\"\n                  placement=\"left\"\n                  *ngIf=\"grcDataWithTypes[selectedGRC]?.length > 1\"\n                >\n                  +{{ grcDataWithTypes[selectedGRC].length - 1 }}\n                </button>\n              </div>\n\n              <button\n                *ngIf=\"activeSelector !== 'GRC'\"\n                class=\"edit\"\n                type=\"button\"\n                (click)=\"\n                  selectedGRCTab = grcDataWithTypes[selectedGRC][0]?.type;\n                  getOtherGRCObjects();\n                  activateSelector('GRC', true)\n                \"\n              >\n                <i class=\"icons\">&#xe9ba;</i> Edit\n              </button>\n            </div>\n            <app-popover #popoverGRC [dontCloseonClick]=\"true\">\n              <div class=\"wf-action-list\">\n                <ul class=\"action-item\">\n                  <li\n                    *ngFor=\"\n                      let grc of grcDataWithTypes[selectedGRC] | slice : 1;\n                      let j = index\n                    \"\n                  >\n                    <div class=\"avatar-card\">\n                      <span class=\"value\">\n                        <i class=\"icons\" (click)=\"remove('GRC', grc, j + 1)\"\n                          >&#xe90d;</i\n                        >\n                        {{ grc.name }}\n                      </span>\n                    </div>\n                  </li>\n                </ul>\n              </div>\n            </app-popover>\n          </ng-container>\n        </ng-container>\n      </div>\n    </div>\n  </div>\n</div>\n<app-responsibility-centers-list\n  *ngIf=\"activeSelector === 'rc'\"\n  [responsibilityCentersList]=\"responsibilityCentersList\"\n  [selectedResponsibilityCenters]=\"riskForm.responsibilityCentersList\"\n  [rcIdKey]=\"'rc_id'\"\n  (saveSelectedList)=\"saveSelectedRCList($event)\"\n  (closeRcList)=\"activateSelector('rc', false)\"\n  [singularText]=\"'Responsibility Center selected'\"\n  [pluralText]=\"'Responsibility Centers selected'\"\n  [loaded]=\"rcListLoaded\"\n>\n</app-responsibility-centers-list>\n\n<app-owner-list\n  *ngIf=\"!featureflag_groups && activeSelector === 'owner'\"\n  [usersList]=\"ownersList\"\n  [selectedUsers]=\"riskForm.ownersList\"\n  [userIdKey]=\"'member_id'\"\n  [itemEmailKey]=\"'member_email'\"\n  [itemNameKey]=\"'member_name'\"\n  (saveSelectedList)=\"saveSelectedOwnersList($event)\"\n  [nonRemovableUsersList]=\"nonRemovableUsersList\"\n  (closeUsersList)=\"activateSelector('owner', false)\"\n  [singularText]=\"'User selected'\"\n  [pluralText]=\"'Users selected'\"\n></app-owner-list>\n\n<user-group-list\n  *ngIf=\"featureflag_groups && activeSelector === 'owner'\"\n  [userlist]=\"ownersList\"\n  [selectedUsers]=\"riskForm.ownersList\"\n  [groupList]=\"groupsList\"\n  [nonRemovableUserIds]=\"nonRemovableUsersList\"\n  (save)=\"saveSelectedOwnersList($event)\"\n  [selectedGroups]=\"riskForm.groupsList\"\n  (cancel)=\"activateSelector('owner', false)\"\n  [groupEnabled]=\"true\"\n  [featureflag]=\"featureflag_groups\"\n  [loading]=\"!usersListLoaded\"\n>\n</user-group-list>\n\n<user-group-list\n  *ngIf=\"featureflag_groups && activeSelector === 'overseer'\"\n  [userlist]=\"overseersList\"\n  [selectedUsers]=\"riskForm.overseersList\"\n  [groupList]=\"overseersGroupList\"\n  (save)=\"saveSelectedOverseersList($event)\"\n  [selectedGroups]=\"riskForm.overseersGroupList\"\n  (cancel)=\"activateSelector('overseer', false)\"\n  [groupEnabled]=\"true\"\n  [featureflag]=\"featureflag_groups\"\n  [loading]=\"!usersListLoaded\"\n>\n</user-group-list>\n\n<app-category-list\n  *ngIf=\"activeSelector === 'category'\"\n  [categoryList]=\"categoryList\"\n  [selectedCategory]=\"riskForm.category\"\n  (saveSelectedCategory)=\"saveSelectedCategory($event)\"\n  (closeCategoriesList)=\"activateSelector('category', false)\"\n  [loaded]=\"categoryListLoaded\"\n></app-category-list>\n<app-owner-list\n  *ngIf=\"!featureflag_groups && activeSelector === 'overseer'\"\n  [usersList]=\"overseersList\"\n  [selectedUsers]=\"riskForm.overseersList\"\n  [userIdKey]=\"'member_id'\"\n  [itemNameKey]=\"'member_name'\"\n  [itemEmailKey]=\"'member_email'\"\n  (saveSelectedList)=\"saveSelectedOverseersList($event)\"\n  (closeUsersList)=\"activateSelector('overseer', false)\"\n  [singularText]=\"'User selected'\"\n  [pluralText]=\"'Users selected'\"\n>\n</app-owner-list>\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n<app-frequency-dialog-container\n  *ngIf=\"activeSelector === 'frequency'\"\n  [frequencyDetails]=\"frequencyDetails\"\n  (selectedFrequency)=\"frequencyData($event)\"\n  (closeFrequency)=\"activateSelector('frequency', false)\"\n>\n</app-frequency-dialog-container>\n\n<app-grc-object-list\n  *ngIf=\"activeSelector === 'GRC'\"\n  [grcObject]=\"grcList\"\n  [selectedGRC]=\"riskForm.selectedGRCObjects | refDisconnect\"\n  [loader]=\"grcLoader\"\n  [tableCard]=\"otherGRCCard\"\n  [selectedTab]=\"selectedGRCTab\"\n  [cardLoader]=\"grcTabLoader\"\n  (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"\n  (saveOtherGRC)=\"saveSelectedList($event)\"\n  (closeOtherGRC)=\"activateSelector('GRC', false)\"\n></app-grc-object-list>\n\n<app-smiley-dialog-inline\n  *ngIf=\"showSmiley\"\n  [message]=\"smileyMessage\"\n  [actionButtons]=\"actionButtons\"\n  (action)=\"action($event)\"\n  (closeSmiley)=\"closeSmiley($event)\"\n>\n</app-smiley-dialog-inline>\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { retry } from 'rxjs';\nimport { Configurations } from '../configurations';\nimport { AuthService } from './auth.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ProgramsService {\n  env!: any;\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  getRoles() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.get(\n      this.env?.organizationGet +\n        'roles/getProgramRoles&bypass-businessCycle=true',\n      { headers }\n    );\n  }\n\n  /**\n   * Uploads the given file to server\n   * @param payload payload File data to be uploaded\n   * @param path path Path of file to be uploaded\n   * @returns response after uploading a file\n   */\n  uploadFiles(payload: any, path: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    const ORG_PATH = `o/${path}`;\n    return this.http.post(\n      this.env.fileUploadEndPoint + ORG_PATH + '&ngsw-bypass=true',\n      payload,\n      { headers }\n    );\n  }\n\n  getResponsibilityCenterList() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env?.organizationGet +\n          'responsibilityCenterTree&bypass-businessCycle=true',\n        {\n          headers,\n        }\n      )\n      .pipe(retry(2));\n  }\n\n  fetchRoleUsers(roles: any, page?: any, searchKey?: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    let queryString = '';\n    if (page) {\n      queryString += `&page=${page}`;\n    }\n    if (searchKey) {\n    }\n    return this.http\n      .post<any[]>(\n        this.env.organizationPost +\n          'roles/getUserDetails&limit=30&bypass-businessCycle=true' +\n          queryString,\n        { role_ids: roles ?? [] },\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  fetchAllRoleUsers(roles: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<any[]>(\n        this.env?.organizationPost +\n          'roles/getUserDetails&type=all&bypass-businessCycle=true',\n        { role_ids: roles ?? [] },\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  fetchAllRoleGroups(roles: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<any[]>(\n        this.env.organizationPost +\n          'roles/getGroupDetails&type=all&bypass-businessCycle=true',\n        { role_ids: roles ?? [] },\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n  fetchAllOrgUser() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    //https://devapi.v-comply.com/organization/?mode=organisationUsersList&paginationType=small&admin=1\n    return this.http\n      .get<any[]>(\n        this.env?.organizationGet +\n          'organisationUsersList&paginationType=small&bypass-businessCycle=true',\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n  fetchComplianceGroups() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    //https://devapi.v-comply.com/organization/?mode=groupsList&status=1&type=compliance\n    return this.http\n      .get<any[]>(\n        this.env?.organizationGet +\n          'groupsList&status=1&type=compliance&bypass-businessCycle=true',\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  getBusinessCycle() {\n    const businessCycle = JSON.parse(\n      localStorage.getItem('businessCycle') ?? '{}'\n    );\n    return {\n      selected_cycle: businessCycle\n        ? businessCycle?.selectedCycle?.start_date +\n          '-' +\n          businessCycle?.selectedCycle?.end_date\n        : '',\n      start_date: businessCycle ? businessCycle?.selectedCycle?.start_date : '',\n      end_date: businessCycle ? businessCycle?.selectedCycle?.end_date : '',\n      selected_cycle_arr: businessCycle\n        ? businessCycle?.selectedCycle?.selected_cycle_arr\n        : [],\n    };\n  }\n\n  saveProgram(payload: any) {\n    const headers = new HttpHeaders()\n      .set('token', this.authService.getAuthorizationToken())\n      .set('x-business-cycle', JSON.stringify(this.getBusinessCycle()));\n    return this.http.post<any[]>(\n      this.env.programEndpoint + '/category/?isBusinessCycle=true&serviceType=1',\n      payload,\n      { headers }\n    );\n  }\n\n  buildPayload(formData: any, instance: any) {\n    const form = formData?.value;\n    const option = instance.additionalOption;\n    const type = [\"others\", \"regulations\", \"standards\", \"internal_controls\"]\n    return {\n      \"name\": form?.program_name.trim() ?? '',\n      \"type\": type[form?.program_type] ?? \"others\",\n      \"description\": form?.program_objective ?? \"\",\n      \"owners\": {\n        \"admins\": {  // Owners\n          \"users\": this.listToId(form?.program_owners, 'uid') ?? [],\n          userGroups:this.listToId(form?.program_owners_group, 'ugid') ?? []\n        },\n        \"managers\": {  // Collaborators\n          \"users\": this.listToId(form?.collaborators, 'uid') ?? [],\n          userGroups: this.listToId(form?.collaborators_group, 'ugid') ?? []\n        \n        }\n      },\n      \"customFields\": option?.CUSTOM_FIELDS ? form?.custom_fields ?? [] : [],\n    }\n  }\n  generateAssessment(assessment: any) {\n    if (assessment && assessment?.length) {\n      return assessment.map((cat: any) => {\n        return {\n          ...cat,\n          assessmentIds: cat.assessmentIds?.map((assess: any) => assess.id),\n        };\n      });\n    } else {\n      return [];\n    }\n  }\n  getFramework(input: any) {\n    if (input) {\n      return [\n        {\n          _id: input?._id,\n          framework_name: input?.name,\n          type: input?.type,\n          in_scope: input?.in_scope\n            ? this.listToId(input?.in_scope, '_id')\n            : [],\n          out_scope: input?.out_scope\n            ? this.listToId(input?.out_scope, '_id')\n            : [],\n        },\n      ];\n    } else {\n      return [];\n    }\n  }\n\n  listToId(list: any, key: string) {\n    if (list && list?.length) {\n      return list.map((ele: any) => ele[key]).filter((ele: any) => ele)\n      .map((ele: any) => ele);\n    } else {\n      return [];\n    }\n  }\n\n  /**\n   *\n   * @param id : program object id\n   * @returns\n   */\n  getProgram(id: any) {\n    const headers = new HttpHeaders()\n      .set('token', this.authService.getAuthorizationToken())\n      .set('x-business-cycle', JSON.stringify(this.getBusinessCycle()));\n    return this.http.get<any[]>(\n      this.env?.programEndpoint +\n        '/' +\n        id +\n        '?isBusinessCycle=true&bypass-businessCycle=true',\n      { headers }\n    );\n  }\n\n  /**\n   *\n   * @param payload payload which need to be updated\n   * @param id program object id\n   * @returns\n   */\n  updateProgram(payload: any, id: string) {\n    const headers = new HttpHeaders()\n      .set('token', this.authService.getAuthorizationToken())\n      .set('x-business-cycle', JSON.stringify(this.getBusinessCycle()));\n    return this.http.post<any[]>(\n      this.env.programEndpoint +\n        '/category/editCategory/' +\n        id +\n        '?isBusinessCycle=true&bypass-businessCycle=true&serviceType=1',\n      payload,\n      { headers }\n    );\n  }\n\n  getMemeberByIds(ids: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<any[]>(\n        this.env.organizationPost +\n          'memberDetailsbyIds&bypass-businessCycle=true',\n        { member_id: ids },\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  getMemeberByUIds(ids: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<any[]>(\n        this.env.organizationPost +\n          'memberDetailsbyIdsSails&bypass-businessCycle=true',\n        { member_id: ids },\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n\n  getMemberByGroups(ids: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post<any[]>(\n        this.env.organizationPost +\n          'groupDetailsbyIds&bypass-businessCycle=true',\n        { group_ids: ids },\n        { headers }\n      )\n      .pipe(retry(2));\n  }\n}","export class DialogConfig<D = any> {\n  data?: D;\n  position?: any;\n  background?: any;\n}\n","import { Observable, Subject } from 'rxjs';\n\nexport class DialogRef {\n  private readonly afterDialogClosed = new Subject<any>();\n  afterClosed: Observable<any> = this.afterDialogClosed.asObservable();\n  constructor() {}\n\n  close(result?: any) {\n    this.afterDialogClosed.next(result);\n  }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n  selector: 'app-single-line-editor',\n  templateUrl: './single-line-editor.component.html',\n  styleUrls: ['./single-line-editor.component.less'],\n  providers: [\n    { provide: NG_VALUE_ACCESSOR, useExisting: SingleLineEditorComponent, multi: true },\n  ]\n})\nexport class SingleLineEditorComponent implements OnInit, ControlValueAccessor {\n  @Input() placeholder: string = 'placeholder';\n  @Input() editorMode = 'single';\n  @Input() label = true;\n\n  @Input() id!: string;\n  containerValue !:any;\n  public sel: any;\n  public selectFunction: any;\n  public bold!: boolean;\n  public italic!: boolean;\n  public underline!: boolean;\n  showEditorControls  !:boolean;\n  activeEditor !:boolean;\n  public oldRange: any;\n  controls !:boolean;\n  constructor() { }\n\n  ngOnInit(): void {\n    this.selectFunction = () => {\n      this.bold = document.queryCommandState('bold');\n      this.italic = document.queryCommandState('italic');\n      this.underline = document.queryCommandState('underline');\n    };\n    document.addEventListener('selectionchange', this.selectFunction, false);\n    this.sel = window.getSelection();\n    if (!this.id) {\n      this.id = this.generateUID();\n    }\n  }\n\n\n  generateUID() {\n    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n      const r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n      return v.toString(16);\n    });\n  }\n  onChange = (value: any) => { };\n  onTouched = () => { };\n  setValue() {\n    const x = document.getElementById(this.id)?.innerHTML;\n    \n    if (x === '<br>') {\n      const z:any = document.getElementById(this.id);\n      z.innerHTML = '';\n    }\n    this.onChange(x);\n  }\n\n  writeValue(value: string) {\n    this.containerValue = value;\n    const containerRef = document.getElementById(this.id);\n    if (containerRef) {\n      setTimeout((val:any) => {\n        \n        containerRef.innerHTML = value;\n        this.setValue();\n      }, 150);\n    }\n\n\n  }\n\n  registerOnChange(onChange: (value: string) => void) {\n    this.onChange = onChange;\n  }\n\n  registerOnTouched() { }\n\n  show(e?: any) {\n    this.showEditorControls = !this.showEditorControls;\n    this.activeEditor = !this.activeEditor;\n    document.getElementById(this.id)?.focus();\n    this.setCaretToEnd();\n    \n  }\n  insertBold(): void {\n    document.getElementById(this.id)?.focus();\n    document.execCommand('bold', false, '');\n    this.bold = !this.bold;\n  }\n  insertItalic(): void {\n    document.getElementById(this.id)?.focus();\n    document.execCommand('italic', false, '');\n    this.italic = !this.italic;\n  }\n  insertUnderLine(): void {\n    document.getElementById(this.id)?.focus();\n    document.execCommand('underline', false, '');\n    this.underline = !this.underline;\n  }\n  onblur(): void {\n    this.oldRange = window?.getSelection()?.getRangeAt(0).cloneRange(); // to store the range when element is blurred\n  }\n  setCaretToEnd() {\n    window.getSelection()?.removeAllRanges();\n    window.getSelection()?.addRange(this.oldRange);\n  }\n  showControls() {\n    if (this.controls !== false) {\n      this.controls = false;\n    }\n    if (this.activeEditor !== false) {\n      this.activeEditor = false;\n    }\n  }\n\n  onPaste(event: ClipboardEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n    const pastedText = event?.clipboardData?.getData('text/plain');\n    document.execCommand('insertHTML', false, pastedText);\n    const range = this.sel.getRangeAt(0);\n    const position = range.getBoundingClientRect();\n    const d:any = document.getElementById(this.id); \n    d.scrollLeft = position.x;\n  }\n}\n","\n\n<div class=\"single-line-editor vx-mb-5\">\n    <div class=\"label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\" \n    [class.multiline]=\"editorMode == 'multiline'\" \n    *ngIf=\"editorMode == 'multiline' && label == true\">\n    {{placeholder}}</div>\n\n    <div class=\"editable-box vx-fs-16 vx-paragraph-txt vx-lh-6 vx-pt-1 vx-pb-1\"\n    [attr.placeholder]=\"placeholder\" [class.multiline]=\"editorMode == 'multiline'\" contenteditable=\"true\" id=\"{{id}}\" (blur)='onblur()' appAutoFocus (paste)=\"onPaste($event)\" (input)=\"setValue()\"></div>\n    <div class=\"action vx-fs-12 vx-paragraph-txt\" (click)=\"show()\">Aa</div>\n    <div class=\"editor-option\" *ngIf=\"showEditorControls\">\n        <ul class=\"vx-d-flex vx-align-center vx-m-0\">\n            <li><button class=\"vx-fs-13 vx-txt-white vx-p-0 vx-d-flex vx-align-center vx-justify-center\" [class.active]=\"bold\" (click)=\"insertBold()\">B</button></li>\n            <li><button class=\"vx-fs-13 vx-txt-white vx-p-0 vx-d-flex vx-align-center vx-justify-center\"[class.active]=\"italic\" (click)=\"insertItalic()\"><em>I</em></button></li>\n            <li><button class=\"vx-fs-11 vx-txt-white vx-p-0 vx-d-flex vx-align-center vx-justify-center\" [class.active]=\"underline\" (click)=\"insertUnderLine()\"><i class=\"icons\">&#xeb0a;</i></button></li>\n        </ul>\n    </div>\n</div>\n<div class=\"overlay\" *ngIf=\"showEditorControls\" (click)=\"showControls(); show($event)\"></div>","import { Component, OnInit } from '@angular/core';\nimport { DialogConfig } from '../../../../ui-kit/dialog/dialog-config';\nimport { DialogRef } from '../../../../ui-kit/dialog/dialog-ref';\n\nimport { EditorConfig } from 'vcomply-editor';\nimport { EditorService } from '../../services/editor.service';\n\n@Component({\n  selector: 'app-add-page-details',\n  templateUrl: './add-page-details.component.html',\n  styleUrls: ['./add-page-details.component.less'],\n})\nexport class AddPageDetailsComponent implements OnInit {\n  pageDesc!: string;\n  public fd !:any;\n  constructor(private config: DialogConfig, private dialogRef:DialogRef) { \n    this.fd = config.data?.ref;\n  }\n\n  pageDetails: any = {pageName: '', pageNumber: 0, pageDescription: ''};\n  tempPageDetails: any;\n\n  ngOnInit(): void {\n    this.tempPageDetails = JSON.stringify(this.config.data);\n    this.pageDetails.pageNumber = this.config.data.page;\n    this.pageDetails.pageName =  this.config.data.pageDetails.pageName;\n    this.pageDetails.pageDescription = this.config.data.pageDetails.pageDescription; \n    this.pageDesc = this.config.data.pageDetails.pageDescription; \n    this.populatePageDetailsList();\n  }\n\n  savePageDetails() {\n    this.pageDetails.pageName = this.extractContent(this.pageDetails.pageName).trim().length > 0 ?this.pageDetails.pageName:'';\n    this.pageDetails.pageDescription =  this.extractContent(this.pageDetails.pageDescription).trim().length > 0 ?this.pageDetails.pageDescription:'';\n    \n    this.fd.currentPageDetails = {...this.pageDetails};\n    this.populatePageDetailsList();\n    if (this.pageDetails.pageName.trim().length > 0 || this.pageDetails.pageDescription.trim().length > 0 ) {\n      \n      this.fd.showAddPageOption = false;\n      this.fd.showPageDetails = true;\n    } else {\n      this.fd.showAddPageOption = true;\n      this.fd.showPageDetails = false;\n    }\n    this.dialogRef.close('SAVE');\n  }\n\n  extractContent(s:any) {\n    var span = document.createElement('span');\n    span.innerHTML = s;\n    return span.textContent || span.innerText;\n  };\n\n  populatePageDetailsList() {\n    let pagePresent = false;\n    this.fd.formsPage.pageDetailsList.forEach((pageDetails:any) => {\n      if (this.pageDetails.pageNumber === pageDetails.pageNumber) {\n        pageDetails.pageName = this.pageDetails.pageName;\n        pageDetails.pageDescription = this.pageDetails.pageDescription;\n        pagePresent = true;\n      }\n    });\n    if (!pagePresent) {\n      this.fd.formsPage.pageDetailsList.push({...this.pageDetails});\n    }\n    \n  }\n\n  cancelPageDetails() {\n    //this.cancel.emit();\n    this.pageDetails = JSON.parse(this.tempPageDetails)?.pageDetails\n    this.fd.currentPageDetails = JSON.parse(this.tempPageDetails)?.pageDetails;\n    this.populatePageDetailsList();\n    this.dialogRef.close('CANCEL');\n  }\n  description: EditorConfig = {\n    mode: 'prime',\n    placeholder: 'Add description',\n  };\n}\n\n\n\n\n","<div class=\"form-dialog\">\n    <div class=\"form-dialog-heading vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-mb-5\">\n        <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">Add Page Details</div>\n        <button (click)=\"cancelPageDetails()\" class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center\"><i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i></button>\n    </div>\n\n    <div class=\"form-dialog-mid vx-pb-5\">\n        <div class=\"from-group vx-mt-1 vx-mb-4\">\n            <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">PAGE TITLE</label>\n            <!-- <div class=\"input-field\">\n                <input type=\"text\" placeholder=\"Page title\" [class.error]=\"false\" />\n                <button class=\"action vx-fs-13 vx-label-txt vx-p-0 vx-m-0 vx-ad-flex vx-align-center vx-justify-center\" (click)=\"clickEditor()\">Aa</button>\n                <div class=\"editor-option\" *ngIf=\"showEditor\">\n                    <ul class=\"vx-d-flex vx-align-center vx-m-0\">\n                        <li><button class=\"vx-fs-13 vx-txt-white vx-p-0 vx-d-flex vx-align-center vx-justify-center\" [class.active]=\"true\">B</button></li>\n                        <li><button class=\"vx-fs-13 vx-txt-white vx-p-0 vx-d-flex vx-align-center vx-justify-center\" [class.active]=\"false\"><em>I</em></button></li>\n                        <li><button class=\"vx-fs-11 vx-txt-white vx-p-0 vx-d-flex vx-align-center vx-justify-center\" [class.active]=\"false\"><i class=\"icons\">&#xeb0a;</i></button></li>\n                    </ul>\n                </div>\n            </div> -->\n            <app-single-line-editor [placeholder]=\"'Page title'\" [label]=\"false\" [editorMode]=\"'multiline'\" [(ngModel)]=\"pageDetails.pageName\"></app-single-line-editor>\n            <!-- <div class=\"overlay\" *ngIf=\"showEditor\" ></div> -->\n        </div>\n        <div class=\"from-group vx-mt-1 vx-mb-4\">\n            <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">PAGE DESCRIPTION</label>\n            <vcomply-editor [editorConfig]=\"description\" [(ngModel)]='pageDetails.pageDescription'></vcomply-editor>\n        </div>\n    </div>\n    <div class=\"form-dialog-btn vx-mt-4 vx-p-3 vx-d-flex vx-align-center vx-justify-end\">\n        <button class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-m-0 vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"cancelPageDetails()\">CANCEL</button>\n        <button class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-m-0 vx-ml-1 vx-p-0 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\" (click)=\"savePageDetails()\">SAVE</button>\n    </div>\n</div>","\nimport { Injectable, Type } from '@angular/core';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ResultCriteriaService {\n\n  constructor() { }\n\n  calculateMaxScore(questions:any){\n    let maxScore = 0;\n    const criteriaEligibleTypes = ['multiple-choice', 'checkbox', 'dropdown'];\n    const scorableQuestions = questions.elements.filter((question:any) => {\n       return criteriaEligibleTypes.includes(question.type);\n  });\n    \n    scorableQuestions.forEach((element:any) => {\n       if (['multiple-choice', 'dropdown'].includes(element.type)){\n          let score = Math.max.apply(Math, element.choices.map((o:any) => o.score !== undefined ? o.score : 1 ));\n          let weightage = 100;\n          if (questions?.settings?.weightageEnabled){\n            element.weightage === undefined ? weightage = 100 : weightage = element.weightage;\n          }\n          score = (weightage / 100) * score;\n          maxScore = maxScore + score;\n\n  }\n  else if (['checkbox'].includes(element.type)){\n    let scoreCheck = 0;\n    element.choices.forEach((choice:any) => {\n      choice.score === undefined ? choice.score = 1 : choice.score;\n      if (!choice.isFailed){\n        scoreCheck = scoreCheck + choice.score;\n       }\n    });\n    let weightage = 100;\n    if (questions?.settings?.weightageEnabled){\n      element.weightage === undefined ? weightage = 100 : weightage = element.weightage;\n    }\n    scoreCheck = (weightage / 100) * scoreCheck;\n    maxScore = maxScore + scoreCheck;\n\n  }\n\n  });\n    \n    return maxScore;\n}\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { cloneDeep } from 'lodash';\n\n@Component({\n  selector: 'app-setting-anonymous',\n  templateUrl: './setting-anonymous.component.html',\n  styleUrls: ['./setting-anonymous.component.less']\n})\nexport class SettingAnonymousComponent implements OnInit {\n  setting!:any;\n  localSetting !:any;\n  @Input('setting') set settingData(value:any){\n   this.setting = cloneDeep(value) ;\n   this.localSetting = cloneDeep(value) ;\n  }\n\n  @Output() save = new EventEmitter<any>();\n  @Output() cancelEvt = new EventEmitter<any>();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  manipulateDefault(mode:any){\n    if (mode === 'INCREASE' && this.setting.defaultScore >= 0){\n      this.setting.defaultScore =  this.setting.defaultScore + 1;\n    } else if (mode === 'DECREASE' && this.setting.defaultScore > 1 ){\n      this.setting.defaultScore =  this.setting.defaultScore - 1;\n    }\n  }\n  manipulateNegativeScore(mode:any){\n    if (mode === 'INCREASE' && this.setting.negativeScore >= 0){\n      this.setting.negativeScore =  this.setting.negativeScore + 1;\n    } else if (mode === 'DECREASE' && this.setting.negativeScore >= 1 ){\n      this.setting.negativeScore =  this.setting.negativeScore - 1;\n    }\n  }\n\n  overRideConfirm = false;\n  confirmOverride(evt?:any){\n\n   this.overRideConfirm =  !this.overRideConfirm;\n  }\n  saveSetting(){ \n    this.save.emit(this.setting);\n    this.overRideConfirm = false;\n  }\n  cancel(){\n    this.cancelEvt.emit(this.localSetting);\n    this.overRideConfirm = false;\n  }\n}\n","<div class=\"item-body vx-pt-3 vx-pb-3\" *ngIf=\"true\">\n    <!-- <app-cs-switch><div class=\"vx-fs-13 vx-paragraph-txt\">Enable assessment mode for this form</div></app-cs-switch> -->\n    <div class=\"mode-list vx-mt-3\">\n        <div class=\"mode-item vx-d-flex vx-align-center vx-justify-between vx-mt-2\" [class.done]=\"false\">\n            <div class=\"heading vx-fs-13 vx-fw-500 vx-label-txt vx-pl-3\">Set default scores for all questions</div>\n            <div *ngIf=\"true\" class=\"score-area vx-d-flex vx-align-center vx-pl-3 vx-pr-1\">\n                <div class=\"vx-fs-12 vx-paragraph-txt vx-mr-2\">Score</div>\n                <div class=\"input-area vx-d-flex vx-align-center\">\n                    <button (click)=\"manipulateDefault('DECREASE')\" class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">-</button>\n                    <input type=\"number\" [(ngModel)]=\"setting.defaultScore\">\n                    <button (click)=\"manipulateDefault('INCREASE')\" class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                </div>\n            </div>\n            <div *ngIf=\"false\" class=\"score vx-pl-2 vx-pr-2 vx-lh-6\">\n                <span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-1\">SCORE:</span>\n                <span class=\"vx-fs-13 vx-txt-blue\">10</span>\n            </div>\n        </div>\n        <div class=\"mode-item vx-mt-2\" [class.done]=\"false\">\n            <div class=\"vx-d-flex vx-align-center vx-justify-between\">\n                <div class=\"heading vx-fs-13 vx-fw-500 vx-label-txt vx-pl-3\">Select a criterion for negative scores</div>\n                <div *ngIf=\"true\" class=\"score-area vx-d-flex vx-align-center vx-pl-3 vx-pr-1\">\n                    <div class=\"vx-fs-12 vx-paragraph-txt vx-mr-2\">Score</div>\n                    <div class=\"input-area vx-d-flex vx-align-center\">\n                        <button  (click)=\"manipulateNegativeScore('DECREASE')\" class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">-</button>\n                        <input type=\"number\" [(ngModel)]=\"setting.negativeScore\">\n                        <button (click)=\"manipulateNegativeScore('INCREASE')\" class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                    </div>\n                </div>\n                <div *ngIf=\"false\" class=\"score vx-pl-2 vx-pr-2 vx-lh-6\">\n                    <span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-1\">SCORE:</span>\n                    <span class=\"vx-fs-13 vx-txt-blue\">2</span>\n                </div>\n            </div>\n            <div class=\"criteria-list vx-pt-3 vx-pl-3\">\n                <app-cs-radio [name]=\"'failedCriteriaSettings'\" [checked]=\"setting.negativeScoreCriteria === 'FAILED'\" (checkedEvent)=\"setting.negativeScoreCriteria = 'FAILED'\"><div class=\"name vx-fs-12 vx-paragraph-txt\">Failed Responses</div></app-cs-radio>\n                <app-cs-radio [name]=\"'failedCriteriaSettings'\"  [checked]=\"setting.negativeScoreCriteria === 'SKIPPED'\" (checkedEvent)=\"setting.negativeScoreCriteria = 'SKIPPED'\"><div class=\"name vx-fs-12 vx-paragraph-txt\">Skipped Questions</div></app-cs-radio>\n                <app-cs-radio [name]=\"'failedCriteriaSettings'\"  [checked]=\"setting.negativeScoreCriteria === 'FAILED_SKIPPED'\" (checkedEvent)=\"setting.negativeScoreCriteria = 'FAILED_SKIPPED'\"><div class=\"name vx-fs-12 vx-paragraph-txt\">Skipped Questions & Failed Responses</div></app-cs-radio>\n            </div>\n        </div>\n        <div  class=\"mode-item vx-d-flex vx-align-center vx-justify-between vx-mt-2 vx-pl-3 vx-pr-3\">\n            <app-cs-switch [(ngValue)]=\"setting.weightageEnabled\"><div class=\"vx-fs-13 vx-label-txt\">Enabled weightage for each question</div></app-cs-switch>\n        </div>\n        <div class=\"segment-bottom vx-d-flex vx-align-center vx-justify-end vx-p-2 vx-mt-4\" >\n            <button (click)=\"cancel()\" class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">CANCEL</button>\n            <button (click)=\"confirmOverride()\" class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">SAVE</button>\n        </div>\n        <div class=\"confirmation-massage\" *ngIf=\"overRideConfirm\">\n            <div class=\"confirmation-massage-top vx-d-flex vx-p-3\">\n                <i class=\"icons vx-fs-16 vx-txt-white vx-mr-2\">&#xe932;</i>\n                <span class=\"text vx-fs-12 vx-txt-white\">These settings will be updated for all the questions within this form. Scores that were added previously will be replaced with the new settings.</span>\n            </div>\n            <div class=\"confirmation-massage-bottom vx-d-flex vx-align-center vx-justify-between vx-p-2\" *ngIf=\"overRideConfirm\">\n                <div class=\"text vx-fs-13 vx-txt-white\">Are you sure you would like to proceed?</div>\n                <div class=\"vx-d-flex vx-align-center\">\n                    <button (click)=\"confirmOverride('NO')\" class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">NO</button>\n                    <button (click)=\"saveSetting()\" class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">YES</button>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { EditorConfig } from 'vcomply-editor';\n\n@Component({\n  selector: 'app-add-segment-popup',\n  templateUrl: './add-segment-popup.component.html',\n  styleUrls: ['./add-segment-popup.component.less']\n})\nexport class AddSegmentPopupComponent implements OnInit {\n\n  selectedColor = '#325cd3';\n  @Input() top!: string;\n  @Input() left!: string;\n  @Output() save = new EventEmitter<any>();\n  @Output() closeSegment = new EventEmitter<any>();\n  @Input() segmentCollection: any = [];\n  @Input() mode: any;\n  @Input() maxRange: any;\n  @Input() criteria: any = {\n    id: '',\n    segmentName: '',\n    segmentDescription: '',\n    toRange: 0,\n    fromRange: 0,\n    color: '#000000'\n  };\n  segmentError:any = []\n  constructor() { }\n\n  ngOnInit(): void {\n    this.criteria = { ...this.criteria };\n    \n   // this.segmentCollection = {...this.segmentCollection}\n\n  }\n\n  fromManager(mode:any) {\n    if (mode === '+') {\n      this.criteria.fromRange = this.criteria.fromRange + 1;\n    } else if (mode === '-') {\n      if (this.criteria.fromRange > 0) {\n        this.criteria.fromRange = this.criteria.fromRange - 1;\n      }\n    }\n  }\n\n  toManager(mode:any) {\n    if (mode === '+') {\n      this.criteria.toRange = this.criteria.toRange + 1;\n    } else if (mode === '-') {\n      if (this.criteria.toRange > 0) {\n        this.criteria.toRange = this.criteria.toRange - 1;\n      }\n    }\n  }\n  saveSegment(){\n    \n    if(this.validateSegment()){\n      this.save.emit({...this.criteria});\n    }\n\n  }\n  closeResult() {\n   // this.closeSegment.emit();\n  }\n\n\n  validateSegment(){\n    let fromRange = this.criteria.fromRange;\n    let toRange = this.criteria.toRange;\n    this.segmentError = []\n    let status\n    if(fromRange > this.maxRange  || toRange > this.maxRange){\n      this.segmentError.push({type:'INVALID_RANGE',message:'Please enter a valid range for this segment.'})\n      return false;\n    }\n    if(this.criteria.segmentName.trim().length === 0){\n      this.segmentError.push({type:'NAME_MISSING',message:'Please enter a name for this segment.'})\n      return false;\n    } else if(fromRange >= toRange){\n      \n      this.segmentError.push({type:'RANGE_REVERSE',message:'Please enter a valid range for this segment.'})\n      return false;\n    } else if(this.segmentCollection.length > 0) {\n      status = this.segmentCollection.some((segment:any) =>{\n        if(this.mode === 'EDIT'){\n          if(segment.id !== this.criteria.id){\n            return ((fromRange >= segment['fromRange'] && fromRange <= segment['toRange']) || (toRange >= segment['fromRange'] && toRange <= segment['toRange'] ))\n          }else{return false;}\n\n        }else{\n          return ((fromRange >= segment['fromRange'] && fromRange <= segment['toRange']) || (toRange >= segment['fromRange'] && toRange <= segment['toRange'] ))\n        }\n\n      })\n    }else{\n      return true;\n    }\n      if(status === true){\n        this.segmentError.push({type:'INVALID_RANGE',message:'This score range already exists. Please select different values.'})\n        return false;\n      } else {\n        return true;\n      }\n    }\n\n  description: EditorConfig = {\n    mode: 'prime',\n    placeholder: 'Enter description for this segment',\n  };\n\n}\n","<div class=\"add-segment-popup vx-p-5 vx-pb-0\" [class.error]=\"segmentError.length > 0\">\n    <div class=\"form-item vx-mb-4\">\n        <div class=\"label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SEGMENT NAME <span class=\"vx-fs-16 vx-fw-400 vx-txt-red\">*</span></div>\n        <input type=\"text\" placeholder=\"Enter Segment Name\" [(ngModel)]=\"criteria.segmentName\">\n        <div class=\"action-color vx-d-flex vx-align-center vx-justify-center\">\n            <input type=\"color\" [(ngModel)]=\"criteria.color\" [ngModelOptions]=\"{standalone: true}\">\n            <i class=\"icons vx-fs-24\" [style.color]='criteria.color'>&#xeb01;</i>\n        </div>\n    </div>\n    <div class=\"form-item vx-mb-4\">\n        <div class=\"label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SEGMENT DESCRIPTION</div>\n        <vcomply-editor [editorConfig]=\"description\" [(ngModel)]=\"criteria.segmentDescription\"></vcomply-editor>\n    </div>\n    <div class=\"form-item vx-mb-4\">\n        <div class=\"label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SET SCORE RANGE <span class=\"vx-fs-16 vx-fw-400 vx-txt-red\">*</span></div>\n        <div class=\"vx-d-flex vx-align-center vx-justify-between\">\n            <div class=\"score-field vx-d-flex vx-align-center vx-justify-between\">\n                <div class=\"name vx-fs-12 vx-paragraph-txt vx-pl-3\">From</div>\n                <div class=\"input-area vx-d-flex vx-align-center vx-pr-1\">\n                    <button (click)=\"fromManager('-')\" class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">-</button>\n                    <input type=\"number\" [(ngModel)]=\"criteria.fromRange\" type=\"number\">\n                    <button (click)=\"fromManager('+')\" class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                </div>\n            </div>\n            <div class=\"score-field vx-d-flex vx-align-center vx-justify-between\">\n                <div class=\"name vx-fs-12 vx-paragraph-txt vx-pl-3\">To</div>\n                <div class=\"input-area vx-d-flex vx-align-center vx-pr-1\">\n                    <button (click)=\"toManager('-')\" class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">-</button>\n                    <input [(ngModel)]=\"criteria.toRange\" type=\"number\">\n                    <button (click)=\"toManager('+')\" class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class=\"segment-popup-bottom vx-d-flex vx-align-center vx-justify-end vx-p-3 vx-pl-5 vx-pr-5\" *ngIf=\"segmentError.length === 0\">\n        <button (click)=\"saveSegment()\" class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">SAVE</button>\n    </div>\n    <div class=\"segment-popup-bottom error vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-pl-5 vx-pr-5\" *ngIf=\"segmentError.length > 0\">\n        <div class=\"text vx-fs-12 vx-txt-white\">{{segmentError[0].message}}</div>\n        <button (click)=\"saveSegment()\" class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">SAVE</button>\n    </div>\n</div>","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { EditorConfig } from 'vcomply-editor';\nimport { EditorService } from '../../services/editor.service';\nimport { ResultCriteriaService } from '../../services/result-criteria.service';\nimport { nanoid } from 'nanoid';\nimport { cloneDeep } from 'lodash';\n@Component({\n  selector: 'app-setting-response-segment',\n  templateUrl: './setting-response-segment.component.html',\n  styleUrls: ['./setting-response-segment.component.less']\n})\nexport class SettingResponseSegmentComponent implements OnInit {\n\n  // constructor() { }\n\n  // ngOnInit(): void {\n  // }\n  description: EditorConfig = {\n    mode: 'prime',\n    placeholder: 'Enter Segment criteria description',\n  };\n  hideSegmentPopup !:boolean;\n  editSegmentPopup !:boolean;\n  editSegment(){}\n  closeSegmentPopup(){}\n  openSegmentPopup(){}\n  setting!:any;\n  localSetting !:any;\n  @Input('setting') set settingData(value:any){\n   this.setting = value ;\n   this.localSetting = cloneDeep(value) ;\n  }\n  @Output() save = new EventEmitter<any>();\n\n  constructor(private el: ElementRef, private criteriaService: ResultCriteriaService) { }\n  showResultPopup = false;\n  showResultEditPopup = false;\n  popoverLeft: any;\n  popoverTop: any;\n  mode: any;\n  editIndex !: number;\n  selectedSegment: any = {\n    id: nanoid(),\n    segmentName: '',\n    segmentDescription: '',\n    toRange: 0,\n    fromRange: 0,\n    color: '#000000'\n  };\n  @ViewChild('button') button !:any;\n  @ViewChild('buttonEdit') buttonEdit !:any;\n  @Output() closed = new EventEmitter<any>();\n  @Output() cancelEvt = new EventEmitter<any>(); \n  @Input() formJSON !: string;\n  @Input() fd !:any;\n  resultCriteria = [\n  ];\n  entityJSON !:any;\n  maxRange = 10;\n  errorArray:any = [];\n  ngOnInit(): void {\n    this.maxRange = this.criteriaService.calculateMaxScore(this.fd.formsPage);\n  }\n\n  addNewSegment() {\n    this.showResultEditPopup = false;\n    this.mode = 'ADD';\n    this.selectedSegment = {\n      id: nanoid(14),\n      segmentName: '',\n      segmentDescription: '',\n      fromRange: 0,\n      toRange: this.maxRange,\n      color: '#000000'\n    };\n    this.clickResultPopup();\n  }\n  closePopUp() {\n    this.closed.emit();\n  }\n\n  closeSegment() {\n    this.showResultPopup = false;\n    this. showResultEditPopup = false;\n    this.editIndex = -10;\n  }\n\n  clickResultPopup() {\n    this.editIndex = -10;\n    const popover = this.button.nativeElement.getBoundingClientRect();\n    let left = 0;\n    let top = 0;\n    top = popover.top;\n    left = popover.left;\n    this.showResultPopup = !this.showResultPopup;\n    this.showResultEditPopup = false;\n    this.popoverLeft = left + 10;\n    this.popoverTop = top - 350;\n  }\n  editResultPopup(event:any, segment:any, i:any) {\n    this.editIndex = i;\n    this.mode = 'EDIT';\n    this.selectedSegment = segment;\n    const popover = event.target.parentElement.parentElement.parentElement.parentElement.getBoundingClientRect();\n    let left = 0;\n    let top = 0;\n    top = popover.top;\n    left = popover.left;\n    this.showResultEditPopup = true;\n    this.showResultPopup = false;\n    this.popoverLeft = left + 10;\n    this.popoverTop = top - 350;\n  }\n  saveCriteria(evt:any) {\n    if (this.mode === 'ADD') {\n      this.showResultPopup = !this.showResultPopup;\n      this.setting.segmentData.segments.push(evt);\n    }\n    else if (this.mode === 'EDIT') {\n      this.showResultEditPopup = !this.showResultEditPopup;\n      const index = this.setting.segmentData.segments.findIndex((x:any) => x.id === evt.id);\n      this.setting.segmentData.segments[index] = evt;\n    }\n  }\n\n  deleteSegment(index:any) {\n    this.setting.segmentData.segments.splice(index, 1);\n  }\n  saveSetting():any{\n    this.editIndex = -10;\n    this.showResultEditPopup = false;\n    this.showResultPopup = false;\n    this.errorArray = [];\n    if (this.setting.segmentData.title.trim().length === 0 ){\n      this.errorArray.push({type: 'SEGMENT_NAME_MISSING', message: 'Please enter the segment criteria name.'});\n      return false;\n    } else if (this.setting.segmentData.segments.length === 0){\n      this.errorArray.push({type: 'NO_SEGMENT_FOUND', message: 'Please add atleast one segment.'});\n      return false;\n    }\n      this.save.emit(this.setting);\n    \n   \n  }\n  discardEdit(index:any) {\n    this.editIndex = -10;\n    this.showResultEditPopup = false;\n  }\n  closeSegmentResult() {\n    this.editIndex = -10;\n    this.showResultEditPopup = false;\n    this.showResultPopup = false;\n  }\n  cancel(){\n    this.cancelEvt.emit(this.localSetting);\n\n  }\n\n}\n","<div class=\"item-body vx-pt-3 vx-pb-3\" [class.error]=\"errorArray.length > 0\" *ngIf=\"true\">\n    <!-- <app-cs-switch [value]=\"setting?.settingEnableText\" [(ngValue)]=\"setting.isEnabled\" ><div class=\"vx-fs-13 vx-paragraph-txt\">Configure Response Segments for this form</div></app-cs-switch> -->\n    <!-- *ngIf=\"setting.isEnabled\" -->\n     <div  class=\"segment-form vx-mt-4\">\n        <div class=\"form-item vx-mb-4\">\n            <div class=\"label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SEGMENT CRITERIA <span class=\"vx-fs-16 vx-fw-400 vx-txt-red\">*</span></div>\n            <input type=\"text\" placeholder=\"Enter Segment criteria\" [(ngModel)]=\"setting.segmentData.title\">\n        </div>\n        <div class=\"form-item vx-mb-4\">\n            <div class=\"label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SEGMENT CRITERIA DESCRIPTION</div>\n            <vcomply-editor [editorConfig]=\"description\"  [(ngModel)]=\"setting.segmentData.description\"></vcomply-editor>\n        </div>\n        <div class=\"form-item vx-mb-4\">\n            <div class=\"label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">MAXIMUM SCORE RANGE:</div>\n            <span class=\"score-label vx-fs-11 vx-fw-600 vx-paragraph-txt vx-pl-1 vx-pr-1 vx-lh-4\">0 - {{maxRange}}</span>\n        </div>\n        <div class=\"form-item vx-mb-4\" *ngIf=\"setting?.segmentData?.segments?.length > 0\">\n            <div class=\"label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">ASSOCIATED SEGMENTS:</div>\n            <div class=\"associated-list vx-mb-1\"  *ngFor=\"let segment of setting?.segmentData?.segments; let i = index\">\n                <div class=\"vx-d-flex vx-align-center vx-justify-between\"  *ngIf=\"!(showResultEditPopup && editIndex === i)\">\n                    <div class=\"left vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\">\n                        <div class=\"name vx-fs-12\"   [style.color]=\"segment?.color\" [appTooltip]=\"segment?.segmentName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{segment?.segmentName}}</div>\n                        <i *ngIf=\"segment?.segmentDescription\" class=\"icons info vx-fs-16 vx-txt-blue\" [appTooltip]=\"segment?.segmentDescription\" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe932;</i>\n                    </div>\n                    <div class=\"right\">\n                        <div class=\"score vx-align-center vx-pl-2 vx-pr-2\" [style.background]=\"segment?.color\">\n                            <span class=\"vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-mr-3\">RANGE:</span>\n                            <span class=\"vx-fs-11 vx-fw-600 vx-txt-white\">{{' '+segment?.fromRange}} - {{segment?.toRange}}</span>\n                        </div>\n                        <div class=\"action vx-align-center vx-justify-center vx-pl-2 vx-pr-2\">\n                            <button  *ngIf=\"!(showResultEditPopup && editIndex === i)\" (click)=\"editResultPopup($event,segment,i)\" class=\"vx-fs-14 vx-txt-blue vx-p-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"editSegment()\"><i class=\"icons\">&#xe9ba;</i></button>\n                            <button (click)=\"deleteSegment(i)\" class=\"vx-fs-14 vx-txt-blue vx-p-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe923;</i></button>\n                        </div>\n                    </div>\n                </div>\n                <button *ngIf=\"showResultEditPopup\" class=\"segment-close vx-fs-12 vx-fw-600 vx-txt-white vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"closeSegment()\"><i class=\"icons\">&#xe9ae;</i></button>\n                <div class=\"segment-popup\" *ngIf=\"showResultEditPopup\">\n                    <app-add-segment-popup [mode]=\"mode\" [criteria]=\"selectedSegment\"\n                    [segmentCollection]=\"setting?.segmentData?.segments\" (save)=\"saveCriteria($event)\"\n                    (closeSegment)=\"closeSegmentResult()\" [maxRange]=\"maxRange\"></app-add-segment-popup>\n                </div>\n                <div class=\"overlay\" *ngIf=\"showResultEditPopup\"></div>\n            </div>\n        </div>\n        <div class=\"form-item vx-mb-4\">\n            <button *ngIf=\"!showResultPopup\" #button (click)=\"addNewSegment()\" class=\"segment-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"openSegmentPopup()\"><i class=\"icons vx-fs-14 vx-fw-600 vx-mr-4 vx-lh-4\">&#xe915;</i> ADD SEGMENT</button>\n            <button *ngIf=\"showResultPopup\" (click)=\"closeSegment()\" class=\"segment-close vx-fs-12 vx-fw-600 vx-txt-white vx-p-0 vx-d-flex vx-align-center vx-justify-center\" ><i class=\"icons\">&#xe9ae;</i></button>\n            <div class=\"segment-popup\" *ngIf=\"showResultPopup\">\n                <app-add-segment-popup [mode]=\"mode\" [criteria]=\"selectedSegment\"\n                [segmentCollection]=\"setting?.segmentData?.segments\" (save)=\"saveCriteria($event)\"\n                (closeSegment)=\"closeSegmentResult()\" [maxRange]=\"maxRange\"></app-add-segment-popup>\n            </div>\n            <div class=\"overlay\" *ngIf=\"showResultPopup\"></div>\n        </div>\n        <div class=\"segment-bottom vx-d-flex vx-align-center vx-justify-end vx-p-2\" *ngIf=\"errorArray.length === 0\">\n            <button (click)=\"cancel()\" class=\"cancel-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">CANCEL</button>\n            <button (click)=\"saveSetting()\" class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">SAVE</button>\n        </div>\n        <div class=\"segment-bottom error vx-d-flex vx-align-center vx-justify-between vx-p-2\" *ngIf=\"errorArray.length > 0\">\n            <div class=\"text vx-fs-12 vx-txt-white\">{{errorArray[0]?.message}}</div>\n            <button (click)=\"saveSetting()\" class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">SAVE</button>\n        </div>\n    </div>\n</div>","import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from \"@angular/core\";\nimport { DialogConfig } from '../../../../ui-kit/dialog/dialog-config';\nimport { DialogRef } from '../../../../ui-kit/dialog/dialog-ref';\nimport { SnackBarService } from \"../../../../ui-kit/snack-bar/snack-bar.service\";\n\nimport { EditorConfig } from 'vcomply-editor';\nimport { EditorService } from \"../../services/editor.service\";\nimport { ResultCriteriaService } from \"../../services/result-criteria.service\";\n\n@Component({\n  selector: 'app-assessment-settings',\n  templateUrl: './assessment-settings.component.html',\n  styleUrls: ['./assessment-settings.component.less']\n})\nexport class AssessmentSettingsComponent implements OnInit {\n  // @ViewChild('scrolleffect', { static: false }) scrollElement!: ElementRef;\n  // showResponse = false;\n  // showMode = false;\n  // showSegment = false;\n  // hideSegmentPopup = false;\n  // editSegmentPopup = false;\n\n  // constructor() { }\n\n  // ngOnInit(): void {\n  // }\n\n  // clickResponse() {\n  //   this.showResponse = !this.showResponse;\n  // }\n\n  // clickMode() {\n  //   this.showMode = !this.showMode;\n  // }\n\n  // clickSegment() {\n  //   this.showSegment = !this.showSegment;\n  //   setTimeout (()=>{\n  //     this.scrollElement.nativeElement.scrollTop = this.scrollElement.nativeElement.scrollHeight;\n  //    },150)\n  // }\n\n  // editSegment() {\n  //   this.editSegmentPopup = !this.editSegmentPopup;\n  // }\n\n  // description: EditorConfig = {\n  //   mode: 'prime',\n  //   placeholder: 'Enter Segment criteria description',\n  // };\n\n  // openSegmentPopup() {\n  //   this.hideSegmentPopup = true;\n  // }\n\n  // closeSegmentPopup() {\n  //   this.hideSegmentPopup = false;\n  //   this.editSegmentPopup = false;\n  // }\n  showSegment!:any;\n  hideSegmentPopup !:any;\n  editSegmentPopup !:any;\n  showResponse !:any;\n  closeSegmentPopup(){}\n  openSegmentPopup(){}\n  editSegment(){}\n  clickSegment(){}\n  clickMode(){}\n  clickResponse(){}\n  showMode !:any;\n  description: EditorConfig = {\n      mode: 'prime',\n      placeholder: 'Enter Segment criteria description',\n    };\n  @Output() action = new EventEmitter<any>();\n  forAnimation = false;\n  public editorService!:any;\n  constructor(public config: DialogConfig, public dialog: DialogRef,private criteriaService: ResultCriteriaService,private snackbar:SnackBarService) { }\n  settingsJSON = {\n    assessmentMode: true,\n    defaultScore: 0,\n    negativeScoreCriteria: 'FAILED',\n    negativeScore: 0,\n    weightageEnabled: false\n  };\n  settingsData!:any;\n  activeSettingType = 'none';\n  ngOnInit(): void {\n    this.editorService = this.config.data.service;\n        this.settingsData = this.config.data.settings;\n    this.forAnimation = true;\n    setTimeout(() => {\n      this.forAnimation = false;\n    }, 1000);\n\n    this.settingsJSON = this.config.data.settingsJSON;\n  }\n  closePanel(evt?:any) {\n    \n    this.dialog.close({});\n\n  }\n\n\n  manipulateDefault(mode:any){\n    if (mode === 'INCREASE' && this.settingsJSON.defaultScore >= 0){\n      this.settingsJSON.defaultScore =  this.settingsJSON.defaultScore + 1;\n    } else if (mode === 'DECREASE' && this.settingsJSON.defaultScore >= 1 ){\n      this.settingsJSON.defaultScore =  this.settingsJSON.defaultScore - 1;\n    }\n  }\n  manipulateNegativeScore(mode:any){\n    if (mode === 'INCREASE' && this.settingsJSON.negativeScore >= 0){\n      this.settingsJSON.negativeScore =  this.settingsJSON.negativeScore + 1;\n    } else if (mode === 'DECREASE' && this.settingsJSON.negativeScore >= 1 ){\n      this.settingsJSON.negativeScore =  this.settingsJSON.negativeScore - 1;\n    }\n  }\n\n  executeAction(evt:any){\n    this.dialog.close({\n      event: evt,\n      data: this.settingsJSON\n    });\n  }\n\n  setActiveType(type:any,index:any){\n    this.activeSettingType = type;\n    if(type === 'ASSESSMENT'){\n       this.settingsData.settingsElements[index].isEnabled = true \n    }\n  }\n\n  enableStateChanged(e:any, type:any) {\n    if (type === 'ANONYMOUS') {\n      this.editorService.formsPage.anonymousResponse = e;\n    }\n    if (type === 'RESPONSE_SEGMENT') {\n      this.editorService.formsPage.responseSegment['isEnabled'] = e;\n    }\n\n  }\n\n  save(evt:any, index:any) {\n    this.settingsData.settingsElements[index] = evt;\n\n\n    \n    if (evt.type === 'ASSESSMENT') {\n      this.editorService.formsPage.settings.assessmentMode = evt.isEnabled;\n      this.editorService.formsPage.settings.defaultScore = evt.defaultScore;\n      this.editorService.formsPage.settings.negativeScore = evt.negativeScore;\n      this.editorService.formsPage.settings.negativeScoreCriteria = evt.negativeScoreCriteria;\n      this.editorService.formsPage.settings.weightageEnabled = evt.weightageEnabled;\n      this.settingsData.settingsElements[index] = evt;\n      this.activeSettingType = 'none';\n\n      const assessmentEligibleQuestions = ['checkbox', 'multiple-choice', 'dropdown'];\n      this.editorService.formsPage.elements.forEach((question:any) => {\n        this.editorService.score.defaultScore = evt.defaultScore;\n        this.editorService.score.negativeScore = evt.negativeScore;\n        if (assessmentEligibleQuestions.includes(question.type)) {\n          question.choices.forEach((element:any) => {\n            if (!element.isFailed) {\n              element.score = evt.defaultScore;\n            }\n            if(element.isFailed && (evt.negativeScoreCriteria === 'FAILED' || evt.negativeScoreCriteria === 'FAILED_SKIPPED')){\n              element.score = evt.negativeScore;\n            }\n            if (evt.weightageEnabled) {\n              if (!question.weightage || question.weightage === undefined) {\n                question.weightage = 100;\n              }\n            }else{\n              question.weightage = 100;\n            }\n          });\n        }\n        this.editorService.formsPage.responseSegment['maxScore'] = this.criteriaService.calculateMaxScore(this.editorService.formsPage);\n      });\n      this.snackbar.show(\"The settings have been updated.\", 'success')\n      this.activeSettingType = '';\n      // } else {\n      //   this.fd.formsPage.settings.assessmentMode = false;\n      //   this.settingsData.settingsElements[index].defaultScore = this.fd.settings.defaultScore;\n      //   this.settingsData.settingsElements[index].negativeScore = this.fd.settings.negativeScore;\n      //   this.settingsData.settingsElements[index].weightageEnabled = this.fd.settings.weightageEnabled;\n      //   this.activeSettingType = 'none';\n      // this.settingsData.settingsElements[index].isEnabled = false;\n      // }\n      // });\n    }\n    if (evt.type === 'RESPONSE_SEGMENT') {\n      \n      \n      evt.isEnabled = true;\n      if (evt.isEnabled) {\n        evt.segmentData.isEnabled = true;\n        this.editorService.formsPage.responseSegment = evt.segmentData;\n        this.snackbar.show(\"The settings have been updated.\", 'success')\n        this.activeSettingType = '';\n      }\n    }\n  }\n\n  cancel(){\n    this.activeSettingType=''\n  }\n}\n","<div class=\"assessment-settings\">\n    <div class=\"assessment-settings-head vx-pl-4 vx-pr-4 vx-d-flex vx-align-center vx-justify-between\">\n        <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">{{settingsData?.panelTitle | titlecase }}</div>\n            <!-- <i class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\" [appTooltip]=\"'Assessment Settings info text here...'\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe932;</i> -->\n        </div>\n        <button (click)=\"closePanel()\" class=\"close vx-fs-16 vx-label-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'[Esc] to close'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons vx-d-flex\">&#xe93f;</i></button>\n    </div>\n    <div class=\"assessment-settings-body vx-pt-4 vx-pb-4\" #scrolleffect>\n        <!-- Skeleton loader -->\n        <ng-container *ngIf=\"false\">\n            <div class=\"settings-item skeleton-loader vx-mb-4 vx-pl-4 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let data of [1, 1, 1]\">\n                <div class=\"loader\"></div>\n            </div>\n        </ng-container>\n        <!-- Skeleton loader -->\n        <ng-container *ngFor=\"let setting of settingsData?.settingsElements;let i = index\">\n            <!-- <div *ngIf=\"setting.isVisible === true\"  class=\"settings-item vx-mb-4 vx-pl-4 vx-pr-4\" [class.active]=\"showResponse\" [class.done]=\"!showResponse\">\n                <div *ngIf=\"showResponse\" class=\"status edit vx-d-flex vx-align-center vx-justify-center\">\n                    <svg class=\"edit-loader\" viewBox=\"25 25 50 50\">\n                        <circle class=\"loader-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke=\"#1e5dd3\" stroke-width=\"3\" />\n                    </svg>\n                    <i class=\"icons vx-fs-14 vx-txt-blue\">&#xe90c;</i>\n                </div>\n                <div *ngIf=\"!showResponse\" class=\"status done vx-d-flex vx-align-center vx-justify-center\">\n                    <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n                    </svg>\n                </div>\n                <div class=\"item-head vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3\" (click)=\"clickResponse()\">\n                    <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">ANONYMIZE FORM RESPONSE</div>\n                    <i class=\"icons vx-fs-14 vx-paragraph-txt\">\n                        <ng-container *ngIf=\"!showResponse\">&#xe970;</ng-container>\n                        <ng-container *ngIf=\"showResponse\">&#xe9e8;</ng-container>\n                    </i>\n                </div>\n                <div class=\"item-body vx-pt-3 vx-pb-3\" *ngIf=\"showResponse\">\n                    <app-cs-switch><div class=\"vx-fs-13 vx-paragraph-txt\">Make responses to this form anonymous</div></app-cs-switch>\n                </div>\n            </div> -->\n            <div class=\"settings-item vx-mb-4 vx-pl-4 vx-pr-4\" [class.active]=\"showMode\" [class.done]=\"!showMode\" [class.error]=\"false\">\n                <div *ngIf=\"false\" class=\"status edit vx-d-flex vx-align-center vx-justify-center\">\n                    <svg class=\"edit-loader\" viewBox=\"25 25 50 50\">\n                        <circle class=\"loader-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke=\"#1e5dd3\" stroke-width=\"3\" />\n                    </svg>\n                    <i class=\"icons vx-fs-14 vx-txt-blue\">&#xe90c;</i>\n                </div>\n                <div  *ngIf=\"false\" class=\"status done vx-d-flex vx-align-center vx-justify-center\">\n                    <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n                    </svg>\n                </div>\n                <div class=\"item-head vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3\" (click)=\"setActiveType(setting.type,i)\">\n                    <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">  <span [innerHTML]=\"setting?.settingTitle\"></span> <i class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\" [appTooltip]=\"setting?.helpingText\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe932;</i></div>\n                    <i class=\"icons vx-fs-14 vx-paragraph-txt\" >\n                        <ng-container *ngIf=\"activeSettingType !== setting?.type\">&#xe970;</ng-container>\n                        <ng-container *ngIf=\"activeSettingType === setting?.type\" >&#xe9e8;</ng-container>\n                    </i>\n                </div>\n                <ng-container *ngIf=\"activeSettingType === setting?.type\">\n                    <app-setting-anonymous (cancelEvt)=\"cancel()\" *ngIf=\"setting?.type === 'ASSESSMENT' && setting.isEnabled === true\" [setting]=\"setting\" (save)=\"save($event,i)\"></app-setting-anonymous>\n                    <app-setting-response-segment (cancelEvt)=\"cancel()\"  *ngIf=\"setting?.type === 'RESPONSE_SEGMENT'\" [fd]=\"editorService\" [setting]=\"setting\" (save)=\"save($event,i)\"></app-setting-response-segment>\n                </ng-container>\n                \n                <!-- assessment mode here -->\n                <!-- <div class=\"item-body vx-pt-3 vx-pb-3\" *ngIf=\"true\">\n                    <app-cs-switch><div class=\"vx-fs-13 vx-paragraph-txt\">Enable assessment mode for this form</div></app-cs-switch>\n                    <div class=\"mode-list vx-mt-3\">\n                        <div class=\"mode-item vx-d-flex vx-align-center vx-justify-between vx-mt-2\" [class.done]=\"false\">\n                            <div class=\"heading vx-fs-13 vx-fw-500 vx-label-txt vx-pl-3\">Set default scores for all questions</div>\n                            <div *ngIf=\"true\" class=\"score-area vx-d-flex vx-align-center vx-pl-3 vx-pr-1\">\n                                <div class=\"vx-fs-12 vx-paragraph-txt vx-mr-2\">Score</div>\n                                <div class=\"input-area vx-d-flex vx-align-center\">\n                                    <button class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">-</button>\n                                    <input type=\"number\" value='10'>\n                                    <button class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                                </div>\n                            </div>\n                            <div *ngIf=\"false\" class=\"score vx-pl-2 vx-pr-2 vx-lh-6\">\n                                <span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-1\">SCORE:</span>\n                                <span class=\"vx-fs-13 vx-txt-blue\">10</span>\n                            </div>\n                        </div>\n                        <div class=\"mode-item vx-mt-2\" [class.done]=\"false\">\n                            <div class=\"vx-d-flex vx-align-center vx-justify-between\">\n                                <div class=\"heading vx-fs-13 vx-fw-500 vx-label-txt vx-pl-3\">Select a criterion for negative scores</div>\n                                <div *ngIf=\"true\" class=\"score-area vx-d-flex vx-align-center vx-pl-3 vx-pr-1\">\n                                    <div class=\"vx-fs-12 vx-paragraph-txt vx-mr-2\">Score</div>\n                                    <div class=\"input-area vx-d-flex vx-align-center\">\n                                        <button class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">-</button>\n                                        <input type=\"number\" value='0'>\n                                        <button class=\"vx-fs-14 vx-fw-500 vx-paragraph-txt vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                                    </div>\n                                </div>\n                                <div *ngIf=\"false\" class=\"score vx-pl-2 vx-pr-2 vx-lh-6\">\n                                    <span class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-1\">SCORE:</span>\n                                    <span class=\"vx-fs-13 vx-txt-blue\">2</span>\n                                </div>\n                            </div>\n                            <div class=\"criteria-list vx-pt-3 vx-pl-3\">\n                                <app-cs-radio><div class=\"name vx-fs-12 vx-paragraph-txt\">Failed Responses</div></app-cs-radio>\n                                <app-cs-radio><div class=\"name vx-fs-12 vx-paragraph-txt\">Skipped Questions</div></app-cs-radio>\n                                <app-cs-radio><div class=\"name vx-fs-12 vx-paragraph-txt\">Skipped Questions & Failed Responses</div></app-cs-radio>\n                            </div>\n                        </div>\n                        <div class=\"mode-item vx-d-flex vx-align-center vx-justify-between vx-mt-2 vx-pl-3 vx-pr-3\">\n                            <app-cs-switch><div class=\"vx-fs-13 vx-label-txt\">Enabled weightage for each question</div></app-cs-switch>\n                        </div>\n                    </div>\n                </div> -->\n            </div>\n           \n        </ng-container>\n    </div>\n</div>","import { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { retry } from 'rxjs/operators';\nimport { Configurations } from '../../../configurations';\n// import { environment } from 'src/environments/environment';\n@Injectable({\n  providedIn: 'root'\n})\nexport class EditorService {\n   env !:any;\n  constructor(private http: HttpClient,@Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n  currentPageDetails: any = { pageName: '', pageNumber: 1, pageDescription: '' };\n  prefixForQuestionName = 'Question_';\n  public activeQuestionIndex = new BehaviorSubject<number>(-5);\n  activeQuestionStream$ = this.activeQuestionIndex.asObservable();\n  public currentPageNumber: number = 1;\n  public activeQuestion = 0;\n  showAddPageOption = true;\n  showPageDetails = false;\n  public score = {\n    defaultScore: 1,\n    negativeScore: 0\n  }\n  public allPages: any = [];\n  stepIdentifier = 'pagescreen'; // this value can be \"welcomescreen\",\"thankyouscreen\",\"pagescreen\" only\n  assessmentId !: any;\n  public settings: any = {\n    assessmentMode: false,\n    defaultScore: 1,\n    negativeScoreCriteria: 'FAILED',\n    negativeScore: 0,\n    weightageEnabled: false,\n    settingsEnabled: false\n  }\n\n  formsPage: any = {\n    version: 2,\n    questionRandomize: true,\n    anonymousResponse: false,\n    hasWelcome: false,\n    hasWelcomeDescription: true,\n    welcomeText: '',\n    hasWelcomeImage: true,\n    welcomeImage: '',\n    welcomeDescription: '',\n    hasThanks: false,\n    hasThankyouImage: false,\n    thankyouText: '',\n    thankyouImage: '',\n    hasThankyouDescription: true,\n    thankyouDescription: '',\n    elements: [],\n    pageDetailsList: [],\n    customResponseSet: [],\n    settings: this.settings,\n    responseSegment: this.initializeEmptyResponseSegment()\n  };\n\n  initializeEmptyResponseSegment() {\n    return {\n      title: '',\n      description: '',\n      maxScore: 10,\n      segments: [\n\n      ]\n    }\n  }\n\n  uploadHandler(formData: any, destination: any) {\n    return this.http.post<any>(this.env.fileUploadEndPoint + destination, formData);\n    //return this.http.post<any>(\"env\" + destination, formData);\n  }\n\n  addQuestion(evt: any, index?: number) {\n    switch (evt.trim()) {\n      case 'welcome': {\n        this.currentPageNumber = -1;\n        this.stepIdentifier = 'welcomescreen';\n        this.formsPage.hasWelcome = true;\n        break;\n      }\n      case 'thankyou': {\n        this.currentPageNumber = -2;\n        this.stepIdentifier = 'thankyouscreen';\n        break;\n      }\n      case 'multiple-choice': {\n        this.setToPagefromWelcome();\n        this.createMultipleChoice(index);\n        break;\n      }\n      case 'checkbox': {\n        this.setToPagefromWelcome();\n        this.createCheckbox(index);\n        break;\n      }\n      case 'star-rating': {\n        this.setToPagefromWelcome();\n        this.createStarRating(index);\n        break;\n      }\n      case 'single-textbox': {\n        this.setToPagefromWelcome();\n        this.createSingleTextbox(index);\n        break;\n      }\n      case 'comment-box': {\n        this.setToPagefromWelcome();\n        this.createCommentbox(index);\n        break;\n      }\n      case 'matrix-dropdown': {\n        this.setToPagefromWelcome();\n        this.createMatrixDropdown(index);\n        break;\n      }\n      case 'dropdown': {\n        this.setToPagefromWelcome();\n        this.createDropdown(index);\n        break;\n      }\n      case 'slider': {\n        this.setToPagefromWelcome();\n        this.createSlider(index);\n        break;\n      }\n      case 'rating-scale': {\n        this.setToPagefromWelcome();\n        this.createRatingScale(index)\n        break;\n      }\n      case 'multiple-textbox': {\n        this.setToPagefromWelcome();\n        this.createMultipleTextbox(index);\n        break;\n      }\n      case 'date-time': {\n        this.setToPagefromWelcome();\n        this.createDateTime(index);\n        break;\n      }\n      case 'file-upload': {\n        this.setToPagefromWelcome();\n        this.createFileUpload(index);\n        break;\n      }\n      case 'ranking': {\n        this.setToPagefromWelcome();\n        this.createRanking(index);\n        break;\n      }\n      case 'star-rating': {\n        this.setToPagefromWelcome();\n        this.createStarRating(index);\n        break;\n      }\n    }\n  }\n\n  setToPagefromWelcome() {\n    if (['thankyouscreen', 'welcomescreen'].includes(this.stepIdentifier)) {\n      this.currentPageNumber = this.allPages.length;\n      this.stepIdentifier = 'pagescreen';\n    }\n  }\n\n  /**\n   * Check whether to display Page Details or Add Page tilte option\n   */\n  checkForPageDetails() {\n    if (this.currentPageDetails === undefined || this.currentPageDetails.pageName === '') {\n      this.showAddPageOption = true;\n      this.showPageDetails = false;\n    } else {\n      this.showAddPageOption = false;\n      this.showPageDetails = true;\n    }\n  }\n  /**\n   * Creates a question of type multiple choice\n   * @param index Index at which question needs to be created\n   */\n  createMultipleChoice(index?: any) {\n\n    const element = {\n      type: 'multiple-choice', name: ``, page: this.currentPageNumber, otherConfig: { color: '#000000', isFailed: false, score: this.score.defaultScore },\n      isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\n      randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false, visibilityLogic: [], choices: [\n        {\n          title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false,\n          helpingLabel: '', isFailed: false, score: this.score.defaultScore, color: this.generateRandomColor()\n        }]\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type checkbox\n   * @param index Index at which question needs to be created\n   */\n  createCheckbox(index?: any) {\n\n    const element = {\n      type: 'checkbox', name: '', page: this.currentPageNumber, otherConfig: { color: '#000000', isFailed: false, score: this.score.defaultScore },\n      isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\n      randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\n      isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [], choices:\n        [{\n          title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false,\n          helpingLabel: '', isFailed: false, score: this.score.defaultScore, color: this.generateRandomColor()\n        }\n        ]\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type star rating\n   * @param index Index at which question needs to be created\n   * [Note]: Rating label type can take 2 values 'specific'/'scale'\n   */\n  createStarRating(index?: any) {\n    const element = {\n      type: 'star-rating', name: '', page: this.currentPageNumber, isRequired: false, title: '', hasDescription: false,\n      description: '', hasComments: false, comments: '', randomize: false, hasOther: false, alignment: false, reverse: false,\n      isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', cursorType: 'number',\n      cursorColor: '#ff8000', scale: 2, starValue: '', hasRatingLabel: false, ratingLabelType: 'specific',\n      scaleRangeFrom: 'Not at all likely',\n      scaleRangeTo: 'Extreme Likely', visibilityLogic: [],\n      choices: [\n        { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' },\n        { title: '', isVisible: true, value: 1, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' },\n      ]\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type single textbox\n   * @param index Index at which question needs to be created\n   */\n  createSingleTextbox(index?: any) {\n    const element = {\n      type: 'single-textbox', name: '', page: this.currentPageNumber,\n      hasValidation: false, validationType: '', isRequired: false, hasCharacterLength: false, minCharacterLength: 0,\n      maxCharacterLength: 100, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\n      randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\n      isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [],\n      choices: [{ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' }]\n    };\n\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type comment box\n   * @param index Index at which question needs to be created\n   */\n  createCommentbox(index?: any) {\n    const element = {\n      type: 'comment-box', name: '', page: this.currentPageNumber,\n      isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\n      hasCharacterLength: false, minCharacterLength: 0, maxCharacterLength: 0, randomize: false, hasOther: false,\n      otherValue: 'Other', alignment: false, reverse: false, isRespondentAttachment: false, userAttachedFiles: [],\n      isRespondentComment: false, userComments: '', visibilityLogic: [], choices: [\n        { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '', imageURL: '' },\n      ]\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n\n  }\n\n  /**\n   * Creates a question of type matrix of dropdown\n   * @param index Index at which question needs to be created\n   */\n  createMatrixDropdown(index?: any) {\n    const element = {\n      type: 'matrix-dropdown', name: '', page: this.currentPageNumber, otherConfig: { color: '#000000', isFailed: false, score: 1 },\n      isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\n      randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\n      isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [],\n      choices: [{ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }],\n      columns: [{\n        title: '', value: 1, weight: 0, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '',\n        choices: [{ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }]\n      }\n      ]\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type dropdown\n   * @param index Index at which question needs to be created\n   */\n  createDropdown(index?: any) {\n    const element = {\n      type: 'dropdown', name: '', page: this.currentPageNumber, otherConfig: { color: '#000000', isFailed: false, score: this.score.defaultScore },\n      isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\n      randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\n      isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [],\n      choices: [\n        {\n          title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '',\n          isFailed: false, score: this.score.defaultScore, color: this.generateRandomColor()\n        }\n      ]\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type slider\n   * @param index Index at which question needs to be created\n   */\n  createSlider(index?: any) {\n    const element = {\n      type: 'slider', name: '', page: this.currentPageNumber,\n      isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\n      randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\n      isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [],\n      choices: [{ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }],\n      centerRange: false, adjustScale: false, numericBoxEnabled: false, left: 0, center: 0, right: 100,\n      scaleRangeMin: 0, scaleRangeMax: 100, stepSize: 10, startPosition: 0, editorValue: 0\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type matrix rating scale\n   * @param index Index at which question needs to be created\n   */\n  createRatingScale(index?: any) {\n    const element = {\n      type: 'rating-scale', name: '', page: this.currentPageNumber,\n      isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\n      randomize: false, hasOther: false, hasRatingLabel: false, ratingLabelType: '',\n      otherValue: 'Other', hasWeight: false, alignment: false, reverse: false,\n      isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '', visibilityLogic: [],\n      choices: [{ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }],\n      columns: [{ title: '', value: 1, weight: 0, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }]\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type ranking\n   * @param index Index at which question needs to be created\n   */\n  createRanking(index?: any) {\n    const element = {\n      type: 'ranking', name: '', page: this.currentPageNumber,\n      isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\n      randomize: false, hasOther: false, otherValue: 'Other', hasRatingLabel: false, alignment: false,\n      reverse: false, onlyNumber: true, isRespondentAttachment: false, userAttachedFiles: [],\n      isRespondentComment: false, userComments: '', visibilityLogic: [], choices: [\n        { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' },\n      ]\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type multiple textbox\n   * @param index Index at which question needs to be created\n   */\n  createMultipleTextbox(index?: any) {\n    const element = {\n      type: 'multiple-textbox', name: '',\n      page: this.currentPageNumber, isRequired: false, title: '', hasDescription: false, description: '',\n      randomize: false, hasOther: false, hasComments: false, comments: '', otherValue: 'Other', hasRatingLabel: false,\n      alignment: false, reverse: false, onlyNumber: true, isRespondentAttachment: false, userAttachedFiles: [],\n      isRespondentComment: false, userComments: '', visibilityLogic: [], choices: [\n        { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' },\n      ]\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type date/time\n   * @param index Index at which question needs to be created\n   */\n  createDateTime(index?: any) {\n    const element = {\n      type: 'date-time', name: '', page: this.currentPageNumber,\n      isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\n      randomize: false, hasOther: false, otherValue: 'Other', hasRatingLabel: false, alignment: false,\n      reverse: false, onlyNumber: true, isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false,\n      userComments: '', visibilityLogic: [], hasDate: true, hasTime: false, dateFormat: 'DD/MM/YYYY', timeFormat: 24,\n      choices: [\n        { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' },\n\n      ],\n      date: { title: '', value: '' },\n      time: { title: '', value: '' }\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type file upload\n   * @param index Index at which question needs to be created\n   */\n  createFileUpload(index?: any) {\n    const element = {\n      type: 'file-upload', name: '', page: this.currentPageNumber,\n      isRequired: false, title: '', hasInstruction: false, instruction: '', hasDescription: false, description: '',\n      hasComments: false, comments: '', randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\n      fileTypeRestrictions: false, isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '',\n      visibilityLogic: [], choices: [\n        { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }],\n      allowedFileTypes: {\n        pdf: true,\n        doc: true,\n        png: true,\n        jpg: true,\n        gif: true\n      }\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n  /**\n   * Creates a question of type image choice\n   * @param index Index at which question needs to be created\n   */\n  createImageChoice(index?: any) {\n    const element = {\n      type: 'image-choice', name: '', page: this.currentPageNumber,\n      isRequired: false, title: '', hasDescription: false, description: '', hasComments: false, comments: '',\n      randomize: false, hasOther: false, otherValue: 'Other', alignment: false, reverse: false,\n      isRespondentAttachment: false, userAttachedFiles: [], isRespondentComment: false, userComments: '',\n      visibilityLogic: [], choices: [\n        { title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '', imageURL: '' }\n\n      ]\n    };\n    (index === undefined) ? this.operationOnCreateIfIndexUndefined(element) : this.operationOnCreateIfIndexDefined(element, index);\n    this.sortQuestion();\n  }\n\n\n  /**\n * Creates and adds the question to list of questions if a question's index is undefined\n * @param element Details of question to be created\n */\n  operationOnCreateIfIndexUndefined(element: any) {\n\n    element.name = this.generateQuestionName(this.formsPage.elements.length + 1),\n      this.formsPage.elements.push(element);\n    this.setActiveQuestionBasedOnPageLength();\n  }\n\n  /**\n   * Creates and adds the question to list of questions if a question's index is present\n   * @param element Details of question to be created\n   * @param index Index at which question should be created\n   */\n  operationOnCreateIfIndexDefined(element: any, index: any) {\n\n    element.name = this.generateQuestionName(index + 1);\n    this.formsPage.elements.splice(index + 1, 0, element);\n    this.activeQuestion = index + 1;\n    this.activeQuestionIndex.next(index + 1);\n  }\n  /**\n    * Sets the active question based on particular page\n    */\n  setActiveQuestionBasedOnPageLength() {\n    let count = 0;\n    for (let i = 1; i <= this.currentPageNumber; i++) {\n      count += [...this.formsPage.elements].reduce(\n        (counter: any, currentElement: any) => (i === currentElement.page ? counter + 1 : counter), 0) - 1;\n    }\n    this.activeQuestion = count + this.currentPageNumber - 1;\n    this.activeQuestionIndex.next(count + this.currentPageNumber - 1);\n\n    // setTimeout(() => {\n\n    // }, 150);\n    // this.cdr.detectChanges();\n  }\n  /**\n* Sorts the questions based on page number\n*/\n  sortQuestion() {\n    this.formsPage.elements.sort((a: any, b: any) => {\n      return a.page - b.page;\n    });\n  }\n  /**\n   * Generates a unique question name for newly added question\n   * @param questionIndex Index of question to be created\n   */\n  generateQuestionName(questionIndex: any): string {\n    const questionNames = this.formsPage.elements.map((a: any) => a.name);\n    if (questionNames.includes(`${this.prefixForQuestionName}${questionIndex}`)) {\n      return this.generateQuestionName(questionIndex + 1);\n    } else {\n      const name = 'Question_' + questionIndex.toString();\n      return name;\n    }\n  }\n  generateRandomColor() {\n    //return '#' + Math.floor(Math.random() * 16777215).toString(16);\n    return '#000000'\n  }\n\n  /**\n * Sets the question as active based on the particular index\n * @param index Index of the question to be marked as active question\n */\n  setactiveQuestion(index?: any) {\n    this.activeQuestion = index;\n    this.activeQuestionIndex.next(index);\n  }\n  /**\n * Duplicates a question with particular index\n * @param index Index of question to be duplicated\n */\n  copyQuestion(index: any) {\n    this.setactiveQuestion(index + 1);\n    const COPY_ELEMENT = JSON.parse(JSON.stringify(this.formsPage.elements[index]));\n    if (COPY_ELEMENT.errorArray) {\n      delete COPY_ELEMENT.errorArray;\n    }\n    COPY_ELEMENT.visibilityLogic = [];\n    const elementsNames: any = [];\n    this.formsPage.elements.forEach((element: any) => {\n      elementsNames.push(element.name);\n    });\n    this.checkForSameName(elementsNames, COPY_ELEMENT);\n    this.formsPage.elements.splice(index + 1, 0, COPY_ELEMENT);\n  }\n  /**\n   * Assigns a unique name to the duplicated question\n   * @param elementsNames List of question names\n   * @param COPY_ELEMENT Details of question duplicated\n   */\n  checkForSameName(elementsNames: any, COPY_ELEMENT: any) {\n    if (elementsNames.includes(COPY_ELEMENT.name)) {\n      const COPY_ELEMENT_NAME = COPY_ELEMENT.name.split('_');\n      COPY_ELEMENT_NAME[COPY_ELEMENT_NAME.length - 1] = (parseInt(COPY_ELEMENT_NAME[COPY_ELEMENT_NAME.length - 1], 10) + 1).toString();\n      COPY_ELEMENT.name = COPY_ELEMENT_NAME.join('_');\n      this.checkForSameName(elementsNames, COPY_ELEMENT);\n    }\n  }\n  /**\n * Deletes the question on click of delete button\n * @param index Index of question to be deleted\n */\n  deleteQuestion(index: any) {\n    this.removeLogicFromDependentQuestion(index);\n    this.formsPage.elements.splice(index, 1);\n  }\n  /**\n * Removes the logic data for a particular question from other questions\n * @param index Index of question whose logic data needs to be removed from other questions\n */\n  removeLogicFromDependentQuestion(index: any) {\n    this.formsPage.elements.forEach((questionElement: any) => {\n      if (questionElement.visibilityLogic.length > 0) {\n        questionElement.visibilityLogic = questionElement.visibilityLogic.filter((logic: any) =>\n          logic.questionName !== this.formsPage.elements[index].name);\n      }\n    });\n  }\n  /**\n* Adds a new page\n*/\n  addPage() {\n    if (this.currentPageNumber === -1 || this.currentPageNumber === -2) {\n      //this.currentPageNumber = this.numberOfPages() + 1;\n      this.currentPageNumber = this.allPages.length + 1;\n      this.allPages.push(this.currentPageNumber);\n      this.numberOfPages();\n    } else {\n      this.currentPageNumber = this.allPages.length + 1;\n      this.allPages.push(this.currentPageNumber);\n    }\n    this.stepIdentifier = 'pagescreen';\n    this.activeQuestionIndex.next(-10);\n  }\n  /**\n  * Counts the number of pages in a survey/form\n  */\n  numberOfPages(): any {\n    const PAGE_ARRAY: any = [];\n    if (this.formsPage.elements.length !== 0) {\n      this.formsPage.elements.forEach((element: any) => {\n        PAGE_ARRAY.push(element.page);\n        this.currentPageDetails.pageNumber = element?.page;\n        if (this.formsPage.pageDetailsList.length === 0) {\n          this.formsPage.pageDetailsList.push(this.currentPageDetails);\n        }\n      });\n      this.allPages = [...new Set(PAGE_ARRAY)];\n    } else {\n      return 0;\n    }\n  }\n\n  httpOptions = {\n    headers: new HttpHeaders({ 'Content-Type': 'application/json', token: this.getAuthorizationToken() })\n  };\n\n  fetchAssessmentData(id: string) {\n    //mode=assessment/fetchQuestionsByAssessmentId&id=61f3f7871c60020009a20543\n    return this.http.get(\"env\" + 'assessment/fetchQuestionsByAssessmentId&id=' + id, this.httpOptions).pipe(retry(2));\n  }\n\n  saveAssessment(id: any, payload: any) {\n    return this.http.post(\"env\" + 'assessment/update&id=' + id, payload, this.httpOptions)\n    //?mode=assessment/update&id=61f3f7871c60020009a20543\n  }\n\n  getAuthorizationToken() {\n    const TOKEN = localStorage.getItem('currentUser');\n    let currentUser;\n    TOKEN !== null ? (currentUser = JSON.parse(TOKEN)) : (currentUser = {});\n    return currentUser.token;\n  }\n\n  /**\n  * Extracts the text from a particular html content\n  * @param s html content from which text needs to be extracted\n  */\n  extract(s: string) {\n    const span = document.createElement('span');\n    span.innerHTML = s;\n    return span.textContent || span.innerText;\n  }\n  /**\n   * Moves Question to a particular index in an array\n   * @param previous Index from which Question should be moved\n   * @param next  Index before which Question should be moved\n   */\n  moveQuestion(previous: any, next: any) {\n    moveItemInArray(this.formsPage.elements, previous, next);\n  }\n}\n","import { Component, OnInit } from \"@angular/core\";\n\nimport { DialogConfig } from \"../../dialog/dialog-config\";\nimport { DialogRef } from \"../../dialog/dialog-ref\";\n@Component({\n  selector: \"app-delete\",\n  templateUrl: \"./delete.component.html\",\n  styleUrls: [\"./delete.component.less\"],\n})\nexport class DeleteComponent implements OnInit {\n  animate = false;\n  constructor(private dialog: DialogRef, public dialogConfig: DialogConfig) { }\n\n  ngOnInit(): void { }\n  delete(deleteFlag: boolean) {\n    this.animate = true;\n    setTimeout(() => {\n      this.animate = false;\n    }, 1000);\n    this.dialog.close(deleteFlag);\n  }\n}\n","<div class=\"alert-dialog\">\n  <div class=\"alert-dialog-container\">\n    <div class=\"alert-dialog-body\">\n      <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\">\n        <i class=\"icons\">&#xe923;</i>\n        <!-- <div class=\"bin-icon\" [class.active]=\"animate\">\n          <div id=\"lid\" class=\"lid\"></div>\n          <div id=\"box\" class=\"box\">\n            <div id=\"box-inner\" class=\"box-inner\">\n              <div id=\"bin-lines\" class=\"bin-lines\"></div>\n            </div>\n          </div>\n        </div> -->\n      </div>\n      <p class=\"vx-fs-15 vx-paragraph-txt vx-m-0 vx-text-center\" [innerHTML]=\"dialogConfig?.data?.message\"></p>\n    </div>\n    <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n      <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n      <div class=\"vx-d-flex vx-align-center\">\n        <button class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"delete(false)\">No</button>\n        <button class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"delete(true)\">Yes</button>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit } from \"@angular/core\";\n\nimport { DialogConfig } from \"../../dialog/dialog-config\";\nimport { DialogRef } from \"../../dialog/dialog-ref\";\n\n@Component({\n  selector: \"app-active\",\n  templateUrl: \"./active.component.html\",\n  styleUrls: [\"./active.component.less\"],\n})\nexport class ActiveComponent implements OnInit {\n  animate = false;\n  itemName = ''\n  // constructor(private dialog: DialogRef,\n  //   private dialogConfig: DialogConfig\n  // ) {\n  //   this.itemName = dialogConfig.data.itemName;\n  // }\n  constructor(private dialog: DialogRef,public dialogConfig:DialogConfig) {}\n\n  ngOnInit(): void { }\n\n  activate(deleteFlag: boolean) {\n    this.animate = true;\n    setTimeout(() => {\n      this.animate = false;\n    }, 5000);\n    this.dialog.close(deleteFlag);\n  }\n}\n","<div class=\"alert-dialog\">\n    <div class=\"alert-dialog-container\">\n      <div class=\"alert-dialog-body\">\n        <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\">\n          <i class=\"icons\">&#xe9d3;</i>\n        </div>\n        <p class=\"vx-fs-15 vx-paragraph-txt vx-m-0 vx-text-center\" [innerHTML]=\"dialogConfig?.data?.message\">This action will <strong class=\"vx-fw-500\">active</strong> this {{itemName}}.</p>\n      </div>\n      <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n        <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n        <div class=\"vx-d-flex vx-align-center\">\n          <button class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"activate(false)\">No</button>\n          <button class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"activate(true)\">Yes</button>\n        </div>\n      </div>\n    </div>\n</div>\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[appInsertion]',\n})\nexport class InsertionDirective {\n  constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { Component, Type,ComponentFactoryResolver, ViewChild,ViewContainerRef, OnDestroy, ComponentRef, AfterViewInit, ChangeDetectorRef, OnInit } from '@angular/core';\nimport { InsertionDirective } from './insertion.directive';\nimport { Subject } from 'rxjs';\nimport { DialogRef } from './dialog-ref';\nimport { DialogConfig } from './dialog-config';\nimport { NavigationEnd, NavigationError, NavigationStart, Router, ROUTER_CONFIGURATION } from '@angular/router';\n\n@Component({\n  selector: 'app-dialog',\n  templateUrl: './dialog.component.html',\n  styleUrls: ['./dialog.component.css'],\n})\nexport class DialogComponent implements AfterViewInit, OnDestroy, OnInit {\n  componentRef!: ComponentRef<any>;\n  position: any;\n  background: any;\n  @ViewChild(InsertionDirective, { static: true })\n  insertionPoint!: InsertionDirective;\n  animation = true;\n\n  private readonly onDialogClose = new Subject<any>();\n  public onClose = this.onDialogClose.asObservable();\n\n  childComponentType!: Type<any>;\n  container: ViewContainerRef;\n\n  constructor(\n    private cd: ChangeDetectorRef,\n    private dialogRef: DialogRef,\n    public config: DialogConfig,\n    private router: Router,\n    private viewContainerRef: ViewContainerRef,\n    private componentFactoryResolver: ComponentFactoryResolver,\n  ) {\n    this.container = viewContainerRef;\n    // this.componentRef = this.componentRef;\n    // this.animate =   this.animate;\n    // this.insertionPoint =  this.insertionPoint;\n    // this.childComponentType =  this.childComponentType;\n  }\n  ngOnInit() {\n    this.position = this.config.position;\n    this.background = this.config.background;\n    document.body.style.overflow = 'hidden';\n    setTimeout(() => {\n      this.animation = false;\n    }, 200);\n    this.routeAction();\n  }\n\n  routeAction() {\n    this.router.events.subscribe((event: any) => {\n      if (event instanceof NavigationStart) {\n        // Show loading indicator\n      }\n      if (event instanceof NavigationEnd) {\n        // Hide loading indicator\n        this.dialogRef.close();\n      }\n      if (event instanceof NavigationError) {\n        // Hide loading indicator\n        // Present error to user\n      }\n    });\n  }\n  ngAfterViewInit() {\n    this.loadChildComponent(this.childComponentType);\n    this.cd.detectChanges();\n  }\n\n  onOverlayClicked(evt: MouseEvent) {\n    // this.dialogRef.close();\n  }\n\n  onDialogClicked(evt: MouseEvent) {\n    evt.stopPropagation();\n  }\n\n  loadChildComponent(componentType: Type<any>) {\n    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n    const viewContainerRef = this.insertionPoint.viewContainerRef;\n    viewContainerRef.clear();\n\n    this.componentRef = viewContainerRef.createComponent(componentFactory);\n    Object.keys(this.config.data).forEach(\n      (x) => (this.componentRef.instance[x] = this.config.data[x])\n    );\n  }\n\n  ngOnDestroy() {\n    if (this.componentRef) {\n      this.componentRef.destroy();\n    }\n  }\n\n  close() {\n    this.onDialogClose.next(false);\n    document.body.style.overflow = 'auto';\n  }\n}\n","<div\n  class=\"overlay\"\n  (click)=\"onOverlayClicked($event)\"\n  [ngClass]=\"{\n    top: position === 'TOP',\n    right: position === 'RIGHT',\n    bottom: position === 'BOTTOM',\n    left: position === 'LEFT',\n    center: position === 'CENTER',\n    black: background === 'black'\n  }\"\n>\n  <div\n    class=\"dialog\"\n    [class.animate]=\"animation\"\n    (click)=\"onDialogClicked($event)\"\n    [ngClass]=\"{\n      top: position === 'TOP',\n      right: position === 'RIGHT',\n      bottom: position === 'BOTTOM',\n      left: position === 'LEFT',\n      center: position === 'CENTER'\n    }\"\n  >\n    <ng-template appInsertion></ng-template>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogComponent } from './dialog.component';\nimport { InsertionDirective } from './insertion.directive';\nimport { DialogRef } from './dialog-ref';\n@NgModule({\n    imports: [CommonModule],\n    declarations: [DialogComponent, InsertionDirective],\n    providers: [DialogRef]\n})\nexport class DialogModule {}\n","import { Injector, Type, InjectionToken } from '@angular/core';\n\n\nexport class DialogInjector implements Injector {\n  constructor(private parentDialogInjector: Injector, private dialogAdditionalTokens: WeakMap<any, any>) {}\n\n  get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T): T;\n\n  get(token: any, notFoundValue?: any) {\n    const value = this.dialogAdditionalTokens.get(token);\n    if (value) {\n      return value;\n    }\n    return this.parentDialogInjector.get<any>(token, notFoundValue);\n  }\n\n}\n","import {\n  Injectable,\n  ApplicationRef,\n  Injector,\n  Type,\n  EmbeddedViewRef,\n  ComponentRef,\n  createComponent,\n  EnvironmentInjector\n} from '@angular/core';\nimport { DialogModule } from './dialog.module';\nimport { DialogComponent } from './dialog.component';\nimport { DialogInjector } from './dialog-injector';\nimport { DialogConfig } from './dialog-config';\nimport { DialogRef } from './dialog-ref';\n\n@Injectable({\n  providedIn: DialogModule,\n})\nexport class DialogService {\n  dialogComponentRef!: ComponentRef<DialogComponent>;\n\n  constructor(\n    private appRef: ApplicationRef,\n    private injector: Injector,\n    private environmentInjector: EnvironmentInjector\n  ) {}\n\n  public open(componentType: Type<any>, config: DialogConfig) {\n    const dialogRef = this.appendDialogComponentToBody(config);\n\n    this.dialogComponentRef.instance.childComponentType = componentType;\n    return dialogRef;\n  }\n\n  private appendDialogComponentToBody(config: DialogConfig) {\n    const map = new WeakMap();\n    map.set(DialogConfig, config);\n\n    const dialogRef = new DialogRef();\n    map.set(DialogRef, dialogRef);\n\n    const sub = dialogRef.afterClosed.subscribe(() => {\n      this.removeDialogComponentFromBody();\n      sub.unsubscribe();\n    });\n\n    const componentRef = createComponent(DialogComponent, {\n      environmentInjector: this.environmentInjector,\n      elementInjector: new DialogInjector(this.injector, map),\n    });\n\n    this.appRef.attachView(componentRef.hostView);\n\n    const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\n      .rootNodes[0] as HTMLElement;\n    document.body.appendChild(domElem);\n\n    this.dialogComponentRef = componentRef;\n\n    this.dialogComponentRef.instance.onClose.subscribe(() => {\n      this.removeDialogComponentFromBody();\n    });\n\n    return dialogRef;\n  }\n\n  private removeDialogComponentFromBody() {\n    this.appRef.detachView(this.dialogComponentRef.hostView);\n    this.dialogComponentRef.destroy();\n  }\n\n  close() {\n    this.removeDialogComponentFromBody();\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ValidateStructure } from '../components/errorInterface/validateStructure';\nimport { Error } from '../components/errorInterface/error';\nimport { Question } from '../components/errorInterface/question';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ValidatorService {\n\n  constructor() {\n\n  }\n  public validatedQuestions: any = {};\n\n\n  validate(question: Question): ValidateStructure | any {\n    switch (question.type) {\n      case 'checkbox' : {\n        return  this.validateMultiValuedQuestion(question);\n      }\n      case 'dropdown' : {\n        return  this.validateMultiValuedQuestion(question);\n      }\n      case 'multiple-choice' : {\n        return  this.validateMultiValuedQuestion(question);\n      }\n      case 'ranking' : {\n        return this.validateMultiValuedQuestion(question);\n      }\n      case 'comment-box': {\n        return  this.validateSingleValued(question);\n      }\n      case 'multiple-textbox': {\n        return  this.validateMultipleTextBox(question);\n      }\n      case 'single-textbox': {\n        return  this.validateSingleValued(question);\n        }\n        case 'file-upload': {\n          return  this.validateSingleValued(question);\n          }\n      case 'date-time': {\n        return  this.validateDateTime(question);\n        }\n      case 'image-choice': {\n        return this.validateImageUpload(question);\n      }\n      case 'matrix-dropdown' : {\n        return this.validateMatrixDropdown(question);\n      }\n      case 'star-rating' : {\n       return this.validateStarRating(question);\n      }\n      case 'slider' : {\n        return this.validateSlider(question);\n       }\n       case 'rating-scale' : {\n        return this.validateRatingScale(question);\n       }\n\n    }\n  }\n\n\n\n  validateMultiValuedQuestion(question:any): ValidateStructure  {\n    // question.errorArray = {};\n    delete question.errorArray;\n    const validStatus = [];\n    const ERROR_ARRAY: Error = {};\n    if (this.extract(question.title).length === 0 || question?.title?.trim().length === 0) {\n      ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\n      validStatus.push(false);\n    }\n    if (question.hasDescription === true && this.extract(question.description).length === 0) {\n        question.hasDescription = false;\n    }\n    if (question.hasComments === true && this.extract(question.comments).length === 0) {\n        question.hasComments = false;\n    }\n    if (question.choices.length >= 2) {\n      if (question.choices.length === 2 && (this.extract(question.choices[0].title).length === 0 || this.extract(question.choices[0].title)?.trim()?.length === 0 ||\n      this.extract(question.choices[1].title).length === 0 ||this.extract(question.choices[1].title)?.trim()?.length === 0)) {\n        ERROR_ARRAY.twoChoice  = {message: 'Please add at least two answer choices.'};\n        validStatus.push(false);\n      } else {\n        question.choices =\n        question.choices.filter((choice:any) => (this.extract(choice.title)?.trim()?.length !== 0));\n        if (question.choices.length === 0) {\n            question.choices.push({ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' });\n        }\n      }\n    } else {\n      ERROR_ARRAY.twoChoice  = {message: 'Please add at least two answer choices.'};\n      validStatus.push(false);\n    }\n\n    if (!this.checkForSameTitleWithOther(question)) {\n      ERROR_ARRAY.sameChoice   = {message: 'Two options cannot have same title.'};\n      validStatus.push(false);\n    }\n    let validationResult: ValidateStructure;\n    if (validStatus.includes(false)) {\n     question.errorArray = ERROR_ARRAY;\n     validationResult = {valid: false, error: ERROR_ARRAY, question};\n     return validationResult;\n    } else {\n      validationResult = {valid: true, error: ERROR_ARRAY, question};\n      return validationResult;\n    }\n  }\n\n  validateSingleValued(question:any): ValidateStructure  {\n    delete question.errorArray;\n    const validStatus = [];\n    const ERROR_ARRAY: Error = {};\n    if (this.extract(question.title).length === 0 || this.extract(question.title)?.trim()?.length === 0) {\n      ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\n      validStatus.push(false);\n    }\n    if (question.hasDescription === true && this.extract(question.description).length === 0) {\n      question.hasDescription = false;\n    }\n    if (question.hasComments === true && this.extract(question.comments).length === 0) {\n      question.hasComments = false;\n    }\n    if(question.hasCharacterLength === true){\n       if(question.minCharacterLength > question.maxCharacterLength){\n        ERROR_ARRAY.charLength = {message: 'Minimum Character length should be less than maximum.'};\n        validStatus.push(false);\n       }\n    }\n    let validationResult: ValidateStructure;\n    if (validStatus.includes(false)) {\n     question.errorArray = ERROR_ARRAY;\n     validationResult = {valid: false, error: ERROR_ARRAY, question};\n     return validationResult;\n    } else {\n      validationResult = {valid: true, error: ERROR_ARRAY, question};\n      return validationResult;\n    }\n  }\n\n  validateDateTime(question:any): ValidateStructure  {\n    delete question.errorArray;\n    const validStatus = [];\n    const ERROR_ARRAY: Error = {};\n    if (this.extract(question.title).length === 0 || this.extract(question.title)?.trim()?.length === 0) {\n      ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\n      validStatus.push(false);\n\n    }\n    if (question.hasDescription === true && this.extract(question.description).length === 0) {\n      question.hasDescription = false;\n    }\n    if (question.hasComments === true && this.extract(question.comments).length === 0) {\n      question.hasComments = false;\n    }\n    if (question.hasDate === true) {\n      if (question.date !== undefined && this.extract(question.date.title).length === 0) {\n        ERROR_ARRAY.dateMissing = {message : 'Please enter a label for the date field.'};\n        validStatus.push(false);\n      }\n    }\n    if (question.hasTime === true) {\n      if (question.time !== undefined && this.extract(question.time.title).length === 0) {\n        ERROR_ARRAY.timeMissing = {message: 'Please enter a label for the time field.'} ;\n        validStatus.push(false);\n      }\n    }\n    if (question.hasTime === false && question.hasDate === false) {\n        question.hasDate = true;\n    }\n    let validationResult: ValidateStructure;\n    if (validStatus.includes(false)) {\n     question.errorArray = ERROR_ARRAY;\n     validationResult = {valid: false, error: ERROR_ARRAY, question};\n     return validationResult;\n    } else {\n      validationResult = {valid: true, error: ERROR_ARRAY, question};\n      return validationResult;\n    }\n  }\n\n  validateImageUpload(question:any): ValidateStructure {\n    delete question.errorArray;\n    const validStatus = [];\n    const ERROR_ARRAY: Error = {};\n    if (this.extract(question.title).length === 0) {\n      ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\n      validStatus.push(false);\n    }\n    if (question.hasDescription === true && this.extract(question.description).length === 0) {\n      question.hasDescription = false;\n    }\n    if (question.hasComments === true && this.extract(question.comments).length === 0) {\n      question.hasComments = false;\n    }\n\n    if (question.choices.length > 1) {\n      if (question.choices.length === 2 && (this.extract(question.choices[0].title).length === 0 ||\n      this.extract(question.choices[1].title).length === 0 || question.choices[1].imageURL === ''\n      || question.choices[0].imageURL === '')) {\n        ERROR_ARRAY.twoChoice  = {message: 'Please add at least two answer choices.'};\n        validStatus.push(false);\n      } else {\n        question.choices =\n        question.choices.filter((choice:any) => this.extract(choice.title).length !== 0);\n      }\n    } else {\n        ERROR_ARRAY.twoChoice  = {message: 'Please add at least two answer choices.'};\n        validStatus.push(false);\n    }\n\n    if (!this.checkForSameTitle(question.choices)) {\n      ERROR_ARRAY.sameChoice   = {message: 'Two options cannot have same title.'};\n      validStatus.push(false);\n    }\n    let validationResult: ValidateStructure;\n    if (validStatus.includes(false)) {\n     question.errorArray = ERROR_ARRAY;\n     validationResult = {valid: false, error: ERROR_ARRAY, question};\n     return validationResult;\n    } else {\n      validationResult = {valid: true, error: ERROR_ARRAY, question};\n      return validationResult;\n    }\n  }\n\n\n\n  validateMatrixDropdown(question:any): ValidateStructure {\n    delete question.errorArray;\n    const validStatus = [];\n    const ERROR_ARRAY: Error = {};\n    if (this.extract(question.title).length === 0) {\n      ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\n      validStatus.push(false);\n    }\n    if (question.hasDescription === true && this.extract(question.description).length === 0) {\n      question.hasDescription = false;\n    }\n    if (question.hasComments === true && this.extract(question.comments).length === 0) {\n      question.hasComments = false;\n    }\n    if (question.choices.length > 0) {\n      for (const choice of question.choices) {\n        if (question.choices.length === 1 && this.extract(choice.title).length === 0) {\n          ERROR_ARRAY.oneRow   = {message: 'You are required to have at least one row.'};\n          validStatus.push(false);\n        } else {\n                question.choices = question.choices.filter((selectedChoice:any) => this.extract(selectedChoice.title).length !== 0);\n                if (question.choices.length === 0) {\n              question.choices.push( { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' }, );\n            }\n\n        }\n      }\n    } else {\n      ERROR_ARRAY.oneRow   = {message: 'You are required to have at least one row.'};\n      validStatus.push(false);\n    }\n    if (!this.checkForSameTitle(question.choices)) {\n      ERROR_ARRAY.sameChoice   = {message: 'Two rows cannot have same title.'};\n      validStatus.push(false);\n    }\n\n    if (question.columns.length > 0) {\n      question.columns = question.columns.filter((selectedChoice:any) => this.extract(selectedChoice.title).length !== 0);\n\n      for (const column of question.columns) {\n        if (this.extract(column.title).length === 0) {\n          ERROR_ARRAY.oneCol  = {message: 'You are required to have at least one column.'};\n          validStatus.push(false);\n        }\n        if (column.choices.length > 1) {\n          for (const columnChoice of column.choices) {\n            if (this.extract(columnChoice.title).length === 0) {\n              question.columns = question.columns.filter((selectedChoice:any) =>\n                this.extract(selectedChoice.title).length !== 0);\n              // ERROR_ARRAY.twoChoice  = {message: 'Please add at least two answer choices for each column.'};\n              // validStatus.push(false);\n              column.choices = column.choices.filter((selectedChoice:any) =>\n                this.extract(selectedChoice.title).length !== 0);\n            } else {\n              // column.choices = column.choices.filter(selectedChoice =>\n              //   this.extract(selectedChoice.title).length !== 0);\n            }\n          }\n        } else {\n          ERROR_ARRAY.twoChoice  = {message: 'Please add at least two answer choices for each column.'};\n          validStatus.push(false);\n        }\n      }\n      if (question.columns.length === 0) {\n          question.columns.push( { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '',\n        choices: [{ title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: ''}]});\n      }\n    } else {\n      ERROR_ARRAY.oneCol   = {message: 'You are required to have at least one column.'};\n      validStatus.push(false);\n    }\n    if (!this.checkForSameTitle(question.columns)) {\n      ERROR_ARRAY.sameChoice   = {message: 'Two columns cannot have same title.'};\n      validStatus.push(false);\n    }\n    let validationResult: ValidateStructure;\n    if (validStatus.includes(false)) {\n     question.errorArray = ERROR_ARRAY;\n     validationResult = {valid: false, error: ERROR_ARRAY, question};\n     return validationResult;\n    } else {\n      validationResult = {valid: true, error: ERROR_ARRAY, question};\n      return validationResult;\n    }\n  }\n\n\n  validateMultipleTextBox(question:any): ValidateStructure  {\n    delete question.errorArray;\n    const validStatus = [];\n    const ERROR_ARRAY: Error = {};\n    if (this.extract(question.title).length === 0) {\n      ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\n      validStatus.push(false);\n    }\n    if (question.hasDescription === true && this.extract(question.description).length === 0) {\n      question.hasDescription = false;\n    }\n    if (question.hasComments === true && this.extract(question.comments).length === 0) {\n      question.hasComments = false;\n    }\n\n    if (question.choices.length > 0) {\n      if (question.choices.length === 1 && this.extract(question.choices[0].title).length === 0) {\n        ERROR_ARRAY.oneChoice  = {message: 'Please add label for textbox.'};\n        validStatus.push(false);\n      } else {\n        question.choices =\n        question.choices.filter((choice:any) => this.extract(choice.title).length !== 0);\n      }\n    } else {\n      ERROR_ARRAY.oneChoice  = {message: 'Please add at least one textbox.'};\n      validStatus.push(false);\n    }\n\n    if (!this.checkForSameTitleWithOther(question)) {\n      ERROR_ARRAY.sameChoice   = {message: 'Two textboxes cannot have same label.'};\n      validStatus.push(false);\n    }\n    let validationResult: ValidateStructure;\n    if (validStatus.includes(false)) {\n     question.errorArray = ERROR_ARRAY;\n     validationResult = {valid: false, error: ERROR_ARRAY, question};\n     return validationResult;\n    } else {\n      validationResult = {valid: true, error: ERROR_ARRAY, question};\n      return validationResult;\n    }\n  }\n\n  validateSlider(question:any): ValidateStructure {\n    delete question.errorArray;\n    const validStatus = [];\n    const ERROR_ARRAY: Error = {};\n    const minimum = parseInt(question.scaleRangeMin, 10);\n    const maximum = parseInt(question.scaleRangeMax, 10);\n    const stepSize = question.stepSize;\n    const threshold = 0;\n    if (this.extract(question.title).length === 0) {\n      ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\n      validStatus.push(false);\n    }\n    if (question.hasDescription === true && this.extract(question.description).length === 0) {\n      question.hasDescription = false;\n    }\n    if (question.hasComments === true && this.extract(question.comments).length === 0) {\n      question.hasComments = false;\n    }\n    if (minimum >= maximum) {\n      ERROR_ARRAY.minError  = {message: `Please enter a value smaller than ${maximum}.`};\n      validStatus.push(false);\n    }\n    if (maximum <= minimum) {\n      ERROR_ARRAY.minError  = {message: `Please enter a value greater than ${maximum}.`};\n      validStatus.push(false);\n    }\n    if (stepSize > maximum) {\n      ERROR_ARRAY.stepError  = {message: `The range for the slider values are within ${minimum}-${maximum}. Please select a step size within this range.`};\n      validStatus.push(false);\n    }\n    if (stepSize <= 0) {\n      ERROR_ARRAY.stepError  = {message: `Please enter a value greater than ${threshold}.` };\n      validStatus.push(false);\n    }\n    let validationResult: ValidateStructure;\n    if (validStatus.includes(false)) {\n     question.errorArray = ERROR_ARRAY;\n     validationResult = {valid: false, error: ERROR_ARRAY, question};\n     return validationResult;\n    } else {\n      validationResult = {valid: true, error: ERROR_ARRAY, question};\n      return validationResult;\n    }\n  }\n\n\n  validateStarRating(question:any): ValidateStructure {\n    delete question.errorArray;\n    const validStatus = [];\n    const ERROR_ARRAY: Error = {};\n    if (this.extract(question.title).length === 0) {\n      ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\n      validStatus.push(false);\n    }\n    if (question.hasDescription === true && this.extract(question.description).length === 0) {\n      question.hasDescription = false;\n    }\n    if (question.hasComments === true && this.extract(question.comments).length === 0) {\n      question.hasComments = false;\n    }\n    if (question.hasRatingLabel) {\n      if (question.ratingLabelType === 'scale' && question.scaleRangeFrom === '' && question.scaleRangeTo === '') {\n        question.hasRatingLabel = false;\n      }\n    }\n    let validationResult: ValidateStructure;\n    if (validStatus.includes(false)) {\n     question.errorArray = ERROR_ARRAY;\n     validationResult = {valid: false, error: ERROR_ARRAY, question};\n     return validationResult;\n    } else {\n      validationResult = {valid: true, error: ERROR_ARRAY, question};\n      return validationResult;\n    }\n  }\n\n  validateRatingScale(question:any): ValidateStructure {\n    delete question.errorArray;\n    const validStatus = [];\n    const ERROR_ARRAY: Error = {};\n    if (this.extract(question.title).length === 0) {\n      ERROR_ARRAY.questionMissing = {message: 'Please enter the question.'};\n      validStatus.push(false);\n    }\n    if (question.hasDescription === true && this.extract(question.description).length === 0) {\n      question.hasDescription = false;\n    }\n    if (question.hasComments === true && this.extract(question.comments).length === 0) {\n      question.hasComments = false;\n    }\n    if (question.choices.length > 0) {\n      for (const choice of question.choices) {\n        if (question.choices.length === 1 && this.extract(choice.title).length === 0) {\n          ERROR_ARRAY.oneRow   = {message: 'You are required to have at least one row.'};\n          validStatus.push(false);\n        } else {\n                question.choices =\n          question.choices.filter((selectedChoice:any) =>\n            this.extract(selectedChoice.title).length !== 0);\n                if (question.choices.length === 0) {\n              question.choices.push( { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' }, );\n            }\n\n        }\n      }\n    } else {\n      ERROR_ARRAY.oneRow   = {message: 'You are required to have at least one row.'};\n      validStatus.push(false);\n    }\n    if (!this.checkForSameTitle(question.choices)) {\n      ERROR_ARRAY.sameChoice   = {message: 'Two rows cannot have same title.'};\n      validStatus.push(false);\n    }\n\n    if (question.columns !== undefined && question.columns.length > 0) {\n      for (const column of question.columns) {\n        if (question.columns.length === 1 && this.extract(column.title).length === 0) {\n          ERROR_ARRAY.oneCol   = {message: 'You are required to have at least one column.'};\n          validStatus.push(false);\n        } else {\n          question.columns =\n    question.columns.filter((selectedChoice:any) =>\n      this.extract(selectedChoice.title).length !== 0);\n          if (question.columns.length === 0) {\n        question.columns.push( { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' }, );\n      }\n\n  }\n      }\n    } else {\n      ERROR_ARRAY.oneCol   = {message: 'You are required to have at least one column.'};\n      validStatus.push(false);\n    }\n    if (!this.checkForSameTitle(question.columns)) {\n      ERROR_ARRAY.sameChoice   = {message: 'Two columns cannot have same title.'};\n      validStatus.push(false);\n    }\n    let validationResult: ValidateStructure;\n    if (validStatus.includes(false)) {\n     question.errorArray = ERROR_ARRAY;\n     validationResult = {valid: false, error: ERROR_ARRAY, question};\n     return validationResult;\n    } else {\n      validationResult = {valid: true, error: ERROR_ARRAY, question};\n      return validationResult;\n    }\n  }\n  /**\n   * Extracts the text from a particular html content\n   * @param s html content from which text needs to be extracted\n   */\n    extract(s:any) {\n    const span = document.createElement('span');\n    span.innerHTML = s;\n    return span.textContent || span.innerText;\n  }\n   /**\n   * Checks if title of two choices is same or not\n   * @param choices Choice for which title should be checked\n   */\n  checkForSameTitle(choices:any) {\n    const title = choices.map((data:any) => data.title);\n    for (const choice of choices) {\n      const sameTitle = this.cloneByValue(title).filter((data:any) => data === choice.title);\n      if (sameTitle.length > 1) {\n        return false;\n      }\n    }\n    return true;\n  }\n  /**\n   * Checks if title of two choices is same or not\n   * @param choices Choice for which title should be checked\n   */\n  checkForSameTitleWithOther(questionDetails: any) {\n    const title = questionDetails.choices.map((data: { title: string; }) => data.title.trim());\n\n    for (const choice of questionDetails.choices) {\n      const sameTitle = this.cloneByValue(title).filter((data: string) => data === choice.title.trim());\n      if (sameTitle.length > 1) {\n        return false;\n      } else {\n        if (questionDetails.hasOther && choice.title.trim() === questionDetails.otherValue) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n\n  cloneByValue(value: any) {\n    return JSON.parse(JSON.stringify(value));\n  }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { shuffle } from 'lodash';\n\n@Component({\n  selector: 'app-preview-multiple-choice',\n  templateUrl: './preview-multiple-choice.component.html',\n  styleUrls: ['./preview-multiple-choice.component.less']\n})\nexport class PreviewMultipleChoiceComponent implements OnInit {\n\n  @Input() question!: any;\n  choicesForPreviewMode : any = [];\n  constructor() { }\n\n  ngOnInit(): void {\n    this.choicesForPreviewMode = this.question.choices;\n    if (this.question.randomize === true) {\n      this.randomize();\n    }\n  }\n  randomize() {\n    this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\n  }\n}\n","<div class=\"preview-list\">\n    <ul class=\"vx-p-0 vx-m-0\">\n        <li class=\"vx-mb-3\" *ngFor=\"let choice of choicesForPreviewMode; let choiceIndex = index\">\n            <app-cs-radio>{{choice?.title ? choice?.title: 'Option' }}</app-cs-radio>\n        </li>\n       \n        <li class=\"vx-mb-3\" *ngIf=\"question?.hasOther\"> \n            <app-cs-radio> {{question.otherValue}}</app-cs-radio>\n        </li>\n    </ul>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { shuffle } from 'lodash';\n\n@Component({\n  selector: 'app-preview-checkbox',\n  templateUrl: './preview-checkbox.component.html',\n  styleUrls: ['./preview-checkbox.component.less']\n})\nexport class PreviewCheckboxComponent implements OnInit {\n\n\n  @Input() question!: any;\n  choicesForPreviewMode : any = [];\n  constructor() { }\n\n  ngOnInit(): void {\n    this.choicesForPreviewMode = this.question.choices;\n    if (this.question.randomize === true) {\n      this.randomize();\n    }\n  }\n  randomize() {\n    this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\n  }\n}\n","<div class=\"preview-list\">\n    <ul class=\"vx-p-0 vx-m-0\">\n        <li class=\"vx-mb-3\" *ngFor=\"let choice of choicesForPreviewMode; let choiceIndex = index\">\n            <app-cs-checkbox>{{choice?.title ? choice?.title: 'Option' }}</app-cs-checkbox>\n        </li>\n        <li class=\"vx-mb-3\" *ngIf=\"question?.hasOther\">\n            <app-cs-checkbox> {{question.otherValue}}</app-cs-checkbox>\n        </li>\n    </ul>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-preview-image-choice',\n  templateUrl: './preview-image-choice.component.html',\n  styleUrls: ['./preview-image-choice.component.less']\n})\nexport class PreviewImageChoiceComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"preview-list\">\n    <div class=\"image-row vx-mt-5 vx-d-flex\">\n        <div class=\"image-items vx-p-3 vx-mr-3 vx-mb-3\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n            <app-cs-radio>\n                <div class=\"img-block\">\n                    <img src=\"./assets/images/Screenshot 2022-01-03 at 10.24.11 AM.png\" alt=\"\">\n                </div>  \n                <span class=\"text vx-fs-14 vx-fw-400 vx-lh-20 vx-mt-2 vx-paragraph-txt\" [appTooltip]=\"'1. long have you been a customer of our product'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">1. long have you been a customer of our product</span>\n            </app-cs-radio>\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-preview-star-rating',\n  templateUrl: './preview-star-rating.component.html',\n  styleUrls: ['./preview-star-rating.component.less']\n})\nexport class PreviewStarRatingComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"preview-list\">\n    <ul class=\"vx-p-0 vx-m-0 vx-d-flex\">\n        <li class=\"vx-mr-1\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\">\n            <button class=\"rating-btn vx-fs-16 vx-p-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [appTooltip]=\"'Information details here...'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                <!-- Smiley -->\n                <i *ngIf=\"true\" class=\"icons\">&#xea66;</i>\n                <!-- Thumb -->\n                <i *ngIf=\"false\" class=\"icons\">&#xea84;</i>\n                <!-- Star -->\n                <i *ngIf=\"false\" class=\"icons\">&#xea70;</i>\n                <!-- Heart -->\n                <i *ngIf=\"false\" class=\"icons\">&#xe9ea;</i>\n                <!-- Number -->\n                <span *ngIf=\"false\" class=\"vx-fs-12\">10</span>\n            </button>\n        </li>\n    </ul>\n</div>","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-preview-single-textbox',\n  templateUrl: './preview-single-textbox.component.html',\n  styleUrls: ['./preview-single-textbox.component.less']\n})\nexport class PreviewSingleTextboxComponent implements OnInit {\n  @Input() question!: any;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"preview-list\">\n    <input class=\"single-textbox vx-bg-white vx-fs-14 vx-lh-24 vx-paragraph-txt\" type=\"text\" [placeholder]=\"(question?.isPlaceholder === true  && question?.placeholder.trim().length > 0) ? question?.placeholder.trim() : 'Please enter a response'\">\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-preview-comment-box',\n  templateUrl: './preview-comment-box.component.html',\n  styleUrls: ['./preview-comment-box.component.less']\n})\nexport class PreviewCommentBoxComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"preview-list\">\n    <textarea class=\"comment-box vx-m-0\" placeholder=\"placeholder\"></textarea>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { TooltipModule } from '../../../ui-kit/tooltip/tooltip.module';\nimport { PopoverModule } from '../../../ui-kit/popover/popover.module';\n\n@Component({\n  selector: 'app-quick-settings',\n  templateUrl: './quick-settings.component.html',\n  styleUrls: ['./quick-settings.component.less'],\n  imports: [CommonModule, TooltipModule, PopoverModule],\n  standalone: true,\n})\nexport class QuickSettingsComponent implements OnInit {\n  @Input() question!: any;\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"quick-settings\">\n  <ul class=\"more-options vx-p-0 vx-m-0\">\n    <li class=\"vx-pt-1 vx-pb-1\" *ngIf=\"question.hasComments\">\n      <button\n        class=\"options commentBtn vx-fs-14 vx-d-flex vx-align-center vx-justify-center vx-bg-grey vx-txt-white vx-p-2\"\n        [class.close]=\"info?.showPopover\"\n        appPopover\n        (click)=\"info?.popover()\"\n        placement=\"right\"\n      >\n        <!-- <span class=\"status vx-bg-blue\"></span> -->\n        <i class=\"icons\" *ngIf=\"!info?.showPopover\">&#xe932;</i>\n        <i class=\"icons\" *ngIf=\"info?.showPopover\">&#xe9ae;</i>\n      </button>\n\n      <app-popover #info [dontCloseonClick]=\"false\">\n        <div class=\"block info vx-bg-white vx-p-3\">\n          <div\n            class=\"block-text vx-fs-13 vx-paragraph-txt\"\n            [innerHTML]=\"question.comments\"\n          ></div>\n        </div>\n      </app-popover>\n    </li>\n\n    <li class=\"vx-pt-1 vx-pb-1\" *ngIf=\"question.isRespondentAttachment\">\n      <button\n        class=\"options attachBtn vx-fs-16 vx-d-flex vx-align-center vx-justify-center vx-bg-grey vx-label-txt vx-p-2\"\n        [class.close]=\"attachment?.showPopover\"\n        appPopover\n        (click)=\"attachment.popover()\"\n        placement=\"right\"\n      >\n        <!-- <span class=\"status vx-bg-blue\"></span> -->\n        <i class=\"icons\" *ngIf=\"!attachment?.showPopover\">&#xe977;</i>\n        <i class=\"icons\" *ngIf=\"attachment?.showPopover\">&#xe9ae;</i>\n      </button>\n\n      <app-popover #attachment [dontCloseonClick]=\"true\">\n        <div class=\"block attachment vx-bg-white\">\n          <div *ngIf=\"false\" class=\"attached vx-pt-1 vx-pl-3 vx-pr-3\">\n            <div\n              class=\"file-box vx-d-flex vx-align-center vx-pb-2 vx-pt-2\"\n              *ngFor=\"let data of [1, 1]\"\n            >\n              <span class=\"file table pdf\">\n                <i class=\"icons\">&#xe92e;</i>\n                <span class=\"format\">pdf</span>\n              </span>\n              <div\n                class=\"file-name vx-fs-12 vx-label-txt\"\n                [appTooltip]=\"'payrollnew-vcomply-interns.pdf'\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n              >\n                payrollnew-vcomply-interns.pdf\n              </div>\n              <button\n                class=\"delete-btn vx-fs-14 vx-txt-red vx-p-0 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\"\n              >\n                <i class=\"icons\">&#xe923;</i>\n              </button>\n              <div class=\"line-progress\">\n                <div class=\"line-progress-bar\"></div>\n              </div>\n            </div>\n          </div>\n          <div\n            class=\"attach-btn vx-d-flex vx-align-center vx-justify-center vx-p-2\"\n          >\n            <input type=\"file\" />\n            <i class=\"icons vx-fs-18 vx-pt-2 vx-mb-1\">&#xe977;</i>\n            <span class=\"vx-txt-blue vx-fs-12 vx-tt-uppercase\"\n              >Attach Files</span\n            >\n          </div>\n          <div\n            *ngIf=\"false\"\n            class=\"bottom vx-p-2 vx-justify-center vx-d-flex vx-align-center\"\n          >\n            <button\n              class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n            >\n              SAVE\n            </button>\n          </div>\n        </div>\n      </app-popover>\n    </li>\n\n    <li class=\"vx-pt-1 vx-pb-1\" *ngIf=\"question.isRespondentComment\">\n      <button\n        class=\"options respondentBtn vx-fs-14 vx-d-flex vx-align-center vx-justify-center vx-bg-grey vx-label-txt vx-p-2\"\n        [class.close]=\"comment?.showPopover\"\n        appPopover\n        (click)=\"comment.popover()\"\n        placement=\"right\"\n      >\n        <!-- <span class=\"status vx-bg-blue\"></span> -->\n        <i class=\"icons\" *ngIf=\"!comment?.showPopover\">&#xe9a6;</i>\n        <i class=\"icons\" *ngIf=\"comment?.showPopover\">&#xe9ae;</i>\n      </button>\n\n      <app-popover #comment [dontCloseonClick]=\"true\">\n        <div class=\"block comment vx-p-0 vx-bg-white\">\n          <div class=\"text-area\">\n            <textarea\n              class=\"vx-fs-13 vx-paragraph-txt vx-lh-5 vx-p-2 vx-m-0\"\n              placeholder=\"Type here...\"\n            ></textarea>\n          </div>\n          <div\n            *ngIf=\"true\"\n            class=\"bottom vx-p-2 vx-justify-center vx-d-flex vx-align-center\"\n          >\n            <button\n              class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n            >\n              SAVE\n            </button>\n          </div>\n        </div>\n      </app-popover>\n    </li>\n  </ul>\n</div>\n","import {\n  Component,\n  ElementRef,\n  HostListener,\n  OnInit,\n  QueryList,\n  ViewChildren,\n} from '@angular/core';\n\n@Component({\n  selector: 'app-preview-matrix-dropdown',\n  templateUrl: './preview-matrix-dropdown.component.html',\n  styleUrls: ['./preview-matrix-dropdown.component.less'],\n  inputs: ['question', 'questionIndex'],\n})\nexport class PreviewMatrixDropdownComponent implements OnInit {\n  question: any;\n  questionIndex: number = 1;\n  isQuickSettings: boolean = true;\n\n  @ViewChildren('scrollMatrixDropdown', { read: ElementRef })\n  public panel!: QueryList<ElementRef>;\n\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  @HostListener('scroll', ['$event'])\n  scrollHandler(event: any) {\n    this.panel['_results'].forEach((panel: any) => {\n      panel['nativeElement'].scrollLeft = event.target.scrollLeft;\n    });\n  }\n}\n","<div class=\"question-block vx-mb-1 vx-p-4\">\n  <div class=\"question-heading vx-pb-3 vx-mb-3\">\n    <span\n      class=\"count vx-fs-13 vx-fw-400 vx-label-txt vx-d-flex vx-align-center vx-justify-center\"\n      >{{ questionIndex }}</span\n    >\n    <span class=\"heading\">\n      <span\n        class=\"vx-fs-16 vx-label-txt vx-lh-6\"\n        [innerHTML]=\"question?.title\"\n      ></span>\n      <span\n        *ngIf=\"question?.isRequired\"\n        class=\"required vx-fs-20 vx-fw-300 vx-ml-1\"\n        >*</span\n      >\n    </span>\n  </div>\n  <div class=\"question-inner vx-d-flex vx-justify-between\">\n    <div class=\"question-inner-inside vx-w-100\">\n      <div\n        class=\"question-description vx-fs-12 vx-paragraph-txt vx-mb-3\"\n        *ngIf=\"\n          question?.hasDescription && question?.description?.trim().length > 0\n        \"\n        [innerHTML]=\"question?.description\"\n      ></div>\n      <div class=\"preview-list\">\n        <div class=\"matrix-dropdown-table\">\n          <div class=\"matrix-table-row table-head vx-d-flex\">\n            <div class=\"left\">\n              <div class=\"body\">\n                <div class=\"title vx-fs-12 vx-label-txt vx-p-2\"></div>\n              </div>\n            </div>\n            <div\n              class=\"right\"\n              (scroll)=\"scrollHandler($event)\"\n              #scrollMatrixDropdown\n            >\n              <div class=\"body\">\n                <ul class=\"columns vx-p-0 vx-m-0 vx-d-flex\">\n                  <li\n                    class=\"vx-d-flex vx-align-center vx-justify-center vx-p-2\"\n                    *ngFor=\"let columns of question?.columns\"\n                  >\n                    <div\n                      class=\"matrix-value vx-fs-12 vx-fw-500 vx-label-txt vx-tt-uppercase vx-d-flex vx-align-center\"\n                    >\n                      <div\n                        class=\"heading\"\n                        [appTooltip]=\"columns?.title\"\n                        placement=\"bottom-left\"\n                        delay=\"0\"\n                        type=\"black\"\n                        [tooltipMandatory]=\"false\"\n                      >\n                        {{ columns?.title ?? \"--\" }}\n                      </div>\n                    </div>\n                  </li>\n                </ul>\n              </div>\n            </div>\n          </div>\n          <div\n            class=\"matrix-table-row vx-d-flex\"\n            *ngFor=\"let eachRow of question?.choices; let rowIndex = index\"\n          >\n            <div class=\"left\">\n              <div class=\"body\">\n                <div\n                  class=\"title vx-fs-12 vx-label-txt vx-lh-7 vx-p-2\"\n                  [appTooltip]=\"eachRow?.title\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{ eachRow?.title }}\n                </div>\n              </div>\n            </div>\n            <div\n              class=\"right\"\n              (scroll)=\"scrollHandler($event)\"\n              #scrollMatrixDropdown\n            >\n              <div class=\"body\">\n                <ul class=\"columns vx-p-0 vx-m-0 vx-d-flex\">\n                  <li\n                    class=\"vx-d-flex vx-align-center vx-justify-center vx-p-2\"\n                    *ngFor=\"\n                      let eachColumns of question?.columns;\n                      let columnIndex = index\n                    \"\n                  >\n                    <div\n                      class=\"matrix-value vx-d-flex vx-align-center vx-justify-center\"\n                    >\n                      <app-cs-select\n                        [dataList]=\"eachColumns?.choices\"\n                        [valueKey]=\"'title'\"\n                        [displayProperty]=\"'title'\"\n                        [selectedValue]=\"'--'\"\n                      ></app-cs-select>\n                    </div>\n                  </li>\n                </ul>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"question-quickSettings\">\n      <app-quick-settings [question]=\"question\"></app-quick-settings>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { shuffle } from 'lodash';\n\n@Component({\n  selector: 'app-preview-dropdown',\n  templateUrl: './preview-dropdown.component.html',\n  styleUrls: ['./preview-dropdown.component.less']\n})\nexport class PreviewDropdownComponent implements OnInit {\n\n\n  @Input() question!: any;\n  choicesForPreviewMode : any = [];\n  constructor() { }\n\n  ngOnInit(): void {\n    this.choicesForPreviewMode = [...this.question.choices];\n    if (this.question.randomize === true) {\n      this.randomize();\n    }\n    if (this.question.hasOther === true &&  this.choicesForPreviewMode.findIndex((x:any) => x.title === \"Other\") < 0){\n      this.choicesForPreviewMode.push({title:'Other'})\n    }\n  }\n  randomize() {\n    this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\n  }\n\n}\n","<div class=\"preview-list\">\n    <div class=\"dropdown-area\">\n        <app-cs-select  [dataList]='choicesForPreviewMode' [valueKey]=\"'title'\" [displayProperty]=\"'title'\" [selectedValue]=\"'Select an option'\"></app-cs-select>\n    </div>\n</div>","import { Component, ElementRef, HostListener, OnInit, QueryList, ViewChildren } from '@angular/core';\n\n@Component({\n  selector: 'app-preview-matrix-rating-scale',\n  templateUrl: './preview-matrix-rating-scale.component.html',\n  styleUrls: ['./preview-matrix-rating-scale.component.less']\n})\nexport class PreviewMatrixRatingScaleComponent implements OnInit {\n  @ViewChildren('scrollMatrixRating', { read: ElementRef }) public panel!: QueryList<ElementRef>;\n  @HostListener('scroll', ['$event'])\n  scrollHandler(event: any) {\n    this.panel['_results'].forEach((panel:any) => {\n      panel['nativeElement'].scrollLeft = event.target.scrollLeft;\n    });\n  }\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"preview-list\">\n    <div class=\"matrix-rating-table vx-mt-5\">\n        <div class=\"rating-table-row table-head vx-d-flex\">\n            <div class=\"left\">\n                <div class=\"body\">\n                    <div class=\"title vx-fs-12 vx-label-txt vx-p-2\"></div>\n                </div>\n            </div>\n            <div class=\"right\" #scrollMatrixRating>\n                <div class=\"body\">\n                    <ul class=\"columns vx-p-0 vx-m-0 vx-d-flex\">\n                        <li class=\"vx-d-flex vx-align-center vx-justify-center vx-p-2\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1]\">\n                            <div class=\"rating-value vx-fs-12 vx-fw-600 vx-label-txt vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\">\n                                <div class=\"heading\" [appTooltip]=\"'Lorem ipsum may be used as a placeholder before the final copy is available.'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Lorem ipsum may be used as a placeholder before the final copy is available.</div>\n                            </div>\n                        </li>\n                    </ul>\n                </div>\n            </div>\n        </div>\n        <div class=\"rating-table-row vx-d-flex\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1]\">\n            <div class=\"left\">\n                <div class=\"body\">\n                    <div class=\"title vx-fs-12 vx-label-txt vx-lh-6 vx-p-2\" [appTooltip]=\"'Lorem ipsum may be used as a placeholder before the final copy is available.'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Lorem ipsum may be used as a placeholder before the final copy is available.</div>\n                </div>\n            </div>\n            <div class=\"right\" (scroll)=\"scrollHandler($event)\" #scrollMatrixRating>\n                <div class=\"body\">\n                    <ul class=\"columns vx-p-0 vx-m-0 vx-d-flex\">\n                        <li class=\"vx-d-flex vx-align-center vx-justify-center vx-p-2\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1]\">\n                            <div class=\"rating-value vx-d-flex vx-align-center vx-justify-center\">\n                                <app-cs-radio></app-cs-radio>\n                            </div>\n                        </li> \n                    </ul>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-preview-ranking',\n  templateUrl: './preview-ranking.component.html',\n  styleUrls: ['./preview-ranking.component.less']\n})\nexport class PreviewRankingComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"preview-list\">\n    <ul class=\"ranking-area vx-p-0 vx-m-0\">\n        <ng-container *ngFor=\"let data of [1, 1, 1, 1, 1]\">\n            <div *ngIf=\"false\" class=\"example-custom-placeholder cdk-drag-placeholder vx-mt-1\"></div>\n            <li class=\"vx-d-flex vx-align-center vx-mt-1\">\n                <div class=\"drag-area vx-d-flex\">\n                    <span class=\"move-icon vx-d-inline-flex vx-justify-center vx-align-center vx-p-1 vx-fs-12 vx-bg-grey \">\n                        <i class=\"icons\">&#xe9d7;</i>\n                    </span>\n                    <input type=\"text\" class=\"rank vx-bg-white vx-paragraph-txt vx-justify-center vx-align-center vx-fs-12 vx-lh-20\" placeholder='1' disabled> \n                    <span class=\"value vx-p-2 vx-lh-6 vx-justify-center vx-align-center vx-paragraph-txt vx-fs-12 vx-bg-grey \" [appTooltip]=\"'Many desktop publishing packages and web page editors.'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Many desktop publishing packages and web page editors desktop publishing packages and web page editors.</span>\n                </div>\n            </li>\n        </ng-container>\n    </ul>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-preview-slider',\n  templateUrl: './preview-slider.component.html',\n  styleUrls: ['./preview-slider.component.less']\n})\nexport class PreviewSliderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"preview-list\">\n    <div class=\"slider-container vx-d-flex vx-align-center vx-p-4 vx-bg-white \">\n        <div class=\"slider-left vx-mr-2\">\n            <div class=\"range-slider\">\n             <input type=\"range\" min=\"1\" max=\"100\" value=\"50\" class=\"vx-slider\">\n            </div>\n            <div class=\"labels vx-justify-between vx-d-flex vx-fs-12\">\n                <span >0</span>\n                <span>100</span>\n            </div>\n        </div>\n        <div class=\"slider-right\">\n            <input type=\"text\" value='50' class=\"vx-text-center\">\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-preview-multiple-textbox',\n  templateUrl: './preview-multiple-textbox.component.html',\n  styleUrls: ['./preview-multiple-textbox.component.less']\n})\nexport class PreviewMultipleTextboxComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"preview-list\">\n    <div class=\"textbox-group vx-d-block\">\n        <div class=\"input-group vx-d-flex vx-mb-2\" *ngFor=\"let data of [1, 1, 1]\">\n            <span class=\"vx-bg-grey vx-label-txt vx-lh-20 vx-fs-12 vx-align-center vx-lh-5 vx-p-2\" [appTooltip]=\"'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry standard dummy text ever since the 1500s.'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.</span>\n            <input class=\"vx-fs-12 vx-lh-20 vx-paragraph-txt vx-p-2\" type=\"text\" placeholder='Please enter a response'>\n        </div>\n    </div>\n</div>","import {\n  Component,\n  ElementRef,\n  HostListener,\n  Input,\n  ViewChild,\n} from '@angular/core';\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport { CommonService } from '../../../../../services/common.service';\n\n@Component({\n  selector: 'app-preview-date-time',\n  templateUrl: './preview-date-time.component.html',\n  styleUrls: ['./preview-date-time.component.less'],\n})\nexport class PreviewDateTimeComponent {\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n  datepickerOverlay = false;\n  @Input() question!: any;\n\n  constructor(private commonService: CommonService) {}\n\n  openDatePicker() {\n    this.datePicker?.api?.open();\n    this.datepickerOverlay = true;\n  }\n\n  closeDatepicker() {\n    this.datePicker?.api?.close();\n    this.datepickerOverlay = false;\n  }\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'date-picker',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datepickerOverlay,\n    };\n    this.commonService.handleDocumentClick(datePickerObject);\n  }\n}\n","<div class=\"preview-list\">\n  <div class=\"date-time vx-mt-5\">\n    <div class=\"input-group vx-d-flex vx-mb-2\" *ngIf=\"question?.hasDate\">\n      <span\n        class=\"label vx-bg-grey vx-lh-24 vx-d-flex vx-text-center vx-p-2 vx-justify-center vx-align-center\"\n      >\n        <span\n          class=\"value vx-fs-11 vx-label-txt vx-tt-uppercase\"\n          [appTooltip]=\"question?.date?.title\"\n          placement=\"bottom-left\"\n          delay=\"0\"\n          type=\"black\"\n          [tooltipMandatory]=\"false\"\n          >{{\n            question?.date?.title == \"\" ? \"Date Label\" : question?.date?.title\n          }}</span\n        >\n      </span>\n      <div class=\"date-time-area\">\n        <i class=\"icons vx-fs-14 vx-paragraph-txt\">&#xe996;</i>\n        <input\n          class=\"datePicker\"\n          (click)=\"openDatePicker()\"\n          placeholder=\"Enter Date\"\n          id=\"date-picker\"\n        />\n        <dp-date-picker\n          [config]=\"{ disableKeypress: true, format: 'DD MMM YYYY' }\"\n          #datePicker\n          placeholder=\"Select Date\"\n          (click)=\"closeDatepicker()\"\n        ></dp-date-picker>\n        <div\n          class=\"overlay\"\n          (click)=\"closeDatepicker()\"\n          *ngIf=\"datepickerOverlay\"\n        ></div>\n      </div>\n    </div>\n    <div class=\"input-group vx-d-flex vx-mb-10\" *ngIf=\"question?.hasTime\">\n      <span\n        class=\"label vx-bg-grey vx-lh-24 vx-d-flex vx-text-center vx-p-2 vx-justify-center vx-align-center\"\n      >\n        <span\n          class=\"value vx-fs-11 vx-label-txt vx-tt-uppercase\"\n          [appTooltip]=\"question?.time?.title\"\n          placement=\"bottom-left\"\n          delay=\"0\"\n          type=\"black\"\n          [tooltipMandatory]=\"false\"\n          >{{\n            question?.time?.title == \"\" ? \"Time Label\" : question?.time?.title\n          }}</span\n        >\n      </span>\n      <div class=\"date-time-area\">\n        <input\n          aria-label=\"12hr format\"\n          [ngxTimepicker]=\"timeOnly\"\n          readonly\n          placeholder=\"Select Time\"\n        />\n        <i class=\"icons vx-fs-14 vx-paragraph-txt\">&#xe955;</i>\n        <ngx-material-timepicker #timeOnly></ngx-material-timepicker>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-preview-file-upload',\n  templateUrl: './preview-file-upload.component.html',\n  styleUrls: ['./preview-file-upload.component.less']\n})\nexport class PreviewFileUploadComponent implements OnInit {\n\n  @Input() question!: any;\n  constructor() { }\n  public fileNamePlaceholder = 'Select file';\n  ngOnInit(): void {\n  }\n  handleFile(evt:any){\n    this.fileNamePlaceholder = evt.target.files[0].name;\n  }\n\n}\n","<div class=\"preview-list\">\n    <div class=\"custom-file-upload vx-d-flex vx-align-center vx-mt-5 vx-p-1\">\n        <input type=\"file\" (change)=\"handleFile($event)\">\n        <span class=\"value vx-fs-12 vx-label-txt vx-d-block vx-pl-2\">{{fileNamePlaceholder}}</span>\n        <span class=\"button vx-d-flex vx-align-center vx-justify-center vx-txt-white vx-bg-blue vx-fs-12 vx-tt-uppercase\">Browse</span>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { EditorService } from '../../../services/editor.service';\nimport { ValidatorService } from '../../../services/validator.service';\n\n@Component({\n  selector: 'app-preview-wrapper',\n  templateUrl: './preview-wrapper.component.html',\n  styleUrls: ['./preview-wrapper.component.less']\n})\nexport class PreviewWrapperComponent implements OnInit {\n\n  @Input() question!: any;\n  @Input() questionIndex!: number;\n  @Output() makeActiveQuestion = new EventEmitter<any>();\n  @Output() validQuestionData = new EventEmitter();\n  errorPresent = false;\n  questionIndexSubscription!: Subscription;\n  viewComments!: boolean;\n  viewAttachments!: boolean;\n  viewMessage!: boolean;\n  constructor(private fd: EditorService, private validator: ValidatorService) { }\n\n  ngOnInit(): void {\n    // if (Object.values(this.question.errorArray).length === 0){\n    // if (!this.question.errorArray || Object.values(this.question.errorArray).length === 0) {\n    //   this.checkForValidationStatus('partial');\n    // }\n    this.checkForValidationStatus('partial');\n  }\n\n  editQuestion() {\n    this.makeActiveQuestion.emit(this.questionIndex);\n  }\n\n  /**\n   * Operation on click of save button\n   */\n  async checkForValidationStatus(mode?:any) {\n    const status = await this.validator.validate(this.question);\n    if (status.valid === true) {\n      this.errorPresent = false;\n      this.validator.validatedQuestions[status.question.name] = status.question;\n      // this.validQuestionData.emit(mode);\n    } else {\n      this.errorPresent = true;\n      delete this.validator.validatedQuestions[status.question.name];\n      \n    }\n  }\n  showComments() {\n    this.viewComments = !this.viewComments;\n  }\n  showAttachments() {\n    this.viewAttachments = !this.viewAttachments;\n  }\n  showMessage() {\n    this.viewMessage = !this.viewMessage;\n  }\n\n\n}\n","<div class=\"preview-wrapper vx-p-5 vx-mb-4\" [class.error]=\"errorPresent === true\">\n    <!-- <app-welcome></app-welcome> -->\n\n    <button  (click)=\"editQuestion()\" class=\"question-edit vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons vx-fs-10 vx-mr-2\">&#xe9ba;</i> EDIT</button>\n    <div class=\"question-no vx-fs-11 vx-fw-600 vx-label-txt vx-tt-uppercase vx-pl-2 vx-mb-5 vx-lh-4\">QUESTION {{questionIndex + 1}} \n        <span class=\"vx-txt-red\" *ngIf=\"question?.isRequired\">*</span></div>\n    <div class=\"question-name vx-fs-16 vx-paragraph-txt vx-lih-6 vx-mb-5\"><span [innerHTML]=\"question?.title=='' ? 'Question' : question?.title\"></span> \n        <i *ngIf=\"question?.hasComments\" class=\"icons info vx-txt-blue vx-ml-1\" [appTooltip]=\"question?.comments\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe932;</i></div>\n    <div class=\"question-description vx-fs-14 vx-label-txt vx-pb-3 vx-mb-5\" *ngIf=\"question?.hasDescription && question?.description.trim().length  > 0 \" [innerHTML]=\"question?.description\"></div>\n\n    <app-preview-multiple-choice *ngIf=\"question.type === 'multiple-choice'\" [question]=\"question\"></app-preview-multiple-choice>\n    <app-preview-checkbox *ngIf=\"question.type === 'checkbox'\" [question]=\"question\"></app-preview-checkbox>\n    <app-preview-image-choice *ngIf=\"question.type === 'image-choice'\"></app-preview-image-choice>\n    <app-preview-star-rating *ngIf=\"question.type === 'star-rating'\"></app-preview-star-rating>\n    <app-preview-single-textbox *ngIf=\"question.type === 'single-textbox'\"></app-preview-single-textbox>\n    <app-preview-comment-box *ngIf=\"question.type === 'comment-box'\"></app-preview-comment-box>\n    <app-preview-matrix-dropdown *ngIf=\"question.type === 'matrix-dropdown'\" ></app-preview-matrix-dropdown>\n    <app-preview-dropdown *ngIf=\"question.type === 'dropdown'\" [question]=\"question\"></app-preview-dropdown>\n    <app-preview-matrix-rating-scale  *ngIf=\"question.type === 'rating-scale'\"></app-preview-matrix-rating-scale>\n    <app-preview-ranking *ngIf=\"question.type === 'ranking'\"> </app-preview-ranking>\n    <app-preview-slider *ngIf=\"question.type === 'slider'\"></app-preview-slider>\n    <app-preview-multiple-textbox *ngIf=\"question.type === 'multiple-textbox'\"></app-preview-multiple-textbox>\n    <app-preview-date-time *ngIf=\"question.type === 'date-time'\" [question]=\"question\"></app-preview-date-time>\n    <app-preview-file-upload *ngIf=\"question.type === 'file-upload'\"></app-preview-file-upload>\n\n    <!-- <app-thank-you></app-thank-you> -->\n</div>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\n\n\n@Component({\n  selector: 'app-question-type',\n  templateUrl: './question-type.component.html',\n  styleUrls: ['./question-type.component.less']\n})\nexport class QuestionTypeComponent implements OnInit {\n@Output() addQuestion = new EventEmitter();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"question-type\">\n    <ul class=\"vx-d-flex vx-flex-wrap vx-p-0 vx-m-0 vx-justify-center\">\n        <li *ngIf=\"false\">\n            <button  class=\"vx-m-0 vx-text-center vx-w-100\" (click)=\"addQuestion.emit('welcome')\">\n                <div class=\"question-icon welcome-screen vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab3;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">WELCOME SCREEN</div>\n            </button>\n        </li>\n        <li  *ngIf=\"false\">\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('thankyou')\">\n                <div class=\"question-icon thank-you-screen vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab2;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">THANK YOU SCREEN</div>\n            </button>\n        </li>\n        <li>\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('multiple-choice')\">\n                <div class=\"question-icon multiple-choice vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeabd;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">MULTIPLE CHOICE</div>\n            </button>\n        </li>\n        <li>\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('checkbox')\">\n                <div class=\"question-icon checkboxes vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeabb;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">CHECKBOXES</div>\n            </button>\n        </li>\n        <li  *ngIf=\"false\">\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('image-choice')\">\n                <div class=\"question-icon image-choice vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xea29;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">IMAGE CHOICE</div>\n            </button>\n        </li>\n        <li  *ngIf=\"false\">\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('star-rating')\">\n                <div class=\"question-icon star-rating vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xea71;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">STAR RATINGS</div>\n            </button>\n        </li>\n        <li>\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('single-textbox')\">\n                <div class=\"question-icon single-textbox vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab5;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">SINGLE TEXTBOX</div>\n            </button>\n        </li>\n        <li  *ngIf=\"false\">\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('comment-box')\">\n                <div class=\"question-icon comment-box vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xe9a6;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">COMMENT BOX</div>\n            </button>\n        </li>\n        <li  *ngIf=\"false\">\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('matrix-dropdown')\">\n                <div class=\"question-icon matrix-dropdown vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab7;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">MATRIX OF DROPDOWNS</div>\n            </button>\n        </li>\n        <li>\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('dropdown')\">\n                <div class=\"question-icon dropdown-icon vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab9;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">DROPDOWN</div>\n            </button>\n        </li>\n        <li  *ngIf=\"false\">\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('rating-scale')\">\n                <div class=\"question-icon matrix-rating vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab8;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">MATRIX & RATING SCALE</div>\n            </button>\n        </li>\n        <li  *ngIf=\"false\">\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('ranking')\">\n                <div class=\"question-icon ranking vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeb03;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">RANKING</div>\n            </button>\n        </li>\n        <li  *ngIf=\"false\">\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('slider')\">\n                <div class=\"question-icon slider vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab6;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">SLIDER</div>\n            </button>\n        </li>\n        <li  *ngIf=\"false\">\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('multiple-textbox')\">\n                <div class=\"question-icon multiple-textbox vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab4;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">MULTIPLE TEXTBOXES</div>\n            </button>\n        </li>\n        <li >\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('date-time')\">\n                <div class=\"question-icon date-time vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeaba;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">DATE & TIME</div>\n            </button>\n        </li>\n        <li>\n            <button class=\"vx-m-0 vx-text-center vx-w-100\"  (click)=\"addQuestion.emit('file-upload')\">\n                <div class=\"question-icon file-upload vx-d-flex vx-align-center vx-justify-center vx-mb-4\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xea97;</i></div>\n                <div class=\"name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">FILE UPLOAD</div>\n            </button>\n        </li>\n    </ul>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-choice-settings-panel',\n  templateUrl: './choice-settings-panel.component.html',\n  styleUrls: ['./choice-settings-panel.component.less']\n})\nexport class ChoiceSettingsPanelComponent implements OnInit {\n  public score!: number;\n  @Input() defaultScore: any;\n  @Input() negativeScore: any;\n\n  @Input() isFailed!: boolean;\n  @Input('score')\n  set Score(score: any) {\n    \n    if (score === undefined) {\n      this.score = this.defaultScore ? this.defaultScore : 1;\n    } else {\n      this.score = score;\n    }\n    this.changeScore(this.score);\n    this.isFailedChange.emit(this.isFailed ? this.isFailed : false);\n  }\n  @Input() scoreVisible !: boolean;\n  @Output() isFailedChange = new EventEmitter<boolean>();\n  @Output() scoreChange = new EventEmitter<number>();\n  constructor() { }\n\n  ngOnInit(): void {\n\n  }\n\n  changeScore(evt: any) {\n    this.scoreChange.emit(evt);\n  }\n  changeFailed(evt: any) {\n    if (evt === false) {\n      this.score = this.defaultScore ? this.defaultScore : 1;\n      // if (this.color === '#c60022') {\n      //   this.color = '#000000';\n      // }\n\n      this.scoreChange.emit(this.score);\n    } else {\n      this.score = this.negativeScore ? this.negativeScore : 0;\n      // this.color = '#c60022';\n      this.scoreChange.emit(this.score);\n    }\n    this.isFailedChange.emit(evt);\n  }\n\n  scoreManger(mode: any) {\n    if (mode === '+') {\n      this.score = this.score + 1;\n    } else if (mode === '-') {\n      if (this.score > 0) {\n        this.score = this.score - 1;\n      }\n    }\n    this.scoreChange.emit(this.score);\n  }\n\n\n\n}\n","<div  class=\"reponse-choice vx-d-flex vx-align-center vx-justify-end vx-mt-1\">\n    <div class=\"choice-item vx-d-flex vx-align-center vx-p-2\">\n        <span class=\"text vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\">ADD SCORE:</span>\n        <button (click)=\"scoreManger('-')\" class=\"minus-btn vx-fs-14 vx-fw-600 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-mr-1 vx-d-flex vx-align-center\">-</button>\n        <input type=\"number\"type=\"number\" [(ngModel)]='score' (ngModelChange)=\"changeScore($event)\" min=\"0\"\n        oninput=\"this.value = Math.abs(this.value)\"/>\n        <button (click)=\"scoreManger('+')\" class=\"plus-btn vx-fs-14 vx-fw-600 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-mr-1 vx-d-flex vx-align-center\">+</button>\n    </div>\n    <div class=\"choice-item vx-d-flex vx-align-center vx-p-2 vx-ml-1\">\n        <span class=\"text vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-5\">SET AS A FAILED RESPONSE?</span>\n        <i class=\"icons info vx-fs-14 vx-txt-blue vx-ml-1 vx-mr-2\" appTooltip=\"If this response choice is 'Set as a failed response' VComply would automatically flag it as an exception when selected by the respondent. This can help identify areas for improvement and in the development of corrective action plans.\" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n        <app-cs-switch [(ngValue)]='isFailed' (ngValueChange)=\"changeFailed($event)\"></app-cs-switch>\n    </div>\n</div>","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-multiple-choice',\n  templateUrl: './multiple-choice.component.html',\n  styleUrls: ['./multiple-choice.component.less']\n})\nexport class MultipleChoiceComponent implements OnInit {\n  @Input() question!: any;\n  @Input() service: any;\n  @Output() addOption = new EventEmitter<any>();\n  @Output() deleteOption = new EventEmitter<any>();\n  constructor(private cdr: ChangeDetectorRef) { }\n\n  ngOnInit(): void {\n  }\n  modifyOption(mode: string, choiceIndex: number, type: string){\n    if (mode === 'ADD'){this.addOption.emit({choiceIndex, type}); }\n    else if (mode === 'DELETE'){this.deleteOption.emit({choiceIndex, type}); }\n}\n\n}\n","<div class=\"multiple-choice vx-d-flex vx-mb-4\" *ngFor=\"let choice of question?.choices; let choiceIndex = index\">\n    <div class=\"left\">\n        <input type=\"text\" placeholder=\"Option\" [attr.id]='\"radio-\"+choiceIndex' (keyup.enter)=\"modifyOption('ADD',choiceIndex,'radio-')\" [(ngModel)]=\"choice.title\" />\n        <div class=\"option-color vx-d-flex vx-align-center vx-justify-center\">\n            <input type=\"color\" [(ngModel)]=\"choice.color\">\n            <i class=\"icons vx-fs-16\" [style.color]='choice.color'>&#xeb01;</i>\n        </div>\n        <!-- <button  class=\"choice-icon vx-fs-16 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe913;</i></button> -->\n        <app-choice-settings-panel [defaultScore]=\"service.score.defaultScore\" [negativeScore]=\"service.score.negativeScore\" [scoreVisible]='service.formsPage.settings.assessmentMode' [(isFailed)]='choice.isFailed' [(score)]='choice.score'></app-choice-settings-panel>\n    </div>\n    <div class=\"right vx-d-flex vx-align-center vx-ml-1\">\n        <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"  (click)=\"modifyOption('ADD',choiceIndex,'radio-')\">+</button>\n        <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"  (click)=\"modifyOption('DELETE',choiceIndex,'radio-')\" [class.disabled]=\"question?.choices?.length === 1\">-</button>\n    </div>\n</div>\n<div class=\"multiple-choice vx-d-flex vx-mb-4\" *ngIf=\"question?.hasOther\">\n    <div class=\"left\">\n        <input type=\"text\" disabled placeholder=\"Option\" [attr.id]='\"radio-\"' [(ngModel)]=\"question.otherValue\">\n        <div class=\"option-color vx-d-flex vx-align-center vx-justify-center\">\n            <input type=\"color\" [(ngModel)]=\"question.otherConfig.color\">\n            <i class=\"icons vx-fs-16\"  [style.color]='question.otherConfig.color'>&#xeb01;</i>\n        </div>\n        <!-- <button  class=\"choice-icon vx-fs-16 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe913;</i></button> -->\n      <app-choice-settings-panel [scoreVisible]='service.formsPage.settings.assessmentMode'\n       [(isFailed)]='question.otherConfig.isFailed'\n       [defaultScore]=\"service.score.defaultScore\" [negativeScore]=\"service.score.negativeScore\"\n       [(score)]='question.otherConfig.score'></app-choice-settings-panel>\n    </div>\n  \n</div>","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-checkbox',\n  templateUrl: './checkbox.component.html',\n  styleUrls: ['./checkbox.component.less']\n})\nexport class CheckboxComponent implements OnInit {\n  @Input() question!: any;\n  @Input() service: any;\n  @Output() addOption = new EventEmitter<any>();\n  @Output() deleteOption = new EventEmitter<any>();\n  constructor(private cdr: ChangeDetectorRef) { }\n\n  ngOnInit(): void {\n  }\n  modifyOption(mode: string, choiceIndex: number, type: string){\n    if (mode === 'ADD'){this.addOption.emit({choiceIndex, type}); }\n    else if (mode === 'DELETE'){this.deleteOption.emit({choiceIndex, type}); }\n}\n\n}\n","<div class=\"checkbox vx-d-flex vx-mb-4\" *ngFor=\"let choice of question?.choices; let choiceIndex = index\">\n    <div class=\"left\">\n        <input type=\"text\" placeholder=\"Option\" [attr.id]='\"checkbox-\"+choiceIndex' (keyup.enter)=\"modifyOption('ADD',choiceIndex,'checkbox-')\" [(ngModel)]=\"choice.title\"/>\n        <div class=\"option-color vx-d-flex vx-align-center vx-justify-center\">\n            <input type=\"color\">\n            <i class=\"icons vx-fs-16\" style=\"color: green;\">&#xeb01;</i>\n        </div>\n        <!-- <button  class=\"choice-icon vx-fs-16 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe913;</i></button> -->\n        <app-choice-settings-panel [defaultScore]=\"service.score.defaultScore\" [negativeScore]=\"service.score.negativeScore\" [scoreVisible]='service.formsPage.settings.assessmentMode' [(isFailed)]='choice.isFailed' [(score)]='choice.score'></app-choice-settings-panel>\n    </div>\n    <div class=\"right vx-d-flex vx-align-center vx-ml-1\">\n        <button (click)=\"modifyOption('ADD',choiceIndex,'checkbox-')\" class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">+</button>\n        <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" (click)=\"modifyOption('DELETE',choiceIndex,'radio-')\" [class.disabled]=\"question?.choices?.length === 1\">-</button>\n    </div>\n</div>\n<div class=\"checkbox vx-d-flex vx-mb-4\" *ngIf=\"question?.hasOther\">\n    <div class=\"left\">\n        <input type=\"text\" disabled placeholder=\"Option\" [(ngModel)]=\"question.otherValue\"/>\n        <div class=\"option-color vx-d-flex vx-align-center vx-justify-center\">\n            <input type=\"color\" [(ngModel)]=\"question.otherConfig.color\">\n            <i class=\"icons vx-fs-16\" [style.color]='question.otherConfig.color'>&#xeb01;</i>\n        </div>\n        <!-- <button  class=\"choice-icon vx-fs-16 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe913;</i></button> -->\n        <app-choice-settings-panel [scoreVisible]='service.formsPage.settings.assessmentMode'\n        [(isFailed)]='question.otherConfig.isFailed'\n        [defaultScore]=\"service.score.defaultScore\" [negativeScore]=\"service.score.negativeScore\"\n        [(score)]='question.otherConfig.score'></app-choice-settings-panel>\n    </div>\n    \n</div>","import { Component, OnInit } from '@angular/core';\nimport { ASSETS } from '../../../../../../lib/constants/assets.constants';\n@Component({\n  selector: 'app-image-choice',\n  templateUrl: './image-choice.component.html',\n  styleUrls: ['./image-choice.component.less'],\n})\nexport class ImageChoiceComponent implements OnInit {\n  ASSETS = ASSETS;\n\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"image-choice vx-d-flex vx-mb-4\">\n  <div class=\"left\">\n    <input type=\"text\" placeholder=\"Option\" />\n    <div class=\"image-choice\">\n      <div\n        *ngIf=\"false\"\n        class=\"no-image vx-d-flex vx-align-center vx-justify-center\"\n      >\n        <i class=\"icons vx-fs-14\">&#xeb26;</i>\n      </div>\n      <img [src]=\"ASSETS.image_choice\" />\n      <div class=\"browse-btn vx-d-flex vx-align-center vx-justify-center\">\n        <input type=\"file\" />\n        <span class=\"vx-fs-10 vx-fw-600 vx-txt-blue vx-tt-uppercase\"\n          >BROWSE</span\n        >\n      </div>\n      <div\n        *ngIf=\"false\"\n        class=\"loader vx-d-flex vx-align-center vx-justify-center\"\n      >\n        <i class=\"icons loader-icon vx-fs-16 vx-label-txt\">&#xe929;</i>\n      </div>\n    </div>\n  </div>\n  <div class=\"right vx-d-flex vx-align-center vx-ml-1\">\n    <button\n      class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\n    >\n      +\n    </button>\n    <button\n      class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\n      [class.disabled]=\"false\"\n    >\n      -\n    </button>\n  </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-star-rating',\n  templateUrl: './star-rating.component.html',\n  styleUrls: ['./star-rating.component.less']\n})\nexport class StarRatingComponent implements OnInit {\n  specificValue = true;\n  scaleRange = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  clickSpecificValue() {\n    this.specificValue = true;\n    this.scaleRange = false;\n  }\n\n  clickScaleRange() {\n    this.scaleRange = true;\n    this.specificValue = false;\n  }\n\n}\n","<div class=\"star-rating vx-d-flex vx-align-center\">\n    <div class=\"star-rating-item vx-mr-3\">\n        <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SHAPE</div>\n        <div class=\"rating-select-box vx-d-flex vx-align-center vx-justify-between vx-p-2\" appPopover (click)=\"shape.popover()\" position=\"right\">\n            <span class=\"value vx-fs-12 vx-paragraph-txt\">Number</span>\n            <i class=\"icons vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n        </div>\n        <app-popover #shape>\n            <div class=\"rating-popup\">\n                <ul class=\"vx-p-0 vx-m-0\">\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">Number</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">Smiley</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">Thumb</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">Star</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">Heart</span>\n                    </li>\n                </ul>\n            </div>\n        </app-popover>\n    </div>\n    <div class=\"star-rating-item vx-mr-3\">\n        <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SCALE</div>\n        <div class=\"rating-select-box vx-d-flex vx-align-center vx-justify-between vx-p-2\" appPopover (click)=\"scale.popover()\" position=\"right\">\n            <span class=\"value vx-fs-12 vx-paragraph-txt\">2</span>\n            <i class=\"icons vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n        </div>\n        <app-popover #scale>\n            <div class=\"rating-popup\">\n                <ul class=\"vx-p-0 vx-m-0\">\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">2</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">3</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">4</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">5</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">6</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">7</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">8</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">9</span>\n                    </li>\n                    <li class=\"vx-p-2 vx-pt-1 vx-pb-1\">\n                        <input type=\"radio\"/>\n                        <span class=\"vx-fs-12 vx-paragraph-txt\">10</span>\n                    </li>\n                </ul>\n            </div>\n        </app-popover>\n    </div>\n    <div class=\"star-rating-item vx-mr-3\">\n        <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">COLOR</div>\n        <div class=\"rating-select-box vx-d-flex vx-align-center vx-justify-between vx-p-2\">\n            <div class=\"vx-d-flex vx-align-center\">\n                <span class=\"color-box vx-mr-1\" style=\"background: #1e5dd3;\"></span>\n                <span class=\"value vx-fs-12 vx-paragraph-txt\">#1e5dd3</span>\n            </div>\n            <i class=\"icons vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n            <input type=\"color\">\n        </div>\n    </div>\n</div>\n\n<div class=\"star-rating-label vx-mt-5 vx-pt-3\">\n    <div class=\"heading vx-fs-12 vx-fw-500 vx-label-txt vx-mb-1\">Add rating label</div>\n    <div class=\"label-menu vx-mt-3 vx-mb-5\">\n        <ul class=\"vx-d-flex vx-p-0 vx-m-0\">\n            <li class=\"vx-mr-5\" [class.active]=\"specificValue\"><button (click)=\"clickSpecificValue()\" class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-m-0 vx-p-0 vx-d-flex vx-align-center\">SPECIFIC VALUE</button></li>\n            <li class=\"vx-mr-5\" [class.active]=\"scaleRange\"><button (click)=\"clickScaleRange()\" class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-m-0 vx-p-0 vx-d-flex vx-align-center\">SCALE RANGE</button></li>\n        </ul>\n    </div>\n    <div *ngIf=\"specificValue\" class=\"value-list\">\n        <ul class=\"vx-p-0 vx-m-0\">\n            <li class=\"vx-mb-2\">\n                <div class=\"label\">\n                    <input type=\"text\" placeholder=\"Please enter a response\" />\n                    <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-text-center vx-pr-2\">1</div>\n                </div>\n            </li>\n        </ul>\n    </div>\n    <div *ngIf=\"scaleRange\" class=\"range-list vx-d-flex vx-align-center\">\n        <input type=\"text\" value=\"Not at all likely\" />\n        <span class=\"vx-fs-12 vx-fw-500 vx-label-txt vx-tt-uppercase vx-ml-3 vx-mr-3\">TO</span>\n        <input type=\"text\" value=\"Extreme likely\" />\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-matrix-dropdown',\n  templateUrl: './matrix-dropdown.component.html',\n  styleUrls: ['./matrix-dropdown.component.less']\n})\nexport class MatrixDropdownComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"matrix-dropdown vx-mb-4\">\n    <div class=\"label-heading vx-fs-12 vx-fw-500 vx-label-txt vx-mb-1\">Rows</div>\n    <div class=\"option-list\">\n        <ul class=\"vx-p-0 vx-m-0\">\n            <li class=\"vx-d-flex\">\n                <div class=\"left\">\n                    <input type=\"text\" placeholder=\"Option\" />\n                </div>\n                <div class=\"right vx-d-flex vx-align-center vx-ml-1\">\n                    <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                    <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">-</button>\n                </div>\n            </li>\n        </ul>\n    </div>\n    <div class=\"label-heading vx-fs-12 vx-fw-500 vx-label-txt vx-mb-1\">Columns</div>\n    <div class=\"option-list\">\n        <ul class=\"vx-p-0 vx-m-0\">\n            <li>\n                <div class=\"vx-d-flex\">\n                    <div class=\"left\">\n                        <input type=\"text\" placeholder=\"Column\" />\n                    </div>\n                    <div class=\"right vx-d-flex vx-align-center vx-ml-1\">\n                        <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                        <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">-</button>\n                    </div>\n                </div>\n                <div class=\"child-option-list\">\n                    <ul>\n                        <li class=\"vx-d-flex vx-mt-2\">\n                            <div class=\"left\">\n                                <input type=\"text\" placeholder=\"Option\" />\n                            </div>\n                            <div class=\"right vx-d-flex vx-align-center vx-ml-1\">\n                                <button class=\"close vx-fs-16 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\"><i class=\"icons\">&#xe9ae;</i></button>\n                            </div>\n                        </li>\n                        <button class=\"add vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pl-3 vx-m-0 vx-mt-2 vx-d-flex vx-align-center\"><i class=\"icons vx-fs-12 vx-txt-blue vx-mr-2\">&#xe915;</i> ADD OPTION</button>\n                    </ul>\n                </div>\n            </li>\n        </ul>\n    </div>\n</div>","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-build-dropdown',\n  templateUrl: './dropdown.component.html',\n  styleUrls: ['./dropdown.component.less']\n})\nexport class DropdownComponent implements OnInit {\n  @Input() question!: any;\n  @Input() service: any;\n  @Output() addOption = new EventEmitter<any>();\n  @Output() deleteOption = new EventEmitter<any>();\n  constructor(private cdr: ChangeDetectorRef) { }\n\n  ngOnInit(): void {\n  }\n  modifyOption(mode: string, choiceIndex: number, type: string){\n    if (mode === 'ADD'){this.addOption.emit({choiceIndex, type}); }\n    else if (mode === 'DELETE'){this.deleteOption.emit({choiceIndex, type}); }\n}\n}\n","<div class=\"dropdowna vx-d-flex vx-mb-4\" *ngFor=\"let choice of question?.choices; let choiceIndex = index\">\n    <div class=\"left\">\n        <input type=\"text\" placeholder=\"Option\" [attr.id]='\"radio-\"+choiceIndex' (keyup.enter)=\"modifyOption('ADD',choiceIndex,'dropdown-')\" [(ngModel)]=\"choice.title\"  />\n        <div class=\"option-color vx-d-flex vx-align-center vx-justify-center\">\n            <input type=\"color\" [(ngModel)]=\"choice.color\">\n            <i class=\"icons vx-fs-16\" [style.color]='choice.color'>&#xeb01;</i>\n        </div>\n        <!-- <button  class=\"choice-icon vx-fs-16 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe913;</i></button> -->\n        <app-choice-settings-panel [defaultScore]=\"service.score.defaultScore\" [negativeScore]=\"service.score.negativeScore\" [scoreVisible]='service.formsPage.settings.assessmentMode' [(isFailed)]='choice.isFailed' [(score)]='choice.score'></app-choice-settings-panel>\n    </div>\n    <div class=\"right vx-d-flex vx-align-center vx-ml-1\">\n        <button (click)=\"modifyOption('ADD',choiceIndex,'dropdown-')\" class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">+</button>\n        <button (click)=\"modifyOption('DELETE',choiceIndex,'dropdown-')\" class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"question?.choices?.length === 1\">-</button>\n    </div>\n</div>\n<div class=\"dropdowna vx-d-flex vx-mb-4\" *ngIf=\"question?.hasOther\">\n    <div class=\"left\">\n        <input type=\"text\" disabled placeholder=\"Option\" [attr.id]='\"dropdown-\"' [(ngModel)]=\"question.otherValue\"/>\n        <div class=\"option-color vx-d-flex vx-align-center vx-justify-center\">\n            <input type=\"color\"[(ngModel)]=\"question.otherConfig.color\">\n            <i class=\"icons vx-fs-16\"  [style.color]='question.otherConfig.color'>&#xeb01;</i>\n        </div>\n        <!-- <button  class=\"choice-icon vx-fs-16 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe913;</i></button> -->\n        <app-choice-settings-panel [scoreVisible]='service.formsPage.settings.assessmentMode'\n        [(isFailed)]='question.otherConfig.isFailed'\n        [defaultScore]=\"service.score.defaultScore\" [negativeScore]=\"service.score.negativeScore\"\n        [(score)]='question.otherConfig.score'></app-choice-settings-panel>\n    </div>\n \n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-matrix-rating-scale',\n  templateUrl: './matrix-rating-scale.component.html',\n  styleUrls: ['./matrix-rating-scale.component.less']\n})\nexport class MatrixRatingScaleComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"matrix-rating-scale vx-mb-4\">\n    <div class=\"label-heading vx-fs-12 vx-fw-500 vx-label-txt vx-mb-1\">Rows</div>\n    <div class=\"option-list\">\n        <ul class=\"vx-p-0 vx-m-0\">\n            <li class=\"vx-d-flex\">\n                <div class=\"left\">\n                    <input type=\"text\" placeholder=\"Option\" />\n                </div>\n                <div class=\"right vx-d-flex vx-align-center vx-ml-1\">\n                    <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                    <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">-</button>\n                </div>\n            </li>\n        </ul>\n    </div>\n    <div class=\"label-heading vx-fs-12 vx-fw-500 vx-label-txt vx-mb-1\">Columns</div>\n    <div class=\"option-list\">\n        <ul class=\"vx-p-0 vx-m-0\">\n            <li>\n                <div class=\"vx-d-flex\">\n                    <div class=\"left\">\n                        <input type=\"text\" placeholder=\"Option\" />\n                    </div>\n                    <div class=\"right vx-d-flex vx-align-center vx-ml-1\">\n                        <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                        <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">-</button>\n                    </div>\n                </div>\n            </li>\n        </ul>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-ranking',\n  templateUrl: './ranking.component.html',\n  styleUrls: ['./ranking.component.less']\n})\nexport class RankingComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"ranking vx-mb-4\">\n    <div class=\"option-list\">\n        <ul class=\"vx-p-0 vx-m-0\">\n            <li class=\"vx-d-flex\">\n                <div class=\"left\">\n                    <input type=\"text\" placeholder=\"Option\" />\n                </div>\n                <div class=\"right vx-d-flex vx-align-center vx-ml-1\">\n                    <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                    <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">-</button>\n                </div>\n            </li>\n        </ul>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-slider',\n  templateUrl: './slider.component.html',\n  styleUrls: ['./slider.component.less']\n})\nexport class SliderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"slider\">\n    <div class=\"heading vx-fs-12 vx-fw-500 vx-label-txt vx-mb-5\">Adjust Slider Scale</div>\n    <div class=\"vx-d-flex vx-align-center\">\n        <div class=\"slider-item vx-mr-5\">\n            <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2\">SCALE RANGE</div>\n            <div class=\"vx-d-flex vx-align-center\">\n                <input class=\"slide-input\" type=\"number\" value=\"0\">\n                <span class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-ml-2 vx-mr-2\">TO</span>\n                <input class=\"slide-input\" type=\"number\" value=\"100\">\n            </div>\n        </div>\n        <div class=\"slider-item\">\n            <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2\">STEP SIZE</div>\n            <input class=\"slide-input\" type=\"number\" value=\"10\">\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-multiple-textbox',\n  templateUrl: './multiple-textbox.component.html',\n  styleUrls: ['./multiple-textbox.component.less']\n})\nexport class MultipleTextboxComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"multiple-textbox vx-d-flex vx-mb-4\">\n    <div class=\"left\">\n        <div class=\"label vx-mb-2\">\n            <input type=\"text\" placeholder=\"Please enter a response\" />\n            <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-pr-1\">LABEL 1</div>\n        </div>\n        <input type=\"text\" placeholder=\"Please enter a response\" />\n    </div>\n    <div class=\"right vx-d-flex vx-align-center vx-ml-1\">\n        <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">+</button>\n        <button class=\"vx-fs-24 vx-paragraph-txt vx-p-0 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">-</button>\n    </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-build-date-time',\n  templateUrl: './date-time.component.html',\n  styleUrls: ['./date-time.component.less']\n})\nexport class DateTimeComponent implements OnInit {\n  @Input() question!: any;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"date-time vx-mb-4\">\n    <div class=\"left vx-mb-2\" *ngIf=\"question.hasDate\">\n        <div class=\"label\">\n            <input type=\"text\" placeholder=\"Enter date label\" [(ngModel)]=\"question.date.title\"/>\n            <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-pr-1\">DATE</div>\n        </div>\n    </div>\n    <div class=\"left vx-mb-2\" *ngIf=\"question.hasTime\">\n        <div class=\"label\">\n            <input type=\"text\" placeholder=\"Enter time label\" [(ngModel)]=\"question.time.title\" />\n            <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-pr-1\">TIME</div>\n        </div>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-weightage-selector',\n  templateUrl: './weightage-selector.component.html',\n  styleUrls: ['./weightage-selector.component.less']\n})\nexport class WeightageSelectorComponent implements OnInit {\n\n  constructor() { }\n  public value!: number;\n  public score!: number;\n  @Input('value')\n  set Value(value: number) {\n    if (value === undefined){\n      this.value = 100;\n    }else{\n      this.value = value;\n    }\n    this.changeValue(this.value);\n}\n@Output() valueChange = new EventEmitter<number>();\n\nchangeValue(evt:any){\n  this.valueChange.emit(evt);\n}\n  ngOnInit(): void {\n    this.checkWeightValidity();\n  }\n\n  weightManager(mode:any){\n    if (mode === '+'){\n      if (this.value < 100){\n        this.value = this.value + 1;\n      }\n\n    }else if (mode === '-'){\n      if (this.value > 1 ){\n       this.value = this.value - 1;\n      }\n    }\n    this.changeValue(this.value);\n }\n\n checkWeightValidity(){\n   if (this.value  > 100){\n     this.value = 100;\n   }else if (this.value < 1){\n     this.value = 100;\n   }\n }\n\n\n}\n","<div class=\"weightage vx-d-flex vx-align-center\">\n    <span class=\"text vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-pl-2 vx-pr-2 vx-lh-5\">SET WEIGHTAGE:</span>\n    <input type=\"number\" value='100' (focusout)=\"checkWeightValidity()\" type=\"number\" [(ngModel)]=\"value\" (ngModelChange)=\"changeValue($event)\" />\n    <button (click)=\"weightManager('+')\" class=\"arrow up vx-fs-8 vx-paragraph-txt vx-m-0 vx-p-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe9e7;</i></button>\n    <button (click)=\"weightManager('-')\"  class=\"arrow down vx-fs-8 vx-paragraph-txt vx-m-0 vx-p-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe9e8;</i></button>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { EditorService } from '../../services/editor.service';\n\n@Component({\n  selector: 'app-quick-setting',\n  templateUrl: './quick-settings.component.html',\n  styleUrls: ['./quick-settings.component.less']\n})\nexport class QuickSettingsComponent implements OnInit {\n\n  constructor(public fd: EditorService) { }\n\n  ngOnInit(): void {\n    this.populateSelectedQuestionType();\n    this.populateQuickSettingsList();\n  }\n  @Input() questionIndex: any;\n  @Input() question: any;\n  @Output() typeChanged = new EventEmitter<any>();\n  selectedQuestionDetails = { questionValue: '', questionName: '', questionIcon: '', questionClass: '' };\n  questionTypeDropdown = [\n    { questionValue: 'multiple-choice', questionName: 'Multiple Choice', questionIcon: '&#xeabd;', questionClass: 'multiple-choice' },\n    { questionValue: 'checkbox', questionName: 'Checkboxes', questionIcon: '&#xeabb;', questionClass: 'checkboxes' },\n    // { questionValue: 'image-choice', questionName: 'Image Choice', questionIcon: '&#xea29;', questionClass: 'image-choice' },\n    // { questionValue: 'star-rating', questionName: 'Star Ratings', questionIcon: '&#xea71;', questionClass: 'star-rating' },\n    { questionValue: 'single-textbox', questionName: 'Single Textbox', questionIcon: '&#xeab5;', questionClass: 'single-textbox' },\n    // { questionValue: 'comment-box', questionName: 'Comment Box', questionIcon: '&#xe9a6;', questionClass: 'comment-box' },\n    // { questionValue: 'matrix-dropdown', questionName: 'Matrix of Dropdown', questionIcon: '&#xeab7;', questionClass: 'matrix-dropdown' },\n    { questionValue: 'dropdown', questionName: 'Dropdown', questionIcon: '&#xeab9;', questionClass: 'dropdown-icon' },\n    // { questionValue: 'rating-scale', questionName: 'Matrix & Rating Scale', questionIcon: '&#xeab8;', questionClass: 'matrix-rating' },\n    // { questionValue: 'ranking', questionName: 'Ranking', questionIcon: '&#xeb03;', questionClass: 'ranking' },\n    // { questionValue: 'slider', questionName: 'Slider', questionIcon: '&#xeab6;', questionClass: 'slider' },\n    // { questionValue: 'multiple-textbox', questionName: 'Multiple Textboxes', questionIcon: '&#xeab4;', questionClass: 'multiple-textbox' },\n    { questionValue: 'date-time', questionName: 'Date & Time', questionIcon: '&#xeaba;', questionClass: 'date-time' },\n    { questionValue: 'file-upload', questionName: 'File Upload', questionIcon: '&#xea97;', questionClass: 'file-upload' },\n  ];\n\n  quickSettingsList: any = [];\n  optionsForQuickSettings: any = [\n    {\n      title: 'Is required',\n      toolTip: 'You can use this option to ensure that important questions are not left unanswered.' +\n        'If enabled, the respondent cannot submit the response to the assessment unless the question is answered.',\n      optionType: 'required',\n      toggleValue: 'isRequired',\n      eligibleQuestionTypes: ['image-choice', 'checkbox', 'single-textbox', 'multiple-choice', 'file-upload', 'star-rating',\n        'comment-box', 'matrix-dropdown', 'rating-scale', 'ranking', 'slider', 'multiple-textbox', 'date-time', 'dropdown']\n    },\n    {\n      title: 'Edit Placeholder',\n      toolTip: 'You can customize the placeholder text to provide more relevant information to the respondents taking the ' +\n        `assessment` + '.',\n      optionType: 'placeholder',\n      toggleValue: 'isPlaceholder',\n      eligibleQuestionTypes: ['single-textbox', 'comment-box', 'multiple-textbox']\n    },\n    {\n      title: 'Description',\n      toolTip: 'Add more context to your assessment questions by providing more details.',\n      optionType: 'questiondescription',\n      toggleValue: 'hasDescription',\n      eligibleQuestionTypes: ['image-choice', 'checkbox', 'single-textbox', 'multiple-choice', 'file-upload', 'star-rating',\n        'comment-box', 'matrix-dropdown', 'rating-scale', 'ranking', 'slider', 'multiple-textbox', 'date-time', 'dropdown']\n    },\n    {\n      title: 'Comment',\n      toolTip: 'You can provide additional information about the question using this option.',\n      optionType: 'comments',\n      toggleValue: 'hasComments',\n      eligibleQuestionTypes: ['image-choice', 'checkbox', 'single-textbox', 'multiple-choice', 'file-upload', 'star-rating',\n        'comment-box', 'matrix-dropdown', 'rating-scale', 'ranking', 'slider', 'multiple-textbox', 'date-time', 'dropdown']\n    },\n    {\n      title: '\\'Other\\' Answer Choice',\n      toolTip: 'You can add ‘Other’ as an answer choice so that your respondents can provide details and or alternate answers.',\n      optionType: 'other',\n      toggleValue: 'hasOther',\n      eligibleQuestionTypes: ['checkbox', 'multiple-choice', 'multiple-textbox', 'dropdown']\n    },\n    {\n      title: 'Randomize',\n      toolTip: 'To avoid order bias while answering a question, you can randomize the answer order' +\n        'every time the respondents view the assessment.',\n      optionType: 'randomize',\n      toggleValue: 'randomize',\n      eligibleQuestionTypes: ['checkbox', 'multiple-choice', 'matrix-dropdown', 'rating-scale', 'ranking', 'multiple-textbox', 'dropdown']\n    },\n    {\n      title: 'Switch Alignments',\n      toolTip: 'You can choose to present the answer choices one after the other in vertical columns or display in a horizontal sequence.',\n      optionType: 'alignment',\n      toggleValue: 'alignment',\n      eligibleQuestionTypes: ['checkbox', 'multiple-choice']\n    },\n    {\n      title: 'Add rating labels',\n      toolTip: 'You can add labels above your icons to indicate what the scale represents.',\n      optionType: 'ratingLabel',\n      toggleValue: 'hasRatingLabel',\n      eligibleQuestionTypes: ['star-rating']\n    },\n    {\n      title: 'Character Length',\n      toolTip: 'This option lets you set a maximum and minimum character length criteria' +\n        'that the respondents must follow while answering the question.',\n      optionType: 'characterLength',\n      toggleValue: 'hasCharacterLength',\n      eligibleQuestionTypes: ['single-textbox', 'comment-box']\n    },\n    {\n      title: 'Use weights',\n      toolTip: 'This option allows you to specify a weight or score to each column of the matrix question.' +\n        'This is useful when you\\'re analyzing the data and wanting to tally up average scores to each of the answers.',\n      optionType: 'useWeights',\n      toggleValue: 'hasWeight',\n      eligibleQuestionTypes: ['rating-scale']\n    },\n    {\n      title: 'Show numerical input box',\n      toolTip: 'This allows the respondent to select a scale on the slider by entering the value.',\n      optionType: 'numericalInput',\n      toggleValue: 'numericBoxEnabled',\n      eligibleQuestionTypes: ['slider']\n    },\n    {\n      title: 'Date Info',\n      toolTip: '',\n      optionType: 'dateFormat',\n      toggleValue: 'hasDate',\n      eligibleQuestionTypes: ['date-time']\n    },\n    {\n      title: 'Time Info',\n      toolTip: '',\n      optionType: 'timeInfo',\n      toggleValue: 'hasTime',\n      eligibleQuestionTypes: ['date-time']\n    },\n    {\n      title: 'Allow Attachments',\n      toolTip: 'This option allows the respondents to upload a file in addition to answering the question.',\n      optionType: 'userAttachedFiles',\n      toggleValue: 'isRespondentAttachment',\n      eligibleQuestionTypes: ['image-choice', 'checkbox', 'single-textbox', 'multiple-choice', 'file-upload', 'star-rating',\n        'comment-box', 'matrix-dropdown', 'rating-scale', 'ranking', 'slider', 'multiple-textbox', 'date-time', 'dropdown']\n    },\n    {\n      title: 'Allow Comments',\n      toolTip: 'This option allows the respondent to add notes or comments to a question.',\n      optionType: 'userComments',\n      toggleValue: 'isRespondentComment',\n      eligibleQuestionTypes: ['image-choice', 'checkbox', 'single-textbox', 'multiple-choice', 'file-upload', 'star-rating',\n        'comment-box', 'matrix-dropdown', 'rating-scale', 'ranking', 'slider', 'multiple-textbox', 'date-time', 'dropdown']\n    }\n  ];\n\n  populateSelectedQuestionType() {\n    this.questionTypeDropdown.forEach(questionType => {\n      if (questionType.questionValue === this.fd.formsPage.elements[this.questionIndex].type) {\n        this.selectedQuestionDetails.questionClass = questionType.questionClass;\n        this.selectedQuestionDetails.questionName = questionType.questionName;\n        this.selectedQuestionDetails.questionIcon = questionType.questionIcon;\n        this.selectedQuestionDetails.questionValue = questionType.questionValue;\n      }\n    });\n  }\n\n  changeQuestionType(selectedQuestion: any) {\n    if (selectedQuestion.questionValue === 'rating-scale') {\n      this.fd.formsPage.elements[this.questionIndex].columns =\n        [{ title: '', value: 1, weight: 0, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' }];\n    } else if (selectedQuestion.questionValue === 'matrix-dropdown') {\n      \n      this.fd.formsPage.elements[this.questionIndex].columns =\n        [{\n          title: '', value: 1, weight: 0, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '',\n          choices: [{ hasHelpingLabel: false, helpingLabel: '', isSelected: false, required: 0, title: '', value: 1 }]\n        }];\n    } else if (selectedQuestion.questionValue === 'date-time') {\n      this.fd.formsPage.elements[this.questionIndex].hasDate = true;\n      this.fd.formsPage.elements[this.questionIndex].date = { title: '', value: '' };\n      this.fd.formsPage.elements[this.questionIndex].time = { title: '', value: '' };\n    } else if (selectedQuestion.questionValue === 'star-rating') {\n      this.fd.formsPage.elements[this.questionIndex].cursorType = 'number';\n      this.fd.formsPage.elements[this.questionIndex].scale = 2;\n      this.fd.formsPage.elements[this.questionIndex].ratingLabelType = 'specific';\n      this.fd.formsPage.elements[this.questionIndex].scaleRangeTo = 'Extreme Likely';\n      this.fd.formsPage.elements[this.questionIndex].scaleRangeFrom = 'Not at all likely';\n      this.fd.formsPage.elements[this.questionIndex].cursorColor = '#ff8000';\n      this.fd.formsPage.elements[this.questionIndex].starValue = '';\n      this.fd.formsPage.elements[this.questionIndex].choices = [\n        { title: '', isVisible: true, value: 0, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' },\n        { title: '', isVisible: true, value: 1, isSelected: false, required: 0, hasHelpingLabel: true, helpingLabel: '' },\n      ];\n    } else if (selectedQuestion.questionValue === 'slider') {\n      this.fd.formsPage.elements[this.questionIndex].scaleRangeMin = 0;\n      this.fd.formsPage.elements[this.questionIndex].scaleRangeMax = 100;\n      this.fd.formsPage.elements[this.questionIndex].stepSize = 10;\n    }\n\n    this.fd.formsPage.elements[this.questionIndex].type = selectedQuestion.questionValue;\n\n\n    this.selectedQuestionDetails = selectedQuestion;\n    this.populateQuickSettingsList();\n    this.populateSelectedQuestionType();\n    this.typeChanged.emit();\n  }\n  populateQuickSettingsList() {\n    this.quickSettingsList = [...this.optionsForQuickSettings];\n    this.quickSettingsList = this.quickSettingsList.filter(\n      (option: any) => option.eligibleQuestionTypes.includes(this.fd.formsPage.elements[this.questionIndex].type)\n    );\n  }\n\n  toggle(e: any, quickSetting: any) {\n    \n    const questionDetail = this.fd.formsPage.elements[this.questionIndex];\n\n    if (questionDetail.type === 'date-time') {\n      if (quickSetting.toggleValue === 'hasDate' && e) {\n        this.fd.formsPage.elements[this.questionIndex].hasDate = true;\n      } else if (quickSetting.toggleValue === 'hasTime' && e) {\n        \n        this.fd.formsPage.elements[this.questionIndex].hasTime = true;\n      }else if(quickSetting.toggleValue === 'hasDate' && !e){\n        this.fd.formsPage.elements[this.questionIndex].hasDate = false; \n        if(!this.fd.formsPage.elements[this.questionIndex].hasTime){\n          this.fd.formsPage.elements[this.questionIndex].hasTime = true;\n        } \n      }else if(quickSetting.toggleValue === 'hasTime' && !e){\n        this.fd.formsPage.elements[this.questionIndex].hasTime = false;\n        if(!this.fd.formsPage.elements[this.questionIndex].hasDate){\n          this.fd.formsPage.elements[this.questionIndex].hasDate = true;\n        }\n      }\n      this.fd.formsPage.elements[this.questionIndex][quickSetting.toggleValue] = e;\n      return;\n    }\n    if (quickSetting.optionType === 'characterLength' && e) {\n      this.fd.formsPage.elements[this.questionIndex].maxCharacterLength = 100;\n      this.fd.formsPage.elements[this.questionIndex].minCharacterLength = 0;\n    }\n    this.fd.formsPage.elements[this.questionIndex][quickSetting.toggleValue] = e;\n   \n  }\n}\n","<div class=\"quick-settings\">\n    <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-5 vx-pl-2\">QUESTION TYPE</div>\n    <div class=\"settings-option vx-d-flex vx-align-center vx-justify-between vx-pb-2\" appPopover (click)=\"questionOption.popover()\" placement=\"right\">\n        <div class=\"content vx-d-flex vx-align-center\">\n            <div class=\"question-icon vx-d-flex vx-align-center vx-justify-center vx-mr-2\" [ngClass]=\"selectedQuestionDetails.questionClass\">\n                <i class=\"icons vx-fs-16 vx-txt-white\" [innerHTML]='selectedQuestionDetails.questionIcon'></i></div>\n            <div class=\"name vx-fs-14 vx-label-txt\">{{selectedQuestionDetails.questionName}}</div>\n        </div>\n        <i class=\"icons vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n    </div>\n    <app-popover #questionOption>\n        <div class=\"select-option vx-p-2 vx-pb-1\">\n            <ul class=\"vx-p-0 vx-m-0 vx-d-flex vx-flex-wrap\">\n                <li class=\"vx-d-flex vx-align-center vx-mt-1 vx-mb-1\" *ngFor=\"let menu of questionTypeDropdown\">\n                    <button class=\"vx-m-0 vx-p-0 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)='changeQuestionType(menu)'>\n                        <div [ngClass]=\"menu.questionClass\" class=\"question-icon vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\" [innerHTML]=\"menu?.questionIcon\">&#xeabd;</i></div>\n                        <div class=\"name vx-fs-12 vx-label-txt\">{{menu?.questionName}}</div>\n                    </button>\n                </li>\n            </ul>\n        </div>\n    </app-popover>\n    <div class=\"title vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2\">QUICK SETTINGS</div>\n    <div class=\"settings-list\">\n        <ul class=\"vx-p-0 vx-m-0\">\n            <li class=\"vx-pt-3 vx-pb-3\" *ngFor='let quickSetting of quickSettingsList'>\n                <app-cs-switch \n                [ngValue]=\"fd.formsPage.elements[questionIndex][quickSetting.toggleValue]\"\n                (ngValueChange)=\"toggle($event,quickSetting);\"\n                [disabled]='quickSetting.title === \"Is required\" && fd.formsPage.elements[questionIndex].visibilityLogic.length > 0'>\n                    <div class=\"vx-d-flex vx-align-center vx-justify-between vx-w-100\">\n                        <div class=\"settings-name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">{{quickSetting.title}}</div>\n                        <i class=\"icons info vx-fs-14 vx-txt-blue\" *ngIf=\"quickSetting.toolTip.length>0\" [appTooltip]=\"quickSetting.toolTip\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xeb16;</i>\n                    </div>\n                </app-cs-switch>\n            </li>\n           \n        </ul>\n    </div>\n    <div class=\"max-min-field vx-d-flex vx-align-center vx-mt-3 vx-mb-2\" *ngIf=\"fd.formsPage.elements[questionIndex].hasCharacterLength\">\n        <input type=\"number\"  [(ngModel)]=\"fd.formsPage.elements[questionIndex].minCharacterLength\"/>\n        <span class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-5\">Min</span>\n        <input type=\"number\"  [(ngModel)]=\"fd.formsPage.elements[questionIndex].maxCharacterLength\"/>\n        <span class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">Max</span>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-add-response-set-popup',\n  templateUrl: './add-response-set-popup.component.html',\n  styleUrls: ['./add-response-set-popup.component.less']\n})\nexport class AddResponseSetPopupComponent implements OnInit {\n  setResponse = false;\n  hideSpecificCategory = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  showResponse() {\n    this.setResponse = !this.setResponse;\n  }\n\n  clickSpecificCategory() {\n    this.hideSpecificCategory = true;\n  }\n\n  backResponseSet() {\n    this.hideSpecificCategory = false;\n  }\n\n}\n","<div class=\"form-dialog\">\n    <div class=\"form-dialog-heading vx-d-flex vx-align-center vx-justify-between vx-pt-3 vx-pb-3 vx-pl-4 vx-pr-4 vx-mb-2\">\n        <ng-container *ngIf=\"!hideSpecificCategory\">\n            <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">Add a Response Set</div>\n            <button class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center\" [appTooltip]=\"'[Esc] to close'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons vx-fs-16 vx-label-txt\">&#xe93f;</i></button>\n        </ng-container>\n        <ng-container *ngIf=\"hideSpecificCategory\">\n            <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">Select Form Categories</div>\n            <button (click)=\"backResponseSet()\" class=\"close vx-fs-12 vx-fw-500 vx-label-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"><i class=\"icons vx-fs-16 vx-mr-2\">&#xe91d;</i> BACK</button>\n        </ng-container>\n    </div>\n    <div *ngIf=\"!hideSpecificCategory\" class=\"form-dialog-mid vx-p-4 vx-pt-0\">\n        <div class=\"from-group vx-mt-1 vx-mb-4\">\n            <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">RESPONSE SET NAME</label>\n            <input type=\"text\" placeholder=\"Name this response set\" />\n        </div>\n        <div class=\"from-group vx-mt-1 vx-mb-4\">\n            <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">THIS RESPONSE SET IS APPLICABLE FOR:</label>\n            <div class=\"vx-d-flex vx-align-center vx-justify-between\">\n                <div class=\"set-item vx-d-flex vx-align-center vx-p-2\">\n                    <app-cs-radio><span class=\"name vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">ALL FORM CATEGORIES</span></app-cs-radio>\n                </div>\n                <div class=\"set-item vx-d-flex vx-align-center vx-p-2\">\n                    <div class=\"specific-radio vx-d-flex vx-align-center\" (click)=\"clickSpecificCategory()\">\n                        <span class=\"circle-radio vx-mr-3\"></span>\n                        <span class=\"name vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">SPECIFIC FORM CATEGORIES</span>\n                    </div>\n                    <div *ngIf=\"false\" class=\"after-select vx-d-flex vx-align-center vx-w-100\">\n                        <span class=\"circle-radio vx-mr-3\"></span>\n                        <div class=\"input-group vx-d-flex vx-align-center vx-justify-between\">\n                            <div class=\"left vx-d-flex vx-align-center\">\n                                <div class=\"chip vx-fs-11 vx-txt-blue vx-pl-2 vx-pr-2 vx-lh-5\" [appTooltip]=\"'category text'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">category text</div>\n                                <button class=\"count vx-fs-10 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center vx-lh-5\" appPopover (click)=\"responseCount.popover()\" position=\"right\">+13</button>\n                                <app-popover #responseCount>\n                                    <div class=\"wf-action-list\">\n                                      <ul class=\"action-item\">\n                                        <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n                                          <div class=\"chip-item\">\n                                              <span class=\"vx-paragraph-txt\" [appTooltip]=\"'Category response name'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">Category response name</span>\n                                          </div>\n                                        </li>\n                                      </ul>\n                                    </div>\n                                </app-popover>\n                            </div>\n                            <button class=\"edit vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-5\">EDIT</button>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class=\"from-group vx-mt-1 vx-mb-4\">\n            <label class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">RESPONSE CHOICES</label>\n            <div class=\"choice-item vx-d-flex vx-mt-5\">\n                <div class=\"number vx-fs-12 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-p-1 vx-mr-4\" style=\"background: #1E5DD3;\">1</div>\n                <div class=\"right\">\n                    <ng-container>\n                        <div class=\"edit-mode\" (click)=\"showResponse()\">\n                            <input type=\"text\" placeholder=\"Type your response\" />\n                            <button class=\"set-icon vx-fs-14 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe913;</i></button>\n                        </div>\n                        <div class=\"set-popup vx-p-3 vx-d-flex vx-justify-between\" *ngIf=\"!setResponse\">\n                            <div class=\"item\">\n                                <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SET COLOR</div>\n                                <div class=\"color-box vx-p-1 vx-d-flex vx-align-center vx-justify-center\" style=\"color: #1E5DD3;\">\n                                    <i class=\"icons vx-fs-18\">&#xeb01;</i>\n                                    <input type=\"color\" />\n                                </div>\n                            </div>\n                            <div class=\"item\">\n                                <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">ADD SCORE</div>\n                                <div class=\"score-input vx-d-flex\">\n                                    <input type=\"number\" value=\"1\" />\n                                    <div class=\"buttons\">\n                                        <button class=\"plus-btn vx-fs-12 vx-fw-500 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">+</button>\n                                        <button class=\"minus-btn vx-fs-12 vx-fw-500 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">-</button>\n                                    </div>\n                                </div>\n                            </div>\n                            <div class=\"item\">\n                                <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1 vx-d-flex vx-align-center\">SET AS A FAILED RESPONSE <i class=\"icons info vx-fs-12 vx-txt-blue vx-ml-1\" appTooltip=\"If this response choice is 'Set as a failed response' VComply would automatically flag it as an exception when selected by the respondent. This can help identify areas for improvement and in the development of corrective action plans.\" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xeb16;</i></div>\n                                <app-cs-switch></app-cs-switch>\n                            </div>\n                        </div>\n                    </ng-container>\n                    <div class=\"after-set-response vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\">\n                        <div class=\"value vx-fs-12 vx-label-txt\" [appTooltip]=\"'Response choice content'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Response choice content</div>\n                        <div class=\"vx-d-flex vx-align-center\">\n                            <button class=\"edit vx-fs-12 vx-txt-blue vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\"><i class=\"icons\">&#xe9ba;</i></button>\n                            <button class=\"delete vx-fs-12 vx-txt-red vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\"><i class=\"icons\">&#xe923;</i></button>\n                        </div>\n                    </div>\n                    <div class=\"response-value vx-fs-10 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-text-right vx-mt-1\">SCORE: 1</div>\n                    <div class=\"response-value vx-fs-10 vx-fw-500 vx-txt-red vx-tt-uppercase vx-text-right vx-mt-1\">THIS HAS BEEN SET AS A FAILED RESPONSE.</div>\n                </div>\n            </div>\n            <button class=\"add-response-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-mt-5 vx-d-flex vx-align-center\"><i class=\"icons vx-fs-12 vx-mr-2 vx-d-flex\">&#xe915;</i> ADD RESPONSE</button>\n        </div>\n    </div>\n    <div *ngIf=\"hideSpecificCategory\" class=\"category-mid vx-p-4 vx-pr-0 vx-pt-0 vx-mt-4\">\n        <div class=\"search-field vx-pr-4 vx-mb-3\">\n            <input type=\"search\" placeholder=\"Search...\" />\n            <i class=\"icons search vx-fs-14\">&#xe90b;</i>\n        </div>\n        <app-cs-checkbox><span class=\"name vx-fw-500\">Select All</span></app-cs-checkbox>\n        <!-- <app-cs-checkbox-indeterminate *ngIf=\"false\"><span class=\"name vx-fw-500\">Select All</span></app-cs-checkbox-indeterminate> -->\n        <div class=\"list vx-pr-4 vx-mt-3\">\n            <ul class=\"vx-p-0 vx-m-0\">\n                <li class=\"vx-mb-3\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\"><app-cs-checkbox><span class=\"name\" [appTooltip]=\"'Select form category name'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Select form category name</span></app-cs-checkbox></li>\n            </ul>\n        </div>\n    </div>\n    <div *ngIf=\"hideSpecificCategory\" class=\"category-bottom vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4 vx-mt-4\">\n        <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"count vx-fs-11 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-pl-1 vx-pr-1\">12</div> <span class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt vx-ml-2\">Form Category selected</span>\n        </div>\n        <button class=\"next-btn vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center vx-lh-7\">NEXT</button>\n    </div>\n    <button *ngIf=\"!hideSpecificCategory\" class=\"form-dialog-btn vx-fs-13 vx-fw-600 vx-tt-uppercase vx-p-0 vx-m-0 vx-mt-4 vx-d-flex vx-align-center vx-justify-center\" [class.disabled]=\"false\">SAVE</button>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { DialogService } from '../../../../ui-kit/dialog/dialog.service';\nimport { AddResponseSetPopupComponent } from '../add-response-set-popup/add-response-set-popup.component';\n\n@Component({\n  selector: 'app-response-selector',\n  templateUrl: './response-selector.component.html',\n  styleUrls: ['./response-selector.component.less']\n})\nexport class ResponseSelectorComponent implements OnInit {\n  responseDetails = false;\n\n  constructor(\n    private dialog: DialogService,\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n  addResponseSet() {\n    const ref = this.dialog.open(AddResponseSetPopupComponent, {\n      data: {},\n      position: 'RIGHT',\n      background: 'black',\n    });\n  }\n\n  openResponseDetails() {\n    this.responseDetails = true;\n  }\n\n  backResponse() {\n    this.responseDetails = false;\n  }\n\n}\n","<div *ngIf=\"!responseDetails\" class=\"response-selector\">\n    <button class=\"close vx-fs-16 vx-label-txt vx-m-0 vx-p-0 vx-d-flex\"><i class=\"icons\">&#xe9ae;</i></button>\n    <div class=\"search-field vx-p-3 vx-pt-0\">\n        <input type=\"search\" placeholder=\"Search form category...\" />\n        <i class=\"icons search vx-fs-14\">&#xe90b;</i>\n    </div>\n    <div class=\"vx-d-flex\">\n        <div class=\"half\">\n            <div class=\"head vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\">\n                <div class=\"heading vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">RESPONSE CHOICES</div>\n                <button class=\"add-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"addResponseSet()\">+ ADD</button>\n            </div>\n            <div class=\"body\">\n                <app-no-data *ngIf=\"false\" [noDataImage]=\"'./assets/images/no-data-response.svg'\" [noDataText]=\"'No data to display'\"></app-no-data>\n                <div class=\"response-section vx-p-3 vx-pb-2 vx-pr-0\">\n                    <ul class=\"vx-p-0 vx-pr-3 vx-m-0 vx-mb-3\">\n                        <li class=\"vx-d-flex vx-justify-between vx-mt-2\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\">\n                            <div class=\"response-data vx-d-flex vx-align-center vx-flex-wrap\">\n                                <span class=\"chip vx-fs-11 vx-lh-4 vx-pl-1 vx-pr-1 vx-mr-1 vx-mb-1\" style=\"background: #66BF721A; color: #34AA44;\">Good</span>\n                                <span class=\"chip vx-fs-11 vx-lh-4 vx-pl-1 vx-pr-1 vx-mr-1 vx-mb-1\" style=\"background: #F2BF191A; color: #F2BF19;\">Fair</span>\n                                <span class=\"chip vx-fs-11 vx-lh-4 vx-pl-1 vx-pr-1 vx-mr-1 vx-mb-1\" style=\"background: #F1F1F1; color: #747576;\">N/A</span>\n                            </div>\n                            <button class=\"edit vx-fs-12 vx-txt-blue vx-p-0 vx-m-0 vx-ml-3 vx-d-flex vx-align-center\" (click)=\"addResponseSet()\"><i class=\"icons\">&#xe9ba;</i></button>\n                        </li>\n                    </ul>\n                </div>\n            </div>\n        </div>\n        <div class=\"half\">\n            <div class=\"head vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3\">\n                <div class=\"heading vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\">GLOBAL RESPONSE CHOICES</div>\n                <button class=\"add-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"addResponseSet()\">+ ADD</button>\n            </div>\n            <div class=\"body\">\n                <app-no-data *ngIf=\"false\" [noDataImage]=\"'./assets/images/no-data-response.svg'\" [noDataText]=\"'No data to display'\"></app-no-data>\n                <div class=\"global-response\">\n                    <ul class=\"vx-p-0 vx-m-0\">\n                        <li class=\"vx-d-flex vx-align-center vx-justify-between vx-p-2 vx-pl-3 vx-pr-3\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n                            <div class=\"name vx-fs-13 vx-txt-blue\" [appTooltip]=\"'Restaurant locations'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" (click)=\"openResponseDetails()\">Restaurant locations</div>\n                            <div class=\"vx-d-flex vx-align-center\">\n                                <button class=\"edit vx-fs-12 vx-txt-blue vx-p-0 vx-m-0 vx-ml-2 vx-d-flex vx-align-center\" (click)=\"addResponseSet()\"><i class=\"icons\">&#xe9ba;</i></button>\n                                <button class=\"arrow vx-fs-14 vx-txt-blue vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\" (click)=\"openResponseDetails()\"><i class=\"icons\">&#xe970;</i></button>\n                            </div>\n                        </li>\n                    </ul>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n\n<div *ngIf=\"responseDetails\" class=\"response-details\">\n    <div class=\"response-details-head vx-d-flex vx-align-center vx-justify-between vx-pl-2 vx-pr-2\">\n        <div class=\"heading vx-fs-12 vx-label-txt\" [appTooltip]=\"'Response name'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Response name</div>\n        <div class=\"vx-d-flex vx-align-center\">\n            <button class=\"select-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-m-0 vx-p-0 vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-lh-5\">USE THIS RESPONSE SET</button>\n            <button class=\"back vx-fs-16 vx-label-txt vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\" (click)=\"backResponse()\"><i class=\"icons\">&#xe91d;</i></button>\n        </div>\n    </div>\n    <div class=\"response-details-body\">\n        <ul class=\"vx-p-0 vx-m-0\">\n            <li class=\"vx-d-flex vx-align-center vx-justify-between\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1, 1]\">\n                <div class=\"value vx-fs-12 vx-label-txt vx-pl-2\" [appTooltip]=\"'response option'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">response option</div>\n                <div class=\"vx-d-flex vx-align-center\">\n                    <div class=\"failed vx-fs-10 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-lh-4 vx-mr-3\">FAILED RESPONSE</div>\n                    <div class=\"score vx-fs-12 vx-fw-500 vx-label-txt vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\">SCORE: 3</div>\n                </div>\n            </li>\n        </ul>\n    </div>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'questionPageFilter'\n})\nexport class QuestionPageFilterPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    return value.filter((question:any) => question?.page === args[0]);\n  }\n\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { SnackBarService } from '../../../../ui-kit/snack-bar/snack-bar.service';\n\n\n\n@Component({\n  selector: 'app-move',\n  templateUrl: './move.component.html',\n  styleUrls: ['./move.component.less']\n})\nexport class MoveComponent implements OnInit {\n\n  constructor( private snackbar :SnackBarService) { }\n\n  @Input() questionIndex !: string;\n  @Input() question!: string;\n  @Input() service !:any;\n  @Input() openPortal :'ASSESSMENT_IMPORT' | 'RESPONSIBILITY_CHECKPOINT'|'' = '';\n  @ViewChild('moveTemplate') moveElement !: ElementRef;\n  currentPage = 1;\n  position = 'After';\n  selectedQuestion !:any;\n  emptyPage!: boolean;\n  public questionDetail: any;\n  positions = ['After', 'Before'];\n  ngOnInit(): void {\n  }\n  setSelectedQuestion(evt:any){\n\n    this.selectedQuestion = this.service.formsPage.elements.findIndex((x:any) => x.name === evt);\n    if(this.selectedQuestion > -1){\n      this.questionDetail = this.service.formsPage.elements[this.selectedQuestion];\n    }\n\n  }\n  move() {\n    let nextIndex;\n    const message = 'The question has been moved.';\n    if (this.selectedQuestion !== undefined) {\n      if (this.position === 'Before') {\n              if (this.questionIndex >= this.selectedQuestion) {\n                nextIndex = this.selectedQuestion;\n                this.service.activeQuestion = nextIndex;\n                if (nextIndex === 0) {\n                  // ' of page ' ${this.currentPage}\n                  // message = `Question moved to position ' ${nextIndex + 1}  `;\n                } else {\n                  // message = `Question moved to position ' ${nextIndex}`;\n                }\n              } else {\n                nextIndex = this.selectedQuestion - 1;\n                this.service.activeQuestion = nextIndex;\n                // message = `Question moved to position ' ${nextIndex + 1}`;\n              }\n          }\n      if (this.position === 'After') {\n          if (this.questionIndex > this.selectedQuestion) {\n            nextIndex = this.selectedQuestion + 1;\n            this.service.activeQuestion = nextIndex;\n            // message = `Question moved to position ' ${nextIndex + 1}`;\n          } else {\n            nextIndex = this.selectedQuestion;\n            this.service.activeQuestion = nextIndex;\n            // message = `Question moved to position ' ${nextIndex + 1}`;\n          }\n        }\n      this.service.formsPage.elements[this.questionIndex].page = this.currentPage;\n      this.service.moveQuestion(this.questionIndex, nextIndex);\n    //  this.snackbar.snackbar.next(message);\n      this.snackbar.show(message, 'success');\n      setTimeout(() => {\n           this.moveElement.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n         }, 400);\n    } else {\n      this.snackbar.show('Please select a reference question to move', 'alert');\n    }\n}\nonPageChange(evt:any) {\n\nif (![...new Set(this.service.formsPage.elements.map((element:any) => element.page))].includes(evt)) {\n   this.emptyPage = true;\n } else {\n   this.emptyPage = false;\n }\n}\n\nchangePage(evt:any){\n  this.currentPage =  evt;\n}\n\nchangePosition(evt:any){\n   this.position = evt;\n}\n\n}\n","<div class=\"move-area\">\n    <div class=\"move-heading vx-fs-13 vx-paragraph-txt vx-mb-4\">Move the question to</div>\n    <div class=\"vx-d-flex\">\n        <div *ngIf=\"openPortal !== 'RESPONSIBILITY_CHECKPOINT'\"  class=\"move-item vx-mr-3\">\n            <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SELECT PAGE</div>\n            <div class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-p-2 vx-pl-3\" appPopover (click)=\"pageAction.popover()\" placement=\"right\">\n                <span class=\"value vx-fs-13 vx-paragraph-txt\">{{currentPage}}</span>\n                <i class=\"icons vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n            </div>\n            <app-popover #pageAction>\n                <div class=\"move-popup\">\n                    <ul class=\"vx-p-0 vx-m-0\">\n                        <li *ngFor=\"let data of service?.allPages\">\n                            <button  (click)=\"onPageChange(data);changePage(data)\" class=\"vx-fs-13 vx-paragraph-txt vx-p-2 vx-pl-3 vx-m-0 vx-d-flex vx-align-center vx-w-100\">{{data}}</button>\n                        </li>\n                    </ul>\n                </div>\n            </app-popover>\n        </div>\n        <div class=\"move-item vx-mr-3\">\n            <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SELECT POSITION</div>\n            <div class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-p-2 vx-pl-3\" appPopover (click)=\"positionAction.popover()\" placement=\"right\">\n                <span class=\"value vx-fs-13 vx-paragraph-txt\">{{position}}</span>\n                <i class=\"icons vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n            </div>\n            <app-popover #positionAction>\n                <div class=\"move-popup\">\n                    <ul class=\"vx-p-0 vx-m-0\">\n                        <li *ngFor =\"let position of positions\">\n                            <button (click)=\"changePosition(position)\" class=\"vx-fs-13 vx-paragraph-txt vx-p-2 vx-pl-3 vx-m-0 vx-d-flex vx-align-center vx-w-100\">{{position}}</button>\n                        </li>\n\n                    </ul>\n                </div>\n            </app-popover>\n        </div>\n        <div class=\"move-item vx-mr-3\">\n            <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SELECT QUESTION</div>\n            <div class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-p-2 vx-pl-3\" appPopover (click)=\"questionAction.popover()\" placement=\"right\">\n                <span class=\"value vx-fs-13 vx-paragraph-txt\"> {{questionDetail?.title ? questionDetail?.title:'Select question'}}</span>\n                <i class=\"icons vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n            </div>\n            <app-popover #questionAction>\n                <div class=\"move-popup\">\n                    <ul class=\"vx-p-0 vx-m-0\">\n                        <li *ngFor=\"let data of (service.formsPage.elements  | questionPageFilter : currentPage)\">\n                            <button class=\"vx-p-2 vx-pl-3 vx-m-0 vx-d-flex vx-align-center vx-w-100\" (click)=\"setSelectedQuestion(data?.name)\">\n                                <span class=\"vx-fs-13 vx-paragraph-txt\" [appTooltip]=\"data?.title\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.title}}</span>\n                            </button>\n                        </li>\n                    </ul>\n                </div>\n            </app-popover>\n        </div>\n        <div class=\"move-item vx-mr-3\">\n            <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-5\"></div>\n            <button class=\"move\" appRipple (click)=\"move()\">Move</button>\n        </div>\n        <p class=\"error-mgs\" *ngIf=\"emptyPage===true\">\n            Selected page doesn't contains any question.\n        </p>\n</div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-logic-multiple-choice',\n  templateUrl: './logic-multiple-choice.component.html',\n  styleUrls: ['./logic-multiple-choice.component.less']\n})\nexport class LogicMultipleChoiceComponent implements OnInit {\n\n  @Input() question!: any;\n  @Output() changeEvent = new EventEmitter<any>();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n  radioChecked(evt:any,choice:any){\n    this.changeEvent.emit({checked:evt, choice})\n  }\n\n}\n","<div class=\"logic-multiple-choice\">\n    <ul class=\"vx-p-0 vx-m-0\">\n        <li class=\"vx-p-3 vx-pb-2 vx-mb-1 vx-w-100\" *ngFor=\"let choice of question?.choices; let choiceIndex = index\">\n            <app-cs-radio  (checkedEvent) = \"radioChecked($event,choice)\">\n                <div class=\"name vx-fs-13 vx-paragraph-txt\" [appTooltip]=\"choice?.title\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{choice?.title}}</div>\n            </app-cs-radio>\n        </li>\n        <li class=\"vx-p-3 vx-pb-2 vx-mb-1 vx-w-100\" *ngIf='question?.hasOther'>\n            <app-cs-radio  (checkedEvent) = \"radioChecked($event,{title:'Other'})\">\n                <div class=\"name vx-fs-13 vx-paragraph-txt\" [appTooltip]=\"'Other'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Other</div>\n            </app-cs-radio>\n        </li>\n    </ul>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-logic-checkbox',\n  templateUrl: './logic-checkbox.component.html',\n  styleUrls: ['./logic-checkbox.component.less']\n})\nexport class LogicCheckboxComponent implements OnInit {\n\n  @Input() question!: any;\n  @Output() changeEvent = new EventEmitter<any>();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n  emitChange(evt:any,choice:any){\n   this.changeEvent.emit({checked:evt, choice})\n  }\n\n}\n","<div class=\"logic-checkbox\">\n    <ul class=\"vx-p-0 vx-m-0\">\n        <li class=\"vx-p-3 vx-pt-2 vx-mb-1 vx-w-100\" *ngFor=\"let choice of question?.choices; let choiceIndex = index\">\n            <app-cs-checkbox  (ngValueChange)=\"emitChange($event,choice)\">\n                <div class=\"name vx-fs-13 vx-paragraph-txt\" [appTooltip]=\"choice?.title\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{choice?.title}}</div>\n            </app-cs-checkbox>\n        </li>\n        <li class=\"vx-p-3 vx-pt-2 vx-mb-1 vx-w-100\" *ngIf='question?.hasOther'>\n            <app-cs-checkbox (ngValueChange)=\"emitChange($event,{title:'Other'})\">\n                <div class=\"name vx-fs-13 vx-paragraph-txt\" [appTooltip]=\"'Other'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Other</div>\n            </app-cs-checkbox>\n        </li>\n    </ul>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { ASSETS } from '../../../../../../lib/constants/assets.constants';\n\n@Component({\n  selector: 'app-logic-image-choice',\n  templateUrl: './logic-image-choice.component.html',\n  styleUrls: ['./logic-image-choice.component.less'],\n})\nexport class LogicImageChoiceComponent implements OnInit {\n  ASSETS = ASSETS;\n\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"logic-image-choice\">\n  <ul class=\"vx-p-0 vx-m-0\">\n    <li class=\"vx-p-3 vx-pb-2 vx-mb-1 vx-w-100\" *ngFor=\"let data of [1, 1, 1]\">\n      <app-cs-radio>\n        <div class=\"image-box vx-mr-2 vx-mb-1\">\n          <img [src]=\"ASSETS.logic_image_choice\" />\n        </div>\n        <div\n          class=\"name vx-fs-13 vx-paragraph-txt\"\n          [appTooltip]=\"'Question name'\"\n          placement=\"bottom-left\"\n          delay=\"0\"\n          type=\"black\"\n          [tooltipMandatory]=\"false\"\n        >\n          Question name\n        </div>\n      </app-cs-radio>\n    </li>\n  </ul>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-logic-star-rating',\n  templateUrl: './logic-star-rating.component.html',\n  styleUrls: ['./logic-star-rating.component.less']\n})\nexport class LogicStarRatingComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"logic-star-rating\">\n    <ul class=\"vx-d-flex vx-p-0 vx-m-0\">\n        <li class=\"vx-mr-2\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n            <button class=\"vx-fs-14 vx-label-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" style=\"color: #1e5dd3;\" [appTooltip]=\"'Information details here...'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                <!-- Smiley -->\n                <i *ngIf=\"true\" class=\"icons\">&#xea66;</i>\n                <!-- Thumb -->\n                <i *ngIf=\"false\" class=\"icons\">&#xea84;</i>\n                <!-- Star -->\n                <i *ngIf=\"false\" class=\"icons\">&#xea70;</i>\n                <!-- Heart -->\n                <i *ngIf=\"false\" class=\"icons\">&#xe9ea;</i>\n                <!-- Number -->\n                <span *ngIf=\"false\">10</span>\n            </button>\n        </li>\n    </ul>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-logic-single-textbox',\n  templateUrl: './logic-single-textbox.component.html',\n  styleUrls: ['./logic-single-textbox.component.less']\n})\nexport class LogicSingleTextboxComponent implements OnInit {\n\n  @Input() question!: any;\n  @Output() changeEvent = new EventEmitter<any>();\n  constructor() { }\n  selectedValue!:any;\n\n  ngOnInit(): void {\n  }\n\n  dataChanged(){\n    this.changeEvent.emit(this.selectedValue)\n  }\n\n\n}\n","<div class=\"logic-single-textbox\">\n    <input type=\"text\"  [(ngModel)]=\"selectedValue\"\n    [placeholder]=\"'Please enter a response'\" (ngModelChange)=\"dataChanged()\"/>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-logic-comment-box',\n  templateUrl: './logic-comment-box.component.html',\n  styleUrls: ['./logic-comment-box.component.less']\n})\nexport class LogicCommentBoxComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"logic-comment-box\">\n    <textarea type=\"text\" placeholder=\"Please enter a response\"></textarea>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-logic-dropdown',\n  templateUrl: './logic-dropdown.component.html',\n  styleUrls: ['./logic-dropdown.component.less']\n})\nexport class LogicDropdownComponent implements OnInit {\n\n  @Input() question !: any;\n  @Input('question') set questionSet(value: boolean) {\n this.question = value;\nif(this.question.hasOther){\n    this.question.choices.push({title:'Other',value:'Other'})\n  }\n}\n  @Output() changeEvent = new EventEmitter<any>();\n  constructor() { }\n\n  ngOnInit(): void {\n    \n  }\n  emitChange(choice:any){\n\n    this.changeEvent.emit({choice:{title:choice}})\n   }\n\n}\n","<div class=\"logic-dropdown\">\n    <app-cs-select [dataList]='question?.choices' [valueKey]=\"'title'\" [displayProperty]=\"'title'\" [selectedValue]=\"'Select an option'\" (selectedValueChange)=\"emitChange($event)\"></app-cs-select>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-logic-ranking',\n  templateUrl: './logic-ranking.component.html',\n  styleUrls: ['./logic-ranking.component.less']\n})\nexport class LogicRankingComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"logic-ranking\">\n    <ul class=\"ranking-area vx-p-0 vx-m-0\">\n        <ng-container *ngFor=\"let data of [1, 1, 1, 1, 1]\">\n            <div *ngIf=\"false\" class=\"example-custom-placeholder cdk-drag-placeholder vx-mt-1\"></div>\n            <li class=\"vx-d-flex vx-align-center vx-mt-1\">\n                <div class=\"drag-area vx-d-flex\">\n                    <span class=\"move-icon vx-d-inline-flex vx-justify-center vx-align-center vx-p-1 vx-fs-12 vx-bg-grey \">\n                        <i class=\"icons\">&#xe9d7;</i>\n                    </span>\n                    <input type=\"text\" class=\"rank vx-bg-white vx-paragraph-txt vx-justify-center vx-align-center vx-fs-12 vx-lh-20\" placeholder='1' disabled> \n                    <span class=\"value vx-p-2 vx-lh-6 vx-justify-center vx-align-center vx-paragraph-txt vx-fs-12 vx-bg-grey \" [appTooltip]=\"'Many desktop publishing packages and web page editors.'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Many desktop publishing packages and web page editors desktop publishing packages and web page editors.</span>\n                </div>\n            </li>\n        </ng-container>\n    </ul>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-logic-slider',\n  templateUrl: './logic-slider.component.html',\n  styleUrls: ['./logic-slider.component.less']\n})\nexport class LogicSliderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"logic-slider vx-d-flex vx-align-center vx-p-4 vx-bg-white \">\n    <div class=\"slider-left vx-mr-2\">\n        <div class=\"range-slider\">\n         <input type=\"range\" min=\"1\" max=\"100\" value=\"50\" class=\"vx-slider\">\n        </div>\n        <div class=\"labels vx-justify-between vx-d-flex vx-fs-12\">\n            <span >0</span>\n            <span>100</span>\n        </div>\n    </div>\n    <div class=\"slider-right\">\n        <input type=\"text\" value='50' class=\"vx-text-center\">\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-logic-multiple-textbox',\n  templateUrl: './logic-multiple-textbox.component.html',\n  styleUrls: ['./logic-multiple-textbox.component.less']\n})\nexport class LogicMultipleTextboxComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"logic-multiple-textbox vx-d-block\">\n    <div class=\"input-group vx-d-flex vx-mb-2\" *ngFor=\"let data of [1, 1, 1]\">\n        <span class=\"vx-bg-grey vx-label-txt vx-lh-20 vx-fs-12 vx-align-center vx-lh-5 vx-p-2\" [appTooltip]=\"'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry standard dummy text ever since the 1500s.'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.</span>\n        <input class=\"vx-fs-12 vx-lh-20 vx-paragraph-txt vx-p-2\" type=\"text\" placeholder='Please enter a response'>\n    </div>\n</div>","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport { CommonService } from '../../../../../services/common.service';\n\n@Component({\n  selector: 'app-logic-date-time',\n  templateUrl: './logic-date-time.component.html',\n  styleUrls: ['./logic-date-time.component.less'],\n})\nexport class LogicDateTimeComponent implements OnInit {\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  datepickerOverlay = false;\n  @Input() question!: any;\n  @Output() changeEvent = new EventEmitter<any>();\n  constructor(\n    private commonService: CommonService\n  ) {}\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n\n\n  ngOnInit(): void {}\n\n  openDatePicker() {\n    this.datePicker?.api?.open();\n    this.datepickerOverlay = true;\n  }\n\n  closeDatepicker() {\n    this.datePicker?.api?.close();\n    this.datepickerOverlay = false;\n  }\n\n  dateChanged(evt: any) {}\n  timeChanged(evt: any) {}\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event : event,\n      class : 'date-picker',\n      popup : this.datePickerPopUp,\n      component : this.datePicker,\n      overlay : this.datepickerOverlay\n    }\n    this.commonService.handleDocumentClick(\n      datePickerObject\n    )\n  }\n\n}\n","<div class=\"logic-date-time vx-mb-5\">\n  <div class=\"input-group vx-d-flex vx-mb-2\" *ngIf=\"question.hasDate\">\n    <span\n      class=\"label vx-bg-grey vx-lh-24 vx-d-flex vx-text-center vx-p-2 vx-justify-center vx-align-center\"\n    >\n      <span\n        class=\"value vx-fs-11 vx-label-txt vx-tt-uppercase\"\n        [appTooltip]=\"'Date of birth'\"\n        placement=\"bottom-left\"\n        delay=\"0\"\n        type=\"black\"\n        [tooltipMandatory]=\"false\"\n        >{{ question?.date?.title ? question?.date?.title : \"Date\" }}</span\n      >\n    </span>\n    <div class=\"date-time-area\">\n      <i class=\"icons vx-fs-14 vx-paragraph-txt\">&#xe996;</i>\n      <input\n        class=\"datePicker\"\n        (click)=\"openDatePicker()\"\n        placeholder=\"Enter Date\"\n        id=\"date-picker\"\n      />\n      <dp-date-picker\n        (onChange)=\"dateChanged($event)\"\n        [(ngModel)]=\"question.date.value\"\n        #datePicker\n        [config]=\"{ disableKeypress: true, format: 'DD MMM YYYY' }\"\n        placeholder=\"Select Date\"\n        (click)=\"openDatePicker()\"\n        (click)=\"closeDatepicker()\"\n      ></dp-date-picker>\n      <div\n        class=\"overlay\"\n        (click)=\"closeDatepicker()\"\n        *ngIf=\"datepickerOverlay\"\n      ></div>\n    </div>\n  </div>\n  <div class=\"input-group vx-d-flex vx-mb-10\" *ngIf=\"question.hasTime\">\n    <span\n      class=\"label vx-bg-grey vx-lh-24 vx-d-flex vx-text-center vx-p-2 vx-justify-center vx-align-center\"\n    >\n      <span\n        class=\"value vx-fs-11 vx-label-txt vx-tt-uppercase\"\n        [appTooltip]=\"'Time of birth'\"\n        placement=\"bottom-left\"\n        delay=\"0\"\n        type=\"black\"\n        [tooltipMandatory]=\"false\"\n        >{{ question?.time?.title ? question?.time?.title : \"Time\" }}</span\n      >\n    </span>\n    <div class=\"date-time-area\">\n      <input\n        aria-label=\"12hr format\"\n        [ngxTimepicker]=\"timeOnly\"\n        readonly\n        placeholder=\"Enter Time\"\n        [(ngModel)]=\"question.time.value\"\n      />\n      <i class=\"icons vx-fs-14 vx-paragraph-txt\">&#xe955;</i>\n      <ngx-material-timepicker #timeOnly></ngx-material-timepicker>\n    </div>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'questionFilter'\n})\nexport class QuestionFilterPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    return value.filter((question:any) => (question.name !==  args[0] && question.title.trim().length > 0) && question?.visibilityLogic?.length === 0 );;\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'questionParser'\n})\nexport class QuestionParserPipe implements PipeTransform {\n\n  transform(value: any, ...args: unknown[]): any {\n    \n    if(!value){\n          return 'Select a question'\n    }else{\n      return value;\n    }\n  }\n\n}\n","import { DatePipe } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { cloneDeep, some } from 'lodash';\n\nimport { DialogConfig } from '../../../../ui-kit/dialog/dialog-config';\n\nimport { DialogRef } from '../../../../ui-kit/dialog/dialog-ref';\n@Component({\n  selector: 'app-add-logic',\n  templateUrl: './add-logic.component.html',\n  styleUrls: ['./add-logic.component.less']\n})\nexport class AddLogicComponent implements OnInit {\n\n  public currentQuestion !:any;\n  public questionsArray !:any;\n  selectedValue: any = '';\n  selectedLogicQuestion !: any;\n  selectedLogicQuestionType = '';\n  checkboxValue: any[] = [];\n  disableLogicDropdown = true;\n  operatorMap: any = [];\n  questionIndex!: number;\n  showError = { isVisible: false, errorMessage: '' };\n  editorMode !:any;\n  logic:any = {\n    andOr: 'and',\n    questionName: '',\n    operator: '',\n    value: this.selectedValue,\n    questionTitle: ''\n  };\n  operatorVal = {\n    '=': 'Equals',\n    '!=': 'Not Equals',\n    '>': 'Greater than',\n    '<': 'Less than',\n    '>=': 'Greater or equals',\n    '<=': 'Less or equals',\n    answered: 'If answered',\n    before: 'Before',\n    after: 'After',\n    beforeEquals: 'Before or equals',\n    afterEquals: 'After or equals'\n  };\n  constructor(public config: DialogConfig, public dialog: DialogRef) { }\n\n  ngOnInit(): void {\n    this.currentQuestion = cloneDeep(this.config.data.currentQuestion);\n    this.getCurrentPageQuestions();\n    this.editorMode = this.config.data.editorMode;\n    this.questionIndex = this.config.data.questionIndex;\n  }\n\n  /**\n  * Fetches the questions on currently active page\n  */\n  getCurrentPageQuestions() {\n    this.questionsArray = cloneDeep(this.config.data.allQuestions);\n    this.questionsArray = this.questionsArray.filter((question:any) =>\n      question.page === this.currentQuestion.page);\n  }\n\n  /**\n * Sets the index and title of current question\n * @param index Current index of question\n * @param questionTitle Title of question at index i\n */\n  setIndex(selectedQuestionName:any) {\n    let index = this.questionsArray.findIndex((x:any) => x.name === selectedQuestionName);\n    this.showError.isVisible = false;\n    this.selectedLogicQuestion = index;\n    this.logic.operator = '';\n    this.selectedValue = '';\n    this.logic.questionTitle = this.questionsArray[index].title;\n    this.selectedLogicQuestionType = this.questionsArray[this.selectedLogicQuestion].type;\n    this.setValuesForLogicDropdown();\n  }\n\n  setOperator(evt:any) {\n    this.logic.operator = evt;\n  }\n  /**\n   * populates the logic dropdown based on question type\n   */\n  setValuesForLogicDropdown() {\n    let defaultOperatorMap = [{ key: '=', value: 'Equals' },\n    { key: '!=', value: 'Not Equals' },\n    { key: 'answered', value: 'If answered' }];\n\n    const type = this.questionsArray[this.selectedLogicQuestion].type;\n\n    if (['star-rating', 'slider'].includes(type)) {\n      defaultOperatorMap.push(\n        { key: '>', value: 'Greater than' },\n        { key: '<', value: 'Less than' },\n        { key: '>=', value: 'Greater or equals' },\n        { key: '<=', value: 'Less or equals' },\n      );\n    } else if (['file-upload', 'matrix-dropdown', 'rating-scale', 'multiple-textbox'].includes(type)) {\n      defaultOperatorMap = [{ key: 'answered', value: 'If answered' }];\n    } else if (['date-time'].includes(type)) {\n      defaultOperatorMap.push(\n        { key: 'before', value: 'Before' },\n        { key: 'after', value: 'After' },\n        { key: 'beforeEquals', value: 'Before or equals' },\n        { key: 'afterEquals', value: 'After or equals' }\n      );\n    }\n    this.operatorMap = [...defaultOperatorMap];\n    this.disableLogicDropdown = false;\n  }\n\n  /**\n * Operation on selecting value from checkbox\n * @param event Event triggered on selecting value of checkbox\n * @param title Title of the checkbox option selected\n */\n  checkboxStatus(evt:any) {\n    \n    this.selectedValue = '';\n    if (evt.checked === true) {\n      this.checkboxValue.push(evt.choice.title);\n    } else {\n      this.checkboxValue = this.checkboxValue.filter(value => evt.choice.title !== value);\n    }\n    this.selectedValue = this.checkboxValue;\n  }\n\n\n  multipleChoiceChecked(evt:any) {\n    this.setSelectedValue(evt.choice.title)\n  }\n\n  rankingStatus(choice:any) {\n    this.questionsArray[this.selectedLogicQuestion].choices = choice;\n  }\n\n  /**\n  * Operation on entering value to multiple text boxes\n  */\n  setMultiplTextStatus() {\n    this.selectedValue = '';\n    \n    this.questionsArray[this.selectedLogicQuestion].choices.forEach((choice:any) => {\n      if (choice.value !== '') {\n        this.selectedValue += choice.title + ':' + choice.value;\n      }\n      if (this.selectedValue !== '') {\n        this.selectedValue += ';';\n      }\n    });\n  }\n\n  /**\n   * Adds the logic on click of add logic button\n   */\n  addLogic() {\n    if (this.questionsArray[this.selectedLogicQuestion].type === 'ranking') {\n      this.populateSelectedValueForRanking();\n    } else if (this.questionsArray[this.selectedLogicQuestion].type === 'multiple-textbox') {\n      this.setMultiplTextStatus();\n    } else if (this.questionsArray[this.selectedLogicQuestion].type === 'date-time') {\n      this.setValueForDateTimeType();\n      \n    }\n    this.showError.isVisible = false;\n    this.logic.value = this.selectedValue;\n    \n    if (this.logic.operator === 'answered' || this.selectedValue !== '') {\n      if (!some([this.currentQuestion.visibilityLogic], this.logic) &&\n        (this.selectedValue !== 'answered') && this.logic.questionName !== '' && this.logic.operator !== '') {\n        if (this.checkForLogicValue()) {\n          this.currentQuestion.visibilityLogic.push(this.logic);\n          this.checkboxValue = [];\n        }\n      }\n    } else {\n      this.showError.isVisible = true;\n      if (this.selectedLogicQuestionType == 'single-textbox' || this.selectedLogicQuestionType == 'comment-box') {\n        this.showError.errorMessage = 'Please enter a value to add logic';\n      } else {\n        this.showError.errorMessage = 'Please select a value to add logic';\n      }\n\n    }\n\n\n\n    if (this.currentQuestion.visibilityLogic.length > 0) {\n      this.currentQuestion.isRequired = false;\n    }\n    if (!this.showError.isVisible) {\n      this.resetLogic();\n      this.closePopup('ADD_LOGIC');\n    }\n  }\n\n  closePopup(mode:any) {\n    this.dialog.close({ action: mode, logic: this.currentQuestion.visibilityLogic });\n  }\n\n  /**\n   * Populates logic selected value for ranking type question\n   */\n  populateSelectedValueForRanking() {\n    const rankingArray:any = [];\n    this.questionsArray[this.selectedLogicQuestion].choices.forEach((choice:any) => {\n      rankingArray.push(choice.title);\n    });\n    this.selectedValue = rankingArray.join();\n  }\n\n  /**\n   * Validation for logic value (Validation: Previously value is entered or not for the particular question type)\n   */\n  checkForLogicValue() {\n    const logicValues:any = [];\n    this.currentQuestion.visibilityLogic.forEach((logic:any) => {\n      if (this.logic.questionTitle === logic.questionTitle) {\n        logicValues.push(logic.value);\n      }\n    });\n    if (!logicValues.includes(this.logic.value)) {\n      logicValues.push(this.logic.value);\n      this.showError.isVisible = false;\n      return true;\n    }\n\n    this.showError.errorMessage = 'Logic already applied for this value. Please select another value to apply logic';\n    this.showError.isVisible = true;\n    if (!this.showError.isVisible) {\n      this.resetLogic();\n    }\n    return false;\n  }\n\n  /**\n   * Deletes the logic having given index from visibility logic list\n   * @param index Index of selected logic\n   */\n  deleteLogic(index:any) {\n    this.currentQuestion.visibilityLogic.splice(index, 1);\n  }\n\n  /**\n   * Assigns the selected value to value that needs to be displayed to user\n   * @param selectedVal Value selected to be displayed\n   */\n  setSelectedValue(selectedVal?: string) {\n    this.showError.isVisible = false;\n    if (this.questionsArray[this.selectedLogicQuestion].type === 'date-time') {\n      this.setValueForDateTimeType();\n    } else {\n      this.selectedValue = selectedVal;\n    }\n  }\n\n  /**\n   * For date/time assigns the selected value to value that needs to be displayed to user\n   */\n  setValueForDateTimeType() {\n    this.selectedValue = '';\n    \n    if (!this.questionsArray[this.selectedLogicQuestion].date.value  &&\n      !this.questionsArray[this.selectedLogicQuestion].time.value) {\n      this.showError.isVisible = true;\n     \n      this.showError.errorMessage = 'Please select a value to add logic';\n\n    } else {\n      if (!this.questionsArray[this.selectedLogicQuestion].date.value &&\n        this.questionsArray[this.selectedLogicQuestion].time.value) {\n        this.selectedValue = this.questionsArray[this.selectedLogicQuestion].time.title + ': ' +\n          this.questionsArray[this.selectedLogicQuestion].time.value;\n      } else if (this.questionsArray[this.selectedLogicQuestion].date.value  &&\n        !this.questionsArray[this.selectedLogicQuestion].time.value) {\n        this.selectedValue = this.questionsArray[this.selectedLogicQuestion].date.title + ': ' +\n          this.formateWithPipe(this.questionsArray[this.selectedLogicQuestion].date.value);\n      } else {\n        this.selectedValue = this.questionsArray[this.selectedLogicQuestion].date.title + ': ' +\n          this.formateWithPipe(this.questionsArray[this.selectedLogicQuestion].date.value) + ', ' +\n          this.questionsArray[this.selectedLogicQuestion].time.title + ': ' +\n          this.questionsArray[this.selectedLogicQuestion].time.value;\n      }\n    }\n    if(this.questionsArray[this.selectedLogicQuestion].date.value){\n      this.logic['date'] = this.formateBySlash(this.questionsArray[this.selectedLogicQuestion].date.value);\n    }else{\n      this.logic['date'] = '';\n    }\n    if(this.questionsArray[this.selectedLogicQuestion].time.value){\n      this.logic['time'] = this.questionsArray[this.selectedLogicQuestion].time.value;\n    }else{\n      this.logic['time'] = '';\n    }\n\n   \n    this.questionsArray[this.selectedLogicQuestion].date.value = '';\n    this.questionsArray[this.selectedLogicQuestion].time.value = '';\n  }\n\n  /**\n   * Empties the selected value if the logic operator is 'answered'\n   * @param logicOperator Logic operator selected from logic dropdown\n   */\n  onSelectLogic(logicOperator: string) {\n    if (logicOperator === 'answered') {\n      this.selectedValue = '';\n    }\n  }\n\n  /**\n   * Empties/Resets the logic fields\n   */\n  resetLogic() {\n    this.selectedLogicQuestionType = '';\n    this.selectedValue = '';\n    this.selectedLogicQuestion = null;\n    this.disableLogicDropdown = true;\n    this.operatorMap = []\n    this.logic = {\n      andOr: 'and',\n      questionName: '',\n      operator: '',\n      questionTitle: '',\n      value: this.selectedValue\n    };\n    this.showError.isVisible = false;\n    this.showError.errorMessage = '';\n  }\n\n  /**\n   * Assigns the selected star rating value to selected value and updates in main question array list\n   * @param selectedValueIndex Index of selected value\n   * @param questionIndex Index of current question\n   */\n  captureStarValue(selectedValueIndex:any) {\n    this.questionsArray[this.selectedLogicQuestion].value = selectedValueIndex + 1;\n    this.selectedValue = selectedValueIndex + 1;\n  }\n\n  /**\n   * Converts the date to toLocaleDateString format\n   * @param date Date to be converted\n   */\n  formatDate(date: Date) {\n    return (new Date(date)).toLocaleDateString();\n  }\n\n  /**\n   * Operation On drag/drop of option of ranking type question\n   * @param event Event triggered when option of ranking type question is dragged and dropped\n   */\n  // drop(event: CdkDragDrop<string[]>) {\n  //   moveItemInArray(this.questionsArray[this.selectedLogicQuestion].choices, event.previousIndex, event.currentIndex);\n  // }\n\n\n  formateWithPipe(date:any){\n    var datePipe = new DatePipe('en-US');\n    return  datePipe.transform(date, 'dd MMM yyyy');\n  }\n\n  formateBySlash(date:any){\n    var datePipe = new DatePipe('en-US');\n    return  datePipe.transform(date, 'yyyy-MM-ddTHH:mm:ss.SSS','+0:00')+'Z';\n  }\n\n\n}\n","<div class=\"add-logic\">\n    <div class=\"add-logic-head vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3 vx-mb-5\">\n        <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\">Add Logic & Display Conditions</div>\n        <button class=\"close vx-p-0 vx-m-0 vx-d-flex vx-align-center\" (click)=\"closePopup('CLOSE')\"><i class=\"icons vx-fs-16 vx-label-txt\">&#xe9ae;</i></button>\n    </div>\n    <div class=\"add-logic-body\">\n        <div class=\"question-heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-2 vx-pl-2\">QUESTION {{questionIndex+1}} <span class=\"vx-fs-16 vx-fw-400 vx-txt-red vx-ml-1\" *ngIf=\"currentQuestion.isRequired ===  true\">*</span></div>\n        <div class=\"question-name vx-fs-16 vx-label-txt vx-lh-6 vx-pt-1 vx-pb-1 vx-mb-5\" [innerHTML]=\"currentQuestion?.title ? currentQuestion?.title:'Question'\">\n            <i class=\"icons info vx-txt-blue vx-ml-2\" *ngIf=\"currentQuestion.hasComments\" [appTooltip]=\"currentQuestion.comments\" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i></div>\n        <div class=\"logic-condition vx-p-2 vx-pl-3 vx-pr-3 vx-mb-5\">\n            <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt vx-mb-1\">Is visible when</div>\n            <div class=\"details vx-fs-12 vx-paragraph-txt\">Use this to define display conditions for the questions in the assessment.</div>\n        </div>\n        <div class=\"label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">SELECT QUESTION</div>\n        <div class=\"select-box vx-d-flex vx-align-center vx-justify-between vx-pl-3 vx-pr-3 vx-mb-5\" appPopover (click)=\"selectQuestion.popover()\" placement=\"left\">\n            <span class=\"name vx-fs-12 vx-paragraph-txt\" [appTooltip]=\"'Select a question'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{questionsArray[selectedLogicQuestion]?.title | questionParser}}</span>\n            <i class=\"icons vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n        </div>\n        <app-popover #selectQuestion>\n            <div class=\"select-question-popover\">\n                <ul class=\"vx-p-0 vx-m-0\">\n                    <li *ngFor=\"let data of questionsArray | questionFilter : currentQuestion.name\">\n                        <button class=\"vx-d-block vx-p-2 vx-m-0 vx-w-100\" (click)=\"logic.questionName = data?.name;setIndex(data?.name)\">\n                            <div class=\"value vx-fs-12 vx-paragraph-txt\" [appTooltip]=\"data?.title\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.title}}</div>\n                        </button>\n                    </li>\n                </ul>\n            </div>\n        </app-popover>\n        <ng-container *ngIf=\"operatorMap?.length > 0\">\n            <div class=\"label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">LOGICAL OPERATOR</div>\n\n            <div class=\"operator-item vx-mb-5\">\n                <ul class=\"vx-d-flex vx-p-0 vx-m-0\">\n                    <li class=\"vx-d-flex vx-align-center vx-p-3 vx-mr-2\" *ngFor='let operator of operatorMap'>\n                        <app-cs-radio name=\"question.name\" (checkedEvent)=\"setOperator(operator.key)\"><span class=\"name vx-fs-11 vx-paragraph-txt vx-tt-uppercase\">{{operator.value}}</span></app-cs-radio>\n                    </li>\n                </ul>\n            </div>\n        </ng-container>\n\n        <ng-container  *ngIf=\"logic.questionName != '' && (logic.operator && logic.operator != 'answered') \">\n            <div class=\"label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">PLEASE SELECT THE VALUE</div>\n            <app-logic-multiple-choice *ngIf=\"selectedLogicQuestionType=='multiple-choice'\" [question]=\"questionsArray[selectedLogicQuestion]\" (changeEvent)=\"multipleChoiceChecked($event)\"></app-logic-multiple-choice>\n            <app-logic-checkbox *ngIf=\"selectedLogicQuestionType=='checkbox'\"  [question]=\"questionsArray[selectedLogicQuestion]\" (changeEvent)=\"checkboxStatus($event)\"></app-logic-checkbox>\n            <app-logic-image-choice *ngIf=\"false\"></app-logic-image-choice>\n            <app-logic-star-rating *ngIf=\"false\"></app-logic-star-rating>\n            <app-logic-single-textbox *ngIf=\"selectedLogicQuestionType=='single-textbox'\" [question]=\"questionsArray[selectedLogicQuestion]\" (changeEvent)=\"selectedValue = $event\"></app-logic-single-textbox>\n            <app-logic-comment-box *ngIf=\"false\"></app-logic-comment-box>\n            <app-logic-dropdown *ngIf=\"selectedLogicQuestionType=='dropdown'\" [question]=\"questionsArray[selectedLogicQuestion]\" (changeEvent)=\"multipleChoiceChecked($event)\"></app-logic-dropdown>\n            <app-logic-ranking *ngIf=\"false\"></app-logic-ranking>\n            <app-logic-slider *ngIf=\"false\"></app-logic-slider>\n            <app-logic-multiple-textbox *ngIf=\"false\" ></app-logic-multiple-textbox>\n            <app-logic-date-time *ngIf=\"selectedLogicQuestionType=='date-time'\" [question]=\"questionsArray[selectedLogicQuestion]\" (changeEvent)=\"multipleChoiceChecked($event)\"></app-logic-date-time>\n        </ng-container>\n        <div class=\"error-msg vx-fs-11 vx-txt-red\" *ngIf='showError.isVisible'>{{showError.errorMessage}}</div>\n    </div>\n    <div class=\"add-logic-footer vx-d-flex vx-align-center vx-justify-end vx-pl-3 vx-pr-3 vx-mt-5\">\n        <button class=\"reset-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-4 vx-pr-4 vx-m-0 vx-d-flex vx-align-center vx-justify-between\" (click)=\"resetLogic()\">RESET</button>\n        <button class=\"logic-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pl-4 vx-pr-4 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-between\" (click)=\"addLogic()\">ADD LOGIC</button>\n    </div>\n</div>\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n  name: 'typeof'\n})\nexport class TypeOfPipe implements PipeTransform {\n\n  transform(value: any): any {\n   \n    return typeof value;\n  }\n\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { DialogService } from '../../../../ui-kit/dialog/dialog.service';\nimport { AddLogicComponent } from '../add-logic/add-logic.component';\nimport { ASSETS } from '../../../../../lib/constants/assets.constants';\n@Component({\n  selector: 'app-logic',\n  templateUrl: './logic.component.html',\n  styleUrls: ['./logic.component.less'],\n})\nexport class LogicComponent implements OnInit {\n  // constructor(\n  //   private dialog: UiDialogService,\n  // ) { }\n\n  // ngOnInit(): void {\n  // }\n\n  // addLogic() {\n  //   const ref = this.dialog.open(AddLogicComponent, {\n  //     data: { },\n  //     position: 'CENTER',\n  //     background: 'black',\n  //   });\n  // }\n  constructor(private dialog: DialogService) {}\n  @Input() service: any;\n  @Input() question: any;\n  @Input() questionIndex: any;\n  @Input() editorMode: any;\n  operatorVal: any = {\n    '=': 'Equals',\n    '!=': 'Not Equals',\n    '>': 'Greater than',\n    '<': 'Less than',\n    '>=': 'Greater or equals',\n    '<=': 'Less or equals',\n    answered: 'If answered',\n    before: 'Before',\n    after: 'After',\n    beforeEquals: 'Before or equals',\n    afterEquals: 'After or equals',\n  };\n\n  ngOnInit(): void {}\n  ASSETS = ASSETS;\n  modifyLogic() {\n    const ref = this.dialog.open(AddLogicComponent, {\n      position: 'CENTER',\n      background: 'black',\n      data: {\n        currentQuestion: this.question,\n        allQuestions: this.service.formsPage.elements,\n        editorMode: this.editorMode,\n        questionIndex: this.questionIndex,\n      },\n    });\n    ref.afterClosed.subscribe((data) => {\n      if (data.action === 'ADD_LOGIC') {\n        this.question.visibilityLogic = data.logic;\n      }\n    });\n  }\n  addLogic() {}\n\n  /**\n   * Deletes the logic having given index from visibility logic list\n   * @param index Index of selected logic\n   */\n  deleteLogic(index: number) {\n    this.question.visibilityLogic.splice(index, 1);\n  }\n  // show(origin, data?, content?: TemplateRef<any>) {\n  //\n  //   const ref = this.popper.open({\n  //     content: PopoverActionComponent,\n  //     origin,\n  //     width: '250',\n  //     data: {\n  //       action: this.formateData(data),\n  //       actionData: data\n  //     }\n  //   });\n\n  //   ref.afterClosed$.subscribe(res => {\n  //\n  //   });\n\n  // }\n\n  formateData(value: any) {\n    const action = [];\n    const data = value.split(',');\n    for (let i = 1; i < data.length; i++) {\n      action.push({ icon: '', name: data[i], identifier: '' });\n    }\n    return action;\n  }\n}\n","<div class=\"logic\">\n  <div class=\"logic-condition vx-p-2 vx-pl-3 vx-pr-3 vx-mb-3\">\n    <div class=\"heading vx-fs-14 vx-fw-500 vx-label-txt vx-mb-1\">\n      Is visible when\n    </div>\n    <div class=\"details vx-fs-12 vx-paragraph-txt\">\n      Use this to define display conditions for the questions in the assessment.\n    </div>\n  </div>\n  <div\n    *ngIf=\"question.visibilityLogic.length === 0\"\n    class=\"no-selected vx-text-center\"\n  >\n    <img [src]=\"ASSETS.add_logic\" />\n    <button\n      class=\"add-btn vx-fs-11 vx-fw-600 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\"\n      (click)=\"modifyLogic()\"\n    >\n      ADD LOGIC & DISPLAY CONDITIONS FOR THIS QUESTION\n    </button>\n  </div>\n  <div class=\"logic-table\" *ngIf=\"question.visibilityLogic.length > 0\">\n    <div class=\"table-header\">\n      <div class=\"table-row vx-pl-2\">\n        <div\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center question\"\n        >\n          QUESTIONS\n        </div>\n        <div\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center logic-operator\"\n        >\n          LOGIC OPERATORS\n        </div>\n        <div\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center value\"\n        >\n          VALUES\n        </div>\n        <div\n          class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n        ></div>\n      </div>\n    </div>\n    <div class=\"table-body\">\n      <div\n        class=\"table-row vx-pl-2\"\n        *ngFor=\"let logic of question.visibilityLogic; let i = index\"\n      >\n        <div\n          class=\"and-label vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pt-1 vx-pb-1 vx-d-flex vx-justify-center\"\n          *ngIf=\"question.visibilityLogic.length > 1 && i !== 0\"\n        >\n          AND\n        </div>\n        <div\n          class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center question\"\n        >\n          <div\n            class=\"name vx-fs-13 vx-paragraph-txt\"\n            [appTooltip]=\"logic.questionTitle\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"false\"\n            [innerHTML]=\"logic.questionTitle\"\n          ></div>\n        </div>\n        <div\n          class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center logic-operator\"\n        >\n          <div\n            class=\"label vx-fs-11 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-lh-4\"\n            [class.blue]=\"logic.operator == 'answered'\"\n            [class.green]=\"logic.operator != 'answered'\"\n            *ngIf=\"logic.operator\"\n          >\n            {{ operatorVal[logic.operator] }}\n          </div>\n        </div>\n        <div\n          class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center value\"\n        >\n          <div\n            *ngIf=\"logic.value != '' && (logic.value | typeof) === 'object'\"\n            class=\"value-name vx-fs-12 vx-paragraph-txt vx-pl-2 vx-pr-2 vx-lh-6 vx-mr-1\"\n            [appTooltip]=\"logic.value[0]\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"false\"\n            [innerHTML]=\"logic.value[0]\"\n          ></div>\n          <div\n            *ngIf=\"logic.value != '' && (logic.value | typeof) !== 'object'\"\n            class=\"value-name vx-fs-12 vx-paragraph-txt vx-pl-2 vx-pr-2 vx-lh-6 vx-mr-1\"\n            [appTooltip]=\"logic.value\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"false\"\n            [innerHTML]=\"logic.value\"\n          ></div>\n\n          <button\n            *ngIf=\"\n              logic.value?.length > 1 && (logic.value | typeof) === 'object'\n            \"\n            class=\"count vx-fs-11 vx-txt-white vx-m-0 vx-p-0 vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center\"\n            appPopover\n            (click)=\"count.popover()\"\n            placement=\"right\"\n          >\n            +{{ logic?.value?.length - 1 }}\n          </button>\n\n          <app-popover #count>\n            <div\n              class=\"wf-action-list\"\n              *ngIf=\"(logic.value | typeof) === 'object'\"\n            >\n              <ul class=\"action-item\">\n                <li class=\"vx-p-2\" *ngFor=\"let data of logic.value.slice(1)\">\n                  <div\n                    class=\"count-value vx-fs-11 vx-paragraph-txt\"\n                    [appTooltip]=\"'Strongly agree'\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                  >\n                    {{ data }}\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n        </div>\n        <div\n          class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center action\"\n        >\n          <button\n            class=\"close vx-fs-16 vx-txt-red vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n            (click)=\"deleteLogic(i)\"\n          >\n            <i class=\"icons\">&#xe9ae;</i>\n          </button>\n        </div>\n      </div>\n    </div>\n    <button\n      class=\"add-btn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\"\n      (click)=\"modifyLogic()\"\n    >\n      Add Additional Logic & Display Conditions for this Question\n    </button>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'errorMessage'\n})\nexport class ErrorMessagePipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    if(value){\n      const [first] = Object.keys(value);\n      if(value[first].message){\n        return value[first].message\n      }else{\n        return '';\n      }\n    }else{\n      return '';\n    }\n   \n    \n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'currentPageQuestion'\n})\nexport class CurrentPageQuestionPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    let x =  value.filter((question:any) => (question.page ===  args[0]) );\n    if(x.length > 1){\n      return true;\n    }else{\n      return false;\n    }\n\n  }\n\n}\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ValidatorService } from '../../services/validator.service';\n\n@Component({\n  selector: 'app-editor-wrapper',\n  templateUrl: './editor-wrapper.component.html',\n  styleUrls: ['./editor-wrapper.component.less']\n})\nexport class EditorWrapperComponent implements OnInit,AfterViewInit {\n\n  hideResponsePopup = false;\n  nextQuestion = false;\n  @Input() openPortal :'ASSESSMENT_IMPORT' | 'RESPONSIBILITY_CHECKPOINT'|'' = '';\n\n\n\n\n  openResponsePopup() {\n    this.hideResponsePopup = true;\n  }\n\n  closeResponsePopup() {\n    this.hideResponsePopup = false;\n  }\n\n  openNextQuestion() {\n    this.nextQuestion = true;\n  }\n\n  closeNextQuestion() {\n    this.nextQuestion = false;\n  }\n\n  @Input() questionIndex: any;\n  @Input() question: any;\n  @Input() GRS: any;\n  @Input() service: any;\n  @Input() editorMode: any;\n  @Output() validQuestionData = new EventEmitter();\n  responseChoice: any;\n  errorPresent = false;\n  viewMode = 'build';\n  @Output() deleteQuestion = new EventEmitter<number>();\n  @Output() copyQuestion = new EventEmitter<number>();\n  @ViewChild('questionContainer') questionContainer !: ElementRef;\n  constructor(private cdr: ChangeDetectorRef , private validator: ValidatorService) { }\n\n  ngOnInit(): void {\n    if ( this.question.errorArray && Object.values(this.question.errorArray).length > 0){\n      this.errorPresent = true;\n    }\n\n  }\n\n  ngAfterViewInit(): void {\n    setTimeout(() => {\n      this.questionContainer.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    }, 100);\n  }\n  openResponseChoice() {\n    this.responseChoice = true;\n  }\n  closeThis() {\n    this.responseChoice = false;\n  }\n\n  callDelete() {\n    this.deleteQuestion.emit(this.questionIndex);\n  }\n  callCopy() {\n    this.copyQuestion.emit(this.questionIndex);\n  }\n\n  /**\n   * Adds new option for a question\n   * @param choiceIndex Index of option after which new option should be added\n   * @param type Unique identifier to set id of newly created options\n   */\n  addOption({choiceIndex, type}:any) {\n    this.question.choices.splice(choiceIndex + 1, 0,\n      { title: '', value: '', is_selected: false, answerCompletedBy: [] });\n    this.setFocus(type, choiceIndex + 1);\n  }\n\n  /**\n   * Deletes a particular option\n   * @param choiceIndex Index of option after which new option should be added\n   * @param type Unique identifier to set id of newly created options\n   */\n  deleteOption({choiceIndex, type} :any) {\n    if (this.question.choices.length !== 1) {\n      this.question.choices.splice(choiceIndex, 1);\n    }\n    (choiceIndex - 1 >= 0) ? this.setFocus(type, choiceIndex - 1) :\n      this.setFocus(type, 0);\n  }\n\n  deleteColumn({columnIndex, type} :any) {\n    if (this.question.columns.length === 1) { return; }\n    this.question.columns.splice(columnIndex, 1);\n    (columnIndex - 1 >= 0) ? this.setFocus(type, columnIndex - 1) :  this.setFocus(type, 0);\n  }\n\n  addColumn({columnIndex, type}:any) {\n    const column = { title: '', value: 0, is_selected: false, weight: 0, choices: [{ title: '' }]};\n    this.question.columns.splice(columnIndex + 1, 0 , column);\n    this.setFocus(type, columnIndex + 1);\n  }\n\n  /**\n   * Sets focus to updated option\n   * @param type Unique identifier to set id of newly created options\n   * @param choiceIndex Index of option after which new option should be added\n   */\n  setFocus(type: string, choiceIndex: number) {\n    this.cdr.detectChanges();\n    let EL: HTMLElement | null;\n    EL = document.getElementById(type + choiceIndex);\n    if (EL) {\n      EL.focus();\n    }\n\n  }\n\n  /**\n   * Operation on click of save button\n   */\n  async checkForValidationStatus(mode?:any) {\n\n    const status = await  this.validator.validate(this.question);\n\n    if (status.valid === true) {\n        this.errorPresent = false;\n        this.validator.validatedQuestions[status.question.name] = status.question;\n        this.validQuestionData.emit(mode);\n     } else {\n       this.errorPresent = true;\n       delete this.validator.validatedQuestions[status.question.name];\n\n     }\n  }\n  insertResponseSet(evt:any){\n    this.question.choices = evt;\n    if(this.service.formsPage.settings.assessmentMode){\n      this.question.choices.some((ele:any)=>{\n        if(!ele.isFailed){\n          ele.score = this.service.formsPage.settings.defaultScore;\n        }\n        if(ele.isFailed === true){\n          ele.score = this.service.formsPage.settings.negativeScore;\n        }\n      })\n\n      this.question.hasOther = false;\n    }\n    this.responseChoice = false;\n    this.checkForValidationStatus('partial');\n  }\n\n}\n","<div class=\"editor-wrapper vx-mb-4 \" [class.error]=\"errorPresent\" [class.with-logic]=\"false\" [ngSwitch]=\"viewMode\"  #questionContainer >\n    <!-- <div class=\"label-mode vx-fs-10 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pt-1 vx-pb-1\">ASSESSMENT MODE ENABLED</div> -->\n    <div class=\"editor-top vx-d-flex vx-align-center vx-justify-center vx-pl-2 vx-pr-2\">\n        <button class=\"type-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center\" [class.active]=\"viewMode == 'build'\" (click)=\"viewMode = 'build'\">BUILD</button>\n\n\n\n        <div class=\"logic-area\">\n            <button [class.disabled]=\" (service.formsPage.elements | currentPageQuestion : service.currentPageNumber ) === false\" class=\"type-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center\" [class.active]=\"viewMode == 'logic'\" (click)=\"viewMode = 'logic'\" >LOGIC</button>\n            <i *ngIf=\"(service.formsPage.elements | currentPageQuestion : service.currentPageNumber ) === false\" [appTooltip]=\"(service.formsPage.elements | currentPageQuestion : service.currentPageNumber ) === false ? 'You need to have at least two questions to create a logical workflow.':''\" class=\"icons info vx-fs-12 vx-txt-blue\"  placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">&#xe932;</i>\n        </div>\n\n\n\n        <button [class.disabled]=\"service.formsPage?.elements?.length < 2\" class=\"type-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center\" [class.active]=\"viewMode == 'move'\" (click)=\"viewMode = 'move'\">MOVE</button>\n        <div class=\"rightside-button vx-d-flex vx-align-center\">\n            <button class=\"duplicate-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center vx-lh-7\" (click)=\"copyQuestion.emit(questionIndex)\">DUPLICATE</button>\n            <button class=\"delete-btn vx-fs-14 vx-txt-red vx-pl-2 vx-pr-2 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" (click)=\"deleteQuestion.emit(questionIndex)\"><i class=\"icons\">&#xe923;</i></button>\n        </div>\n    </div>\n    <div class=\"editor-mid vx-pl-5 vx-pr-5\" [ngSwitch]=\"viewMode\">\n        <div class=\"build-area vx-d-flex vx-justify-between\" *ngSwitchCase=\"'build'\">\n            <div class=\"left\">\n                <!-- <app-welcome></app-welcome>\n                <app-thank-you></app-thank-you> -->\n                <div class=\"vx-d-flex vx-justify-between\">\n                    <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-5 vx-pl-2\">QUESTION {{questionIndex  + 1}} <span *ngIf=\"question.isRequired === true\" class=\"vx-fs-16 vx-fw-400 vx-txt-red vx-ml-1\">*</span></div>\n                    <!-- *ngIf=\"service.formsPage?.settings?.weightageEnabled === true\" -->\n                    <app-weightage-selector *ngIf=\"service.formsPage?.settings?.weightageEnabled === true && ['multiple-choice','checkbox','dropdown'].includes(question?.type)\" [(value)]=\"question.weightage\" ></app-weightage-selector>\n                </div>\n                <!-- <div class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-5 vx-pl-2\">QUESTION {{questionIndex  + 1}}\n                <span  *ngIf=\"question.isRequired === true\" class=\"vx-fs-16 vx-fw-400 vx-txt-red vx-ml-1\">*</span></div> -->\n                <app-single-line-editor [placeholder]=\"'Question'\" [label]=\"false\" [editorMode]=\"'multiline'\" [(ngModel)]=\"question.title\"></app-single-line-editor>\n                <ng-container *ngIf=\"question.isPlaceholder &&  ['single-textbox','comment-box'].includes(question.type)\">\n                    <div class=\"label-heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Placeholder Text</div>\n                    <app-single-line-editor [placeholder]=\"'Please enter a response'\" [label]=\"false\" [editorMode]=\"'multiline'\"></app-single-line-editor>\n                </ng-container>\n\n                <app-single-line-editor [label]=\"true\" [(ngModel)]=\"question.description\" *ngIf=\"question.hasDescription\" [placeholder]=\"'Description'\" [editorMode]=\"'multiline'\"></app-single-line-editor>\n                <app-single-line-editor  [label]=\"true\" [(ngModel)]=\"question.comments\" *ngIf=\"question.hasComments\" [placeholder]=\"'Comment'\" [editorMode]=\"'multiline'\"></app-single-line-editor>\n                <div class=\"response-block vx-d-flex vx-align-center vx-justify-end vx-mb-3\" *ngIf=\"false\">\n                    <button *ngIf=\"!hideResponsePopup\" class=\"response-select vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-m-0 vx-p-0 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-justify-center vx-lh-6\" (click)=\"openResponsePopup()\">PRECONFIGURED RESPONSE CHOICE <i class=\"icons vx-fs-10 vx-d-flex vx-ml-4\">&#xe9e8;</i></button>\n                    <app-response-selector *ngIf=\"hideResponsePopup\"></app-response-selector>\n                    <div class=\"overlay\" *ngIf=\"hideResponsePopup\" (click)=\"closeResponsePopup()\"></div>\n                </div>\n                <ng-container [ngSwitch]=\"question?.type\">\n                    <app-multiple-choice *ngSwitchCase=\"'multiple-choice'\"  [service]=\"service\" [question]=\"question\" (addOption)=\"addOption($event)\"  (deleteOption)=\"deleteOption($event)\"></app-multiple-choice>\n                    <app-checkbox *ngSwitchCase=\"'checkbox'\" [service]=\"service\" [question]=\"question\" (addOption)=\"addOption($event)\"  (deleteOption)=\"deleteOption($event)\"></app-checkbox>\n                    <app-image-choice  *ngSwitchCase=\"'image-choice'\"></app-image-choice>\n                    <app-star-rating  *ngSwitchCase=\"'star-rating'\"></app-star-rating>\n                    <app-matrix-dropdown *ngSwitchCase=\"'matrix-dropdown'\"></app-matrix-dropdown>\n                    <app-build-dropdown *ngSwitchCase=\"'dropdown'\" [service]=\"service\" [question]=\"question\" (addOption)=\"addOption($event)\"  (deleteOption)=\"deleteOption($event)\"></app-build-dropdown>\n                    <app-matrix-rating-scale *ngSwitchCase=\"'rating-scale'\"></app-matrix-rating-scale>\n                    <app-ranking *ngSwitchCase=\"'ranking'\"></app-ranking>\n                    <app-slider *ngSwitchCase=\"'slider'\"></app-slider>\n                    <app-multiple-textbox *ngSwitchCase=\"'multiple-textbox'\"></app-multiple-textbox>\n                    <app-build-date-time *ngSwitchCase=\"'date-time'\" [question]=\"question\"></app-build-date-time>\n                </ng-container>\n\n            </div>\n            <div class=\"right\">\n                <app-quick-setting [questionIndex]=\"questionIndex\" [question]=\"question\" (typeChanged)=\"checkForValidationStatus('PARTIAL')\"></app-quick-setting>\n            </div>\n        </div>\n        <div class=\"logic-area\" *ngSwitchCase=\"'logic'\">\n            <div class=\"question-heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-5 vx-pl-2\">QUESTION {{questionIndex  + 1}} <span *ngIf=\"question.isRequired === true\" class=\"vx-fs-16 vx-fw-400 vx-txt-red vx-ml-1\">*</span></div>\n            <div class=\"question-name vx-fs-16 vx-label-txt vx-lh-6 vx-pt-1 vx-pb-1 vx-mb-5\">\n                {{question?.title ? question?.title : 'Question'}}\n                <i class=\"icons info vx-txt-blue vx-ml-2\" *ngIf=\"question?.hasComments\"  [appTooltip]=\"question?.comments\" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i></div>\n            <app-logic [service]=\"service\" [question]=\"question\" [editorMode]=\"editorMode\" [questionIndex]=\"questionIndex\"></app-logic>\n        </div>\n        <div class=\"move-area\" *ngSwitchCase=\"'move'\">\n            <div class=\"question-heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-5 vx-pl-2\">QUESTION {{questionIndex  + 1}} <span *ngIf=\"question.isRequired === true\" class=\"vx-fs-16 vx-fw-400 vx-txt-red vx-ml-1\">*</span></div>\n            <div class=\"question-name vx-fs-16 vx-label-txt vx-lh-6 vx-pt-1 vx-pb-1 vx-mb-5\">{{question?.title ? question?.title : 'Question'}} <i  *ngIf=\"question?.hasComments\" class=\"icons info vx-txt-blue vx-ml-2\" [appTooltip]=\"question?.comments\" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i></div>\n            <app-move [service]=\"service\" [openPortal]=\"openPortal\" [question] =\"question\" [questionIndex]=\"questionIndex\"></app-move>\n        </div>\n    </div>\n    <div class=\"editor-bottom vx-d-flex vx-align-center vx-justify-between vx-p-2 error\">\n        <button (click)=\"openNextQuestion()\" class=\"next-btn vx-fs-12 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><span class=\"plus-icon vx-fs-14 vx-fw-500 vx-d-flex vx-align-center vx-justify-center vx-mr-1\">+</span> NEXT QUESTION</button>\n        <div class=\"error-msg vx-fs-12 vx-txt-white vx-tt-uppercase vx-d-flex vx-align-center\" *ngIf=\"(question?.errorArray|errorMessage) as error\">\n            <i class=\"icons vx-d-flex vx-mr-1\">&#xe914;</i> {{error}}\n        </div>\n        <button (click)=\"checkForValidationStatus('save')\" class=\"save-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">SAVE</button>\n        <div *ngIf=\"nextQuestion\" class=\"next-question vx-p-4\">\n            <app-question-type (addQuestion)=\"service.addQuestion($event,questionIndex);closeNextQuestion();\"></app-question-type>\n        </div>\n        <div *ngIf=\"nextQuestion\" class=\"overlay\" (click)=\"closeNextQuestion()\"></div>\n    </div>\n</div>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-toolkit',\n  templateUrl: './toolkit.component.html',\n  styleUrls: ['./toolkit.component.less']\n})\nexport class ToolkitComponent implements OnInit {\n  @Output() addQuestion = new EventEmitter();\n  constructor() { }\n  showCollapse = true;\n  ngOnInit(): void {\n  }\n  clickCollapse(){\n    this.showCollapse = !this.showCollapse;\n  }\n\n}\n","<div class=\"toolkit-section\" [class.collapse]=\"showCollapse\">\n    <button class=\"heading-btn vx-txt-white vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"clickCollapse()\">\n        <ng-container *ngIf=\"!showCollapse\">\n            <span class=\"vx-fs-11 vx-fw-500 vx-tt-uppercase\">TOOLKIT</span>\n            <i class=\"icons arrow vx-fs-10\">&#xe96b;</i>\n        </ng-container>\n        <ng-container *ngIf=\"showCollapse\">\n            <span class=\"dot vx-fs-12 vx-fw-500 vx-tt-uppercase\">. . .</span>\n            <i class=\"icons arrow vx-fs-10\">&#xe970;</i>\n        </ng-container>\n    </button>\n    <div class=\"toolkit-items vx-p-3 vx-pr-0\">\n        <ul class=\"vx-p-0 vx-pr-3 vx-m-0\">\n            <li class=\"vx-mb-2\" *ngIf=\"true\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('welcome')\">\n                    <div class=\"question-icon welcome-screen vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab3;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">WELCOME SCREEN</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\" *ngIf=\"false\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('thankyou')\">\n                    <div class=\"question-icon thank-you-screen vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab2;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">THANK YOU SCREEN</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('multiple-choice')\">\n                    <div class=\"question-icon multiple-choice vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeabd;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">MULTIPLE CHOICE</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('checkbox')\">\n                    <div class=\"question-icon checkboxes vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeabb;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">CHECKBOXES</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\" *ngIf=\"false\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('image-choice')\">\n                    <div class=\"question-icon image-choice vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xea29;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">IMAGE CHOICE</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\" *ngIf=\"false\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('star-rating')\">\n                    <div class=\"question-icon star-rating vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xea71;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">STAR RATINGS</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('single-textbox')\">\n                    <div class=\"question-icon single-textbox vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab5;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">SINGLE TEXTBOX</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\" *ngIf=\"false\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('comment-box')\">\n                    <div class=\"question-icon comment-box vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xe9a6;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">COMMENT BOX</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\" *ngIf=\"false\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('matrix-dropdown')\">\n                    <div class=\"question-icon matrix-dropdown vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab7;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">MATRIX OF DROPDOWNS</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('dropdown')\">\n                    <div class=\"question-icon dropdown-icon vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab9;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">DROPDOWN</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\" *ngIf=\"false\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('rating-scale')\">\n                    <div class=\"question-icon matrix-rating vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab8;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">MATRIX & RATING SCALE</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\" *ngIf=\"false\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('ranking')\">\n                    <div class=\"question-icon ranking vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeb03;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">RANKING</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\" *ngIf=\"false\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('slider')\">\n                    <div class=\"question-icon slider vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab6;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">SLIDER</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\"  *ngIf=\"false\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('multiple-textbox')\">\n                    <div class=\"question-icon multiple-textbox vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeab4;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">MULTIPLE TEXTBOXES</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\" >\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('date-time')\">\n                    <div class=\"question-icon date-time vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xeaba;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">DATE & TIME</div>\n                </button>\n            </li>\n            <li class=\"vx-mb-2\">\n                <button class=\"vx-m-0 vx-p-1 vx-text-left vx-w-100 vx-d-flex vx-align-center\" (click)=\"addQuestion.emit('file-upload')\">\n                    <div class=\"question-icon file-upload vx-d-flex vx-align-center vx-justify-center vx-mr-1\"><i class=\"icons vx-fs-16 vx-txt-white\">&#xea97;</i></div>\n                    <div class=\"name vx-fs-10 vx-paragraph-txt vx-tt-uppercase\" *ngIf=\"!showCollapse\">FILE UPLOAD</div>\n                </button>\n            </li>\n        </ul>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n\n@Component({\n  selector: 'app-page-header',\n  templateUrl: './page-header.component.html',\n  styleUrls: ['./page-header.component.less']\n})\nexport class PageHeaderComponent implements OnInit {\n @Input() pageName !: string;\n @Input() pageDescription !:string;\n @Output() edit = new EventEmitter();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"page-editor-header vx-mb-5 vx-p-4\">\n  <button\n    (click)=\"edit.emit()\"\n    class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-align-center vx-justify-center vx-lh-6\"\n  >\n    <i class=\"icons vx-mr-2\">&#xe9ba;</i> EDIT\n  </button>\n  <div\n    *ngIf=\"pageName\"\n    class=\"page-name vx-fs-14 vx-label-txt vx-mb-2\"\n    [innerHTML]=\"pageName\"\n  ></div>\n  <div\n    *ngIf=\"pageDescription\"\n    class=\"page-details vx-fs-12 vx-paragraph-txt\"\n    [innerHTML]=\"pageDescription\"\n  ></div>\n</div>\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Optional,\n  Output,\n} from '@angular/core';\nimport { Configurations } from '../../../../configurations';\nimport { ASSETS } from '../../../../../lib/constants/assets.constants';\n// import { environment } from 'src/environments/environment';\n\n@Component({\n  selector: 'app-welcome-thankyou',\n  templateUrl: './welcome-thankyou.component.html',\n  styleUrls: ['./welcome-thankyou.component.less'],\n})\nexport class WelcomeThankyouComponent implements OnInit {\n  ASSETS = ASSETS;\n  @Output() deleteQuestion = new EventEmitter();\n  entityData!: any;\n  @Input() service!: any;\n\n  @Input('entityData') set allEntityData(entity: any) {\n    if (entity) {\n      this.entityData = entity;\n      this.checkInputMessage();\n    }\n  }\n  env!: any;\n  isImageUploading!: boolean;\n  constructor(@Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  ngOnInit(): void {\n    this.entityData.hasWelcomeImage = true;\n    this.entityData.hasWelcomeDescription = true;\n  }\n  onSelectImage(event: any) {\n    if (event.target.files && event.target.files[0]) {\n      this.isImageUploading = true;\n      this.service.formsPage.welcomeImage = '';\n      // tslint:disable-next-line: prefer-const\n      let selectedFile = event.target.files[0];\n      const uploadData = new FormData();\n      uploadData.append('file', selectedFile);\n      // tslint:disable-next-line: prefer-const\n      let destination = 'assessment/imports' + '/welcome/';\n      this.service.uploadHandler(uploadData, destination).subscribe(\n        (data: any) => {\n          this.isImageUploading = false;\n          this.service.formsPage.welcomeImage =\n            this.env?.s3Url + this.env?.s3Bucket + '/' + data.file_url_path;\n        },\n        (error: any) => {\n          this.isImageUploading = false;\n        }\n      );\n    }\n  }\n  //  deleteWelcome() {\n  //    this.service.formsPage.hasWelcome = false;\n  //    this.service.stepIdentifier = 'pagescreen';\n  //    this.service.currentPageNumber = 1;\n  //    this.service.formsPage.pageDetailsList.forEach(pageDetail => {\n  //      if (pageDetail.pageNumber === this.service.currentPageNumber) {\n  //        this.service.currentPageDetails.pageName = pageDetail.pageName;\n  //        this.service.currentPageDetails.pageNumber = pageDetail.pageNumber;\n  //        this.service.currentPageDetails.pageDescription = pageDetail.pageDescription;\n  //      }\n  //    });\n  //    this.service.checkForPageDetails();\n  //  }\n\n  deleteWelcome() {\n    this.service.formsPage.hasWelcome = false;\n    this.service.stepIdentifier = 'pagescreen';\n    this.service.currentPageNumber = 1;\n    this.service.formsPage.welcomeImage = '';\n    this.entityData.welcomeText = '';\n    this.entityData.welcomeDescription = '';\n    // this.service.formsPage.pageDetailsList.forEach(pageDetail => {\n    //   if (pageDetail.pageNumber === this.service.currentPageNumber) {\n    //     this.service.currentPageDetails.pageName = pageDetail.pageName;\n    //     this.service.currentPageDetails.pageNumber = pageDetail.pageNumber;\n    //     this.service.currentPageDetails.pageDescription = pageDetail.pageDescription;\n    //   }\n    // });\n    // this.service.checkForPageDetails();\n  }\n\n  checkInputMessage() {\n    if (\n      typeof this.entityData?.welcomeText === 'string' &&\n      this.entityData?.welcomeText.trim() == ''\n    ) {\n      this.entityData.welcomeText = '';\n    }\n    if (\n      typeof this.entityData?.welcomeDescription === 'string' &&\n      this.entityData?.welcomeDescription.trim() == ''\n    ) {\n      this.entityData.welcomeDescription = '';\n    }\n  }\n}\n","<div class=\"editor-wrapper vx-mb-4\" [class.error]=\"false\" #questionContainer>\n  <div\n    class=\"editor-top vx-d-flex vx-align-center vx-justify-center vx-pl-2 vx-pr-2\"\n  >\n    <div class=\"rightside-button vx-d-flex vx-align-center\">\n      <!-- deleteQuestion.emit();  -->\n      <button\n        class=\"delete-btn vx-fs-14 vx-txt-red vx-pl-2 vx-pr-2 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\n        (click)=\"deleteWelcome()\"\n      >\n        <i class=\"icons\">&#xe923;</i>\n      </button>\n    </div>\n  </div>\n  <div class=\"editor-mid vx-pl-5 vx-pr-5\">\n    <div class=\"build-area vx-d-flex vx-justify-between\">\n      <div class=\"left\">\n        <div class=\"image-block vx-d-block\" *ngIf=\"entityData.hasWelcomeImage\">\n          <div class=\"image-item vx-d-flex vx-align-center vx-justify-center\">\n            <img\n              *ngIf=\"entityData.welcomeImage == '' && !isImageUploading\"\n              [src]=\"ASSETS.placeholder\"\n            />\n            <img\n              *ngIf=\"entityData.welcomeImage != '' && !isImageUploading\"\n              [src]=\"entityData?.welcomeImage\"\n            />\n            <i *ngIf=\"isImageUploading\" class=\"icons loader-icon\">&#xe929;</i>\n          </div>\n          <div class=\"button-area vx-d-flex vx-justify-center\">\n            <label\n              class=\"upload-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\"\n            >\n              <input\n                type=\"file\"\n                accept=\"image/*\"\n                (change)=\"onSelectImage($event)\"\n              />\n              {{\n                entityData?.welcomeImage == \"\" ? \"Upload Image\" : \"Change Image\"\n              }}\n            </label>\n          </div>\n        </div>\n        <app-single-line-editor\n          [placeholder]=\"'Welcome Heading'\"\n          [label]=\"false\"\n          [editorMode]=\"'multiline'\"\n          [(ngModel)]=\"entityData.welcomeText\"\n        ></app-single-line-editor>\n        <app-single-line-editor\n          *ngIf=\"entityData?.hasWelcomeDescription\"\n          [placeholder]=\"'Welcome Description'\"\n          [label]=\"false\"\n          [editorMode]=\"'multiline'\"\n          [(ngModel)]=\"entityData.welcomeDescription\"\n        ></app-single-line-editor>\n      </div>\n      <div class=\"right\">\n        <div class=\"quick-settings\">\n          <div\n            class=\"heading vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-5 vx-pl-2\"\n          >\n            QUESTION SETTINGS\n          </div>\n          <div class=\"settings-list\">\n            <ul class=\"vx-p-0 vx-m-0\">\n              <li class=\"vx-pt-3 vx-pb-3\">\n                <app-cs-switch [(ngValue)]=\"entityData.hasWelcomeDescription\">\n                  <div\n                    class=\"vx-d-flex vx-align-center vx-justify-between vx-w-100\"\n                  >\n                    <div\n                      class=\"settings-name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\"\n                    >\n                      DESCRIPTION\n                    </div>\n                  </div>\n                </app-cs-switch>\n              </li>\n              <li class=\"vx-pt-3 vx-pb-3\">\n                <app-cs-switch [(ngValue)]=\"entityData.hasWelcomeImage\">\n                  <div\n                    class=\"vx-d-flex vx-align-center vx-justify-between vx-w-100\"\n                  >\n                    <div\n                      class=\"settings-name vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\"\n                    >\n                      IMAGE\n                    </div>\n                  </div>\n                </app-cs-switch>\n              </li>\n            </ul>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import {\n  Component,\n  Input,\n  OnInit,\n  EventEmitter,\n  Output,\n  HostListener,\n} from '@angular/core';\nimport { AddPageDetailsComponent } from '../components/add-page-details/add-page-details.component';\nimport { AssessmentSettingsComponent } from '../components/assessment-settings/assessment-settings.component';\n\nimport { EditorService } from '../services/editor.service';\n\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DialogService } from '../../../ui-kit/dialog/dialog.service';\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\nimport { DeleteComponent } from '../../../ui-kit/action-dialog/delete/delete.component';\nimport { ActiveComponent } from '../../../ui-kit/action-dialog/active/active.component';\n\n@Component({\n  selector: 'app-create-assessment-container',\n  templateUrl: './create-assessment-container.component.html',\n  styleUrls: ['./create-assessment-container.component.less'],\n  providers: [EditorService],\n})\nexport class CreateAssessmentContainerComponent implements OnInit {\n  showCollapse = false;\n  expandPage = false;\n  hideQuestion = false;\n  assessmentId = '';\n  assessmentName = '';\n  assessmentCategory = '';\n  assessmentControlId = '';\n  assessmentCurrentState = 'DRAFT';\n  pageMode: 'EDIT' | 'PREVIEW' = 'EDIT';\n  isLoaded: boolean = false;\n  @Input() openPortal: 'ASSESSMENT_IMPORT' | 'RESPONSIBILITY_CHECKPOINT' | '' =\n    '';\n  @Output() setIsUploaded = new EventEmitter();\n  @Output() postAssessment = new EventEmitter();\n\n  @Input('assessmentJSON') set assessmentData(value: any) {\n    this.initializeAssessment(value);\n  }\n  @Input('checkpointJSON') set checkpointData(value: any) {\n    this.initializeCheckpoint(value);\n  }\n\n  /* When the \"Escape\" key is pressed, it emits an event to set the value of \"isUploaded\" to\n  false. and left popup will close. */\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(\n    event: KeyboardEvent\n  ) {\n    this.setIsUploaded.emit(false);\n  }\n\n  constructor(\n    private dialog: DialogService,\n    public editorService: EditorService,\n    // private  layoutService: LayoutService,\n    private route: ActivatedRoute,\n    private snackbar: SnackBarService,\n    private router: Router\n  ) {}\n\n  ngOnInit(): void {\n    this.editorService.addPage();\n    this.editorService.numberOfPages();\n    // this.initializeAssessment();\n  }\n  triggerPreviewWithValidation() {\n    this.editorService.activeQuestionIndex.next(-10);\n    this.editorService.activeQuestion = -10;\n  }\n  initializeAssessment(assessmentData: any) {\n    if (assessmentData) {\n      this.editorService.formsPage = assessmentData.assessmentData;\n      this.assessmentName = assessmentData.metadata.assessment_name;\n      this.assessmentCategory = assessmentData.metadata.category_arr;\n    }\n  }\n\n  initializeCheckpoint(checkpointData: any) {\n    if (checkpointData && Object.keys(checkpointData)?.length > 0) {\n      this.editorService.formsPage = checkpointData;\n    }\n  }\n\n  setAllPages() {\n    this.editorService.allPages = [\n      ...new Set(\n        this.editorService.formsPage.elements.map((ele: any) => ele.page)\n      ),\n    ];\n    this.getPageName(1);\n  }\n\n  addPageDetails() {\n    const ref = this.dialog.open(AddPageDetailsComponent, {\n      data: {\n        page: this.editorService.currentPageNumber,\n        pageDetails: this.editorService.currentPageDetails,\n        ref: this.editorService,\n      },\n      position: 'RIGHT',\n      background: 'black',\n    });\n    ref.afterClosed.subscribe((data: any) => {\n      this.generatePageDropdown();\n    });\n  }\n\n  public entitySettings: any = {\n    panelTitle: '',\n  };\n\n  assessmentSettings() {\n    this.entitySettings = this.getSettingsData();\n    const ref = this.dialog.open(AssessmentSettingsComponent, {\n      data: { settings: this.entitySettings, service: this.editorService },\n      position: 'RIGHT',\n      background: 'black',\n    });\n  }\n\n  getSettingsData() {\n    let settings: any = {\n      panelTitle: `Assessment settings`,\n\n      settingsElements: [],\n    };\n    settings.settingsElements.push({\n      type: 'ASSESSMENT',\n      entityType: 'ASSESSMENT',\n      isVisible: true,\n      isEnabled: this.editorService.formsPage.settings.assessmentMode,\n      helpingText:\n        'You can configure scores for the questions and analyze the responses submitted by the respondent based on these scores.',\n      defaultScore: this.editorService.formsPage.settings.defaultScore,\n      negativeScoreCriteria:\n        this.editorService.formsPage.settings.negativeScoreCriteria,\n      negativeScore: this.editorService.formsPage.settings.negativeScore,\n      weightageEnabled: this.editorService.formsPage.settings.weightageEnabled,\n      settingTitle: 'ASSESSMENT MODE',\n      settingEnableText: `Enable assessment mode for this assessment`,\n      updateType: 'LAZY',\n    });\n    settings.settingsElements.push({\n      type: 'RESPONSE_SEGMENT',\n      entityType: 'ASSESSMENT',\n      helpingText:\n        'Response segments let you divide the responses into separate parts or sections for easier analysis of data and assist in decision making.',\n      isVisible: true,\n      isEnabled:\n        this.editorService.formsPage.responseSegment['isEnabled'] ?? false,\n      settingTitle: 'RESPONSE SEGMENTS',\n      settingEnableText: `Configure Response Segments for this assessment`,\n      updateType: 'LAZY',\n      segmentData: this.editorService.formsPage.responseSegment,\n    });\n    return settings;\n  }\n\n  clickCollapse() {\n    this.showCollapse = !this.showCollapse;\n  }\n\n  clickExpand() {\n    this.expandPage = true;\n  }\n\n  closeExpand() {\n    this.expandPage = false;\n  }\n\n  deletePage() {\n    const ref = this.dialog.open(DeleteComponent, {\n      data: { message: `This action will <strong>remove</strong> this page.` },\n      position: 'CENTER',\n      background: 'black',\n    });\n    ref.afterClosed.subscribe((data: any) => {\n      if (data === true) {\n        this.deletePageConfirm(true);\n      }\n    });\n  }\n\n  deletePageConfirm(confirmDelete: any) {\n    if (confirmDelete) {\n      this.editorService.allPages = this.editorService.allPages.filter(\n        (pageNum: any) => pageNum !== this.editorService.currentPageNumber\n      );\n      this.editorService.allPages = this.updatePageNumbersForAllPages(\n        this.editorService.allPages\n      );\n      this.editorService.formsPage.pageDetailsList =\n        this.editorService.formsPage.pageDetailsList.filter(\n          (pageDetail: any) =>\n            pageDetail.pageNumber !== this.editorService.currentPageNumber\n        );\n      this.editorService.formsPage.pageDetailsList =\n        this.updatePageNumberForPageDetails(\n          this.editorService.formsPage.pageDetailsList\n        );\n      this.editorService.formsPage.elements =\n        this.editorService.formsPage.elements.filter(\n          (elementDetail: any) =>\n            elementDetail.page !== this.editorService.currentPageNumber\n        );\n      this.editorService.formsPage.elements = this.updatePageNumberForQuestions(\n        this.editorService.formsPage.elements\n      );\n      if (this.editorService.currentPageNumber > 1) {\n        this.editorService.currentPageNumber -= 1;\n      }\n      this.getPageName(this.editorService.currentPageNumber);\n      this.checkForPageDetails();\n    }\n\n    this.editorService.activeQuestion = -10;\n  }\n\n  updatePageNumbersForAllPages(arrayToBeUpdated: any) {\n    for (let i = 0; i < arrayToBeUpdated.length; i++) {\n      if (i >= this.editorService.currentPageNumber - 1) {\n        arrayToBeUpdated[i] -= 1;\n      }\n    }\n    return arrayToBeUpdated;\n  }\n\n  updatePageNumberForPageDetails(arrayToBeUpdated: any) {\n    arrayToBeUpdated.forEach((element: any) => {\n      if (element.pageNumber >= this.editorService.currentPageNumber) {\n        element.pageNumber -= 1;\n      }\n    });\n    return arrayToBeUpdated;\n  }\n\n  updatePageNumberForQuestions(arrayToBeUpdated: any) {\n    arrayToBeUpdated.forEach((element: any) => {\n      if (element.page >= this.editorService.currentPageNumber) {\n        element.page -= 1;\n      }\n    });\n    return arrayToBeUpdated;\n  }\n\n  openQuestion() {\n    this.hideQuestion = true;\n  }\n\n  closeQuestion() {\n    this.hideQuestion = false;\n  }\n\n  deleteQuestionWithValidation(index: any) {\n    if (index === 'welcome') {\n      this.editorService.formsPage.hasWelcome = false;\n      this.editorService.currentPageNumber = 1;\n      this.editorService.stepIdentifier = 'pagescreen';\n    }\n    this.editorService.deleteQuestion(index);\n  }\n\n  checkforError(mode?: any) {\n    const errorQuestionIndex = this.editorService?.formsPage?.elements?.findIndex(\n      (element: any, index: any) =>\n        element?.errorArray &&\n        Object.values(element?.errorArray)?.length > 0\n    );\n    if (errorQuestionIndex >= 0) {\n      if (mode === 'full') {\n        this.editorService.currentPageNumber =\n          this.editorService.formsPage.elements[errorQuestionIndex].page;\n      }\n      if (mode !== 'partial') {\n        // this.getPageName(this.editorService.currentPageNumber);\n\n        this.editorService.activeQuestion = errorQuestionIndex;\n        this.editorService.activeQuestionIndex.next(errorQuestionIndex);\n\n        const question = document.getElementById(\n          this.editorService.formsPage.elements[errorQuestionIndex].name\n        );\n        setTimeout(() => {\n          if (question) {\n            question.scrollIntoView({ behavior: 'smooth', block: 'start' });\n          }\n        }, 200);\n      }\n      if (mode === 'save') {\n        this.editorService.activeQuestion = -10;\n        this.editorService.activeQuestionIndex.next(-10);\n      }\n\n      return true;\n    } else {\n      if (mode === 'save') {\n        this.editorService.activeQuestion = -10;\n        this.editorService.activeQuestionIndex.next(-10);\n      }\n      return false;\n    }\n  }\n\n  generatePageDropdown() {\n    const list = [];\n    if (this.editorService.formsPage.hasWelcome === true) {\n      list.push({\n        value: -1,\n        template: `<span class=\"page-number\">Welcome Screen</span>`,\n      });\n    }\n    if (this.editorService.formsPage.hasThanks === true) {\n      list.push({\n        value: -2,\n        template: `<span class=\"page-number\">Thank you Screen</span>`,\n      });\n    }\n\n    this.editorService.allPages.forEach((element: any) => {\n      list.push({\n        value: element,\n        template: this.getPageNameForDropdown(element),\n      });\n    });\n\n    return list;\n  }\n\n  getPageNameForDropdown(pageNumber: any) {\n    let pageValue = `<span class=\"page-number\">Page ${pageNumber}</span>`;\n    this.editorService.formsPage.pageDetailsList.forEach((pageDetail: any) => {\n      if (pageDetail.pageNumber === pageNumber && pageDetail.pageName !== '') {\n        pageValue = `<span class=\"page-label vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">PAGE</span>\n                                <span class=\"page-number vx-fs-11 vx-paragraph-txt\">${pageDetail.pageNumber}</span>`;\n        //pageValue = `<span class=\"page-label vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">Page </span> <span ${pageDetail.pageNumber}</span> <span class=\"page-number vx-fs-11 vx-paragraph-txt\"> ${pageDetail.pageName}</span>`;\n      }\n    });\n    return pageValue;\n  }\n\n  pageChanged(evt: any) {\n    if (evt.value === -1) {\n      this.setIdentifier('welcomescreen');\n    } else if (evt.value === -2) {\n      this.setIdentifier('thankyouscreen');\n    } else if (evt.value >= 0) {\n      this.editorService.currentPageNumber = evt?.value;\n      this.setIdentifier('pagescreen');\n    }\n  }\n\n  setIdentifier(screen: any) {\n    this.changeToInactive();\n    if (screen === 'welcomescreen') {\n      this.editorService.stepIdentifier = 'welcomescreen';\n      this.editorService.currentPageNumber = -1;\n    }\n    if (screen === 'thankyouscreen') {\n      this.editorService.stepIdentifier = 'thankyouscreen';\n      this.editorService.currentPageNumber = -2;\n    }\n    if (screen === 'pagescreen') {\n      this.editorService.stepIdentifier = 'pagescreen';\n      if (this.editorService.allPages.length === 0) {\n        this.editorService.addPage();\n        this.editorService.currentPageNumber = 1;\n      } else if (\n        this.editorService.currentPageNumber === -1 ||\n        this.editorService.currentPageNumber === -2\n      ) {\n        this.editorService.currentPageNumber =\n          this.editorService.allPages.length;\n      }\n    }\n    this.getPageName(this.editorService.currentPageNumber);\n  }\n\n  getPageName(pageNumber: any) {\n    this.editorService.currentPageDetails = {\n      pageName: '',\n      pageNumber: 0,\n      pageDescription: '',\n    };\n    this.editorService.formsPage.pageDetailsList.forEach((pageDetail: any) => {\n      if (pageDetail.pageNumber === pageNumber) {\n        this.editorService.currentPageDetails.pageNumber =\n          pageDetail.pageNumber;\n        this.editorService.currentPageDetails.pageName = pageDetail.pageName;\n        this.editorService.currentPageDetails.pageDescription =\n          pageDetail.pageDescription;\n      }\n    });\n    this.checkForPageDetails();\n  }\n\n  checkForPageDetails() {\n    if (\n      this.editorService.currentPageDetails === undefined ||\n      this.editorService.currentPageDetails.pageName === ''\n    ) {\n      this.editorService.showAddPageOption = true;\n      this.editorService.showPageDetails = false;\n    } else {\n      this.editorService.showAddPageOption = false;\n      this.editorService.showPageDetails = true;\n    }\n  }\n\n  changeToInactive() {\n    this.editorService.activeQuestion = -5;\n    this.editorService.activeQuestionIndex.next(-5);\n  }\n\n  addNewPage() {\n    this.editorService.addPage();\n    this.editorService.currentPageDetails = {\n      pageName: '',\n      pageNumber: this.editorService.currentPageNumber,\n      pageDescription: '',\n    };\n    this.editorService.showPageDetails = false;\n    this.editorService.showAddPageOption = true;\n    this.generatePageDropdown();\n  }\n\n  capitalizeString(stringValue: string) {\n    return stringValue[0].toUpperCase() + stringValue.slice(1);\n  }\n\n  onDeletePageClick() {\n    // this.showDeletePopup = true;\n  }\n\n  isPageEmpty() {\n    if (\n      ![\n        ...new Set(\n          this.editorService.formsPage.elements.map(\n            (element: any) => element.page\n          )\n        ),\n      ].includes(this.editorService.currentPageNumber)\n    ) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  submitAfterErrorCheck(mode: any) {\n    this.editorService.activeQuestionIndex.next(-10);\n    this.editorService.activeQuestion = -10;\n    if (\n      this.editorService.stepIdentifier === 'welcomescreen' ||\n      this.editorService.stepIdentifier === 'thankyouscreen'\n    ) {\n      this.editorService.currentPageNumber = 1;\n      this.editorService.stepIdentifier = 'pagescreen';\n    }\n    //this.pageMode = 'EDIT';\n\n    this.validateWelcomeThankYou();\n\n    setTimeout(() => {\n      if (!this.checkforError('full')) {\n        for (const question of this.editorService.formsPage.elements) {\n          if (\n            !['checkbox', 'dropdown', 'multiple-choice'].includes(question.type)\n          ) {\n            if (question.choices) {\n              question.choices.forEach((element: any) => {\n                element.color = undefined;\n                element.score = 1;\n                element.isFailed = false;\n              });\n            }\n            question.otherConfig = { color: '', isFailed: false, score: 0 };\n          }\n        }\n        this.save(mode);\n      }\n    }, 200);\n  }\n\n  validateWelcomeThankYou() {\n    const question = this.editorService.formsPage;\n    if (question.hasWelcome === true) {\n      if (\n        question.hasWelcomeDescription === true &&\n        this.editorService.extract(question.welcomeDescription).length === 0\n      ) {\n        this.editorService.formsPage.hasWelcomeDescription = false;\n      }\n      if (\n        question.hasWelcomeImage === true &&\n        this.editorService.extract(question.welcomeImage).length === 0\n      ) {\n        this.editorService.formsPage.hasWelcomeImage = false;\n      }\n      if (\n        this.editorService.extract(question.welcomeDescription).length === 0 &&\n        this.editorService.extract(question.welcomeText).length === 0 &&\n        this.editorService.extract(question.welcomeImage).length === 0\n      ) {\n        this.editorService.formsPage.hasWelcome = false;\n        this.editorService.formsPage.hasWelcomeDescription = true;\n        this.editorService.formsPage.hasWelcomeImage = true;\n      }\n    }\n    if (question.hasThanks === true) {\n      if (\n        question.hasThankyouDescription === true &&\n        this.editorService.extract(question.thankyouDescription).length === 0\n      ) {\n        this.editorService.formsPage.hasThankyouDescription = false;\n      }\n      if (\n        question.hasThankyouImage === true &&\n        this.editorService.extract(question.thankyouImage).length === 0\n      ) {\n        this.editorService.formsPage.hasThankyouImage = false;\n      }\n      if (\n        this.editorService.extract(question.thankyouDescription).length === 0 &&\n        this.editorService.extract(question.thankyouText).length === 0 &&\n        this.editorService.extract(question.thankyouImage).length === 0\n      ) {\n        this.editorService.formsPage.hasThanks = false;\n        this.editorService.formsPage.hasThankyouDescription = true;\n        this.editorService.formsPage.hasThankyouImage = true;\n      }\n    }\n  }\n\n  save(mode: 'DRAFT' | 'ACTIVE') {\n    if (mode === 'ACTIVE' && this.openPortal !== 'RESPONSIBILITY_CHECKPOINT') {\n      const ref = this.dialog.open(ActiveComponent, {\n        data: {\n          message: `Once published, this assessment will be active and can be associated with a compliance responsibility.`,\n        },\n        position: 'CENTER',\n        background: 'black',\n      });\n      ref.afterClosed.subscribe({\n        next: (res: any) => {\n          if (res === true) {\n            this.postAssessment.emit({\n              mode: mode,\n              assessmentDetails: this.editorService.formsPage,\n            });\n          }\n        },\n      });\n    } else {\n      this.postAssessment.emit({\n        mode: mode,\n        assessmentDetails: this.editorService.formsPage,\n      });\n    }\n  }\n}\n","<ng-container>\n  <div\n    *ngIf=\"pageMode === 'EDIT'\"\n    class=\"create-assessment-container\"\n    [class.full-page]=\"expandPage\"\n  >\n    <div\n      class=\"create-assessment-head vx-p-2 vx-pl-3 vx-d-flex vx-align-center vx-justify-between\"\n    >\n      <div\n        class=\"left vx-d-flex vx-align-center\"\n        [class.with-template-btn]=\"false\"\n      >\n        <span\n          *ngIf=\"assessmentControlId\"\n          class=\"id vx-fs-10 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-2\"\n          >{{ assessmentControlId }}</span\n        >\n        <i\n          *ngIf=\"openPortal === 'RESPONSIBILITY_CHECKPOINT'\"\n          class=\"icons arrow-back vx-mr-1\"\n          (click)=\"setIsUploaded.emit(false)\"\n          >&#xe91d;</i\n        >\n        <span\n          class=\"heading vx-fs-14 vx-fw-500 vx-label-txt\"\n          [appTooltip]=\"\n            openPortal === 'RESPONSIBILITY_CHECKPOINT'\n              ? 'Add Checkpoints'\n              : assessmentName\n          \"\n          placement=\"bottom-left\"\n          delay=\"0\"\n          type=\"black\"\n          [tooltipMandatory]=\"false\"\n          >{{\n            openPortal === \"RESPONSIBILITY_CHECKPOINT\"\n              ? \"Add Checkpoints\"\n              : assessmentName\n          }}</span\n        >\n        <!-- <button class=\"edit-btn vx-fs-14 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center\"><i class=\"icons\">&#xe9ba;</i></button> -->\n      </div>\n      <div class=\"right vx-d-flex vx-align-center\">\n        <button\n          *ngIf=\"openPortal !== 'RESPONSIBILITY_CHECKPOINT'\"\n          class=\"page-dropdown vx-p-0 vx-pl-1 vx-pr-2 vx-m-0 vx-d-flex vx-align-center\"\n          appPopover\n          (click)=\"action.popover()\"\n          placement=\"right\"\n        >\n          <span\n            class=\"page-label vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n            *ngIf=\"editorService.currentPageNumber > 0\"\n            >PAGE {{ editorService?.currentPageNumber }}</span\n          >\n          <span\n            class=\"page-label vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n            *ngIf=\"editorService.currentPageNumber === -1\"\n            >Welcome Screen</span\n          >\n          <span\n            class=\"page-label vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n            *ngIf=\"editorService.currentPageNumber === -2\"\n            >Thankyou Screen</span\n          >\n          <!-- <span class=\"page-number vx-fs-11 vx-paragraph-txt\" *ngIf=\"editorService.stepIdentifier=='pagescreen'\">{{editorService?.currentPageDetails?.pageName}}</span> -->\n          <i class=\"icons arrow vx-fs-10 vx-paragraph-txt\">&#xe9e8;</i>\n        </button>\n        <app-popover #action>\n          <div class=\"page-dropdown-popup\">\n            <ul class=\"vx-p-0 vx-m-0\">\n              <li\n                class=\"vx-d-flex vx-align-center\"\n                *ngFor=\"let data of generatePageDropdown()\"\n              >\n                <button\n                  class=\"vx-d-block vx-p-2 vx-m-0 vx-w-100\"\n                  [innerHTML]=\"data?.template\"\n                  (click)=\"pageChanged(data)\"\n                >\n                  <!-- <span class=\"page-label vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">PAGE</span>\n                                    <span class=\"page-number vx-fs-11 vx-paragraph-txt\">1</span>\n                                    {{data|json}} -->\n                </button>\n              </li>\n            </ul>\n            <div\n              class=\"action-bottom vx-d-flex vx-align-center vx-justify-end vx-p-2\"\n            >\n              <button\n                (click)=\"addNewPage()\"\n                class=\"add-page vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center\"\n              >\n                ADD NEW PAGE\n              </button>\n            </div>\n          </div>\n        </app-popover>\n        <button\n          *ngIf=\"openPortal !== 'RESPONSIBILITY_CHECKPOINT'\"\n          class=\"settings-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-lh-6 vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-ml-1 vx-d-flex vx-align-center\"\n          (click)=\"assessmentSettings()\"\n        >\n          <i class=\"icons vx-fs-12 vx-d-flex vx-mr-1\">&#xe913;</i> ASSESSMENT\n          SETTINGS\n        </button>\n        <button\n          *ngIf=\"false\"\n          class=\"template-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-lh-6 vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-ml-1 vx-d-flex vx-align-center\"\n        >\n          <i class=\"icons vx-fs-12 vx-d-flex vx-mr-1\">&#xe9ed;</i> SAVE AS\n          TEMPLATE\n        </button>\n      </div>\n    </div>\n    <div class=\"create-assessment-body\">\n      <ng-container *ngIf=\"editorService.stepIdentifier == 'pagescreen'\">\n        <div *ngIf=\"isPageEmpty()\" class=\"select-question-part\">\n          <div class=\"vx-d-flex vx-align-center vx-justify-center\">\n            <div class=\"question-inner vx-pl-5 vx-mb-4\">\n              <!-- <button class=\"page-title vx-fs-11 vx-fw-600 vx-label-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-1 vx-mr-1 vx-d-flex vx-align-center vx-justify-center vx-w-100\" (click)=\"addPageDetails()\"><i class=\"icons vx-fs-16 vx-mr-1\">&#xe90a;</i> PAGE TITLE</button> -->\n              <div\n                class=\"heading vx-fs-18 vx-paragraph-txt vx-text-center vx-w-100\"\n              >\n                Select a question type to begin:\n              </div>\n              <app-question-type\n                (addQuestion)=\"editorService.addQuestion($event)\"\n              ></app-question-type>\n            </div>\n          </div>\n\n          <div class=\"floating-bar\">\n            <div class=\"floating-bar-container\">\n              <div class=\"right\">\n                <button class=\"cancel\" (click)=\"setIsUploaded.emit(false)\">\n                  Cancel\n                </button>\n              </div>\n            </div>\n          </div>\n\n          <!-- <ng-template #elseBlock>\n                        <div>\n                            <app-editor-loader></app-editor-loader>\n                        </div>\n                    </ng-template> -->\n        </div>\n      </ng-container>\n\n      <ng-container\n        *ngIf=\"!isPageEmpty() || editorService.currentPageNumber < 0\"\n      >\n        <div class=\"editor-section\">\n          <div class=\"editor-section-body vx-d-flex\">\n            <app-toolkit\n              (addQuestion)=\"editorService.addQuestion($event)\"\n            ></app-toolkit>\n\n            <div class=\"editor-section-inner\">\n              <app-welcome-thankyou\n                *ngIf=\"editorService.stepIdentifier == 'welcomescreen'\"\n                [entityData]=\"editorService?.formsPage\"\n                [service]=\"editorService\"\n                (deleteQuestion)=\"deleteQuestionWithValidation('welcome')\"\n              ></app-welcome-thankyou>\n              <!-- <app-preview-welcome></app-preview-welcome> -->\n              <ng-container\n                *ngIf=\"editorService.stepIdentifier == 'pagescreen'\"\n              >\n                <button\n                  *ngIf=\"\n                    editorService.stepIdentifier == 'pagescreen' &&\n                    editorService.showAddPageOption\n                  \"\n                  class=\"page-title vx-fs-11 vx-fw-600 vx-label-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-mb-2 vx-d-flex vx-align-center vx-justify-center vx-w-100\"\n                  (click)=\"addPageDetails()\"\n                >\n                  <i class=\"icons vx-fs-16 vx-mr-1\">&#xe90a;</i> PAGE TITLE\n                </button>\n                <app-page-header\n                  (edit)=\"addPageDetails()\"\n                  *ngIf=\"\n                    editorService.stepIdentifier == 'pagescreen' &&\n                    editorService.showPageDetails\n                  \"\n                  [pageName]=\"editorService.currentPageDetails.pageName\"\n                  [pageDescription]=\"\n                    editorService.currentPageDetails.pageDescription\n                  \"\n                ></app-page-header>\n                <ng-container\n                  *ngFor=\"\n                    let question of editorService.formsPage.elements;\n                    let questionIndex = index\n                  \"\n                >\n                  <ng-container\n                    *ngIf=\"\n                      question.page === editorService.currentPageNumber &&\n                      editorService.stepIdentifier == 'pagescreen'\n                    \"\n                  >\n                    <app-editor-wrapper\n                      *ngIf=\"editorService.activeQuestion === questionIndex\"\n                      [service]=\"editorService\"\n                      [question]=\"question\"\n                      [questionIndex]=\"questionIndex\"\n                      [openPortal]=\"openPortal\"\n                      (validQuestionData)=\"checkforError($event)\"\n                      (deleteQuestion)=\"deleteQuestionWithValidation($event)\"\n                      (copyQuestion)=\"editorService.copyQuestion($event)\"\n                    ></app-editor-wrapper>\n                    <app-preview-wrapper\n                      *ngIf=\"editorService.activeQuestion !== questionIndex\"\n                      [question]=\"question\"\n                      [questionIndex]=\"questionIndex\"\n                      (makeActiveQuestion)=\"\n                        editorService.activeQuestion = $event\n                      \"\n                    ></app-preview-wrapper>\n                  </ng-container>\n                </ng-container>\n                <div class=\"next-question-area\">\n                  <button\n                    class=\"page-title vx-fs-11 vx-fw-600 vx-label-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-mb-2 vx-d-flex vx-align-center vx-justify-center vx-w-100\"\n                    (click)=\"openQuestion()\"\n                  >\n                    <i class=\"icons vx-fs-16 vx-mr-1\">&#xe90a;</i> NEXT QUESTION\n                  </button>\n                  <div class=\"next-question-popup vx-p-3\" *ngIf=\"hideQuestion\">\n                    <app-question-type\n                      (addQuestion)=\"\n                        editorService.addQuestion($event); closeQuestion()\n                      \"\n                    ></app-question-type>\n                  </div>\n                  <div\n                    class=\"overlay\"\n                    *ngIf=\"hideQuestion\"\n                    (click)=\"closeQuestion()\"\n                  ></div>\n                </div>\n                <button\n                  *ngIf=\"openPortal !== 'RESPONSIBILITY_CHECKPOINT'\"\n                  (click)=\"addNewPage()\"\n                  class=\"page-title vx-fs-11 vx-fw-600 vx-label-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-mb-2 vx-d-flex vx-align-center vx-justify-center vx-w-100\"\n                >\n                  <i class=\"icons vx-fs-16 vx-mr-1\">&#xe90a;</i> ADD NEW PAGE\n                </button>\n              </ng-container>\n            </div>\n\n            <div\n              class=\"right-side-btn\"\n              *ngIf=\"openPortal !== 'RESPONSIBILITY_CHECKPOINT'\"\n            >\n              <button\n                *ngIf=\"!expandPage\"\n                (click)=\"clickExpand()\"\n                class=\"fullscreen-btn vx-fs-14 vx-txt-blue vx-p-0 vx-m-0 vx-mb-3 vx-d-flex vx-align-center vx-justify-center\"\n                [appTooltip]=\"'Expand Page'\"\n                placement=\"left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"true\"\n              >\n                <i class=\"icons\">&#xe945;</i>\n              </button>\n              <button\n                *ngIf=\"expandPage\"\n                (click)=\"closeExpand()\"\n                class=\"fullscreen-btn vx-fs-14 vx-txt-blue vx-p-0 vx-m-0 vx-mb-3 vx-d-flex vx-align-center vx-justify-center\"\n                [appTooltip]=\"'Shrink Page'\"\n                placement=\"left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"true\"\n              >\n                <i class=\"icons\">&#xe944;</i>\n              </button>\n              <button\n                *ngIf=\"editorService.stepIdentifier == 'pagescreen'\"\n                (click)=\"deletePage()\"\n                class=\"delete-btn vx-fs-14 vx-txt-red vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n                [appTooltip]=\"'Delete Page'\"\n                placement=\"left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"true\"\n              >\n                <i class=\"icons\">&#xe923;</i>\n              </button>\n            </div>\n          </div>\n          <div\n            class=\"editor-section-footer vx-d-flex vx-align-center vx-justify-center vx-mt-4\"\n          >\n            <button\n              (click)=\"setIsUploaded.emit(false)\"\n              class=\"cancel-btn vx-fs-14 vx-fw-500 vx-txt-red vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-1 vx-mr-1 vx-d-flex vx-align-center vx-justify-center\"\n            >\n              CANCEL\n            </button>\n            <button\n              *ngIf=\"openPortal === 'ASSESSMENT_IMPORT'\"\n              (click)=\"submitAfterErrorCheck('DRAFT')\"\n              [class.disabled]=\"assessmentCurrentState === 'ACTIVE'\"\n              class=\"white-btn vx-fs-14 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-1 vx-mr-1 vx-d-flex vx-align-center vx-justify-center\"\n            >\n              SAVE AS DRAFT\n            </button>\n            <button\n              *ngIf=\"openPortal === 'ASSESSMENT_IMPORT'\"\n              (click)=\"submitAfterErrorCheck('ACTIVE')\"\n              class=\"blue-btn vx-fs-14 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-1 vx-mr-1 vx-d-flex vx-align-center vx-justify-center\"\n            >\n              PUBLISH\n            </button>\n            <button\n              *ngIf=\"openPortal === 'RESPONSIBILITY_CHECKPOINT'\"\n              (click)=\"submitAfterErrorCheck('ACTIVE')\"\n              class=\"blue-btn vx-fs-14 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-1 vx-mr-1 vx-d-flex vx-align-center vx-justify-center\"\n            >\n              NEXT &nbsp;<i class=\"icons\">&#xe91e;</i>\n            </button>\n            <!-- <button (click)=\"pageMode = 'PREVIEW'\" class=\"preview-btn vx-fs-20 vx-txt-white vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\" [appTooltip]=\"'Preview'\" placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\"><i class=\"icons\">&#xeae5;</i></button> -->\n            <button\n              *ngIf=\"false\"\n              class=\"close-btn vx-fs-12 vx-txt-white vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n              [appTooltip]=\"'Close'\"\n              placement=\"left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"true\"\n            >\n              <i class=\"icons\">&#xe90d;</i>\n            </button>\n          </div>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n  <!-- <app-assessment-preview-container *ngIf=\"pageMode === 'PREVIEW'\" [questionDetails]=\"editorService.formsPage\"></app-assessment-preview-container> -->\n</ng-container>\n\n<!-- <app-editor-loader *ngIf=\"!isLoaded\"></app-editor-loader> -->\n","// constants.ts\nexport const PROGRAM_TABLE_HEADERS = [\n    'Program Name',\n    'Program Categories'\n  ];\n  \n  export const PAGINATION_OPTIONS = {\n    PAGE_SIZE: 30,\n    DEFAULT_CURRENT_PAGE: 1\n  };\n\n  export const PROGRAM_TYPE_LIST = [\n    {name: 'Regulations', id: 'regulations'},\n    {name: 'Standards', id: 'standards'},\n    {name: 'Internal Controls', id: 'internal_controls'},\n    {name: 'Others', id: 'others'},\n  ];\n\n  export const PROGRAM_OBJECT = {\n    regulations: 1,\n    standards: 2,\n    internal_controls: 3,\n    others: 0,\n  };\n\n  export const PROGRAM_NO_DATA = {\n    programList: 'No data to display.',\n    categoryList: 'Select a Program to view </br> the associated sub-categories.',\n    search: 'No results matched your search criteria.',\n  }\n","// list-utils.service.ts\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ListUtilsService {\n  paginate<T>(items: T[], currentPage: number, pageSize: number): T[] {\n    const startIndex = (currentPage - 1) * pageSize;\n    const endIndex = startIndex + pageSize;\n    return items.slice(startIndex, endIndex);\n  }\n\n  getPageNumbers(totalItems: number, pageSize: number): number[] {\n    const totalPages = Math.ceil(totalItems / pageSize);\n    const pages = [];\n    for (let i = 1; i <= totalPages; i++) {\n      pages.push(i);\n    }\n    return pages;\n  }\n}","import { Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Configurations } from '../../../configurations';\nimport { AuthService } from '../../../workflow-services/auth.service';\n@Injectable({\n  providedIn: 'root'\n})\nexport class ProgramListApiService {\n    env!: any;\n\n    constructor(\n        private http: HttpClient,\n        private authService: AuthService,\n        @Optional() config?: Configurations\n      ) {\n        if (config) {\n          this.env = config.envConfig;\n        }\n      }\n    getProgramList(apiUrl: string): Observable<any> {\n        let httpOptions: any = {};\n    let headers = new HttpHeaders();\n    httpOptions.headers = headers.append(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n        return this.http.get<any>(`${this.env.complianceGet}${apiUrl}`, httpOptions);\n    }\n  }","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-table-loader',\n  templateUrl: './table-loader.component.html',\n  styleUrls: ['./table-loader.component.less']\n})\nexport class TableLoaderComponent implements OnInit {\n\n  @Input() listSize = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"table\">\n    <table class=\"table-loader\">\n        <tbody>\n            <tr *ngFor=\"let data of listSize\">\n                <td class=\"serial\">\n                    <span class=\"serial\"></span>\n                </td>\n                <td class=\"name\" width=\"50%\">\n                    <span class=\"loader\"></span>\n                </td>\n                <td class=\"action\" width=\"50%\">\n                    <span class=\"loader\"></span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</div>","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n    name: 'checkSelectedItems'\n})\nexport class CheckSelectedItemsPipe implements PipeTransform {\n    transform(id: string, selectedItems: any) {\n        if(selectedItems) {\n            const selectedItem = selectedItems?.find((item: any) => item?.id === id);\n            if(selectedItem) {\n                return true;\n            }\n            return false;\n        }\n        return false;\n    }\n}","import { Component, Input, Output, EventEmitter, TemplateRef, OnInit, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\nimport { ListItem } from '../interfaces/list-item.interface';\nimport { PROGRAM_TABLE_HEADERS, PAGINATION_OPTIONS, PROGRAM_TYPE_LIST, PROGRAM_NO_DATA } from '../constant';\nimport { ListUtilsService } from '../services/list-utils.service';\nimport { ProgramListApiService } from '../services/program-list-api.service';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ASSETS } from '../../../constants/assets.constants';\n/**\n * A reusable component for displaying and managing a list of programs with filtering, pagination, and category viewing capabilities.\n * \n * Features:\n * - Program listing with pagination\n * - Search functionality with debounce\n * - Program type filtering\n * - Category viewing for selected programs\n * - Multi-select capability\n * \n * @template T Extends ListItem interface for type safety of list items\n */\n\ninterface Category {\n  id: string;\n  name: string;\n  parent?: string;\n  parentTree?: string[];\n  [key: string]: any;\n}\n@Component({\n  selector: 'app-program-list',\n  templateUrl: './program-list.component.html',\n  styleUrls: ['./program-list.component.less']\n})\nexport class ProgramListComponent<T extends ListItem> implements OnInit, OnChanges, OnDestroy {\n  /** Array of items to be displayed in the list */\n  @Input() items: T[] = [];\n  \n  /** Object containing selected items, keyed by program ID */\n  @Input() selectedItems: any | null = {};\n  \n  /** URL configuration object for API endpoints */\n  @Input() url: any = {};\n\n  /** Event emitted when an item is selected */\n  @Output() itemSelected = new EventEmitter<T>();\n  \n  /** Event emitted when an item is deselected */\n  @Output() itemDeselected = new EventEmitter<T>();\n  \n  /** Event emitted when the selection changes */\n  @Output() itemsSelectedChange = new EventEmitter<T[]>();\n\n  tableHeaders = PROGRAM_TABLE_HEADERS;\n  currentPage = PAGINATION_OPTIONS.DEFAULT_CURRENT_PAGE;\n  pageSize = PAGINATION_OPTIONS.PAGE_SIZE;\n  totalPages = 0;\n  searchTerm = '';\n  paginatedItems: T[] = [];\n  activeProgram: any | null = null;\n  categoryList: any = {};\n  programTypeList: any[] = PROGRAM_TYPE_LIST;\n  selectedProgramType: any[] = [];\n  loaderState: any = {\n    programList: false,\n    categoryList: false,\n  };\n  appliedProgramType: any[] = [];\n  PROGRAM_NO_DATA: any = PROGRAM_NO_DATA;\n  ASSETS: any = ASSETS;\n  programCategoryList: any = {};\n\n\n  /** Subject for handling debounced search */\n  private searchSubject = new Subject<string>();\n  \n  /** Subject for cleanup subscriptions */\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private listUtils: ListUtilsService,\n    private programListApiService: ProgramListApiService\n  ) {\n    // Initialize debounced search\n    this.searchSubject.pipe(\n      debounceTime(300),\n      takeUntil(this.destroy$)\n    ).subscribe(() => {\n      this.performSearch();\n    });\n  }\n\n  /** Initialize component by fetching program list */\n  ngOnInit(): void {\n    this.getProgramList();\n  }\n\n  /** Handle changes to inputs */\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['items'] || changes['selectedItems']) {\n      this.paginateItems(this.items);\n    }\n  }\n\n  /** Fetch program list from API */\n  getProgramList(): void {\n    this.loaderState.programList = true;\n    this.programListApiService.getProgramList(this.url.programList).subscribe((res: any) => {\n      this.items = res?.data?.programs;\n      this.loadData(this.items);\n      this.loaderState.programList = false;\n    });\n  }\n\n  /**\n   * Load data and initialize pagination\n   * @param data Array of items to load\n   */\n  loadData(data: any): void {\n    this.goToPage(1, data);\n  }\n\n  /**\n   * Handle item selection/deselection\n   * @param event Selection event\n   * @param item Item being selected/deselected\n   */\n  selectItem(event: any, item: any): void {\n    const selectedObject =  this.activeProgram.id.toString();\n    if (event) {\n      if(!this.selectedItems[selectedObject]) {\n        this.selectedItems[selectedObject] = [];\n      }\n      this.selectedItems[selectedObject].push(item);\n          } else {\n      this.selectedItems[selectedObject] = this.selectedItems[this.activeProgram.id].filter((selected: any) => selected.id !== item.id);\n    }\n    this.itemsSelectedChange.emit(this.selectedItems);\n  }\n\n  /**\n   * Deselect a specific item\n   * @param item Item to deselect\n   */\n  deselectItem(item: T): void {\n    this.itemsSelectedChange.emit(this.selectedItems);\n    this.itemDeselected.emit(item);\n  }\n\n  /**\n   * Check if an item is selected\n   * @param item Item to check\n   * @returns Boolean indicating if item is selected\n   */\n  isSelected(item: T): boolean {\n    return false;\n  }\n\n  /**\n   * Navigate to specific page\n   * @param page Page number to navigate to\n   * @param data Data to paginate\n   */\n  goToPage(page: number, data: any): void {\n    this.currentPage = page;\n    this.paginateItems(data);\n  }\n\n  /**\n   * Get array of page numbers for pagination\n   * @returns Array of page numbers\n   */\n  getPageNumbers(): number[] {\n    return this.listUtils.getPageNumbers(this.items.length, this.pageSize);\n  }\n\n  /**\n   * Paginate items and update view\n   * @param data Data to paginate\n   */\n  paginateItems(data: any): void {\n    this.totalPages = Math.ceil(data.length / this.pageSize);\n    this.paginatedItems = data;\n  }\n\n  /**\n   * View categories for a selected program\n   * @param item Program to view categories for\n   */\n  viewCategory(item?: any): void {\n    this.activeProgram = item;\n    if(!item || this.categoryList[item.id]) return;\n    this.loaderState.categoryList = true;\n    this.checkProgramCategoryExists(item?.id);\n  }\n\n  checkProgramCategoryExists(id: string): void {\n    if(this.programCategoryList[id]) {\n      this.categoryList[id] = this.addParentTreeToCategories(this.programCategoryList[id]);\n      this.loaderState.categoryList = false;\n      return;\n    }\n    this.fetchProgramCategoryList(id);\n  }\n\n  fetchProgramCategoryList(id: string): void {\n    const URL = `${this.url.categoryList}&id=${id}`;\n    this.programListApiService.getProgramList(URL).subscribe((res: any) => {\n      this.programCategoryList[id] = res?.data?.categories ?? [];\n      this.categoryList[id] = this.addParentTreeToCategories(this.programCategoryList[id]);\n      this.loaderState.categoryList = false;\n    });\n  }\n\n\n  /**\n   * Add parent tree information to categories\n   * @param categories Array of categories\n   * @returns Categories with parent tree information\n   */\n  addParentTreeToCategories(categories: any[]): any[] {\n    if (!categories?.length) return [];\n\n    const categoryMap = new Map(categories.map(category => [category.id, category]));\n\n    const getParentTree = (category: Category): string[] => {\n      const parentTree: string[] = [];\n      let currentParent = category.parent;\n\n      while (currentParent) {\n        const parentCategory = categoryMap.get(currentParent);\n        if (!parentCategory) break;\n        \n        parentTree.push(parentCategory.name);\n        currentParent = parentCategory.parent;\n      }\n\n      return parentTree;\n    };\n\n    return categories.map(category => ({\n      ...category,\n      parentTree: getParentTree(category)\n    }));\n\n  }\n\n  /**\n   * Handle program type filter selection\n   * @param event Selection event\n   * @param item Program type being selected/deselected\n   */\n  selectFilter(event: any, item: any): void {\n    if(event) {\n      this.selectedProgramType.push(item.id);\n    } else {\n      this.selectedProgramType = this.selectedProgramType.filter((selected: any) => selected !== item.id);\n    }\n  }\n\n  /** Reset all applied filters */\n  resetFilter(): void {\n    this.selectedProgramType = [];\n    this.onFilterChange();\n  }\n\n  /** Apply selected filters to the program list */\n  onFilterChange(): void {\n    if(this.selectedProgramType.length > 0) {\n      const filteredItems = this.items.filter((item: any) => this.selectedProgramType.includes(item.type));\n      this.paginatedItems = [...filteredItems];\n    } else {\n      this.paginatedItems = this.items;\n    }\n\n    this.appliedProgramType = this.programTypeList.filter((item: any) => this.selectedProgramType.includes(item.id));\n   this.checkCategoryAvailbility();\n    \n  }\n \n  checkCategoryAvailbility(): void {\n    const isSelectedProgramAvailable = this.paginatedItems.some((item: any) => item?.id === this.activeProgram?.id);\n    if(!isSelectedProgramAvailable) {\n      this.categoryList = [];\n      this.activeProgram = null;\n    }\n  }\n\n  /** Trigger debounced search */\n  search(): void {\n    this.searchSubject.next(this.searchTerm);\n  }\n\n  /** Perform search on items */\n  private performSearch(): void {\n    const filteredItems = this.items.filter((item: any) => item?.name?.toLowerCase().includes(this.searchTerm?.toLowerCase()));\n    this.paginatedItems = filteredItems;\n    this.checkCategoryAvailbility();\n  }\n\n  /** Cleanup subscriptions on component destruction */\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  closePopover(event: any): void {\n    if(event) {\n      this.selectedProgramType = this.appliedProgramType.map((item: any) => item?.id);\n    }\n  }\n}\n","<div class=\"dynamic-list-container\">\n  <div class=\"vx-d-flex\">\n    <div class=\"search-block vx-w-100\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input type=\"text\" [(ngModel)]=\"searchTerm\" placeholder=\"Search...\" (keyup)=\"search()\" />\n    </div>\n    <div class=\"dynamic-list-filter\" appPopover (click)=\"programTypePopover.popover()\" placement=\"right\">\n      <div *ngIf=\"appliedProgramType.length === 0; else selectedTypeFilter\" class=\"filter-text\">\n        Select Program Type\n      </div>\n      <ng-template #selectedTypeFilter>\n        <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngIf=\"appliedProgramType.length\">\n          <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"appliedProgramType[0]?.name\"\n            placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ appliedProgramType[0]?.name\n            }}</span>\n          <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n            appPopover placement=\"right\" *ngIf=\"appliedProgramType.length > 1\">\n            +{{ appliedProgramType.length - 1 }}\n          </button>\n        </div>\n      </ng-template>\n      <i class=\"icons filter-icon\"> &#xe9e8; </i>\n    </div>\n  </div>\n  <div class=\"dynamic-list-table\" *ngIf=\"\n      paginatedItems?.length > 0 ||\n        loaderState.programList || loaderState.categoryList;\n      else defaultTemplate\n    \">\n    <div class=\"dynamic-list-header vx-d-flex\">\n      <ng-container *ngFor=\"let header of tableHeaders\">\n        <div class=\"vx-d-flex vx-w-50 vx-pl-1\">\n          <div class=\"serialNo vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\">\n            #\n          </div>\n          <div class=\"headerText vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center\">\n            {{ header }}\n          </div>\n        </div>\n      </ng-container>\n    </div>\n    <div class=\"dynamic-list-body vx-d-flex\">\n      <div class=\"left-column\">\n        <ng-container *ngIf=\"!loaderState.programList; else programListLoader\">\n          <div *ngFor=\"\n              let item of paginatedItems | search : searchTerm : 'name';\n              let i = index\n            \" class=\"list-row\" [class.selected]=\"activeProgram?.id === item.id\" (click)=\"viewCategory(item)\">\n            <div class=\"list-column serial\">\n              <div class=\"srNo\">{{ i + 1 }}</div>\n            </div>\n            <div class=\"list-column name\" [class.with-count]=\"selectedItems[item.id]?.length > 0\">\n              <div class=\"name-inner vx-fs-13 vx-pr-2\">{{ item.name }}</div>\n            </div>\n            <div class=\"list-column count\" *ngIf=\"selectedItems[item.id]?.length > 0\">\n              <div class=\"count-box vx-fs-9 vx-fw-600 vx-lh-4 vx-d-flex vx-align-center vx-justify-center\">\n                {{ selectedItems[item.id].length }}\n              </div>\n              <div class=\"count-text vx-fs-11 vx-fw-500 vx-tt-uppercase vx-lh-4 vx-ml-2\">\n                {{\n                selectedItems[item.id].length > 1 ? \"CATEGORIES\" : \"CATEGORY\"\n                }}\n                SELECTED\n              </div>\n            </div>\n            <div class=\"list-column action\">\n              <button class=\"arrow vx-fs-12 vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n                <i class=\"icons\"> &#xe970; </i>\n              </button>\n            </div>\n          </div>\n        </ng-container>\n        <ng-template #programListLoader>\n          <app-table-loader></app-table-loader>\n        </ng-template>\n      </div>\n      <div class=\"right-column\">\n        <ng-container *ngIf=\"\n            !loaderState.categoryList && !loaderState.programList;\n            else categoryListLoader\n          \">\n          <ng-container *ngIf=\"\n              categoryList[activeProgram?.id]?.length > 0;\n              else defaultSubCategoryTemplate\n            \">\n            <div class=\"list-row vx-pl-2 vx-pr-2\" *ngFor=\"\n                let item of categoryList[activeProgram?.id];\n                let i = index\n              \">\n              <app-cs-checkbox [value]=\"item?.id\" [ngValue]=\"\n                  item.id\n                    | checkSelectedItems : selectedItems[activeProgram?.id]\n                \" (ngValueChange)=\"selectItem($event, item)\">\n                <span class=\"value-inner\">\n                  <div class=\"item-name vx-fs-13\">{{ item?.name }}</div>\n                  <div class=\"within-part vx-d-flex vx-align-center vx-pr-3\">\n                    <div *ngIf=\"item?.parentTree?.length\"\n                      class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\">\n                      Within\n                    </div>\n                    <div class=\"within-value vx-fs-11 vx-paragraph-txt\" [appTooltip]=\"item?.parentTree?.join(' > ')\"\n                      placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                      {{ item?.parentTree?.join(\" > \") }}\n                    </div>\n                  </div>\n                </span>\n              </app-cs-checkbox>\n            </div>\n          </ng-container>\n          <ng-template #defaultSubCategoryTemplate>\n            <div class=\"sub-no-data\">\n              <app-no-data [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"PROGRAM_NO_DATA.categoryList\"></app-no-data>\n            </div>\n          </ng-template>\n        </ng-container>\n        <ng-template #categoryListLoader>\n          <app-table-loader></app-table-loader>\n        </ng-template>\n      </div>\n    </div>\n  </div>\n  <ng-template #defaultTemplate>\n    <div class=\"list-no-data-container\">\n      <app-no-data [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"\n          searchTerm ? PROGRAM_NO_DATA.search : PROGRAM_NO_DATA.programList\n        \"></app-no-data>\n    </div>\n  </ng-template>\n</div>\n\n<app-popover #programTypePopover (closePopoverEvent)=\"closePopover($event)\">\n  <div class=\"new-action-list\">\n    <div class=\"program-type-text vx-fs-11 vx-fw-500 vx-gray-60 vx-lh-16 vx-p-2 vx-tt-uppercase\">\n      Program Type:\n    </div>\n    <ul class=\"action-item\">\n      <li *ngFor=\"let item of programTypeList\">\n        <div class=\"chip-item\">\n          <app-cs-checkbox [value]=\"item.id\" [ngValue]=\"selectedProgramType.includes(item.id)\"\n            (ngValueChange)=\"selectFilter($event, item)\">\n            {{ item?.name }}\n          </app-cs-checkbox>\n        </div>\n      </li>\n    </ul>\n    <div class=\"program-type-bottom vx-d-flex vx-align-center vx-justify-center vx-pt-3 vx-pb-3\">\n      <button (click)=\"resetFilter(); programTypePopover.closePopover('top')\"\n        class=\"reset-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-lh-6\">\n        RESET\n      </button>\n      <button (click)=\"onFilterChange(); programTypePopover.closePopover('top')\"\n        class=\"apply-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-lh-6\"\n        [class.disabled]=\"selectedProgramType?.length === 0\">\n        APPLY\n      </button>\n    </div>\n  </div>\n</app-popover>","import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  SimpleChanges,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { ASSETS } from '../../constants/assets.constants';\n@Component({\n  selector: 'app-users-radio-list',\n  templateUrl: './users-radio-list.component.html',\n  styleUrls: ['./users-radio-list.component.less'],\n})\nexport class UserRadioListComponent implements OnInit, OnChanges {\n  @Input() usersList = [];\n  @Input() selectedUsers: any = '';\n  @Input() userIdKey = '';\n  @Input() itemNameKey = '';\n  @Input() itemEmailKey = '';\n  @Output() saveSelectedList = new EventEmitter();\n  @Output() closeUsersList = new EventEmitter();\n  @Input() disabledId: any[] = [];\n  @Input() fromResponsibility: any;\n  @Input() reviewerIds: any[] = [];\n  @Input() overseerIds: any[] = [];\n  @Input() assignorId: any[] = [];\n  selectedUser: any;\n  @Input() headerText: string = 'Select User';\n  @Input() loaded: boolean = true;\n  ASSETS = ASSETS;\n  search = '';\n  selectedIds: any[] = [];\n  animation = false;\n  constructor() { }\n\n  ngOnChanges(): void {\n    this.selectedUser = this.selectedUsers[0];\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  selectUser(user: any) {\n    this.selectedUser = user;\n  }\n  deleteEvent(event: any) {\n    this.selectedUser = '';\n  }\n  save() {\n    this.saveSelectedList.emit(this.selectedUser);\n  }\n\n  close() {\n    this.closeUsersList.emit();\n  }\n}\n","<div class=\"add-risk-user-radio-list\" [class.animate]=\"animation\">\n  <div\n    class=\"add-risk-user-radio-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">{{ headerText }}</div>\n    <!-- <button class=\"add-risk-user-radio-list-close\" (click)=\"close()\">\n            <i class=\"icons\">&#xe90d;</i>\n        </button> -->\n  </div>\n  <app-loader-inline *ngIf=\"!loaded\"></app-loader-inline>\n  <div *ngIf=\"usersList?.length > 0\" class=\"add-risk-user-radio-list-body\">\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search User\" />\n    </div>\n    <ng-container *ngIf=\"usersList | filter : search as searchList\">\n      <ul class=\"user-radio-list\" *ngIf=\"searchList?.length > 0\">\n        <li\n          *ngFor=\"let user of usersList | filter : search\"\n          [appTooltip]=\"\n            user\n              | tooltipMessage\n                : fromResponsibility\n                : reviewerIds\n                : overseerIds\n                : assignorId\n                : []\n                : 'my_member_id'\n                : disabledId?.includes(user[userIdKey])\n          \"\n          placement=\"bottom-left\"\n          type=\"black\"\n          delay=\"0\"\n          [tooltipMandatory]=\"true\"\n        >\n          <app-cs-radio\n            (checkedEvent)=\"selectUser(user)\"\n            [name]=\"'category'\"\n            [class.disabled]=\"disabledId?.includes(user[userIdKey])\"\n            [checked]=\"\n              selectedUser && selectedUser[userIdKey] == user[userIdKey]\n            \"\n          >\n            <span class=\"name\"> {{ user[itemNameKey] }}</span>\n          </app-cs-radio>\n        </li>\n      </ul>\n      <app-no-data\n        *ngIf=\"searchList?.length === 0\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No Users Found'\"\n      ></app-no-data>\n    </ng-container>\n\n    <app-floating-bar\n      [selectedData]=\"selectedUser ? [selectedUser] : []\"\n      [displayElementKey]=\"itemNameKey\"\n      [elementId]=\"userIdKey\"\n      [singularText]=\"'User selected'\"\n      [pluralText]=\"'Users selected'\"\n      (closeEvent)=\"save()\"\n      (closeList)=\"close()\"\n      (deleteEvent)=\"deleteEvent($event)\"\n      [isDisabled]=\"\n        usersList?.length === 0 ||\n        (selectedUser ? [selectedUser] : [])?.length === 0\n      \"\n    ></app-floating-bar>\n  </div>\n  <div\n    class=\"add-risk-user-radio-list-body noUser\"\n    *ngIf=\"usersList?.length === 0 && loaded\"\n  >\n    <app-no-data\n      [noDataImage]=\"ASSETS.search_data\"\n      [noDataText]=\"'No Users Found'\"\n    ></app-no-data>\n\n    <app-floating-bar\n      [selectedData]=\"selectedUser ? [selectedUser] : []\"\n      [displayElementKey]=\"itemNameKey\"\n      [elementId]=\"userIdKey\"\n      [singularText]=\"'User selected'\"\n      [pluralText]=\"'Users selected'\"\n      (closeEvent)=\"save()\"\n      (closeList)=\"close()\"\n      (deleteEvent)=\"deleteEvent($event)\"\n      [isDisabled]=\"\n        usersList?.length === 0 ||\n        (selectedUser ? [selectedUser] : [])?.length === 0\n      \"\n    ></app-floating-bar>\n  </div>\n</div>\n","import { ElementRef, ViewChild } from '@angular/core';\nimport {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  SimpleChanges,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { CategoryList } from '../../interfaces/categoryList';\nimport { ASSETS } from '../../constants/assets.constants';\n// import isEqual from 'lodash-es/isEqual';\n@Component({\n  selector: 'app-category-multi-select',\n  templateUrl: './category-multi-select.component.html',\n  styleUrls: ['./category-multi-select.component.less'],\n})\nexport class CategoryMultiSelectComponent implements OnInit, OnChanges {\n  @ViewChild('listBlock', { static: false }) listBlock!: ElementRef;\n  @Input() categoryList: any;\n  @Input() allCategories: any[] = [];\n  @Input() categoryIdKey: any;\n  @Input() selectedCategories: any[] = [];\n  ASSETS = ASSETS;\n  search = '';\n  activeTab: any = '';\n  selectedIds: any[] = [];\n  animation = false;\n  blockWidth: any;\n\n  @Output() saveSelectedCategory = new EventEmitter();\n  @Output() closeList = new EventEmitter();\n  @Output() closeCategoriesList = new EventEmitter();\n\n  constructor() { }\n\n  ngOnChanges() { }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.selectedIds = [];\n    if (this.selectedCategories) {\n      this.selectedCategories.forEach((element) => {\n        this.selectedIds.push(element[this.categoryIdKey]);\n      });\n    }\n    this.setList();\n    setTimeout(() => {\n      this.blockWidth = this.listBlock?.nativeElement?.offsetWidth;\n    }, 10);\n  }\n\n  selectCategory(mode: any, activeTab: any, category: any) {\n    if (mode) {\n      this.selectedIds.push(category[this.categoryIdKey]);\n    } else {\n      const index = this.selectedIds.findIndex(\n        (element: any) => element == category[this.categoryIdKey]\n      );\n      this.selectedIds.splice(index, 1);\n    }\n    this.setList();\n  }\n\n  deleteEvent(event: any) {\n    const index = this.selectedIds.findIndex(\n      (element: any) => element == event[this.categoryIdKey]\n    );\n    this.selectedIds.splice(index, 1);\n    this.setList();\n  }\n\n  selectAll(mode: any, activeTab: any) {\n    if (mode) {\n      const list = [...this.categoryList[activeTab].list];\n      list.forEach((element) => {\n        if (!this.selectedIds.includes(element[this.categoryIdKey])) {\n          this.selectedIds.push(element[this.categoryIdKey]);\n        }\n      });\n    } else {\n      const list = [...this.categoryList[activeTab].list];\n      list.forEach((element) => {\n        if (this.selectedIds.includes(element[this.categoryIdKey])) {\n          let idIndex = this.selectedIds.findIndex(\n            (id: any) => id == element[this.categoryIdKey]\n          );\n          this.selectedIds.splice(idIndex, 1);\n        }\n      });\n    }\n    this.setList();\n  }\n\n  setList() {\n    const data: any = [];\n    const categoryList = cloneDeep(this.allCategories);\n    const selectedIds = cloneDeep(this.selectedIds);\n    this.categoryList.regulations.selectedList = [];\n    this.categoryList.standards.selectedList = [];\n    this.categoryList.internalControls.selectedList = [];\n    this.categoryList.others.selectedList = [];\n\n    categoryList.forEach((element: any) => {\n      if (selectedIds.includes(element[this.categoryIdKey])) {\n        data.push(element);\n      }\n    });\n    this.selectedCategories = data;\n\n    this.categoryList.regulations.list.forEach((category: any) => {\n      if (selectedIds.includes(category[this.categoryIdKey])) {\n        this.categoryList.regulations.selectedList.push(category);\n      }\n    });\n    this.categoryList.standards.list.forEach((category: any) => {\n      if (selectedIds.includes(category[this.categoryIdKey])) {\n        this.categoryList.standards.selectedList.push(category);\n      }\n    });\n    this.categoryList.internalControls.list.forEach((category: any) => {\n      if (selectedIds.includes(category[this.categoryIdKey])) {\n        this.categoryList.internalControls.selectedList.push(category);\n      }\n    });\n    this.categoryList.others.list.forEach((category: any) => {\n      if (selectedIds.includes(category[this.categoryIdKey])) {\n        this.categoryList.others.selectedList.push(category);\n      }\n    });\n    if (!this.activeTab) {\n      this.setActiveTab();\n    }\n  }\n  setActiveTab() {\n    if (this.categoryList.regulations.selectedList.length > 0) {\n      this.activeTab = 'regulations';\n    } else if (this.categoryList.standards.selectedList.length > 0) {\n      this.activeTab = 'standards';\n    } else if (this.categoryList.internalControls.selectedList.length > 0) {\n      this.activeTab = 'internalControls';\n    } else if (this.categoryList.others.selectedList.length > 0) {\n      this.activeTab = 'others';\n    } else {\n      this.activeTab = 'regulations';\n    }\n  }\n\n  checkSelectAll(activeTab: any) {\n    const data = this.categoryList[activeTab].list.every((user: any) =>\n      this.selectedIds.includes(user[this.categoryIdKey])\n    );\n    return data;\n  }\n\n  save() {\n    this.saveSelectedCategory.emit(this.selectedCategories);\n  }\n\n  close() {\n    this.closeCategoriesList.emit();\n  }\n}\n","<div class=\"category-multi-select\" [class.animate]=\"animation\">\n  <div class=\"category-multi-select-head\">\n    <h3 class=\"category-multi-select-title\">Select Programs</h3>\n  </div>\n  <div class=\"category-multi-select-body\">\n    <div class=\"filter-card-row\">\n      <div\n        class=\"filter-card\"\n        [class.active]=\"activeTab == 'regulations'\"\n        (click)=\"activeTab = 'regulations'\"\n      >\n        <div class=\"left\">\n          <label>REGULATIONS</label>\n          <p *ngIf=\"categoryList?.regulations?.selectedList?.length != 0\">\n            {{ categoryList?.regulations?.selectedList?.length }}\n            {{\n              categoryList?.regulations?.selectedList?.length == 1\n                ? \"Category\"\n                : \"Categories\"\n            }}\n            selected\n          </p>\n        </div>\n        <span class=\"counter\">{{\n          categoryList?.regulations?.list?.length\n        }}</span>\n      </div>\n      <div\n        class=\"filter-card\"\n        [class.active]=\"activeTab == 'standards'\"\n        (click)=\"activeTab = 'standards'\"\n      >\n        <div class=\"left\">\n          <label>STANDARDS</label>\n          <p *ngIf=\"categoryList?.standards?.selectedList?.length != 0\">\n            {{ categoryList?.standards?.selectedList?.length }}\n            {{\n              categoryList?.standards?.selectedList?.length == 1\n                ? \"Category\"\n                : \"Categories\"\n            }}\n            selected\n          </p>\n        </div>\n        <span class=\"counter\">{{ categoryList?.standards?.list?.length }}</span>\n      </div>\n      <div\n        class=\"filter-card\"\n        [class.active]=\"activeTab == 'internalControls'\"\n        (click)=\"activeTab = 'internalControls'\"\n      >\n        <div class=\"left\">\n          <label>INTERNAL CONTROLS</label>\n          <p *ngIf=\"categoryList?.internalControls?.selectedList?.length != 0\">\n            {{ categoryList?.internalControls?.selectedList?.length }}\n            {{\n              categoryList?.internalControls?.selectedList?.length == 1\n                ? \"Category\"\n                : \"Categories\"\n            }}\n            selected\n          </p>\n        </div>\n        <span class=\"counter\">{{\n          categoryList?.internalControls?.list?.length\n        }}</span>\n      </div>\n      <div\n        class=\"filter-card\"\n        [class.active]=\"activeTab == 'others'\"\n        (click)=\"activeTab = 'others'\"\n      >\n        <div class=\"left\">\n          <label>OTHERS</label>\n          <p *ngIf=\"categoryList?.others?.selectedList?.length != 0\">\n            {{ categoryList?.others?.selectedList?.length }}\n            {{\n              categoryList?.others?.selectedList?.length == 1\n                ? \"Category\"\n                : \"Categories\"\n            }}\n            selected\n          </p>\n        </div>\n        <span class=\"counter\">{{ categoryList?.others?.list?.length }}</span>\n      </div>\n    </div>\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        type=\"text\"\n        [(ngModel)]=\"search\"\n        placeholder=\"Search Responsibility Category\"\n      />\n    </div>\n    <!-- <div class=\"body-top\">\n      <div class=\"pagination\"></div>\n    </div> -->\n    <ng-container\n      *ngIf=\"categoryList[activeTab].list | filter : search as searchList\"\n    >\n      <div\n        class=\"body-top\"\n        *ngIf=\"searchList?.length > 0 && search.trim()?.length === 0\"\n      >\n        <app-cs-checkbox\n          [ngValue]=\"checkSelectAll(activeTab)\"\n          (ngValueChange)=\"selectAll($event, activeTab)\"\n        >\n          <strong>{{\n            checkSelectAll(activeTab) ? \"Deselect All\" : \"Select All\"\n          }}</strong>\n        </app-cs-checkbox>\n      </div>\n      <ul class=\"categories\" *ngIf=\"searchList?.length > 0\">\n        <li *ngFor=\"let category of searchList\">\n          <app-cs-checkbox\n            [ngValue]=\"selectedIds.includes(category[categoryIdKey])\"\n            (ngValueChange)=\"selectCategory($event, activeTab, category)\"\n          >\n            <ul class=\"category-name\" #listBlock>\n              <li\n                *ngFor=\"let entity of category.category_name; let j = index\"\n                [appTooltip]=\"entity\"\n                placement=\"bottom\"\n                type=\"black\"\n                delay=\"0\"\n                [tooltipMandatory]=\"true\"\n                [style.max-width.px]=\"\n                  blockWidth / category.category_name.length\n                \"\n              >\n                <span>\n                  <i class=\"icons\" *ngIf=\"j !== 0\">&#xe910;</i>{{ entity }}\n                </span>\n              </li>\n            </ul>\n          </app-cs-checkbox>\n        </li>\n      </ul>\n      <app-no-data\n        *ngIf=\"searchList.length === 0\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No Categories Found'\"\n      ></app-no-data>\n    </ng-container>\n  </div>\n  <div class=\"category-multi-select-footer\">\n    <app-floating-bar\n      [selectedData]=\"selectedCategories\"\n      [displayElementKey]=\"'item_name'\"\n      [singularText]=\"'Program selected'\"\n      [pluralText]=\"'Programs selected'\"\n      (closeEvent)=\"save()\"\n      (deleteEvent)=\"deleteEvent($event)\"\n      (closeList)=\"close()\"\n      [isDisabled]=\"\n        selectedCategories?.length === 0 ||\n        categoryList[activeTab]?.list?.length === 0\n      \"\n    >\n    </app-floating-bar>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n  name: 'formatHtml'\n})\nexport class FormatHtmlPipe implements PipeTransform {\n\n  constructor(private sanitized: DomSanitizer) {}\n  transform(value: string) {\n    return this.sanitized.bypassSecurityTrustHtml(value);\n  }\n\n}\n","import {\n  Component,\n  Input,\n  OnInit,\n  Output,\n  EventEmitter,\n  ViewChild,\n  OnChanges,\n  SimpleChanges,\n  ElementRef,\n  HostListener,\n} from '@angular/core';\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\nimport { CommonService } from '../../../services/common.service';\n\n@Component({\n  selector: 'app-checkpoints-questions',\n  templateUrl: './checkpoints-questions.component.html',\n  styleUrls: ['./checkpoints-questions.component.less'],\n})\nexport class CheckpointsQuestionsComponent implements OnInit, OnChanges {\n  constructor(\n    private elementRef: ElementRef,\n    private snackbar: SnackBarService,\n    private commonService: CommonService\n  ) {}\n  @Input() checkpointData: any = [];\n  @Input() questionTypeList = [];\n  @Input() errorIndex = -1;\n  @Input() checkpointInstruction: string = '';\n  @Output() createQuestion = new EventEmitter();\n  @Output() deleteQuestion = new EventEmitter();\n  @Output() copyQuestion = new EventEmitter();\n  @Output() blankQuestion = new EventEmitter();\n  @Output() createOption = new EventEmitter();\n  @Output() removeOption = new EventEmitter();\n  @Output() updateDescription = new EventEmitter();\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n  datePickerOverlay = false;\n  activeQuestionIndex = 0;\n  addInstruction!: boolean;\n\n  placeholder: any = {\n    textbox: 'Type your question here [Text Box]',\n    select: 'Type your question here [Select]',\n    radio: 'Type your question here [Radio]',\n    checkbox: 'Type your question here [CheckBox]',\n    date: 'Type your question here [Date]',\n    upload: 'Type your question here [Upload]',\n  };\n  description: any = '';\n  ngOnInit(): void {}\n\n  saveDescription() {\n    this.addInstruction = false;\n    if (this.extractContent(this.checkpointInstruction) === '') {\n      this.checkpointInstruction = '';\n    }\n    this.updateDescription.emit(this.checkpointInstruction);\n  }\n  extractContent(s: string) {\n    var span = document.createElement('span');\n    span.innerHTML = s;\n    return (span.textContent || span.innerText)\n      .replace(/&nbsp;/g, '')\n      .replace(/\\<br\\s*[\\/]?>/gi, '')\n      .trim();\n  }\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.errorIndex) {\n      if (this.errorIndex >= 0) {\n        this.activeQuestionIndex = this.errorIndex;\n      }\n    }\n  }\n  openDatePicker() {\n    this.datePicker?.api?.open();\n    this.datePickerOverlay = true;\n  }\n  closeDatepicker() {\n    this.datePicker?.api?.close();\n    this.datePickerOverlay = false;\n  }\n  addQuestion(type: any) {\n    //  this.createQuestion.emit(type.type);\n    // this.activeQuestionIndex = this.checkpointData.length - 1;\n  }\n  removeQuestion(index: number) {\n    this.deleteQuestion.emit(index);\n    this.activeQuestionIndex = index - 1;\n  }\n  cloneQuestion(index: number) {\n    // this.activeQuestionIndex = index + 1;\n    // this.copyQuestion.emit(index);\n  }\n  blankClone(type: string, index: number) {\n    // this.blankQuestion.emit({type, index});\n    // this.activeQuestionIndex = index + 1;\n  }\n\n  addOption(questionIndex: number, optionIndex: number, type: string) {\n    // this.createOption.emit({questionIndex, optionIndex, type});\n  }\n\n  deleteOption(questionIndex: number, optionIndex: number, type: string) {\n    this.removeOption.emit({ questionIndex, optionIndex, type });\n  }\n\n  deleteOnBackspace(questionIndex: number, optionIndex: number, type: string) {\n    if (\n      this.checkpointData[questionIndex].options[optionIndex].label.length <\n        1 &&\n      this.checkpointData[questionIndex].options.length > 1\n    ) {\n      this.removeOption.emit({ questionIndex, optionIndex, type });\n    }\n  }\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'frequency-date',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datePickerOverlay,\n    };\n    this.commonService.handleDocumentClick(datePickerObject);\n  }\n}\n","<!-- <p>checkpoints-questions works!</p> -->\n<div class=\"checkpoints-questions\">\n  <div\n    class=\"checkpoints-questions-blocks instruction\"\n    [class.filled]=\"checkpointInstruction.length > 0 && !addInstruction\"\n  >\n    <div class=\"container\">\n      <h3 class=\"question\">\n        <span class=\"counter\" *ngIf=\"!addInstruction\"\n          ><i class=\"icons\">&#xe932;</i></span\n        >\n        <span\n          class=\"text\"\n          *ngIf=\"!addInstruction\"\n          [innerHTML]=\"\n            checkpointInstruction.length > 0\n              ? (checkpointInstruction | formatHtml)\n              : 'Add instruction'\n          \"\n        ></span>\n        <span class=\"text\" *ngIf=\"addInstruction && false\">\n          <vcomply-editor\n            [(ngModel)]=\"checkpointInstruction\"\n            [editorConfig]=\"{\n              mode: 'prime',\n              colorPalette: true,\n              link: true,\n              placeholder: 'Add instruction',\n              buttonName: 'SAVE',\n              id: 'checkpoint-instructions'\n            }\"\n            (comment)=\"saveDescription()\"\n          ></vcomply-editor>\n        </span>\n      </h3>\n    </div>\n  </div>\n\n  <ng-container\n    *ngFor=\"let question of checkpointData; let questionIndex = index\"\n  >\n    <div\n      class=\"checkpoints-questions-blocks\"\n      *ngIf=\"['textbox', 'date', 'upload'].includes(question?.type)\"\n      [class.error]=\"errorIndex === questionIndex\"\n    >\n      <div class=\"container\">\n        <h3 class=\"question\">\n          <span class=\"counter\"\n            >{{ questionIndex + 1 }}.\n            <span class=\"required\" *ngIf=\"question.required\">*</span></span\n          >\n          <input\n            class=\"text\"\n            type=\"text\"\n            [placeholder]=\"placeholder[question.type]\"\n            [(ngModel)]=\"question.label\"\n            readonly\n          />\n        </h3>\n        <ng-container\n          class=\"preview\"\n          *ngIf=\"activeQuestionIndex !== questionIndex\"\n        >\n          <label class=\"file-upload\" *ngIf=\"question.type === 'upload'\">\n            <input type=\"file\" disabled />\n            <span><i class=\"icons\">&#xe9ed;</i> Browse File</span>\n          </label>\n          <ng-container *ngIf=\"question.type === 'date'\">\n            <div class=\"date-picker\">\n              <i class=\"icons\">&#xe92d;</i>\n              <input\n                type=\"text\"\n                placeholder=\"Select date\"\n                (click)=\"\n                  openDatePicker();\n                  $event.stopPropagation();\n                  datePickerOverlay = true\n                \"\n                disabled\n                id=\"date-picker\"\n              />\n              <dp-date-picker #datePicker (click)=\"$event.stopPropagation()\">\n              </dp-date-picker>\n              <div\n                class=\"vx-overlay\"\n                (click)=\"closeDatepicker(); $event.stopPropagation()\"\n                *ngIf=\"datePickerOverlay\"\n              ></div>\n            </div>\n          </ng-container>\n        </ng-container>\n      </div>\n      <div class=\"footer\">\n        <div class=\"left\">\n          <app-cs-checkbox\n            [ngValue]=\"question.required\"\n            (ngValueChange)=\"question.required = $event\"\n            >Is required</app-cs-checkbox\n          >\n        </div>\n        <div class=\"right\">\n          <ul>\n            <li>\n              <button\n                [appTooltip]=\"'Add new'\"\n                placement=\"bottom\"\n                delay=\"0\"\n                [tooltipMandatory]=\"true\"\n                (click)=\"\n                  blankClone(question.type, questionIndex);\n                  $event.stopPropagation()\n                \"\n              >\n                <i class=\"icons\">&#xe915;</i>\n              </button>\n            </li>\n            <li>\n              <button\n                class=\"delete\"\n                [appTooltip]=\"'Delete'\"\n                placement=\"bottom\"\n                delay=\"0\"\n                [tooltipMandatory]=\"true\"\n                (click)=\"\n                  removeQuestion(questionIndex); $event.stopPropagation()\n                \"\n              >\n                <i class=\"icons\">&#xe923;</i>\n              </button>\n            </li>\n            <li>\n              <!-- <button [appTooltip]=\"'Copy'\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\"\n                                (click)=\"cloneQuestion(questionIndex);$event.stopPropagation();\">\n                                <i class=\"icons\">&#xe9b6;</i>\n                            </button> -->\n            </li>\n          </ul>\n        </div>\n      </div>\n    </div>\n    <div\n      class=\"checkpoints-questions-blocks\"\n      *ngIf=\"question?.type === 'radio'\"\n      [class.error]=\"errorIndex === questionIndex\"\n    >\n      <div class=\"container\">\n        <h3 class=\"question\">\n          <span class=\"counter\"\n            >{{ questionIndex + 1 }}.\n            <span class=\"required\" *ngIf=\"question.required\">*</span></span\n          >\n          <input\n            class=\"text\"\n            type=\"text\"\n            [placeholder]=\"placeholder[question.type]\"\n            [(ngModel)]=\"question.label\"\n            readonly\n          />\n        </h3>\n        <ul class=\"list\">\n          <li *ngFor=\"let option of question?.options; let opIndex = index\">\n            <app-cs-radio\n              [oneLine]=\"true\"\n              [readonly]=\"true\"\n              [disabled]=\"activeQuestionIndex === questionIndex\"\n              ><input\n                [(ngModel)]=\"option.label\"\n                [id]=\"'radio-' + '' + questionIndex + '' + opIndex\"\n                type=\"text\"\n                placeholder=\"Option\"\n              />\n            </app-cs-radio>\n            <!-- <button class=\"close\" (click)=\"deleteOption(questionIndex,opIndex,question.type)\"\n                            *ngIf=\"activeQuestionIndex === questionIndex && question?.options.length > 1\"><i\n                                class=\"icons\">&#xe90d;</i></button> -->\n          </li>\n          <!-- <li *ngIf=\"activeQuestionIndex === questionIndex && false\" class=\"add-new\">\n                        <app-cs-radio [oneLine]=\"true\" [readonly]=\"true\">\n                            <input type=\"text\" readonly placeholder=\"Add more option\"\n                                (click)=\"addOption(questionIndex,question?.options?.length-1,question.type)\">\n                        </app-cs-radio>\n                    </li> -->\n        </ul>\n      </div>\n\n      <div class=\"footer\">\n        <div class=\"left\">\n          <app-cs-checkbox\n            [ngValue]=\"question.required\"\n            (ngValueChange)=\"question.required = $event\"\n            >Is required</app-cs-checkbox\n          >\n        </div>\n        <div class=\"right\">\n          <ul>\n            <!-- <li>\n                            <button [appTooltip]=\"'Add new'\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\"\n                                (click)=\"blankClone(question.type,questionIndex);$event.stopPropagation();\">\n                                <i class=\"icons\">&#xe915;</i>\n                            </button>\n                        </li> -->\n            <li>\n              <button\n                class=\"delete\"\n                [appTooltip]=\"'Delete'\"\n                placement=\"bottom\"\n                delay=\"0\"\n                [tooltipMandatory]=\"true\"\n                (click)=\"\n                  removeQuestion(questionIndex); $event.stopPropagation()\n                \"\n              >\n                <i class=\"icons\">&#xe923;</i>\n              </button>\n            </li>\n            <!-- <li>\n                            <button [appTooltip]=\"'Copy'\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\"\n                                (click)=\"cloneQuestion(questionIndex);$event.stopPropagation();\">\n                                <i class=\"icons\">&#xe9b6;</i>\n                            </button>\n                        </li> -->\n          </ul>\n        </div>\n      </div>\n    </div>\n    <div\n      class=\"checkpoints-questions-blocks\"\n      *ngIf=\"question?.type === 'select'\"\n      [class.error]=\"errorIndex === questionIndex\"\n    >\n      <div class=\"container\">\n        <h3 class=\"question\">\n          <span class=\"counter\"\n            >{{ questionIndex + 1 }}.\n            <span class=\"required\" *ngIf=\"question.required\">*</span></span\n          >\n          <input\n            class=\"text\"\n            type=\"text\"\n            [placeholder]=\"placeholder[question.type]\"\n            [(ngModel)]=\"question.label\"\n            readonly\n          />\n        </h3>\n        <ul class=\"list\">\n          <li *ngFor=\"let option of question?.options; let opIndex = index\">\n            <app-cs-radio\n              [oneLine]=\"true\"\n              readonly\n              [disabled]=\"activeQuestionIndex === questionIndex\"\n            >\n              <input\n                [(ngModel)]=\"option.label\"\n                name=\"'select-' + '' + questionIndex + '' + opIndex\"\n                (keydown.enter)=\"\n                  addOption(questionIndex, opIndex, question.type)\n                \"\n                (keydown.backspace)=\"\n                  deleteOnBackspace(questionIndex, opIndex, question.type)\n                \"\n                [id]=\"'select-' + '' + questionIndex + '' + opIndex\"\n                type=\"text\"\n                placeholder=\"Option\"\n              />\n            </app-cs-radio>\n            <!-- <button class=\"close\" (click)=\"deleteOption(questionIndex,opIndex,question.type)\"\n                            *ngIf=\"activeQuestionIndex === questionIndex && question?.options.length > 1\"><i\n                                class=\"icons\">&#xe90d;</i></button> -->\n          </li>\n          <!-- \n                    <li *ngIf=\"activeQuestionIndex === questionIndex\" class=\"add-new\">\n                        <app-cs-radio [oneLine]=\"true\" [readonly]=\"true\"><input readonly type=\"text\"\n                                placeholder=\"Add more option\"\n                                (click)=\"addOption(questionIndex,question?.options?.length-1,question.type)\">\n                        </app-cs-radio>\n                    </li> -->\n          <!-- <button (click)=\"addOption(questionIndex,question?.options?.length,question.type)\"\n                        *ngIf=\"activeQuestionIndex === questionIndex\">Add More Options</button> -->\n        </ul>\n      </div>\n\n      <div class=\"footer\">\n        <div class=\"left\">\n          <app-cs-checkbox\n            [ngValue]=\"question.required\"\n            (ngValueChange)=\"question.required = $event\"\n            >Is required</app-cs-checkbox\n          >\n        </div>\n        <div class=\"right\">\n          <ul>\n            <!-- <li>\n                            <button [appTooltip]=\"'Add new'\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\"\n                                (click)=\"blankClone(question.type,questionIndex);$event.stopPropagation();\">\n                                <i class=\"icons\">&#xe915;</i>\n                            </button>\n                        </li> -->\n            <li>\n              <button\n                class=\"delete\"\n                [appTooltip]=\"'Delete'\"\n                placement=\"bottom\"\n                delay=\"0\"\n                [tooltipMandatory]=\"true\"\n                (click)=\"\n                  removeQuestion(questionIndex); $event.stopPropagation()\n                \"\n              >\n                <i class=\"icons\">&#xe923;</i>\n              </button>\n            </li>\n            <!-- <li>\n                            <button [appTooltip]=\"'Copy'\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\"\n                                (click)=\"cloneQuestion(questionIndex);$event.stopPropagation();\">\n                                <i class=\"icons\">&#xe9b6;</i>\n                            </button>\n                        </li> -->\n          </ul>\n        </div>\n      </div>\n    </div>\n    <div\n      class=\"checkpoints-questions-blocks\"\n      *ngIf=\"question?.type === 'checkbox'\"\n      [class.error]=\"errorIndex === questionIndex\"\n    >\n      <div class=\"container\">\n        <h3 class=\"question\">\n          <span class=\"counter\"\n            >{{ questionIndex + 1 }}.\n            <span class=\"required\" *ngIf=\"question.required\">*</span></span\n          >\n          <input\n            class=\"text\"\n            type=\"text\"\n            [placeholder]=\"placeholder[question.type]\"\n            [(ngModel)]=\"question.label\"\n            readonly\n          />\n        </h3>\n        <ul class=\"list\">\n          <li *ngFor=\"let option of question?.options; let opIndex = index\">\n            <app-cs-checkbox [oneLine]=\"true\" [readonly]=\"true\">\n              <input\n                [(ngModel)]=\"option.label\"\n                type=\"text\"\n                placeholder=\"Option\"\n                [id]=\"'checkbox-' + '' + questionIndex + '' + opIndex\"\n                (keydown.enter)=\"\n                  addOption(questionIndex, opIndex, question.type)\n                \"\n                (keydown.backspace)=\"\n                  deleteOnBackspace(questionIndex, opIndex, question.type)\n                \"\n              />\n            </app-cs-checkbox>\n            <!-- <button class=\"close\" (click)=\"deleteOption(questionIndex,opIndex,question.type)\"\n                            *ngIf=\"activeQuestionIndex === questionIndex && question?.options.length > 1\"><i\n                                class=\"icons\">&#xe90d;</i></button> -->\n          </li>\n          <!-- <li *ngIf=\"activeQuestionIndex === questionIndex\" class=\"add-new\">\n                        <app-cs-checkbox [oneLine]=\"true\"\n                            (click)=\"addOption(questionIndex,question?.options?.length-1,question.type)\"\n                            [disabled]=\"true\">\n                            <input [disabled]=\"true\" type=\"text\" placeholder=\"Add more option\">\n                        </app-cs-checkbox>\n                    </li> -->\n        </ul>\n      </div>\n\n      <div class=\"footer\">\n        <div class=\"left\">\n          <app-cs-checkbox\n            [ngValue]=\"question.required\"\n            (ngValueChange)=\"question.required = $event\"\n            >Is required</app-cs-checkbox\n          >\n        </div>\n        <div class=\"right\">\n          <ul>\n            <!-- <li>\n                            <button [appTooltip]=\"'Add new'\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\"\n                                (click)=\"blankClone(question.type,questionIndex);$event.stopPropagation();\">\n                                <i class=\"icons\">&#xe915;</i>\n                            </button>\n                        </li> -->\n            <li>\n              <button\n                class=\"delete\"\n                [appTooltip]=\"'Delete'\"\n                placement=\"bottom\"\n                delay=\"0\"\n                [tooltipMandatory]=\"true\"\n                (click)=\"\n                  removeQuestion(questionIndex); $event.stopPropagation()\n                \"\n              >\n                <i class=\"icons\">&#xe923;</i>\n              </button>\n            </li>\n            <!-- <li>\n                            <button [appTooltip]=\"'Copy'\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\"\n                                (click)=\"cloneQuestion(questionIndex);$event.stopPropagation();\">\n                                <i class=\"icons\">&#xe9b6;</i>\n                            </button>\n                        </li> -->\n          </ul>\n        </div>\n      </div>\n    </div>\n    <!-- <div class=\"checkpoints-questions-blocks\" [class.active]=\"true\">\n        <div class=\"container\">\n            <h3 class=\"question\">\n                <span class=\"counter\">2. <span class=\"required\">*</span></span>\n                <input class=\"text\" type=\"text\" placeholder=\"Type your question here [Select Box]\" value=\"Has the previous audit report been closed out?\">\n            </h3>\n            <ul class=\"list\">\n                <li>\n                    <app-cs-radio [oneLine]=\"true\"><span>Yes</span></app-cs-radio> <button class=\"close\"><i class=\"icons\">&#xe90d;</i></button>\n                </li>\n                <li>\n                    <app-cs-radio [oneLine]=\"true\"><span>No</span></app-cs-radio><button class=\"close\"><i class=\"icons\">&#xe90d;</i></button>\n                </li>\n                <li>\n                    <app-cs-radio [oneLine]=\"true\"><span>N/A</span></app-cs-radio><button class=\"close\"><i class=\"icons\">&#xe90d;</i></button>\n                </li>\n                <li>\n                    <app-cs-radio [oneLine]=\"true\"><input type=\"text\" placeholder=\"Option\"></app-cs-radio> <button class=\"close\"><i class=\"icons\">&#xe90d;</i></button>\n                </li>\n            </ul>\n        </div>\n        <div class=\"footer\">\n            <div class=\"left\">\n                <app-cs-checkbox [ngValue]=\"question.required\" (ngValueChange)=\"question.required = $event\">Is required</app-cs-checkbox>\n            </div>\n            <div class=\"right\">\n                <ul>\n                    <li><button><i class=\"icons\">&#xe915;</i></button></li>\n                    <li><button><i class=\"icons\">&#xe923;</i></button></li>\n                    <li><button><i class=\"icons\">&#xe9b6;</i></button></li>\n                </ul>\n            </div>\n        </div>\n    </div> -->\n  </ng-container>\n  <!-- <button class=\"btn-add-new\" type=\"button\" appPopover (click)=\"newCheckpoint.popover()\" placement=\"left\">+ Add a new\n        checkpoint</button> -->\n  <!-- <app-popover #newCheckpoint>\n\n        <ul class=\"checkpoint-type-list\">\n            <li><span class=\"checkpoint-type-list-title\">Add Checkpoints</span></li>\n            <li *ngFor=\"let type of questionTypeList\">\n                <button (click)=\"addQuestion(type)\">\n                    <i class=\"icons\" [innerHTML]=\"type.icon\"></i>\n                    <span class=\"value\">\n                        {{type?.text}}\n                    </span>\n                </button>\n            </li>\n        </ul>\n    </app-popover> -->\n</div>\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-checkpoints-list',\n  templateUrl: './checkpoints-list.component.html',\n  styleUrls: ['./checkpoints-list.component.less']\n})\nexport class CheckpointsListComponent implements OnInit {\n  @Output() createQuestion = new EventEmitter();\n  @Input() questionTypeList = [];\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n  addQuestion(type: any){\n //  this.createQuestion.emit(type.type);\n  }\n\n}\n","<div class=\"checkpoints-list\">\n    <h4 class=\"title\">Please select a question type to begin:</h4>\n    <ul class=\"list-of-type\">\n        <li *ngFor=\"let questionType of questionTypeList\">\n            <button (click)=\"addQuestion(questionType)\">\n                <i class=\"icons\" [innerHTML]=\"questionType?.icon\"></i>\n                <span class=\"value\">\n                    <span class=\"title\">{{questionType?.text}}</span>\n                    <span class=\"description\">{{questionType?.description}}</span>\n                </span>\n            </button>\n        </li>\n    </ul>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n\n@Component({\n  selector: 'app-checkpoint-floating-bar',\n  templateUrl: './checkpoint-floating-bar.component.html',\n  styleUrls: ['./checkpoint-floating-bar.component.less']\n})\nexport class CheckpointFloatingBarComponent implements OnInit {\n@Input() count = 0;\n@Input() pluralText = '';\n@Input() singularText = '';\n@Output() closeList : EventEmitter<any>  = new EventEmitter();\n@Output() saveList : EventEmitter<any>  = new EventEmitter();\n@Input() requiredPoint = 0;\n@Input() isPolicyCheckpoint = false;\n@Output() requiredPointChange = new EventEmitter();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  next(){\n    this.saveList.emit();\n  }\n\n  close(){\n    this.closeList.emit();\n  }\n\n}\n","<div class=\"checkpoint-floating-bar\">\n  <div class=\"checkpoint-floating-bar-container vx-d-flex vx-align-center vx-justify-between vx-p-2 vx-pl-3 vx-pr-3\">\n    <div class=\"left\">\n      <div class=\"counter vx-fs-9 vx-fw-600 vx-txt-white vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center\">{{count}}</div>\n      <div class=\"name vx-fs-12 vx-paragraph-txt vx-ml-2\">\n        <span *ngIf=\"count < 2\">{{singularText}}</span>\n        <span *ngIf=\"count > 1\">{{pluralText}}</span>\n      </div>\n    </div>\n    <!-- <div class=\"mid\" *ngIf=\"isPolicyCheckpoint\">\n      <div class=\"name\" *ngIf=\"true\" >\n        <div class=\"label\">Total Points : {{count}}</div>\n        <em>Each question carries 1 point</em>\n        <span class=\"required\">*</span>\n        <!- - <i class=\"icons\">&#xe91f;</i> - ->\n      </div>\n      <div class=\"name points\" *ngIf=\"true\">\n        <div>\n          <div class=\"label\">Points required<br>to attest\n            <span class=\"required\">*</span>\n            <i class=\"icons\" appPopover (click)=\"policyPassing.popover()\" placement=\"right\">&#xe91f;</i> :\n          </div>\n        </div>\n        <div>\n          <input type=\"number\" [(ngModel)]=\"requiredPoint\" [max]=\"count\"   onkeydown=\"return event.keyCode !== 190\" min=\"0\"\n          oninput=\"this.value = Math.abs(this.value);\" (ngModelChange)=\"requiredPointChange.emit(requiredPoint)\"/>\n        </div>\n      </div>\n    </div> -->\n    <div class=\"right\">\n      <!-- <ng-container *ngIf=\"isPolicyCheckpoint\">\n      <div class=\"name\" *ngIf=\"true\" >\n        Total Points : {{count}}<br>\n        <i>Each question carries 1 point</i>\n        <span class=\"required\">*</span>\n        <i class=\"icons\">&#xe91f;</i>\n      </div>\n      <div class=\"name\" *ngIf=\"true\">\n        Points required to attest\n        <span class=\"required\">*</span>\n        <i class=\"icons\">&#xe91f;</i>\n        <input type=\"number\" [(ngModel)]=\"requiredPoint\" [max]=\"count\"   onkeydown=\"return event.keyCode !== 190\" min=\"0\"\n        oninput=\"this.value = Math.abs(this.value);\" (ngModelChange)=\"requiredPointChange.emit(requiredPoint)\"/>\n      </div>\n    </ng-container> -->\n      <app-cs-select *ngIf=\"false\"></app-cs-select>\n      <button appRipple class=\"cancel\" (click)=\"close()\">Cancel</button>\n      <button (click)=\"next()\" appRipple>Next <i class=\"icons\">&#xe91e;</i></button>\n    </div>\n  </div>\n</div>\n<app-popover #policyPassing [dontCloseonClick]=\"true\">\n  <div  class=\"pop\">\n   Every correct answer choice carries 1 point. You can specify the total number of questions that the reader must answer correctly in order to attest the policy.\n  </div>\n</app-popover>\n","import { cloneDeep } from 'lodash-es';\nimport {\n  Component,\n  EventEmitter,\n  OnInit,\n  Output,\n  ChangeDetectorRef,\n  Input,\n} from '@angular/core';\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\n\n@Component({\n  selector: 'app-checkpoints',\n  templateUrl: './checkpoints.component.html',\n  styleUrls: ['./checkpoints.component.less'],\n})\nexport class CheckpointsComponent implements OnInit {\n  @Output() closeCheckPoint = new EventEmitter();\n  @Output() saveCheckPoint = new EventEmitter();\n  animation = true;\n  @Input() checkpointData: any = [];\n  @Input() checkpointInstruction = '';\n  errorIndex = -1;\n  questionTypeList = [\n    {\n      text: 'Text',\n      type: 'textbox',\n      description: 'Select a text area.',\n      icon: '&#xeace;',\n    },\n    {\n      text: 'Dropdown',\n      type: 'select',\n      description: 'Choose an option from a multiple select box.',\n      icon: '&#xeab9;',\n    },\n    {\n      text: 'Single selection',\n      type: 'radio',\n      description: 'Select only one option with a radio button.',\n      icon: '&#xeab5;',\n    },\n    {\n      text: 'Multiple selection',\n      type: 'checkbox',\n      description: 'Select multiple options using a checkbox.',\n      icon: '&#xeab4;',\n    },\n    {\n      text: 'Date',\n      type: 'date',\n      description: 'Select date from a date picker.',\n      icon: '&#xeaba;',\n    },\n    {\n      text: 'Upload File',\n      type: 'upload',\n      description: 'Upload documents & files.',\n      icon: '&#xea97;',\n    },\n  ];\n  constructor(\n    private snackbar: SnackBarService,\n    private cdr: ChangeDetectorRef\n  ) {}\n\n  ngOnInit(): void {\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.checkpointData =\n      this.checkpointData && this.checkpointData != ''\n        ? cloneDeep(this.checkpointData)\n        : [];\n  }\n\n  addQuestion(evt: any, index?: number) {\n    switch (evt) {\n      case 'textbox': {\n        this.createTextBox(index);\n        break;\n      }\n      case 'select': {\n        this.createSelect(index);\n        break;\n      }\n      case 'radio': {\n        this.createRadio(index);\n        break;\n      }\n      case 'checkbox': {\n        this.createCheckBox(index);\n        break;\n      }\n      case 'date': {\n        this.createDate(index);\n        break;\n      }\n      case 'upload': {\n        this.createUpload(index);\n        break;\n      }\n    }\n  }\n\n  createTextBox(index?: number) {\n    // this.gotoLastOption();\n    if (index === undefined) {\n      this.checkpointData.push({\n        type: 'textbox',\n        id: 'textbox_1',\n        required: false,\n        label: '',\n        options: [],\n      });\n    } else {\n      this.checkpointData.splice(index + 1, 0, {\n        type: 'textbox',\n        id: `textbox_{index+1}`,\n        required: false,\n        label: '',\n        options: [],\n      });\n    }\n  }\n\n  createSelect(index?: number) {\n    // this.gotoLastOption();\n    if (index === undefined) {\n      this.checkpointData.push({\n        type: 'select',\n        id: 'select_1',\n        required: false,\n        label: '',\n        options: [{ label: '', value: 1, is_selected: false }],\n      });\n    } else {\n      this.checkpointData.splice(index + 1, 0, {\n        type: 'select',\n        id: 'select_{index+1}',\n        required: false,\n        label: '',\n        options: [{ label: '', value: 1, is_selected: false }],\n      });\n    }\n  }\n\n  createRadio(index?: number) {\n    // this.gotoLastOption();\n    if (index === undefined) {\n      this.checkpointData.push({\n        type: 'radio',\n        id: 'radio_1',\n        required: false,\n        label: '',\n        options: [{ label: '', value: 1, is_selected: false }],\n      });\n    } else {\n      this.checkpointData.splice(index + 1, 0, {\n        type: 'radio',\n        id: 'radio_{index+1}',\n        required: false,\n        label: '',\n        options: [{ label: '', value: 1, is_selected: false }],\n      });\n    }\n  }\n\n  createCheckBox(index?: number) {\n    // this.gotoLastOption();\n    if (index === undefined) {\n      this.checkpointData.push({\n        type: 'checkbox',\n        id: 'checkbox_1',\n        required: false,\n        label: '',\n        options: [{ label: '', value: 1, is_selected: false, required: 0 }],\n      });\n    } else {\n      this.checkpointData.splice(index + 1, 0, {\n        type: 'checkbox',\n        id: 'checkbox_{index+1}',\n        required: false,\n        label: '',\n        options: [{ label: '', value: 1, is_selected: false, required: 0 }],\n      });\n    }\n  }\n\n  createDate(index?: number) {\n    // this.gotoLastOption();\n    if (index === undefined) {\n      this.checkpointData.push({\n        type: 'date',\n        id: 'date_1',\n        required: false,\n        label: '',\n        options: [],\n      });\n    } else {\n      this.checkpointData.splice(index + 1, 0, {\n        type: 'date',\n        id: 'date_{index+1}',\n        required: false,\n        label: '',\n        options: [],\n      });\n    }\n  }\n\n  createUpload(index?: number) {\n    // this.gotoLastOption();\n    if (index === undefined) {\n      this.checkpointData.push({\n        type: 'upload',\n        id: 'upload_1',\n        required: false,\n        label: '',\n        options: [],\n      });\n    } else {\n      this.checkpointData.splice(index + 1, 0, {\n        type: 'upload',\n        id: 'upload_{index+1}',\n        required: false,\n        label: '',\n        options: [],\n      });\n    }\n  }\n\n  createOption(i: number, j: number, type: any) {\n    this.checkpointData[i].options.splice(j + 1, 0, {\n      label: '',\n      id: '',\n      value: 0,\n      is_selected: false,\n    });\n    for (let k = 0; k <= this.checkpointData[i].options.length - 1; k++) {\n      this.checkpointData[i].options[k].value = k + 1;\n    }\n    setTimeout(() => {\n      const EL: any = document.getElementById(type + '-' + i + '' + (j + 1));\n      if (EL) {\n        EL.focus();\n      }\n    }, 10);\n  }\n\n  deleteOption(i: number, j: number, type: any) {\n    if (this.checkpointData[i].options.length === 1) {\n      return;\n    }\n    this.checkpointData[i].options.splice(j, 1);\n    for (let k = 0; k <= this.checkpointData[i].options.length - 1; k++) {\n      this.checkpointData[i].options[k].value = k + 1;\n    }\n    if (j - 1 >= 0) {\n      const EL: any = document.getElementById(type + '-' + i + '' + (j - 1));\n      if (EL) {\n        EL.focus();\n      }\n    } else {\n      const EL: any = document.getElementById(type + '-' + i + '' + 0);\n      if (EL) {\n        EL.focus();\n      }\n    }\n  }\n\n  removeQuestion(index: number) {\n    this.checkpointData.splice(index, 1);\n  }\n\n  copyQuestion(index: number) {\n    const COPY_ARR = JSON.parse(JSON.stringify(this.checkpointData[index]));\n    this.checkpointData.splice(index + 1, 0, COPY_ARR);\n  }\n\n  save() {\n    if (this.validateCheckpoint() === false) {\n      this.snackbar.show('Please fill in the details.', 'alert');\n    } else {\n      this.errorIndex = -1;\n      this.saveCheckPoint.emit({\n        checkpointInstruction: this.checkpointInstruction,\n        checkpointDetails: this.checkpointData,\n      });\n    }\n  }\n  close() {\n    this.closeCheckPoint.emit();\n  }\n\n  validateCheckpoint() {\n    for (let i = 0; i <= this.checkpointData.length - 1; i++) {\n      if (this.checkpointData[i].label.trim() === '') {\n        this.errorIndex = i;\n        return false;\n      }\n      if (this.checkpointData[i].options.length > 0) {\n        for (let j = 0; j < this.checkpointData[i].options.length; j++) {\n          if (this.checkpointData[i].options[j].label.trim() === '') {\n            this.errorIndex = i;\n            return false;\n          }\n        }\n      }\n    }\n  }\n\n  checkpointDescription(event: any) {\n    this.checkpointInstruction = event;\n  }\n}\n","<!-- <p>checkpoints works!</p> -->\n<div class=\"checkpoints\" [class.animate]=\"animation\">\n    <div class=\"checkpoints-head\">\n        <h3 class=\"checkpoints-title\">Add Checkpoints</h3>\n    </div>\n    <div class=\"checkpoints-body\" [class.align-center]=\"checkpointData?.length === 0\">\n        <app-checkpoints-list *ngIf=\"checkpointData?.length === 0\" (createQuestion)=\"addQuestion($event)\" [questionTypeList]=\"questionTypeList\"></app-checkpoints-list>\n        <app-checkpoints-questions *ngIf=\"checkpointData?.length > 0\" [checkpointInstruction]=\"checkpointInstruction\" [errorIndex]='errorIndex' [checkpointData]=\"checkpointData\" [questionTypeList]=\"questionTypeList\"\n           (createQuestion)=\"addQuestion($event)\" (deleteQuestion)=\"removeQuestion($event)\" (copyQuestion)=\"copyQuestion($event)\"\n           (blankQuestion)=\"addQuestion($event.type,$event.index)\" (createOption)=\"createOption($event.questionIndex,$event.optionIndex,$event.type)\"\n           (removeOption)=\"deleteOption($event.questionIndex,$event.optionIndex,$event.type)\" (updateDescription)=\"checkpointDescription($event)\"></app-checkpoints-questions>\n    </div>\n    <div class=\"checkpoints-footer\">\n        <app-checkpoint-floating-bar [count]=\"checkpointData.length\" (saveList)=\"save()\" [pluralText]=\"'Checkpoints selected.'\" [singularText]=\"'Checkpoint selected.'\"\n        (closeList)=\"close()\" ></app-checkpoint-floating-bar>\n    </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\nimport { ASSETS } from '../../constants/assets.constants';\n@Component({\n  selector: 'app-review-frequency',\n  templateUrl: './review-frequency.component.html',\n  styleUrls: ['./review-frequency.component.less'],\n})\nexport class ReviewFrequencyComponent implements OnInit {\n  ASSETS = ASSETS;\n  @Input() reviewCompleteDays: any;\n  @Input() reviewNOtCompletedDays: any;\n  @Output() closeReviewFrequency = new EventEmitter();\n  @Output() backToUserList = new EventEmitter();\n  @Output() saveReviewFrequency = new EventEmitter();\n\n  constructor(private snackbar: SnackBarService) {}\n\n  ngOnInit(): void {}\n\n  close() {\n    this.backToUserList.emit();\n  }\n  save() {\n    this.saveReviewFrequency.emit({\n      completeDays: this.reviewCompleteDays,\n      notCompleted: this.reviewNOtCompletedDays,\n    });\n  }\n  onValueChange() {\n    if (this.reviewCompleteDays < 1) {\n      this.snackbar.show('Please enter a value greater than 0.', 'alert');\n    }\n  }\n}\n","<app-snack-bar></app-snack-bar>\n\n<div class=\"review-frequency\">\n  <div class=\"review-frequency-head vx-d-flex vx-align-center vx-pl-4 vx-pr-4\">\n    <i class=\"icons arrow vx-fs-16 vx-mr-2\" (click)=\"close()\">&#xe91d;</i>\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Review Frequency</div>\n  </div>\n  <div class=\"review-frequency-body\">\n    <div class=\"review-frequency-message\">\n      <div class=\"review-frequency-icon\">\n        <img [src]=\"ASSETS.bulb\" alt=\"\" />\n      </div>\n      <div\n        class=\"review-frequency-inner vx-fs-12 vx-paragraph-txt vx-lh-5 vx-w-100\"\n      >\n        The review period begins after the responsibility is completed. This\n        means that if a responsibility is completed on the specified due date,\n        the review will take place after the due date. In some circumstances\n        this may be fine. In others, such as a responsibility with a regulatory\n        due date, this may result in non-compliance with an external obligation.\n        Accordingly, when adding the “Review” option to a responsibility, it is\n        important to carefully consider the due date for a responsibility and\n        how incorporating a review of the responsibility affects when a\n        responsibility is completed.\n      </div>\n    </div>\n    <div class=\"review-frequency-body-inner vx-mt-2 vx-mb-4\">\n      <div class=\"frequency-due-date\">\n        <div class=\"frequency-due-date-item vx-mt-3\">\n          <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n            COMPLETION WINDOW OPENS:\n          </div>\n          <div\n            class=\"frequency-due-date-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\n          >\n            The responsibility can be reviewed\n            <input\n              class=\"countNum\"\n              [(ngModel)]=\"reviewCompleteDays\"\n              (focusout)=\"onValueChange()\"\n              type=\"number\"\n              onkeydown=\"return event.keyCode !== 190\"\n              min=\"0\"\n              oninput=\"this.value = Math.abs(this.value)\"\n            />\n            {{ reviewCompleteDays > 1 ? \"days\" : \"day\" }}\n            <span class=\"vx-fw-500\">after</span> it has been completed. Where\n            this occurs, this will show as the review being\n            <span class=\"completed-text vx-fw-500\">completed on time</span>.\n          </div>\n        </div>\n\n        <div class=\"frequency-due-date-item vx-mt-5\">\n          <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n            EXTENSION:\n          </div>\n          <div\n            class=\"frequency-due-date-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\n          >\n            The responsibility can be reviewed\n            <input\n              class=\"countNum\"\n              [(ngModel)]=\"reviewNOtCompletedDays\"\n              type=\"number\"\n              onkeydown=\"return event.keyCode !== 190\"\n              min=\"0\"\n              oninput=\"this.value = Math.abs(this.value)\"\n            />\n            {{ reviewNOtCompletedDays > 1 ? \"days\" : \"day\"\n            }}<span class=\"vx-fw-500\"> after</span> the review due date. Where\n            this occurs, this will show as the review being\n            <span class=\"delay-text vx-fw-500\">completed with delay</span>.\n          </div>\n        </div>\n\n        <div class=\"frequency-due-date-item vx-mt-5\">\n          <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n            COMPLETION WINDOW CLOSES:\n          </div>\n          <div\n            class=\"frequency-due-date-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\n          >\n            The responsibility cannot be reviewed\n            <span class=\"vx-fw-500 vx-label-txt vx-ml-1\">{{\n              reviewNOtCompletedDays\n            }}</span>\n            {{ reviewNOtCompletedDays > 1 ? \"days\" : \"day\"\n            }}<span class=\"vx-fw-500\"> after</span> the review due date. Where\n            this occurs, this will show as the review being\n            <span class=\"notcompleted-text vx-fw-500\">not completed</span>.\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <app-floating-bar\n    [showWorkflow]=\"false\"\n    [isDisabled]=\"reviewCompleteDays < 1 ? true : false\"\n    (closeEvent)=\"save()\"\n    (closeList)=\"closeReviewFrequency.emit()\"\n  >\n    <span class=\"name\"\n      >This responsibility needs to be reviewed within\n      <b>{{ reviewCompleteDays }}</b>\n      {{ reviewCompleteDays > 1 ? \"days\" : \"day\" }} after it has been\n      completed.</span\n    >\n  </app-floating-bar>\n</div>\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport moment from 'moment/moment';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\n@Component({\n  selector: 'app-frequency-top',\n  templateUrl: './frequency-top.component.html',\n  styleUrls: ['./frequency-top.component.less'],\n})\nexport class FrequencyTopComponent implements OnInit {\n  @Input() occurrenceFirst = 0;\n  @Input() id = 0; // 0 = Daily, 1: weekly, 5: Annually\n  @Input() inputTime = DEFAULT_TIME;\n  @Input() frequencyType = 0; // 0 = days, 1 = weeks & 2 = years\n  @Input() yearlyDay = new Date().getDate();\n\n  @Output() valueChangedFirst: EventEmitter<any> = new EventEmitter();\n  @Output() nextDisable: EventEmitter<any> = new EventEmitter();\n  @Output() timeChanged: EventEmitter<any> = new EventEmitter();\n  @Output() yearlyDateChanged: EventEmitter<any> = new EventEmitter();\n  @Input() mode: any = '';\n  DEFAULT_TIME = DEFAULT_TIME;\n  todayDate = new Date();\n  dateObjectData = new Date();\n  timeData = DEFAULT_TIME;\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  enterValueFirst(event: any, actionType: string) {\n    if (this.id !== 0 && this.id !== 1 && this.id !== 5) {\n      this.enterValue(this.occurrenceFirst, actionType);\n      return;\n    }\n    if (\n      !Number.isNaN(Number(this.occurrenceFirst)) &&\n      this.occurrenceFirst !== 0 &&\n      Number(this.occurrenceFirst) > 0\n    ) {\n      this.occurrenceFirst = Number(this.occurrenceFirst);\n      this.valueChangedFirst.emit({\n        type: actionType,\n        value: Number(this.occurrenceFirst),\n        pageName: '',\n      });\n    } else {\n      this.occurrenceFirst = 1;\n    }\n  }\n\n  enterValue(event: any, actionType: any) {\n    if (\n      !Number.isNaN(Number(event)) &&\n      event !== 0 &&\n      Number(event) > 0 &&\n      Number(event) < 32\n    ) {\n      this.occurrenceFirst = Number(event);\n      this.valueChangedFirst.emit({\n        type: actionType,\n        value: Number(event),\n        pageName: '',\n      });\n    } else {\n      this.occurrenceFirst = new Date().getDate();\n    }\n  }\n\n  getToday(): string {\n    return moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')?.split(' ')[0];\n  }\n\n  onTimeChanged(event: string) {\n    try {\n      this.timeData = event;\n      if (typeof this.dateObjectData == 'object') {\n        this.dateObjectData = moment(this.dateObjectData)?.toDate();\n      }\n      let timeStamp = moment(\n        this.dateObjectData.getDate() +\n          '-' +\n          (this.dateObjectData.getMonth() + 1) +\n          '-' +\n          this.dateObjectData.getFullYear() +\n          ' ' +\n          this.timeData,\n        'DD-MM-YYYY hh:mm a'\n      ).unix();\n      if (Date.now() / 1000 > timeStamp) {\n        this.nextDisable.emit(true);\n      } else {\n        this.nextDisable.emit(false);\n      }\n      this.timeChanged.emit(event);\n    } catch (e) {\n      console.error(e);\n    }\n  }\n\n  enterYearDay(event: any) {\n    if (\n      !Number.isNaN(Number(this.yearlyDay)) &&\n      this.yearlyDay !== 0 &&\n      Number(this.yearlyDay) > 0 &&\n      Number(this.yearlyDay) < 32\n    ) {\n      this.yearlyDateChanged.emit(this.yearlyDay);\n    } else {\n      this.yearlyDay = new Date().getDate();\n    }\n  }\n  timeSelection(event: any) {\n    const selectedValue = event.selectedValue;\n    this.onTimeChanged(selectedValue);\n  }\n}\n","<div *ngIf=\"mode !== 'policy'\" class=\"frequency-top\">\n  <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n    DUE DATE FREQUENCY:\n  </div>\n  <div class=\"frequency-top-box vx-p-3 vx-d-flex vx-align-center\">\n    <div class=\"vx-fs-13 vx-paragraph-txt\">\n      {{ id === 0 || id === 1 || id === 5 ? \"Every\" : \"Day\" }}\n    </div>\n    <input\n      type=\"number\"\n      [id]=\"'occurrence' + id\"\n      [(ngModel)]=\"occurrenceFirst\"\n      class=\"countNum\"\n      onkeydown=\"return event.keyCode !== 190\"\n      min=\"0\"\n      oninput=\"this.value = Math.abs(this.value)\"\n      (focusout)=\"enterValueFirst($event, 'occurrenceFirst')\"\n    />\n    <div *ngIf=\"frequencyType === 0\" class=\"vx-fs-13 vx-paragraph-txt vx-mr-3\">\n      {{ occurrenceFirst > 1 ? \"days\" : \"day\" }} by\n    </div>\n    <div *ngIf=\"frequencyType === 1\" class=\"vx-fs-13 vx-paragraph-txt vx-mr-3\">\n      {{ occurrenceFirst > 1 ? \"weeks\" : \"week\" }} by\n    </div>\n    <div\n      *ngIf=\"id !== 0 && id !== 1 && id !== 5\"\n      class=\"vx-fs-13 vx-paragraph-txt vx-mr-3\"\n    >\n      by\n    </div>\n\n    <ng-container *ngIf=\"frequencyType === 2\">\n      <div class=\"vx-fs-13 vx-paragraph-txt\">\n        {{ occurrenceFirst > 1 ? \"years\" : \"year\" }} on day\n      </div>\n      <input\n        class=\"countNum\"\n        type=\"number\"\n        [id]=\"'occurrence-day' + id\"\n        [(ngModel)]=\"yearlyDay\"\n        (focusout)=\"enterYearDay($event)\"\n        onkeydown=\"return event.keyCode !== 190\"\n        min=\"0\"\n        oninput=\"this.value = Math.abs(this.value)\"\n      />\n      <div class=\"vx-fs-13 vx-paragraph-txt vx-mr-3\">by</div>\n    </ng-container>\n\n    <div class=\"time-picker-group vx-d-flex\">\n      <div\n        class=\"time-field\"\n        appPopover\n        (click)=\"timePicker.popover()\"\n        placement=\"right\"\n      >\n        <input class=\"input\" [placeholder]=\"inputTime\" readonly />\n        <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\n          <i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe955;</i>\n        </div>\n      </div>\n      <app-popover #timePicker [dontCloseonClick]=\"true\">\n        <app-time-picker\n          [time]=\"inputTime\"\n          (onTimeSelection)=\"\n            timeSelection($event); timePicker.closePopover('top')\n          \"\n        ></app-time-picker>\n      </app-popover>\n    </div>\n  </div>\n</div>\n\n<!-- For Policy -->\n\n<div *ngIf=\"mode === 'policy'\" class=\"frequency-top\">\n  <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n    DUE DATE FREQUENCY:\n  </div>\n  <div class=\"frequency-top-box vx-p-3 vx-d-flex vx-align-center\">\n    <div class=\"vx-fs-13 vx-paragraph-txt\">\n      {{ id === 0 || id === 1 || id === 5 ? \"Every\" : \"Day\" }}\n    </div>\n    <input\n      type=\"number\"\n      [id]=\"'occurrence' + id\"\n      [(ngModel)]=\"occurrenceFirst\"\n      class=\"countNum\"\n      onkeydown=\"return event.keyCode !== 190\"\n      min=\"0\"\n      oninput=\"this.value = Math.abs(this.value)\"\n      (focusout)=\"enterValueFirst($event, 'occurrenceFirst')\"\n    />\n    <div *ngIf=\"frequencyType === 0\" class=\"vx-fs-13 vx-paragraph-txt vx-mr-3\">\n      {{ occurrenceFirst > 1 ? \"days\" : \"day\" }} by\n    </div>\n    <div *ngIf=\"frequencyType === 1\" class=\"vx-fs-13 vx-paragraph-txt vx-mr-3\">\n      {{ occurrenceFirst > 1 ? \"weeks\" : \"week\" }} by\n    </div>\n    <div\n      *ngIf=\"id !== 0 && id !== 1 && id !== 5\"\n      class=\"vx-fs-13 vx-paragraph-txt vx-mr-3\"\n    >\n      by\n    </div>\n\n    <ng-container *ngIf=\"frequencyType === 2\">\n      <div class=\"vx-fs-13 vx-paragraph-txt\">\n        {{ occurrenceFirst > 1 ? \"years\" : \"year\" }} on day\n      </div>\n      <input\n        class=\"countNum\"\n        type=\"number\"\n        [id]=\"'occurrence-day' + id\"\n        [(ngModel)]=\"yearlyDay\"\n        (focusout)=\"enterYearDay($event)\"\n        onkeydown=\"return event.keyCode !== 190\"\n        min=\"0\"\n        oninput=\"this.value = Math.abs(this.value)\"\n      />\n      <div class=\"vx-fs-13 vx-paragraph-txt vx-mr-3\">by</div>\n    </ng-container>\n\n    <div class=\"time-picker-group vx-d-flex\">\n      <div\n        class=\"time-field\"\n        appPopover\n        (click)=\"policyTimePicker.popover()\"\n        placement=\"right\"\n      >\n        <input\n          class=\"input\"\n          type=\"text\"\n          [id]=\"'time-picker-input-top' + id\"\n          [(ngModel)]=\"inputTime\"\n          readonly\n          placeholder=\"Select Time\"\n        />\n        <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\n          <i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe955;</i>\n        </div>\n      </div>\n      <app-popover #policyTimePicker [dontCloseonClick]=\"true\">\n        <app-time-picker\n          [time]=\"inputTime\"\n          (onTimeSelection)=\"\n            timeSelection($event); policyTimePicker.closePopover('top')\n          \"\n        ></app-time-picker>\n      </app-popover>\n    </div>\n  </div>\n</div>\n","export const lifecycleText: any = {\n  responsibility: {\n    header: 'SET A LIFECYCLE FOR THIS RESPONSIBILITY:',\n  },\n  policy: {\n    header: 'SPECIFY A START DATE:',\n  },\n  reviewerFrequency: {\n    header: 'SPECIFY A START DATE:',\n  },\n};\n","import {\n  Component,\n  OnInit,\n  ViewChild,\n  Input,\n  Output,\n  EventEmitter,\n  SimpleChanges,\n  OnChanges,\n  HostListener,\n  ElementRef,\n} from '@angular/core';\nimport { DatePickerComponent, SingleCalendarValue } from 'ng2-date-picker';\nimport moment from 'moment/moment';\nimport { FrequencyService } from '../frequency.service';\nimport { lifecycleText } from './lifecycl.constant';\nimport dayjs from 'dayjs';\n\n@Component({\n  selector: 'app-frequency-lifecycle',\n  templateUrl: './frequency-lifecycle.component.html',\n  styleUrls: ['./frequency-lifecycle.component.less'],\n})\nexport class FrequencyLifecycleComponent implements OnInit, OnChanges {\n  @ViewChild('startDatePicker') startDatePicker!: DatePickerComponent;\n  @ViewChild('endDatePicker') endDatePicker!: DatePickerComponent;\n\n  datePickerOverlay = false;\n  showDateError = false;\n  startDateUnix = Date.now();\n  endDateObject: any;\n  startDateConfig: any;\n  endDateConfig: any;\n  textDetails: any;\n  selectedEndDate: any;\n\n  // All input variable\n  @Input() startDate = new Date();\n  @Input() endDate = moment(new Date(this.startDate).getTime() + 86400000);\n  @Input() endBy: any;\n  @Input() occurrance = 10;\n  @Input() selectedLifecycleType = 2; // 0 = End by ,  End After, 2 = perpetual\n  @Input() id = 0;\n  @Input() mode: any;\n\n  //  lifecycle output\n  @Output() selectedOccurance = new EventEmitter<any>();\n\n  @ViewChild('startDatePicker', { read: ElementRef, static: false })\n  startDatePickerPopup!: ElementRef;\n  @ViewChild('endDatePicker', { read: ElementRef, static: false })\n  endDatePickerPopup!: ElementRef;\n\n  openedDatePicker: string = '';\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.textDetails = lifecycleText[this.mode];\n    this.startDateConfig = Object.assign({\n      ...this.frequencyService.dateConfig,\n    });\n    this.endDateConfig = Object.assign({ ...this.frequencyService.dateConfig });\n    this.startDateConfig['min'] = this.frequencyService.formatDate();\n    //this.startDateUnix = this.startDate.getDate().toString()\n    this.endDateConfig['min'] = moment(\n      new Date(new Date(this.startDate).getTime() + 86400000)\n    );\n    this.getEndDate(this.startDate);\n    this.changeEndDateObj(this.endDate);\n  }\n\n  getEndDate(event: any) {\n    const time = moment(this.endDate).format('DD-MM-YYYY HH:mm:ss');\n    const getUnixTime = moment(\n      time.split(' ')[0] + ' 00:00:00',\n      'DD-MM-YYYY HH:mm:ss'\n    ).unix();\n    this.startDateUnix = moment(event).unix();\n    if (this.startDateUnix >= getUnixTime) {\n      this.endDate = moment(new Date(this.startDate).getTime() + 86400000);\n    } else {\n      this.endDate = moment(this.endDate);\n    }\n  }\n\n  changeEndDateObj(date: any) {\n    this.endDateObject = new Date(moment(date).unix() * 1000);\n    this.selectedEndDate = moment(this.endDate).unix();\n  }\n\n  ngOnChanges(change: SimpleChanges) {\n    this.endBy = moment(this.endDate)\n      .format('DD-MMMM-YYYYTHH:mm:ssZ')\n      .split('T')[0];\n  }\n\n  openDatePicker() {\n    const newDate = dayjs(this.startDate);\n    this.startDatePicker?.api?.open();\n    this.startDatePicker?.api?.moveCalendarTo(newDate);\n    this.datePickerOverlay = true;\n    this.openedDatePicker = 'START_DATE';\n  }\n  openDatePicker1() {\n    const newDate = moment(this.endDate);\n    this.endDatePicker?.api?.open();\n    this.endDatePicker?.api?.moveCalendarTo(this.endDate as SingleCalendarValue);\n    this.openedDatePicker = 'END_DATE';\n    this.datePickerOverlay = true;\n  }\n  closeDatepicker() {\n    this.startDatePicker?.api?.close();\n    this.endDatePicker?.api?.close();\n    this.datePickerOverlay = false;\n  }\n\n  // lifecycle type\n  typeSelected(event: any) {\n    this.selectedLifecycleType = event;\n    this.selectedOccurance.emit({\n      type: event,\n      endsBy: this.endBy,\n      endafter: this.occurrance,\n      startFrom: this.startDateUnix,\n    });\n    return this.selectedLifecycleType;\n  }\n\n  // ends after selection\n  endsAfter(event: any) {\n    if (\n      !Number.isNaN(Number(this.occurrance)) &&\n      this.occurrance !== 0 &&\n      Number(this.occurrance) > 0\n    ) {\n      this.selectedOccurance.emit({\n        type: this.selectedLifecycleType,\n        endsBy: this.endBy,\n        endafter: this.occurrance,\n        startFrom: this.startDateUnix,\n      });\n    } else {\n      this.occurrance = 10;\n    }\n    return this.occurrance;\n  }\n\n  // End by change\n  endByChange(event: any) {\n    this.endDatePicker?.api?.open();\n    this.datePickerOverlay = true;\n    this.endDate = event?.date?.$d;\n    this.selectedEndDate = moment(this.endDate).unix();\n    this.changeEndDateObj(this.endDate);\n    this.endBy = moment(event?.date?.$d).format('DD-MMMM-YYYY');\n    const dateObject = {\n      type: this.selectedLifecycleType,\n      endsBy: this.endBy,\n      endafter: this.occurrance,\n      startFrom: this.startDateUnix,\n    };\n    this.selectedOccurance.emit(dateObject);\n  }\n\n  // start from change event\n  startFromChange(event: any) {\n    this.startDateUnix = moment(event?.date?.$d).unix();\n    if (this.startDateUnix >= this.selectedEndDate) {\n      this.endDate = moment(this.startDateUnix * 1000 + 86400000);\n\n      this.changeEndDateObj(this.endDate);\n      this.endBy = moment(this.endDate)\n        .format('DD-MMMM-YYYYTHH:mm:ssZ')\n        .split('T')[0];\n    }\n    this.endDateConfig['min'] = Object.assign(\n      moment(new Date(new Date(event?.date?.$d).getTime() + 86400000))\n    );\n    this.selectedOccurance.emit({\n      type: this.selectedLifecycleType,\n      endsBy: this.endBy,\n      endafter: this.occurrance,\n      startFrom: this.startDateUnix,\n    });\n  }\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const targetElement = event?.target as Element;\n    const fromDateInputElement =\n      document.getElementById(this.openedDatePicker.toLowerCase()) || null;\n\n    const datePickerCalendarContainer = document.getElementsByClassName(\n      'dp-day-calendar-container'\n    )[0];\n    const monthYearElement = document.querySelector(\n      '.dp-month-calendar-container'\n    );\n    const isNotMonthYearElement = !monthYearElement?.contains(targetElement);\n\n    const openedElement =\n      this.openedDatePicker === 'START_DATE'\n        ? this.startDatePickerPopup\n        : this.endDatePickerPopup;\n    const isOutsideFromDateInput =\n      !openedElement?.nativeElement?.contains(targetElement);\n    const isNotFromDateElement = event?.target !== fromDateInputElement;\n    const isNotInsideCalendar =\n      !datePickerCalendarContainer?.contains(targetElement);\n    const selectedDatePicker =\n      this.openedDatePicker === 'START_DATE'\n        ? this.startDatePicker\n        : this.endDatePicker;\n\n    const isNotCalendarMonth =\n      !targetElement.className.includes('dp-calendar-month');\n\n    if (\n      isOutsideFromDateInput &&\n      isNotFromDateElement &&\n      isNotInsideCalendar &&\n      isNotCalendarMonth &&\n      isNotMonthYearElement &&\n      datePickerCalendarContainer\n    ) {\n      this.documentClickListener(\n        event?.target,\n        openedElement,\n        selectedDatePicker\n      );\n    }\n  }\n\n  documentClickListener(\n    target: any,\n    openedElements: ElementRef,\n    selectedDatePicker: any\n  ): void {\n    if (\n      !openedElements?.nativeElement?.contains(target) &&\n      selectedDatePicker?.areCalendarsShown\n    ) {\n      selectedDatePicker?.api?.close();\n      this.datePickerOverlay = false;\n    }\n  }\n}\n","<div class=\"frequency-lifecycle-responsibility vx-mt-5\">\n  <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n    {{ textDetails?.header }}\n  </div>\n  <div\n    class=\"frequency-lifecycle-responsibility-inner vx-p-3 vx-pt-2 vx-d-flex vx-align-center vx-justify-between\"\n  >\n    <div\n      class=\"frequency-lifecycle-responsibility-item\"\n      [class.with-policy]=\"mode === 'policy' || mode === 'reviewerFrequency'\"\n    >\n      <div class=\"vx-d-block\">\n        <div\n          *ngIf=\"mode === 'responsibility'\"\n          class=\"heading vx-fs-12 vx-label-txt vx-mb-1\"\n        >\n          Starts From\n        </div>\n        <div class=\"lifecycle-box vx-d-flex vx-align-center vx-p-2\">\n          <i class=\"icons vx-fs-16 vx-paragraph-txt vx-mr-3\">&#xe996;</i>\n          <input\n            class=\"start-date-input\"\n            type=\"text\"\n            [value]=\"startDate | date : 'dd MMM yyyy'\"\n            [placeholder]=\"startDate | date : 'dd MMM yyyy'\"\n            readonly\n            (click)=\"openDatePicker(); datePickerOverlay = true\"\n            id=\"start_date\"\n          />\n        </div>\n      </div>\n    </div>\n    <div\n      *ngIf=\"mode === 'responsibility'\"\n      class=\"frequency-lifecycle-responsibility-item\"\n    >\n      <div class=\"item-inner vx-d-block\">\n        <div class=\"heading vx-fs-12 vx-label-txt vx-mb-1\">Ends By</div>\n        <app-cs-radio\n          [checked]=\"selectedLifecycleType == 0\"\n          (checkedEvent)=\"typeSelected(0)\"\n        >\n          <div class=\"date-field\">\n            <i class=\"icons calendar-icon vx-fs-16 vx-paragraph-txt\"\n              >&#xe92d;</i\n            >\n            <input\n              type=\"text\"\n              [value]=\"endDateObject | date : 'dd MMM yyyy'\"\n              [placeholder]=\"endDateObject | date : 'dd MMM yyyy'\"\n              readonly\n              (click)=\"openDatePicker1(); datePickerOverlay = true\"\n              id=\"end_date\"\n            />\n          </div>\n        </app-cs-radio>\n      </div>\n    </div>\n    <div\n      *ngIf=\"mode === 'responsibility'\"\n      class=\"frequency-lifecycle-responsibility-item\"\n    >\n      <div class=\"item-inner vx-d-block\">\n        <div class=\"heading vx-fs-12 vx-label-txt vx-mb-1\">Ends After</div>\n        <app-cs-radio\n          [checked]=\"selectedLifecycleType == 1\"\n          (checkedEvent)=\"typeSelected(1)\"\n        >\n          <input\n            class=\"input-field\"\n            type=\"number\"\n            [(ngModel)]=\"occurrance\"\n            (focusout)=\"endsAfter($event)\"\n            onkeydown=\"return event.keyCode !== 190\"\n            min=\"0\"\n            oninput=\"this.value = Math.abs(this.value)\"\n          />\n          <span class=\"vx-fs-11 vx-paragraph-txt vx-ml-2\">Occurrences</span>\n        </app-cs-radio>\n      </div>\n    </div>\n    <div\n      *ngIf=\"mode === 'responsibility'\"\n      class=\"frequency-lifecycle-responsibility-item\"\n    >\n      <div class=\"item-inner vx-d-block\">\n        <div class=\"heading vx-fs-12 vx-label-txt vx-mb-1\">Ongoing</div>\n        <app-cs-radio\n          [checked]=\"selectedLifecycleType == 2\"\n          (checkedEvent)=\"typeSelected(2)\"\n        >\n          <span class=\"vx-fs-11 vx-paragraph-txt vx-ml-2\"\n            >The responsibility will perpetually exist.</span\n          >\n        </app-cs-radio>\n      </div>\n    </div>\n  </div>\n</div>\n\n<!-- start date date picker -->\n<dp-date-picker\n  #startDatePicker\n  [id]=\"'start-date-' + id\"\n  [placeholder]=\"startDate | date : 'dd MMM yyyy'\"\n  [(ngModel)]=\"startDate\"\n  [config]=\"startDateConfig\"\n  (onSelect)=\"\n    openDatePicker();\n    startFromChange($event);\n    showDateError = false;\n    datePickerOverlay = false\n  \"\n></dp-date-picker>\n<div\n  class=\"vx-overlay\"\n  (click)=\"closeDatepicker()\"\n  *ngIf=\"datePickerOverlay\"\n></div>\n\n<!-- end date date picker -->\n<dp-date-picker\n  #endDatePicker\n  [(ngModel)]=\"endDate\"\n  [placeholder]=\"endDateObject | date : 'dd MMM yyyy'\"\n  [id]=\"'end-by-input-' + id\"\n  [config]=\"endDateConfig\"\n  [minDate]=\"endDateConfig['min']\"\n  (onSelect)=\"\n    endByChange($event); showDateError = false; datePickerOverlay = false\n  \"\n></dp-date-picker>\n<div\n  class=\"vx-overlay\"\n  (click)=\"closeDatepicker()\"\n  *ngIf=\"datePickerOverlay\"\n></div>\n","export const textInfo: any = {\n  responsibility: {\n    windowOpen: 'COMPLETION WINDOW OPENS:',\n    extension: 'EXTENSION:',\n    windowCloses: 'COMPLETION WINDOW CLOSES:',\n    keys: 'completed',\n  },\n  policy: {\n    windowOpen: 'ATTESTATION WINDOW OPENS:',\n    extension: 'EXTENSION:',\n    windowCloses: 'ATTESTATION WINDOW CLOSES:',\n    keys: 'attested',\n  },\n\n  reviewerFrequency: {\n    windowOpen: 'REVIEW WINDOW OPENS:',\n    extension: 'EXTENSION:',\n    windowCloses: 'REVIEW WINDOW CLOSES:',\n    keys: 'reviewed',\n  },\n};\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { textInfo } from './due-date.contant';\n\n@Component({\n  selector: 'app-frequency-due-date',\n  templateUrl: './frequency-due-date.component.html',\n  styleUrls: ['./frequency-due-date.component.less'],\n})\nexport class FrequencyDueDateComponent implements OnInit {\n  constructor() {}\n  @Input() mode = '';\n\n  defaultWindow: number = 0;\n  defaultFailed: number = 0;\n  defaultDeactivate: number = 0;\n  type: string = this.mode;\n\n  @Input() pageType: 'responsibility' | 'policy' = 'responsibility';\n  @Input() completedRequired = true; // when completed required\n  @Input() notCompletedRequired = true; // when not completed required\n  @Input() completedValue = 2; // take input for completed\n  @Input() notCompletedValue = 2; // take input for not completed\n  @Input() deactivateValue = 15;\n  @Input() isDeactivated = false;\n  @Input() id = 0;\n  @Input() pageName = '';\n\n  dueDateText: any;\n\n  @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n  ngOnInit(): void {\n    this.dueDateText = textInfo[this.mode];\n    if (this.mode === 'reviewerFrequency') {\n      this.type = 'review';\n    } else {\n      this.type = this.mode;\n    }\n  }\n\n  onValueChange(event: any, actionType: any) {\n    if (\n      !Number.isNaN(Number(event.target.value)) &&\n      parseInt(event.target.value) > -1\n    ) {\n      this.valueChange.emit({\n        type: actionType,\n        value: Number(event.target.value),\n        pageName: this.pageName,\n      });\n    } else {\n      if (actionType === 'completed') {\n        this.completedValue = this.defaultWindow;\n      } else if (actionType === 'not completed') {\n        this.notCompletedValue = this.defaultFailed;\n      } else if (actionType === 'deactivated') {\n        this.deactivateValue = this.defaultDeactivate;\n      }\n    }\n  }\n}\n","<div\n  *ngIf=\"['responsibility', 'policy', 'reviewerFrequency'].includes(mode)\"\n  class=\"frequency-bottom\"\n>\n  <div *ngIf=\"completedRequired\" class=\"frequency-bottom-item vx-mt-5\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n      {{ dueDateText.windowOpen }}\n    </div>\n    <div\n      class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\n    >\n      The {{ pageType }} can be {{ dueDateText?.keys }} on the due date and\n      <input\n        class=\"countNum\"\n        [id]=\"'complete-' + id\"\n        type=\"number\"\n        [(ngModel)]=\"completedValue\"\n        (change)=\"onValueChange($event, 'completed')\"\n        onkeydown=\"return event.keyCode !== 190\"\n        min=\"0\"\n        oninput=\"this.value = Math.abs(this.value)\"\n      />\n      {{ completedValue < 2 ? \"day\" : \"days\" }}\n      <span class=\"vx-fw-500\">before</span> the due date. Where this occurs,\n      this will show as the\n      {{ mode === \"reviewerFrequency\" ? \"policy\" : type }} being\n      <span class=\"completed-text vx-fw-500\"\n        >{{ dueDateText?.keys }} on time</span\n      >.\n    </div>\n  </div>\n\n  <div *ngIf=\"notCompletedRequired\" class=\"frequency-bottom-item vx-mt-5\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n      {{ dueDateText.extension }}\n    </div>\n    <div\n      class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\n    >\n      The {{ pageType }} can be {{ dueDateText?.keys }}\n      <input\n        class=\"countNum\"\n        type=\"number\"\n        [id]=\"'not-completed-' + id\"\n        [(ngModel)]=\"notCompletedValue\"\n        (change)=\"onValueChange($event, 'not completed')\"\n        onkeydown=\"return event.keyCode !== 190\"\n        min=\"0\"\n        oninput=\"this.value = Math.abs(this.value)\"\n      />\n      {{ notCompletedValue < 2 ? \"day\" : \"days\" }}\n      <span class=\"vx-fw-500\">after</span> the due date. Where this occurs, this\n      will show as the\n      {{ mode === \"reviewerFrequency\" ? \"policy\" : type }} being\n      <span class=\"delay-text vx-fw-500\"\n        >{{ dueDateText?.keys }} with delay</span\n      >.\n    </div>\n  </div>\n\n  <div *ngIf=\"notCompletedRequired\" class=\"frequency-bottom-item vx-mt-5\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n      {{ dueDateText.windowCloses }}\n    </div>\n    <div\n      class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\n    >\n      The {{ pageType }} cannot be {{ dueDateText?.keys }}\n      <span class=\"vx-fw-500 vx-label-txt\">{{ notCompletedValue }}</span>\n      {{ notCompletedValue < 2 ? \"day\" : \"days\" }}\n      <span class=\"vx-fw-500\">after</span> the due date. Where this occurs, this\n      will show as the {{ type }} being\n      <span class=\"notcompleted-text vx-fw-500\"\n        >not\n        {{\n          dueDateText?.keys === \"reviewed\" ? \"completed\" : dueDateText?.keys\n        }}</span\n      >.\n    </div>\n  </div>\n\n  <!-- TODO: Uncomment this once the deactivation is implemented -->\n  <!-- <div\n    *ngIf=\"isDeactivated && mode === 'responsibility'\"\n    class=\"frequency-bottom-item vx-mt-5\"\n  >\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n      AUTOMATIC DEACTIVATE:\n    </div>\n    <div\n      class=\"frequency-bottom-item-box vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\"\n    >\n      This {{ type }} will be automatically deactivated, if it is not\n      {{ dueDateText?.keys }}\n      for\n      <input\n        class=\"countNum\"\n        type=\"number\"\n        [id]=\"'deactivate' + id\"\n        [(ngModel)]=\"deactivateValue\"\n        (change)=\"onValueChange($event, 'deactivated')\"\n        onkeydown=\"return event.keyCode !== 190\"\n        min=\"0\"\n        oninput=\"this.value = Math.abs(this.value)\"\n      />\n      consecutive due dates.\n    </div>\n  </div> -->\n</div>\n\n<!-- For Policy -->\n<div class=\"frequency-due-date\" *ngIf=\"mode == 'policy' && false\">\n  <div *ngIf=\"completedRequired\" class=\"frequency-due-date-row\">\n    <p>The policy can be <i class=\"completed\">attested</i></p>\n    <input\n      [id]=\"'complete-' + id\"\n      type=\"number\"\n      [(ngModel)]=\"completedValue\"\n      (change)=\"onValueChange($event, 'completed')\"\n      onkeydown=\"return event.keyCode !== 190\"\n      min=\"0\"\n      oninput=\"this.value = Math.abs(this.value)\"\n    />\n    <p>{{ completedValue < 2 ? \"day\" : \"days\" }} before the due date.</p>\n  </div>\n  <div *ngIf=\"notCompletedRequired\" class=\"frequency-due-date-row\">\n    <p>The policy attestation will <i>fail</i></p>\n    <input\n      type=\"number\"\n      [id]=\"'not-completed-' + id\"\n      [(ngModel)]=\"notCompletedValue\"\n      (change)=\"onValueChange($event, 'not completed')\"\n      onkeydown=\"return event.keyCode !== 190\"\n      min=\"0\"\n      oninput=\"this.value = Math.abs(this.value)\"\n    />\n    <p>\n      {{ notCompletedValue < 2 ? \"day\" : \"days\" }} after the due date if it is\n      not completed.\n    </p>\n  </div>\n</div>\n<div class=\"frequency-due-date\" *ngIf=\"mode == 'reviewerFrequency' && false\">\n  <div *ngIf=\"completedRequired\" class=\"frequency-due-date-row\">\n    <p>The policy can be <i class=\"completed\">reviewed</i></p>\n    <input\n      [id]=\"'complete-' + id\"\n      type=\"number\"\n      [(ngModel)]=\"completedValue\"\n      (change)=\"onValueChange($event, 'completed')\"\n      onkeydown=\"return event.keyCode !== 190\"\n      min=\"0\"\n      oninput=\"this.value = Math.abs(this.value)\"\n    />\n    <p>{{ completedValue < 2 ? \"day\" : \"days\" }} before the review date.</p>\n  </div>\n  <div *ngIf=\"notCompletedRequired\" class=\"frequency-due-date-row\">\n    <p>The policy review will <i>fail</i></p>\n    <input\n      type=\"number\"\n      [id]=\"'not-completed-' + id\"\n      [(ngModel)]=\"notCompletedValue\"\n      (change)=\"onValueChange($event, 'not completed')\"\n      onkeydown=\"return event.keyCode !== 190\"\n      min=\"0\"\n      oninput=\"this.value = Math.abs(this.value)\"\n    />\n    <p>\n      {{ notCompletedValue < 2 ? \"day\" : \"days\" }} after the review date if it\n      is not completed.\n    </p>\n  </div>\n</div>\n","import {\n  Component,\n  OnInit,\n  ViewChild,\n  Input,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport { DatePickerComponent } from 'ng2-date-picker';\n//import { FrequencyService } from '../frequency.service';\nimport moment from 'moment/moment';\nimport { FrequencyService } from '../frequency.service';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\n\n@Component({\n  selector: 'app-frequency-daily',\n  templateUrl: './frequency-daily.component.html',\n  styleUrls: ['./frequency-daily.component.less'],\n})\nexport class FrequencyDailyComponent implements OnInit {\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  @Input() mode: any = '';\n\n  datepickerOverlay = false;\n  //#region daily frequency start\n  dailyInterval = DEFAULT_TIME;\n  dailyInput = 1;\n  dailyFailed = 1;\n  dailyLifeCycleStart = new Date();\n  dailyLifeCycleEndTime = new Date(\n    this.dailyLifeCycleStart.getTime() + 86400000\n  );\n  dailyLifecycleOccurance = 10;\n  dailySeletedLifecycleType = 2;\n  dailyDeactivatedValue = 15;\n  frequencyInfo: any;\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Input() frequencyData: any;\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() pageType: 'responsibility' | 'policy' = 'responsibility';\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    if (\n      this.frequencyData.pattern != '' &&\n      parseInt(this.frequencyData.pattern.split('~')[0]) === 1\n    ) {\n      this.populateFrequency();\n    }\n\n    this.getDailyFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData.pattern.split('~').map(Number);\n    const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\n    this.dailyInterval = this.frequencyData.failedTime;\n    this.dailyInput = patternInfo[3];\n    if (Number(lifecycleInfo[1]) > 0) {\n      this.dailyLifecycleOccurance = Number(lifecycleInfo[1]);\n    }\n\n    this.startDate = this.frequencyData.startDate;\n    this.dailyLifeCycleStart = new Date(this.frequencyData.startDate * 1000);\n    this.dailyFailed = this.frequencyData.failed;\n    this.dailyDeactivatedValue = this.frequencyData.continuous_failed_days;\n    if (lifecycleInfo[0] !== '0000-00-00') {\n      const dateSelected = moment(\n        lifecycleInfo[0] + ' ' + DEFAULT_TIME,\n        'DD-MMMM-YYYY HH:mm a'\n      ).unix();\n      this.dailyLifeCycleEndTime = new Date(dateSelected * 1000);\n    }\n    this.lifecycleDetails = this.frequencyData.lifecycle;\n    if (this.frequencyData.lifecycle == '0000-00-00~~0') {\n      this.dailySeletedLifecycleType = 2;\n    } else if (lifecycleInfo[0] !== '0000-00-00') {\n      this.dailySeletedLifecycleType = 0;\n    } else {\n      this.dailySeletedLifecycleType = 1;\n    }\n  }\n\n  onTimeChanged(event: string, name: string) {\n    this.dailyInterval = event;\n    this.getDailyFrequency();\n  }\n\n  valueChangedFirst(event: any) {\n    this.dailyInput = event.value;\n    this.getDailyFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'deactivated') {\n      this.dailyDeactivatedValue = event.value;\n    } else {\n      this.dailyFailed = event.value;\n    }\n    this.getDailyFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n\n    let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getDailyFrequency();\n  }\n\n  getDailyFrequency() {\n    if (this.dailyInput === 1) {\n      this.frequencyInfo.placeholder = 'Daily by ' + this.dailyInterval;\n    } else if (this.dailyInput > 1) {\n      this.frequencyInfo.placeholder =\n        'Every ' + this.dailyInput + ' days by ' + this.dailyInterval;\n    } else {\n      this.frequencyInfo.placeholder =\n        'Frequency denotes the rate of occurrence of a responsibility.';\n    }\n    this.frequencyInfo.pattern =\n      1 + '~' + '0' + '~' + '0' + '~' + this.dailyInput;\n    this.frequencyInfo.case = 'daily';\n    this.frequencyInfo.failedAfter = this.dailyFailed;\n    this.frequencyInfo.timeIn12hr = this.dailyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.dailyInterval\n    );\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.every = this.dailyInput;\n    this.frequencyInfo.continuous_failed_days = this.dailyDeactivatedValue;\n    this.frequencyInfo.window = 0;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n}\n","<!-- <p>frequency-daily works!</p> -->\n<div class=\"frequency-daily\">\n  <app-frequency-top\n    [id]=\"0\"\n    [inputTime]=\"dailyInterval\"\n    [occurrenceFirst]=\"dailyInput\"\n    [frequencyType]=\"0\"\n    (timeChanged)=\"onTimeChanged($event, 'dailyInterval')\"\n    (valueChangedFirst)=\"valueChangedFirst($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-top>\n  <app-frequency-due-date\n    [pageName]=\"'daily'\"\n    [id]=\"0\"\n    [mode]=\"mode\"\n    [notCompletedValue]=\"dailyFailed\"\n    [deactivateValue]=\"dailyDeactivatedValue\"\n    [isDeactivated]=\"true\"\n    [completedRequired]=\"false\"\n    [pageType]=\"pageType\"\n    (valueChange)=\"onValueChange($event)\"\n  ></app-frequency-due-date>\n  <app-frequency-lifecycle\n    [id]=\"0\"\n    [startDate]=\"dailyLifeCycleStart\"\n    [endDate]=\"dailyLifeCycleEndTime\"\n    [occurrance]=\"dailyLifecycleOccurance\"\n    [selectedLifecycleType]=\"dailySeletedLifecycleType\"\n    (selectedOccurance)=\"lifecycleChange($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-lifecycle>\n</div>\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'app-frequency-checkbox-list',\n  templateUrl: './frequency-checkbox-list.component.html',\n  styleUrls: ['./frequency-checkbox-list.component.less']\n})\nexport class FrequencyCheckboxListComponent implements OnInit {\n\n  @Input() id = -1;\n  @Input() listArray: Array<string> = [];\n  @Input() selectedIndex: Array<number> = [];\n  @Input() mode: any = '';\n  noAnimation = true;\n  \n  @Output() selectedCheckbox = new EventEmitter<any>(); // {checked: true, index:0} checked : checkboxStatus, index: Index of list which checked/unchecked\n\n  constructor() { }\n\n  ngOnInit(): void {\n    setTimeout(() => {\n      this.noAnimation = false;\n    }, 1000);\n  }\n\n}\n","<div class=\"frequency-checkbox vx-d-flex vx-align-center\" [class.year-row]=\"listArray.length === 12\" *ngIf=\"mode !== 'policy'\">\n    <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let eachList of listArray; let i = index;\">\n        <app-cs-checkbox [id]=\"i\" [value]=\"i\" [ngValue]=\"selectedIndex.includes(i)\" (ngValueChange)=\"selectedCheckbox.emit({checked:$event, index:i})\" [disabled]=\"id === 4 && selectedIndex.length == 2 && !selectedIndex.includes(i)\">\n            <span class=\"vx-fs-12 vx-label-txt\">{{eachList}}</span>\n        </app-cs-checkbox>\n    </div>\n</div>\n\n\n\n\n<!-- For Policy -->\n<div class=\"frequency-checkbox vx-d-flex vx-align-center\" [class.year-row]=\"listArray.length === 12\" *ngIf=\"mode === 'policy'\">\n    <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let eachList of listArray; let i = index;\">\n        <app-cs-checkbox [id]=\"i\" [value]=\"i\" [ngValue]=\"selectedIndex.includes(i)\" (ngValueChange)=\"selectedCheckbox.emit({checked:$event, index:i})\" [disabled]=\"id === 4 && selectedIndex.length == 2 && !selectedIndex.includes(i)\">\n            <span class=\"vx-fs-12 vx-label-txt\">{{eachList}}</span>\n        </app-cs-checkbox>\n    </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { FrequencyService } from '../frequency.service';\nimport moment from 'moment/moment';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\n\n@Component({\n  selector: 'app-frequency-weekly',\n  templateUrl: './frequency-weekly.component.html',\n  styleUrls: ['./frequency-weekly.component.less'],\n})\nexport class FrequencyWeeklyComponent implements OnInit {\n  @Input() mode: any = '';\n\n  weeklyInterval = DEFAULT_TIME;\n  weeklyInput = 1;\n  weeklyFailed = 2;\n  weeklyWindow = 2;\n  weeklyLifeCycleStart = new Date();\n  weeklyLifeCycleEndTime = new Date(\n    this.weeklyLifeCycleStart.getTime() + 86400000\n  );\n  weeklyLifecycleOccurance = 10;\n  weeklySeletedLifecycleType = 2;\n  selectedWeekly = [new Date().getDay() == 0 ? 6 : new Date().getDay() - 1];\n  weeklyDeactivatedValue = 10;\n  dayArray: Array<string> = [];\n\n  frequencyInfo: any;\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Input() pageType: 'responsibility' | 'policy' = 'responsibility';\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.dayArray = [...new Set(this.frequencyService.dayName)];\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    if (\n      this.frequencyData.pattern != '' &&\n      parseInt(this.frequencyData.pattern.split('~')[0]) === 2\n    ) {\n      this.populateFrequency();\n    }\n    this.getWeeklyFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData.pattern.split('~');\n    this.selectedWeekly = patternInfo[1]\n      .split(',')\n      .map((ele: any) => Number(ele) - 1);\n    const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\n    this.weeklyInterval = this.frequencyData.failedTime;\n    this.weeklyWindow = this.frequencyData.window;\n    this.weeklyInput = patternInfo[3];\n    if (Number(lifecycleInfo[1]) > 0) {\n      this.weeklyLifecycleOccurance = Number(lifecycleInfo[1]);\n    }\n\n    this.startDate =\n      this.frequencyData.startFrom ?? this.frequencyData.startDate;\n    this.weeklyLifeCycleStart = new Date(\n      (this.frequencyData.startDate ?? this.frequencyData.startDate) * 1000\n    );\n    this.weeklyFailed = this.frequencyData.failed;\n    this.weeklyDeactivatedValue = this.frequencyData.continuous_failed_days;\n    if (lifecycleInfo[0] !== '0000-00-00') {\n      const dateSelected = moment(\n        lifecycleInfo[0] + ' ' + DEFAULT_TIME,\n        'DD-MMMM-YYYY HH:mm a'\n      ).unix();\n      this.weeklyLifeCycleEndTime = new Date(dateSelected * 1000);\n    }\n    this.lifecycleDetails = this.frequencyData.lifecycle;\n    if (this.frequencyData.lifecycle == '0000-00-00~~0') {\n      this.weeklySeletedLifecycleType = 2;\n    } else if (lifecycleInfo[0] !== '0000-00-00') {\n      this.weeklySeletedLifecycleType = 0;\n    } else {\n      this.weeklySeletedLifecycleType = 1;\n    }\n  }\n\n  onTimeChanged(event: string) {\n    this.weeklyInterval = event;\n    this.getWeeklyFrequency();\n  }\n\n  valueChangedFirst(event: any) {\n    this.weeklyInput = event.value;\n    this.getWeeklyFrequency();\n  }\n\n  onDaySelected(event: any) {\n    if (event.checked) {\n      this.selectedWeekly.push(event.index);\n    } else {\n      this.selectedWeekly = this.selectedWeekly.filter(\n        (ele) => ele !== event.index\n      );\n    }\n    this.getWeeklyFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.weeklyLifeCycleStart = new Date(this.startDate * 1000);\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getWeeklyFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'deactivated') {\n      this.weeklyDeactivatedValue = event.value;\n    } else if (event.type === 'completed') {\n      this.weeklyWindow = event.value;\n    } else {\n      this.weeklyFailed = event.value;\n    }\n    this.getWeeklyFrequency();\n  }\n\n  getWeeklyFrequency() {\n    this.selectedWeekly = this.selectedWeekly.sort((n1, n2) => n1 - n2);\n    this.frequencyInfo.placeholder = this.getPlaceholder(\n      Number(this.weeklyInput)\n    );\n    this.frequencyInfo.pattern =\n      2 +\n      '~' +\n      this.selectedWeekly.map((ele) => ele + 1).join(',') +\n      '~' +\n      '0' +\n      '~' +\n      this.weeklyInput;\n    this.frequencyInfo.case = 'weekly';\n    this.frequencyInfo.failedAfter = this.weeklyFailed;\n    this.frequencyInfo.window = this.weeklyWindow;\n    this.frequencyInfo.timeIn12hr = this.weeklyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.weeklyInterval\n    );\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom =\n      this.startDate ?? Math.floor(Date.now() / 1000);\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.every = this.weeklyInput;\n    this.frequencyInfo.selectedDay = this.selectedWeekly.map(ele => ele + 1);\n    this.frequencyInfo.continuous_failed_days = this.weeklyDeactivatedValue;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getPlaceholder(weeklyInput: number) {\n    let placeholder = '';\n    weeklyInput = Number(weeklyInput);\n\n    const selectedDay = this.selectedWeekly.map((ele) => {\n      return this.frequencyService.dayName[ele];\n    });\n    if (weeklyInput === 1) {\n      placeholder =\n        'Every ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\n    }\n    if (weeklyInput === 2) {\n      placeholder =\n        'Every alternate ' +\n        selectedDay.join(', ') +\n        ' by ' +\n        this.weeklyInterval;\n    }\n    if (weeklyInput === 3) {\n      placeholder =\n        'Every 3rd ' + selectedDay.join(', ') + ' by ' + this.weeklyInterval;\n    }\n    if (weeklyInput > 3) {\n      placeholder =\n        'Every ' +\n        this.weeklyInput +\n        'th ' +\n        selectedDay.join(', ') +\n        ' by ' +\n        this.weeklyInterval;\n    }\n    return placeholder;\n  }\n}\n","<!-- <p>frequency-weekly works!</p> -->\n<div class=\"frequency-weekly\">\n  <app-frequency-top\n    [id]=\"1\"\n    [inputTime]=\"weeklyInterval\"\n    [occurrenceFirst]=\"weeklyInput\"\n    [frequencyType]=\"1\"\n    (timeChanged)=\"onTimeChanged($event)\"\n    (valueChangedFirst)=\"valueChangedFirst($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-top>\n  <app-frequency-checkbox-list\n    [id]=\"1\"\n    [listArray]=\"dayArray\"\n    [selectedIndex]=\"selectedWeekly\"\n    (selectedCheckbox)=\"onDaySelected($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-checkbox-list>\n  <app-frequency-due-date\n    [id]=\"1\"\n    [mode]=\"mode\"\n    [pageName]=\"'weekly'\"\n    [deactivateValue]=\"weeklyDeactivatedValue\"\n    [isDeactivated]=\"true\"\n    [completedValue]=\"weeklyWindow\"\n    [notCompletedValue]=\"weeklyFailed\"\n    [pageType]=\"pageType\"\n    (valueChange)=\"onValueChange($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-due-date>\n  <app-frequency-lifecycle\n    [id]=\"1\"\n    [startDate]=\"weeklyLifeCycleStart\"\n    [endDate]=\"weeklyLifeCycleEndTime\"\n    [occurrance]=\"weeklyLifecycleOccurance\"\n    [selectedLifecycleType]=\"weeklySeletedLifecycleType\"\n    (selectedOccurance)=\"lifecycleChange($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-lifecycle>\n</div>\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { FrequencyService } from '../frequency.service';\nimport moment from 'moment/moment';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\n\n@Component({\n  selector: 'app-frequency-monthly',\n  templateUrl: './frequency-monthly.component.html',\n  styleUrls: ['./frequency-monthly.component.less'],\n})\nexport class FrequencyMonthlyComponent implements OnInit {\n  @Input() mode: any = '';\n\n  monthlyInterval = DEFAULT_TIME;\n  monthlyInput = new Date().getDate();\n  monthlyFailed = 5;\n  monthlyWindow = 7;\n\n  monthlyLifeCycleStart = new Date();\n  monthlyLifeCycleEndTime = new Date(\n    this.monthlyLifeCycleStart.getTime() + 86400000\n  );\n  monthlyLifecycleOccurance = 10;\n  monthlySeletedLifecycleType = 2;\n  selectedMonthly = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n  monthlyDeactivatedValue = 10;\n  frequencyInfo: any;\n  monthNameArray: Array<string> = [];\n  shortMonth: Array<string> = [];\n\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Input() pageType: 'responsibility' | 'policy' = 'responsibility';\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.monthNameArray = [...new Set(this.frequencyService.monthArray)];\n    this.shortMonth = this.frequencyService.monthArray.map((month) =>\n      month.substring(0, 3)\n    );\n    if (\n      this.frequencyData.pattern != '' &&\n      parseInt(this.frequencyData.pattern.split('~')[0]) === 3\n    ) {\n      this.populateFrequency();\n    }\n    this.getMonthlyFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData.pattern.split('~');\n    this.selectedMonthly = patternInfo[2]\n      .split(',')\n      .map((ele: any) => Number(ele) - 1);\n    const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\n    this.monthlyInterval = this.frequencyData.failedTime;\n    this.monthlyWindow = this.frequencyData.window;\n    this.monthlyInput = Number(patternInfo[1]);\n    if (Number(lifecycleInfo[1]) > 0) {\n      this.monthlyLifecycleOccurance = Number(lifecycleInfo[1]);\n    }\n\n    this.startDate = this.frequencyData.startDate;\n    this.monthlyLifeCycleStart = new Date(this.frequencyData.startDate * 1000);\n    this.monthlyFailed = this.frequencyData.failed;\n    this.monthlyDeactivatedValue = this.frequencyData.continuous_failed_days;\n    if (lifecycleInfo[0] !== '0000-00-00') {\n      const dateSelected = moment(\n        lifecycleInfo[0] + ' ' + DEFAULT_TIME,\n        'DD-MMMM-YYYY HH:mm a'\n      ).unix();\n      this.monthlyLifeCycleEndTime = new Date(dateSelected * 1000);\n    }\n    this.lifecycleDetails = this.frequencyData.lifecycle;\n    if (this.frequencyData.lifecycle == '0000-00-00~~0') {\n      this.monthlySeletedLifecycleType = 2;\n    } else if (lifecycleInfo[0] !== '0000-00-00') {\n      this.monthlySeletedLifecycleType = 0;\n    } else {\n      this.monthlySeletedLifecycleType = 1;\n    }\n  }\n\n  valueChangedFirst(event: any) {\n    this.monthlyInput = event.value;\n    this.getMonthlyFrequency();\n  }\n\n  onTimeChanged(event: string) {\n    this.monthlyInterval = event;\n    this.getMonthlyFrequency();\n  }\n\n  onMonthSelected(event: any) {\n    if (event.checked) {\n      this.selectedMonthly.push(event.index);\n    } else {\n      this.selectedMonthly = this.selectedMonthly.filter(\n        (ele) => ele !== event.index\n      );\n    }\n    this.getMonthlyFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.monthlyLifeCycleStart = new Date(this.startDate * 1000);\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getMonthlyFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'deactivated') {\n      this.monthlyDeactivatedValue = event.value;\n    } else if (event.type === 'completed') {\n      this.monthlyWindow = event.value;\n    } else {\n      this.monthlyFailed = event.value;\n    }\n    this.getMonthlyFrequency();\n  }\n\n  getMonthlyFrequency() {\n    this.selectedMonthly = this.selectedMonthly.sort((n1, n2) => n1 - n2);\n    const monthIndex = this.selectedMonthly.map((ele) => ele + 1);\n    this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(\n      Number(this.monthlyInput)\n    );\n    this.frequencyInfo.pattern =\n      3 + '~' + this.monthlyInput + '~' + monthIndex + '~' + '0';\n    this.frequencyInfo.case = 'monthly';\n    this.frequencyInfo.failedAfter = this.monthlyFailed;\n    this.frequencyInfo.window = this.monthlyWindow;\n    this.frequencyInfo.timeIn12hr = this.monthlyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.monthlyInterval\n    );\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = Math.floor(\n      this.monthlyLifeCycleStart.getTime() / 1000\n    );\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.selectedMonth = monthIndex.map(ele => ele - 1);\n    this.frequencyInfo.day = this.monthlyInput;\n    this.frequencyInfo.selectedDay = [];\n    this.frequencyInfo.every = undefined;\n    this.frequencyInfo.continuous_failed_days = this.monthlyDeactivatedValue;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getFrequencyPlaceholder(monthlyInput: number) {\n    const selectedMonth = this.selectedMonthly.map((ele) => {\n      return this.shortMonth[ele];\n    });\n    let placeholder = '';\n    if (monthlyInput === 1) {\n      placeholder =\n        '1st of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput === 2) {\n      placeholder =\n        '2nd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput === 3) {\n      placeholder =\n        '3rd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput === 21 || monthlyInput === 31) {\n      placeholder =\n        monthlyInput +\n        'st of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput === 22) {\n      placeholder =\n        monthlyInput +\n        'nd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput === 23) {\n      placeholder =\n        monthlyInput +\n        'rd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    } else if (monthlyInput > 3) {\n      placeholder =\n        monthlyInput +\n        'th of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.monthlyInterval;\n    }\n    return placeholder;\n  }\n}\n","<!-- <p>frequency-monthly works!</p> -->\n<div class=\"frequency-monthly\">\n  <app-frequency-top\n    [id]=\"2\"\n    [inputTime]=\"monthlyInterval\"\n    [occurrenceFirst]=\"monthlyInput\"\n    [frequencyType]=\"3\"\n    (timeChanged)=\"onTimeChanged($event)\"\n    (valueChangedFirst)=\"valueChangedFirst($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-top>\n  <app-frequency-checkbox-list\n    [id]=\"2\"\n    [listArray]=\"monthNameArray\"\n    [selectedIndex]=\"selectedMonthly\"\n    (selectedCheckbox)=\"onMonthSelected($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-checkbox-list>\n  <app-frequency-due-date\n    [id]=\"2\"\n    [mode]=\"mode\"\n    [pageName]=\"'monthly'\"\n    [deactivateValue]=\"monthlyDeactivatedValue\"\n    [isDeactivated]=\"true\"\n    [completedValue]=\"monthlyWindow\"\n    [notCompletedValue]=\"monthlyFailed\"\n    [pageType]=\"pageType\"\n    (valueChange)=\"onValueChange($event)\"\n  ></app-frequency-due-date>\n  <app-frequency-lifecycle\n    [id]=\"2\"\n    [startDate]=\"monthlyLifeCycleStart\"\n    [endDate]=\"monthlyLifeCycleEndTime\"\n    [occurrance]=\"monthlyLifecycleOccurance\"\n    [selectedLifecycleType]=\"monthlySeletedLifecycleType\"\n    (selectedOccurance)=\"lifecycleChange($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-lifecycle>\n</div>\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'app-frequency-radio-list',\n  templateUrl: './frequency-radio-list.component.html',\n  styleUrls: ['./frequency-radio-list.component.less'],\n})\nexport class FrequencyRadioListComponent implements OnInit {\n  @Input() radioList = [];\n  @Input() selectedIndex = -1;\n  @Input() name = '';\n  @Input() mode: any = '';\n  noAnimation = true;\n  @Output() selectedRadio = new EventEmitter();\n  constructor() {}\n\n  ngOnInit(): void {\n    setTimeout(() => {\n      this.noAnimation = false;\n    }, 1000);\n  }\n}\n","<div class=\"frequency-radio vx-d-flex vx-align-center\" [class.year-row]=\"radioList.length === 12\" *ngIf=\"mode !== 'policy'\">\n    <div class=\"frequency-radio-item vx-p-3 vx-d-flex vx-align-center vx-w-100\" *ngFor=\"let eachList of radioList; let i = index;\">\n        <app-cs-radio\n            [id]=\"i\" \n            [value]=\"i\" \n            [name]=\"name\"\n            [checked]=\"(selectedIndex === i)\" \n            (checkedEvent)=\"selectedRadio.emit($event)\">\n            <span class=\"vx-fs-12 vx-label-txt\">{{eachList}}</span>\n        </app-cs-radio>\n    </div>\n</div>\n\n\n\n<!-- For Policy -->\n<div class=\"frequency-radio vx-d-flex vx-align-center\" [class.year-row]=\"radioList.length === 12\" *ngIf=\"mode === 'policy'\">\n    <div class=\"frequency-radio-item vx-p-3 vx-d-flex vx-align-center vx-w-100\" *ngFor=\"let eachList of radioList; let i = index;\">\n        <app-cs-radio\n            [id]=\"i\" \n            [value]=\"i\" \n            [name]=\"name\"\n            [checked]=\"(selectedIndex === i)\" \n            (checkedEvent)=\"selectedRadio.emit($event)\">\n            <span class=\"vx-fs-12 vx-label-txt\">{{eachList}}</span>\n        </app-cs-radio>\n    </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { FrequencyService } from '../frequency.service';\nimport moment from 'moment/moment';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\n\n@Component({\n  selector: 'app-frequency-quarterly',\n  templateUrl: './frequency-quarterly.component.html',\n  styleUrls: ['./frequency-quarterly.component.less'],\n})\nexport class FrequencyQuarterlyComponent implements OnInit {\n  @Input() mode: any = '';\n\n  quarterlyInterval = DEFAULT_TIME;\n  quarterlyInput = new Date().getDate();\n  quarterlyFailed = 5;\n  quarterlyWindow = 7;\n  selectedQuarterly = 1;\n  quarterlyLifeCycleStart = new Date();\n  quarterlyLifeCycleEndTime = new Date(\n    this.quarterlyLifeCycleStart.getTime() + 86400000\n  );\n  quarterlyLifecycleOccurance = 10;\n  quarterlySeletedLifecycleType = 2;\n  quarterlyGroup = [0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11];\n  frequencyInfo: any;\n  quarterlyArray: Array<string> = [];\n\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n  @Input() pageType: 'responsibility' | 'policy' = 'responsibility';\n\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.quarterlyArray = [...new Set(this.frequencyService.quarterlyMonth)];\n    const indexOfMonth = this.quarterlyGroup.indexOf(new Date().getMonth());\n    this.selectedQuarterly =\n      indexOfMonth < 4 ? 0 : indexOfMonth > 3 && indexOfMonth < 8 ? 1 : 2;\n    if (\n      this.frequencyData.pattern != '' &&\n      parseInt(this.frequencyData.pattern.split('~')[0]) === 7\n    ) {\n      this.populateFrequency();\n    }\n    this.getQuarterlyFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData.pattern.split('~');\n    const month = parseInt(patternInfo[2].split(',').map(Number)[0]);\n    const index = this.quarterlyGroup.indexOf(month - 1);\n    this.selectedQuarterly = index < 4 ? 0 : index > 3 && index < 8 ? 1 : 2;\n    const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\n    this.quarterlyInterval = this.frequencyData.failedTime;\n    this.quarterlyWindow = this.frequencyData.window;\n    this.quarterlyInput = patternInfo[1];\n    if (Number(lifecycleInfo[1]) > 0) {\n      this.quarterlyLifecycleOccurance = Number(lifecycleInfo[1]);\n    }\n\n    this.startDate = this.frequencyData.startDate;\n    this.quarterlyLifeCycleStart = new Date(\n      this.frequencyData.startDate * 1000\n    );\n    this.quarterlyFailed = this.frequencyData.failed;\n    if (lifecycleInfo[0] !== '0000-00-00') {\n      const dateSelected = moment(\n        lifecycleInfo[0] + ' ' + DEFAULT_TIME,\n        'DD-MMMM-YYYY HH:mm a'\n      ).unix();\n      this.quarterlyLifeCycleEndTime = new Date(dateSelected * 1000);\n    }\n    this.lifecycleDetails = this.frequencyData.lifecycle;\n    if (this.frequencyData.lifecycle == '0000-00-00~~0') {\n      this.quarterlySeletedLifecycleType = 2;\n    } else if (lifecycleInfo[0] !== '0000-00-00') {\n      this.quarterlySeletedLifecycleType = 0;\n    } else {\n      this.quarterlySeletedLifecycleType = 1;\n    }\n  }\n\n  valueChangedFirst(event: any) {\n    this.quarterlyInput = event.value;\n    this.getQuarterlyFrequency();\n  }\n\n  onTimeChanged(event: string) {\n    this.quarterlyInterval = event;\n    this.getQuarterlyFrequency();\n  }\n\n  selectedMonth(event: any) {\n    this.selectedQuarterly = parseInt(event.target.value);\n    this.getQuarterlyFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getQuarterlyFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.quarterlyWindow = event.value;\n    } else {\n      this.quarterlyFailed = event.value;\n    }\n    this.getQuarterlyFrequency();\n  }\n\n  getQuarterlyFrequency() {\n    let monthSequence =\n      this.selectedQuarterly === 0\n        ? this.quarterlyGroup.slice(0, 4)\n        : this.selectedQuarterly === 1\n        ? this.quarterlyGroup.slice(4, 8)\n        : this.quarterlyGroup.slice(8);\n   this.frequencyInfo.selectedMonth = monthSequence;\n\n    monthSequence = monthSequence.map((ele) => ele + 1);\n    this.frequencyInfo.pattern =\n      7 + '~' + this.quarterlyInput + '~' + monthSequence + '~' + '0';\n    this.frequencyInfo.case = 'quarterly';\n    this.frequencyInfo.failedAfter = this.quarterlyFailed;\n    this.frequencyInfo.window = this.quarterlyWindow;\n    this.frequencyInfo.timeIn12hr = this.quarterlyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.quarterlyInterval\n    );\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.selectedDay = [];\n    this.frequencyInfo.every = undefined;\n    this.frequencyInfo.day = this.quarterlyInput;\n    this.frequencyInfo.selectedMonth = monthSequence.map(ele => ele - 1);\n    this.frequencyInfo.placeholder = this.getPlaceholder(\n      Number(this.quarterlyInput)\n    );\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getPlaceholder(quarterlyInput: number) {\n    let placeholder = '';\n\n    if (quarterlyInput === 1) {\n      placeholder =\n        '1st of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput === 2) {\n      placeholder =\n        '2nd of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput === 3) {\n      placeholder =\n        '3rd of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput === 21 || quarterlyInput === 31) {\n      placeholder =\n        quarterlyInput +\n        'st of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput === 22) {\n      placeholder =\n        quarterlyInput +\n        'nd of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput === 23) {\n      placeholder =\n        quarterlyInput +\n        'rd of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    } else if (quarterlyInput > 3) {\n      placeholder =\n        quarterlyInput +\n        'th of every ' +\n        this.quarterlyArray[this.selectedQuarterly] +\n        ' by ' +\n        this.quarterlyInterval;\n    }\n    return placeholder;\n  }\n}\n","<!-- <p>frequency-quarterly works!</p> -->\n<div class=\"frequency-quarterly\">\n  <app-frequency-top\n    [id]=\"3\"\n    [inputTime]=\"quarterlyInterval\"\n    [occurrenceFirst]=\"quarterlyInput\"\n    [frequencyType]=\"3\"\n    (timeChanged)=\"onTimeChanged($event)\"\n    (valueChangedFirst)=\"valueChangedFirst($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-top>\n  <app-frequency-radio-list\n    [radioList]=\"quarterlyArray\"\n    [selectedIndex]=\"selectedQuarterly\"\n    (selectedRadio)=\"selectedMonth($event)\"\n    [name]=\"'quarter'\"\n    [mode]=\"mode\"\n  ></app-frequency-radio-list>\n  <app-frequency-due-date\n    [id]=\"3\"\n    [mode]=\"mode\"\n    [pageName]=\"'quarterly'\"\n    [isDeactivated]=\"false\"\n    [completedValue]=\"quarterlyWindow\"\n    [notCompletedValue]=\"quarterlyFailed\"\n    [pageType]=\"pageType\"\n    (valueChange)=\"onValueChange($event)\"\n  ></app-frequency-due-date>\n  <app-frequency-lifecycle\n    [id]=\"1\"\n    [startDate]=\"quarterlyLifeCycleStart\"\n    [endDate]=\"quarterlyLifeCycleEndTime\"\n    [occurrance]=\"quarterlyLifecycleOccurance\"\n    [selectedLifecycleType]=\"quarterlySeletedLifecycleType\"\n    (selectedOccurance)=\"lifecycleChange($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-lifecycle>\n</div>\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport moment from 'moment/moment';\nimport { FrequencyService } from '../frequency.service';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\n\n@Component({\n  selector: 'app-frequency-biannual',\n  templateUrl: './frequency-biannual.component.html',\n  styleUrls: ['./frequency-biannual.component.less'],\n})\nexport class FrequencyBiannualComponent implements OnInit {\n  biannualInterval = DEFAULT_TIME;\n  biannualInput = new Date().getDate();\n  biannualFailed = 5;\n  biannualWindow = 30;\n  biannualDay = new Date().getDate();\n  biannualLifeCycleStart = new Date();\n  biannualLifeCycleEndTime = new Date(\n    this.biannualLifeCycleStart.getTime() + 86400000\n  );\n  biannualLifecycleOccurance = 10;\n  biannualSeletedLifecycleType = 2;\n  biannualSelected: Array<number> = [];\n  biannualLifecycle = false;\n  frequencyInfo: any;\n  monthNameArray: Array<string> = [];\n  shortMonth: Array<string> = [];\n  selectedMonthly: Array<number> = [];\n\n  @Input() mode: any = '';\n  @Input() pageType: 'responsibility' | 'policy' = 'responsibility';\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.monthNameArray = [...new Set(this.frequencyService.monthArray)];\n    this.shortMonth = this.frequencyService.monthArray.map((month) =>\n      month.substring(0, 3)\n    );\n    if (\n      this.frequencyData.pattern != '' &&\n      parseInt(this.frequencyData.pattern.split('~')[0]) === 9\n    ) {\n      this.populateFrequency();\n    }\n    this.getBiannualFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData.pattern.split('~');\n    this.biannualSelected = patternInfo[2]\n      .split(',')\n      .map((ele: any) => Number(ele) - 1);\n    const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\n    this.biannualInterval = this.frequencyData.failedTime;\n    this.biannualWindow = this.frequencyData.window;\n    this.biannualInput = patternInfo[1];\n    if (Number(lifecycleInfo[1]) > 0) {\n      this.biannualLifecycleOccurance = Number(lifecycleInfo[1]);\n    }\n\n    this.biannualLifeCycleStart = new Date(this.frequencyData.startDate * 1000);\n    this.biannualFailed = this.frequencyData.failed;\n    if (lifecycleInfo[0] !== '0000-00-00') {\n      const dateSelected = moment(\n        lifecycleInfo[0] + ' ' + DEFAULT_TIME,\n        'DD-MMMM-YYYY HH:mm a'\n      ).unix();\n      this.biannualLifeCycleEndTime = new Date(dateSelected * 1000);\n    }\n    this.lifecycleDetails = this.frequencyData.lifecycle;\n    if (this.frequencyData.lifecycle == '0000-00-00~~0') {\n      this.biannualSeletedLifecycleType = 2;\n    } else if (lifecycleInfo[0] !== '0000-00-00') {\n      this.biannualSeletedLifecycleType = 0;\n    } else {\n      this.biannualSeletedLifecycleType = 1;\n    }\n  }\n\n  onMonthSelected(event: any) {\n    if (event.checked) {\n      this.biannualSelected.push(event.index);\n    } else {\n      this.biannualSelected = this.biannualSelected.filter(\n        (ele) => ele !== event.index\n      );\n    }\n    this.getBiannualFrequency();\n  }\n\n  valueChangedFirst(event: any) {\n    this.biannualInput = event.value;\n    this.getBiannualFrequency();\n  }\n\n  onTimeChanged(event: string) {\n    this.biannualInterval = event;\n    this.getBiannualFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.biannualWindow = event.value;\n    } else {\n      this.biannualFailed = event.value;\n    }\n    this.getBiannualFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getBiannualFrequency();\n  }\n\n  getBiannualFrequency() {\n    this.biannualSelected = this.biannualSelected.sort((n1, n2) => n1 - n2);\n\n    const monthIndex = this.biannualSelected.map((ele) => ele + 1);\n    this.frequencyInfo.pattern =\n      9 + '~' + this.biannualInput + '~' + monthIndex.join(',') + '~0';\n    this.frequencyInfo.case = 'biannual';\n    this.frequencyInfo.failedAfter = this.biannualFailed;\n    this.frequencyInfo.window = this.biannualWindow;\n    this.frequencyInfo.timeIn12hr = this.biannualInterval;\n    this.frequencyInfo.selectedMonth = this.biannualSelected;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.biannualInterval\n    );\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate;\n    this.frequencyInfo.reportId = 0;\n\n    this.frequencyInfo.selectedDay = [];\n    this.frequencyInfo.every = undefined;\n    this.frequencyInfo.day = this.biannualInput;\n    this.frequencyInfo.selectedMonth = monthIndex.map(ele => ele - 1);\n    this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(\n      Number(this.biannualInput)\n    );\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getFrequencyPlaceholder(biannualInput: number) {\n    let placeholder = '';\n    const selectedMonth = this.biannualSelected.map((ele) => {\n      return this.shortMonth[ele];\n    });\n\n    if (biannualInput === 1) {\n      placeholder =\n        '1st of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput === 2) {\n      placeholder =\n        '2nd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput === 3) {\n      placeholder =\n        '3rd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput === 21 || biannualInput === 31) {\n      placeholder =\n        biannualInput +\n        'st of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput === 22) {\n      placeholder =\n        biannualInput +\n        'nd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput === 23) {\n      placeholder =\n        biannualInput +\n        'rd of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    } else if (biannualInput > 3) {\n      placeholder =\n        biannualInput +\n        'th of every ' +\n        selectedMonth.join(', ') +\n        ' by ' +\n        this.biannualInterval;\n    }\n    return placeholder;\n  }\n}\n","<!-- <p>frequency-biannual works!</p> -->\n<div class=\"frequency-biannual\">\n  <app-frequency-top\n    [id]=\"4\"\n    [inputTime]=\"biannualInterval\"\n    [occurrenceFirst]=\"biannualInput\"\n    [frequencyType]=\"4\"\n    (timeChanged)=\"onTimeChanged($event)\"\n    (valueChangedFirst)=\"valueChangedFirst($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-top>\n  <app-frequency-checkbox-list\n    [id]=\"4\"\n    [listArray]=\"monthNameArray\"\n    [selectedIndex]=\"biannualSelected\"\n    (selectedCheckbox)=\"onMonthSelected($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-checkbox-list>\n  <app-frequency-due-date\n    [pageName]=\"'biannual'\"\n    [mode]=\"mode\"\n    [id]=\"4\"\n    [completedValue]=\"biannualWindow\"\n    [notCompletedValue]=\"biannualFailed\"\n    [pageType]=\"pageType\"\n    (valueChange)=\"onValueChange($event)\"\n  ></app-frequency-due-date>\n  <app-frequency-lifecycle\n    [id]=\"4\"\n    [startDate]=\"biannualLifeCycleStart\"\n    [endDate]=\"biannualLifeCycleEndTime\"\n    [occurrance]=\"biannualLifecycleOccurance\"\n    [selectedLifecycleType]=\"biannualSeletedLifecycleType\"\n    (selectedOccurance)=\"lifecycleChange($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-lifecycle>\n</div>\n","  import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { FrequencyService } from '../frequency.service';\nimport moment from 'moment/moment';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\n\n@Component({\n  selector: 'app-frequency-annual',\n  templateUrl: './frequency-annual.component.html',\n  styleUrls: ['./frequency-annual.component.less'],\n})\nexport class FrequencyAnnualComponent implements OnInit {\n  monthList: Array<any> = [];\n\n  yearlyInterval: string = DEFAULT_TIME;\n  yearlyInput: number = 1;\n  yearlyFailed: number = 5;\n  yearlyWindow: number = 30;\n  yearlyDay = new Date().getDate();\n  yearlyLifeCycleStart = new Date();\n  yearlyLifeCycleEndTime = new Date(\n    this.yearlyLifeCycleStart.getTime() + 86400000\n  );\n  yearlyLifecycleOccurance: number = 10;\n  yearlySeletedLifecycleType: number = 2;\n  yearlySelected = new Date().getMonth();\n  lifecycleDetails: any = '0000-00-00~~0';\n  previousStartDate = Math.floor(Date.now() / 1000);\n  frequencyInfo: any;\n  shortMonth: Array<string> = [];\n\n  @Input() pageType: 'responsibility' | 'policy' = 'responsibility';\n  @Input() frequencyData: any;\n  @Input() mode: any = '';\n\n  @Input() startDate = Math.floor(Date.now() / 1000);\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.monthList = this.frequencyService.monthArray;\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.shortMonth = this.frequencyService.monthArray.map((month) =>\n      month.substring(0, 3)\n    );\n    if (\n      this.frequencyData.pattern != '' &&\n      parseInt(this.frequencyData.pattern.split('~')[0]) === 4\n    ) {\n      this.populateFrequency();\n    }\n    this.getAnnualFrequency();\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData.pattern.split('~').map(Number);\n    this.yearlySelected = patternInfo[2] - 1;\n    const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\n    this.yearlyInterval = this.frequencyData.failedTime;\n    this.yearlyWindow = this.frequencyData.window;\n    this.yearlyInput = patternInfo[3];\n    this.yearlyDay = patternInfo[1];\n    if (Number(lifecycleInfo[1]) > 0) {\n      this.yearlyLifecycleOccurance = Number(lifecycleInfo[1]);\n    }\n\n    this.yearlyLifeCycleStart = new Date(this.frequencyData.startDate * 1000);\n    this.startDate =\n      this.frequencyData.startFrom ?? this.frequencyData.startDate;\n    this.yearlyFailed = this.frequencyData.failed;\n    if (lifecycleInfo[0] !== '0000-00-00') {\n      const dateSelected = moment(\n        lifecycleInfo[0] + ' ' + DEFAULT_TIME,\n        'DD-MMMM-YYYY HH:mm a'\n      ).unix();\n      this.yearlyLifeCycleEndTime = new Date(dateSelected * 1000);\n    }\n    this.lifecycleDetails = this.frequencyData.lifecycle;\n    if (this.frequencyData.lifecycle == '0000-00-00~~0') {\n      this.yearlySeletedLifecycleType = 2;\n    } else if (lifecycleInfo[0] !== '0000-00-00') {\n      this.yearlySeletedLifecycleType = 0;\n    } else {\n      this.yearlySeletedLifecycleType = 1;\n    }\n  }\n\n  onTimeChanged(event: string) {\n    this.yearlyInterval = event;\n    this.getAnnualFrequency();\n  }\n\n  dateChange(event: number) {\n    this.yearlyDay = event;\n    this.getAnnualFrequency();\n  }\n\n  valueChangedFirst(event: any) {\n    this.yearlyInput = event.value;\n    this.getAnnualFrequency();\n  }\n\n  selectedMonth(event: any) {\n    this.yearlySelected = parseInt(event.target.value);\n    this.getAnnualFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getAnnualFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.yearlyWindow = event.value;\n    } else {\n      this.yearlyFailed = event.value;\n    }\n    this.getAnnualFrequency();\n  }\n\n  // frequency pattern and details info\n  getAnnualFrequency() {\n    this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(\n      Number(this.yearlyInput)\n    );\n    this.frequencyInfo.pattern =\n      4 +\n      '~' +\n      this.yearlyDay +\n      '~' +\n      (this.yearlySelected + 1) +\n      '~' +\n      this.yearlyInput;\n    this.frequencyInfo.case = 'yearly';\n    this.frequencyInfo.failedAfter = this.yearlyFailed;\n    this.frequencyInfo.window = this.yearlyWindow;\n    this.frequencyInfo.timeIn12hr = this.yearlyInterval;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.yearlyInterval\n    );\n    this.frequencyInfo.selectedMonth = [this.yearlySelected];\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.selectedDay = [];\n    this.frequencyInfo.every = this.yearlyInput;\n    this.frequencyInfo.day = this.yearlyDay;  \n    this.frequencyInfo.selectedMonth = [this.yearlySelected];\n\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getFrequencyPlaceholder(yearlyInput: any) {\n    let placeholder = '';\n    if (yearlyInput === 1) {\n      placeholder = this.getPlaceholderForSt2();\n    } else {\n      placeholder = this.getPlaceholderForGt1();\n    }\n    return placeholder;\n  }\n\n  // if yearlyInput is smaller than 2 then this function will called\n  getPlaceholderForSt2() {\n    let placeholder = '';\n    if (this.yearlyDay === 1) {\n      placeholder =\n        '1st of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 2) {\n      placeholder =\n        '2nd of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 3) {\n      placeholder =\n        '3rd of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay > 3) {\n      placeholder =\n        this.yearlyDay +\n        'th of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 31 || this.yearlyDay === 21) {\n      placeholder =\n        this.yearlyDay +\n        'st of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 22) {\n      placeholder =\n        this.yearlyDay +\n        'nd of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 23) {\n      placeholder =\n        this.yearlyDay +\n        'rd of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    return placeholder;\n  }\n\n  // if yearlyInput is greater than 1 then this function will called\n  getPlaceholderForGt1() {\n    let placeholder = '';\n    if (this.yearlyDay === 1) {\n      placeholder =\n        '1st ' +\n        this.shortMonth[this.yearlySelected] +\n        ', Interval: every ' +\n        this.yearlyInput +\n        ' years by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 2) {\n      placeholder =\n        '2nd ' +\n        this.shortMonth[this.yearlySelected] +\n        ', Interval: every ' +\n        this.yearlyInput +\n        ' years by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 3) {\n      placeholder =\n        '3rd ' +\n        this.shortMonth[this.yearlySelected] +\n        ', Interval: every ' +\n        this.yearlyInput +\n        ' years by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay > 3) {\n      // tslint:disable-next-line: max-line-length\n      placeholder =\n        this.yearlyDay +\n        'th of  ' +\n        this.shortMonth[this.yearlySelected] +\n        ', Interval: every ' +\n        this.yearlyInput +\n        ' years by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 31 || this.yearlyDay === 21) {\n      placeholder =\n        this.yearlyDay +\n        'st of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 22) {\n      placeholder =\n        this.yearlyDay +\n        'nd of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    if (this.yearlyDay === 23) {\n      placeholder =\n        this.yearlyDay +\n        'rd of every ' +\n        this.shortMonth[this.yearlySelected] +\n        ' by ' +\n        this.yearlyInterval;\n    }\n    return placeholder;\n  }\n}\n","<!-- <p>frequency-annual works!</p> -->\n<div class=\"frequency-annual\">\n  <app-frequency-top\n    [id]=\"5\"\n    [inputTime]=\"yearlyInterval\"\n    [occurrenceFirst]=\"yearlyInput\"\n    [yearlyDay]=\"yearlyDay\"\n    [frequencyType]=\"2\"\n    (timeChanged)=\"onTimeChanged($event)\"\n    (valueChangedFirst)=\"valueChangedFirst($event)\"\n    (yearlyDateChanged)=\"dateChange($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-top>\n  <app-frequency-radio-list\n    [radioList]=\"monthList\"\n    [selectedIndex]=\"yearlySelected\"\n    (selectedRadio)=\"selectedMonth($event)\"\n    [mode]=\"mode\"\n  >\n  </app-frequency-radio-list>\n  <app-frequency-due-date\n    [pageName]=\"'yearly'\"\n    [mode]=\"mode\"\n    [id]=\"5\"\n    [pageType]=\"pageType\"\n    [completedValue]=\"yearlyWindow\"\n    [notCompletedValue]=\"yearlyFailed\"\n    (valueChange)=\"onValueChange($event)\"\n  ></app-frequency-due-date>\n  <app-frequency-lifecycle\n    [id]=\"5\"\n    [startDate]=\"yearlyLifeCycleStart\"\n    [endDate]=\"yearlyLifeCycleEndTime\"\n    [occurrance]=\"yearlyLifecycleOccurance\"\n    [selectedLifecycleType]=\"yearlySeletedLifecycleType\"\n    (selectedOccurance)=\"lifecycleChange($event)\"\n    [mode]=\"mode\"\n  ></app-frequency-lifecycle>\n</div>\n","import {\n  Component,\n  OnInit,\n  ViewChild,\n  Input,\n  Output,\n  EventEmitter,\n  ElementRef,\n  HostListener,\n} from '@angular/core';\nimport {\n  DatePickerComponent,\n  SingleCalendarValue,\n  IDatePickerConfig,\n} from 'ng2-date-picker';\nimport { FrequencyService } from '../frequency.service';\nimport moment from 'moment/moment';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\nimport { CommonService } from '../../../services/common.service';\n\n@Component({\n  selector: 'app-frequency-one-time',\n  templateUrl: './frequency-one-time.component.html',\n  styleUrls: ['./frequency-one-time.component.less'],\n})\nexport class FrequencyOneTimeComponent implements OnInit {\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  DEFAULT_TIME = DEFAULT_TIME;\n  datepickerOverlay = false;\n  showDateError = false;\n  oneTimeFailed = 5;\n  oneTimeWindow = 15;\n  oneTimeStartTime: any = DEFAULT_TIME;\n  oneTimeSelected = '';\n  dateConfig: IDatePickerConfig = {\n    min: '',\n  };\n  todayDate = new Date();\n  frequencyInfo: any;\n  shortMonth: Array<string> = [];\n  dateObjectData = new Date();\n  minDate = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')?.split(' ')[0];\n  selectedDate: any;\n\n  @Input() pageType: 'responsibility' | 'policy' = 'responsibility';\n  @Input() frequencyData: any;\n  @Input() mode: any = '';\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n\n  constructor(\n    private frequencyService: FrequencyService,\n    private commonService: CommonService\n  ) {}\n\n  ngOnInit(): void {\n    this.dateConfig = this.frequencyService.dateConfig;\n    this.dateConfig.min = this.frequencyService.formatDate();\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.shortMonth = this.frequencyService.monthArray.map((month) =>\n      month.substring(0, 3)\n    );\n    this.selectedDate = moment(this.todayDate);\n    if (\n      this.frequencyData.pattern != '' &&\n      this.frequencyData.pattern.split('~')[0] === '0'\n    ) {\n      this.populateFrequency();\n    } else {\n      this.getOneTimeFrequency();\n    }\n  }\n\n  populateFrequency() {\n    const patternInfo = this.frequencyData.pattern.split('~');\n    const timeStamp = moment(\n      `${patternInfo[3]}-${patternInfo[2]}-${patternInfo[1]} ${this.frequencyData.failedTime}`,\n      'DD-MM-YYYY HH:mm a'\n    ).unix();\n    this.todayDate = new Date(timeStamp * 1000);\n    this.selectedDate = moment(this.todayDate);\n    this.oneTimeFailed = this.frequencyData.failed;\n    this.oneTimeWindow = this.frequencyData.window;\n    this.oneTimeStartTime = this.frequencyData.failedTime;\n    this.oneTimeSelected =\n      patternInfo[1] + '~' + patternInfo[2] + '~' + patternInfo[3];\n    this.dateObjectData = new Date(\n      moment(\n        this.oneTimeSelected + ' ' + this.oneTimeStartTime,\n        'YYYY~MM~DD HH:mm:ss'\n      ).unix() * 1000\n    );\n    this.getOneTimeFrequency();\n  }\n\n  openDatePicker() {\n    const newDate = moment(this.todayDate);\n    this.datePicker?.api?.moveCalendarTo(newDate as SingleCalendarValue);\n    this.datePicker?.api?.open();\n    this.datepickerOverlay = true;\n  }\n  closeDatepicker() {\n    this.datePicker?.api?.close();\n    this.datepickerOverlay = false;\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.oneTimeWindow = event?.value;\n    } else {\n      this.oneTimeFailed = event?.value;\n    }\n    this.closeDatepicker();\n    this.getOneTimeFrequency();\n  }\n\n  onTimeChanged(event: string) {\n    this.oneTimeStartTime = event;\n    if (typeof this.dateObjectData == 'object') {\n      this.dateObjectData = moment(this.dateObjectData)?.toDate();\n    }\n    let timeStamp = moment(\n      this.dateObjectData.getDate() +\n        '-' +\n        (this.dateObjectData.getMonth() + 1) +\n        '-' +\n        this.dateObjectData.getFullYear() +\n        ' ' +\n        this.oneTimeStartTime,\n      'DD-MM-YYYY hh:mm a'\n    ).unix();\n    this.oneTimeSelected = moment(timeStamp * 1000)\n      .format('YYYY~MM~DDTHH:mm:ssZ')\n      .split('T')[0];\n    this.getOneTimeFrequency();\n  }\n\n  dateChange(event: any) {\n    this.selectedDate = event?.date;\n    const newDate = moment(event?.date?.$d).unix();\n    this.dateObjectData = new Date(newDate * 1000);\n    this.todayDate = this.dateObjectData;\n    let timeStamp = moment(\n      this.dateObjectData.getDate() +\n        '-' +\n        (this.dateObjectData.getMonth() + 1) +\n        '-' +\n        this.dateObjectData.getFullYear() +\n        ' ' +\n        this.oneTimeStartTime,\n      'DD-MM-YYYY hh:mm a'\n    ).unix();\n    this.oneTimeSelected = event.date\n      .format('YYYY~MM~DDTHH:mm:ssZ')\n      .split('T')[0];\n\n    this.getOneTimeFrequency();\n  }\n\n  getOneTimeFrequency() {\n    if (this.oneTimeSelected !== '') {\n      this.todayDate = moment(this.todayDate)?.toDate();\n    }\n    this.selectedDate = moment(this.todayDate);\n    // tslint:disable-next-line: max-line-length\n    this.frequencyInfo.placeholder =\n      'One Time ' +\n      this.todayDate.getDate() +\n      ' ' +\n      this.shortMonth[this.todayDate.getMonth()] +\n      ' ' +\n      this.todayDate.getFullYear() +\n      ' by ' +\n      this.oneTimeStartTime;\n    this.frequencyInfo.pattern =\n      0 +\n      '~' +\n      (this.oneTimeSelected === ''\n        ? new Date().getFullYear() +\n          '~' +\n          (new Date().getMonth() + 1) +\n          '~' +\n          new Date().getDate()\n        : this.oneTimeSelected);\n    this.frequencyInfo.case = 'one_time';\n    this.frequencyInfo.failedAfter = this.oneTimeFailed;\n    this.frequencyInfo.window = this.oneTimeWindow;\n    this.frequencyInfo.timeIn12hr = this.oneTimeStartTime;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.oneTimeStartTime\n    );\n    this.frequencyInfo.failed_time_utc = 0;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.startFrom = new Date(this.todayDate).getTime()/1000;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  timeSelection(event: any) {\n    const selectedValue = event.selectedValue;\n    this.onTimeChanged(selectedValue);\n  }\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'frequency-date',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datepickerOverlay,\n    };\n    this.commonService.handleDocumentClick(datePickerObject);\n  }\n}\n","<ng-container *ngIf=\"mode !== 'policy'\">\n  <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n    DUE DATE FREQUENCY:\n  </div>\n  <div class=\"frequency-onetime\">\n    <div class=\"frequency-onetime-inner vx-d-flex vx-align-center vx-p-3\">\n      <div class=\"date-field vx-m-0 vx-mr-3\">\n        <i class=\"icons calendar-icon vx-fs-16 vx-paragraph-txt vx-mr-3\"\n          >&#xe92d;</i\n        >\n        <input\n          type=\"text\"\n          id=\"frequency-date\"\n          [value]=\"todayDate | date : 'dd MMM yyyy'\"\n          [placeholder]=\"todayDate | date : 'dd MMM yyyy'\"\n          (click)=\"openDatePicker()\"\n          readonly\n        />\n      </div>\n\n      <div class=\"time-picker-group vx-d-flex\">\n        <div\n          class=\"time-field\"\n          appPopover\n          (click)=\"timePicker.popover()\"\n          placement=\"right\"\n        >\n          <input class=\"input\" [placeholder]=\"oneTimeStartTime\" readonly />\n          <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\n            <i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe955;</i>\n          </div>\n        </div>\n        <app-popover #timePicker [dontCloseonClick]=\"true\">\n          <app-time-picker\n            [time]=\"oneTimeStartTime\"\n            (onTimeSelection)=\"\n              timeSelection($event); timePicker.closePopover('top')\n            \"\n          ></app-time-picker>\n        </app-popover>\n      </div>\n    </div>\n    <app-frequency-due-date\n      [id]=\"6\"\n      [mode]=\"mode\"\n      [pageName]=\"'one-time'\"\n      [isDeactivated]=\"false\"\n      [completedValue]=\"oneTimeWindow\"\n      [notCompletedValue]=\"oneTimeFailed\"\n      (valueChange)=\"onValueChange($event)\"\n    ></app-frequency-due-date>\n  </div>\n</ng-container>\n\n<!-- For Policy -->\n<ng-container *ngIf=\"mode === 'policy'\">\n  <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n    DUE DATE FREQUENCY:\n  </div>\n  <div class=\"frequency-onetime\">\n    <div class=\"frequency-onetime-inner vx-d-flex vx-align-center vx-p-3\">\n      <div class=\"date-field vx-m-0 vx-mr-3\">\n        <i class=\"icons calendar-icon vx-fs-16 vx-paragraph-txt vx-mr-3\"\n          >&#xe92d;</i\n        >\n        <input\n          type=\"text\"\n          [value]=\"todayDate | date : 'dd MMM yyyy'\"\n          [placeholder]=\"todayDate | date : 'dd MMM yyyy'\"\n          (click)=\"openDatePicker()\"\n          readonly\n          id=\"frequency-date\"\n        />\n      </div>\n\n      <div class=\"time-picker-group vx-d-flex\">\n        <div\n          class=\"time-field\"\n          appPopover\n          (click)=\"policyTimePicker.popover()\"\n          placement=\"right\"\n        >\n          <input\n            type=\"text\"\n            [(ngModel)]=\"oneTimeStartTime\"\n            [placeholder]=\"DEFAULT_TIME\"\n            readonly\n          />\n          <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\n            <i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe955;</i>\n          </div>\n        </div>\n        <app-popover #policyTimePicker [dontCloseonClick]=\"true\">\n          <app-time-picker\n            [time]=\"oneTimeStartTime\"\n            (onTimeSelection)=\"\n              timeSelection($event); policyTimePicker.closePopover('top')\n            \"\n          ></app-time-picker>\n        </app-popover>\n      </div>\n    </div>\n    <app-frequency-due-date\n      [id]=\"6\"\n      [mode]=\"mode\"\n      [pageName]=\"'one-time'\"\n      [isDeactivated]=\"false\"\n      [completedValue]=\"oneTimeWindow\"\n      [notCompletedValue]=\"oneTimeFailed\"\n      [pageType]=\"pageType\"\n      (valueChange)=\"onValueChange($event)\"\n    ></app-frequency-due-date>\n  </div>\n</ng-container>\n\n<dp-date-picker\n  #datePicker\n  [id]=\"'start-date-' + 6\"\n  [placeholder]=\"todayDate | date : 'dd MMM yyyy'\"\n  [(ngModel)]=\"selectedDate\"\n  [config]=\"dateConfig\"\n  (onSelect)=\"\n    openDatePicker();\n    dateChange($event);\n    showDateError = false;\n    datepickerOverlay = false\n  \"\n></dp-date-picker>\n<div\n  class=\"vx-overlay\"\n  (click)=\"closeDatepicker()\"\n  *ngIf=\"datepickerOverlay\"\n></div>\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { FrequencyService } from '../frequency.service';\nimport moment from 'moment/moment';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\n\n@Component({\n  selector: 'app-frequency-random',\n  templateUrl: './frequency-random.component.html',\n  styleUrls: ['./frequency-random.component.less'],\n})\nexport class FrequencyRandomComponent implements OnInit {\n  @Input() mode: any = '';\n\n  //0: weekly 1: monthly 2:quarterly 3: yearly\n\n  monthNameArray: Array<any> = [];\n  selectedMonthly: Array<number> = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n  randomTypeMax = [3, 10, 30, 90];\n  randomType = ['Weekly', 'Monthly', 'Quarterly', 'Yearly'];\n  randomInstances = 0;\n  defaultRandomInstance = [2, 5, 15, 45];\n  randomlyDay = new Date().getDate();\n  randomlyLifeCycleStart = new Date();\n  randomlyLifeCycleEndTime = new Date(\n    this.randomlyLifeCycleStart.getTime() + 86400000\n  );\n  randomlyLifecycleOccurance = 10;\n  randomlySeletedLifecycleType = 2;\n  randomTypeSelected = 0;\n  randomWindow = 2;\n  randomFailed = 2;\n  randomMonthSelected = [];\n  randomQuarterlySelected = 1;\n  quarterlyGroup = [0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11];\n  randomTypeInstances = [2, 5, 15, 45];\n  frequencyInfo: any;\n  shortMonth: Array<string> = [];\n  quarterlyMonth: Array<string> = [];\n\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.monthNameArray = [...new Set(this.frequencyService.monthArray)];\n    this.quarterlyMonth = [...new Set(this.frequencyService.quarterlyMonth)];\n    this.shortMonth = this.frequencyService.monthArray.map((month: string) =>\n      month.substring(0, 3)\n    );\n    const indexOfMonth = this.quarterlyGroup.indexOf(new Date().getMonth());\n    this.randomQuarterlySelected =\n      indexOfMonth < 4 ? 0 : indexOfMonth > 3 && indexOfMonth < 8 ? 1 : 2;\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    if (\n      this.frequencyData.pattern != '' &&\n      parseInt(this.frequencyData.pattern.split('~')[0]) === 8\n    ) {\n      this.populateFrequency();\n    } else {\n      this.getRandomInstances();\n    }\n    this.getRandomFrequency();\n  }\n\n  getRandomInstances() {\n    this.randomInstances = this.randomTypeInstances[this.randomTypeSelected];\n  }\n\n  populateFrequency() {\n    const frequencySelected = this.frequencyData.pattern.split('~');\n    const lifecycleInfo = this.frequencyData.lifecycle.split('~~');\n    this.randomWindow = this.frequencyData.window;\n    this.randomFailed = this.frequencyData.failed;\n    this.randomInstances = parseInt(frequencySelected[3]);\n    this.randomTypeSelected = parseInt(frequencySelected[1]) - 1;\n    if (this.randomTypeSelected === 1) {\n      this.selectedMonthly = frequencySelected[2]\n        .split(',')\n        .map((ele: any) => parseInt(ele) - 1);\n    }\n    if (this.randomTypeSelected == 2) {\n      const monthRandom = parseInt(frequencySelected[2].split(',')[0]);\n      const indexRandom = this.quarterlyGroup.indexOf(monthRandom - 1);\n      this.randomQuarterlySelected =\n        indexRandom < 4 ? 0 : indexRandom > 3 && indexRandom < 8 ? 1 : 2;\n    }\n    this.randomlyLifeCycleStart = new Date(this.frequencyData.startDate * 1000);\n    this.startDate =\n      this.frequencyData.startFrom ?? this.frequencyData.startDate;\n    if (Number(lifecycleInfo[1]) > 0) {\n      this.randomlyLifecycleOccurance = Number(lifecycleInfo[1]);\n    }\n    this.lifecycleDetails = this.frequencyData.lifecycle;\n    if (lifecycleInfo[0] !== '0000-00-00') {\n      const dateSelected = moment(\n        lifecycleInfo[0] + ' ' + DEFAULT_TIME,\n        'DD-MMMM-YYYY HH:mm a'\n      ).unix();\n      this.randomlyLifeCycleEndTime = new Date(dateSelected * 1000);\n    }\n    if (this.frequencyData.lifecycle == '0000-00-00~~0') {\n      this.randomlySeletedLifecycleType = 2;\n    } else if (lifecycleInfo[0] !== '0000-00-00') {\n      this.randomlySeletedLifecycleType = 0;\n    } else {\n      this.randomlySeletedLifecycleType = 1;\n    }\n  }\n\n  onMonthSelected(event: any) {\n    if (event.checked) {\n      this.selectedMonthly.push(event.index);\n    } else {\n      this.selectedMonthly = this.selectedMonthly.filter(\n        (ele) => ele !== event.index\n      );\n    }\n    this.getRandomFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.randomWindow = event.value;\n    } else {\n      this.randomFailed = event.value;\n    }\n    this.getRandomFrequency();\n  }\n\n  randomChecked(event: any) {\n    this.randomTypeSelected = Number(event.target.value);\n    this.getRandomInstances();\n    this.getRandomFrequency();\n  }\n\n  randomInstance(event: any, type: any) {\n    if (\n      !Number.isNaN(Number(event.target.value)) &&\n      event.target.value !== '0' &&\n      parseInt(event.target.value) > 0 &&\n      parseInt(event.target.value) < this.randomTypeMax[type] + 1\n    ) {\n    } else {\n      this.randomInstances =\n        this.defaultRandomInstance[this.randomTypeSelected];\n    }\n    this.getRandomFrequency();\n  }\n\n  lifecycleChange(event: any) {\n    switch (event.type) {\n      case 0:\n        this.lifecycleDetails = event.endsBy + '~~0';\n        break;\n      case 1:\n        this.lifecycleDetails = '0000-00-00~~' + event.endafter;\n        break;\n      case 2:\n        this.lifecycleDetails = '0000-00-00~~0';\n        break;\n    }\n    if (event.startFrom.toString().length > 10) {\n      this.startDate = Math.floor(event.startFrom / 1000);\n    } else {\n      this.startDate = Math.floor(event.startFrom);\n    }\n    let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);\n    if (event.type === 0) {\n      endByDate = event.endsBy\n        ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()\n        : endByDate;\n    }\n    this.frequencyInfo.failed_time_utc = endByDate;\n    this.getRandomFrequency();\n  }\n\n  selectedMonth(event: any) {\n    this.getRandomFrequency();\n  }\n\n  randomQuarterlyChecked(event: any) {\n    this.randomQuarterlySelected = Number(event.target.value);\n    this.getRandomFrequency();\n  }\n\n  getRandomFrequency() {\n    //0: weekly 1: monthly 2:quarterly 3: yearly\n    let selectedMonth: any = []\n    let frequencyDetails;\n    switch (this.randomTypeSelected) {\n      case 0:\n        frequencyDetails = this.getWeeklyFrequency();\n        break;\n      case 1:\n        frequencyDetails = this.getMonthlyFrequency();\n        selectedMonth = this.selectedMonthly;\n        break;\n      case 2:\n        frequencyDetails = this.getQuarterlyFrequency();\n        selectedMonth = frequencyDetails.monthSequence;\n        selectedMonth = selectedMonth.map((ele: any) => ele - 1);\n\n        break;\n      case 3:\n        frequencyDetails = this.getYearlyFrequency();\n        break;\n    }\n    this.frequencyInfo.pattern = frequencyDetails?.pattern;\n    this.frequencyInfo.placeholder = frequencyDetails?.placeholder;\n    this.frequencyInfo.case = 'random';\n    this.frequencyInfo.failedAfter = this.randomFailed;\n    this.frequencyInfo.window = this.randomWindow;\n    this.frequencyInfo.selectedMonth = selectedMonth;\n    this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;\n    this.frequencyInfo.startFrom = this.startDate;\n    this.frequencyInfo.randomTypeSelected = this.randomTypeSelected;\n    this.frequencyInfo.randomInstances = this.randomInstances;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  getWeeklyFrequency() {\n    return {\n      pattern: 8 + '~' + 1 + '~' + 0 + '~' + this.randomInstances,\n      placeholder:\n        'Every week for ' + this.randomInstances + ' random instances',\n    };\n  }\n\n  getMonthlyFrequency() {\n    this.selectedMonthly = this.selectedMonthly.sort((n1, n2) => n1 - n2);\n    const selectedMonth = this.selectedMonthly.map((ele) => {\n      return this.shortMonth[ele];\n    });\n    const monthIndex = this.selectedMonthly.map((ele) => ele + 1);\n    return {\n      pattern:\n        8 + '~' + 2 + '~' + monthIndex.join(',') + '~' + this.randomInstances,\n      placeholder:\n        'Every ' +\n        selectedMonth.join(', ') +\n        ' for ' +\n        this.randomInstances +\n        ' random instances',\n    };\n  }\n\n  getQuarterlyFrequency() {\n    let monthSequence =\n      this.randomQuarterlySelected === 0\n        ? this.quarterlyGroup.slice(0, 4)\n        : this.randomQuarterlySelected === 1\n        ? this.quarterlyGroup.slice(4, 8)\n        : this.quarterlyGroup.slice(8);\n    monthSequence = monthSequence.map((ele) => ele + 1);\n    return {\n      pattern: 8 + '~' + 3 + '~' + monthSequence + '~' + this.randomInstances,\n      placeholder:\n        'Every ' +\n        this.quarterlyMonth[this.randomQuarterlySelected] +\n        ' for ' +\n        this.randomInstances +\n        ' random instances',\n        monthSequence\n\n    };\n  }\n\n  getYearlyFrequency() {\n    return {\n      pattern:\n        8 + '~' + 4 + '~1,2,3,4,5,6,7,8,9,10,11,12~' + this.randomInstances,\n      placeholder:\n        'Every year for ' + this.randomInstances + ' random instances',\n    };\n  }\n}\n","<!-- <p>frequency-random works!</p> -->\n<div class=\"frequency-random\">\n    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">TYPE:</div>\n    <app-frequency-radio-list [radioList]=\"randomType\" [selectedIndex]=\"randomTypeSelected\"\n        (selectedRadio)=\"randomChecked($event)\" [name]=\"'random'\" class=\"random-radio\"\n        [mode]=\"mode\"></app-frequency-radio-list>\n    <app-frequency-radio-list *ngIf=\"randomTypeSelected == 2\" [radioList]=\"quarterlyMonth\" [name]=\"'quarter'\"\n        [selectedIndex]=\"randomQuarterlySelected\" (selectedRadio)=\"randomQuarterlyChecked($event)\"\n        class=\"quarterly-radio\" [mode]=\"mode\">\n    </app-frequency-radio-list>\n\n    <!-- disable monthly checkbox list in v1 -->\n    <!-- <app-frequency-checkbox-list\n        *ngIf=\"randomTypeSelected == 1\"  \n        [id]=\"8\"\n        [listArray]=\"monthNameArray\"\n        [selectedIndex]=\"selectedMonthly\"\n        (selectedCheckbox)=\"onMonthSelected($event)\"\n        class=\"monthly-checkbox\"\n        [mode]=\"mode\"\n    ></app-frequency-checkbox-list> -->\n    <div class=\"frequency-random-message vx-p-3 vx-d-flex vx-align-center\">\n        <div class=\"vx-fs-13 vx-paragraph-txt\">Random occurrence for</div>\n        <input class=\"countNum\" type=\"number\" [(ngModel)]=\"randomInstances\"\n            (change)=\"randomInstance($event, randomTypeSelected)\" onkeydown=\"return event.keyCode !== 190\" min=\"0\"\n            oninput=\"this.value = Math.abs(this.value)\">\n        <div class=\"vx-fs-13 vx-paragraph-txt\">instances. Note, the maximum number of occurrences for <span\n                class=\"vx-fw-500\">{{ randomType[randomTypeSelected].toLowerCase() }}</span> is {{\n            randomTypeMax[randomTypeSelected] }}.</div>\n    </div>\n    <app-frequency-due-date [id]='8' [pageName]=\"'random'\" [mode]=\"mode\" [isDeactivated]=\"false\"\n        [completedValue]=\"randomWindow\" [notCompletedValue]=\"randomFailed\" (valueChange)=\"onValueChange($event)\"\n        [mode]=\"mode\"></app-frequency-due-date>\n    <app-frequency-lifecycle [id]=\"8\" [startDate]=\"randomlyLifeCycleStart\" [endDate]=\"randomlyLifeCycleEndTime\"\n        [occurrance]=\"randomlyLifecycleOccurance\" [selectedLifecycleType]=\"randomlySeletedLifecycleType\"\n        (selectedOccurance)=\"lifecycleChange($event)\" [mode]=\"mode\"></app-frequency-lifecycle>\n</div>","import { Component, Input, Optional, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PopoverModule } from '../popover/popover.module';\nimport { Configurations } from '../../configurations';\nimport { TooltipModule } from '../tooltip/tooltip.module';\n\n@Component({\n  selector: 'lib-avatar-v2',\n  standalone: true,\n  imports: [CommonModule, PopoverModule, TooltipModule],\n  templateUrl: './avatar-v2.component.html',\n  styleUrls: ['./avatar-v2.component.less']\n})\nexport class AvatarV2Component implements OnInit {\n @Input() avatarList: any[] = [];\n @Input() type: 'SINGLE_AVATAR' | 'MULTI_AVATAR' = 'MULTI_AVATAR';\n imagePath: string = '';\n env: any;\n sliceCount: number = 3;\n popoverSliceCount: number = 3;\n showPopover: boolean = false;\n constructor(    @Optional() config?: Configurations\n) {\n  this.env = config?.envConfig;\n  this.imagePath = this.env?.s3Url + this.env?.s3Bucket + '/profile_pic/thumb/';\n }\n\n  ngOnInit(): void {\n      this.getSliceCount();\n  }\n\n\n  getSliceCount() {\n    if (this.type === 'SINGLE_AVATAR' && this.avatarList?.length > 1) {\n      this.sliceCount = 0;\n      this.popoverSliceCount = 0;\n      this.showPopover = true;\n    } else {\n      if(this.avatarList?.length > 3) {\n        this.showPopover = true;\n      } else {\n        this.showPopover = false;\n      }\n    }\n  }\n\n}\n","<div class=\"vx-avatar-group \">\n\n    <ng-container *ngFor=\"let eachAvatar of avatarList | slice:0:sliceCount\">\n        <div class=\"vx-avatar md\">\n            <img *ngIf=\"eachAvatar?.imagePath; else avatar\" [src]=\"imagePath + eachAvatar?.imagePath\"\n                [alt]=\"eachAvatar?.shortName\" [appTooltip]=\"eaeachAvatar?.name\" placement=\"bottom-left\" delay=\"0\"\n                type=\"black\" [tooltipMandatory]=\"true\" />\n            <ng-template #avatar>\n                <span *ngIf=\"!eachAvatar?.avatar\" [appTooltip]=\"eachAvatar?.name\" [tooltipMandatory]=\"true\"\n                    class=\"blue\">{{ eachAvatar?.shortName\n                    }}</span>\n            </ng-template>\n        </div>\n\n    </ng-container>\n    <div *ngIf=\"showPopover \" appPopover (click)=\"users.popover()\" placement=\"left\" class=\"vx-avatar md multi-user\">\n        <span class=\"user\">\n            <i class=\"icons user-icons vx-fs-12\">&#xea35;</i>\n            <span class=\"count vx-txt-white vx-d-flex vx-align-center vx-justify-center\">{{ avatarList?.length -\n                popoverSliceCount\n                }}</span>\n        </span>\n    </div>\n\n\n</div>\n\n<app-popover #users>\n    <div class=\"wf-action-list\">\n        <ul class=\"action-item\">\n            <li *ngFor=\"let user of avatarList | slice: popoverSliceCount\" appTooltip=\"{{ user?.name }}\"\n                placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                <div class=\"avatar-card\">\n                    <div class=\"avatar\">\n                        <ng-container *ngIf=\"!user?.avatar\">{{\n                            user?.shortName\n                            }}</ng-container>\n                        <img *ngIf=\"user?.avatar\" [src]=\"user?.avatar\" alt=\"\" width=\"24\" height=\"24\" />\n                    </div>\n                    <span class=\"value\">{{ user?.name }}</span>\n                </div>\n            </li>\n        </ul>\n    </div>\n</app-popover>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\nimport { AvatarV2Component } from '../../../../ui-kit/avatar-v2/avatar-v2.component';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { PipesModule } from '../../../../pipes/pipes.module'\n@Component({\n  selector: 'lib-sub-responsibility',\n  standalone: true,\n  imports: [CommonModule, FormgroupModule, TooltipModule, AvatarV2Component, PopoverModule, PipesModule],\n  templateUrl: './sub-responsibility.component.html',\n  styleUrls: ['./sub-responsibility.component.less']\n})\nexport class SubResponsibilityComponent  {\n\n  @Input() responsibility: any;\n  @Input() srNo: number = 1;\n  @Input() selectedResponsibility: any;\n\n  @Output() onCompletionChange = new EventEmitter<any>();\n\n\n\n}\n","<div class=\"sub-responsibility vx-mb-1\">\n    <ng-container *ngFor=\"let eachAssignee of responsibility?.assigneeDetails; let i = index\">\n        <div class=\"vc-table-row\"\n            [class.active]=\" {responsibility, eachAssignee} | responsibilityChecked: selectedResponsibility\">\n            <div class=\"vc-table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                <div class=\"sr-no\" [appTooltip]=\"srNo + '.' + i + 1\" placement=\"bottom\" delay=\"0\" type=\"black\"\n                    [tooltipMandatory]=\"true\">\n                    {{ srNo + '.' +(i + 1) }}\n                </div>\n                <app-cs-radio [name]=\"'onCompletion'\"\n                    [checked]=\" {responsibility, eachAssignee} | responsibilityChecked: selectedResponsibility\"\n                    (checkedEvent)=\"onCompletionChange.emit({eachAssignee, responsibility})\"></app-cs-radio>\n            </div>\n            <div class=\"vc-table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vc-title\">\n                <lib-avatar-v2 [avatarList]=\"eachAssignee?.assigneeInfo\"></lib-avatar-v2>\n                <div *ngIf=\"eachAssignee?.assigneeInfo?.length === 1\"\n                    class=\"value vx-fs-12 vx-label-txt vx-pr-5 vx-ml-2\"\n                    [appTooltip]=\"eachAssignee?.assigneeInfo[0]?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n                    [tooltipMandatory]=\"true\">\n                    {{ eachAssignee?.assigneeInfo[0]?.name }}\n                </div>\n            </div>\n            <div class=\"vc-table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center rc\">\n                <div class=\"rc-inner vx-d-block\">\n                    <div class=\"rc-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n              eachAssignee?.responsibilityCenterInfo?.length\n                ? eachAssignee?.responsibilityCenterInfo[0]?.name\n                : '--'\n            \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                        {{\n                        eachAssignee?.responsibilityCenterInfo?.length\n                        ? eachAssignee?.responsibilityCenterInfo[0]?.name\n                        : \"--\"\n                        }}\n                    </div>\n\n                </div>\n                <ng-container *ngIf=\"\n            eachAssignee?.responsibilityCenterInfo?.length  > 1&&\n            eachAssignee?.responsibilityCenterInfo as rcArray\n          \">\n                    <button appPopover\n                        class=\"count-btn vx-fs-11 vx-txt-blue vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-2 vx-lh-4 vx-d-flex vx-align-center vx-justify-center\"\n                        (click)=\"rc.popover()\" placement=\"left\">+{{ rcArray?.length-\n                        1 }}</button>\n                    <app-popover #rc>\n                        <div class=\"wf-action-list\">\n                            <ul class=\"action-item\">\n                                <li *ngFor=\"let rc of eachAssignee?.responsibilityCenterInfo | slice: 1\"\n                                    appTooltip=\"{{ rc?.name }}\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n                                    [tooltipMandatory]=\"true\">\n                                    <div class=\"avatar-card\">\n                                        <span class=\"value\">{{ rc?.name }}</span>\n                                    </div>\n                                </li>\n                            </ul>\n                        </div>\n                    </app-popover>\n                </ng-container>\n            </div>\n            <div class=\"vc-table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n            </div>\n        </div>\n    </ng-container>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FrequencyService } from '../frequency.service';\nimport { ASSETS } from '../../../constants/assets.constants';\nimport { CommonService } from '../../../services/common.service';\nimport { slice } from 'lodash';\n\n@Component({\n  selector: 'app-frequency-responsibility-list',\n  templateUrl: './frequency-responsibility-list.component.html',\n  styleUrls: ['./frequency-responsibility-list.component.less'],\n})\nexport class FrequencyResponsibilityListComponent implements OnInit {\n  @Input() selectedResponsibilityDetails: any = {};\n\n  @Output() backButton = new EventEmitter();\n  @Output() selectedResponsibility = new EventEmitter();\n  \n  animation = false;\n  ASSETS = ASSETS;\n  responsibilitiesData: any = {};\n  responsibilityLoader: boolean = false;\n  selectedResponsibilityId: any = [];\n  selectedResponsibilityValues: any;\n  \n  responsibilitySearchText: string = '';\n  responsibilityCurrentPage: number = 1;\n  isValidObj = false;\n\n  responsibilityPayload = {\n    type: 'active',\n    paginationType: 'large',\n    a: '',\n    searchTerm: '',\n    filterData: {\n      appList: [],\n      riskIds: [],\n      reviewerId: [],\n      responsibilityCenter: [],\n      entrustedBy: [],\n      entrustedTo: [],\n      responsibilityCategory: [],\n      complianceType: [1],\n    },\n    pageNo: 1,\n    sortObj: {\n      sortBy: '',\n      type: '',\n    },\n    pageName: 'overview',\n  };\n  responsibilityList: any;\n  close: any;\n  openedResponsibility: any[] = [];\n\n\n  constructor(\n    private frequencyService: FrequencyService,\n    private commonService: CommonService\n  ) { }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.getResponsibilityList();\n    this.populateResponsibility();\n  }\n\n  back() {\n    this.backButton.emit('backToOnCompletion');\n  }\n\n\n  getResponsibilityList() {\n    this.responsibilityLoader = true;\n    this.frequencyService\n      ?.getResponsibilityList(this.responsibilityPayload)\n      .subscribe((res: any) => {\n        this.responsibilitiesData = res?.data;\n        const pagination = this.commonService.setPagination(res?.data);\n        this.responsibilitiesData['pagination'] = pagination;\n        this.responsibilitiesData['responsibilities'] = this.mapResponsibilityData( this.responsibilitiesData)\n\n        this.responsibilityLoader = false;\n        const hasResponsibility = this.responsibilitiesData?.responsibilities?.find((responsibility: any) => responsibility.id === this.selectedResponsibilityValues?.responsibility?.id);\n        if(hasResponsibility) {\n          this.onToggleResponsibility(hasResponsibility);\n        }\n      }, (error: any) => {\n        this.responsibilityLoader = false;\n        console.log({ error }, \"Error in getting responsibility list\");\n      });\n  }\n\n  responsibilityPageChange(pageNumber: number) {\n    this.responsibilityCurrentPage = pageNumber;\n    this.responsibilityPayload.pageNo = this.responsibilityCurrentPage;\n    this.responsibilityPayload.searchTerm = this.responsibilitySearchText;\n    this.getResponsibilityList();\n  }\n\n\n  deleteItem(item: any) {\n    this.selectedResponsibilityValues = {};\n    this.isValidObj = false;\n    this.selectedResponsibilityId = [];\n  }\n  save(event: any) {\n    this.backButton.emit('backToOnCompletion');\n    this.selectedResponsibility.emit(this.selectedResponsibilityValues);\n  }\n\n\n  search() {\n    this.responsibilityPayload.searchTerm = this.responsibilitySearchText;\n    this.responsibilityCurrentPage = 1;\n    this.responsibilityPayload.pageNo = this.responsibilityCurrentPage;\n    this.getResponsibilityList();\n  }\n\n \n  \n  onToggleResponsibility(responsibility: any) {\n    if(this.openedResponsibility.includes(responsibility.id)) {\n      this.openedResponsibility = this.openedResponsibility.filter((id: any) => id !== responsibility.id);\n    } else {\n      this.openedResponsibility.push(responsibility.id);\n    }\n  }\n\n\n    // Main method exposed outside\n    public mapResponsibilityData(responsibility: any): any[] {\n      if (!responsibility) return [];\n  \n      const users = this.mapShortNames(responsibility.users, this.mapShortName);\n      const userMap = this.buildMap(users);\n      const rcMap = this.buildMap(responsibility.responsibilityCenters);\n  \n      return (responsibility.responsibilities || []).map((item: any) =>\n        this.mapResponsibilityItem(item, userMap, rcMap)\n      );\n    }\n  \n    // Helper methods below:\n  \n    private mapShortNames(users: any[], mapShortName: (name: string) => string): any[] {\n      return (users || []).map(user => ({\n        ...user,\n        shortName: mapShortName(user.name),\n      }));\n    }\n  \n    private buildMap(arr: any[]): Map<string, any> {\n      return new Map((arr || []).map(item => [item.id, item]));\n    }\n  \n    private mapAssigneeUsers(assignee: any, activeUserIds: string[], userMap: Map<string, any>): any[] {\n      if (!assignee.assignee) {\n        return (activeUserIds || []).map(id => userMap.get(id)).filter(Boolean);\n      }\n      const ids = Array.isArray(assignee.assignee) ? assignee.assignee : [assignee.assignee];\n      return ids.map((id: any) => userMap.get((id))).filter(Boolean);\n    }\n  \n    private mapResponsibilityCenters(assignee: any, itemRCIds: string[], rcMap: Map<string, any>): any[] {\n      if (!assignee.responsibilityCenter) {\n        return (itemRCIds || []).map(id => rcMap.get(id)).filter(Boolean);\n      }\n      const ids = Array.isArray(assignee.responsibilityCenter) ? assignee.responsibilityCenter : [assignee.responsibilityCenter];\n      return ids.map((id: any) => rcMap.get(id)).filter(Boolean);\n    }\n  \n    private mapResponsibilityItem(item: any, userMap: Map<string, any>, rcMap: Map<string, any>): any {\n\n      let  assigneeDetails = (item.assigneeDetails || [])\n        .filter((ad: any) => ad.status && ad.status.toLowerCase() === 'active')\n        if(assigneeDetails?.length === 0 && item?.assigneeType === 'any' && [null, 'any'].includes(item?.rcType)) {\n\n          assigneeDetails =  item.assignees?.activeUserId?.map((id: any) => {\n            return {\n              ...item.assigneeDetails[0],\n              status: 'active',\n              assignee: id,\n            }\n          });\n        }\n        assigneeDetails =  assigneeDetails.map((ad: any) => ({\n          ...ad,\n          assigneeInfo: this.mapAssigneeUsers(ad, item.assignees?.activeUserId || [], userMap),\n          responsibilityCenterInfo: this.mapResponsibilityCenters(ad, item.responsibilityCenters || [], rcMap),\n        }));\n        const allAssignee = this.removeDuplicateAssignee(assigneeDetails).map((ad: any) => ad.assigneeInfo[0]);\n        const allRc = this.mapRcs(item.responsibilityCenters);\n      return {\n        id: item.id,\n        title: item.title,\n        controlId: item?.controlId ? '[CID-' + item?.controlId + '] ' : '',\n        assigneeType: item?.assigneeType,\n        rcType: item?.rcType,\n        assigneeDetails,\n         allAssignee,\n         allRc\n      };\n    }\n\n    removeDuplicateAssignee(assigneeDetails: any) {\n      const uniqueMap = new Map();\n      assigneeDetails.forEach((obj: any) => {\n        uniqueMap.set(obj.assignee, obj);\n      });\n      const uniqueArray = Array.from(uniqueMap.values());\n          return uniqueArray;\n        }\n\n      mapRcs(rcs: any) {\n        return this.responsibilitiesData?.responsibilityCenters?.filter((rc: any) => rcs?.includes(rc?.id));\n      }\n  \n  mapShortName(name: string) {\n    const nameArray = name?.split(' ');\n    if(nameArray?.length > 1) {\n      return nameArray[0]?.charAt(0) + nameArray[nameArray?.length - 1]?.charAt(0);\n    }\n    return nameArray[0]?.charAt(0) + nameArray[0]?.charAt(1)?.toUpperCase();\n  }\n\n  populateResponsibility() {\n    if(!this.selectedResponsibilityDetails?.assignee) {\n      return;\n    }\n    this.selectedResponsibilityValues =  {\n      eachAssignee: {\n        assignee: this.selectedResponsibilityDetails.assignee,\n        responsibilityCenter: this.selectedResponsibilityDetails.responsibilityCenter,\n      },\n      responsibility: {\n        title: this.selectedResponsibilityDetails.title,\n        id: this.selectedResponsibilityDetails.id,\n        allRC: [],\n        allAssignee: [],\n        assigneeDetails: [{\n          assignee: this.selectedResponsibilityDetails.assignee,\n          responsibilityCenter: this.selectedResponsibilityDetails.responsibilityCenter,\n        }],\n        eachAssignee: {},\n      }\n    }\n  }\n\n  onCompletionChange(event: any) {\n    this.selectedResponsibilityValues = event\n  }\n}\n","<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n  <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n    <div class=\"vx-d-flex vx-align-center\">\n      <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\">&#xe91d;</i>\n      <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n    </div>\n  </div>\n  <div class=\"frequency-responsibility-list-body\">\n    <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n    <div class=\"frequency-responsibility-list-search vx-mb-2\">\n      <i class=\"icons vx-fs-12\">&#xe90b;</i>\n      <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n        placeholder=\"Search Responsibilities\" />\n    </div>\n    <ng-container *ngIf=\"responsibilitiesData?.pagination as pagination\">\n      <app-pagination *ngIf=\"pagination?.total_pages > 1\" [start]=\"pagination?.responsibilities_from\"\n        [end]=\"pagination?.responsibilities_to\" [total]=\"pagination?.total_responsibilities\"\n        [pageCount]=\"pagination?.total_pages\" [currentPage]=\"responsibilityCurrentPage\"\n        (selectedPage)=\"responsibilityPageChange($event)\">\n      </app-pagination>\n    </ng-container>\n\n    <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n    <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n        !responsibilityLoader && responsibilitiesData?.total_pages > 1\n      \">\n      <app-no-data *ngIf=\"\n          responsibilitiesData?.responsibilities?.length === 0 &&\n          !responsibilityLoader\n        \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n      <ng-container *ngIf=\"\n          responsibilitiesData?.responsibilities?.length > 0 &&\n          !responsibilityLoader\n        \">\n        <div class=\"table-header\">\n          <div class=\"table-row\">\n            <div\n              class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n              #\n            </div>\n            <div\n              class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\">\n              RESPONSIBILITIES\n            </div>\n            <div\n              class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n              RESPONSIBILITY CENTER\n            </div>\n            <div\n              class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n            </div>\n          </div>\n        </div>\n        <div class=\"table-body\">\n          <!-- when click on radio then active class should be true -->\n          <ng-container *ngFor=\"\n              let responsibility of responsibilitiesData?.responsibilities;\n              let i = index\n            \">\n            <ng-container *ngIf=\"(responsibilitiesData?.page * responsibilitiesData?.limit -\n            responsibilitiesData?.limit +\n            i +\n            1) as srNo\">\n              <div class=\"table-row\"\n                [class.resp]=\"responsibility?.assigneeDetails?.length === 1 || (responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType))\"\n                [class.active]=\"\n                selectedResponsibilityValues?.responsibility?.id === responsibility?.id && responsibility?.assigneeDetails?.length === 1\n              \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n                <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n                  <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                    <div class=\"sr-no\" [appTooltip]=\"\n                      srNo  \n                    \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                      {{srNo}}\n                    </div>\n                    <app-cs-radio\n                      *ngIf=\"assigneeDetails?.length === 1 || (responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType))\"\n                      [name]=\"'onCompletion'\" [checked]=\"\n                      selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n                    \"\n                      (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n                  </div>\n\n                  <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n                    <div class=\"value vx-fs-12 vx-label-txt vx-pr-5  vx-d-flex vx-align-center\">\n                      <div class=\"avatar-list vx-d-flex vx-align-center\">\n                        <lib-avatar-v2 [avatarList]=\"responsibility?.allAssignee\"\n                          [type]=\"'SINGLE_AVATAR'\"></lib-avatar-v2>\n                      </div>\n\n                      <span class=\"value-text vx-ml-1 resp-name\" [appTooltip]=\"responsibility?.title\"\n                        placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n                        responsibility?.controlId }} {{\n                        responsibility?.title\n                        }}</span>\n                    </div>\n                  </div>\n\n                  <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n                    <ng-container *ngIf=\"responsibility?.allRc as rc\">\n                      <div class=\"program-inner vx-d-block\">\n                        <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n                        rc?.length\n                          ? rc[0]?.name\n                          : '--'\n                      \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                          {{\n                          rc?.length\n                          ? rc[0]?.name\n                          : \"--\"\n                          }}\n                        </div>\n                        <ng-container *ngIf=\"\n                        rc?.length \n                      \">\n                        </ng-container>\n                      </div>\n                      <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n                        class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n                        +{{ rc?.length - 1 }}\n                      </button>\n                      <app-popover #rcPopup>\n                        <div class=\"wf-action-list\">\n                          <ul class=\"action-item\">\n                            <li *ngFor=\"\n                            let data of rc?.slice(\n                              1,\n                              rc?.length\n                            )\n                          \">\n                              <div class=\"avatar-card\">\n                                <div class=\"vx-d-block vx-w-100\">\n                                  <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n                                    type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n                                </div>\n                              </div>\n                            </li>\n                          </ul>\n                        </div>\n                      </app-popover>\n                    </ng-container>\n                  </div>\n                  <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n                    (click)=\"onToggleResponsibility(responsibility)\">\n                    <ng-container\n                      *ngIf=\"assigneeDetails?.length > 1 && !(responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType)); else closeIcon\">\n                      <i *ngIf=\"\n                        openedResponsibility.includes(responsibility.id);\n                        else closeIcon\n                      \" class=\"icons vx-fs-10\">&#xe9e7;</i>\n                      <ng-template #closeIcon>\n                        <i class=\"icons vx-fs-10\"> &#xe9e8;</i>\n                      </ng-template>\n                    </ng-container>\n                  </div>\n                </ng-container>\n              </div>\n              <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n                [responsibility]=\"responsibility\" [srNo]=\"srNo\" [selectedResponsibility]=\"selectedResponsibilityValues\"\n                (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n            </ng-container>\n          </ng-container>\n        </div>\n      </ng-container>\n    </div>\n    <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n      (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n      [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n  </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { FrequencyService } from '../frequency.service';\nimport moment from 'moment/moment';\nimport { elementAt } from 'rxjs/operators';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\n\n@Component({\n  selector: 'app-frequency-on-completion-of',\n  templateUrl: './frequency-on-completion-of.component.html',\n  styleUrls: ['./frequency-on-completion-of.component.less'],\n})\nexport class FrequencyOnCompletionOfComponent implements OnInit {\n  @Input() mode: any = '';\n  @Input() feature: any;\n  @Input() onCompletionResponsibility: any;\n  DEFAULT_TIME: string = DEFAULT_TIME;\n  onCompletionOfInput = 1;\n  onCompletionOfWindow = 3;\n  onCompletionOfFailed = 5;\n  onCompletionOfTime = DEFAULT_TIME;\n  onCompletionOfResponsibility: Array<any> = [];\n  isLifecycleModified = false;\n  selectedResponsibility = 0;\n  placeholder = 'Loading...';\n  frequencyInfo: any;\n  selectedResponsibilityDetails: any = {};\n\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  @Input() frequencyData: any;\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n  @Output() radioForm = new EventEmitter<any>();\n  openRadio: boolean = false;\n  backButton: boolean = false;\n  isSelectedData: boolean = false;\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    this.getCompletionReports();\n    this.getOnCompletionFrequency();\n    this.isSelectedData = this.selectedResponsibilityDetails\n      ? Object.keys(this.selectedResponsibilityDetails)?.length > 0\n      : false;\n  }\n\n  populateFrequency() {\n    const frequencySelected = this.frequencyData.pattern.split('~');\n    this.onCompletionOfInput = parseInt(frequencySelected[3]);\n    this.onCompletionOfFailed = this.frequencyData.failed;\n    this.onCompletionOfWindow = this.frequencyData.window;\n    this.onCompletionOfTime = this.frequencyData.failedTime;\n    this.selectedResponsibilityDetails = this.frequencyData.onCompletionResponsibility;\n    this.getOnCompletionFrequency();\n    this.isSelectedData = this.selectedResponsibilityDetails\n      ? Object.keys(this.selectedResponsibilityDetails)?.length > 0\n      : false;\n  }\n\n  onTimeChanged(event: string) {\n    this.onCompletionOfTime = event;\n    this.getOnCompletionFrequency();\n  }\n\n  onValueChange(event: any) {\n    if (event.type === 'completed') {\n      this.onCompletionOfWindow = event.value;\n    } else {\n      this.onCompletionOfFailed = event.value;\n    }\n    this.getOnCompletionFrequency();\n  }\n\n  onResponsibilitySelection(event: any) {\n    this.selectedResponsibilityDetails = event;\n    this.onCompletionResponsibility = event?.responsibility;\n    this.getOnCompletionFrequency();\n  }\n\n  getCompletionReports() {\n    this.selectedResponsibility = 0;\n    this.placeholder = 'Select a Responsibility';\n    this.onCompletionOfResponsibility = [];\n\n    if (this.frequencyData?.onCompletionReportDetails) {\n      this.onCompletionOfResponsibility.push(\n        this.frequencyData?.onCompletionReportDetails\n      );\n    }\n\n    if (\n      this.frequencyData.pattern != '' &&\n      parseInt(this.frequencyData.pattern.split('~')[0]) === 6\n    ) {\n      this.populateFrequency();\n    }\n  }\n\n  inputValueChange(event: any) {\n    this.onCompletionOfInput = Number(event.target.value);\n    if (this.onCompletionOfInput < 1) {\n      this.onCompletionOfInput = 1;\n    }\n    this.getOnCompletionFrequency();\n  }\n\n  getOnCompletionFrequency() {\n    this.frequencyInfo.placeholder =\n      this.onCompletionOfInput +\n      ' ' +\n      (this.onCompletionOfInput > 1 ? 'days' : 'day') +\n      ' after completion of ' +\n      (this.onCompletionOfResponsibility &&\n      this.selectedResponsibilityDetails?.responsibility?.title\n        ? this.selectedResponsibilityDetails?.responsibility?.title\n        : '');\n    this.frequencyInfo.pattern =\n      6 + '~' + '0' + '~' + '0' + '~' + this.onCompletionOfInput;\n    this.frequencyInfo.case = 'on_complete';\n    this.frequencyInfo.failedAfter = this.onCompletionOfFailed;\n    this.frequencyInfo.window = this.onCompletionOfWindow;\n    this.frequencyInfo.timeIn12hr = this.onCompletionOfTime;\n    this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(\n      this.onCompletionOfTime\n    );\n    this.frequencyInfo.failed_time_utc = 0;\n    this.frequencyInfo.onCompletionResponsibility = {\n      title: this.selectedResponsibilityDetails?.responsibility?.title,\n      id: this.selectedResponsibilityDetails?.responsibility?.id,\n    };\n    this.frequencyInfo.onCompletion = {\n      dueAfter: this.onCompletionOfInput,\n      responsibility: this.selectedResponsibilityDetails?.responsibility?.id,\n      assignee: this.selectedResponsibilityDetails?.responsibility?.assigneeDetails[0]?.assignee,\n      responsibilityCenter: this.selectedResponsibilityDetails?.responsibility?.assigneeDetails[0]?.responsibilityCenter\n    }\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  openRadioResponsibility(event: any) {\n    if (event === 'backToOnCompletion') {\n      this.backButton = true;\n      this.openRadio = false;\n    } else {\n      this.openRadio = true;\n      this.backButton = false;\n    }\n    this.radioForm.emit(this.openRadio);\n  }\n\n  remove() {\n    this.selectedResponsibilityDetails = {};\n    this.isSelectedData = this.selectedResponsibilityDetails\n      ? Object.keys(this.selectedResponsibilityDetails)?.length > 0\n      : false;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n\n  timeSelection(event: any) {\n    const selectedValue = event.selectedValue;\n    this.onTimeChanged(selectedValue);\n  }\n}\n","<div class=\"frequency-completion\" *ngIf=\"mode !== 'policy' || backButton\">\n  <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n    DUE DATE FREQUENCY:\n  </div>\n  <div class=\"frequency-completion-inner\">\n    <div class=\"frequency-completion-top vx-p-3 vx-d-flex vx-align-center\">\n      <input class=\"countNum\" type=\"number\" [(ngModel)]=\"onCompletionOfInput\" (change)=\"inputValueChange($event)\"\n        onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\" />\n      <div class=\"vx-fs-13 vx-paragraph-txt\">day after completion of</div>\n    </div>\n    <div class=\"frequency-completion-bottom vx-p-3\">\n      <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n        RESPONSIBILITY\n      </div>\n      <div class=\"vx-d-flex vx-align-center\">\n        <ng-container>\n          <div *ngIf=\"!onCompletionResponsibility?.title\" [class.disabled]=\"placeholder === 'Loading...'\"\n            class=\"select-box vx-fs-11 vx-paragraph-txt vx-p-2 vx-pl-3 vx-pr-3 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\"\n            (click)=\"openRadioResponsibility($event)\">\n            {{\n            placeholder === \"Loading...\"\n            ? \"Loading...\"\n            : \"Select a Responsibility\"\n            }}\n            <i class=\"icons vx-fs-10\">&#xe9e8;</i>\n          </div>\n          <div *ngIf=\"onCompletionResponsibility?.title as respName\"\n            class=\"after-select-box vx-p-1 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\">\n            <div class=\"select-chip vx-fs-12 vx-paragraph-txt vx-p-1 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center\">\n              <i class=\"icons cross vx-fs-14 vx-mr-1\" (click)=\"remove()\">&#xe9ae;</i>\n              <span [appTooltip]=\"respName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n                respName }}</span>\n            </div>\n            <button\n              class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center\"\n              (click)=\"openRadioResponsibility($event)\">\n              <i class=\"icons vx-mr-1\" (click)=\"openRadioResponsibility($event)\">&#xe90c;</i>\n              EDIT\n            </button>\n          </div>\n          <app-frequency-responsibility-list *ngIf=\"openRadio\" [feature]=\"feature\" [selectedResponsibilityDetails]=\"\n          onCompletionResponsibility\n            \" (backButton)=\"openRadioResponsibility($event)\"\n            (selectedResponsibility)=\"onResponsibilitySelection($event)\"></app-frequency-responsibility-list>\n        </ng-container>\n\n        <div class=\"time-picker-group vx-d-flex\" *ngIf=\"!openRadio\">\n          <div class=\"time-field\" appPopover (click)=\"timePicker.popover()\" placement=\"right\">\n            <input class=\"input\" [placeholder]=\"onCompletionOfTime | uppercase\" readonly />\n            <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\n              <i class=\"icons vx-fs-12 vx-paragraph-txt\">&#xe955;</i>\n            </div>\n          </div>\n          <app-popover #timePicker [dontCloseonClick]=\"true\">\n            <app-time-picker [time]=\"onCompletionOfTime\" (onTimeSelection)=\"\n                timeSelection($event); timePicker.closePopover('top')\n              \"></app-time-picker>\n          </app-popover>\n        </div>\n      </div>\n    </div>\n  </div>\n  <app-frequency-due-date [id]=\"3\" [pageName]=\"'onCompletion'\" [mode]=\"mode\" [isDeactivated]=\"false\"\n    [completedValue]=\"onCompletionOfWindow\" [notCompletedValue]=\"onCompletionOfFailed\"\n    (valueChange)=\"onValueChange($event)\"></app-frequency-due-date>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { FrequencyService } from '../frequency.service';\nimport { DEFAULT_TIME } from '../../../constants/time.constants';\nimport { ONGOING_FREQUENCY } from '../../../constants/common.constants';\n@Component({\n  selector: 'app-frequency-ongoing',\n  templateUrl: './frequency-ongoing.component.html',\n  styleUrls: ['./frequency-ongoing.component.less'],\n})\nexport class FrequencyOngoingComponent implements OnInit {\n  @Input() selectedType = 0; // selected type\n  @Input() selectedOngoingType = 2; // default month selected;\n  @Input() frequencyData: any;\n\n  ongoingType = ['Week', 'Month', 'Quarter', 'Every 6 months', 'Annual'];\n  frequencyInfo: any;\n  ongoingFrequency = ONGOING_FREQUENCY;\n\n  @Input() startDate = Math.floor(Date.now() / 1000);\n  lifecycleDetails: any = '0000-00-00~~0';\n\n  @Output() frequencyDetails = new EventEmitter<any>();\n\n  constructor(private frequencyService: FrequencyService) {}\n\n  ngOnInit(): void {\n    this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);\n    if (\n      this.frequencyData.pattern != '' &&\n      parseInt(this.frequencyData.pattern.split('~')[0]) === 10\n    ) {\n      this.populateFrequency();\n    }\n    this.getOngoingFrequency();\n  }\n\n  populateFrequency() {\n    const frequencySelected = this.frequencyData.pattern.split('~');\n    this.selectedType = parseInt(frequencySelected[1]);\n    this.selectedOngoingType =\n      parseInt(frequencySelected[2]) === 0 ? 2 : parseInt(frequencySelected[2]);\n  }\n\n  onSelected(event: any) {\n    this.selectedType = Number(event.target.value);\n    this.getOngoingFrequency();\n  }\n\n  onSelectedOnGoingType(event: any) {\n    this.selectedOngoingType = Number(event.target.value);\n    this.getOngoingFrequency();\n  }\n\n  getOngoingFrequency() {\n    this.frequencyInfo.placeholder = 'You have selected an ongoing frequency.';\n    this.frequencyInfo.pattern =\n      10 +\n      '~' +\n      this.selectedType +\n      '~' +\n      (this.selectedType ? this.selectedOngoingType : 0) +\n      '~0';\n    this.frequencyInfo.case = 'on_going';\n    this.frequencyInfo.failedAfter = 0;\n    this.frequencyInfo.window = 0;\n    this.frequencyInfo.timeIn12hr = DEFAULT_TIME;\n    this.frequencyInfo.timeIn24Hr =\n      this.frequencyService.timeFrom12hTo24h(DEFAULT_TIME);\n    this.frequencyInfo.failed_time_utc = 0;\n    this.frequencyInfo.reportId = 0;\n    this.frequencyInfo.selectedType = this.selectedType;\n    this.frequencyInfo.selectedOngoingType = this.selectedOngoingType;\n    this.frequencyInfo.selectedDay = [];\n    this.frequencyInfo.selectedMonth = [];\n    this.frequencyDetails.emit(this.frequencyInfo);\n  }\n}\n","<div class=\"frequency-ongoing\">\n    <div class=\"frequency-ongoing-item first vx-p-3 vx-d-flex vx-align-center\">\n        <div class=\"vx-fs-13 vx-paragraph-txt vx-p-3 vx-pt-4 vx-pb-4 vx-d-block\">\n            {{ongoingFrequency}}\n        </div>\n\n    </div>\n</div>","import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n} from '@angular/core';\nimport moment from 'moment/moment';\nimport { FrequencyService } from '../frequency.service';\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\n\n@Component({\n  selector: 'app-frequency-container',\n  templateUrl: './frequency-container.component.html',\n  styleUrls: ['./frequency-container.component.less'],\n})\nexport class FrequencyContainerComponent implements OnInit, OnChanges {\n  frequencyTab = 'daily';\n  currentTabName = 'a Daily';\n\n  @Input() frequencyDetails: any;\n  @Output() selectedFrequency = new EventEmitter<any>();\n  @Output() closeFrequency = new EventEmitter<any>();\n  @Input() mode: any = '';\n  @Input() feature: any;\n  @Input() pageType: 'responsibility' | 'policy' = 'responsibility';\n  @Input() onCompletionResponsibility: any;\n\n  frequencyData: any;\n\n  frequencyList = [\n    {\n      name: 'Daily',\n      type: 'daily',\n    },\n    {\n      name: 'Weekly',\n      type: 'weekly',\n    },\n    {\n      name: 'Monthly',\n      type: 'monthly',\n    },\n    {\n      name: 'Quarterly',\n      type: 'quarterly',\n    },\n    {\n      name: 'Biannual',\n      type: 'biannual',\n    },\n    {\n      name: 'Annual',\n      type: 'annual',\n    },\n    {\n      name: 'One Time',\n      type: 'oneTime',\n    },\n    {\n      name: 'Random',\n      type: 'random',\n    },\n    {\n      name: 'On Completion Of',\n      type: 'on_complete',\n    },\n    {\n      name: 'Ongoing',\n      type: 'ongoing',\n    },\n  ];\n\n  selectedFrequencyData: any;\n  isNextDisabled: any = false;\n  featureFlag_on_completion_of: any;\n  openedRadioForm: boolean = false;\n  constructor(\n    private frequencyService: FrequencyService,\n    private snackbar: SnackBarService\n  ) {}\n\n  ngOnInit(): void {\n    this.featureFlag_on_completion_of = this.feature.isFeatureEnabled(\n      'ff_frequency_on_completion_of'\n    );\n    if (this.frequencyDetails.pattern != '') {\n      this.populateFrequency();\n    }\n    const hideElements = ['random', 'on_complete', 'ongoing'];\n    if (this.mode == 'policy') {\n      hideElements.forEach((element: any) => {\n        const index = this.frequencyList.findIndex(\n          (elementIndex: any) => elementIndex.type == element\n        );\n        this.frequencyList.splice(index, 1);\n      });\n    }\n    const hideElements2 = ['daily', 'random', 'on_complete', 'ongoing'];\n    if (this.mode == 'reviewerFrequency') {\n      this.frequencyTab =\n        this.frequencyDetails?.pattern == '' ? 'weekly' : this.frequencyTab;\n      this.currentTabName =\n        this.frequencyDetails?.pattern == '' ? 'a weekly' : this.currentTabName;\n\n      hideElements2.forEach((element: any) => {\n        const index = this.frequencyList.findIndex(\n          (elementIndex: any) => elementIndex.type == element\n        );\n        this.frequencyList.splice(index, 1);\n      });\n    }\n  }\n\n  ngOnChanges() {\n    this.selectedFrequencyData = Object.assign({ ...this.frequencyDetails });\n    this.frequencyData = Object.assign({ ...this.frequencyDetails });\n  }\n\n  populateFrequency() {\n    const frequencyPattern = parseInt(\n      this.frequencyDetails.pattern.split('~')[0]\n    );\n\n    switch (frequencyPattern) {\n      case 0:\n        this.frequencyTab = 'oneTime';\n        this.currentTabName = 'a one time';\n        break;\n      case 1:\n        this.frequencyTab = 'daily';\n        this.currentTabName = 'a daily';\n        break;\n      case 2:\n        this.frequencyTab = 'weekly';\n        this.currentTabName = 'a weekly';\n        break;\n      case 3:\n        this.frequencyTab = 'monthly';\n        this.currentTabName = 'a monthly';\n        break;\n      case 4:\n        this.frequencyTab = 'annual';\n        this.currentTabName = 'an annual ';\n        break;\n      case 5:\n        this.frequencyTab = 'daily';\n        this.currentTabName = 'a daily';\n        break;\n      case 6:\n        this.frequencyTab = 'on_complete';\n        this.currentTabName = 'an on completion of';\n        this.frequencyData.report_id = this.frequencyDetails.selectedReport;\n        break;\n      case 7:\n        this.frequencyTab = 'quarterly';\n        this.currentTabName = 'a quarterly';\n        break;\n      case 8:\n        this.frequencyTab = 'random';\n        this.currentTabName = 'a random';\n        break;\n      case 9:\n        this.frequencyTab = 'biannual';\n        this.currentTabName = 'a biannual';\n        break;\n      case 10:\n        this.frequencyTab = 'ongoing';\n        this.currentTabName = 'an ongoing';\n        break;\n    }\n    this.isNextDisabled = false;\n  }\n\n  changeFrequencyTab(frequency: any) {\n    this.frequencyTab = frequency.type;\n\n    if (frequency.name == 'One Time') {\n      this.currentTabName = 'a one time';\n    } else {\n      this.currentTabName =\n        frequency.name.startsWith('On') ||\n        frequency.name.toLowerCase() === 'annual'\n          ? 'an ' + frequency.name\n          : 'a ' + frequency.name;\n    }\n  }\n\n  isInvalid(): boolean {\n    let isInvalid = false;\n    const frequencyDetails = this.frequencyData?.pattern?.split('~');\n    switch (this.frequencyTab) {\n      case 'daily':\n        if (this.frequencyData.continuous_failed_days < 2) {\n          this.snackbar.show('Input value should be greater than 1.', 'alert');\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n          this.isNextDisabled = false;\n        }\n        break;\n      case 'weekly':\n        if (this.frequencyData.continuous_failed_days < 2) {\n          this.snackbar.show('Input value should be greater than 1.', 'alert');\n          isInvalid = true;\n          break;\n        } else {\n          isInvalid = false;\n          this.isNextDisabled = false;\n        }\n\n        if (\n          frequencyDetails[1] == '' ||\n          !frequencyDetails[1] ||\n          frequencyDetails.length < 4\n        ) {\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n        }\n\n        break;\n      case 'monthly':\n        if (this.frequencyData.continuous_failed_days < 2) {\n          this.snackbar.show('Input value should be greater than 1.', 'alert');\n          isInvalid = true;\n          break;\n        } else {\n          isInvalid = false;\n          this.isNextDisabled = false;\n        }\n\n        if (\n          frequencyDetails[2] == '' ||\n          !frequencyDetails[2] ||\n          frequencyDetails.length < 4\n        ) {\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n        }\n\n        break;\n      case 'biannual':\n        if (\n          frequencyDetails.length === 0 ||\n          frequencyDetails[2] === '' ||\n          frequencyDetails[2].split(',')?.length < 2\n        ) {\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n        }\n        break;\n      case 'oneTime':\n        if (frequencyDetails?.length > 0) {\n          const selectedTime = moment(\n            `${frequencyDetails[3]}-${frequencyDetails[2]}-${frequencyDetails[1]} ${this.frequencyData.timeIn12hr}`,\n            'DD-MM-YYYY HH:mm a'\n          ).unix();\n          if (Date.now() / 1000 > selectedTime) {\n            this.snackbar.show('Please set a future date.', 'alert');\n            isInvalid = true;\n            break;\n          } else {\n            isInvalid = false;\n            this.isNextDisabled = false;\n          }\n        } else {\n          isInvalid = true;\n        }\n        break;\n      case 'on_complete':\n        if (this.frequencyData.onCompletion?.responsibility > 0) {\n          isInvalid = false;\n        } else {\n          isInvalid = true;\n        }\n        break;\n\n      case 'random':\n        if (\n          parseInt(frequencyDetails[1]) == 2 &&\n          (frequencyDetails[2] == '' ||\n            !frequencyDetails[2] ||\n            frequencyDetails.length < 4)\n        ) {\n          isInvalid = true;\n        } else {\n          isInvalid = false;\n        }\n        break;\n      default:\n        isInvalid = false;\n    }\n    return isInvalid;\n  }\n\n  onFrequencySelected(event: any) {\n    this.frequencyData = event;\n    this.isNextDisabled = this.isInvalid();\n  }\n\n  openedRadio(event: any) {\n    this.openedRadioForm = event;\n  }\n\n  //   checkNextValidity()\n  // {\n\n  // }\n\n  save() {\n    this.selectedFrequency.emit(this.frequencyData);\n  }\n  close() {\n    this.closeFrequency.emit();\n  }\n}\n","<ng-container *ngIf=\"mode !== 'policy'\">\n  <div class=\"frequency-dialog\" *ngIf=\"mode !== 'policy'\">\n    <div class=\"frequency-dialog-head vx-p-3 vx-mb-4 vx-d-flex vx-align-center vx-justify-between\">\n      <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Set a Frequency</div>\n    </div>\n    <div class=\"frequency-dialog-body vx-pl-4 vx-pr-4\">\n      <div class=\"frequency-dialog-body-inner\" [ngSwitch]=\"frequencyTab\">\n        <div class=\"frequency-tab vx-d-flex vx-align-center\">\n          <ng-container *ngFor=\"let frequencyType of frequencyList; let i = index\">\n            <button (click)=\"changeFrequencyTab(frequencyType)\"\n              class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0\"\n              [class.active]=\"frequencyType?.type == frequencyTab\">{{ frequencyType?.name }}</button>\n          </ng-container>\n        </div>\n        <div class=\"frequency-tab-bottom vx-pl-4 vx-pr-4\">\n          <!-- Daily Frequency Start -->\n          <app-frequency-daily *ngSwitchCase=\"'daily'\" [mode]=\"mode\" [pageType]=\"pageType\"\n            (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-daily>\n          <!-- Daily Frequency End -->\n          <!-- Weekly Frequency Start -->\n          <app-frequency-weekly *ngSwitchCase=\"'weekly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n            (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-weekly>\n          <!-- Weekly Frequency End -->\n          <!-- Monthly Frequency Start -->\n          <app-frequency-monthly *ngSwitchCase=\"'monthly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n            (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-monthly>\n          <!-- Monthly Frequency End -->\n          <!-- Quarterly Frequency Start -->\n          <app-frequency-quarterly *ngSwitchCase=\"'quarterly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n            (frequencyDetails)=\"onFrequencySelected($event)\"\n            [frequencyData]=\"frequencyDetails\"></app-frequency-quarterly>\n          <!-- Quarterly Frequency End -->\n          <!-- Biannual Frequency Start -->\n          <app-frequency-biannual *ngSwitchCase=\"'biannual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n            (frequencyDetails)=\"onFrequencySelected($event)\"\n            [frequencyData]=\"frequencyDetails\"></app-frequency-biannual>\n          <!-- Biannual Frequency End -->\n          <!-- Annual Frequency Start -->\n          <app-frequency-annual *ngSwitchCase=\"'annual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n            (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-annual>\n          <!-- Annual Frequency End -->\n          <!-- One Time Frequency Start -->\n          <app-frequency-one-time *ngSwitchCase=\"'oneTime'\" [mode]=\"mode\" [pageType]=\"pageType\"\n            (frequencyDetails)=\"onFrequencySelected($event)\"\n            [frequencyData]=\"frequencyDetails\"></app-frequency-one-time>\n          <!-- One Time Frequency End -->\n          <!-- Random Frequency Start -->\n          <app-frequency-random *ngSwitchCase=\"'random'\" [mode]=\"mode\" (frequencyDetails)=\"onFrequencySelected($event)\"\n            [frequencyData]=\"frequencyDetails\"></app-frequency-random>\n          <!-- Random Frequency End -->\n          <!-- On Completion Frequency Start -->\n          <app-frequency-on-completion-of *ngSwitchCase=\"'on_complete'\" [mode]=\"mode\" [feature]=\"feature\"\n            (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"\n            [onCompletionResponsibility]=\"onCompletionResponsibility\"\n            (radioForm)=\"openedRadio($event)\"></app-frequency-on-completion-of>\n          <!-- On Completion Frequency End -->\n          <!-- Ongoing Frequency Start -->\n          <app-frequency-ongoing *ngSwitchCase=\"'ongoing'\" (frequencyDetails)=\"onFrequencySelected($event)\"\n            [frequencyData]=\"frequencyDetails\"></app-frequency-ongoing>\n          <!-- Ongoing Frequency End -->\n        </div>\n      </div>\n    </div>\n\n    <div class=\"frequency-dialog-footer\" *ngIf=\"!openedRadioForm\">\n      <app-floating-bar [showFrequencyText]=\"true\" [currentFrequency]=\"currentTabName\" [isDisabled]=\"isNextDisabled\"\n        (closeEvent)=\"save()\" (closeList)=\"close()\"></app-floating-bar>\n    </div>\n  </div>\n</ng-container>\n<!-- When responsibility list show then hide frequency-dialog html -->\n\n<!-- For Policy -->\n<div class=\"frequency-dialog\" *ngIf=\"mode === 'policy'\">\n  <div class=\"frequency-dialog-head vx-p-3 vx-mb-4 vx-d-flex vx-align-center vx-justify-between\">\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Set a Frequency</div>\n  </div>\n  <div class=\"frequency-dialog-body vx-pl-4 vx-pr-4\">\n    <div class=\"frequency-dialog-body-inner\" [ngSwitch]=\"frequencyTab\">\n      <div class=\"frequency-tab vx-d-flex vx-align-center\">\n        <ng-container *ngFor=\"let frequencyType of frequencyList; let i = index\">\n          <button (click)=\"changeFrequencyTab(frequencyType)\"\n            class=\"tab-btn vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0\"\n            [class.active]=\"frequencyType?.type == frequencyTab\">{{ frequencyType?.name }}</button>\n        </ng-container>\n      </div>\n      <div class=\"frequency-tab-bottom vx-pl-4 vx-pr-4\">\n        <!-- Daily Frequency Start -->\n        <app-frequency-daily *ngSwitchCase=\"'daily'\" [mode]=\"mode\" [pageType]=\"pageType\"\n          (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-daily>\n        <!-- Daily Frequency End -->\n        <!-- Weekly Frequency Start -->\n        <app-frequency-weekly *ngSwitchCase=\"'weekly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n          (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-weekly>\n        <!-- Weekly Frequency End -->\n        <!-- Monthly Frequency Start -->\n        <app-frequency-monthly *ngSwitchCase=\"'monthly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n          (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-monthly>\n        <!-- Monthly Frequency End -->\n        <!-- Quarterly Frequency Start -->\n        <app-frequency-quarterly *ngSwitchCase=\"'quarterly'\" [mode]=\"mode\" [pageType]=\"pageType\"\n          (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-quarterly>\n        <!-- Quarterly Frequency End -->\n        <!-- Biannual Frequency Start -->\n        <app-frequency-biannual *ngSwitchCase=\"'biannual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n          (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-biannual>\n        <!-- Biannual Frequency End -->\n        <!-- Annual Frequency Start -->\n        <app-frequency-annual *ngSwitchCase=\"'annual'\" [mode]=\"mode\" [pageType]=\"pageType\"\n          (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-annual>\n        <!-- Annual Frequency End -->\n        <!-- One Time Frequency Start -->\n        <app-frequency-one-time *ngSwitchCase=\"'oneTime'\" [mode]=\"mode\" [pageType]=\"pageType\"\n          (frequencyDetails)=\"onFrequencySelected($event)\" [frequencyData]=\"frequencyDetails\"></app-frequency-one-time>\n        <!-- One Time Frequency End -->\n        <!-- Random Frequency Start -->\n        <app-frequency-random *ngSwitchCase=\"'random'\" [mode]=\"mode\" (frequencyDetails)=\"onFrequencySelected($event)\"\n          [frequencyData]=\"frequencyDetails\"></app-frequency-random>\n        <!-- Random Frequency End -->\n        <!-- On Completion Frequency Start -->\n        <app-frequency-on-completion-of *ngSwitchCase=\"'on_complete'\" [mode]=\"mode\"\n          (frequencyDetails)=\"onFrequencySelected($event)\"\n          [frequencyData]=\"frequencyDetails\"></app-frequency-on-completion-of>\n        <!-- On Completion Frequency End -->\n        <!-- Ongoing Frequency Start -->\n        <app-frequency-ongoing *ngSwitchCase=\"'ongoing'\" (frequencyDetails)=\"onFrequencySelected($event)\"\n          [frequencyData]=\"frequencyDetails\"></app-frequency-ongoing>\n        <!-- Ongoing Frequency End -->\n      </div>\n    </div>\n  </div>\n  <div class=\"frequency-dialog-footer\">\n    <app-floating-bar [showFrequencyText]=\"true\" [currentFrequency]=\"currentTabName\" [isDisabled]=\"isNextDisabled\"\n      (closeEvent)=\"save()\" (closeList)=\"close()\"></app-floating-bar>\n  </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lib-framework-table-loader',\n  templateUrl: './framework-table-loader.component.html',\n  styleUrls: ['./framework-table-loader.component.less']\n})\nexport class FrameworkTableLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"framework-table-loader\">\n    <div class=\"table-row\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n        <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n            <div class=\"sr-no\"></div>\n        </div>\n        <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center name\">\n            <div class=\"loader\"></div>\n        </div>\n        <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center total\">\n        </div>\n        <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assigned\">\n        </div>\n        <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center unassigned\">\n        </div>\n        <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-end action\">\n            <div class=\"loader\"></div>\n        </div>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\n\n@Component({\n  selector: 'app-framework-list-table',\n  templateUrl: './framework-list-table.component.html',\n  styleUrls: ['./framework-list-table.component.less']\n})\nexport class FrameworkListTableComponent implements OnInit, OnChanges {\n  @Input() frameworksList!: any;\n  @Input() frameworkType: 'framework' | 'childFrameworks' = 'framework';\n  @Input() currentFramework!: any;\n  @Input() listLoader!: boolean;\n\n  @Output() selectedFramework = new EventEmitter();\n  loader:boolean = true;\n  constructor() { }\n  ngOnChanges(changes: SimpleChanges): void {\n   this.loader =  this.listLoader;\n  }\n  ngOnInit(): void {\n  }\n\n  selectFramework(data: any) {\n    this.selectedFramework.emit(data);\n  }\n\n}\n","<div class=\"framework-table-list\">\n    <div class=\"table-header\" *ngIf=\"loader || frameworksList?.data?.length\">\n        <div class=\"table-row\">\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">#</div>\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center name\">NAME</div>\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center total\">TOTAL</div>\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assigned\">\n                <!-- ASSIGNED -->\n            </div>\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center unassigned\">\n                <!-- UNASSIGNED -->\n            </div>\n            <div class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"></div>\n        </div>\n    </div>\n    <div class=\"table-body\">\n        <lib-framework-table-loader *ngIf=\"loader\"></lib-framework-table-loader>\n        <!-- when click on row then active class was true & radio was checked -->\n        <ng-container *ngIf=\"!loader\">\n            <div class=\"table-row\" (click)=\"selectFramework(framework)\" [class.row-clickable]=\"true\" [class.active]=\"currentFramework?.id==framework.id\" *ngFor=\"let framework of frameworksList?.data; let i = index;\">\n                <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                    <div class=\"sr-no\" [appTooltip]=\"i+frameworksList?.from\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{i+frameworksList?.from}}</div>\n                    <app-cs-radio [checked]=\"currentFramework?.id==framework.id\"></app-cs-radio>\n                </div>\n                <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center name\">\n                    <div class=\"vx-d-block vx-w-100\">\n                    <div class=\"name-inner vx-fs-12 vx-label-txt vx-pr-5\" [appTooltip]=\"framework?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{framework?.name}}</div>\n                    <div class=\"within-part\" *ngIf=\"framework?.within?.length\">\n                        <span class=\"within-box\">Within</span>\n                        <span class=\"value\">\n                          <span [appTooltip]=\"child\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" *ngFor=\"let child of framework?.within; let i = index\"><i class=\"icons\" *ngIf=\"i!=0\">&#xe96b;</i> {{child}} </span>\n                        </span>\n                    </div>\n                </div>\n                </div>\n                <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center total\">\n                    <div class=\"total-value vx-fs-10 vx-fw-500 vx-label-txt vx-pl-1 vx-pr-1 vx-lh-4\">{{framework?.totalControls}}</div>\n                </div>\n                <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center assigned\">\n                    <!-- <div class=\"assigned-value vx-fs-10 vx-fw-500 vx-label-txt vx-pl-1 vx-pr-1 vx-lh-4\">\n                        <span class=\"vx-pr-1 vx-mr-1 vx-d-inline-block\">{{framework?.assigned?.count}}</span> {{framework?.assigned?.percentage}}%\n                    </div> -->\n                </div>\n                <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center unassigned\">\n                    <!-- <div class=\"unassigned-value vx-fs-10 vx-fw-500 vx-label-txt vx-pl-1 vx-pr-1 vx-lh-4\">\n                        <span class=\"vx-pr-1 vx-mr-1 vx-d-inline-block\">{{framework?.unassigned?.count}}</span> {{framework?.unassigned?.percentage}}%\n                    </div> -->\n                </div>\n                <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-end action\">\n                    <button *ngIf=\"framework?.totalControls>0\" class=\"arrow vx-fs-12 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe970;</i></button>\n                </div>\n            </div>\n        </ng-container>\n\n    </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\n\n@Component({\n  selector: 'app-framework-responsibility-table',\n  templateUrl: './framework-responsibility-table.component.html',\n  styleUrls: ['./framework-responsibility-table.component.less']\n})\nexport class FrameworkResponsibilityTableComponent implements OnInit {\n  @Input() controlsList!:any;\n  @Output() selectedControl = new EventEmitter();\n  @Output() assignControl = new EventEmitter();\n  @Input() currentSelectedControl !:any;\n  @Input() listLoader!: boolean;\n\n  loader:boolean = true;\n  constructor() { }\n  ngOnChanges(changes: SimpleChanges): void {\n   this.loader =  this.listLoader;\n  }\n    ngOnInit(): void {\n    }\n  \n    selectControl(data:any){\n     this.selectedControl.emit(data);\n    }\n    assign(control:any){\n      this.assignControl.emit(control);\n\n    }\n\n}\n","<div class=\"framework-responsibility-table\">\n    <div class=\"table-header\"  *ngIf=\"loader || controlsList?.data?.length\">\n        <div class=\"table-row\">\n            <div\n                class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                #</div>\n            <div\n                class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center name\">\n                NAME</div>\n            <div\n                class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action-button\">\n            </div>\n        </div>\n    </div>\n    <div class=\"table-body\">\n        <lib-framework-table-loader *ngIf=\"loader\"></lib-framework-table-loader>\n        <!-- when radio button was checked then active class was true -->\n        <ng-container *ngIf=\"!loader\">\n            <div class=\"table-row\"  (click)=\"selectControl(control)\" [class.active]=\"currentSelectedControl?.id == control?.id\"\n            *ngFor=\"let control of controlsList?.data; let i =index;\">\n            <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n                <div class=\"sr-no\" [appTooltip]=\"i+controlsList.from\" placement=\"bottom\" delay=\"0\" type=\"black\"\n                    [tooltipMandatory]=\"true\">\n                    {{i+controlsList.from}}\n                    <app-cs-radio [checked]=\"currentSelectedControl?.id == control?.id\">\n                    </app-cs-radio>\n                </div>\n            </div>\n            <div class=\"table-column vx-pr-1 vx-d-flex vx-align-center name\">\n                <!-- <div class=\"vx-avatar-group vx-mr-2\">\n                    <div class=\"vx-avatar md\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                        <span class=\"blue\">hk</span>\n                        <img *ngIf=\"false\" src=\"https://s3-eu-west-1.amazonaws.com/eu.v-comply.com/profile_pic/thumb/1591875227667_vcomply.png\" alt=\"\">\n                    </div>\n                    <div class=\"vx-avatar md\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                        <span class=\"green\">hk</span>\n                        <img *ngIf=\"false\" src=\"https://s3-eu-west-1.amazonaws.com/eu.v-comply.com/profile_pic/thumb/1591875227667_vcomply.png\" alt=\"\">\n                    </div>\n                </div> -->\n                <div class=\"vx-d-block vx-w-100\">\n                    <div class=\"vx-d-flex vx-w-100\">\n                        <div class=\"responsibility-name vx-fs-12 vx-label-txt vx-pr-2\" [appTooltip]=\"control?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                            <!-- <span class=\"id vx-fs-10 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">[CID-18087001]</span> -->\n                            {{control?.name}}\n                        </div>\n                        <button class=\"info-btn vx-fs-14 vx-txt-blue vx-m-0 vx-p-0 vx-d-flex vx-align-center\" appPopover (click)=\"responsibilityInfoBtn.popover()\" placement=\"left\"><i class=\"icons\">&#xe932;</i></button>\n                        <app-popover #responsibilityInfoBtn [dontCloseonClick]=\"true\">\n                            <div class=\"wf-action-list\">\n                                <div class=\"responsibility-info vx-p-3\">\n                                    <!-- <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-mb-1\">FREQUENCY:</div>\n                                    <div class=\"vx-fs-13 vx-paragraph-txt\">{{(control?.frequency) ?control?.frequency: 'N/A'}}</div>\n                                    <div class=\"separator vx-mt-2 vx-mb-2\"></div> -->\n                                    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-mb-1\">OBJECTIVE:</div>\n                                    <div class=\"vx-fs-12 vx-paragraph-txt\" [innerHtml]=\"(control?.objectives) ? control?.objectives: 'N/A'\"></div>\n                                    <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-mb-1 vx-mt-1\">NOTES:</div>\n                                    <div class=\"vx-fs-12 vx-paragraph-txt\" [innerHtml]=\"(control?.description) ? control?.description: 'N/A'\"></div>\n                                </div>\n                            </div>\n                        </app-popover>\n                    </div>\n                    <div class=\"within-part\">\n                        <span class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">Frequency:</span>\n                        <span class=\"value\" [appTooltip]=\"(control?.frequency) ?control?.frequency: 'N/A'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{(control?.frequency) ?control?.frequency: 'N/A'}}</span>\n                    </div>\n                </div>\n            </div>\n            <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-end action-button\">\n                <button\n                    class=\"assign-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                    (click)=\"assign(control)\">ASSIGN</button>\n            </div>\n        </div>\n        </ng-container>\n\n    </div>\n</div>","import { HttpParams } from '@angular/common/http';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges,\n  ViewChild,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ResponsibilityService } from '../../workflow-services/responsibility.service';\nimport {\n  SelectedIds,\n  SelectedValues,\n} from './framework-integration-interfaces';\nimport { ParentTableComponent } from './parent-table/parent-table.component';\nimport { ASSETS } from '../../constants/assets.constants';\n\n@Component({\n  selector: 'app-framework-list',\n  templateUrl: './framework-list.component.html',\n  styleUrls: ['./framework-list.component.less'],\n})\nexport class FrameworkListComponent implements OnInit, OnChanges {\n  ASSETS = ASSETS;\n  breadCrumb: any[] = [];\n  search = '';\n  showParent = true;\n  showChild = false;\n  parentData: object = {};\n  @ViewChild('parentTable') tableComponent!: ParentTableComponent;\n  @Output() entrustFramework = new EventEmitter();\n  @Output() closeFramework = new EventEmitter();\n  @Output() assignControl = new EventEmitter();\n  @Input() previousSelectedValues!: any;\n  @Input() headerText: string = 'Select From a Framework';\n  @Input() workflowPage: Array<string> = [\n    'FRAMEWORK',\n    'CATEGORY',\n    'RESPONSIBILITY',\n  ];\n  subCategoriesList = {\n    from: 1,\n    to: 0,\n    currentPage: 1,\n    totalPages: 0,\n    totalRecords: 0,\n    data: [],\n  };\n  responsibilitiesList = {\n    from: 1,\n    to: 0,\n    currentPage: 1,\n    totalPages: 0,\n    totalRecords: 0,\n    data: [],\n  };\n\n  searchText = {\n    frameWork: '',\n    category: '',\n    responsibility: '',\n  };\n\n  selectedValues: SelectedValues = {\n    framework: {},\n    categories: {},\n    responsibilities: {},\n  };\n\n  submissionLoader = false;\n  currentCategory: any = {};\n\n  @Input() policy: any = {};\n  // @Output() changeTab = new EventEmitter();\n\n  currentBusinessCycle!: any;\n  loader = false;\n  unsubscribe = new Subject();\n\n  //program\n  subList = false;\n  @Input() frameWorkList: any;\n  // @Input() allPrograms: any[] = [];\n  @Input() selectedFrameWork!: any;\n  @Input() selectedCategories: any[] = [];\n  @ViewChild('searchField') searchfield!: any;\n  @ViewChild('searchCategory') searchCategory!: any;\n\n  frameworkData = {\n    data: [],\n    from: 0,\n    to: 0,\n    totalPages: 0,\n    totalRecords: 0,\n    currentPage: 1,\n  };\n  frameworkCount = {\n    regulations: 0,\n    standards: 0,\n    internalControls: 0,\n    others: 0,\n  };\n  frameTypeObject = {\n    regulations: 1,\n    standards: 2,\n    internalControls: 3,\n    others: 0,\n  };\n  placeholderText = {\n    framework: 'Search Frameworks',\n    categories: 'Search Categories',\n    responsibilities: 'Search Responsibilities',\n  };\n  controlsList: any[] = [];\n  displayConfirmationMessage = false;\n\n  activeTab: 'regulations' | 'standards' | 'internalControls' | 'others' =\n    'regulations';\n\n  currentList: 'framework' | 'categories' | 'responsibilities' = 'framework';\n  floatingBarDisplayKeys = {\n    framework: 'name',\n    categories: 'name',\n    responsibilities: 'name',\n  };\n\n  constructor(private responsibilityService: ResponsibilityService) { }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (this.previousSelectedValues) {\n      this.selectedValues = {\n        framework: this.previousSelectedValues.framework ?? {},\n        categories: this.previousSelectedValues.categories ?? {},\n        responsibilities: this.previousSelectedValues.responsibilities ?? {},\n      };\n    }\n  }\n  ngOnInit(): void {\n    this.getFrameworksCount();\n    this.getFrameworksList();\n  }\n\n  expandCategory(category: any) {\n    if (category.category_name) {\n      this.breadCrumb = [];\n      category.category_name.forEach((categoryItem: any, index: any) => {\n        let obj;\n        if (index == category.category_name.length - 1) {\n          obj = {\n            itemName: categoryItem,\n            itemId: category._id,\n          };\n        } else {\n          obj = {\n            itemName: categoryItem,\n            itemId: category.parent_cat_obj_ids[index],\n          };\n        }\n        this.breadCrumb.push(obj);\n      });\n    }\n  }\n\n  entrustFrameworkDetails(report: any) {\n    this.entrustFramework.emit(report);\n  }\n  close() {\n    this.closeFramework.emit();\n  }\n\n  getFrameworksCount(data?: any) {\n    let params = new HttpParams();\n    if (data?.search || this.searchText.frameWork) {\n      params = params.append('search', this.searchText.frameWork);\n    }\n    this.responsibilityService\n      .getFrameWorkCount(params)\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.frameworkCount = {\n            regulations: res.regulations ?? 0,\n            standards: res.standards ?? 0,\n            internalControls: res.internalControls ?? 0,\n            others: res.others ?? 0,\n          };\n        },\n        error: (err: any) => { },\n      });\n  }\n  getFrameworksList(data?: any) {\n    this.loader = true;\n    let params = new HttpParams();\n    params = params.append('type', this.frameTypeObject[this.activeTab]);\n    if (data?.search || this.searchText.frameWork) {\n      params = params.append('search', this.searchText.frameWork);\n    } else {\n      params = params.append('page', this.frameworkData.currentPage);\n    }\n    this.responsibilityService\n      .getFrameWorkList(params)\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.frameworkData.data = res.data;\n          this.frameworkData.from = res.items_from;\n          this.frameworkData.to = res.items_to;\n          this.frameworkData.totalPages = res.total_pages;\n          this.frameworkData.totalRecords = res.total_items;\n          this.loader = false;\n        },\n        error: (err: any) => {\n          this.loader = false;\n        },\n      });\n  }\n\n  getSubCategories(id?: any, data?: any) {\n    this.loader = true;\n    let params = new HttpParams();\n    if (data?.search || this.searchText.category) {\n      params = params.append('search', this.searchText.category);\n    } else {\n      params = params.append('page', this.subCategoriesList.currentPage);\n    }\n    this.responsibilityService\n      .getFrameworkSubCategories(id, params)\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.subCategoriesList.from = res.items_from ?? 1;\n          this.subCategoriesList.to = res.items_to ?? 0;\n          this.subCategoriesList.totalPages = res.total_pages ?? 0;\n          this.subCategoriesList.totalRecords = res.total_items ?? 0;\n          this.subCategoriesList.data = res.data ?? [];\n          this.loader = false;\n        },\n        error: (err: any) => {\n          this.loader = false;\n        },\n      });\n  }\n  changeTab(type: 'regulations' | 'standards' | 'internalControls' | 'others') {\n    this.activeTab = type;\n    this.frameworkData.currentPage = 1;\n    this.searchText.frameWork = '';\n    this.searchfield.nativeElement.value = '';\n    this.getFrameworksList();\n  }\n\n  getResponsibilities(id?: any, data?: any) {\n    this.loader = true;\n    let params = new HttpParams();\n    if (data?.search || this.searchText.responsibility) {\n      params = params.append('search', this.searchText.responsibility);\n    } else {\n      params = params.append('page', this.responsibilitiesList.currentPage);\n    }\n    this.responsibilityService\n      .getFrameworkControls(id, params)\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.controlsList = res;\n          this.responsibilitiesList.from = res.items_from ?? 1;\n          this.responsibilitiesList.to = res.items_to ?? 0;\n          this.responsibilitiesList.totalPages = res.total_pages ?? 0;\n          this.responsibilitiesList.totalRecords = res.total_items ?? 0;\n          this.responsibilitiesList.data = res.data ?? res;\n          this.loader = false;\n        },\n        error: (err: any) => {\n          this.loader = false;\n        },\n      });\n  }\n\n  changePage(\n    event: any,\n    type: 'frameworks' | 'categories' | 'responsibilities'\n  ) {\n    switch (type) {\n      case 'frameworks':\n        this.frameworkData.currentPage = event;\n        this.getFrameworksList();\n        break;\n      case 'categories':\n        this.subCategoriesList.currentPage = event;\n        this.getSubCategories(this.selectedValues.framework._id);\n        break;\n      case 'responsibilities':\n        this.responsibilitiesList.currentPage = event;\n        if (\n          this.selectedValues?.framework?.parent_list_details?.length == 0 &&\n          this.selectedValues?.framework?.child_list_details.length == 0 &&\n          this.selectedValues?.framework?.totalControls > 0\n        ) {\n          this.getResponsibilities(this.selectedValues.framework._id);\n        } else {\n          this.getResponsibilities(this.selectedValues.categories._id);\n        }\n        break;\n    }\n  }\n  searchBy(event: any, type: 'framework' | 'categories' | 'responsibilities') {\n    this.resetPagination();\n    switch (type) {\n      case 'framework':\n        if (this.searchText.frameWork != event) {\n          this.searchText.frameWork = event;\n          this.getFrameworksList({ search: true });\n          this.getFrameworksCount({ search: true });\n        }\n        break;\n      case 'categories':\n        if (this.searchText.category != event) {\n          this.searchText.category = event;\n          this.getSubCategories(this.selectedValues.framework._id, {\n            search: true,\n          });\n        }\n        break;\n      case 'responsibilities':\n        if (this.searchText.responsibility != event) {\n          this.searchText.responsibility = event;\n          if (\n            this.selectedValues?.framework?.parent_list_details?.length == 0 &&\n            this.selectedValues?.framework?.child_list_details.length == 0 &&\n            this.selectedValues?.framework?.totalControls > 0\n          ) {\n            this.getResponsibilities(this.selectedValues.framework._id);\n          } else {\n            this.getSubCategories(this.selectedValues.categories._id);\n          }\n        }\n        break;\n    }\n  }\n\n  selectFramework(data: any) {\n    switch (this.currentList) {\n      case 'framework':\n        this.selectedValues.framework = data;\n        this.selectedValues.categories = {};\n        this.selectedValues.responsibilities = {};\n\n        break;\n      case 'categories':\n        this.selectedValues.categories = data;\n\n        this.selectedValues.responsibilities = {};\n        break;\n      case 'responsibilities':\n        this.selectedValues.responsibilities = data;\n        break;\n      default:\n        break;\n    }\n  }\n  save() {\n    this.resetPagination();\n    switch (this.currentList) {\n      case 'framework':\n        if (\n          this.workflowPage?.length === 1 &&\n          this.workflowPage.includes('FRAMEWORK')\n        ) {\n          const frameworkDetails = this.selectedValues.framework;\n          this.assignControl.emit({\n            name: frameworkDetails?.name,\n            _id: frameworkDetails?._id,\n            type: frameworkDetails?.framework_type,\n            id: frameworkDetails?.id,\n            description: frameworkDetails?.description ?? '',\n          });\n        } else {\n          if (\n            this.selectedValues?.framework?.parent_list_details?.length == 0 &&\n            this.selectedValues?.framework?.child_list_details.length == 0 &&\n            this.selectedValues?.framework?.totalControls > 0\n          ) {\n            this.currentList = 'responsibilities';\n            this.getResponsibilities(this.selectedValues.framework._id);\n          } else {\n            this.currentList = 'categories';\n            this.getSubCategories(this.selectedValues.framework._id);\n          }\n        }\n        break;\n      case 'categories':\n        this.currentList = 'responsibilities';\n        this.getResponsibilities(this.selectedValues.categories._id);\n        break;\n      case 'responsibilities':\n        this.assignSelectedControl(this.selectedValues.responsibilities);\n        break;\n      default:\n        break;\n    }\n  }\n\n  goBack() {\n    this.resetPagination();\n    switch (this.currentList) {\n      case 'framework':\n        this.closeFramework.emit();\n        break;\n      case 'categories':\n        this.currentList = 'framework';\n        break;\n      case 'responsibilities':\n        if (\n          this.selectedValues?.framework?.parent_list_details?.length == 0 &&\n          this.selectedValues?.framework?.child_list_details.length == 0 &&\n          this.selectedValues?.framework?.totalControls > 0\n        ) {\n          this.currentList = 'framework';\n        } else {\n          this.currentList = 'categories';\n        }\n        break;\n      default:\n        break;\n    }\n  }\n  resetPagination() {\n    this.frameworkData.currentPage = 1;\n    this.subCategoriesList.currentPage = 1;\n    this.responsibilitiesList.currentPage = 1;\n  }\n\n  remove() {\n    switch (this.currentList) {\n      case 'framework':\n        this.selectedValues.framework = {};\n        this.selectedValues.categories = {};\n        this.selectedValues.responsibilities = {};\n        break;\n      case 'categories':\n        this.selectedValues.categories = {};\n        this.selectedValues.responsibilities = {};\n        break;\n      case 'responsibilities':\n        this.selectedValues.responsibilities = {};\n        break;\n    }\n  }\n\n  saveChanges(\n    type: 'programs' | 'categories' | 'responsibilities' | 'programsOnly'\n  ) {\n    switch (type) {\n      case 'programs':\n        this.currentList = 'categories';\n        this.selectedValues.categories = [];\n        this.selectedValues.responsibilities = [];\n        this.getSubCategories();\n        break;\n      case 'categories':\n        this.currentList = 'responsibilities';\n        this.selectedValues.responsibilities = [];\n        this.getResponsibilities();\n        break;\n      case 'responsibilities':\n        // this.submitprogramIntegration();\n        break;\n    }\n  }\n\n  assignSelectedControl(data: any) {\n    let selectedFrameworkData = this.selectedValues;\n    this.assignControl.emit({ data, selectedFrameworkData });\n  }\n}\n","<!-- <p>framework-list works!</p> -->\n<div class=\"framework-list\">\n  <div\n    class=\"framework-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div\n      *ngIf=\"currentList == 'framework'\"\n      class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\"\n    >\n      {{ headerText }}\n    </div>\n    <div\n      *ngIf=\"currentList == 'categories'\"\n      class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\"\n    >\n      {{ headerText }} > {{ selectedValues?.framework?.name }}\n    </div>\n\n    <div\n      *ngIf=\"currentList == 'responsibilities'\"\n      class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\"\n    >\n      <i class=\"icons\" (click)=\"goBack()\">&#xe91d;</i>\n      {{ selectedValues?.framework?.name }}\n    </div>\n\n    <!-- <div *ngIf=\"breadCrumb.length>0\" class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\">\n            <i class=\"icons\" *ngIf=\"breadCrumb?.length > 0\" (click)=\"getCategoryDetailsById()\">&#xe91d;</i>\n            <ng-container *ngFor=\"let item of breadCrumb; let i = index\">\n                <span class=\"arrow\">{{(i>0)?'>':''}}</span>\n                <span\n                    [class.link]=\"tableComponent.currentEntity || (!(tableComponent.currentEntity) && i !== breadCrumb?.length -1)\"\n                    (click)=\"getCategoryDetailsById(item.itemId)\" [appTooltip]=\"item.itemName\" placement=\"bottom\"\n                    delay=\"0\">{{item.itemName}}\n                </span>\n\n            </ng-container>\n            <ng-container *ngIf=\"tableComponent.currentEntity\"> <span class=\"arrow\">></span>\n                {{breadCrumb[breadCrumb?.length - 1].itemName}}\n                <span>&nbsp;for {{tableComponent.currentEntity}}</span>\n            </ng-container>\n        </div> -->\n  </div>\n  <div class=\"framework-list-body\">\n    <div class=\"filter-card-row\" *ngIf=\"currentList == 'framework'\">\n      <!--this section will not appear on child part -->\n      <div\n        class=\"filter-card\"\n        [class.active]=\"activeTab == 'regulations'\"\n        (click)=\"changeTab('regulations')\"\n      >\n        <div class=\"left\">\n          <label>Regulations</label>\n        </div>\n\n        <span class=\"counter\">{{ frameworkCount.regulations }}</span>\n      </div>\n      <div\n        class=\"filter-card\"\n        [class.active]=\"activeTab == 'standards'\"\n        (click)=\"changeTab('standards')\"\n      >\n        <div class=\"left\">\n          <label>Standards</label>\n        </div>\n        <span class=\"counter\">{{ frameworkCount.standards }}</span>\n      </div>\n      <div\n        class=\"filter-card\"\n        [class.active]=\"activeTab == 'internalControls'\"\n        (click)=\"changeTab('internalControls')\"\n      >\n        <div class=\"left\">\n          <label>Internal Controls</label>\n        </div>\n        <span class=\"counter\">{{ frameworkCount.internalControls }}</span>\n      </div>\n      <div\n        class=\"filter-card\"\n        [class.active]=\"activeTab == 'others'\"\n        (click)=\"changeTab('others')\"\n      >\n        <div class=\"left\">\n          <label>Others</label>\n        </div>\n        <span class=\"counter\">{{ frameworkCount.others }}</span>\n      </div>\n    </div>\n    <div class=\"framework-list-search\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        type=\"text\"\n        #searchField\n        [placeholder]=\"placeholderText[currentList]\"\n        (keyup.enter)=\"searchBy($event.target.value, currentList)\"\n      />\n    </div>\n    <!-- <app-workflow-pagination></app-workflow-pagination> -->\n    <app-pagination\n      *ngIf=\"currentList == 'framework' && frameworkData.totalPages > 1\"\n      [start]=\"frameworkData.from\"\n      [end]=\"frameworkData.to\"\n      [total]=\"frameworkData.totalRecords\"\n      [pageCount]=\"frameworkData.totalPages\"\n      [currentPage]=\"frameworkData.currentPage\"\n      (selectedPage)=\"changePage($event, 'frameworks')\"\n    ></app-pagination>\n    <app-pagination\n      *ngIf=\"currentList == 'categories' && subCategoriesList.totalPages > 1\"\n      [start]=\"subCategoriesList.from\"\n      [end]=\"subCategoriesList.to\"\n      [total]=\"subCategoriesList.totalRecords\"\n      [pageCount]=\"subCategoriesList.totalPages\"\n      [currentPage]=\"subCategoriesList.currentPage\"\n      (selectedPage)=\"changePage($event, 'categories')\"\n    ></app-pagination>\n    <app-pagination\n      *ngIf=\"\n        currentList == 'responsibilities' && responsibilitiesList.totalPages > 1\n      \"\n      [start]=\"responsibilitiesList.from\"\n      [end]=\"responsibilitiesList.to\"\n      [total]=\"responsibilitiesList.totalRecords\"\n      [pageCount]=\"responsibilitiesList.totalPages\"\n      [currentPage]=\"responsibilitiesList.currentPage\"\n      (selectedPage)=\"changePage($event, 'responsibilities')\"\n    >\n    </app-pagination>\n    <!-- For parent -->\n    <!-- <div class=\"framework-list-pagination\">\n                <app-workflow-pagination></app-workflow-pagination>\n            </div> -->\n    <!-- [class.no-card]=\"breadCrumb.length>0\" -->\n    <div\n      class=\"framework-list-table vx-mb-4\"\n      [class.no-card]=\"\n        currentList == 'categories' || currentList == 'responsibilities'\n      \"\n    >\n      <app-framework-list-table\n        *ngIf=\"currentList == 'framework'\"\n        [listLoader]=\"loader\"\n        [frameworkType]=\"'framework'\"\n        (selectedFramework)=\"selectFramework($event)\"\n        [currentFramework]=\"selectedValues[currentList]\"\n        [frameworksList]=\"frameworkData\"\n      >\n      </app-framework-list-table>\n      <app-framework-list-table\n        *ngIf=\"currentList == 'categories'\"\n        [listLoader]=\"loader\"\n        [frameworksList]=\"subCategoriesList\"\n        (selectedFramework)=\"selectFramework($event)\"\n        [currentFramework]=\"selectedValues[currentList]\"\n        [frameworkType]=\"'subFramework'\"\n      >\n      </app-framework-list-table>\n      <app-framework-responsibility-table\n        *ngIf=\"currentList == 'responsibilities'\"\n        [listLoader]=\"loader\"\n        [currentSelectedControl]=\"selectedValues[currentList]\"\n        [controlsList]=\"responsibilitiesList\"\n        (selectedControl)=\"selectFramework($event)\"\n        (assignControl)=\"assignSelectedControl($event)\"\n      >\n      </app-framework-responsibility-table>\n      <app-no-data\n        *ngIf=\"\n          frameworkData?.data?.length == 0 &&\n          currentList == 'framework' &&\n          !loader\n        \"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No data to display'\"\n      ></app-no-data>\n      <app-no-data\n        *ngIf=\"\n          subCategoriesList?.data?.length == 0 &&\n          currentList == 'categories' &&\n          !loader\n        \"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No data to display'\"\n      ></app-no-data>\n      <app-no-data\n        *ngIf=\"\n          responsibilitiesList?.data?.length == 0 &&\n          currentList == 'responsibilities' &&\n          !loader\n        \"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No data to display'\"\n      ></app-no-data>\n      <!-- old table list -->\n      <!-- <app-parent-table #parentTable *ngIf=\"showParent\" [search]=\"search\"\n                (expandCategory)=\"expandCategory($event)\" [tableList]=\"categoryList[activeTab].list\"\n                (entrustFramework)=\"entrustFrameworkDetails($event)\">\n            </app-parent-table> -->\n    </div>\n\n    <app-floating-bar\n      [selectedData]=\"\n        selectedValues[currentList]?.name ? [selectedValues[currentList]] : []\n      \"\n      [displayElementKey]=\"floatingBarDisplayKeys[currentList]\"\n      [isDisabled]=\"!selectedValues[currentList]?.name\"\n      (closeEvent)=\"save()\"\n      (closeList)=\"goBack()\"\n      (deleteEvent)=\"remove()\"\n    ></app-floating-bar>\n  </div>\n  <!-- [singularText]=\"'User selected'\" [pluralText]=\"'Users selected'\" (closeEvent)=\"save(selectedIds)\"\n    (closeList)=\"close()\" (deleteEvent)=\"deleteEvent($event)\"\n    [isDisabled]=\"(groupsList?.length + usersList?.length) === 0 || selectedUsers?.length === 0\" -->\n  <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n</div>\n","import { cloneDeep } from 'lodash';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-risk-classification',\n  templateUrl: './risk-classification.component.html',\n  styleUrls: ['./risk-classification.component.less', '../../forms.less'],\n})\nexport class RiskClassificationComponent implements OnInit {\n  constructor() {}\n  animation = true;\n  @Input() currentRiskValue: any;\n  @Output() saveList = new EventEmitter();\n  @Output() closeList = new EventEmitter();\n  riskClassification = [\n    { name: 'Low', value: 1, class: 'low' },\n    { name: 'Low-Medium', value: 2, class: 'low-med' },\n    { name: 'Medium-High', value: 3, class: 'med-high' },\n    { name: 'High', value: 4, class: 'high' },\n  ];\n  riskIntensityList = [\n    { name: 'Not Applicable', value: '0' },\n    { name: 'Low', value: '1' },\n    { name: 'Medium', value: '2' },\n    { name: 'High', value: '3' },\n  ];\n  identificationList = [\n    { name: 'Easy to Identify', value: '1' },\n    { name: 'Intermediate', value: '2' },\n    { name: 'Difficult', value: '3' },\n  ];\n  selectedValues = {\n    envThreat: '0',\n    regThreat: '0',\n    machineThreat: '0',\n    lifeThreat: '0',\n    probability: '1',\n    identification: '1',\n  };\n\n  ngOnInit(): void {\n    setTimeout(() => {\n      this.animation = false;\n    }, 500);\n  }\n  generateRiskClass() {\n    this.currentRiskValue = this.calculateRiskClass(\n      this.getArrayFromObject(this.selectedValues)\n    );\n  }\n  getArrayFromObject(object: object) {\n    const risk = [];\n    for (const value of Object.values(object)) {\n      risk.push(parseInt(value, 10));\n    }\n    return risk;\n  }\n  calculateRiskClass(riskMatrices: number[]): number {\n    if (riskMatrices.length !== 6) {\n      return -1;\n    }\n    const impact =\n      riskMatrices[0] * 1 +\n      riskMatrices[1] * 2 +\n      riskMatrices[2] * 2 +\n      riskMatrices[3] * 3; // total impact\n    const risk = impact * riskMatrices[4] + impact * riskMatrices[5];\n    switch (true) {\n      case risk <= 9: {\n        return 1;\n      }\n      case risk >= 10 && risk <= 23: {\n        return 2;\n      }\n      case risk >= 24 && risk <= 39: {\n        return 3;\n      }\n      case risk >= 40 && risk <= 144: {\n        return 4;\n      }\n      default:\n        return 1;\n    }\n  }\n\n  save() {\n    this.saveList.emit({\n      riskClass: this.currentRiskValue,\n      riskMatrix: this.getArrayFromObject(this.selectedValues).join(','),\n    });\n  }\n  close() {\n    this.closeList.emit();\n  }\n}\n","<div class=\"risk-classification\" [class.animate]=\"animation\">\n    <div class=\"risk-classification-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\n        <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Risk Calculator</div>\n    </div>\n\n    <div class=\"risk-classification-body\">\n        <div class=\"risk-classification-body-inner\">\n            <div class=\"risk-classification-switch\">\n                <label  *ngFor=\"let idClass of riskClassification\" [ngClass]=\"[idClass.class]\">\n                    <input disabled type=\"radio\" [checked]=\"idClass.value === currentRiskValue\" name=\"classification-risk\" [value]=\"idClass.value\">\n                    <span>{{idClass?.name}}</span>\n                </label>\n            </div>\n\n            <div class=\"row\">\n                <div class=\"column\">\n                    <div class=\"vx-form-group\" >\n                        <label class=\"vx-control-panel\">THREAT TO ENVIRONMENT</label>\n                        <cs-select [(ngModel)]=\"selectedValues.envThreat\" (valueChanged)=\"generateRiskClass()\">\n                            <cs-option *ngFor=\"let list of riskIntensityList\" [value]=\"list.value\" >{{list.name}}</cs-option>\n                        </cs-select>\n                    </div>\n\n                </div>\n                <div class=\"column\">\n                    <div class=\"vx-form-group\">\n                        <label class=\"vx-control-panel\">REGULATORY THREAT</label>\n                        <cs-select [(ngModel)]=\"selectedValues.regThreat\" (valueChanged)=\"generateRiskClass()\">\n                            <cs-option [value]=\"list.value\" *ngFor=\"let list of riskIntensityList\">{{list.name}}</cs-option>\n                        </cs-select>\n                    </div>\n                </div>\n\n            </div>\n            <div class=\"row\">\n                <div class=\"column\">\n                    <div class=\"vx-form-group\">\n                        <label class=\"vx-control-panel\">THREAT TO MACHINE</label>\n                        <cs-select [(ngModel)]=\"selectedValues.machineThreat\" (valueChanged)=\"generateRiskClass()\">\n                            <cs-option [value]=\"list.value\" *ngFor=\"let list of riskIntensityList\">{{list.name}}</cs-option>\n                        </cs-select>\n                    </div>\n                </div>\n                <div class=\"column\">\n                    <div class=\"vx-form-group\">\n                        <label class=\"vx-control-panel\">THREAT TO LOSS OF LIFE</label>\n                        <cs-select [(ngModel)]=\"selectedValues.lifeThreat\" (valueChanged)=\"generateRiskClass()\">\n                            <cs-option [value]=\"list.value\" *ngFor=\"let list of riskIntensityList\">{{list.name}}</cs-option>\n                        </cs-select>\n                    </div>\n                </div>\n            </div>\n            <div class=\"row\">\n                <div class=\"column\">\n                    <div class=\"vx-form-group\">\n                        <label class=\"vx-control-panel\">PROBABILITY</label>\n                        <cs-select [(ngModel)]=\"selectedValues.probability\" (valueChanged)=\"generateRiskClass()\">\n                            <cs-option  [value]=\"list.value\" *ngFor=\"let list of riskIntensityList|slice:1\">{{list.name}}</cs-option>\n                        </cs-select>\n                    </div>\n                </div>\n                <div class=\"column\">\n                    <div class=\"vx-form-group\">\n                        <label class=\"vx-control-panel\" >IDENTIFICATION</label>\n                        <cs-select [(ngModel)]=\"selectedValues.identification\" (valueChanged)=\"generateRiskClass()\">\n                            <cs-option [value]=\"list.value\" *ngFor=\"let list of identificationList\">{{list.name}}</cs-option>\n                        </cs-select>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n\n    <div class=\"risk-classification-footer\">\n        <app-floating-bar (closeList)=\"close()\"   (closeEvent)=\"save()\"></app-floating-bar>\n    </div>\n</div>\n","import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  SimpleChanges,\n} from '@angular/core';\nimport { auditCategoryModel } from './audit-category.model';\nimport { ASSETS } from '../../constants/assets.constants';\n\n@Component({\n  selector: 'app-audit-category-list',\n  templateUrl: './audit-category-list.component.html',\n  styleUrls: ['./audit-category-list.component.less'],\n})\nexport class AuditCategoryListComponent implements OnInit, OnChanges {\n  animation = false;\n  searchInput: string = '';\n  ASSETS = ASSETS;\n  @Input() selectedData: any;\n  @Input() selectedIndex: number = -1;\n  @Input() auditCategory!: Array<auditCategoryModel>;\n\n  @Output() closeList: EventEmitter<any> = new EventEmitter();\n  @Output() saveSelectedList: EventEmitter<any> = new EventEmitter();\n\n  constructor() { }\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.selectedData?.currentValue) {\n      this.populateSelectedData();\n    }\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  onCategorySelection(index: number) {\n    this.selectedIndex = index;\n  }\n  save() {\n    this.saveSelectedList.emit(this.auditCategory[this.selectedIndex]);\n  }\n\n  deleteEvent(event: any) {\n    this.selectedIndex = -1;\n  }\n\n  close() {\n    this.closeList.emit(false);\n  }\n\n  populateSelectedData() {\n    this.selectedIndex = this.auditCategory.findIndex(\n      (category) => category.category_id === this.selectedData.category_id\n    );\n  }\n}\n","<div class=\"audit-category-list\" [class.animate]=\"animation\">\n  <div\n    class=\"audit-category-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select an Audit Category</div>\n  </div>\n  <div class=\"audit-category-list-body\">\n    <div class=\"search-block vx-mb-2\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        type=\"text\"\n        [(ngModel)]=\"searchInput\"\n        placeholder=\"Search Audit Category\"\n      />\n    </div>\n    <ng-container>\n      <ul\n        *ngIf=\"(auditCategory | search : searchInput)?.length\"\n        class=\"category-list vx-mb-4\"\n      >\n        <li\n          *ngFor=\"\n            let data of auditCategory | search : searchInput;\n            let i = index\n          \"\n        >\n          <app-cs-radio\n            [value]=\"i\"\n            (checkedEvent)=\"onCategorySelection(i)\"\n            [checked]=\"selectedIndex === i\"\n          >\n            <ul class=\"category-name\">\n              <li\n                *ngFor=\"\n                  let parentCategory of data?.parent_category_names.slice()\n                \"\n                [appTooltip]=\"parentCategory\"\n                placement=\"bottom\"\n                delay=\"0\"\n                [tooltipMandatory]=\"true\"\n              >\n                {{ parentCategory }}<i class=\"icons\">&#xe910;</i>\n              </li>\n              <li\n                [appTooltip]=\"data?.category_name\"\n                placement=\"bottom\"\n                delay=\"0\"\n                [tooltipMandatory]=\"true\"\n              >\n                {{ data?.category_name }}\n              </li>\n            </ul>\n          </app-cs-radio>\n        </li>\n      </ul>\n      <app-no-data\n        *ngIf=\"(auditCategory | search : searchInput)?.length == 0\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No Audit Category Found'\"\n      ></app-no-data>\n    </ng-container>\n\n    <app-floating-bar\n      [selectedData]=\"\n        auditCategory[selectedIndex]?.category_name\n          ? [auditCategory[selectedIndex]]\n          : []\n      \"\n      [displayElementKey]=\"'category_name'\"\n      [singularText]=\"'Audit Category selected'\"\n      (closeEvent)=\"save()\"\n      (deleteEvent)=\"deleteEvent($event)\"\n      (closeList)=\"close()\"\n      [isDisabled]=\"auditCategory.length === 0 || !auditCategory[selectedIndex]\"\n    ></app-floating-bar>\n  </div>\n</div>\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { retry } from 'rxjs/operators';\nimport { Configurations } from '../../../configurations';\nimport { AuthService } from '../../../workflow-services/auth.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AssessmentService {\n\n  env !: any;\n  constructor(private http: HttpClient, private authService: AuthService, @Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.envConfig;\n\n    }\n  }\n\n  getAssessmentQuestions(id:string){\n    const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n    return this.http.get(this.env.assessmentEnpoint+'assessment/fetchQuestionsByAssessmentId&id='+id,{headers}).pipe(retry(2));\n  }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ASSETS } from '../../../../../../lib/constants/assets.constants';\n\n@Component({\n  selector: 'app-preview-welcome',\n  templateUrl: './welcome.component.html',\n  styleUrls: ['./welcome.component.less'],\n})\nexport class WelcomeComponent implements OnInit {\n  ASSETS = ASSETS;\n\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"welcome-preview vx-text-center vx-mb-5\">\n  <div class=\"image\"><img [src]=\"ASSETS.thank_you_image\" /></div>\n  <div class=\"heading vx-fs-16 vx-paragraph-txt vx-lih-6 vx-mb-5\">\n    Welcome heading\n  </div>\n  <div class=\"details vx-fs-14 vx-label-txt vx-pb-3 vx-mb-5\">\n    In publishing and graphic design, Lorem ipsum is a placeholder text commonly\n    used to demonstrate the visual form of a document or a typeface without\n    relying on meaningful content. Lorem ipsum may be used as a placeholder\n    before the final copy is available.\n  </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-description-preview',\n  templateUrl: './description-preview.component.html',\n  styleUrls: ['./description-preview.component.less'],\n})\nexport class DescriptionPreviewComponent {\n  @Input() questionIndex!: number;\n  @Input() description: string = '';\n  isExpand: boolean = false;\n\n  toggleExpansion() {\n    this.isExpand = !this.isExpand;\n  }\n}\n","<div\n  [id]=\"'description_' + questionIndex\"\n  class=\"assessment-question-description vx-fs-12 vx-paragraph-txt\"\n  [class.expand]=\"isExpand\"\n  [innerHTML]=\"description\"\n></div>\n<div class=\"assessment-question-description-btn vx-d-flex vx-justify-end\">\n  <button\n    *ngIf=\"('description_' + questionIndex | isReadMore : 37) && !isExpand\"\n    (click)=\"toggleExpansion()\"\n    class=\"vx-fs-8 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\"\n  >\n    Read More\n  </button>\n  <button\n    *ngIf=\"isExpand && ('description_' + questionIndex | isReadMore : 37)\"\n    (click)=\"toggleExpansion()\"\n    class=\"vx-fs-8 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\"\n  >\n    Show Less\n  </button>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { shuffle } from 'lodash';\n\n@Component({\n  selector: 'app-checkbox-question',\n  templateUrl: './checkbox-question.component.html',\n  styleUrls: ['./checkbox-question.component.less']\n})\nexport class CheckboxQuestionComponent implements OnInit {\n\n  @Input() question !:any;\n  @Input() questionIndex !:number;\n  choicesForPreviewMode : any = [];\n  constructor() { }\n\n  ngOnInit(): void {\n    this.choicesForPreviewMode = this.question.choices;\n    if (this.question.randomize === true) {\n      this.randomize();\n    }\n  }\n  randomize() {\n    this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\n  }\n\n}\n","<div class=\"question-block vx-mb-1 vx-p-4\">\n  <div class=\"question-heading vx-pb-3 vx-mb-3\">\n    <span\n      class=\"count vx-fs-13 vx-fw-400 vx-label-txt vx-d-flex vx-align-center vx-justify-center\"\n      >{{ questionIndex }}</span\n    >\n    <span class=\"heading\">\n      <span\n        class=\"vx-fs-16 vx-label-txt vx-lh-6\"\n        [innerHTML]=\"question?.title == '' ? 'Question' : question?.title\"\n      ></span>\n      <span\n        *ngIf=\"question?.isRequired\"\n        class=\"required vx-fs-20 vx-fw-300 vx-ml-1\"\n        >*</span\n      >\n    </span>\n  </div>\n  <div class=\"question-inner vx-d-flex vx-justify-between\">\n    <div class=\"question-inner-inside vx-w-100\">\n      <ng-container\n        *ngIf=\"\n          question?.hasDescription && question?.description?.trim().length > 0\n        \"\n      >\n        <app-description-preview\n          [questionIndex]=\"questionIndex\"\n          [description]=\"question?.description\"\n        ></app-description-preview>\n      </ng-container>\n      <div class=\"question-option\">\n        <ul class=\"checkbox-list vx-p-0 vx-m-0\">\n          <li\n            class=\"vx-mt-1\"\n            *ngFor=\"\n              let choice of choicesForPreviewMode;\n              let choiceIndex = index\n            \"\n          >\n            <app-cs-checkbox>\n              <span\n                class=\"checkbox-value vx-fs-13 vx-label-txt vx-fw-400\"\n                [appTooltip]=\"choice?.title\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{ choice?.title ? choice?.title : \"Option\" }}</span\n              >\n            </app-cs-checkbox>\n          </li>\n\n          <li class=\"vx-mt-1\" *ngIf=\"question?.hasOther\">\n            <app-cs-checkbox>\n              <span\n                class=\"checkbox-value vx-fs-13 vx-label-txt vx-fw-400\"\n                [appTooltip]=\"question.otherValue\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{ question.otherValue }}</span\n              >\n            </app-cs-checkbox>\n          </li>\n        </ul>\n      </div>\n    </div>\n    <div class=\"question-quickSettings\">\n      <app-quick-settings [question]=\"question\"></app-quick-settings>\n    </div>\n  </div>\n</div>\n","import {\n  Component,\n  Input,\n  ViewChild,\n  ElementRef,\n  HostListener,\n} from '@angular/core';\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport { CommonService } from '../../../services/common.service';\n\n@Component({\n  selector: 'app-date-time',\n  templateUrl: './date-time.component.html',\n  styleUrls: ['./date-time.component.less'],\n})\nexport class DateTimeComponent {\n  @Input() question!: any;\n  @Input() questionIndex!: any;\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n  datepickerOverlay = false;\n\n  constructor(private commonService: CommonService) {}\n\n  openDatePicker() {\n    this.datePicker?.api?.open();\n    this.datepickerOverlay = true;\n  }\n\n  closeDatepicker() {\n    this.datePicker?.api?.close();\n    this.datepickerOverlay = false;\n  }\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'preview-date',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datepickerOverlay,\n    };\n    this.commonService.handleDocumentClick(datePickerObject);\n  }\n}\n","<div class=\"question-block vx-mb-1 vx-p-4\">\n  <div class=\"question-heading vx-pb-3 vx-mb-3\">\n    <span\n      class=\"count vx-fs-13 vx-fw-400 vx-label-txt vx-d-flex vx-align-center vx-justify-center\"\n      >{{ questionIndex }}</span\n    >\n    <span class=\"heading\">\n      <span\n        [innerHTML]=\"question?.title == '' ? 'Question' : question?.title\"\n        class=\"vx-fs-16 vx-label-txt vx-lh-6\"\n      ></span>\n      <span\n        *ngIf=\"question?.isRequired\"\n        class=\"required vx-fs-20 vx-fw-300 vx-ml-1\"\n        >*</span\n      >\n    </span>\n  </div>\n  <div class=\"question-inner vx-d-flex vx-justify-between\">\n    <div class=\"question-inner-inside\">\n      <ng-container\n        *ngIf=\"\n          question?.hasDescription && question?.description?.trim().length > 0\n        \"\n      >\n        <app-description-preview\n          [questionIndex]=\"questionIndex\"\n          [description]=\"question?.description\"\n        ></app-description-preview>\n      </ng-container>\n      <div class=\"question-option\">\n        <div class=\"textbox-group vx-mt-5\">\n          <div class=\"input-group vx-d-flex vx-mb-2\" *ngIf=\"question?.hasDate\">\n            <span\n              class=\"label vx-bg-grey vx-label-txt vx-lh-24 vx-d-flex vx-tt-uppercase vx-fs-11 vx-text-center vx-p-2 vx-justify-center vx-align-center\"\n              ><span\n                class=\"vx-d-block\"\n                [appTooltip]=\"\n                  question?.date?.title == ''\n                    ? 'Date Label'\n                    : question?.date?.title\n                \"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{\n                  question?.date?.title == \"\"\n                    ? \"Date Label\"\n                    : question?.date?.title\n                }}</span\n              ></span\n            >\n            <div class=\"date-time-area\">\n              <i class=\"icons vx-fs-14 vx-paragraph-txt\">&#xe996;</i>\n              <input\n                class=\"datePicker\"\n                (click)=\"openDatePicker()\"\n                placeholder=\"Select Date\"\n                id=\"preview-date\"\n              />\n              <dp-date-picker\n                #datePicker\n                placeholder=\"Select Date\"\n                (click)=\"openDatePicker()\"\n                (click)=\"closeDatepicker()\"\n              ></dp-date-picker>\n              <div\n                class=\"overlay\"\n                (click)=\"closeDatepicker()\"\n                *ngIf=\"datepickerOverlay\"\n              ></div>\n            </div>\n          </div>\n          <div class=\"input-group vx-d-flex vx-mb-10\" *ngIf=\"question?.hasTime\">\n            <span\n              class=\"label vx-bg-grey vx-label-txt vx-lh-24 vx-d-flex vx-tt-uppercase vx-fs-11 vx-text-center vx-p-2 vx-justify-center vx-align-center\"\n              ><span\n                class=\"vx-d-block\"\n                [appTooltip]=\"\n                  question?.time?.title == ''\n                    ? 'Time Label'\n                    : question?.time?.title\n                \"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{\n                  question?.time?.title == \"\"\n                    ? \"Time Label\"\n                    : question?.time?.title\n                }}</span\n              ></span\n            >\n            <div class=\"date-time-area\">\n              <input\n                aria-label=\"12hr format\"\n                [ngxTimepicker]=\"timeOnly\"\n                readonly\n                placeholder=\"Select Time\"\n              />\n              <i class=\"icons vx-fs-14 vx-paragraph-txt\">&#xe955;</i>\n              <ngx-material-timepicker #timeOnly></ngx-material-timepicker>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"question-quickSettings\">\n      <app-quick-settings [question]=\"question\"></app-quick-settings>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n\n@Component({\n  selector: 'app-device',\n  templateUrl: './device.component.html',\n  styleUrls: ['./device.component.less']\n})\nexport class DeviceComponent implements OnInit {\n  @Output() deviceChanged = new EventEmitter();\n  @Input() selectedDevice = 'DESKTOP';\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"device\">\n    <div class=\"label vx-fs-11 vx-fw-600 vx-label-txt vx-tt-uppercase vx-pt-1 vx-pb-1 vx-text-center\">PREVIEW</div>\n    <ul class=\"vx-p-0 vx-m-0\">\n        <li>\n            <a class=\"vx-text-center vx-pt-3 vx-pb-3 vx-d-block\" [class.active]=\"selectedDevice === 'DESKTOP'\" (click)=\"deviceChanged.emit('DESKTOP')\">\n                <i class=\"icons vx-fs-16\">&#xeac2;</i>\n                <span class=\"vx-fs-9 vx-fw-600 vx-tt-uppercase vx-d-block\">DESKTOP</span>\n            </a>\n        </li>\n        <li>\n            <a class=\"vx-text-center vx-pt-3 vx-pb-3 vx-d-block\" [class.active]=\"selectedDevice === 'TABLET'\" (click)=\"deviceChanged.emit('TABLET')\">\n                <i class=\"icons vx-fs-16\">&#xeac1;</i>\n                <span class=\"vx-fs-9 vx-fw-600 vx-tt-uppercase vx-d-block\">TABLET</span>\n            </a>\n        </li>\n        <li>\n            <a class=\"vx-text-center vx-pt-3 vx-pb-3 vx-d-block\" [class.active]=\"selectedDevice === 'MOBILE'\" (click)=\"deviceChanged.emit('MOBILE')\">\n                <i class=\"icons vx-fs-16\">&#xeac0;</i>\n                <span class=\"vx-fs-9 vx-fw-600 vx-tt-uppercase vx-d-block\">MOBILE</span>\n            </a>\n        </li>\n    </ul>\n</div>","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-file-upload',\n  templateUrl: './file-upload.component.html',\n  styleUrls: ['./file-upload.component.less']\n})\nexport class FileUploadComponent implements OnInit {\n  @Input() question !: any;\n  @Input() questionIndex !:any;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"question-block vx-mb-1 vx-p-4\">\n  <div class=\"question-heading vx-pb-3 vx-mb-3\">\n    <span\n      class=\"count vx-fs-13 vx-fw-400 vx-label-txt vx-d-flex vx-align-center vx-justify-center\"\n      >{{ questionIndex }}</span\n    >\n    <span class=\"heading\">\n      <span\n        class=\"vx-fs-16 vx-label-txt vx-lh-6\"\n        [innerHTML]=\"question?.title == '' ? 'Question' : question?.title\"\n      ></span>\n      <span\n        *ngIf=\"question?.isRequired\"\n        class=\"required vx-fs-20 vx-fw-300 vx-ml-1\"\n        >*</span\n      >\n    </span>\n  </div>\n  <div class=\"question-inner vx-d-flex vx-justify-between\">\n    <div class=\"question-inner-inside\">\n      <ng-container\n        *ngIf=\"\n          question?.hasDescription && question?.description?.trim().length > 0\n        \"\n      >\n        <app-description-preview\n          [questionIndex]=\"questionIndex\"\n          [description]=\"question?.description\"\n        ></app-description-preview>\n      </ng-container>\n      <div class=\"question-option\">\n        <div\n          class=\"custom-file-upload vx-d-flex vx-align-center vx-mt-5 vx-p-1\"\n        >\n          <input type=\"file\" />\n          <span class=\"value vx-fs-11 vx-label-txt vx-d-block vx-pl-2\"\n            >Select file</span\n          >\n          <span\n            class=\"button vx-d-flex vx-align-center vx-justify-center vx-txt-white vx-bg-blue vx-fs-12 vx-tt-uppercase\"\n            >Browse</span\n          >\n        </div>\n        <ul class=\"file-list vx-p-0 vx-pt-5 vx-m-0\" *ngIf=\"false\">\n          <li class=\"file vx-pb-1\">\n            <div class=\"file-box vx-d-flex vx-align-center vx-pt-2 vx-pb-2\">\n              <span class=\"file pdf\">\n                <i class=\"icons\">&#xe92e;</i>\n                <span class=\"format\">pdf</span>\n              </span>\n              <div\n                class=\"file-name vx-fs-12 vx-label-txt\"\n                [appTooltip]=\"'file-name.pdf'\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n              >\n                file-name.pdf\n              </div>\n              <button\n                class=\"delete-btn vx-fs-14 vx-txt-red vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n              >\n                <i class=\"icons vx-ml-3\">&#xe923;</i>\n              </button>\n              <div *ngIf=\"true\" class=\"line-progress\">\n                <div class=\"line-progress-bar\"></div>\n              </div>\n            </div>\n          </li>\n        </ul>\n      </div>\n    </div>\n    <div class=\"question-quickSettings\">\n      <app-quick-settings [question]=\"question\"></app-quick-settings>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { shuffle } from 'lodash';\n\n@Component({\n  selector: 'app-radio-question',\n  templateUrl: './radio-question.component.html',\n  styleUrls: ['./radio-question.component.less']\n})\nexport class RadioQuestionComponent implements OnInit {\n  @Input() question !:any;\n  @Input() questionIndex !:number;\n  choicesForPreviewMode : any = [];\n  constructor() { }\n\n  ngOnInit(): void {\n    this.choicesForPreviewMode = this.question.choices;\n    if (this.question.randomize === true) {\n      this.randomize();\n    }\n  }\n  randomize() {\n    this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\n  }\n\n}\n","<div class=\"question-block vx-mb-1 vx-p-4\">\n  <div class=\"question-heading vx-pb-3 vx-mb-3\">\n    <span\n      class=\"count vx-fs-13 vx-fw-400 vx-label-txt vx-d-flex vx-align-center vx-justify-center\"\n      >{{ questionIndex }}</span\n    >\n    <span class=\"heading\">\n      <span\n        class=\"vx-fs-16 vx-label-txt vx-lh-6\"\n        [innerHTML]=\"question?.title == '' ? 'Question' : question?.title\"\n      ></span>\n      <span\n        *ngIf=\"question?.isRequired\"\n        class=\"required vx-fs-20 vx-fw-300 vx-ml-1\"\n        >*</span\n      >\n    </span>\n  </div>\n  <div class=\"question-inner vx-d-flex vx-justify-between\">\n    <div class=\"question-inner-inside vx-w-100\">\n      <ng-container\n        *ngIf=\"\n          question?.hasDescription && question?.description?.trim().length > 0\n        \"\n      >\n        <app-description-preview\n          [questionIndex]=\"questionIndex\"\n          [description]=\"question?.description\"\n        ></app-description-preview>\n      </ng-container>\n      <div class=\"question-option vx-mt-3\">\n        <ul class=\"multiple-choice-list vx-p-0 vx-m-0\">\n          <li\n            class=\"vx-mt-1\"\n            *ngFor=\"\n              let choice of choicesForPreviewMode;\n              let choiceIndex = index\n            \"\n          >\n            <app-cs-radio [name]=\"question?.name\">\n              <span\n                class=\"radio-value vx-fs-13 vx-label-txt vx-fw-400 vx-lh-5\"\n                [appTooltip]=\"choice?.title\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n              >\n                {{ choice?.title ? choice?.title : \"Option\" }}</span\n              >\n            </app-cs-radio>\n          </li>\n          <li class=\"vx-mt-1\" *ngIf=\"question?.hasOther\">\n            <app-cs-radio [name]=\"question?.name\">\n              <span\n                class=\"radio-value vx-fs-13 vx-label-txt vx-fw-400 vx-lh-5\"\n                [appTooltip]=\"question.otherValue\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{ question.otherValue }}</span\n              >\n            </app-cs-radio>\n          </li>\n        </ul>\n      </div>\n    </div>\n    <div class=\"question-quickSettings\">\n      <app-quick-settings [question]=\"question\"></app-quick-settings>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { shuffle } from 'lodash';\n\n@Component({\n  selector: 'app-select-question',\n  templateUrl: './select-question.component.html',\n  styleUrls: ['./select-question.component.less']\n})\nexport class SelectQuestionComponent implements OnInit {\n\n  @Input() question!: any;\n  @Input() questionIndex !:any;\n  choicesForPreviewMode : any = [];\n  constructor() { }\n\n  ngOnInit(): void {\n\n    this.choicesForPreviewMode = [...this.question.choices];\n    if (this.question.randomize === true) {\n      this.randomize();\n    }\n    if (this.question.hasOther === true &&  this.choicesForPreviewMode.findIndex((x:any) => x.title === \"Other\") < 0){\n      this.choicesForPreviewMode.push({title:'Other'})\n    }\n  }\n \n\n  randomize() {\n    this.choicesForPreviewMode = shuffle(this.choicesForPreviewMode);\n  }\n\n}\n","<div class=\"question-block vx-mb-1 vx-p-4\">\n  <div class=\"question-heading vx-pb-3 vx-mb-3\">\n    <span\n      class=\"count vx-fs-13 vx-fw-400 vx-label-txt vx-d-flex vx-align-center vx-justify-center\"\n      >{{ questionIndex }}</span\n    >\n    <span class=\"heading\">\n      <span\n        class=\"vx-fs-16 vx-label-txt vx-lh-6\"\n        [innerHTML]=\"question?.title == '' ? 'Question' : question?.title\"\n      ></span>\n      <span\n        *ngIf=\"question?.isRequired\"\n        class=\"required vx-fs-20 vx-fw-300 vx-ml-1\"\n        >*</span\n      >\n    </span>\n  </div>\n  <div class=\"question-inner vx-d-flex vx-justify-between\">\n    <div class=\"question-inner-inside\">\n      <ng-container\n        *ngIf=\"\n          question?.hasDescription && question?.description?.trim().length > 0\n        \"\n      >\n        <app-description-preview\n          [questionIndex]=\"questionIndex\"\n          [description]=\"question?.description\"\n        ></app-description-preview>\n      </ng-container>\n      <div class=\"question-option\">\n        <div class=\"options-area\">\n          <app-cs-select\n            [dataList]=\"choicesForPreviewMode\"\n            [valueKey]=\"'title'\"\n            [displayProperty]=\"'title'\"\n            [selectedValue]=\"'Select an option'\"\n          ></app-cs-select>\n        </div>\n      </div>\n    </div>\n    <div class=\"question-quickSettings\">\n      <app-quick-settings [question]=\"question\"></app-quick-settings>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-single-textbox',\n  templateUrl: './single-textbox.component.html',\n  styleUrls: ['./single-textbox.component.less']\n})\nexport class SingleTextboxComponent implements OnInit {\n  @Input() question!: any;\n  @Input() questionIndex !:any;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"question-block vx-mb-1 vx-p-4\">\n  <div class=\"question-heading vx-pb-3 vx-mb-3 vx-d-flex\">\n    <span\n      class=\"count vx-fs-13 vx-fw-400 vx-label-txt vx-d-flex vx-align-center vx-justify-center\"\n      >{{ questionIndex }}</span\n    >\n    <span class=\"heading\">\n      <span\n        [innerHTML]=\"question?.title == '' ? 'Question' : question?.title\"\n        class=\"vx-fs-16 vx-label-txt vx-lh-6\"\n      ></span>\n      <span\n        *ngIf=\"question?.isRequired\"\n        class=\"required vx-fs-20 vx-fw-300 vx-ml-1\"\n        >*</span\n      >\n    </span>\n  </div>\n  <div class=\"question-inner vx-d-flex vx-justify-between\">\n    <div class=\"question-inner-inside\">\n      <ng-container\n        *ngIf=\"\n          question?.hasDescription && question?.description?.trim().length > 0\n        \"\n      >\n        <app-description-preview\n          [questionIndex]=\"questionIndex\"\n          [description]=\"question?.description\"\n        ></app-description-preview>\n      </ng-container>\n      <div class=\"question-option\">\n        <input\n          class=\"single-textbox vx-bg-white vx-fs-14 vx-lh-24 vx-paragraph-txt\"\n          type=\"text\"\n          [placeholder]=\"\n            question?.isPlaceholder === true &&\n            question?.placeholder?.trim().length > 0\n              ? question?.placeholder.trim()\n              : 'Please enter a response'\n          \"\n        />\n      </div>\n    </div>\n    <div class=\"question-quickSettings\">\n      <app-quick-settings [question]=\"question\"></app-quick-settings>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-page-header',\n  templateUrl: './page-header.component.html',\n  styleUrls: ['./page-header.component.less'],\n})\nexport class PageAssessmentHeaderComponent implements OnInit {\n  @Input() pageDetail!: any;\n  @Input() pageTitle!: any;\n  isExpand: boolean = false;\n  constructor() {}\n  ngOnInit(): void {}\n}\n","<div class=\"page-header vx-pb-2 vx-mb-5\">\n  <div class=\"page-heading vx-d-flex\">\n    <div\n      *ngIf=\"!pageTitle\"\n      class=\"label vx-fs-11 vx-fw-500 vx-txt-white vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1\"\n    >\n      PAGE {{ pageDetail?.pageNumber }}\n    </div>\n    <div\n      *ngIf=\"pageTitle\"\n      class=\"label vx-fs-11 vx-fw-500 vx-txt-white vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1\"\n    >\n      {{ pageTitle }}\n    </div>\n    <div\n      *ngIf=\"pageDetail?.pageName?.trim()?.length\"\n      class=\"page-name vx-fs-13 vx-label-txt\"\n      [innerHTML]=\"pageDetail?.pageName\"\n      [appTooltip]=\"pageDetail?.pageName\"\n      placement=\"bottom-left\"\n      delay=\"0\"\n      type=\"black\"\n      [tooltipMandatory]=\"false\"\n    ></div>\n  </div>\n  <div\n    *ngIf=\"pageDetail?.pageDescription?.trim()?.length\"\n    class=\"page-details vx-fs-11 vx-paragraph-txt vx-mt-2\"\n    [innerHTML]=\"pageDetail?.pageDescription\"\n    [class.expand]=\"false\"\n  ></div>\n  <div class=\"page-details-btn vx-d-flex vx-justify-end\">\n    <button class=\"vx-fs-8 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\">\n      Read More\n    </button>\n  </div>\n\n  <!-- <div  *ngIf=\"!pageTitle\" class=\"label vx-fs-10 vx-fw-500 vx-txt-white vx-pl-1 vx-pr-1 vx-lh-4 vx-mb-2 vx-d-inline-flex\">PAGE {{pageDetail?.pageNumber}} </div>\n    <div  *ngIf=\"pageTitle\" class=\"label vx-fs-10 vx-fw-500 vx-txt-white vx-pl-1 vx-pr-1 vx-lh-4 vx-mb-2 vx-d-inline-flex\">{{pageTitle}} </div>\n    <div *ngIf=\"pageDetail?.pageName?.trim()?.length\" class=\"page-name vx-fs-12 vx-label-txt vx-mb-3\" [innerHTML]=\"pageDetail?.pageName\"> </div>\n    <div *ngIf=\"pageDetail?.pageDescription?.trim()?.length\" class=\"page-details vx-fs-12 vx-label-txt vx-p-4\" [innerHTML]=\"pageDetail?.pageDescription\"></div> -->\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-preview-welcome',\n  templateUrl: './welcome.component.html',\n  styleUrls: ['./welcome.component.less']\n})\nexport class WelcomeComponent implements OnInit {\n  @Input() questionDetails !:any;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"welcome-preview vx-text-center vx-mb-5\">\n    <div class=\"image\" *ngIf=\"questionDetails?.hasWelcomeImage && questionDetails?.welcomeImage !=''\"><img [src]=\"questionDetails?.welcomeImage\" /></div>\n    <div class=\"heading vx-fs-16 vx-paragraph-txt vx-lih-6 vx-mb-5\" *ngIf=\"questionDetails?.welcomeText\" [innerHTML]=\"questionDetails?.welcomeText\"></div>\n    <div *ngIf=\"questionDetails?.hasWelcomeDescription\"  class=\"details vx-fs-14 vx-label-txt vx-pb-3 vx-mb-5\" [innerHTML]=\"questionDetails?.welcomeDescription\"> </div>\n</div>","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-section-details',\n  templateUrl: './section-details.component.html',\n  styleUrls: ['./section-details.component.less'],\n})\nexport class SectionDetailsComponent {\n  @Input() sectionDetails: any = {};\n  isExpand: boolean = false;\n}\n","<div class=\"section-details-header vx-pb-2 vx-mt-3 vx-mb-5\">\n  <span class=\"section-heading\">\n    <span\n      class=\"section-label vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-3 vx-mr-1 vx-d-inline-block\"\n      >SECTION {{ sectionDetails?.index + 1 }}:</span\n    >\n    <span\n      class=\"heading vx-fs-11 vx-label-txt vx-lh-4 vx-d-inline-block\"\n      [appTooltip]=\"sectionDetails?.sectionDetails?.title\"\n      placement=\"bottom-left\"\n      delay=\"0\"\n      type=\"black\"\n      [tooltipMandatory]=\"false\"\n      >{{ sectionDetails?.sectionDetails?.title }}</span\n    >\n  </span>\n  <div\n    class=\"section-details vx-fs-11 vx-paragraph-txt vx-mt-2 vx-pl-5\"\n    [class.expand]=\"isExpand\"\n    [id]=\"sectionDetails?.sectionDetails?.code\"\n    [innerHTML]=\"sectionDetails?.sectionDetails?.description\"\n  ></div>\n  <div class=\"section-details-btn vx-d-flex vx-justify-end\">\n    <button\n      *ngIf=\"\n        (sectionDetails?.sectionDetails?.code | isReadMore : 32) && !isExpand\n      \"\n      (click)=\"isExpand = true\"\n      class=\"vx-fs-8 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\"\n    >\n      Read More\n    </button>\n    <button\n      *ngIf=\"\n        isExpand && (sectionDetails?.sectionDetails?.code | isReadMore : 32)\n      \"\n      (click)=\"isExpand = false\"\n      class=\"vx-fs-8 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\"\n    >\n      Show Less\n    </button>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'getSectionOrder',\n})\nexport class GetSectionOrderPipe implements PipeTransform {\n  transform(assessmentDetails: any, sectionId: string): any {\n    const sectionDetails = assessmentDetails?.questions;\n    const index: number = sectionDetails?.sectionArray?.findIndex(\n      (ele: any) => ele.code === sectionId\n    );\n    return {\n      sectionDetails: sectionDetails?.sectionArray?.length\n        ? sectionDetails?.sectionArray[index]\n        : {},\n      index: index,\n      questionId:\n        sectionDetails?.elements?.find(\n          (question: any) => question.sectionId === sectionId\n        )?.name ?? '',\n    };\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n} from '@angular/core';\n\n@Component({\n  selector: 'app-preview',\n  templateUrl: './preview.component.html',\n  styleUrls: ['./preview.component.less'],\n})\nexport class PreviewComponent implements OnInit, OnChanges {\n  @Input() questionData!: any;\n  @Input() isFullScreen: boolean = false;\n  @Output() previewBack = new EventEmitter();\n  pageData: any = [];\n  selectedDevice = 'DESKTOP';\n  constructor() {}\n\n  ngOnInit(): void {\n    this.generatePageDetails();\n  }\n  ngOnChanges() {\n    this.generatePageDetails();\n  }\n  generatePageDetails() {\n    let oldPage = 0;\n    this.questionData?.questions?.elements.forEach((ele: any, index: any) => {\n      if (oldPage !== ele.page) {\n        oldPage = ele.page;\n        const currentPage = this.questionData?.questions?.pageDetailsList.find(\n          (page: any) => {\n            return page.pageNumber === ele.page;\n          }\n        );\n        if (currentPage) {\n          this.pageData[index] = currentPage;\n        } else {\n          this.pageData[index] = {\n            pageName: '',\n            pageNumber: ele.page,\n            pageDescription: '',\n          };\n        }\n      }\n    });\n  }\n}\n","<div class=\"preview-page\" [class.full-screen]=\"isFullScreen\">\n  <div class=\"preview-page-heading vx-fs-14 vx-fw-500 vx-label-txt vx-pl-3 vx-pr-3 vx-mb-5 vx-d-flex vx-align-center\">\n    Preview\n    <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-d-flex vx-align-center\">(<span class=\"value\"\n        [appTooltip]=\"questionData?.assessment_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n        [tooltipMandatory]=\"false\">{{ questionData?.assessment_name }}</span>)</span>\n  </div>\n\n  <div class=\"preview-page-mid\" [class.with-tablet]=\"selectedDevice === 'TABLET'\"\n    [class.with-mobile]=\"selectedDevice === 'MOBILE'\">\n    <div class=\"preview-page-mid-inner\" [class.tablet]=\"selectedDevice === 'TABLET'\"\n      [class.mobile]=\"selectedDevice === 'MOBILE'\">\n      <ng-container>\n        <div class=\"mobile-top\" *ngIf=\"false\"></div>\n        <div class=\"preview-inside vx-pr-2\">\n          <!-- <app-question-welcome></app-question-welcome> -->\n          <app-page-header *ngIf=\"questionData?.hasWelcome === true\" [pageTitle]=\"'WELCOME SCREEN'\"></app-page-header>\n          <app-preview-welcome [questionDetails]=\"questionData\"\n            *ngIf=\"questionData?.hasWelcome === true\"></app-preview-welcome>\n          <ng-container *ngFor=\"\n              let question of questionData?.questions?.elements;\n              let i = index\n            \">\n            <app-page-header *ngIf=\"pageData[i]\" [pageDetail]=\"pageData[i]\"></app-page-header>\n            <ng-container *ngIf=\"\n                questionData\n                  | getSectionOrder : question?.sectionId as sectionDetails\n              \">\n              <app-section-details *ngIf=\"\n                  sectionDetails?.questionId === question.name &&\n                  sectionDetails?.index > -1\n                \" [sectionDetails]=\"sectionDetails\"></app-section-details>\n            </ng-container>\n\n            <div class=\"question-area\" [class.last-question-area]=\"false\">\n              <app-radio-question *ngIf=\"question.type === 'multiple-choice'\" [question]=\"question\"\n                [questionIndex]=\"i + 1\"></app-radio-question>\n              <app-checkbox-question *ngIf=\"question.type === 'checkbox'\" [question]=\"question\"\n                [questionIndex]=\"i + 1\"></app-checkbox-question>\n              <!-- <app-image-radio-question></app-image-radio-question>\n                        <app-star-rating></app-star-rating> -->\n              <app-single-textbox *ngIf=\"question.type === 'single-textbox'\" [question]=\"question\"\n                [questionIndex]=\"i + 1\"></app-single-textbox>\n              <!-- <app-comment-question></app-comment-question>\n                        <app-rating-table></app-rating-table> -->\n              <app-select-question *ngIf=\"question.type === 'dropdown'\" [question]=\"question\"\n                [questionIndex]=\"i + 1\"></app-select-question>\n              <!-- <app-select-option-rating></app-select-option-rating>\n                        <app-ranking></app-ranking>\n                        <app-slider-question></app-slider-question>\n                        <app-multiple-textbox></app-multiple-textbox> -->\n              <app-preview-matrix-dropdown *ngIf=\"question.type === 'matrix-dropdown'\" [question]=\"question\"\n                [questionIndex]=\"i + 1\"></app-preview-matrix-dropdown>\n              <app-date-time *ngIf=\"question.type === 'date-time'\" [question]=\"question\"\n                [questionIndex]=\"i + 1\"></app-date-time>\n              <app-file-upload *ngIf=\"question.type === 'file-upload'\" [question]=\"question\"\n                [questionIndex]=\"i + 1\"></app-file-upload>\n            </div>\n          </ng-container>\n        </div>\n      </ng-container>\n      <div class=\"device-area\">\n        <app-device (deviceChanged)=\"selectedDevice = $event\" [selectedDevice]=\"selectedDevice\"></app-device>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"preview-page-footer vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n    <div class=\"question-count vx-text-center\">\n      <!-- <div class=\"label vx-fs-12 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mb-1\">1 OF {{questionData?.questions?.elements?.length}} QUESTIONS ANSWERED</div>\n            <div class=\"question-progress\">\n                <div class=\"inner-line\" style=\"width: 20%;\"></div>\n            </div> -->\n    </div>\n    <div class=\"vx-d-flex vx-align-center\">\n      <div\n        class=\"powered-section vx-fs-9 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-pl-2 vx-pr-2 vx-d-flex vx-align-center vx-lh-7\">\n        POWERED BY&nbsp;<span class=\"vx-fw-700\">VCOMPLY</span>&nbsp;<sup class=\"vx-fw-600\">TM</sup>\n      </div>\n      <button (click)=\"previewBack.emit()\"\n        class=\"back vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\">\n        <i class=\"icons vx-fs-16 vx-mr-1\">&#xe91d;</i> BACK\n      </button>\n    </div>\n  </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\n\n@Component({\n  selector: 'app-workflow-pagination',\n  templateUrl: './workflow-pagination.component.html',\n  styleUrls: ['./workflow-pagination.component.less']\n})\nexport class WorkflowPaginationComponent implements OnInit {\n  alphabetsArray!: any;\n  @Input() activeAlphabet = '';\n  @Input() pageCount!: number;\n  @Input() start !:number;\n  @Input() end !:number;\n  @Input() total !:number;\n  @Input() noFilter!: boolean;\n  public pageArray: Array<number> = [];\n  @Input() currentPage = 1;\n  public enterPageNumber!: any;\n  public isInvalidInput = false;\n\n  @Output() selectedPage: EventEmitter<any> = new EventEmitter();\n  @Output() selectedAlphabet: EventEmitter<any> = new EventEmitter();\n\n  pageList!: any;\n  constructor() {\n    this.alphabetsArray = 'abcdefghijklmnopqrstuvwxyz'.split('');\n  }\n\n  ngOnInit(): void {}\n\n  alphabetChange(alphabet: string) {\n    this.activeAlphabet = alphabet;\n    this.selectedAlphabet.emit(alphabet);\n    this.goToPageArrayGenerate(1, false)\n  }\n\n  ngOnChanges(event: SimpleChanges) {\n    this.pageArray = [];\n    if (this.pageCount > 0) {\n      if (this.pageCount < 5) {\n        for (let i = 1; i <= this.pageCount; i++) {\n          this.pageArray.push(i);\n        }\n        return;\n      }\n      this.goToPageArrayGenerate(this.currentPage,false);\n    }\n  }\n\n\n  increaseOrDecrease(value: number) {\n    this.currentPage += value;\n    if (this.currentPage > 3 && this.currentPage <= this.pageCount && this.pageArray[this.pageArray.length - 1] < this.pageCount) {\n      if (value > 0) {\n        this.pageArray.shift();\n        this.pageArray.push(this.pageArray[this.pageArray.length - 1] + 1);\n      }\n    }\n\n    if (this.currentPage > 2 && value < 0 && this.pageArray[0] > 1 && this.currentPage < this.pageCount - 2) {\n      this.pageArray.pop();\n      this.pageArray.unshift(this.pageArray[0] - 1);\n    }\n    this.selectedPage.emit(this.currentPage);\n  }\n  onEnterPress(event: any) {\n    if (event.key.toLowerCase() === 'enter') {\n      if (!this.enterPageNumber || this.enterPageNumber > this.pageCount || this.enterPageNumber < 1) {\n        this.isInvalidInput = true;\n        return;\n      } else {\n        this.isInvalidInput = false;\n        this.goToPageArrayGenerate(this.enterPageNumber,true);\n      }\n    }\n  }\n\n\n  goToPageArrayGenerate(page: any,shouldEmit:boolean) {\n    this.isInvalidInput = false;\n    this.currentPage = page;\n    this.pageArray = [];\n    if (this.currentPage > 3 && this.currentPage < this.pageCount - 2) {\n      for (let i = this.currentPage - 2; i < this.currentPage + 3; i++) {\n        this.pageArray.push(i);\n      }\n    } else if (this.currentPage <= 3) {\n      if (this.pageCount > 4) {\n        this.pageArray = [1, 2, 3, 4, 5];\n      } else {\n        for (let i = 1; i <= this.pageCount; i++) {\n          this.pageArray.push(i);\n        }\n      }\n    } else if (this.currentPage > this.pageCount - 3) {\n      for (let i = this.pageCount - 4; i < this.pageCount + 1; i++) {\n        this.pageArray.push(i);\n      }\n    } else {\n      for (let i = this.currentPage - 2; i < this.currentPage + 2; i++) {\n        this.pageArray.push(i);\n      }\n    }\n\n    if(shouldEmit){\n      this.selectedPage.emit(this.currentPage);\n    }\n    \n  }\n\n\n}\n","<!-- <p>workflow-pagination works!</p> -->\n<div class=\"pagination-sec\" [class.right-align]=\"noFilter\">\n    <div class=\"left\" *ngIf=\"!noFilter\">\n        <div class=\"pagination-box\">\n            <ul>\n                <li><button (click)=\"alphabetChange('')\" [class.active]=\"!activeAlphabet\">All</button></li>\n                <li *ngFor=\"let data of alphabetsArray\" (click)=\"alphabetChange(data)\">\n                    <button [class.active]=\"activeAlphabet === data\" >{{data}}</button>\n                </li>\n            </ul>\n        </div>\n    </div>\n\n    <div *ngIf=\"pageCount > 1\" class=\"right\">\n        <div class=\"pagination-box\">\n            <ul>\n                <li>\n                    <button [disabled]=\"currentPage === 1\" [class.disabled]=\"currentPage === 1\" (click)=\"increaseOrDecrease(-1)\">\n                        <\n                    </button>\n                </li>\n\n                <li *ngFor=\"let page of pageArray; let i = index\">\n                    <button [disabled]=\"page === currentPage\" (click)=\"goToPageArrayGenerate(page,true)\" [class.active]=\"page === currentPage\">\n                        {{page}}\n                    </button>\n                </li>\n\n                <li>\n                    <button (click)=\"increaseOrDecrease(1)\" [disabled]=\"currentPage === pageCount\" [class.disabled]=\"currentPage === pageCount\">\n                        >\n                    </button>\n                </li>\n            </ul>\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-assessment-list-loader',\n  templateUrl: './assessment-list-loader.component.html',\n  styleUrls: ['./assessment-list-loader.component.less']\n})\nexport class AssessmentListLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"assessment-list-item\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n    <div class=\"table-row\">\n        <div class=\"table-column serial\">\n            <div class=\"sr-no\"></div>\n        </div>\n        <div class=\"table-column name\">\n            <div class=\"loader\"></div>\n        </div>\n        <div class=\"table-column action\">\n            <div class=\"loader\"></div>\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-assessment-list-sub-loader',\n  templateUrl: './assessment-list-sub-loader.component.html',\n  styleUrls: ['./assessment-list-sub-loader.component.less']\n})\nexport class AssessmentListSubLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"assessment-list-item\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n    <div class=\"sub-list\">\n        <div class=\"table-row\">\n            <div class=\"table-column serial\">\n                <div class=\"sr-no\"></div>\n            </div>\n            <div class=\"table-column sub-name\">\n                <div class=\"loader\"></div>\n            </div>\n            <div class=\"table-column question\">\n                <div class=\"loader\"></div>\n            </div>\n        </div>\n    </div>\n</div>","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\nimport { AuthService } from '../../workflow-services/auth.service';\nimport { ResponsibilityService } from '../../workflow-services/responsibility.service';\nimport {\n  AssessmentCategoryList,\n  AssessmentList,\n} from './service/assessment.interface';\nimport { AssessmentService } from './service/assessment.service';\nimport { ASSETS } from '../../constants/assets.constants';\nimport { CommonService } from '../../services/common.service';\n@Component({\n  selector: 'app-assessment-list',\n  templateUrl: './assessment-list.component.html',\n  styleUrls: ['./assessment-list.component.less'],\n})\nexport class AssessmentListComponent implements OnInit {\n  ASSETS = ASSETS;\n  animation = false;\n  selectedData: any;\n  subList = false;\n  @Input() isEdit = false;\n  @Input() mode = '';\n  openedCategory: Array<number> = [];\n  assessmentPayload = {\n    search_title: '',\n    page_no: '1',\n    state: 'ACTIVE',\n    search_text: '',\n    alphabet_filter: '',\n  };\n\n  dataPerPage = 0;\n\n  assessmentCategory: AssessmentCategoryList = {\n    data: [],\n    totalPage: 0,\n    totalRecords: 0,\n    start_value: 0,\n    end_value: 0,\n    currentPage: 0,\n  };\n  isLoader = false;\n\n  @Input() selectedAssessment = {\n    assessment_id: '',\n    category_id: '',\n    assessmentDetails: undefined,\n    category_details: undefined,\n  };\n\n  isDeleted = false;\n\n  searchAssessments = '';\n  previewQuestionData!: any;\n  isPreview = false;\n  @Input() selectedAssessmentData: any;\n  @Input() program_ids: string = '';\n  @Input() isFullScreen = false;\n\n  @Output() onAssessmentSelect = new EventEmitter();\n\n  @Output() cancelAssessment = new EventEmitter();\n\n  constructor(\n    private responsibilityService: ResponsibilityService,\n    private assessmentService: AssessmentService,\n    private auth: AuthService,\n    private commonService: CommonService\n  ) {\n    this.dataPerPage = this.responsibilityService.dataPerPage;\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    this.getAssessmentCategoryList();\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.postIframeLoaded();\n  }\n\n  postIframeLoaded() {\n    this.commonService.postMessageToParent({\n      event: 'iframeLoaded',\n      data: {},\n      meta: {}\n    });\n  }\n\n  onAssessmentSelected(event: any) {\n    this.selectedData = event;\n  }\n\n  preview(evt: any) {\n    this.assessmentService.getAssessmentQuestions(evt?.id).subscribe({\n      next: (res: any) => {\n        this.auth.previewPanel.next(true);\n        this.isPreview = true;\n        this.previewQuestionData = res;\n      },\n    });\n  }\n\n  previewBack() {\n    this.isPreview = false;\n    this.previewQuestionData = {};\n    this.auth.previewPanel.next(false);\n  }\n\n  /**\n   *\n   * @param index : Accept index of elementPosition\n   *\n   */\n  showSubList(index: number, id: string) {\n    if (this.openedCategory.includes(index)) {\n      this.openedCategory = this.openedCategory.filter((ele) => ele !== index);\n    } else {\n      this.openedCategory.push(index);\n      this.getAssessmentList(index, id);\n    }\n    return this.openedCategory;\n  }\n\n  // TODO: Pagination\n  /**\n   *\n   * @param event : page number that has been selected\n   */\n  onPageSelection(event: number) {\n    this.openedCategory = [];\n    this.assessmentPayload.page_no = event.toString();\n    this.getAssessmentCategoryList();\n  }\n\n  // TODO: Search\n  /**\n   *\n   * @param search : search text\n   */\n  onAssessmentSearch(search: string) {\n    this.openedCategory = [];\n    this.assessmentPayload.page_no = '1';\n    this.assessmentPayload.search_title = search;\n    this.assessmentPayload.search_text = search;\n    this.getAssessmentCategoryList();\n  }\n\n  // TODO: Filter by alphabet\n  /**\n   *\n   * @param event : Assessment category filter of Alphabet\n   */\n  onAlphabetSelected(event: string) {\n    this.openedCategory = [];\n    this.assessmentPayload.page_no = '1';\n    this.assessmentPayload.alphabet_filter = event;\n    this.assessmentPayload.search_text = '';\n    this.getAssessmentCategoryList();\n  }\n\n  getAssessmentCategoryList() {\n    this.isLoader = true;\n    this.responsibilityService\n      .getAssessmentCategory(this.assessmentPayload, this.program_ids)\n      .subscribe((res: any) => {\n        this.assessmentCategory = res;\n        this.isLoader = false;\n     \n      });\n  }\n\n\n\n  // TODO: Call Sub data API method\n\n  /**\n   *\n   * @param id : Assessment category id\n   */\n  getAssessmentList(index: number, id: string) {\n    const payload = {\n      search_title: '',\n    };\n    this.responsibilityService\n      .getAssessmentList(payload, id, this.program_ids)\n      .subscribe((res: Array<AssessmentList>) => {\n        this.assessmentCategory.data[index].assessmentData = [...new Set(res)];\n      });\n  }\n\n  //  TODO: Select data\n  /**\n   *\n   * @param category_id :selected assessment's category's object id\n   * @param assessment_id : Selected assessment's object id\n   */\n  setAssessment(category_details: any, assessmentDetails: any) {\n    this.selectedAssessment = {\n      category_id: category_details?.id,\n      assessment_id: assessmentDetails.id,\n      assessmentDetails: assessmentDetails,\n      category_details: category_details,\n    };\n  }\n\n  // TODO: Display selected data in bottom floating bar with next enabled button having\n\n  // TODO: Send data in payload of create Responsibility form\n\n  save() {\n    this.onAssessmentSelect.emit(this.selectedAssessment);\n  }\n\n  close() {\n    this.cancelAssessment.emit();\n  }\n\n  deleteEvent(event: any) {\n    this.selectedAssessment = {\n      assessment_id: '',\n      category_id: '',\n      assessmentDetails: undefined,\n      category_details: undefined,\n    };\n    this.isDeleted = true;\n  }\n\n  // TODO: populate data while editing data\n\n  // TODO:Enable EDIT UI to improve user Experience\n\n  //  TODO: block users for selecting checkpoints\n\n  // TODO: checkpoints\n}\n","<app-preview *ngIf=\"isPreview\" [questionData]=\"previewQuestionData\" (previewBack)=\"previewBack()\"\n  [isFullScreen]=\"isFullScreen\"></app-preview>\n<div class=\"assessment-list\" [class.animate]=\"animation\" [class.full-screen]=\"isFullScreen\">\n  <div *ngIf=\"!isFullScreen\" class=\"assessment-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select an Assessment</div>\n  </div>\n  <div class=\"assessment-list-body\">\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input type=\"text\" [(ngModel)]=\"searchAssessments\" (change)=\"onAssessmentSearch($event.target.value)\"\n        placeholder=\"Search Assessment Category\" />\n    </div>\n    <app-workflow-pagination [pageCount]=\"assessmentCategory?.totalPage\" [total]=\"assessmentCategory?.totalRecords\"\n      [start]=\"assessmentCategory?.start_value\" [end]=\"assessmentCategory?.end_value\" [activeAlphabet]=\"''\"\n      (selectedAlphabet)=\"onAlphabetSelected($event)\"\n      (selectedPage)=\"onPageSelection($event)\"></app-workflow-pagination>\n    <div *ngIf=\"\n        assessmentCategory.data.length === 0 && !isLoader && searchAssessments\n      \" class=\"assessment-list-part vx-mb-4\">\n      <app-no-data [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Assessments Found.'\"></app-no-data>\n    </div>\n    <div *ngIf=\"assessmentCategory.data.length || isLoader\" class=\"assessment-list-part vx-mb-4\"\n      [class.web-view]=\"isFullScreen\">\n      <div *ngIf=\"isEdit && selectedAssessment?.assessmentDetails?.assessment_name\" class=\"assessment-list-selected\">\n        <div class=\"assessment-list-heading\">\n          {{\n          mode === \"policy\"\n          ? \"Assessment already selected\"\n          : \"Assessment already selected for this responsibility\"\n          }}\n        </div>\n        <div class=\"assessment-list-item\">\n          <div class=\"table-row\">\n            <div class=\"table-column serial disabled\">\n              <app-cs-radio [disabled]=\"true\" class=\"disabled\" [checked]=\"true\" [readonly]=\"true\"></app-cs-radio>\n            </div>\n            <div class=\"table-column sub-name\">\n              <div class=\"name-inner\">\n                <div class=\"value\" [appTooltip]=\"\n                    selectedAssessment?.assessmentDetails?.assessment_name\n                  \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                  {{ selectedAssessment?.assessmentDetails?.assessment_name }}\n                </div>\n                <div class=\"within-part\">\n                  <span class=\"within-box\">Within</span>\n                  <span class=\"value\" [appTooltip]=\"\n                      selectedAssessment?.category_details?.category_name +\n                      (selectedAssessment?.category_details?.parent_tree\n                        ? ' > ' +\n                          selectedAssessment?.category_details?.parent_tree\n                        : '')\n                    \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                    selectedAssessment?.category_details?.category_name +\n                    (selectedAssessment?.category_details?.parent_tree\n                    ? \" > \" +\n                    selectedAssessment?.category_details?.parent_tree\n                    : \"\")\n                    }}</span>\n                </div>\n              </div>\n            </div>\n            <div class=\"table-column question\">\n              <div class=\"buttons\">\n                <button class=\"action-btn\" (click)=\"preview(selectedAssessment?.assessmentDetails)\">\n                  <i class=\"icons\">&#xeae5;</i> Preview\n                </button>\n                <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe90c;</i> Edit</button> -->\n              </div>\n              <div class=\"label\">\n                {{ selectedAssessment?.assessmentDetails?.questions }}\n                {{\n                selectedAssessment?.assessmentDetails?.questions > 1\n                ? \"Questions\"\n                : \"Question\"\n                }}\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"assessment-list-heading\">\n        {{\n        mode === \"policy\"\n        ? \"Select an Assessment\"\n        : \"Select an Assessment for this responsibility\"\n        }}\n      </div>\n\n      <!--\n                    Assessment category list \n                    active class is used for highlighting opened element\n            -->\n      <ng-container *ngIf=\"!isLoader\">\n        <div *ngFor=\"let data of assessmentCategory.data; let i = index\" class=\"assessment-list-item\" [class.active]=\"\n            openedCategory.includes(i) ||\n            data.id === selectedAssessment?.category_id\n          \">\n          <div class=\"table-row main-list\" (click)=\"showSubList(i, data?.id)\"\n            [class.disabled]=\"data?.assessmentcount < 1\">\n            <div class=\"table-column serial\">\n              <div [id]=\"'sr-no' + i\" class=\"sr-no\" [appTooltip]=\"i + 1\" placement=\"bottom\" delay=\"0\" type=\"black\"\n                [tooltipMandatory]=\"true\">\n                {{ dataPerPage * (assessmentPayload.page_no - 1) + (i + 1) }}\n              </div>\n            </div>\n            <div class=\"table-column name\">\n              <div class=\"name-inner\">\n                <div class=\"value\" [appTooltip]=\"data.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n                  [tooltipMandatory]=\"false\">\n                  {{ data?.category_name }}\n                </div>\n                <div class=\"within-part\" *ngIf=\"data?.parent_tree\">\n                  <span class=\"within-box\">Within</span>\n                  <span class=\"value\" [appTooltip]=\"data.parent_tree\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n                    [tooltipMandatory]=\"false\">{{ data?.parent_tree }}</span>\n                </div>\n              </div>\n            </div>\n            <div class=\"table-column action\">\n              <button [id]=\"'arrow' + i\" class=\"arrow\" [class.disabled]=\"data?.assessmentcount < 1\"\n                [disabled]=\"data?.assessmentcount < 1\">\n                <i *ngIf=\"!openedCategory.includes(i)\" class=\"icons\">&#xe970;</i>\n                <i *ngIf=\"openedCategory.includes(i)\" class=\"icons\">&#xe9e8;</i>\n              </button>\n            </div>\n          </div>\n\n          <!-- Assessment list start from here -->\n          <div *ngIf=\"openedCategory.includes(i)\" class=\"sub-list\">\n            <ng-container *ngIf=\"data.assessmentData?.length > 0\">\n              <div class=\"table-row\" *ngFor=\"let assessment of data.assessmentData; let j = index\" [class.active]=\"\n                  assessment.id === selectedAssessment?.assessment_id &&\n                  data.id === selectedAssessment?.category_id\n                \">\n                <div class=\"table-column serial\">\n                  <div [id]=\"'sub-sr-no' + i + j\" class=\"sr-no\" appTooltip=\"{{\n                      dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n                    }}.{{ j + 1 }}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n                    {{\n                    dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n                    }}.{{ j + 1 }}\n                    <app-cs-radio name=\"assessment\" [value]=\"assessment.id\" [checked]=\"\n                        assessment?.id === selectedAssessment?.assessment_id &&\n                        data?.id === selectedAssessment?.category_id\n                      \" (checkedEvent)=\"setAssessment(data, assessment)\"></app-cs-radio>\n                  </div>\n                </div>\n                <div class=\"table-column sub-name\">\n                  <div class=\"value\" [appTooltip]=\"\n                      'Mission and message, communications to external audiences'\n                    \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                    {{ assessment?.assessment_name }}\n                  </div>\n                </div>\n                <div class=\"table-column question\">\n                  <div class=\"buttons\">\n                    <button class=\"action-btn\" (click)=\"preview(assessment)\">\n                      <i class=\"icons\">&#xeae5;</i> Preview\n                    </button>\n                    <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe9ba;</i> Edit</button> -->\n                  </div>\n                  <div class=\"label\">\n                    {{ assessment?.questions }}\n                    {{ assessment?.questions > 1 ? \"Questions\" : \"Question\" }}\n                  </div>\n                </div>\n              </div>\n            </ng-container>\n            <!-- Loader loading isLoader  -->\n            <app-assessment-list-sub-loader *ngIf=\"!data.assessmentData?.length\"></app-assessment-list-sub-loader>\n            <!-- <app-line-loader *ngIf=\"!data.assessmentData?.length\" [loaderHeight]=\"'5'\"></app-line-loader> -->\n          </div>\n        </div>\n      </ng-container>\n      <!-- Loader loading isLoader  -->\n      <app-assessment-list-loader *ngIf=\"isLoader\"></app-assessment-list-loader>\n    </div>\n    <!-- No data image  -->\n    <app-no-data *ngIf=\"!assessmentCategory.data.length && !isLoader && !searchAssessments\"\n      [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n\n    <app-floating-bar [selectedData]=\"[]\" (closeEvent)=\"save()\" (closeList)=\"close()\"\n      [isDisabled]=\"!selectedAssessment?.assessment_id && !isDeleted\" [selectedData]=\"\n        selectedAssessment?.assessment_id\n          ? [selectedAssessment?.assessmentDetails]\n          : []\n      \" [displayElementKey]=\"'assessment_name'\" [pluralText]=\"'Risk Categories selected'\" (closeEvent)=\"save()\"\n      (deleteEvent)=\"deleteEvent($event)\">\n    </app-floating-bar>\n  </div>\n</div>","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'app-list-container',\n  template: `\n    <div class=\"wfe-list-container\">\n      <div\n        class=\"wfe-list-container-heading vx-d-flex vx-align-center vx-pl-4 vx-pr-4\"\n      >\n        <i class=\"icons arrow-back vx-mr-2\" (click)=\"onClose()\">&#xe91d;</i>\n        <div class=\"vx-fs-14 vx-fw-500 vx-gray-70\">{{ heading }}</div>\n      </div>\n      <div class=\"wfe-list-container-body\">\n        <ng-content select=\"[body]\"></ng-content>\n        <div class=\"wfe-list-container-footer\">\n          <ng-content select=\"[footer]\"></ng-content>\n        </div>\n      </div>\n    </div>\n  `,\n  styleUrls: ['./list-container.component.less'],\n})\nexport class ListContainerComponent {\n  @Input() heading: string = 'Select Programs & Program Categories';\n  @Output() close = new EventEmitter<void>();\n\n  onClose() {\n    this.close.emit();\n  }\n}\n","import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  ViewChild,\n  ElementRef,\n  TemplateRef,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { EditorConfig } from 'vcomply-editor';\nimport { AuthService } from '../workflow-services/auth.service';\nimport { ResponsibilityService } from '../workflow-services/responsibility.service';\nimport { FrequencyService } from '../sharedComponents/frequency/frequency.service';\nimport moment from 'moment/moment';\nimport { UiKitService } from '../workflow-services/ui-kit.service';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\nimport { HttpParams } from '@angular/common/http';\nimport { Observable, of, Subject, Subscription, takeUntil } from 'rxjs';\nimport { ProgramsService } from '../workflow-services/programs.service';\nimport {\n  GRC_TYPE_ARRAY,\n  OTHER_GRC_CARD,\n} from '../workflow/shared/constants/grcObject.constant';\nimport { GrcService } from '../workflow/shared/services/grc.service';\nimport { DEFAULT_24HR, DEFAULT_TIME } from '../constants/time.constants';\nimport { OrganizationUserService } from '../workflow-services/organization-user.service';\nimport { ComplianceCommonService } from '../workflow-services/common-workflow-services/compliance-common.service';\nimport { OrganizationCommonService } from '../workflow-services/common-workflow-services/organization-common.service';\nimport { FrequencyObject } from '../interfaces/frequency.interface';\nimport { Responsibility } from '../interfaces/responsibilty.interface';\nimport { ListItem } from '../sharedComponents/program-list/interfaces/list-item.interface';\nimport { DataSource } from '../sharedComponents/program-list/interfaces/data-source.interface';\nimport { IframeService } from '../services/iframe.service';\nimport { ASSETS } from '../constants/assets.constants';\nimport { PROGRAM_LIST_API } from '../constants/api.constants';\nimport { MONTH_NAMES } from '../sharedComponents/frequency/frequency.constant';\n\n@Component({\n  selector: 'app-workflow-compliance',\n  templateUrl: './workflow-compliance.component.html',\n  styleUrls: ['./workflow-compliance.component.less', '../forms.less'],\n  // changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WorkflowComplianceComponent implements OnInit {\n  /* Defining the input parameters for the component. */\n  @Input() mode = 'CREATE';\n  @Input() responsibilityId: number = 0;\n  @Input() frameworkDetails: Array<any> = [];\n  @Input() isEntrust: boolean = true;\n  @Input() feature: any;\n  @Input() assessmentDetails: any;\n  @Input() isDuplicate: boolean = false;\n  ASSETS = ASSETS;\n  allGroupAssignee: boolean = true;\n  assignorId: any[] = [];\n  assigneeIds: any[] = [];\n  reviewerIds: any[] = [];\n  overseerIds: any[] = [];\n  disableRadioAssignee: any[] = [];\n  isResponsibilitySimplified: boolean = false;\n  queryParam: string = '';\n  recentResponsibilityUrl: any = {\n    byResponsibilities: { type: ['recent_responsibilities'], subType: ['CC'] },\n    byStatus: { type: [], subType: [] },\n    filterObject: {\n      responsibilityCenter: [],\n      entrustedBy: [],\n      entrustedTo: [],\n      riskIds: [],\n      responsibilityCategory: [],\n    },\n    timePeriodDetails: { type: '', selectedPeriod: '', selectedYear: '' },\n    status: '',\n  };\n  isResponsibilityRcLinkEnabled: boolean = false;\n  grcList: Array<any> = [];\n  grcLoader: boolean = false;\n  otherGRCCard: any = JSON.parse(JSON.stringify(OTHER_GRC_CARD));\n  selectedGRCTab: number = 0;\n  grcTabLoader: boolean = false;\n  grcSearchString: string = '';\n  GRC_TYPE_ARRAY = GRC_TYPE_ARRAY;\n  grcDataWithTypes: any = {\n    assets: [],\n    processes: [],\n    vendors: [],\n    inventory: [],\n  };\n  selectedCategory: any[] = [];\n  programListUrl = PROGRAM_LIST_API;\n\n  @Input('closeOnEsc') set closeOnEsc(escapeCondition: boolean) {\n    if (escapeCondition) {\n      this.activeDeselector();\n    }\n  }\n  @Input() orgDetails: any;\n\n  url =\n    'q={\"byResponsibilities\":{\"type\":[\"responsibilities_in_queue\"],\"subType\":[\"CC\"]},\"byStatus\":{\"type\":[\"responsibilities_in_queue\"],\"subType\":[]},\"filterObject\":{\"responsibilityCenter\":[],\"entrustedBy\":[],\"entrustedTo\":[],\"riskIds\":[],\"responsibilityCategory\":[]},\"timePeriodDetails\":{\"type\":\"\",\"selectedPeriod\":\"\",\"selectedYear\":\"\"},\"status\":\"\"}';\n  @Output() pickerChanged = new EventEmitter();\n  @Output() populateOption = new EventEmitter();\n  @Output() hideElementsFromMoreOptions = new EventEmitter();\n  @Output() closeWorkflow = new EventEmitter();\n  @Output() resetForm = new EventEmitter();\n  @Output() disconnectRefresh = new EventEmitter();\n  @Output() checkpointCountUpdated = new EventEmitter();\n  @Output() rcSelected = new EventEmitter();\n  @Input() openedFrom!: any; //when opened from risk treatment it will be 'RISK_TREATMENT'\n  @Input() selectedRC: number = 0; // 4-5 digit id of selected rc by default when opened from risk treatment\n  // @Input() selectedProgram: any = null;\n  featureFlag_groups: boolean = false;\n  selectedProgram: any = null;\n  selectedReviewer: boolean = true;\n  @Input('selectedProgram') set setSelectedProgram(program: any) {\n    if (program && Object.keys(program)?.length) {\n      this.selectedProgram = program;\n      this.responsibilityForm.program = [];\n      this.responsibilityForm.linkedProgram = [];\n      // this.responsibilityForm.program.push(program);\n      this.responsibilityForm.linkedProgram.push(program);\n    }\n  }\n\n  /* Creating an event emitter. */\n  @Output() onRemovingCheckpoint: EventEmitter<any> = new EventEmitter();\n  @Output() isAssessmentDisabled = new EventEmitter();\n  @Output() assigneeTypeChange = new EventEmitter(); // it will emit when assignee type change\n  @Output() onReviewerTypeChange = new EventEmitter(); // it will emit when reviewer type change\n\n  entrustLoader = false;\n  scrollToBottom = false;\n  description: EditorConfig = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Add more information about completing the responsibility',\n  };\n  programPeopleList: any = {\n    assigneesList: [],\n    reviewersList: [],\n    overseersList: [],\n  };\n  loader = false;\n  submitted = false;\n  editDetails!: any;\n  smileyMessage = `Done!`;\n  actionButtons = [\n    {\n      buttonText: 'Entrust More Responsibilities',\n      class: 'white-btn',\n      id: 'addMore',\n    },\n    { buttonText: 'View Responsibilities', class: 'blue-btn', id: 'view' },\n  ];\n  showSmiley = false;\n  memberId = 0;\n  organizationId = 0;\n  rcListLoaded = false;\n  assignorsListLoaded = false;\n  assigneesListLoaded = false;\n  categoriesListLoaded = false;\n  groupsListLoaded = false;\n  selectedFrameworkValues!: any;\n  hasReviewer: boolean = false;\n\n  // usersList: any[] = [];\n  assignorsList: any[] = [];\n  assigneesList: any[] = [];\n  reviewersList: any[] = [];\n  disableAssigneeIds: any[] = [];\n  disableReviewerIds: any[] = [];\n  disableOverseerIds: any[] = [];\n  reviewerMemberIdsList: any[] = [];\n  groupOverseerList: any[] = [];\n  groupReviewerList: any[] = [];\n  groupAssigneeList: any[] = [];\n  overseersList: any[] = [];\n  allUsersList: any[] = [];\n  behalfOfUsersList: any[] = [];\n  assigneeUserList: any[] = [];\n  reviewerUserList: any[] = [];\n  overseerUserList: any[] = [];\n  overseerUserNotifyList: any[] = [];\n  allCategories: any[] = [];\n  assuranceCategoriesList: any[] = [];\n  assuranceRequiresAuditList: any[] = [];\n  groupsList: any[] = [];\n  OrgGroup: any[] = [];\n  adminsList: any[] = [];\n  responsibilityCentersList: any[] = [];\n  categoryList: any[] = [];\n  nonRemovableUsersList: any[] = [];\n  responsibilityCenterType: Number = 1;\n\n  responsibilityForm: any = {\n    assignors: {\n      enable: false,\n      list: [],\n    },\n    responsibility: {\n      name: '',\n      keyResponsibility: false,\n    },\n    assigneeGroups: {\n      whoCanComplete: 'ANYONE',\n      list: [],\n    },\n    assignees: {\n      whoCanComplete: 'ANY_ONE',\n      list: [],\n    },\n    allowEditDueDate: false,\n    frequency: '',\n    description: '',\n    objective: '',\n    rc: [],\n    responsibilityCenterType: 1,\n    category: [],\n    program: [],\n    program_selected_ids: [],\n    checkpointInstruction: '',\n    customTags: [],\n    checkpoints: [],\n    reviewers: {\n      sequentialWorkflow: true,\n      reviewFrequency: {\n        reviewCompleteDays: 2,\n        reviewNOtCompletedDays: 2,\n      },\n      list: [],\n    },\n    groupReviewers: {\n      sequentialWorkflow: true,\n      reviewFrequency: {\n        reviewCompleteDays: 2,\n        reviewNOtCompletedDays: 2,\n      },\n      list: [],\n    },\n    overseers: {\n      notifyList: [],\n      list: [],\n    },\n    overseersGroups: {\n      notifyList: [],\n      list: [],\n    },\n    formatAndEvidence: {\n      formatRequired: false,\n      formatFiles: [],\n      formatLinks: [],\n      evidenceRequired: false,\n    },\n    assuranceList: [],\n    requiresAuditList: [],\n    riskClass: 'low',\n    riskMatrix: '0,0,0,0,0,0',\n    audit_category_details: {\n      category_id: 0,\n      sample: 5,\n      percentage: 30,\n      frequency_pattern: '1~0~3~1',\n      frequency_time: DEFAULT_24HR,\n    },\n    assessment: {\n      category_id: '',\n      assessment_id: '',\n    },\n    new_checkpoints: {},\n    linkedProgram: [],\n    selectedGRCObjects: [],\n    customFields: [],\n  };\n  moreOptions: any = {\n    OBJECTIVE: false,\n    RC: false,\n    CATEGORY: false,\n    PROGRAM: false,\n    FORMATE_EVIDENCE: false,\n    CHECKPOINTS: false,\n    ASSESSMENT: false,\n    RISK_CLASSIFICATION: false,\n    REVIEWER: false,\n    OVERSEER: false,\n    ASSURANCE: false,\n    APPS: false,\n    REQUIRES_AUDIT: false,\n    CHECKPOINTS_NEW: false,\n    GRC_OBJECTS: false,\n    CUSTOM_FIELDS: false,\n  };\n  activeSelector = '';\n  sideSelectorElements: any = [\n    'assurance',\n    'framework',\n    'assignors',\n    'assignees',\n    'category',\n    'program',\n    'rc',\n    'checkpoints',\n    'frequency',\n    'reviewer',\n    'reviewerFrequency',\n    'overseer',\n    'overseerNotify',\n    'riskCalculator',\n    'isAssessment',\n    'requires_audit',\n    'checkpoints-new',\n    'GRC_OBJECTS',\n    'CUSTOM_FIELDS',\n  ];\n\n  focus = {\n    responsibilityName: false,\n    description: false,\n    objective: false,\n  };\n\n  categories: any = {\n    regulations: {\n      list: [],\n      selectedList: [],\n    },\n    standards: {\n      list: [],\n      selectedList: [],\n    },\n    internalControls: {\n      list: [],\n      selectedList: [],\n    },\n    others: {\n      list: [],\n      selectedList: [],\n    },\n  };\n\n  allPrograms: any[] = [];\n\n  riskClassification = [\n    { name: 'Low', value: 'low', class: 'low' },\n    { name: 'Low-Medium', value: 'low_medium', class: 'low-med' },\n    { name: 'Medium-High', value: 'medium_high', class: 'med-high' },\n    { name: 'High', value: 'high', class: 'high' },\n  ];\n\n  assignorMode = 'checkbox';\n  rcMode = 'checkbox';\n  invalidType = '';\n  responsibilityPayload!: any;\n  assigneeRadioSelect = false;\n  programsList: any[] = [];\n\n  // frequency variable declaration\n  frequencyDetails = {\n    pattern: '',\n    notificationPending: 0,\n    dateOfModified: 0,\n    deactivationValue: 0,\n    selectedReport: 0,\n    lifecycle: '0000-00-00~~0',\n    startDate: Math.floor(new Date().getTime() / 1000),\n    startOnTheDay: Math.floor(new Date().getTime() / 1000),\n    window: 0,\n    failed: 0,\n    time: DEFAULT_TIME,\n    failedTime: '',\n    continuous_failed_days: 0,\n    onCompletionReportDetails: {},\n  };\n\n  frequencyObject: FrequencyObject | null = null;\n  frequencyPlaceholder = 'How often does the responsibility occur?';\n  shortMonth: Array<string> = [];\n  isEditWhat: Boolean = true;\n  isFrameworkAvailable = 1;\n  isNotificationPending = 0;\n\n  assuranceFlag!: any;\n  riskClassificationFlag!: any;\n  hiddenList: any[] = [];\n  subscriptionDetails!: any;\n  isRiskEnable: boolean = true;\n  isDuplicateEntrust: boolean = false;\n  auditTime: string = DEFAULT_TIME;\n  sendAuditRemindersValue: number = 2;\n  sampleValue: any;\n  samplePercentage: any;\n  selectedSample!: number;\n  isSample: boolean = false;\n  tempCheckValue: number = -1;\n  isAssessment: boolean = false;\n  managePermission: boolean = false;\n  checkpointCount: number = 0;\n  roleBasedPermissions!: any;\n  isGroupAssigned: boolean = false;\n  responsibilityData!: any;\n  originalAssignee!: any;\n  userListLoader: boolean = false;\n  assignorsListLoader: boolean = false;\n  rawResponsibility: any;\n  otherGRCSubscription!: Subscription;\n  allowEditDueDateFeatureFlag: boolean = false;\n  allProgamSelected: any[] = [];\n  onCompletionResponsibility: any;\n  customFieldsSelected: string = '+ Add Custom Fields';\n\n\n  @ViewChild('what') whatInput!: ElementRef;\n  unSubscribeProgram = new Subject<void>();\n\n  @Input() responsibilityDetails: any;\n  @Input() customFields: any[] = [\n  ]\n\n  constructor(\n    private authService: AuthService,\n    private responsibilityService: ResponsibilityService,\n    private frequencyService: FrequencyService,\n    private uiKitService: UiKitService,\n    private snackBar: SnackBarService,\n    private permission: AuthService,\n    private programService: ProgramsService,\n    private grcService: GrcService,\n    private organizationUserService: OrganizationUserService,\n    private complianceCommonService: ComplianceCommonService,\n    private organizationCommonService: OrganizationCommonService,\n    private iframeService: IframeService,\n\n  ) {\n    this.organizationCommonService?.getOrgUserInfo()?.subscribe({\n      next: (res: any) => {\n        const complianceSubmodule =\n          res?.roleActions[\n            res?.roleActions?.findIndex(\n              (ele: any) => ele?.moduleName === 'compliance'\n            )\n          ]?.subModule;\n        const permissions =\n          complianceSubmodule[\n            complianceSubmodule?.findIndex(\n              (ele: any) => ele?.subModuleName === 'Programs'\n            )\n          ]?.permissions;\n        this.managePermission = permissions[\n          permissions?.findIndex((ele: any) => ele?.name === 'manage programs')\n        ]?.enable\n          ? true\n          : false;\n        if (this.managePermission) {\n          this.hiddenList.push('CATEGORY');\n          this.categoriesListLoaded = true;\n        } else {\n          this.hiddenList.push('PROGRAM');\n          this.getCategoryList();\n        }\n      },\n    });\n  }\n\n  ngOnInit(): void {\n    this.setFeatureFlags();\n    this.pickerChanged.emit(false);\n    this.getInitialData();\n    this.populateRCList();\n  }\n\n  populateRCList() {\n    if (this.openedFrom === 'RISK_TREATMENT' && this.mode === 'CREATE') {\n      this.getRCList();\n    }\n  }\n\n  setFeatureFlags() {\n    this.featureFlag_groups = this.feature.isFeatureEnabled(\n      'ff_responsibility_groups'\n    );\n    this.isResponsibilitySimplified = this.feature.isFeatureEnabled(\n      'ff_responsibility_simplification'\n    );\n    this.isResponsibilityRcLinkEnabled = this.feature.isFeatureEnabled(\n      'ff_responsibility_rc_link'\n    );\n    this.allowEditDueDateFeatureFlag =\n      this.feature.isFeatureEnabled('ff_edit_due_date');\n  }\n\n  getInitialData() {\n    this.isDuplicate = this.responsibilityDetails?.duplicate ?? false;\n    this.hiddenList.push('ASSESSMENT');\n    this.hiddenList.push('ASSURANCE');\n    this.getAssigneesList();\n    this.checkWhetherAllListsLoaded();\n    this.getOrganizationDetails();\n    this.getUserDetails();\n    this.shortMonth = this.frequencyService.monthArray.map((month) =>\n      month.substring(0, 3)\n    );\n    if (this.openedFrom === 'RISK_TREATMENT') {\n      this.getRCDetailsinRiskTreatment();\n    }\n    if (this.mode === 'CREATE') {\n      this.organizationId = this.authService.getOrganizationId();\n      this.memberId = this.authService.getUserDetails().user.uid;\n      this.hiddenList.push('CHECKPOINTS');\n    }\n    if (this.mode === 'EDIT') {\n      this.loader = true;\n      this.getRCList();\n      this.getGroupsList();\n      this.getAssignorsList();\n    }\n    this.checkCustomFields();\n    this.getOrgDetails();\n    this.getSubscriptionDetail();\n    this.setResponsibilityName();\n    this.hideElementsFromMoreOptions.emit(this.hiddenList);\n  }\n\n  checkCustomFields() {\n    if (!this.customFields?.length) {\n      this.hiddenList.push('CUSTOM_FIELDS');\n    }\n  }\n\n  getRCDetailsinRiskTreatment() {\n    this.responsibilityForm.rc = this.setList(\n      this.responsibilityCentersList,\n      [this.selectedRC],\n      'item_id'\n    );\n    this.moreOptions.RC = true;\n  }\n\n  getOrgDetails() {\n    this.organizationCommonService?.getOrgDetailsInfo()?.subscribe({\n      next: (res: any) => {\n        this.isRiskEnable = res?.enable_riskclass ? true : false;\n        if (!res?.enable_riskclass) {\n          this.hiddenList.push('RISK_CLASSIFICATION');\n          this.hideElementsFromMoreOptions.emit(this.hiddenList);\n        }\n      },\n      error: (err: Error) => {\n        console.error(err);\n      },\n    });\n  }\n\n  getSubscriptionDetail() {\n    this.organizationCommonService?.getSubscriptionDetailsInfo()?.subscribe({\n      next: (res: any) => {\n        this.subscriptionDetails = res;\n        this.hideOptionFromMoreOptions();\n      },\n      error: (err: Error) => {\n        console.error(err);\n      },\n    });\n  }\n\n  hideOptionFromMoreOptions() {\n    const visibleOptions: string[] = [];\n    if (this.subscriptionDetails[0]?.assessment_flag) {\n      visibleOptions.push('ASSESSMENT');\n    }\n\n    if (this.subscriptionDetails[0]?.assurance_flag) {\n      visibleOptions.push('ASSURANCE');\n    }\n\n    this.hiddenList = this.hiddenList?.filter(\n      (ele) => !visibleOptions.includes(ele)\n    );\n    this.hideElementsFromMoreOptions.emit(this.hiddenList);\n  }\n\n  activateSelector(type: any, event: boolean) {\n    this.activeSelector = event ? type : '';\n    if (this.sideSelectorElements?.includes(type)) {\n      this.pickerChanged.emit(event);\n    }\n    switch (type) {\n      case 'checkpoints-new':\n        this.authService.previewPanel.next(event);\n        break;\n      case 'rc':\n        this.getRCList();\n        break;\n      case 'assignors':\n        this.getAssignorsList();\n        break;\n      case 'assignees':\n        this.getGroupsList();\n        break;\n      case 'CUSTOM_FIELDS':\n        this.setCustomFields(event);\n        break;\n    }\n  }\n\n  setCustomFields(event: any) {\n    this.customFieldsSelected = '+ Add Custom Fields';\n    this.responsibilityForm.customFields.push(event);\n    this.customFields = this.customFields.filter((ele: any) => ele.id !== event.id);\n    this.activeSelector = '';\n\n  }\n\n  setResponsibilityName() {\n    if (this.assessmentDetails?.assessment_type === 'compliance_audit') {\n      const assessmentData = {\n        target: {\n          value: 'Audit: ' + this.assessmentDetails?.assessment_name,\n        },\n      };\n      const payload = {\n        assessment_id: this.assessmentDetails.aid,\n        category_id: this.assessmentDetails.category[0]?._id,\n      };\n\n      this.setAssessmentData([this.assessmentDetails], payload, 'assessment');\n\n      this.whatChanged(assessmentData);\n      this.hiddenList.push('CHECKPOINTS');\n      this.hiddenList.push('CHECKPOINTS_NEW');\n      this.hideElementsFromMoreOptions.emit(this.hiddenList);\n    }\n  }\n\n  whatChanged(event: any) {\n    this.responsibilityForm.responsibility.name = event?.target?.value;\n    if (event.target.value.trim() !== '') {\n      this.isEditWhat = true;\n      if (this.invalidType === 'what') {\n        this.invalidType = '';\n      }\n    } else {\n      this.isEditWhat = false;\n    }\n  }\n\n  activeDeselector() {\n    this.activeSelector = '';\n    this.pickerChanged.emit(false);\n  }\n\n  addMoreInfo(event: any) {\n    this.scrollToBottom = true;\n    this.moreOptions[event.code] = event.checked;\n  }\n\n  onRcTypeChange(selectedType: Number) {\n    this.responsibilityCenterType = selectedType ?? 1;\n  }\n\n  getRCList(program_id?: string) {\n    let params = new HttpParams();\n    if (program_id) {\n      params = params.append('program_ids', program_id);\n    }\n    this.complianceCommonService?.getRcListInfo(params)?.subscribe({\n      next: (res: any) => {\n        // Normalise RC list structure so UI components can rely on item_id / item_name\n        this.responsibilityCentersList = Array.isArray(res)\n          ? res.map((item: any) => {\n              // Determine item_name - prioritize existing item_name, then rc_name\n              let itemName = item?.item_name;\n              \n              if (!itemName || itemName === '') {\n                if (Array.isArray(item?.rc_name) && item.rc_name.length > 0) {\n                  // Filter out empty strings and join array elements with ' / ' separator\n                  const filteredRcName = item.rc_name.filter((name: any) => name && name.trim() !== '');\n                  itemName = filteredRcName.join(' / ');\n                } else if (item?.rc_name && typeof item.rc_name === 'string') {\n                  // Use rc_name as string\n                  itemName = item.rc_name;\n                } else if (Array.isArray(item?.item_name) && item.item_name.length > 0) {\n                  // Fallback: if item_name is an array, filter and join it\n                  const filteredItemName = item.item_name.filter((name: any) => name && name.trim() !== '');\n                  itemName = filteredItemName.join(' / ');\n                }\n              }\n              \n              // Clean up the name - remove any extra spaces, trim, and ensure it's a string\n              if (itemName) {\n                if (typeof itemName === 'string') {\n                  itemName = itemName.trim();\n                } else {\n                  // Convert to string if it's not already\n                  itemName = String(itemName).trim();\n                }\n              }\n              \n              const normalised = {\n                ...item,\n                // item_id is what the RC selector & floating bar expect\n                item_id:\n                  item?.item_id ?? item?.rc_id ?? item?.rcid ?? null,\n                // item_name is what floating bar displays - ensure it's properly set\n                item_name: itemName || item?.item_name || (Array.isArray(item?.rc_name) ? item.rc_name.join(' / ') : item?.rc_name) || '',\n              };\n\n              return normalised;\n            })\n          : [];\n\n        this.rcListLoaded = true;\n\n        // Extract IDs using the normalised key\n        const ids = this.returnIds(this.responsibilityForm.rc, 'item_id');\n\n        const RC = this.responsibilityCentersList.filter((element: any) =>\n          ids?.includes(element.item_id)\n        );\n        if (RC?.length) {\n          this.responsibilityForm.rc = RC;\n        } else {\n          this.responsibilityForm.rc = [];\n        }\n\n        if (this.openedFrom === 'RISK_TREATMENT') {\n          this.responsibilityForm.rc = this.setList(\n            this.responsibilityCentersList,\n            [this.selectedRC],\n            'rcid'\n          );\n          this.moreOptions.RC = true;\n          this.actionButtons = [\n            {\n              buttonText: 'Go to risk treatment',\n              class: 'blue-btn',\n              id: 'view',\n            },\n          ];\n          // Previously there was only RC was emitting which made the checked options to de check now checking the condition and sending all the selected options\n          let checkedMoreOptions = [];\n          for (const key in this.moreOptions) {\n            if (this.moreOptions[key]) {\n              checkedMoreOptions.push(key);\n            }\n          }\n          this.populateOption.emit(checkedMoreOptions);\n        }\n      },\n      error: (err: Error) => {\n        console.error(err);\n        this.loader = false;\n        this.rcListLoaded = true;\n      },\n    });\n  }\n\n  getUserDetails() {\n    if (this.actionButtons?.length > 1) {\n      this.organizationCommonService?.getOrgUserInfo()?.subscribe({\n        next: (res: any) => {\n          this.isNotificationPending = res?.notification_pending_flag;\n          this.actionButtons[1].buttonText = this.isNotificationPending\n            ? 'View Responsibilities in Queue'\n            : 'View Responsibilities';\n        },\n      });\n    }\n  }\n\n  getOrganizationDetails() {\n    this.organizationCommonService?.getOrgDetailsInfo()?.subscribe({\n      next: (res: any) => {\n        this.isFrameworkAvailable = res?.enable_responsibility_framework;\n      },\n      error: (err: Error) => {\n        console.error(err);\n      },\n    });\n  }\n\n  getCategoryList() {\n    this.loader = true;\n    this.uiKitService.isLoader = true;\n    this.responsibilityService.getCategoriesList().subscribe(\n      (res) => {\n        const data = res;\n        this.allCategories = cloneDeep(res);\n        data.forEach((element: any) => {\n          if (element && element.compliance_type == 0) {\n            this.categories.others.list.push(element);\n          }\n          if (element && element.compliance_type == 1) {\n            this.categories.regulations.list.push(element);\n          }\n          if (element && element.compliance_type == 2) {\n            this.categories.standards.list.push(element);\n          }\n          if (element && element.compliance_type == 3) {\n            this.categories.internalControls.list.push(element);\n          }\n        });\n        this.categoriesListLoaded = true;\n      },\n      (err) => {\n        console.error(err);\n        this.categoriesListLoaded = true;\n      }\n    );\n  }\n\n  filterListsAccordingToProgram(program_id?: string) {\n    this.unSubscribeProgram.next();\n    this.unSubscribeProgram.complete();\n    if (program_id && this.orgDetails?.hasProgramFullPermission) {\n      this.getPeopleListAgainstPID(program_id);\n      this.getRCList(program_id);\n      this.getGroupsList(program_id);\n      this.getAssignorsList(program_id);\n    } else {\n      this.getAssigneesList();\n      this.getRCList();\n      this.getGroupsList();\n      this.getAssignorsList();\n    }\n  }\n\n  getProgramDetails(programId?: string) {\n    this.loader = true;\n    this.programService.getProgram(programId).subscribe((res: any) => {\n      if (\n        res?.assessment &&\n        res?.assessment?.length &&\n        Object.keys(this.responsibilityForm?.assessment)?.length\n      ) {\n        const categoryAssessment = res?.assessment.filter(\n          (assessment: any) =>\n            this.responsibilityForm?.assessment?.category_id ===\n            assessment?.category_id\n        );\n        if (\n          categoryAssessment?.length &&\n          categoryAssessment[0]?.assessmentIds?.length\n        ) {\n          const isExist = categoryAssessment[0]?.assessmentIds?.includes(\n            this.responsibilityForm?.assessment?.assessment_id\n          );\n          if (!isExist) {\n            this.responsibilityForm.assessment = {\n              assessment_id: '',\n              category_id: '',\n            };\n          }\n        } else {\n          this.responsibilityForm.assessment = {\n            assessment_id: '',\n            category_id: '',\n          };\n        }\n      }\n      this.loader = false;\n    });\n  }\n\n  getListsAccordingToProgram(program_id: string) {\n    this.getPeopleListAgainstPID(program_id);\n    this.getRCList(program_id);\n    this.getGroupsList(program_id);\n    this.getAssignorsList(program_id);\n  }\n\n  getAssignorsList(program_id?: string) {\n    let params = new HttpParams();\n    if (program_id) {\n      params = params.append('program_ids', program_id);\n    }\n    this.assignorsListLoader = true;\n    this.responsibilityService.getAssignorsList(params).subscribe(\n      (res: any) => {\n        this.behalfOfUsersList = res;\n        if (program_id) {\n          this.refreshListsWhileProgramSelected();\n        } else {\n          this.refreshAllLists();\n        }\n        this.assignorsListLoaded = true;\n      },\n      (err) => {\n        console.error(err);\n        this.assignorsListLoaded = true;\n        this.assignorsListLoader = false;\n      },\n      () => {\n        this.assignorsListLoader = false;\n        if (program_id) {\n          this.refreshListsWhileProgramSelected();\n        } else {\n          this.refreshAllLists();\n        }\n      }\n    );\n  }\n\n  getAssigneesList(program_id?: string) {\n    let params = new HttpParams();\n    if (program_id) {\n      params = params.append('program_ids', program_id);\n    }\n    this.userListLoader = true;\n    this.fetchAssignee(program_id);\n  }\n\n  fetchAssignee(program_id?: string) {\n    this.organizationUserService.getOrganizationUsers().subscribe(\n      (res: any) => {\n        this.allUsersList = res.map((user: any) => {\n          user.member_name = user.employee_name;\n          return user;\n        });\n        if (program_id) {\n          this.refreshListsWhileProgramSelected();\n        } else {\n          this.refreshAllLists();\n        }\n        this.assigneesListLoaded = true;\n      },\n      (err: Error) => {\n        console.error(err);\n        this.assigneesListLoaded = true;\n        this.userListLoader = false;\n      },\n      () => {\n        this.userListLoader = false;\n        if (program_id) {\n          this.refreshListsWhileProgramSelected();\n        } else {\n          this.refreshAllLists();\n        }\n      }\n    );\n  }\n\n  getPeopleListAgainstPID(program_id: string) {\n    let params = new HttpParams();\n    if (program_id) {\n      params = params.append('program_ids', program_id);\n      this.userListLoader = true;\n    }\n    this.organizationUserService.getOrganizationUsers().subscribe(\n      (res: any) => {\n        this.setOrganizationUserList(res);\n        if (\n          this.responsibilityForm?.program[0]?.default_assignee_ids ||\n          this.responsibilityForm.assignees.list?.length\n        ) {\n          if (this.responsibilityForm.assignees.list?.length) {\n            const ids = this.returnIds(\n              this.responsibilityForm.assignees.list,\n              'my_member_id'\n            );\n            const allIds = [\n              ...new Set(ids),\n              ...new Set(\n                this.responsibilityForm?.program[0]?.default_assignee_ids\n              ),\n            ];\n            const assignors = this.assigneesList.filter((element: any) =>\n              allIds?.includes(element?.my_member_id)\n            );\n            if (assignors?.length) {\n              this.responsibilityForm.assignees.list = assignors;\n            } else {\n              this.responsibilityForm.assignees.list = [];\n            }\n          } else {\n            const assignors = this.assigneesList.filter((element: any) =>\n              this.responsibilityForm?.program[0]?.default_assignee_ids?.includes(\n                element?.my_member_id\n              )\n            );\n            if (assignors?.length) {\n              this.responsibilityForm.assignees.list = assignors;\n            }\n          }\n        } else {\n          this.responsibilityForm.assignees.list = [];\n        }\n        if (this.featureFlag_groups) {\n          this.populateProgramAssigneeGroup();\n        }\n        const checkedMoreOptions = [];\n\n        if (\n          this.responsibilityForm?.program[0]?.default_reviewers ||\n          this.responsibilityForm?.reviewers?.list?.length ||\n          this.responsibilityForm?.groupReviewers?.list?.length\n        ) {\n          const ids = this.returnIds(\n            this.responsibilityForm.reviewers.list,\n            'my_member_id'\n          );\n          const allIds = [\n            ...new Set(ids),\n            ...new Set(this.responsibilityForm.program[0].default_reviewers),\n          ];\n          const reviewers = this.reviewersList.filter((element: any) =>\n            allIds?.includes(element?.my_member_id)\n          );\n          // const reviewers = this.reviewersList.filter((element: any) => this.responsibilityForm.program[0].default_reviewers?.includes(element?.my_member_id));\n          if (\n            reviewers?.length ||\n            (this.featureFlag_groups &&\n              this.responsibilityForm?.groupReviewers?.list?.length > 0)\n          ) {\n            this.responsibilityForm.reviewers.list = reviewers;\n            this.responsibilityForm.reviewers.list = reviewers;\n            if (this.featureFlag_groups) {\n              this.responsibilityForm.reviewers.list = this.assignUserMemberId(\n                this.responsibilityForm.reviewers.list\n              );\n            }\n\n            this.moreOptions.REVIEWER = true;\n          } else {\n            this.responsibilityForm.reviewers.list = [];\n          }\n        } else {\n          this.responsibilityForm.reviewers.list = [];\n        }\n        if (this.featureFlag_groups) {\n          this.populateProgramReviewerGroup();\n        }\n        if (\n          this.responsibilityForm.program[0].default_overseers ||\n          this.responsibilityForm?.overseers?.list?.length ||\n          this.responsibilityForm?.overseers?.notifyList?.length\n        ) {\n          const ids = this.returnIds(\n            this.responsibilityForm?.overseers?.list,\n            'my_member_id'\n          );\n          const allDefaultCCIds = [\n            ...new Set(ids),\n            ...new Set(\n              this.responsibilityForm?.program[0]?.default_overseers?.cc_member_email\n            ),\n          ];\n          const overseersCC = this.overseersList?.filter((element: any) =>\n            allDefaultCCIds?.includes(element?.my_member_id)\n          );\n          // const overseers = this.overseersList.filter((element: any) => this.responsibilityForm.program[0].default_overseers.cc_email.includes(element.my_member_id));\n          const notifyListIds = this.returnIds(\n            this.responsibilityForm.overseers.notifyList,\n            'my_member_id'\n          );\n          const allDefaultCCFailureIds = [\n            ...new Set(notifyListIds),\n            ...new Set(\n              this.responsibilityForm?.program[0]?.default_overseers?.failure_cc_member_email\n            ),\n          ];\n          const overseersCCFailure = this.overseersList?.filter(\n            (element: any) =>\n              allDefaultCCFailureIds?.includes(element?.my_member_id)\n          );\n          // const notifyOverseers = this.overseersList.filter((element: any) => this.responsibilityForm.program[0].default_overseers.failure_cc_email.includes(element.my_member_id));\n          // if (overseers?.length) {\n          //   this.responsibilityForm.overseers.list = overseers;\n          //   this.moreOptions.OVERSEER = true;\n          // }\n          // if (notifyOverseers?.length) {\n          //   this.responsibilityForm.overseers.notifyList = notifyOverseers;\n          //   this.moreOptions.OVERSEER = true;\n          // }\n\n          if (overseersCC?.length) {\n            this.responsibilityForm.overseers.list = overseersCC;\n            if (this.featureFlag_groups) {\n              this.responsibilityForm.overseers.list = this.assignUserMemberId(\n                this.responsibilityForm.overseers.list\n              );\n            }\n            this.moreOptions.OVERSEER = true;\n          } else {\n            this.responsibilityForm.overseers.list = [];\n          }\n          if (overseersCCFailure?.length) {\n            this.responsibilityForm.overseers.notifyList = overseersCCFailure;\n            if (this.featureFlag_groups) {\n              this.responsibilityForm.overseers.notifyList =\n                this.assignUserMemberId(\n                  this.responsibilityForm.overseers.notifyList\n                );\n            }\n            this.moreOptions.OVERSEER = true;\n          } else {\n            this.responsibilityForm.overseers.notifyList = [];\n          }\n        } else {\n          this.responsibilityForm.overseers.list = [];\n          this.responsibilityForm.overseers.notifyList = [];\n        }\n        if (this.featureFlag_groups) {\n          this.populateProgramOverseerGroup();\n        }\n        for (const key in this.moreOptions) {\n          if (this.moreOptions[key]) {\n            checkedMoreOptions.push(key);\n          }\n        }\n        this.populateOption.emit(checkedMoreOptions);\n      },\n      (err) => {\n        this.userListLoader = false;\n        console.error(err);\n      },\n      () => {\n        this.refreshAllLists();\n        this.userListLoader = false;\n      }\n    );\n  }\n\n  setOrganizationUserList(res: any) {\n    this.assigneesList = res.assignee.map((user: any) => {\n      user.member_name = user.employee_name;\n      return user;\n    });\n    this.overseersList = res.overseer.map((user: any) => {\n      user.member_name = user.employee_name;\n      return user;\n    });\n    this.reviewersList = res.reviewer.map((user: any) => {\n      user.member_name = user.employee_name;\n      return user;\n    });\n    this.programPeopleList = {\n      assigneesList: [...new Set(this.assigneesList)],\n      reviewersList: [...new Set(this.reviewersList)],\n      overseersList: [...new Set(this.overseersList)],\n    };\n  }\n\n  getGroupsList(program_id?: string) {\n    let params = new HttpParams();\n    if (program_id) {\n      params = params.append('program_ids', program_id);\n    }\n    this.responsibilityService\n      .getOrganizationGroups(params)\n      .pipe(takeUntil(this.unSubscribeProgram))\n      .subscribe(\n        (res: any) => {\n          const data = res ?? [];\n          if (!program_id) {\n            this.OrgGroup = data;\n          }\n          const groups: any = [];\n          if (data?.length) {\n            data?.forEach((element: any) => {\n              const obj = {\n                groupName: element.group_name,\n                userIds: element.member_ids,\n              };\n              groups.push(obj);\n            });\n          }\n          this.groupsList = groups;\n          this.groupsListLoaded = true;\n          if (\n            this.featureFlag_groups &&\n            this.OrgGroup?.length &&\n            this.responsibilityForm.program?.length &&\n            program_id\n          ) {\n            this.refreshListsWhileProgramSelected();\n          } else {\n            this.refreshAllLists();\n          }\n          if (\n            this.responsibilityForm?.program[0]?.default_assignee_group_ids &&\n            program_id\n          ) {\n            const selectedGroups = data.filter((element: any) =>\n              this.responsibilityForm.program[0].default_assignee_group_ids?.includes(\n                element.group_id\n              )\n            );\n            if (groups?.length) {\n              let memberIds: any[] = [];\n              selectedGroups.forEach((eachGroup: any) => {\n                if (eachGroup?.member_ids?.length) {\n                  memberIds = [\n                    ...new Set(memberIds.concat(eachGroup?.member_ids)),\n                  ];\n                }\n              });\n              if (this.responsibilityForm.assignees.list?.length) {\n                const ids = this.returnIds(\n                  this.responsibilityForm.assignees.list,\n                  'my_member_id'\n                );\n                const allIds = [...new Set(ids), ...new Set(memberIds)];\n                const assignors = this.assigneesList.filter((element: any) =>\n                  allIds?.includes(element?.my_member_id)\n                );\n                if (assignors?.length) {\n                  this.responsibilityForm.assignees.list = assignors;\n                }\n              } else {\n                const assignors = this.assigneesList.filter((element: any) =>\n                  memberIds?.includes(element?.my_member_id)\n                );\n                if (assignors?.length) {\n                  this.responsibilityForm.assignees.list = assignors;\n                }\n              }\n            }\n          }\n        },\n        (err) => {\n          console.error(err);\n          this.groupsListLoaded = true;\n        }\n      );\n  }\n\n  getEditResponsibilityDetails(id: any) {\n    this.loader = false;\n    this.populateResponsibilityDetails();\n  }\n\n  setList(list: any[], ids: any[], key: string) {\n    const data: any = [];\n    ids?.forEach((element: any) => {\n      const index = list.findIndex(\n        (listElement: any) => listElement[key] == element\n      );\n      if (index !== -1) {\n        data.push(list[index]);\n      }\n    });\n    return data;\n  }\n\n  returnIds(list: any[], key: string) {\n    return list\n      ?.map((ele) => {\n        if (ele[key]) {\n          return ele[key];\n        }\n      })\n      .filter((ele) => ele);\n  }\n\n  populateProgramAssigneeGroup() {\n    if (\n      this.responsibilityForm?.program[0]?.default_assignee_group_ids ||\n      this.responsibilityForm?.assigneeGroups?.list?.length\n    ) {\n      if (this.responsibilityForm?.assigneeGroups?.list?.length) {\n        const ids = this.returnIds(\n          this.responsibilityForm?.assigneeGroups?.list,\n          'group_id'\n        );\n        const allIds = [\n          ...new Set(ids),\n          ...new Set(\n            this.responsibilityForm?.program[0]?.default_assignee_group_ids\n          ),\n        ];\n        const assigneeGroups = this.groupAssigneeList?.filter((element: any) =>\n          allIds?.includes(element?.group_id)\n        );\n        if (assigneeGroups?.length) {\n          this.responsibilityForm.assigneeGroups.list = assigneeGroups;\n        } else {\n          this.responsibilityForm.assigneeGroups.list = [];\n        }\n      } else {\n        const assigneeGroups = this.groupAssigneeList?.filter((element: any) =>\n          this.responsibilityForm?.program[0]?.default_assignee_group_ids?.includes(\n            element?.group_id\n          )\n        );\n        if (assigneeGroups?.length) {\n          this.responsibilityForm.assigneeGroups.list = assigneeGroups;\n        }\n      }\n    } else {\n      this.responsibilityForm.assigneeGroups.list = [];\n    }\n  }\n\n  populateProgramOverseerGroup() {\n    if (\n      this.responsibilityForm?.program[0]?.default_overseers?.cc_email_groups ||\n      this.responsibilityForm?.overseersGroups?.notifyList?.length ||\n      this.responsibilityForm?.overseersGroups?.list?.length ||\n      this.responsibilityForm?.program[0]?.default_overseers\n        ?.failure_cc_email_groups\n    ) {\n      if (this.responsibilityForm?.overseersGroups?.list?.length) {\n        const ids = this.returnIds(\n          this.responsibilityForm?.overseersGroups?.list,\n          'group_id'\n        );\n        const allDefaultCCGroupIds = [\n          ...new Set(ids),\n          ...new Set(\n            this.responsibilityForm?.program[0]?.default_overseers?.cc_email_groups\n          ),\n        ];\n        const overseersCCGroup = this.groupOverseerList?.filter(\n          (element: any) => allDefaultCCGroupIds?.includes(element?.group_id)\n        );\n        const notifyListIds = this.returnIds(\n          this.responsibilityForm.overseersGroups.notifyList,\n          'group_id'\n        );\n        const allDefaultCCFailureGroupIds = [\n          ...new Set(notifyListIds),\n          ...new Set(\n            this.responsibilityForm?.program[0]?.default_overseers?.failure_cc_email_groups\n          ),\n        ];\n        const overseersCCFailureGroup = this.groupOverseerList?.filter(\n          (element: any) =>\n            allDefaultCCFailureGroupIds?.includes(element?.group_id)\n        );\n        if (overseersCCGroup?.length) {\n          this.responsibilityForm.overseersGroups.list = overseersCCGroup;\n          this.moreOptions.OVERSEER = true;\n        } else {\n          this.responsibilityForm.overseersGroups.list = [];\n        }\n        if (overseersCCFailureGroup?.length) {\n          this.responsibilityForm.overseersGroups.notifyList =\n            overseersCCFailureGroup;\n          this.moreOptions.OVERSEER = true;\n        } else {\n          this.responsibilityForm.overseersGroups.notifyList = [];\n        }\n      } else {\n        const overseersCCGroup = this.groupOverseerList?.filter(\n          (element: any) =>\n            this.responsibilityForm?.program[0]?.default_overseers?.cc_email_groups?.includes(\n              element?.group_id\n            )\n        );\n        const overseersCCFailureGroup = this.groupOverseerList?.filter(\n          (element: any) =>\n            this.responsibilityForm?.program[0]?.default_overseers?.failure_cc_email_groups?.includes(\n              element?.group_id\n            )\n        );\n        if (overseersCCGroup?.length) {\n          this.responsibilityForm.overseersGroups.list = overseersCCGroup;\n          this.moreOptions.OVERSEER = true;\n        }\n        if (overseersCCFailureGroup.length) {\n          this.responsibilityForm.overseersGroups.notifyList =\n            overseersCCFailureGroup;\n          this.moreOptions.OVERSEER = true;\n        }\n      }\n    } else {\n      this.responsibilityForm.overseersGroups.list = [];\n      this.responsibilityForm.overseersGroups.notifyList = [];\n    }\n  }\n\n  populateProgramReviewerGroup() {\n    if (\n      this.responsibilityForm?.program[0]?.default_reviewer_group_ids ||\n      this.responsibilityForm?.groupReviewers?.list?.length\n    ) {\n      const ids = this.returnIds(\n        this.responsibilityForm?.groupReviewers?.list,\n        'group_id'\n      );\n      const allIds = [\n        ...new Set(ids),\n        ...new Set(\n          this.responsibilityForm.program[0]?.default_reviewer_group_ids\n        ),\n      ];\n      const reviewersGroup = this.groupReviewerList.filter((element: any) =>\n        allIds?.includes(element?.group_id)\n      );\n      if (\n        reviewersGroup?.length ||\n        (this.featureFlag_groups &&\n          this.responsibilityForm?.groupReviewers?.list?.length > 0)\n      ) {\n        this.responsibilityForm.groupReviewers.list = reviewersGroup;\n        this.moreOptions.REVIEWER = true;\n      } else {\n        this.responsibilityForm.groupReviewers.list = [];\n      }\n    } else {\n      this.responsibilityForm.groupReviewers.list = [];\n    }\n  }\n\n  populateOverseerData(res: any) {\n    let overseerUserList: number[] = [];\n    let overseerUserNotifyList: number[] = [];\n    let overseerEmployeesList = res?.cc_member_email\n      ? Object.keys(res?.cc_member_email).map(Number)\n      : [];\n    overseerUserList =\n      overseerEmployeesList?.length > 0 &&\n        res?.userGroupIds?.ccEmailGroupIds?.length > 0\n        ? overseerEmployeesList.filter((employeeIds: number) =>\n          res?.existingUserIds?.ccEmailMemberIds?.includes(employeeIds)\n        )\n        : [...overseerEmployeesList];\n    let overseerEmployeeNotifyList = res?.failure_cc_member_email\n      ? Object.keys(res?.failure_cc_member_email).map(Number)\n      : [];\n    overseerUserNotifyList =\n      overseerEmployeeNotifyList?.length > 0 &&\n        res?.userGroupIds?.failureCCEmailGroupIds?.length > 0\n        ? overseerEmployeeNotifyList.filter((employeeIds: number) =>\n          res?.existingUserIds?.failureCCEmailMemberIds?.includes(employeeIds)\n        )\n        : [...overseerEmployeeNotifyList];\n\n    this.responsibilityForm['overseers'] = {\n      list: res?.cc_member_email\n        ? this.setList(this.overseersList, overseerUserList, 'employee_id')\n        : [],\n      notifyList: res?.failure_cc_member_email\n        ? this.setList(\n          this.overseersList,\n          overseerUserNotifyList,\n          'employee_id'\n        )\n        : [],\n    };\n\n    this.responsibilityForm['overseersGroups'] = {\n      list: res?.userGroupIds?.ccEmailGroupIds\n        ? this.setList(\n          this.OrgGroup,\n          res?.userGroupIds?.ccEmailGroupIds,\n          'group_id'\n        )\n        : [],\n      notifyList: res?.userGroupIds?.failureCCEmailGroupIds\n        ? this.setList(\n          this.OrgGroup,\n          res?.userGroupIds?.failureCCEmailGroupIds,\n          'group_id'\n        )\n        : [],\n    };\n  }\n\n  populateReviewerData(res: any) {\n    const reviewerDetails = Object.keys(res?.reviewer_arr);\n    this.hasReviewer = reviewerDetails?.length > 0;\n    const groupReviewerDetails = res?.userGroupIds?.reviewerGroupIds?.length\n      ? Object.assign(res?.userGroupIds?.reviewerGroupIds)\n      : [];\n    let reviewer_users: any[] = [];\n    reviewer_users =\n      res?.reviewer_arr?.level1?.reviewers?.length > 0 &&\n        res?.userGroupIds?.reviewerGroupIds?.length > 0\n        ? res?.reviewer_arr?.level1?.reviewers.filter((memberId: any) =>\n          res?.existingUserIds?.reviewerIds?.includes(memberId?.member_id)\n        )\n        : res?.reviewer_arr?.level1?.reviewers;\n    this.responsibilityForm['reviewers'] = {\n      sequentialWorkflow:\n        res?.reviewer_arr?.level1?.type == 'SEQUENTIAL' ? true : false,\n      reviewFrequency: {\n        reviewCompleteDays:\n          reviewerDetails?.length > 0 ? res?.review_after_days : 2,\n        reviewNOtCompletedDays:\n          reviewerDetails?.length > 0 ? res?.review_failed_after_days : 2,\n      },\n      acceptedData: reviewerDetails?.length > 0 ? reviewer_users : [],\n      list:\n        reviewerDetails?.length > 0\n          ? this.setReviewerPayload(\n            reviewer_users,\n            'object',\n            res?.reviewer_arr?.level1?.type\n          )\n          : [],\n    };\n    this.responsibilityForm['groupReviewers'] = {\n      sequentialWorkflow:\n        res?.reviewer_arr?.level1?.type == 'SEQUENTIAL' ? true : false,\n      reviewFrequency: {\n        reviewCompleteDays:\n          reviewerDetails?.length > 0 ? res?.review_after_days : 2,\n        reviewNOtCompletedDays:\n          reviewerDetails?.length > 0 ? res?.review_failed_after_days : 2,\n      },\n      list:\n        groupReviewerDetails?.length > 0\n          ? this.setList(this.OrgGroup, groupReviewerDetails, 'group_id')\n          : [],\n    };\n  }\n\n  populateAssigneeData(res: any) {\n    let AssigneeAnyUserList: number[] = [];\n    let AssigneeAllUserList: number[] = [];\n    let assigneeAnyOneList =\n      res?.assigned_to_member_id && this.isEntrust\n        ? res?.assigned_to_member_id\n        : [];\n    AssigneeAnyUserList =\n      res?.assigned_to_member_id?.length > 0 &&\n        res?.userGroupIds?.assigneeAnyoneGroupIds?.length > 0\n        ? assigneeAnyOneList.filter((employeeIds: number) =>\n          res?.existingUserIds?.assigneeAnyoneIds?.includes(employeeIds)\n        )\n        : [...assigneeAnyOneList];\n\n    AssigneeAllUserList =\n      res?.assignee_member_id && !this.isEntrust ? res?.assignee_member_id : [];\n    const assignedToUserDetails = this.setList(\n      this.assigneesList,\n      [Number(res?.assignee_member_id)],\n      'employee_id'\n    );\n    if (assignedToUserDetails?.length) {\n      const member_id = assignedToUserDetails[0]?.my_member_id;\n      if (res?.existingUserIds?.assigneeAllIds?.includes(member_id)) {\n        AssigneeAllUserList = res?.assignee_member_id;\n        res.userGroupIds['assigneeAllGroupIds'] = [];\n      } else if (res?.userGroupIds?.assigneeAllGroupIds?.length > 0) {\n        AssigneeAllUserList = [];\n      }\n    }\n    this.responsibilityForm['assignees'] = {\n      whoCanComplete: res.isGroupAssignTo ? 'ANY_ONE' : 'ALL',\n      list:\n        res?.assigned_to_member_id?.length == 0\n          ? this.setList(\n            this.assigneesList,\n            [Number(AssigneeAllUserList)],\n            'employee_id'\n          )\n          : this.setList(\n            this.assigneesList,\n            AssigneeAnyUserList,\n            'my_member_id'\n          ),\n    };\n    this.responsibilityForm['assigneeGroups'] = {\n      whoCanComplete: res?.isGroupAssignTo ? 'ANY_ONE' : 'ALL',\n      list:\n        res?.userGroupIds?.assigneeAnyoneGroupIds?.length == 0\n          ? res?.userGroupIds?.assigneeAllGroupIds?.length > 0\n            ? this.setList(\n              this.OrgGroup,\n              res?.userGroupIds?.assigneeAllGroupIds,\n              'group_id'\n            )\n            : []\n          : this.setList(\n            this.OrgGroup,\n            res?.userGroupIds?.assigneeAnyoneGroupIds,\n            'group_id'\n          ),\n    };\n    this.allGroupAssignee =\n      this.responsibilityForm?.assigneeGroups?.list?.length > 0 &&\n      !this.isEntrust;\n  }\n\n  /**\n   * this function is for getting the users data based on member_id of users of selected User Group\n   * @param userlist contains users data\n   * @param selectedgroups contains selected User Group data\n   * @returns user data of Selected user group.\n   */\n  getGroupsUserEmployeesId(userList: any, selectedGroups: any) {\n    let groupMemberIds: any = [];\n    let groupUserEmployee: any = [];\n    selectedGroups?.forEach((group: any) => {\n      groupMemberIds = [...new Set([...groupMemberIds, ...group?.member_ids])];\n    });\n    userList?.forEach((ele: any) => {\n      if (groupMemberIds?.includes(ele?.my_member_id)) {\n        groupUserEmployee.push(ele);\n      }\n    });\n    return groupUserEmployee;\n  }\n\n  setReviewerPayload(\n    ids: any[],\n    type: string,\n    acceptedData?: Array<any>,\n    reviewerType?: string\n  ) {\n    if (type === 'object') {\n      const idObjArray = this.returnIds(ids, 'uid');\n      return this.setList(this.allUsersList, idObjArray, 'uid');\n    } else if (type === 'list') {\n      const payLoad: any = [];\n      const idsList = this.returnIds(ids, 'uid');\n      idsList.forEach((element: any) => {\n        let index = -1;\n        if ((acceptedData ?? [])?.length > 0) {\n          index =\n            acceptedData?.findIndex((ele) => ele.member_id === element) ?? -1;\n        }\n\n        payLoad.push({ member_id: element });\n      });\n      return payLoad;\n    }\n  }\n\n  checkWhetherAllListsLoaded() {\n    const editLoader =\n      this.mode === 'EDIT'\n        ? this.rcListLoaded &&\n        this.groupsListLoaded &&\n        this.assignorsListLoaded\n        : true;\n    if (this.categoriesListLoaded && this.assigneesListLoaded && editLoader) {\n      if (this.frameworkDetails?.length > 0) {\n        this.assignFromFramework(this.frameworkDetails[0]);\n      }\n\n      if (this.mode === 'EDIT') {\n        this.uiKitService.isLoader = false;\n        this.getEditResponsibilityDetails(this.responsibilityId);\n      } else {\n        this.loader = false;\n        this.uiKitService.isLoader = false;\n\n        if (this.selectedProgram) {\n          this.responsibilityForm.program.push(this.selectedProgram);\n          this.responsibilityForm.program_selected_ids.push(\n            this.selectedProgram.category_id\n          );\n          this.responsibilityForm.category_id =\n            this.selectedProgram?.category_id?.toString();\n          if (this.orgDetails?.hasProgramFullPermission) {\n            this.responsibilityForm.assignees.whoCanComplete =\n              this.selectedProgram?.default_assignee_type == 'ANYONE'\n                ? 'ANY_ONE'\n                : 'ALL';\n            this.responsibilityForm.reviewers.sequentialWorkflow =\n              this.selectedProgram?.default_reviewers_type == 'SEQUENTIAL'\n                ? true\n                : false;\n            this.responsibilityForm.formatAndEvidence.evidenceRequired = this\n              .selectedProgram?.evidence_upload_flag\n              ? true\n              : false;\n          }\n          const programCustomTags = this.selectedProgram?.custom_tags\n            ? JSON.parse(this.selectedProgram.custom_tags)\n            : [];\n          programCustomTags.forEach((tag: any) => {\n            const tagData = JSON.parse(tag);\n            const index = this.responsibilityForm.customTags.findIndex(\n              (tagElement: any) => tagElement.tag_name == tagData.tag_name\n            );\n            if (index == -1) {\n              this.responsibilityForm.customTags.push(tagData);\n            }\n          });\n          const checkedMoreOptions = [];\n          this.moreOptions.PROGRAM = true;\n          checkedMoreOptions.push('PROGRAM');\n          if (\n            this.selectedProgram?.evidence_upload_flag &&\n            this.orgDetails?.hasProgramFullPermission\n          ) {\n            checkedMoreOptions.push('FORMATE_EVIDENCE');\n            this.moreOptions.FORMATE_EVIDENCE = true;\n          }\n          this.filterListsAccordingToProgram(this.selectedProgram?._id);\n          this.populateOption.emit(checkedMoreOptions);\n        }\n      }\n    } else {\n      setTimeout(() => {\n        this.checkWhetherAllListsLoaded();\n      }, 300);\n    }\n  }\n\n  saveSelectedList(type: string, selectedItems: any) {\n    switch (type) {\n      case 'assignors':\n        if (this.invalidType === 'whom') {\n          this.invalidType = '';\n        }\n        this.responsibilityForm.assignors.list = this.setList(\n          this.assignorsList,\n          [selectedItems.member_id],\n          'member_id'\n        );\n        // this.callRefreshList();\n        break;\n      case 'assignees':\n        if (this.invalidType === 'who') {\n          this.invalidType = '';\n        }\n        if (\n          !this.isEntrust &&\n          this.responsibilityForm.assignees.whoCanComplete !== 'ANY_ONE'\n        ) {\n          this.responsibilityForm.assignees.list = this.setList(\n            this.assigneesList,\n            [selectedItems.employee_id],\n            'employee_id'\n          );\n          // this.callRefreshList();\n        } else {\n          if (this.featureFlag_groups) {\n            this.saveGroupAssigneeData(selectedItems);\n          } else {\n            this.responsibilityForm.assignees.list = this.setList(\n              this.assigneesList,\n              selectedItems,\n              'my_member_id'\n            );\n          }\n          // this.callRefreshList();\n        }\n        break;\n      case 'rc':\n        this.responsibilityForm.rc = this.setList(\n          this.responsibilityCentersList,\n          selectedItems,\n          'item_id'\n        );\n        this.rcSelected.emit(this.responsibilityForm.rc?.length > 0);\n        if (this.responsibilityForm.rc?.length === 0) {\n          this.responsibilityForm.requiresAuditList = [];\n          this.responsibilityForm['audit_category_details']['category_id'] = 0;\n          this.responsibilityForm.selectedGRCObjects = [];\n        }\n        this.getOtherGRCTabCount({ rc_ids: '' });\n        this.getOtherGRCObjects({ rc_ids: '', type: this.selectedGRCTab });\n\n        break;\n      case 'category':\n        this.responsibilityForm.category = selectedItems;\n        selectedItems.forEach((element: any) => {\n          const tag =\n            element.custom_tags !== '' &&\n              element.custom_tags !== 'null' &&\n              element.custom_tags != '[]'\n              ? JSON.parse(element.custom_tags)\n              : [];\n          if (tag?.length > 0) {\n            tag.forEach((tagData: any) => {\n              const index = this.responsibilityForm.customTags.findIndex(\n                (tagElement: any) => tagElement.tag_name == tagData.tag_name\n              );\n              if (index == -1) {\n                this.responsibilityForm.customTags.push(tagData);\n              }\n            });\n          }\n        });\n        break;\n      case 'program':\n        this.responsibilityForm.linkedProgram = selectedItems?.linkedProgram;\n        if (\n          this.selectedProgram &&\n          !(\n            (this.selectedProgram?.programType === 0 &&\n              this.selectedProgram?.name?.toLowerCase() === 'uncategorized') ||\n            !this.orgDetails?.hasProgramFullPermission\n          ) &&\n          !this.feature.isFeatureEnabled('ff_deprecate_primary_program_flag')\n        ) {\n          this.responsibilityForm.category = selectedItems.categories\n            ? selectedItems.categories\n            : [];\n          let categoryId = selectedItems?.categories?.toString();\n          if (selectedItems?.categories?.length) {\n            this.responsibilityForm.category_id =\n              selectedItems?.program?.category_id + ',' + categoryId;\n          } else {\n            this.responsibilityForm.category_id =\n              selectedItems?.program?.category_id?.toString();\n          }\n          this.responsibilityForm.program_selected_ids = [\n            ...new Set(selectedItems?.categories),\n            ...new Set([selectedItems?.program?.category_id]),\n          ];\n          const programCustomTags = selectedItems?.program?.custom_tags\n            ? JSON.parse(selectedItems?.program?.custom_tags)\n            : [];\n          programCustomTags?.forEach((tag: any) => {\n            const tagData = typeof tag === 'string' ? JSON.parse(tag) : tag;\n            const index = this.responsibilityForm.customTags.findIndex(\n              (tagElement: any) => tagElement.tag_name == tagData.tag_name\n            );\n            if (index == -1) {\n              this.responsibilityForm.customTags.push(tagData);\n            }\n          });\n        } else {\n          if (this.responsibilityForm?.assessment) {\n            Object.keys(this.responsibilityForm?.assessment)?.length\n              ? this.getProgramDetails(selectedItems?.program._id)\n              : null;\n          }\n          this.responsibilityForm.category = selectedItems.categories\n            ? selectedItems.categories\n            : [];\n          this.responsibilityForm.program = [];\n          this.responsibilityForm.category_id = '';\n          this.responsibilityForm.program_selected_ids = [];\n          this.responsibilityForm.customTags = [];\n          this.responsibilityForm.program = selectedItems.program\n            ? [selectedItems.program]\n            : [];\n          let categoryId = selectedItems?.categories?.toString();\n          if (selectedItems?.categories?.length) {\n            this.responsibilityForm.category_id =\n              selectedItems?.program?.category_id + ',' + categoryId;\n          } else {\n            this.responsibilityForm.category_id =\n              selectedItems?.program?.category_id?.toString();\n          }\n          this.responsibilityForm.program_selected_ids = [\n            ...new Set(selectedItems?.categories),\n            ...new Set([selectedItems?.program?.category_id]),\n          ];\n          const programCustomTags = selectedItems?.program?.custom_tags\n            ? JSON.parse(selectedItems?.program?.custom_tags)\n            : [];\n          programCustomTags?.forEach((tag: any) => {\n            const tagData = typeof tag === 'string' ? JSON.parse(tag) : tag;\n            const index = this.responsibilityForm.customTags.findIndex(\n              (tagElement: any) => tagElement.tag_name == tagData.tag_name\n            );\n            if (index == -1) {\n              this.responsibilityForm.customTags.push(tagData);\n            }\n          });\n          if (this.orgDetails?.hasProgramFullPermission) {\n            this.responsibilityForm.assignees.whoCanComplete =\n              selectedItems?.program?.default_assignee_type == 'ANYONE'\n                ? 'ANY_ONE'\n                : 'ALL';\n            this.responsibilityForm.reviewers.sequentialWorkflow =\n              selectedItems?.program?.default_reviewers_type == 'SEQUENTIAL'\n                ? true\n                : false;\n            this.responsibilityForm.formatAndEvidence.evidenceRequired =\n              selectedItems?.program?.evidence_upload_flag ? true : false;\n            if (selectedItems?.program?.evidence_upload_flag) {\n              this.moreOptions.FORMATE_EVIDENCE = true;\n            }\n          }\n\n          if (\n            !(\n              this.selectedProgram?.programType === 0 &&\n              this.selectedProgram?.name?.toLowerCase() === 'uncategorized'\n            )\n          ) {\n            if (\n              selectedItems?.program?._id &&\n              this.orgDetails?.hasProgramFullPermission\n            ) {\n              this.filterListsAccordingToProgram(selectedItems.program._id);\n            } else {\n              this.filterListsAccordingToProgram();\n            }\n          }\n        }\n\n        break;\n      case 'reviewer':\n        if (this.featureFlag_groups) {\n          this.saveGroupReviewerData(selectedItems);\n        } else {\n          this.responsibilityForm.reviewers.list = this.setList(\n            this.reviewersList,\n            selectedItems,\n            'employee_id'\n          );\n        }\n        // this.callRefreshList();\n\n        break;\n      case 'overseer':\n        if (this.featureFlag_groups) {\n          this.saveOverseerData(selectedItems, 'overseerList');\n        } else {\n          this.responsibilityForm.overseers.list = this.setList(\n            this.allUsersList,\n            selectedItems,\n            'employee_id'\n          );\n        }\n        // this.callRefreshList();\n\n        break;\n      case 'overseerNotify':\n        if (this.featureFlag_groups) {\n          this.saveOverseerData(selectedItems, 'overseerNotifyList');\n        } else {\n          this.responsibilityForm.overseers.notifyList = this.setList(\n            this.allUsersList,\n            selectedItems,\n            'employee_id'\n          );\n        }\n        // this.callRefreshList();\n\n        break;\n      case 'assurance':\n        this.responsibilityForm.assuranceList = this.setList(\n          this.assuranceCategoriesList,\n          selectedItems,\n          'category_id'\n        );\n        break;\n      case 'requires_audit':\n        this.responsibilityForm.requiresAuditList = this.setList(\n          this.assuranceRequiresAuditList,\n          [selectedItems?.category_id],\n          'category_id'\n        );\n        this.responsibilityForm['audit_category_details']['category_id'] =\n          selectedItems?.category_id;\n        break;\n      case 'checkpoints':\n        this.responsibilityForm.checkpoints = selectedItems?.checkpointDetails;\n        this.responsibilityForm.checkpointInstruction =\n          selectedItems?.checkpointInstruction;\n        break;\n      case 'calculatedrisk':\n        const riskClass = ['low', 'low_medium', 'medium_high', 'high'];\n        this.responsibilityForm.riskClass = riskClass[selectedItems?.riskClass];\n        this.responsibilityForm.riskMatrix = selectedItems?.riskMatrix;\n        break;\n      case 'formate_evidence':\n        this.responsibilityForm.formatAndEvidence.formatRequired =\n          selectedItems?.isFormateUploaded ?? false;\n        this.responsibilityForm.formatAndEvidence.formatFiles =\n          selectedItems?.files.map((files: any) => {\n            return {\n              filePath: files.filepath,\n              name: files.file_name,\n              type: files.type,\n              fid: files?.fid\n            }\n          }) ?? [];\n        this.responsibilityForm.formatAndEvidence.formatLinks =\n          selectedItems?.links ?? [];\n        this.responsibilityForm.formatAndEvidence.evidenceRequired =\n          selectedItems?.isEvidenceRequired ?? false;\n        break;\n      case 'reviewFrequency':\n        this.responsibilityForm.reviewers.reviewFrequency = {\n          reviewCompleteDays: selectedItems.completeDays,\n          reviewNOtCompletedDays: selectedItems.notCompleted,\n        };\n        break;\n      case 'GRC_OBJECTS':\n        this.responsibilityForm.selectedGRCObjects = selectedItems;\n        this.setOtherGRCTypesFormate();\n    }\n    this.activeDeselector();\n  }\n\n  /**\n   * If the program is selected and the user has full permission, refresh the lists while the program\n   * is selected. Otherwise, refresh all lists.\n   * </code>\n   */\n  callRefreshList() {\n    if (\n      this.responsibilityForm.program?.length &&\n      this.orgDetails?.hasProgramFullPermission\n    ) {\n      this.refreshListsWhileProgramSelected();\n    } else {\n      this.refreshAllLists();\n    }\n  }\n\n  remove(type: any, event?: any) {\n    switch (type) {\n      case 'rc':\n        const rcIndex = this.responsibilityForm.rc.findIndex(\n          (rc: any) => rc.rc_id == event.rc_id\n        );\n        this.responsibilityForm.rc.splice(rcIndex, 1);\n        this.rcSelected.emit(this.responsibilityForm.rc?.length > 0);\n        if (this.responsibilityForm.rc?.length === 0) {\n          this.responsibilityForm.requiresAuditList = [];\n          this.responsibilityForm['audit_category_details']['category_id'] = 0;\n        }\n        this.getOtherGRCTabCount({ rc_ids: '' });\n        this.getOtherGRCObjects({ rc_ids: '', type: this.selectedGRCTab });\n        break;\n      case 'assignors':\n        this.responsibilityForm.assignors.list = [];\n        this.callRefreshList();\n        break;\n      case 'assignees':\n        const entrustIndex = this.responsibilityForm?.assignees?.list.findIndex(\n          (owner: any) => owner.employee_id == event.employee_id\n        );\n        this.responsibilityForm.assignees.list.splice(entrustIndex, 1);\n        this.callRefreshList();\n\n        break;\n      case 'groupassignees':\n        const groupIndex =\n          this.responsibilityForm?.assigneeGroups?.list.findIndex(\n            (group: any) => group.group_id == event.group_id\n          );\n        this.responsibilityForm.assigneeGroups.list.splice(groupIndex, 1);\n        this.callRefreshList();\n\n        break;\n\n      case 'reviewer':\n        const reviewerIndex = this.responsibilityForm.reviewers.list.findIndex(\n          (reviewer: any) => reviewer.employee_id == event.employee_id\n        );\n        this.responsibilityForm.reviewers.list.splice(reviewerIndex, 1);\n        this.callRefreshList();\n\n        break;\n      case 'groupReviewer':\n        const groupReviewerIndex =\n          this.responsibilityForm?.groupReviewers?.list.findIndex(\n            (reviewer: any) => reviewer.group_id == event.group_id\n          );\n        this.responsibilityForm.groupReviewers.list.splice(\n          groupReviewerIndex,\n          1\n        );\n        this.callRefreshList();\n        break;\n      case 'overseer':\n        const overseerIndex =\n          this.responsibilityForm?.overseers?.list.findIndex(\n            (overseer: any) => overseer.employee_id == event.employee_id\n          );\n        this.responsibilityForm.overseers.list.splice(overseerIndex, 1);\n        this.callRefreshList();\n\n        break;\n      case 'overseerGroup':\n        const overseerGroupIndex =\n          this.responsibilityForm?.overseersGroups?.list.findIndex(\n            (overseer: any) => overseer.group_id == event.group_id\n          );\n        this.responsibilityForm.overseersGroups.list.splice(\n          overseerGroupIndex,\n          1\n        );\n        this.callRefreshList();\n        break;\n      case 'overseerNotifyList':\n        const overseerNotifyIndex =\n          this.responsibilityForm?.overseers?.notifyList.findIndex(\n            (overseerN: any) => overseerN.employee_id == event.employee_id\n          );\n        this.responsibilityForm.overseers.notifyList.splice(\n          overseerNotifyIndex,\n          1\n        );\n        this.callRefreshList();\n\n        break;\n      case 'overseerGroupNotifyList':\n        const overseerGroupNotifyIndex =\n          this.responsibilityForm?.overseersGroups?.notifyList.findIndex(\n            (overseerN: any) => overseerN.group_id == event.group_id\n          );\n        this.responsibilityForm.overseersGroups.notifyList.splice(\n          overseerGroupNotifyIndex,\n          1\n        );\n        this.callRefreshList();\n        break;\n      case 'category':\n        const categoryIndex = this.responsibilityForm.category.findIndex(\n          (category: any) => category.category_id == event.category_id\n        );\n        this.responsibilityForm.category.splice(categoryIndex, 1);\n        const tag = JSON.parse(event.custom_tags);\n        if (tag?.length > 0) {\n          tag.forEach((tagData: any) => {\n            const indexCT = this.responsibilityForm.customTags.findIndex(\n              (tagElement: any) => tagElement.tag_name == tagData.tag_name\n            );\n            if (indexCT != -1) {\n              this.responsibilityForm.customTags.splice(indexCT, 1);\n            }\n          });\n        }\n        if (this.responsibilityForm.category?.length > 0) {\n          this.responsibilityForm.category.forEach((element: any) => {\n            const tag = JSON.parse(element.custom_tags);\n            if (tag?.length > 0) {\n              tag.forEach((tagData: any) => {\n                const index = this.responsibilityForm.customTags.findIndex(\n                  (tagElement: any) => tagElement.tag_name == tagData.tag_name\n                );\n                if (index == -1) {\n                  this.responsibilityForm.customTags.push(tagData);\n                }\n              });\n            }\n          });\n        }\n        break;\n      case 'program':\n        this.checkDefaultProgramOnRemove(event);\n        // this.responsibilityForm.category = [];\n        // this.responsibilityForm.program = [];\n\n        // this.filterListsAccordingToProgram();\n        break;\n      case 'requires_audit':\n        this.responsibilityForm.requiresAuditList = [];\n        this.responsibilityForm.audit_category_details = {\n          category_id: 0,\n          sample: 0,\n          percentage: 0,\n          frequency_pattern: '',\n          frequency_time: '',\n        };\n        break;\n      case 'assurance':\n        const assuranceIndex = this.responsibilityForm.assuranceList.findIndex(\n          (assurance: any) => assurance.category_id == assurance.category_id\n        );\n        this.responsibilityForm.assuranceList.splice(assuranceIndex, 1);\n        break;\n      case 'checkpoint':\n        this.responsibilityForm.checkpoints.splice(event, 1);\n        break;\n      case 'assessment':\n        this.responsibilityForm.assessment = {\n          category_id: '',\n          assessment_id: '',\n        };\n        break;\n      case 'new-checkpoints':\n        this.responsibilityForm.new_checkpoints = {};\n        this.checkpointCount = 0;\n        this.checkpointCountUpdated.emit(this.checkpointCount);\n        break;\n      case 'GRC_OBJECTS':\n        this.removeOtherGRCObjects(event);\n        break;\n      case 'CUSTOM_FIELDS':\n        this.removeCustomFields(event);\n        break;\n    }\n  }\n\n  removeCustomFields(event: any) {\n    const index = this.responsibilityForm.customFields.findIndex((ele: any) => ele.id === event.id);\n    if (index !== -1) {\n      this.responsibilityForm.customFields.splice(index, 1);\n    }\n    this.customFields.push(event);\n  }\n\n  saveGroupAssigneeData(selectedItems: any) {\n    let userObj: any;\n    userObj = selectedItems?.length ? selectedItems : selectedItems?.users;\n    this.responsibilityForm.assignees.list = this.setList(\n      this.assigneesList,\n      userObj,\n      'my_member_id'\n    );\n    this.responsibilityForm.assigneeGroups.list = this.setList(\n      this.OrgGroup,\n      selectedItems?.groups,\n      'group_id'\n    );\n  }\n\n  saveGroupReviewerData(selectedItems: any) {\n    let userObj: any = [];\n    selectedItems.users.forEach((ele: any) => {\n      userObj.push(ele.employee_id);\n    });\n    this.responsibilityForm.reviewers.list = this.setList(\n      this.reviewersList,\n      userObj,\n      'employee_id'\n    );\n    this.responsibilityForm.groupReviewers = {\n      list: selectedItems?.groups?.length > 0 ? selectedItems?.groups : [],\n    };\n    this.responsibilityForm.reviewers.sequentialWorkflow =\n      this.responsibilityForm?.groupReviewers?.list?.length > 0\n        ? false\n        : this.responsibilityForm.reviewers.sequentialWorkflow;\n  }\n\n  saveOverseerData(selectedItems: any, type: any) {\n    switch (type) {\n      case 'overseerList':\n        let overseerselectedlist = this.returnIds(\n          selectedItems.users,\n          'employee_id'\n        );\n        this.responsibilityForm.overseers.list = this.setList(\n          this.overseersList,\n          overseerselectedlist,\n          'employee_id'\n        );\n        this.responsibilityForm.overseersGroups['list'] =\n          selectedItems?.groups?.length > 0 ? selectedItems?.groups : [];\n        break;\n      case 'overseerNotifyList':\n        let overseerselectedNotifylist = this.returnIds(\n          selectedItems.users,\n          'employee_id'\n        );\n        this.responsibilityForm.overseers.notifyList = this.setList(\n          this.overseersList,\n          overseerselectedNotifylist,\n          'employee_id'\n        );\n        this.responsibilityForm.overseersGroups['notifyList'] =\n          selectedItems?.groups?.length > 0 ? selectedItems?.groups : [];\n        break;\n    }\n  }\n\n  entrustFramework(event: any) {\n    this.reset();\n    this.activeDeselector();\n\n    this.responsibilityForm.responsibility = {\n      name: event.report_name,\n      keyResponsibility: event.key_compliance ? true : false,\n    };\n    const newStartDate =\n      event.start_date || event.start_date != null || event.start_date !== ''\n        ? new Date(event.start_date * 1000)\n        : new Date();\n    const pvtTemplate =\n      event.frequency_template && event.frequency_template !== ''\n        ? event.frequency_template\n        : event.frequency;\n    const frequencyDetailsObject: any = this.frequencyService.shortHand_freqCal(\n      pvtTemplate,\n      newStartDate.getDate(),\n      newStartDate.getMonth(),\n      newStartDate.getFullYear()\n    );\n    this.responsibilityForm.frequency_details = frequencyDetailsObject?.pattern;\n    event.frequency_details = this.responsibilityForm.frequency_details;\n    event.frequency_time = DEFAULT_24HR;\n    event.reminder_before_days = event.remind_days_before_due_date\n      ? event.remind_days_before_due_date\n      : 2;\n    event.failed_after_days = event.mark_failed_after\n      ? event.mark_failed_after\n      : 2;\n    event.lifecycle_details = '0000-00-00~~0';\n    event.start_of_day_utc = this.frequencyService.frameworkStartDate(event);\n    event.on_completion_of = [];\n    event.dom_utc = new Date().getTime();\n    event.continuous_failed_days =\n      frequencyDetailsObject.continuous_failed_days;\n\n    this.responsibilityForm.frequency =\n      this.responsibilityForm.frequency_details;\n    this.responsibilityForm.frequency_time = DEFAULT_24HR;\n    this.responsibilityForm.reminder_before_days =\n      event.remind_days_before_due_date ? event.remind_days_before_due_date : 2;\n    this.responsibilityForm.failed_after_days = event.mark_failed_after\n      ? event.mark_failed_after\n      : 2;\n    this.responsibilityForm.lifecycleDetails = '0000-00-00~~0';\n    this.responsibilityForm.start_of_day_utc = this.frequencyService\n      .frameworkStartDate(event)\n      .toFixed()\n      .toString();\n    this.responsibilityForm.on_completion_of = [];\n    this.responsibilityForm.dom_utc = new Date().getTime();\n    this.responsibilityForm.description =\n      event.remarks.trim() != '' ? event.remarks : '';\n    this.responsibilityForm.customTags =\n      event.custom_tags &&\n        event.custom_tags !== null &&\n        event.custom_tags !== 'null' &&\n        event.custom_tags !== ''\n        ? JSON.parse(event.custom_tags)\n        : [];\n    this.responsibilityForm.objective = event.control_objective\n      ? event.control_objective\n      : '';\n    this.responsibilityForm.category = this.setList(\n      this.allCategories,\n      [event.category_id],\n      'category_id'\n    ); //\n    this.responsibilityForm.reviewers.reviewFrequency.reviewCompleteDays = 2;\n    this.responsibilityForm.reviewers.reviewFrequency.reviewNOtCompletedDays = 2;\n    this.responsibilityForm.rc = this.responsibilityCentersList.find(\n      (rc: any) => rc.rc_id === event.entity_id\n    )\n      ? [\n        this.responsibilityCentersList.find(\n          (rc: any) => rc.rc_id === event.entity_id\n        ),\n      ]\n      : [];\n    this.responsibilityForm.riskClass = this.isRiskEnable ? 'low' : 'low_medium';\n    this.responsibilityForm.private_library_id = event.report_id;\n    this.responsibilityForm.frequency =\n      this.responsibilityForm.frequency_details;\n    this.responsibilityForm.classification = this.isRiskEnable ? 1 : 2;\n    this.responsibilityForm.continuous_failed_days =\n      frequencyDetailsObject.continuous_failed_days;\n    this.responsibilityForm.startDate =\n      this.frequencyService.frameworkStartDate(event);\n    this.responsibilityForm.formatAndEvidence = {\n      evidenceRequired: event.report_upload_flag ? true : false,\n      formatFiles: event.report_format,\n      formatLinks:\n        !event.report_format_link || event.report_format_link == ''\n          ? []\n          : [event.report_format_link],\n      formatRequired:\n        event.report_format?.length > 0 ||\n          (event.report_format_link && event.report_format_link != '')\n          ? true\n          : false,\n    };\n    this.responsibilityForm.audit_category_details = {\n      category_id: 0,\n      sample: 5,\n      percentage: 30,\n      frequency_pattern: '1~0~3~1',\n      frequency_time: DEFAULT_24HR,\n    };\n\n    event.frequency_time = DEFAULT_TIME;\n    if (\n      event.frequency_details !== '' &&\n      event.frequency_details !== '5~0~0~0'\n    ) {\n      this.frequencyPopulation(event);\n    } else {\n      this.responsibilityForm.frequency = '';\n    }\n\n    event.frequency_time = DEFAULT_24HR;\n    event.placeholder = this.getFrequencyPlaceholder(event);\n    const checkedMoreOptions = [];\n\n    if (this.responsibilityForm.objective !== '') {\n      checkedMoreOptions.push('OBJECTIVE');\n      this.moreOptions.OBJECTIVE = true;\n    }\n    checkedMoreOptions.push('RISK_CLASSIFICATION');\n    this.moreOptions.RISK_CLASSIFICATION = true;\n    if (this.responsibilityForm.category?.length > 0) {\n      checkedMoreOptions.push('CATEGORY');\n      this.moreOptions.CATEGORY = true;\n    }\n\n    if (\n      this.responsibilityForm?.formatAndEvidence?.evidenceRequired ||\n      this.responsibilityForm?.formatAndEvidence?.formatRequired\n    ) {\n      checkedMoreOptions.push('FORMATE_EVIDENCE');\n      this.moreOptions.FORMATE_EVIDENCE = true;\n    }\n    if (event.entity_id > 0) {\n      checkedMoreOptions.push('RC');\n      this.moreOptions.RC = true;\n    }\n\n    this.populateOption.emit(checkedMoreOptions);\n    //  event.placeholder\n  }\n\n  assignFromFramework(freqObj: any) {\n    if (freqObj.data) {\n      // this.reset();\n      this.activeDeselector();\n      const newStartDate = new Date();\n\n      const frequencyDetailsObject: any =\n        this.frequencyService.shortHand_freqCal(\n          freqObj.data.frequency,\n          newStartDate.getDate(),\n          newStartDate.getMonth(),\n          newStartDate.getFullYear()\n        );\n\n      let event: any = {};\n      event.frequency_details = frequencyDetailsObject?.pattern;\n      event.frequency_time = DEFAULT_24HR;\n      event.reminder_before_days = 2;\n      event.failed_after_days = 2;\n      event.lifecycle_details = '0000-00-00~~0';\n      event.start_of_day_utc = Date.now() / 1000;\n      event.on_completion_of = [];\n      event.dom_utc = new Date().getTime();\n      event.continuous_failed_days =\n        frequencyDetailsObject.continuous_failed_days;\n      this.getFrequencyPlaceholder(event);\n      event.placeholder = this.frequencyPlaceholder;\n      event.frequency_time = DEFAULT_TIME;\n      this.frequencyPopulation(event);\n\n      this.responsibilityForm.responsibility.name = freqObj.data.name ?? '';\n      this.responsibilityForm.objective = freqObj.data.objectives ?? '';\n      this.responsibilityForm.frequency = frequencyDetailsObject?.pattern ?? '';\n      this.responsibilityForm.startDate = event.start_of_day_utc;\n      this.responsibilityForm.reminder_before_days = event.reminder_before_days;\n      this.responsibilityForm.continuous_failed_days =\n        event.continuous_failed_days;\n      this.responsibilityForm.failed_after_days = event.failed_after_days;\n      this.selectedFrameworkValues = freqObj.selectedFrameworkData ?? undefined;\n      if (freqObj?.data?.description) {\n        this.responsibilityForm.description = freqObj?.data?.description;\n      }\n      if (freqObj?.data?.objectives) {\n        this.responsibilityForm.objective = freqObj.data.objectives ?? '';\n        this.moreOptions.OBJECTIVE = true;\n        let checkedMoreOptions = [];\n        for (const key in this.moreOptions) {\n          if (this.moreOptions[key]) {\n            checkedMoreOptions.push(key);\n          }\n        }\n        this.populateOption.emit(checkedMoreOptions);\n      }\n    }\n  }\n  /**\n   *\n   * @param list userlist for listing users\n   * @returns assign user's my_member_id  to member_id data\n   */\n  assignUserMemberId(list: any) {\n    const userObj = [...list];\n    userObj?.forEach((user: any) => {\n      user.member_id = user?.my_member_id;\n    });\n    list = [...userObj];\n    return list;\n  }\n\n  refreshAllLists() {\n    let assignorAndAssigneesIds: any = [];\n    let allUsersIds: any = [];\n    let assigneeGroupIds: any = [];\n    let reviewersIds: any = [];\n    let overseerIds: any = [];\n    let assigneeIds: any = [];\n    let groupReviewerIds: any = [];\n    let groupOverseerIds: any = [];\n    this.reviewerIds = [];\n    this.assignorId = [];\n    this.overseerIds = [];\n    this.assigneeIds = [];\n\n    const allUsers = cloneDeep(this.allUsersList);\n    const allGroups = cloneDeep(this.OrgGroup);\n    const behalfUsers = cloneDeep(this.behalfOfUsersList);\n\n    const assignors = cloneDeep(this.responsibilityForm?.assignors?.list);\n    const assignees = cloneDeep(this.responsibilityForm?.assignees?.list);\n\n    const assigneeGroupList = cloneDeep(\n      this.responsibilityForm?.assigneeGroups?.list\n    );\n    const reviewers = cloneDeep(this.responsibilityForm.reviewers.list);\n    const groupReviewersList = this.featureFlag_groups\n      ? cloneDeep(this.responsibilityForm?.groupReviewers?.list)\n      : [];\n    const overseerList = cloneDeep(this.responsibilityForm?.overseers?.list);\n    const groupOverseerList = this.featureFlag_groups\n      ? cloneDeep(this.responsibilityForm?.overseersGroups?.list)\n      : [];\n    const notifyOverseers = cloneDeep(\n      this.responsibilityForm?.overseers?.notifyList\n    );\n    const groupNotifyOverseers = this.featureFlag_groups\n      ? cloneDeep(this.responsibilityForm?.overseersGroups?.notifyList)\n      : [];\n    assignors?.forEach((user: any) => {\n      assignorAndAssigneesIds.push(user.member_id);\n      this.assignorId.push(user.member_id);\n    });\n    assignees?.forEach((user: any) => {\n      assignorAndAssigneesIds.push(user?.my_member_id);\n      assigneeIds.push(user?.my_member_id);\n      this.assigneeIds.push(user?.my_member_id);\n    });\n    if (this.responsibilityForm.assignors.list?.length == 0) {\n      assignorAndAssigneesIds.push(this.memberId);\n      this.assignorId.push(this.memberId);\n    }\n    allUsers?.forEach((user: any) => {\n      allUsersIds.push(user?.my_member_id);\n    });\n    assigneeGroupList?.forEach((group: any) => {\n      assigneeGroupIds.push(group?.group_id);\n    });\n\n    reviewers?.forEach((user: any) => {\n      reviewersIds.push(user?.my_member_id);\n      this.reviewerIds.push(user?.my_member_id);\n    });\n    groupReviewersList?.forEach((group: any) => {\n      groupReviewerIds.push(group?.group_id);\n    });\n    groupOverseerList?.forEach((group: any) => {\n      groupOverseerIds.push(group?.group_id);\n    });\n    groupNotifyOverseers?.forEach((group: any) => {\n      groupOverseerIds.push(group?.group_id);\n    });\n    overseerList?.forEach((user: any) => {\n      overseerIds.push(user?.my_member_id);\n      this.overseerIds.push(user?.my_member_id);\n    });\n    notifyOverseers?.forEach((user: any) => {\n      overseerIds.push(user?.my_member_id);\n      this.overseerIds.push(user?.my_member_id);\n    });\n\n    assignorAndAssigneesIds = [...new Set(assignorAndAssigneesIds)];\n    allUsersIds = [...new Set(allUsersIds)];\n    assigneeIds = [...new Set(assigneeIds)];\n    reviewersIds = [...new Set(reviewersIds)];\n    overseerIds = [...new Set(overseerIds)];\n    this.assignorId = [...new Set(this.assignorId)];\n    this.assigneeIds = [...new Set(this.assigneeIds)];\n    this.reviewerIds = [...new Set(this.reviewerIds)];\n    this.overseerIds = [...new Set(this.overseerIds)];\n\n    assigneeGroupIds = [...new Set(assigneeGroupIds)];\n    groupReviewerIds = [...new Set(groupReviewerIds)];\n    groupOverseerIds = [...new Set(groupOverseerIds)];\n    this.assignorsList = behalfUsers.filter(\n      (user: any) => !overseerIds?.includes(user.member_id)\n    );\n    this.assigneesList = allUsers;\n    this.reviewersList = allUsers;\n    this.overseersList = allUsers;\n\n    this.disableList(\n      allUsers,\n      assignorAndAssigneesIds,\n      assigneeIds,\n      reviewersIds,\n      overseerIds\n    );\n    if (this.featureFlag_groups) {\n      this.groupAssigneeList = allGroups.filter(\n        (group: any) =>\n          !(\n            groupReviewerIds?.includes(group?.group_id) ||\n            groupOverseerIds?.includes(group?.group_id)\n          )\n      );\n      this.reviewerMemberIdsList = this.assignUserMemberId(this.allUsersList);\n      this.overseersList = this.assignUserMemberId(this.allUsersList);\n      this.groupReviewerList = allGroups.filter(\n        (group: any) =>\n          !(\n            groupOverseerIds?.includes(group?.group_id) ||\n            assigneeGroupIds?.includes(group?.group_id)\n          )\n      );\n      this.groupOverseerList = allGroups.filter(\n        (group: any) =>\n          !(\n            assigneeGroupIds?.includes(group?.group_id) ||\n            groupReviewerIds?.includes(group?.group_id)\n          )\n      );\n    }\n  }\n\n  disableList(\n    allUsers: any,\n    assignorAndAssigneesIds: any,\n    assigneeIds: any,\n    reviewersIds: any,\n    overseerIds: any\n  ) {\n    let disableAssigneeList = allUsers.filter(\n      (user: any) =>\n        reviewersIds?.includes(user?.my_member_id) ||\n        overseerIds?.includes(user?.my_member_id)\n    );\n    this.disableAssigneeIds = this.returnIds(\n      disableAssigneeList,\n      'my_member_id'\n    );\n    this.disableRadioAssignee = this.returnIds(\n      disableAssigneeList,\n      'employee_id'\n    );\n    let disableReviewerList = allUsers.filter(\n      (user: any) =>\n        overseerIds?.includes(user?.my_member_id) ||\n        assigneeIds?.includes(user?.my_member_id)\n    );\n    this.disableReviewerIds = this.returnIds(\n      disableReviewerList,\n      'employee_id'\n    );\n    let disableOverseerList = allUsers.filter(\n      (user: any) =>\n        assignorAndAssigneesIds?.includes(user?.my_member_id) ||\n        reviewersIds?.includes(user?.my_member_id)\n    );\n    this.disableOverseerIds = this.returnIds(\n      disableOverseerList,\n      'employee_id'\n    );\n    if (this.featureFlag_groups) {\n      let disableReviewerList = allUsers.filter(\n        (user: any) =>\n          overseerIds?.includes(user?.my_member_id) ||\n          assigneeIds?.includes(user?.my_member_id)\n      );\n      this.disableReviewerIds = this.returnIds(\n        disableReviewerList,\n        'member_id'\n      );\n      let disableOverseersList = allUsers.filter(\n        (user: any) =>\n          assignorAndAssigneesIds?.includes(user?.my_member_id) ||\n          reviewersIds?.includes(user?.my_member_id)\n      );\n      this.disableOverseerIds = this.returnIds(\n        disableOverseersList,\n        'member_id'\n      );\n    }\n  }\n\n  refreshListsWhileProgramSelected() {\n    let assignorAndAssigneesIds: any = [];\n    let reviewersIds: any = [];\n    let overseerIds: any = [];\n    let assigneeIds: any = [];\n    let assigneeGroupIds: any = [];\n    let groupReviewerIds: any = [];\n    let groupOverseerIds: any = [];\n    this.reviewerIds = [];\n    this.assignorId = [];\n    this.overseerIds = [];\n    this.assigneeIds = [];\n    const behalfUsers = cloneDeep(this.behalfOfUsersList);\n    const allGroups = cloneDeep(this.OrgGroup);\n    const assignors = cloneDeep(this.responsibilityForm.assignors.list);\n    const assignees = cloneDeep(this.responsibilityForm?.assignees?.list);\n    const assigneeGroupList = this.featureFlag_groups\n      ? cloneDeep(this.responsibilityForm?.assigneeGroups?.list)\n      : [];\n    const reviewers = cloneDeep(this.responsibilityForm?.reviewers?.list);\n    const groupReviewersList = this.featureFlag_groups\n      ? cloneDeep(this.responsibilityForm?.groupReviewers?.list)\n      : [];\n    const overseerList = cloneDeep(this.responsibilityForm?.overseers?.list);\n    const groupOverseerList = this.featureFlag_groups\n      ? cloneDeep(this.responsibilityForm?.overseersGroups?.list)\n      : [];\n    const notifyOverseers = cloneDeep(\n      this.responsibilityForm?.overseers?.notifyList\n    );\n    const groupNotifyOverseers = this.featureFlag_groups\n      ? cloneDeep(this.responsibilityForm?.overseersGroups?.notifyList)\n      : [];\n    assignors?.forEach((user: any) => {\n      this.assignorId.push(user?.member_id);\n      assignorAndAssigneesIds.push(user?.member_id);\n    });\n    assignees?.forEach((user: any) => {\n      assignorAndAssigneesIds.push(user?.my_member_id);\n      assigneeIds.push(user?.my_member_id);\n      this.assigneeIds.push(user?.my_member_id);\n    });\n    if (this.responsibilityForm?.assignors?.list?.length == 0) {\n      assignorAndAssigneesIds.push(this.memberId);\n      this.assignorId.push(this.memberId);\n    }\n\n    assigneeGroupList?.forEach((group: any) => {\n      assigneeGroupIds.push(group?.group_id);\n    });\n    reviewers?.forEach((user: any) => {\n      reviewersIds.push(user?.my_member_id);\n      this.reviewerIds.push(user?.my_member_id);\n    });\n    groupReviewersList?.forEach((group: any) => {\n      groupReviewerIds.push(group?.group_id);\n    });\n    overseerList?.forEach((user: any) => {\n      overseerIds.push(user?.my_member_id);\n      this.overseerIds.push(user?.my_member_id);\n    });\n    notifyOverseers?.forEach((user: any) => {\n      overseerIds.push(user?.my_member_id);\n      this.overseerIds.push(user?.my_member_id);\n    });\n    groupOverseerList?.forEach((group: any) => {\n      groupOverseerIds.push(group?.group_id);\n    });\n    groupNotifyOverseers?.forEach((group: any) => {\n      groupOverseerIds.push(group?.group_id);\n    });\n    assignorAndAssigneesIds = [...new Set(assignorAndAssigneesIds)];\n    assigneeIds = [...new Set(assigneeIds)];\n    reviewersIds = [...new Set(reviewersIds)];\n    overseerIds = [...new Set(overseerIds)];\n    assigneeGroupIds = [...new Set(assigneeGroupIds)];\n    groupReviewerIds = [...new Set(groupReviewerIds)];\n    groupOverseerIds = [...new Set(groupOverseerIds)];\n    this.assignorId = [...new Set(this.assignorId)];\n    this.assigneeIds = [...new Set(this.assigneeIds)];\n    this.reviewerIds = [...new Set(this.reviewerIds)];\n    this.overseerIds = [...new Set(this.overseerIds)];\n\n    this.assignorsList = behalfUsers.filter(\n      (user: any) => !overseerIds?.includes(user.member_id)\n    );\n    this.assigneesList = this.programPeopleList?.assigneesList;\n    this.reviewersList = this.programPeopleList?.reviewersList;\n    this.overseersList = this.programPeopleList?.overseersList;\n\n    if (this.featureFlag_groups) {\n      this.groupAssigneeList =\n        this.selectedProgram &&\n          this.selectedProgram?.assignee_group_ids?.length > 0\n          ? this.programGroupList(\n            allGroups,\n            this.selectedProgram?.assignee_group_ids\n          )\n          : allGroups.filter(\n            (group: any) =>\n              !(\n                groupReviewerIds?.includes(group?.group_id) ||\n                groupOverseerIds?.includes(group?.group_id)\n              )\n          );\n      this.reviewerMemberIdsList = this.assignUserMemberId(\n        this.programPeopleList.reviewersList\n      );\n      this.groupReviewerList =\n        this.selectedProgram &&\n          this.selectedProgram?.reviewer_group_ids?.length > 0\n          ? this.programGroupList(\n            allGroups,\n            this.selectedProgram?.reviewer_group_ids\n          )\n          : allGroups.filter(\n            (group: any) =>\n              !(\n                groupOverseerIds?.includes(group?.group_id) ||\n                assigneeGroupIds?.includes(group?.group_id)\n              )\n          );\n      this.overseersList = this.assignUserMemberId(\n        this.programPeopleList.overseersList\n      );\n      this.groupOverseerList =\n        this.selectedProgram &&\n          this.selectedProgram?.overseers?.cc_email_groups?.length > 0\n          ? this.programGroupList(\n            allGroups,\n            this.selectedProgram?.overseers?.cc_email_groups\n          )\n          : allGroups.filter(\n            (group: any) =>\n              !(\n                assigneeGroupIds?.includes(group?.group_id) ||\n                groupReviewerIds?.includes(group?.group_id)\n              )\n          );\n    }\n    this.disableProgramList(\n      assignorAndAssigneesIds,\n      assigneeIds,\n      reviewersIds,\n      overseerIds\n    );\n  }\n\n  programGroupList(allGroups: any, ...args: any[]) {\n    // args[0]\n    let assigneeProgram: any = [];\n    let groupIds = args[0];\n    if (this.selectedProgram && this.selectedProgram?.assignee_group_ids) {\n      assigneeProgram = allGroups.filter((group: any) =>\n        groupIds.includes(group.group_id)\n      );\n    }\n    return assigneeProgram;\n  }\n\n  disableProgramList(\n    assignorAndAssigneesIds: any,\n    assigneeIds: any,\n    reviewersIds: any,\n    overseerIds: any\n  ) {\n    let disableAssigneeList = this.programPeopleList?.assigneesList.filter(\n      (user: any) =>\n        reviewersIds?.includes(user?.my_member_id) ||\n        overseerIds?.includes(user?.my_member_id)\n    );\n    this.disableAssigneeIds = this.returnIds(\n      disableAssigneeList,\n      'my_member_id'\n    );\n    this.disableRadioAssignee = this.returnIds(\n      disableAssigneeList,\n      'employee_id'\n    );\n    let disableReviewerList = this.programPeopleList?.reviewersList.filter(\n      (user: any) =>\n        overseerIds?.includes(user?.my_member_id) ||\n        assigneeIds?.includes(user?.my_member_id)\n    );\n    this.disableReviewerIds = this.returnIds(\n      disableReviewerList,\n      'employee_id'\n    );\n    let disableOverseerList = this.programPeopleList?.overseersList.filter(\n      (user: any) =>\n        assignorAndAssigneesIds?.includes(user?.my_member_id) ||\n        reviewersIds?.includes(user?.my_member_id)\n    );\n    this.disableOverseerIds = this.returnIds(\n      disableOverseerList,\n      'employee_id'\n    );\n    if (this.featureFlag_groups) {\n      let disableReviewerList = this.reviewerMemberIdsList.filter(\n        (user: any) =>\n          overseerIds?.includes(user?.my_member_id) ||\n          assigneeIds?.includes(user?.my_member_id)\n      );\n      this.disableReviewerIds = this.returnIds(\n        disableReviewerList,\n        'member_id'\n      );\n      let disableOverseerList = this.overseersList.filter(\n        (user: any) =>\n          assignorAndAssigneesIds?.includes(user?.my_member_id) ||\n          reviewersIds?.includes(user?.my_member_id)\n      );\n      this.disableOverseerIds = this.returnIds(\n        disableOverseerList,\n        'member_id'\n      );\n    }\n  }\n\n  /**\n   * If the form is valid, then if the mode is EDIT, then set the organizationId and memberId to the\n   * authService values, and then call the entrustResponsibility function with the responsibilityForm as\n   * a parameter.\n   *\n   * If the mode is not EDIT, then call the entrustResponsibility function with the responsibilityForm\n   * as a parameter.\n   * @returns a boolean value.\n   */\n  submitResponsibility() {\n    const valid = this.validateResponsibility();\n    if (!valid) {\n      return false;\n    } else if (this.mode == 'EDIT' && !this.isDuplicate) {\n      this.organizationId = this.authService.getOrganizationId();\n      this.memberId = this.authService.getMemberId();\n      this.entrustResponsibility(this.responsibilityForm);\n      // edit conditions\n    } else {\n      this.entrustResponsibility(this.responsibilityForm);\n    }\n  }\n\n  /**\n   * If the responsibility name is empty, or the frequency is empty, or the assignees list is empty,\n   * then return false. Otherwise, return true.\n   */\n  validateResponsibility() {\n    this.submitted = true;\n    if (\n      this.responsibilityForm.assignors.enable &&\n      this.responsibilityForm.assignors.list?.length === 0\n    ) {\n      this.invalidType = 'whom';\n      return false;\n    }\n    if (\n      !this.responsibilityForm.responsibility.name ||\n      this.responsibilityForm.responsibility.name.trim() == ''\n    ) {\n      this.invalidType = 'what';\n    } else if (\n      !this.responsibilityForm?.assignees?.list ||\n      (this.responsibilityForm?.assignees?.list?.length == 0 &&\n        (!this.featureFlag_groups ||\n          ((!this.responsibilityForm?.assigneeGroups?.list ||\n            this.responsibilityForm?.assigneeGroups?.list?.length == 0) &&\n            this.featureFlag_groups)))\n    ) {\n      this.invalidType = 'who';\n    } else if (\n      !this.responsibilityForm.frequency ||\n      this.responsibilityForm.frequency == '' ||\n      this.responsibilityForm.frequency === '' ||\n      this.responsibilityForm.frequency === '5~0~0~0'\n    ) {\n      this.invalidType = 'when';\n      return false;\n    } else {\n      this.invalidType = '';\n    }\n\n    if (\n      !this.responsibilityForm.responsibility.name ||\n      this.responsibilityForm.responsibility.name.trim() == '' ||\n      !this.responsibilityForm.frequency ||\n      this.responsibilityForm.frequency === '' ||\n      this.responsibilityForm.frequency === '5~0~0~0' ||\n      (this.responsibilityForm.assignees.list?.length == 0 &&\n        (!this.featureFlag_groups ||\n          ((!this.responsibilityForm.assigneeGroups.list ||\n            this.responsibilityForm.assigneeGroups.list?.length == 0) &&\n            this.featureFlag_groups)))\n    ) {\n      return false;\n    } else {\n      return true;\n    }\n  }\n\n  entrustResponsibility(entrustForm: any) {\n    this.loader = true;\n    this.uiKitService.isLoader = true;\n    this.entrustLoader = true;\n    let startDate = moment(parseInt(entrustForm.startDate) * 1000).format(\n      'YYYY-MM-DD HH:mm:ss'\n    );\n    startDate = moment(startDate.split(' ')[0] + ' 00:00:00').format(\n      'YYYY-MM-DD HH:mm:ss'\n    );\n    const rcDetails =\n      entrustForm.rc?.length > 0\n        ? entrustForm.rc.map((rc: any): any => {\n          if (rc) {\n            const rcDetailsArr = {\n              parent_rc_ids: rc.parent_rc_ids,\n              rc_id: rc.rcid,\n              child_rc_ids: rc?.item_child_ids,\n            };\n            return rcDetailsArr;\n          }\n        })\n        : [];\n    const rcDetailsIdArr =\n      entrustForm.rc?.length > 0\n        ? entrustForm.rc.map((rc: any): any => {\n          if (rc) {\n            return rc.rcid;\n          }\n        })\n        : [];\n\n    const moreOptions = this.moreOptions;\n\n    const checkContinuousFailedValue = (details: string) => {\n      const frequencyType = parseInt(details.split('~')[0]);\n      if (frequencyType === 1 || frequencyType === 2 || frequencyType === 3) {\n        return true;\n      } else {\n        return false;\n      }\n    };\n\n    let linkedProgramIds: any[] = [];\n    let linkedCategoryIds: any[] = [];\n    this.responsibilityForm?.linkedProgram?.forEach((ele: any) => {\n      if (\n        this.responsibilityForm?.program[0]?.category_id !== ele?.category_id\n      ) {\n        const program = {\n          programId: ele?.category_id,\n          programObjectId: ele?._id,\n          subProgramIds: ele?.child_id?.filter((el: any) => {\n            return this.responsibilityForm.category?.includes(el);\n          }),\n        };\n        linkedProgramIds?.push(program);\n        linkedCategoryIds?.push(ele?.category_id);\n      }\n    });\n\n    let categoryIdsExceptDefault: any = [];\n    if (this.responsibilityForm?.category) {\n      categoryIdsExceptDefault = this.responsibilityForm?.category?.filter(\n        (el: any) => {\n          return (\n            el !== this.responsibilityForm?.program[0]?.category_id &&\n            !this.responsibilityForm?.program[0]?.child_id?.includes(el)\n          );\n        }\n      )\n    }\n    this.combineUserAndUserGroupMembers(\n      this.mode === 'EDIT' &&\n      this.responsibilityForm.assignees.whoCanComplete === 'ALL' &&\n      this.rawResponsibility?.userGroupIds?.assigneeAllGroupIds?.length\n    );\n\n    const remarks =\n      entrustForm.description.replace(/\\&nbsp;/g, '').trim() !== ''\n        ? entrustForm.description\n        : '';\n    const objective =\n      entrustForm.objective.replace(/\\&nbsp;/g, '').trim() !== ''\n        ? entrustForm.objective\n        : '';\n    let payload: any = {\n      app_association: [],\n      assignee_member_id: this.returnIds(\n        this.assigneeUserList,\n        'uid'\n      ).toString(),\n      program_cat_ids: moreOptions?.PROGRAM\n        ? entrustForm?.program?.length\n          ? [entrustForm?.program[0]?.category_id]\n          : []\n        : [],\n      linked_program_ids: linkedProgramIds,\n      linked_category_ids: this.getUniqueIds([\n        ...categoryIdsExceptDefault,\n        ...linkedCategoryIds,\n      ]),\n      // category_id: (this.responsibilityForm?.program_selected_ids?.length > 0) ? this.responsibilityForm?.category_id : '',\n      category_id:\n        this.responsibilityForm?.program_selected_ids?.length > 0\n          ? this.getUniqueIds([\n            ...this.responsibilityForm?.category,\n            ...linkedCategoryIds,\n            ...[entrustForm?.program[0]?.category_id],\n          ])?.reverse().toString()\n          : '',\n      cc_member_email: moreOptions?.OVERSEER\n        ? this.returnIds(this.overseerUserList, 'uid').toString()\n        : '',\n      checkpoint_description: moreOptions?.CHECKPOINTS\n        ? entrustForm.checkpointInstruction\n        : '',\n      checkpoint_details: moreOptions?.CHECKPOINTS\n        ? JSON.stringify(this.responsibilityForm.checkpoints)\n        : '',\n      checkpoint_flag: 0,\n      collaborator_mark_done: 0,\n      comment: '',\n      continuous_failed_days: checkContinuousFailedValue(entrustForm.frequency)\n        ? entrustForm.continuous_failed_days\n        : 0,\n      cost_of_compliance: '',\n      created_by: entrustForm.assignors.list?.length < 1 ? 0 : this.memberId,\n      creation_window: 0,\n      custom_tags: entrustForm.customFields.map((ele: any) => {\n        return {\n          id: ele.id,\n          value: ele.value,\n        }\n      }),\n      entity_tree: moreOptions?.RC\n        ? this.isResponsibilityRcLinkEnabled &&\n          this.responsibilityCenterType == 1\n          ? []\n          : rcDetails\n        : [],\n      entrust_from_risk: this.openedFrom === 'RISK_TREATMENT' ? true : false,\n      failed_after_days: entrustForm.failed_after_days,\n      failed_time_utc: entrustForm.failed_time_utc,\n      failure_cc_member_email: moreOptions?.OVERSEER\n        ? this.returnIds(this.overseerUserNotifyList, 'uid').toString()\n        : '',\n      frequency_details: entrustForm.frequency,\n      frequency_time: entrustForm.timeIn24Hr ?? DEFAULT_24HR,\n      grc_object_id: 0,\n      grc_relationship: '',\n      if_testplan_failed: 0,\n      impact: '',\n      isGroupAssignTo:\n        entrustForm.assignees.whoCanComplete == 'ANY_ONE' ? 1 : 0,\n      is_key_compliance: entrustForm.responsibility.keyResponsibility ? 1 : 0,\n      allowEditDueDate: entrustForm?.allowEditDueDate ? true : false,\n      library_report_id: 0,\n      lifecycle_details: entrustForm.lifecycleDetails ?? '0000-00-00~~0',\n      link_for_details: moreOptions?.FORMATE_EVIDENCE\n        ? entrustForm.formatAndEvidence.formatLinks\n        : [],\n      linkages: { compliance: [] },\n      member_id:\n        this.returnIds(entrustForm.assignors.list, 'uid')?.length > 0\n          ? this.returnIds(entrustForm.assignors.list, 'uid')[0]\n          : this.memberId,\n      objective: moreOptions?.OBJECTIVE ? objective : '',\n      on_completion_of: entrustForm.reportId ? [entrustForm.reportId] : [],\n      on_completion_of_type: 1,\n      organisation_id: this.organizationId,\n      override_weekly: 0,\n      parent_id: 0,\n      penalty: '',\n      private_library_id: 0,\n      remarks: remarks,\n      reminder_before_days: entrustForm.reminder_before_days,\n      report_format: moreOptions?.FORMATE_EVIDENCE\n        ? entrustForm.formatAndEvidence.formatFiles\n        : [],\n      isFormatUpload:\n        moreOptions?.FORMATE_EVIDENCE &&\n          entrustForm.formatAndEvidence.formatRequired\n          ? 1\n          : 0,\n      report_format_link: '',\n      report_name: entrustForm.responsibility.name,\n      report_upload_flag: entrustForm.formatAndEvidence.evidenceRequired\n        ? 1\n        : 0,\n      review_after_days: moreOptions?.REVIEWER\n        ? entrustForm.reviewers.reviewFrequency.reviewCompleteDays === ''\n          ? 0\n          : Number(entrustForm.reviewers.reviewFrequency.reviewCompleteDays)\n        : 0,\n      review_failed_after_days: moreOptions?.REVIEWER\n        ? entrustForm.reviewers.reviewFrequency.reviewNOtCompletedDays === ''\n          ? 0\n          : Number(entrustForm.reviewers.reviewFrequency.reviewNOtCompletedDays)\n        : 0,\n      reviewer_arr: moreOptions?.REVIEWER\n        ? {\n          level1: {\n            reviewers: this.setReviewerPayload(\n              this.reviewerUserList,\n              'list',\n              entrustForm.reviewers.acceptedData,\n              entrustForm.reviewers.sequentialWorkflow\n                ? 'SEQUENTIAL'\n                : 'ANYONE'\n            ),\n            type: entrustForm.reviewers.sequentialWorkflow\n              ? 'SEQUENTIAL'\n              : 'ANYONE',\n          },\n        }\n        : {},\n      userGroupIds: {\n        assigneeAllGroupIds:\n          entrustForm.assignees.whoCanComplete !== 'ANY_ONE'\n            ? this.returnIds(entrustForm?.assigneeGroups?.list, 'ugid')\n            : [],\n        assigneeAnyoneGroupIds:\n          entrustForm.assignees.whoCanComplete === 'ANY_ONE'\n            ? this.returnIds(entrustForm?.assigneeGroups?.list, 'ugid')\n            : [],\n        ccEmailGroupIds:\n          this.returnIds(\n            this.responsibilityForm?.overseersGroups?.list,\n            'ugid'\n          ) ?? [],\n        failureCCEmailGroupIds:\n          this.returnIds(\n            this.responsibilityForm?.overseersGroups?.notifyList,\n            'ugid'\n          ) ?? [],\n        reviewerGroupIds:\n          this.returnIds(\n            this.responsibilityForm?.groupReviewers?.list,\n            'ugid'\n          ) ?? [],\n      },\n      existingUserIds: {\n        assigneeAllIds:\n          entrustForm.assignees.whoCanComplete !== 'ANY_ONE'\n            ? this.returnIds(entrustForm?.assignees?.list, 'uid')\n            : [],\n        assigneeAnyoneIds:\n          entrustForm.assignees.whoCanComplete === 'ANY_ONE'\n            ? this.returnIds(entrustForm?.assignees?.list, 'uid')\n            : [],\n        ccEmailMemberIds:\n          this.returnIds(entrustForm?.overseers?.list, 'uid') ?? [],\n        failureCCEmailMemberIds:\n          this.returnIds(entrustForm?.overseers?.notifyList, 'uid') ??\n          [],\n        reviewerIds:\n          this.returnIds(\n            this.responsibilityForm?.reviewers?.list,\n            'uid'\n          ) ?? [],\n      },\n      reviewer_checkpoints: [{ checkpoints: [], instruction: '' }],\n      reviewer_id: 0,\n      risk_class: this.isRiskEnable ? entrustForm.riskClass : 'low_medium',\n      risk_ids: '',\n      risk_matrix_data: moreOptions?.RISK_CLASSIFICATION\n        ? entrustForm.riskMatrix\n        : '0,0,0,0,0,0',\n      sample_size: 0,\n      start_date_utc: startDate,\n      statutory_day: 0,\n      test_required_flag: moreOptions?.ASSURANCE\n        ? entrustForm.assuranceList?.length > 0\n          ? 1\n          : 0\n        : 0,\n      testplan_category_id: moreOptions?.ASSURANCE\n        ? this.returnIds(entrustForm.assuranceList, 'category_id')\n        : [],\n      testplan_category_manager: '',\n      audit_category_details:\n        moreOptions?.REQUIRES_AUDIT &&\n          this.responsibilityForm?.audit_category_details?.category_id\n          ? {\n            category_id:\n              this.responsibilityForm.audit_category_details.category_id,\n            sample: this.selectedSample === 0 ? this.sampleValue : 0,\n            percentage: this.selectedSample === 1 ? this.samplePercentage : 0,\n            frequency_pattern: `1~0~${this.sendAuditRemindersValue}~1`,\n            frequency_time: moment(this.auditTime, 'HH:mm a').format(\n              'HH:mm:ss'\n            ),\n          }\n          : {\n            category_id: 0,\n            sample: 0,\n            percentage: 0,\n            frequency_pattern: ``,\n            frequency_time: '',\n          },\n      assessment: {\n        category_id: moreOptions?.ASSESSMENT\n          ? entrustForm?.assessment?.category_id\n          : '',\n        assessment_id: moreOptions?.ASSESSMENT && this.assessmentDetails?.assessment_type !== 'compliance_audit'\n          ? entrustForm?.assessment?.assessmentDetails?.aid\n          : entrustForm?.assessment?.assessment_id,\n      },\n      assessment_checkpoint: moreOptions?.CHECKPOINTS_NEW\n        ? Object.keys(entrustForm?.new_checkpoints)?.length > 0\n          ? entrustForm?.new_checkpoints\n          : {}\n        : {},\n      questionnaire_type: moreOptions?.CHECKPOINTS_NEW\n        ? Object.keys(entrustForm?.new_checkpoints)?.length > 0\n          ? 'assessment_checkpoint'\n          : moreOptions?.ASSESSMENT && entrustForm?.assessment?.category_id\n            ? 'assessment'\n            : JSON.stringify(this.responsibilityForm?.checkpoints) != '' &&\n              moreOptions?.CHECKPOINTS\n              ? 'checkpoint'\n              : ''\n        : '',\n\n      linked_GRC_ids: moreOptions?.GRC_OBJECTS\n        ? entrustForm.selectedGRCObjects.map((grc: any) => grc.grcid)\n        : [],\n      frequency: this.frequencyObject,\n      selectedCategory: this.selectedPrograms\n    };\n\n\n\n    if (this.isResponsibilityRcLinkEnabled) {\n      payload['responsibilityCenterType'] =\n        this.isResponsibilityRcLinkEnabled && moreOptions?.RC\n          ? this.responsibilityCenterType\n          : 0;\n      payload['responsibilityCenterArr'] =\n        this.isResponsibilityRcLinkEnabled && moreOptions?.RC\n          ? rcDetailsIdArr\n          : [];\n    }\n\n    const responsibilityPayload = this.responsibilityService.buildResponsibilityPayload(payload);\n\n    this.responsibilityPayload = payload;\n    if (this.mode == 'CREATE' || this.isDuplicate) {\n      this.responsibilityService.submitEntrust(responsibilityPayload).subscribe(\n        (res: any) => {\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.showSmiley = true;\n          this.uiKitService.isSmileyOn = true;\n          this.entrustLoader = false;\n          this.responsibilityData = res;\n\n          if (res.message && res.message.toLowerCase() === 'bulk entrust') {\n            this.smileyMessage = `You have entrusted ${res.calculate_no_of_responsibiities} responsibilities. These would be reflected within your account in sometime.`;\n          }\n          if (this.isNotificationPending && payload.created_by == 0) {\n            this.smileyMessage =\n              'This responsibility has been added to the notification queue.';\n          } else {\n            if (payload.created_by > 0) {\n              this.actionButtons[1].buttonText = 'View Responsibilities';\n              this.smileyMessage = `You just created a responsibility on behalf ${entrustForm.assignors.list.find(\n                (member: any) => member.member_id === payload.member_id\n              ).member_name\n                }`;\n            }\n          }\n\n          //this.reset();\n        },\n        (err) => {\n          console.error('[WorkflowCompliance] entrustResponsibility - Error response:', {\n            error: err,\n            errorMessage: err?.message,\n            errorStatus: err?.status,\n            errorBody: err?.error,\n            payload: responsibilityPayload\n          });\n          this.loader = false;\n          this.entrustLoader = false;\n          this.uiKitService.isLoader = false;\n          const message = this.complianceCommonService.extractErrorMessage(err?.message) || 'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?';\n          this.snackBar.show(\n            message,\n            'error'\n          );\n        }\n      );\n    } else {\n      if (responsibilityPayload) {\n        responsibilityPayload['id'] = this.responsibilityId\n      }\n      this.smileyMessage = `The responsibility has been modified.`;\n      this.responsibilityService\n        .updateEntrust(responsibilityPayload, this.responsibilityId, true)\n        .subscribe(\n          (res: any) => {\n            this.responsibilityData = res;\n            this.loader = false;\n            this.entrustLoader = false;\n            this.uiKitService.isLoader = false;\n            this.showSmiley = true;\n            this.uiKitService.isSmileyOn = true;\n            this.isDuplicateEntrust = false;\n\n            // this.resetForm();\n          },\n          (err) => {\n            console.error(err);\n            this.loader = false;\n            this.uiKitService.isLoader = false;\n            this.snackBar.show(\n              'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n              'alert'\n            );\n          }\n        );\n    }\n  }\n\n  uniqueIdUserGroups(\n    totalUserList: any,\n    selectedGroup: any,\n    selectedUsers: any\n  ) {\n    let groupUserList = this.getGroupsUserEmployeesId(\n      totalUserList,\n      selectedGroup\n    );\n    let ids = new Set(selectedUsers.map((user: any) => user?.my_member_id));\n    let userList = [\n      ...selectedUsers,\n      ...groupUserList.filter(\n        (groupUser: any) => !ids.has(groupUser?.my_member_id)\n      ),\n    ];\n    return userList;\n  }\n\n  combineUserAndUserGroupMembers(isGroup?: any) {\n    if (this.featureFlag_groups) {\n      this.assigneeUserList = isGroup\n        ? [{ employee_id: this.rawResponsibility?.assignee_member_id }]\n        : this.uniqueIdUserGroups(\n          this.allUsersList,\n          this.responsibilityForm?.assigneeGroups?.list,\n          this.responsibilityForm?.assignees?.list\n        );\n      this.reviewerUserList = this.uniqueIdUserGroups(\n        this.allUsersList,\n        this.responsibilityForm?.groupReviewers?.list,\n        this.responsibilityForm?.reviewers?.list\n      );\n      this.overseerUserList = this.uniqueIdUserGroups(\n        this.allUsersList,\n        this.responsibilityForm?.overseersGroups?.list,\n        this.responsibilityForm?.overseers?.list\n      );\n      this.overseerUserNotifyList = this.uniqueIdUserGroups(\n        this.allUsersList,\n        this.responsibilityForm?.overseersGroups?.notifyList,\n        this.responsibilityForm?.overseers?.notifyList\n      );\n    } else {\n      this.assigneeUserList = this.responsibilityForm?.assignees?.list;\n      this.reviewerUserList = this.responsibilityForm?.reviewers?.list;\n      this.overseerUserList = this.responsibilityForm?.overseers?.list;\n      this.overseerUserNotifyList =\n        this.responsibilityForm?.overseers?.notifyList;\n    }\n  }\n\n  /**\n   * It resets the form.\n   */\n  reset() {\n    this.scrollToBottom = false;\n    this.showSmiley = false;\n    this.uiKitService.isSmileyOn = false;\n    this.responsibilityForm = {\n      assignors: {\n        enable: false,\n        list: [],\n      },\n      responsibility: {\n        name: '',\n        keyResponsibility: false,\n      },\n      assigneeGroups: {\n        whoCanComplete: 'ALL',\n        list: [],\n      },\n      assignees: {\n        whoCanComplete: 'ALL',\n        list: [],\n      },\n      allowEditDueDate: false,\n      frequency: '',\n      description: '',\n      objective: '',\n      rc: [],\n      category: [],\n      checkpointInstruction: '',\n      customTags: [],\n      checkpoints: [],\n      reviewers: {\n        sequentialWorkflow: true,\n        reviewFrequency: {\n          reviewCompleteDays: 2,\n          reviewNOtCompletedDays: 2,\n        },\n        list: [],\n      },\n      groupReviewers: {\n        sequentialWorkflow: true,\n        reviewFrequency: {\n          reviewCompleteDays: 2,\n          reviewNOtCompletedDays: 2,\n        },\n        list: [],\n      },\n      overseers: {\n        notifyList: [],\n        list: [],\n      },\n      overseersGroups: {\n        notifyList: [],\n        list: [],\n      },\n      formatAndEvidence: {\n        formatRequired: false,\n        formatFiles: [],\n        formatLinks: [],\n        evidenceRequired: false,\n      },\n      assuranceList: [],\n      requiresAuditList: [],\n      riskClass: 'low',\n      riskMatrix: '0,0,0,0,0,0',\n      program: [],\n      program_selected_ids: [],\n    };\n    this.moreOptions = {\n      OBJECTIVE: false,\n      RC: false,\n      CATEGORY: false,\n      FORMATE_EVIDENCE: false,\n      CHECKPOINTS: false,\n      RISK_CLASSIFICATION: false,\n      REVIEWER: false,\n      OVERSEER: false,\n      ASSURANCE: false,\n      APPS: false,\n    };\n    this.frequencyPlaceholder = 'How often does the responsibility occur?';\n    this.frequencyDetails = {\n      pattern: '',\n      notificationPending: 0,\n      dateOfModified: 0,\n      deactivationValue: 0,\n      selectedReport: 0,\n      lifecycle: '0000-00-00~~0',\n      startDate: Math.floor(new Date().getTime() / 1000),\n      startOnTheDay: Math.floor(new Date().getTime() / 1000),\n      window: 0,\n      failed: 0,\n      time: DEFAULT_TIME,\n      failedTime: '',\n      continuous_failed_days: 0,\n      onCompletionReportDetails: {},\n    };\n    this.sampleValue = undefined;\n    this.samplePercentage = undefined;\n    this.selectedSample = -1;\n    this.sendAuditRemindersValue = 2;\n    this.auditTime = DEFAULT_TIME;\n    this.mode = 'CREATE';\n    this.isEntrust = true;\n    this.assessmentDetails = null;\n    this.onCompletionResponsibility = null;\n    this.responsibilityDetails = {\n    };\n    this.resetForm.emit(true);\n  }\n  action(event: string) {\n    if (this.openedFrom === 'RISK_TREATMENT') {\n      this.closeSmiley('ds');\n      return;\n    }\n    switch (event) {\n      case 'addMore':\n        this.reset();\n        break;\n      case 'view':\n        this.viewResponsibilities();\n        break;\n    }\n  }\n  viewResponsibilities(): void {\n    let url: string;\n    const id = this.responsibilityData?.data?.responsibility?.id;\n    let urlSubstring = '/compliance/responsibilities/';\n    this.disconnectRefresh.emit(false);\n    if (window.location.host.startsWith('localhost')) {\n      url = 'http://' + window.location.host + urlSubstring;\n    } else {\n      url = 'https://' + window.location.host + urlSubstring;\n    }\n    this.iframeService.redirectIfInIframe(url, this.mode !== 'EDIT');\n\n    this.closeSmiley('ds');\n    this.reset();\n  }\n  closeSmiley(event: any) {\n    this.showSmiley = false;\n    this.uiKitService.isSmileyOn = false;\n    // this.closeWorkflow.emit(this.responsibilityData);\n    this.closeWorkflow.emit({ evt: this.responsibilityData, confirm: false });\n  }\n\n  getOnCompletionReportDetails(event: any) {\n    const frequencyData = event?.pattern?.split('~');\n    if (parseInt(frequencyData[0]) == 6) {\n      return event?.onCompletionReportDetails;\n    }\n    return null;\n  }\n\n  // for edit responsibility\n  frequencyDataPopulation(event: any) {\n    const { selectedDay, selectedMonth } = this.getSelectedAttributes(event);\n    let data: any = {\n      pattern: event?.pattern,\n      window: event?.startBefore,\n      failedAfter: event?.endAfter,\n      failed_time_utc: event?.failed_time_utc,\n      lifecycleDetails: event?.lifecycle_details,\n      startFrom: Number(event?.start_of_day_utc),\n      timeIn24Hr: event?.time,\n      continuous_failed_days: event?.autoDeactivate,\n      startDate: Number(event?.start_of_day_utc),\n      timeIn12hr: this.frequencyService.timeIn12(\n        event?.time\n      ),\n\n      case: event?.type,\n      day: event?.day,\n      every: event?.repeatOptions?.every,\n      selectedDay: selectedDay,\n      selectedMonth: selectedMonth,\n      selectedType: event?.onGoing?.selectedType,\n      randomInstances: event?.random?.randomInstances,\n      selectedOngoingType: event?.onGoing?.selectedOngoingType,\n      onCompletion: event?.onComplete,\n\n    };\n\n\n    if (event?.onCompletionResponsibility) {\n      this.responsibilityDetails.onCompletionResponsibility = event?.onCompletionResponsibility;\n    }\n    this.frequencyData(data);\n  }\n\n  getSelectedAttributes(event: any) {\n    let selectedDay: number[] = [];\n    let selectedMonth: number[] = [];\n    const repeatOn = event?.repeatOptions?.repeatOn.split('');\n    if (repeatOn.length === 7) {\n      repeatOn.forEach((ele: any, index: number) => {\n        if (Number(ele) === 1) {\n          selectedDay.push(index + 1);\n        }\n      });\n      return { selectedDay, selectedMonth: [] };\n    } else {\n      repeatOn.forEach((ele: any, index: number) => {\n        if (ele === '1') {\n          selectedMonth.push(index + 1);;\n        }\n      });\n      return { selectedDay, selectedMonth };\n    }\n\n  }\n\n  frequencyPopulation(event: any) {\n    this.frequencyDetails.pattern = event?.frequency_details;\n    this.frequencyDetails.failedTime = event?.frequency_time;\n    this.frequencyDetails.window = event?.reminder_before_days;\n    this.frequencyDetails.failed = event?.failed_after_days;\n    this.frequencyDetails.lifecycle = event?.lifecycle_details;\n    this.frequencyDetails.startDate = event?.start_of_day_utc;\n    this.frequencyDetails.selectedReport = event?.on_completion_of[0] ?? 0;\n    this.frequencyDetails.dateOfModified = event?.dom_utc;\n    this.frequencyDetails.continuous_failed_days =\n      event?.continuous_failed_days;\n    this.frequencyPlaceholder = event?.placeholder;\n\n    // let onCompletionReportDetails = this.getOnCompletionReportDetails(event);\n    // if (onCompletionReportDetails != null) {\n    //   this.frequencyDetails.onCompletionReportDetails =\n    //     onCompletionReportDetails;\n    // }\n  }\n\n  setPayload(event: any): Responsibility | null {\n    return null\n  }\n\n  frequencyData(event: any) {\n    if (this.invalidType === 'when') {\n      this.invalidType = '';\n    }\n    this.frequencyObject = this.frequencyService.setFrequencyObject(event);\n    this.responsibilityForm.frequency = event.pattern;\n    this.responsibilityForm.reminder_before_days =\n      event.case === 'daily' ? 0 : event.window;\n\n    this.responsibilityForm.failed_after_days = event.failedAfter;\n    this.responsibilityForm.failed_time_utc = event.failed_time_utc;\n    this.responsibilityForm.lifecycleDetails = event.lifecycleDetails;\n    this.responsibilityForm.reportId = event.reportId ?? 0;\n    this.responsibilityForm.startDate = event.startFrom;\n    this.responsibilityForm.timeIn24Hr = event.timeIn24Hr;\n    this.responsibilityForm.continuous_failed_days =\n      event.continuous_failed_days;\n    this.activateSelector('frequency', false);\n    let payload: any = {\n      frequency_details: event.pattern,\n      frequency_time: event.timeIn12hr,\n      reminder_before_days: event.window,\n      failed_after_days: event.failedAfter,\n      lifecycle_details: event.lifecycleDetails,\n      start_of_day_utc: event.startFrom,\n      on_completion_of: [event.reportId],\n      dom_utc: Math.floor(Date.now() / 1000),\n      continuous_failed_days: event.continuous_failed_days,\n      placeholder: event.placeholder,\n    };\n\n    event.frequency_details = event.pattern;\n    this.frequencyObject = this.frequencyService.setFrequencyObject(event);\n    this.frequencyPopulation(payload);\n  }\n\n  checkBlank(data: string) {\n    if (data) {\n      let text = data;\n      return text.replace(/\\&nbsp;/g, '');\n    } else {\n      return '';\n    }\n  }\n\n  /**\n   * It takes a string and returns a string.\n   * @param {any} res - any = {\n   */\n  getFrequencyPlaceholder(frequency: any) {\n    try {\n      const frequencyTime = this.frequencyService.timeIn12(frequency?.time);\n      const frequencyDetails = frequency.pattern.split('~');\n      switch (frequency?.type) {\n        case 'daily':\n          this.getDailyPlaceholder(frequencyDetails, frequencyTime);\n          break;\n        case 'weekly':\n          this.getWeeklyPlaceholder(frequencyDetails, frequencyTime);\n          break;\n        case 'monthly':\n          this.getMonthlyPlaceholder(frequencyDetails, frequencyTime);\n          break;\n        case 'quarterly':\n          this.getQuarterlyPlaceholder(frequencyDetails, frequencyTime);\n          break;\n        case 'biannually':\n          this.getBiannualPlaceholder(frequencyDetails, frequencyTime);\n          break;\n        case 'yearly':\n          this.getYearlyPlaceholder(frequencyDetails, frequencyTime);\n          break;\n        case 'one_time':\n          this.getOneTimePlaceholder(frequencyDetails, frequencyTime);\n          break;\n        case 'random':\n          this.getRandomPlaceholder(frequency, frequencyTime);\n          break;\n        case 'on_complete':\n          this.getOnCompletePlaceholder(frequency, frequencyTime);\n          break;\n        case 10:\n          {\n            this.frequencyPlaceholder =\n              'You have selected an ongoing frequency.';\n          }\n          break;\n        case 'on_completion_of':\n        // this.getOnCompletionOf(\n        //   frequency,\n        //   res?.on_completion_of[0],\n        //   res.onCompletionReportDetails\n        // );\n      }\n\n    } catch (e) {\n      // tslint:disable-next-line: no-console\n      console.error(e);\n    }\n  }\n  /**\n   * It gets the frequency details and report id, then it sets the frequency placeholder to the frequency\n   * details and then it gets the on completion of responsibility and sets the frequency placeholder to\n   * the frequency details and the report name.\n   * @param {any} frequencyDetails - [0] =&gt; \"1\"\n   * @param {number} reportId - number\n   */\n  getOnCompletionOf(\n    frequencyDetails: any,\n    reportId: number,\n    onCompletionReportDetails: any\n  ) {\n    this.frequencyPlaceholder =\n      frequencyDetails[3] +\n      ' ' +\n      (parseInt(frequencyDetails[3]) > 1 ? 'days' : 'day') +\n      ' after completion of ';\n    if (onCompletionReportDetails) {\n      if (reportId === onCompletionReportDetails.ReportId) {\n        this.frequencyPlaceholder =\n          frequencyDetails[3] +\n          ' ' +\n          (parseInt(frequencyDetails[3]) > 1 ? 'days' : 'day') +\n          ' after completion of ' +\n          (onCompletionReportDetails\n            ? onCompletionReportDetails.report_name\n            : '');\n      }\n    }\n    this.loader = false;\n    this.uiKitService.isLoader = false;\n  }\n\n  /**\n   * \"If the frequencyDetails[3] is 1, then set the frequencyPlaceholder to 'Daily by ' + frequencyTime,\n   * otherwise if frequencyDetails[3] is greater than 1, then set the frequencyPlaceholder to 'Every ' +\n   * parseInt(frequencyDetails[3]) + ' days by ' + frequencyTime.\"\n   * @param {any} frequencyDetails - [0, 0, 0, 1]\n   * @param {any} frequencyTime - \"12:00 AM\"\n   */\n  getDailyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    frequencyDetails = frequencyDetails.map(Number)\n    if (frequencyDetails?.day === 1) {\n      this.frequencyPlaceholder = 'Daily by ' + frequencyTime;\n    } else {\n      this.frequencyPlaceholder =\n        'Every ' +\n        frequencyDetails[3] + (frequencyDetails[3] > 1 ? ' days' : ' day') +\n        ' by ' +\n        frequencyTime;\n    }\n\n  }\n\n  /**\n   * It takes a string of comma separated numbers and returns a string of comma separated words.\n   *\n   * The function is called with a string of comma separated numbers, like this:\n   *\n   * getWeeklyPlaceholder([\"1\",\"2,3,4,5,6,7\",\"1\",\"1\"], \"10:00 AM\")\n   *\n   * The function returns a string of comma separated words, like this:\n   *\n   * \"Every Monday,Tuesday,Wednesday,Thursday,Friday,Saturday by 10:00 AM\"</code>\n   * @param {any} frequencyDetails - [\"1\", \"1,2,3,4,5\", \"\", \"1\", \"\"]\n   * @param {any} frequencyTime - \"10:00 AM\"\n   */\n  getWeeklyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    {\n      const selectedDay = frequencyDetails[1].split(',').map((ele: any) => {\n        return this.frequencyService.dayName[parseInt(ele) - 1];\n      });\n\n      if (parseInt(frequencyDetails[3]) === 1) {\n        this.frequencyPlaceholder =\n          'Every ' + selectedDay.join() + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[3]) === 2) {\n        this.frequencyPlaceholder =\n          'Every alternate ' + selectedDay.join() + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[3]) === 3) {\n        this.frequencyPlaceholder =\n          'Every 3rd ' + selectedDay.join() + ' by ' + frequencyTime;\n      }\n      if (parseInt(frequencyDetails[3]) > 3) {\n        this.frequencyPlaceholder =\n          'Every ' +\n          parseInt(frequencyDetails[1]) +\n          'th ' +\n          selectedDay.join() +\n          ' by ' +\n          frequencyTime;\n      }\n    }\n  }\n\n  /**\n   * It takes a string of comma separated numbers, converts them to month names, and then adds them to a\n   * sentence.\n   * @param {any} frequencyDetails - [\"1\", \"1\", \"1,2,3,4,5,6,7,8,9,10,11,12\"]\n   * @param {any} frequencyTime - \"10:00 AM\"\n   */\n  getMonthlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    {\n      const selectedMonth = frequencyDetails[2].split(',').map((ele: any) => {\n        return this.shortMonth[parseInt(ele) - 1];\n      });\n      if (parseInt(frequencyDetails[1]) === 1) {\n        this.frequencyPlaceholder =\n          '1st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 2) {\n        this.frequencyPlaceholder =\n          '2nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 3) {\n        this.frequencyPlaceholder =\n          '3rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (\n        parseInt(frequencyDetails[1]) === 21 ||\n        parseInt(frequencyDetails[1]) === 31\n      ) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'st of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 22) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'nd of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 23) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'rd of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) > 3) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'th of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      }\n    }\n  }\n\n  /**\n   * If the frequencyDetails[1] is 1, 2, 3, 21, 22, 23, or greater than 3, then set the\n   * frequencyPlaceholder to a string that includes the frequencyDetails[1] and the frequencyDetails[2]\n   * and the frequencyTime.\n   * @param {any} frequencyDetails - [\"3\", \"1\", \"1,2,3\"]\n   * @param {any} frequencyTime - \"10:00 AM\"\n   */\n  getQuarterlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    {\n      const quarterly = [\n        'January, April, July, October',\n        'February, May, August, November',\n        ' March, June, September, December',\n      ];\n      if (parseInt(frequencyDetails[1]) === 1) {\n        this.frequencyPlaceholder =\n          '1st of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 2) {\n        this.frequencyPlaceholder =\n          '2nd of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 3) {\n        this.frequencyPlaceholder =\n          '3rd of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (\n        parseInt(frequencyDetails[1]) === 21 ||\n        parseInt(frequencyDetails[1]) === 31\n      ) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'st of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 22) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'nd of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 23) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'rd of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) > 3) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'th of every ' +\n          quarterly[parseInt(frequencyDetails[2].split(',')[0]) - 1] +\n          ' by ' +\n          frequencyTime;\n      }\n    }\n  }\n\n  /**\n   * It takes a string of comma separated numbers and returns a string of comma separated month names.\n   * @param {any} frequencyDetails - [\"1\", \"1\", \"1,2,3,4,5,6,7,8,9,10,11,12\"]\n   * @param {any} frequencyTime - \"10:00 AM\"\n   */\n  getBiannualPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    {\n      const selectedMonth = frequencyDetails[2].split(',').map((ele: any) => {\n        return this.shortMonth[parseInt(ele) - 1];\n      });\n      if (parseInt(frequencyDetails[1]) === 1) {\n        this.frequencyPlaceholder =\n          '1st of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 2) {\n        this.frequencyPlaceholder =\n          '2nd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 3) {\n        this.frequencyPlaceholder =\n          '3rd of every ' + selectedMonth.join(', ') + ' by ' + frequencyTime;\n      } else if (\n        parseInt(frequencyDetails[1]) === 21 ||\n        parseInt(frequencyDetails[1]) === 31\n      ) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'st of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 22) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'nd of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) === 23) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'rd of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      } else if (parseInt(frequencyDetails[1]) > 3) {\n        this.frequencyPlaceholder =\n          parseInt(frequencyDetails[1]) +\n          'th of every ' +\n          selectedMonth.join(', ') +\n          ' by ' +\n          frequencyTime;\n      }\n    }\n  }\n\n  /**\n   * If the frequencyDetails[1] is less than 2, then the frequencyPlaceholder is set to the 1st, 2nd,\n   * 3rd, or nth of every month by frequencyTime.\n   *\n   * If the frequencyDetails[1] is greater than 1, then the frequencyPlaceholder is set to the 1st, 2nd,\n   * 3rd, or nth of every month, Interval: every yearSequence years by frequencyTime.\n   * @param {any} frequencyDetails - [\"Yearly\", \"1\", \"1\", \"1\"]\n   * @param {any} frequencyTime - \"10:00 AM\"\n   */\n  getYearlyPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    {\n      const yearSequence =\n        parseInt(frequencyDetails[3]) > 0 ? parseInt(frequencyDetails[3]) : 1;\n      if (parseInt(frequencyDetails[1]) < 2) {\n        if (parseInt(frequencyDetails[1]) === 1) {\n          this.frequencyPlaceholder =\n            '1st of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 2) {\n          this.frequencyPlaceholder =\n            '2nd of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 3) {\n          this.frequencyPlaceholder =\n            '3rd of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) > 3) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'th of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (\n          parseInt(frequencyDetails[1]) === 31 ||\n          parseInt(frequencyDetails[1]) === 21\n        ) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'st of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 22) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'nd of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 23) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'rd of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n      }\n\n      if (parseInt(frequencyDetails[1]) > 1) {\n        if (parseInt(frequencyDetails[1]) === 1) {\n          // tslint:disable-next-line: max-line-length\n          this.frequencyPlaceholder =\n            '1st ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ', Interval: every ' +\n            yearSequence +\n            ' years by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 2) {\n          // tslint:disable-next-line: max-line-length\n          this.frequencyPlaceholder =\n            '2nd ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ', Interval: every ' +\n            yearSequence +\n            ' years by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 3) {\n          // tslint:disable-next-line: max-line-length\n          this.frequencyPlaceholder =\n            '3rd ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ', Interval: every ' +\n            yearSequence +\n            ' years by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) > 3) {\n          // tslint:disable-next-line: max-line-length\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'th of  ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ', Interval: every ' +\n            yearSequence +\n            ' years by ' +\n            frequencyTime;\n        }\n        if (\n          parseInt(frequencyDetails[1]) === 31 ||\n          parseInt(frequencyDetails[1]) === 21\n        ) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'st of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 22) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'nd of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n        if (parseInt(frequencyDetails[1]) === 23) {\n          this.frequencyPlaceholder =\n            parseInt(frequencyDetails[1]) +\n            'rd of every ' +\n            this.shortMonth[parseInt(frequencyDetails[2]) - 1] +\n            ' by ' +\n            frequencyTime;\n        }\n      }\n    }\n  }\n\n  /**\n   * Generates a placeholder string for one-time frequency events.\n   * \n   * @param {any} frequencyDetails - Array containing frequency details where:\n   *   - frequencyDetails[3]: Day of the month\n   *   - frequencyDetails[2]: Month number (1-12)\n   *   - frequencyDetails[1]: Year\n   * @param {any} frequencyTime - Time string in format 'HH:mm' (e.g. '09:00')\n   * \n   * @example\n   * // For January 15, 2024 at 09:00 AM\n   * getOneTimePlaceholder([null, 2024, 1, 15], '09:00 am')\n   * // Returns: \"One Time 15 January 2024 by 09:00 AM\"\n   */\n  getOneTimePlaceholder(frequencyDetails: any, frequencyTime: any) {\n    const monthName = this.frequencyService.getMonthName(parseInt(frequencyDetails[2]));\n    this.frequencyPlaceholder = 'One Time ' + frequencyDetails[3] + ' ' + monthName + ' ' + frequencyDetails[1] + ' by ' + frequencyTime.toUpperCase();\n  }\n\n  /**\n   * It takes a frequencyDetails array and a frequencyTime array and returns a string.\n   * @param {any} frequencyDetails - [4,1,1,1]\n   */\n  getRandomPlaceholder(frequencyDetails: any, frequencyTime: any) {\n    const quarterly = [\n      'January, April, July, October',\n      'February, May, August, November',\n      ' March, June, September, December',\n    ];\n    const pattern = frequencyDetails?.pattern?.split('~');\n    {\n      switch (parseInt(pattern[1])) {\n        case 1:\n          this.frequencyPlaceholder =\n            'Every week for ' + pattern[3] + ' random instances';\n          break;\n        case 2:\n          this.frequencyPlaceholder =\n            ' Every ' +\n            pattern[2].split(',').map((ele: any) => {\n              return this.shortMonth[parseInt(ele) - 1];\n              // tslint:disable-next-line: align\n            }) +\n            ' for ' +\n            pattern[3] +\n            ' random instances';\n          break;\n        case 3:\n          this.frequencyPlaceholder =\n            'Every ' +\n            quarterly[parseInt(pattern[2].split(',')[0]) - 1] +\n            ' for ' +\n            pattern[3] +\n            ' random instances';\n          break;\n        case 4:\n          this.frequencyPlaceholder =\n            'Every year for ' + pattern[3] + ' random instances';\n      }\n    }\n  }\n\n  getOnCompletePlaceholder(frequencyDetails: any, frequencyTime: any) {\n    const days = frequencyDetails.onComplete.dueAfter > 1 ? 'days' : 'day';\n    this.frequencyPlaceholder = frequencyDetails.onComplete.dueAfter + ' ' + days + ' after completion of ' + this.responsibilityDetails?.onCompletionResponsibility?.title;\n  }\n\n  /**\n   * \"When the user clicks the edit button, the edit button is hidden and the input field is shown.\n   * When the user clicks the input field, the input field is hidden and the edit button is shown.\"\n   * @param {any} event - any - the event that triggered the function\n   */\n  onEditWhat(event: any) {\n    setTimeout(() => {\n      // this will make the execution after the above boolean has changed\n      this.isEditWhat = false;\n      this.whatInput?.nativeElement?.focus();\n    }, 0);\n  }\n\n  /**\n   *\n   * The function is called with a parameter and returns an array of strings.\n   * @param {any} [res] - is the response from the API\n   */\n  getEditMoreOptions(res?: any) {\n    let checkedMoreOptions = [];\n    if (this.responsibilityForm.objective !== '') {\n      checkedMoreOptions.push('OBJECTIVE');\n      this.moreOptions.OBJECTIVE = true;\n    }\n    checkedMoreOptions.push('RISK_CLASSIFICATION');\n    this.moreOptions.RISK_CLASSIFICATION = true;\n\n    if (this.allProgamSelected?.length > 0) {\n      checkedMoreOptions.push('PROGRAM');\n      this.moreOptions.PROGRAM = true;\n    }\n    if (\n      this.responsibilityForm.formatAndEvidence.evidenceRequired ||\n      this.responsibilityForm.formatAndEvidence.formatRequired\n    ) {\n      checkedMoreOptions.push('FORMATE_EVIDENCE');\n      this.moreOptions.FORMATE_EVIDENCE = true;\n    }\n    if (this.responsibilityForm.rc?.length > 0) {\n      checkedMoreOptions.push('RC');\n      this.moreOptions.RC = true;\n    }\n\n    if (this.responsibilityForm.checkpoints?.length > 0) {\n      checkedMoreOptions.push('CHECKPOINTS');\n      this.moreOptions.CHECKPOINTS = true;\n    }\n\n    if (this.responsibilityForm.selectedGRCObjects?.length > 0) {\n      checkedMoreOptions.push('GRC_OBJECTS');\n      this.moreOptions.GRC_OBJECTS = true;\n    }\n\n    if (\n      this.responsibilityForm?.reviewers?.list?.length > 0 ||\n      this.responsibilityForm?.groupReviewers?.list?.length > 0\n    ) {\n      checkedMoreOptions.push('REVIEWER');\n      this.moreOptions.REVIEWER = true;\n    }\n\n    if (\n      this.responsibilityForm?.overseers?.list?.length > 0 ||\n      this.responsibilityForm?.overseers?.notifyList?.length > 0 ||\n      this.responsibilityForm?.overseersGroups?.list?.length > 0 ||\n      this.responsibilityForm?.overseersGroups?.notifyList?.length > 0\n    ) {\n      checkedMoreOptions.push('OVERSEER');\n      this.moreOptions.OVERSEER = true;\n    }\n\n    if (this.responsibilityForm?.assuranceList?.length > 0) {\n      checkedMoreOptions.push('ASSURANCE');\n      this.moreOptions.ASSURANCE = true;\n    }\n\n    if (this.responsibilityForm.requiresAuditList?.length > 0) {\n      checkedMoreOptions.push('REQUIRES_AUDIT');\n      this.moreOptions.REQUIRES_AUDIT = true;\n    }\n\n    if (res.questionnaire_type === 'assessment') {\n      checkedMoreOptions.push('ASSESSMENT');\n      this.moreOptions.ASSESSMENT = true;\n    }\n\n    if (res.questionnaire_type === 'assessment_checkpoint') {\n      checkedMoreOptions.push('CHECKPOINTS_NEW');\n      this.moreOptions.CHECKPOINTS_NEW = true;\n    }\n\n    //if custom fields are present in the responsibility form and custom fields are present in the custom fields list\n    if (this.responsibilityForm.customFields?.length > 0 && this.customFields?.length > 0) {\n      checkedMoreOptions.push('CUSTOM_FIELDS');\n      this.moreOptions.CUSTOM_FIELDS = true;\n    }\n\n    this.populateOption.emit(checkedMoreOptions);\n  }\n\n  // Format & Evidence\n  testFunction() {\n    if (\n      this.responsibilityForm.responsibility.name.trim() !== '' &&\n      this.isEditWhat === false\n    ) {\n      this.isEditWhat = true;\n    }\n    if (this.responsibilityForm.description == '<br>') {\n      this.responsibilityForm.description = '';\n    }\n    if (this.responsibilityForm.objective == '<br>') {\n      this.responsibilityForm.objective = '';\n    }\n  }\n\n  reviewerTypeChange(event: any) {\n    this.responsibilityForm.reviewers.sequentialWorkflow =\n      event === 'SEQUENTIAL' ? true : false;\n  }\n\n  selectedSampleData(event: number) {\n    this.selectedSample = event;\n    this.tempCheckValue = event;\n  }\n\n  /**\n   * It populates a list of assurance categories based on the test plan category selected.\n   * @param {any} testPlanCategory - any\n   */\n  populateAssuranceList(testPlanCategory: any) {\n    this.responsibilityForm.assurance = this.setList(\n      this.assuranceCategoriesList,\n      [testPlanCategory?.category_id],\n      'category_id'\n    );\n    this.responsibilityForm.audit_category_details = testPlanCategory;\n    if (testPlanCategory.sample) {\n      this.isSample = true;\n      this.sampleValue = testPlanCategory.sample;\n      this.selectedSample = 0;\n    }\n\n    if (testPlanCategory.percentage) {\n      this.isSample = true;\n      this.samplePercentage = testPlanCategory.percentage;\n      this.selectedSample = 1;\n    }\n    this.tempCheckValue = this.selectedSample;\n    this.sendAuditRemindersValue = testPlanCategory.frequency_pattern\n      ? parseInt(testPlanCategory.frequency_pattern.split('~')[2])\n      : 2;\n    this.auditTime = moment(\n      testPlanCategory?.frequency_time,\n      'HH:mm:ss'\n    ).format('HH:mm a');\n  }\n\n\n\n  //on sample toggle on/off\n  checkInputValue(event: any) {\n    let key = event.charCode; //         key = event.keyCode;  (Both can be used)\n    return (key > 47 && key < 58) || key == 45;\n  }\n\n  switchEnable(event: boolean) {\n    if (event) {\n      this.selectedSample = this.tempCheckValue;\n    } else {\n      this.selectedSample = -1;\n    }\n  }\n\n  // TODO:  select Assessment list and set id to payload\n  onAssessmentSelect(event: any) {\n    this.isAssessment = false;\n    this.responsibilityForm.assessment = event;\n  }\n  // TODO: Populate assessment data from already selected data\n  /**\n   *\n   * @param assessmentDetails : selected assessment details like it's object id and category_id\n   */\n  getAssessmentDetails(assessmentDetails: any, type?: string) {\n    this.responsibilityService\n      .getAssessmentDetailsByID(assessmentDetails.assessment_id)\n      .subscribe((res: any) => {\n        this.setAssessmentData(res, assessmentDetails, type);\n      });\n  }\n\n  setAssessmentData(res: any, assessmentDetails: any, type?: string) {\n    if (res?.length > 0) {\n      if (type === 'assessment') {\n        const categoryDetails = res[0].category.find(\n          (ele: any) => ele._id == assessmentDetails.category_id\n        );\n        this.moreOptions.ASSESSMENT = true;\n        const assessmentData = {\n          category_id: assessmentDetails.category_id,\n          assessment_id: assessmentDetails.assessment_id,\n          assessmentDetails: {\n            id: assessmentDetails.assessment_id,\n            assessment_name: res[0].assessment_name,\n            questions: res[0].questionsCount,\n          },\n          category_details: categoryDetails,\n        };\n        this.responsibilityForm.assessment = JSON.parse(\n          JSON.stringify(assessmentData)\n        );\n      } else {\n        this.moreOptions.CHECKPOINTS_NEW = true;\n        this.postAssessment({ assessmentDetails: res[0].questions });\n      }\n    }\n  }\n\n  onRemoveCheckpoints(type: string) {\n    this.onRemovingCheckpoint.emit(type);\n  }\n\n  removeCheckpoint() {\n    this.moreOptions.CHECKPOINTS = false;\n    this.responsibilityForm.checkpoints = [];\n  }\n\n  /**\n   *\n   * @param event Assessment details\n   */\n  postAssessment(event: any) {\n    this.responsibilityForm.new_checkpoints = event.assessmentDetails;\n    this.checkpointCount = event.assessmentDetails.elements?.length;\n    this.checkpointCountUpdated.emit(this.checkpointCount);\n    this.setIsUploaded(false);\n  }\n\n  setIsUploaded(event: any) {\n    if (!event) this.activeDeselector();\n    this.authService.previewPanel.next(event);\n  }\n\n  checkDefaultProgramOnRemove(event: any) {\n    this.allProgamSelected = this.allProgamSelected.filter(\n      (program: any) => program?.id !== event?.id\n    );\n    this.removeProgram(event);\n\n  }\n\n  /**\n   * It takes an array of numbers and returns an array of unique numbers.\n   * @param {any} array - The array you want to get the unique values from.\n   * @returns An array of unique values.\n   */\n  getUniqueIds(array: any) {\n    const unique = [...new Set(array)];\n    return unique;\n  }\n\n  openAssigneeChangeConfirmation(event: any) {\n    if (event) {\n      this.responsibilityForm.assignees.whoCanComplete = 'ANY_ONE';\n    } else {\n      this.responsibilityForm.assignees.whoCanComplete = '';\n      this.assigneeTypeChange.emit(true);\n    }\n  }\n\n  /**\n   * If the mode is EDIT, emit the event.\n   * @param {any} event - any - the event that is triggered when the user selects a radio button\n   */\n  onReviewerWorkflowChange(event: any) {\n    this.responsibilityForm.reviewers.sequentialWorkflow =\n      event === 'sequential' ? true : false;\n    if (this.mode === 'EDIT' && this.hasReviewer) {\n      this.onReviewerTypeChange.emit(event);\n    }\n  }\n\n  getOtherGRCObjects(event?: any) {\n    if (this.otherGRCSubscription) {\n      this.otherGRCSubscription.unsubscribe();\n    }\n    if (!event) {\n      event = {\n        rc_ids: '',\n        type: this.selectedGRCTab,\n        state: 1,\n        page: 1,\n      };\n    }\n    if (event?.searchString && this.grcSearchString !== event?.searchString) {\n      this.grcSearchString = event?.searchString;\n      this.getOtherGRCTabCount({\n        rc_ids: '',\n        searchString: this.grcSearchString,\n      });\n    }\n    this.grcLoader = true;\n    event['rc_ids'] = this.getAllRCIds(this.responsibilityForm.rc);\n    event['grcType'] = this.selectedGRCTab;\n    this.otherGRCSubscription = this.grcService\n      .getGRCList(event)\n      .subscribe((data: any) => {\n        this.grcList = data;\n        this.grcLoader = false;\n        if (event?.mode === 'EDIT') {\n          this.responsibilityForm.selectedGRCObjects = data?.data?.filter((item: any) => this.responsibilityForm.selectedGRCObjects.includes(item.grcid));\n          this.setOtherGRCTypesFormate();\n        }\n      });\n  }\n\n  /**\n   * The function `getOtherGRCTabCount` retrieves the count of different types of items (assets,\n   * processes, vendors, inventory) and updates the corresponding tabs with the count.\n   * @param {any} [event] - The \"event\" parameter is an optional parameter that can be passed to the\n   * \"getOtherGRCTabCount\" function. It is of type \"any\", which means it can accept any data type.\n   */\n  getOtherGRCTabCount(event?: any) {\n    if (!event) {\n      event = {};\n    }\n    \n    event['rc_ids'] = this.getAllRCIds(this.responsibilityForm.rc);\n    this.grcTabLoader = true;\n    this.grcService.getGRCTabsCount(event).subscribe((data: any) => {\n      this.otherGRCCard.forEach((tab: any, index: number) => {\n        const OBJECT_LABEL: any = {\n          ASSET: 'Assets',\n          PROCESS: 'Processes',\n          VENDOR: 'Vendors',\n          INVENTORY: 'Inventory',\n        };\n        this.grcTabLoader = false;\n        const TAB_NAME = OBJECT_LABEL[tab?.title?.toUpperCase()];\n        if (TAB_NAME) {\n          tab.title = TAB_NAME;\n          tab.value = index;\n          tab.selectedCount = 0;\n          tab.key = TAB_NAME?.toLowerCase();\n        }\n        const key = `${tab.key}_type_count`;\n        if (data.hasOwnProperty(key)) {\n          tab.count = data[key];\n        }\n      });\n    });\n  }\n\n  getAllRCIds(rcIds: any) {\n    if (!rcIds || !Array.isArray(rcIds) || rcIds.length === 0) {\n      return '';\n    }\n    \n    const allIds: number[] = rcIds.flatMap((rc: any) => {\n      if (!rc) {\n        return [];\n      }\n      \n      const parentIds = (rc.item_parent_ids && Array.isArray(rc.item_parent_ids)) \n        ? rc.item_parent_ids.map(Number) \n        : [];\n      const childIds = (rc.item_child_ids && Array.isArray(rc.item_child_ids)) \n        ? rc.item_child_ids.map(Number) \n        : [];\n      const rcId = Number(rc.rc_id || rc.rcid || rc.item_id || 0);\n      \n      return [\n        ...parentIds,\n        ...childIds,\n        rcId\n      ];\n    });\n\n    const result = this.responsibilityCentersList\n      .filter((rc: any) => {\n        const rcIdToMatch = rc?.rc_id || rc?.rcid || rc?.item_id;\n        return allIds.includes(Number(rcIdToMatch));\n      })\n      .map((ele: any) => ele._id || ele.rcid || ele.item_id)\n      .join(',');\n    \n    return result;\n  }\n\n  setOtherGRCTypesFormate() {\n    const grcTypes = GRC_TYPE_ARRAY;\n    this.resetGRCDataWithTypes();\n    if (this.responsibilityForm?.selectedGRCObjects?.length > 0) {\n      this.responsibilityForm?.selectedGRCObjects?.forEach((item: any) => {\n        this.grcDataWithTypes[grcTypes[item?.type]]?.push(item);\n      });\n    }\n  }\n\n  resetGRCDataWithTypes() {\n    this.grcDataWithTypes = {\n      assets: [],\n      processes: [],\n      vendors: [],\n      inventory: [],\n    };\n  }\n\n  removeOtherGRCObjects(event: any) {\n    const grcTypes = GRC_TYPE_ARRAY;\n    this.responsibilityForm.selectedGRCObjects =\n      this.responsibilityForm?.selectedGRCObjects.filter(\n        (grc: any) => grc?._id !== event?._id\n      );\n    this.filterOtherGRCData(event, grcTypes[event?.type]);\n    this.otherGRCCard[0].selectedCount\n      ? (this.otherGRCCard[event?.type].selectedCount -= 1)\n      : 0;\n  }\n\n  filterOtherGRCData(event: any, type: string) {\n    this.grcDataWithTypes[type] = this.grcDataWithTypes[type]?.filter(\n      (grc: any) => grc?._id !== event?._id\n    );\n  }\n\n  // New Program List\n  programs!: ListItem[]; // Assign mock data\n  selectedPrograms: any = {};\n\n\n  @ViewChild('customItemTemplate', { static: true }) customItemTemplate: TemplateRef<any> | undefined;\n\n\n\n\n  onItemsSelectedChange(items: ListItem[]): void {\n    this.selectedPrograms = items;\n    this.allProgamSelected = ([] as any).concat(...Object.values(items));\n  }\n\n  selectCategory(): void {\n\n    this.selectedCategory = this.selectedPrograms\n    this.generateCustomTags()\n\n  }\n\n  generateCustomTags() {\n    // Ensure customTags exists\n    if (!this.responsibilityForm?.customTags) {\n      this.responsibilityForm.customTags = [];\n    }\n\n    // Prepare existing tags for quick lookup\n    const existingTagsSet = new Set(\n      this.responsibilityForm.customTags\n        .map((tagItem: any) => tagItem.name?.toLowerCase())\n        .filter(Boolean)\n    );\n\n    // Collect new tags\n    const newTags: any[] = [];\n    const programGroups = Object.values(this.selectedPrograms || {});\n\n    programGroups.forEach((programGroup: any) => {\n      if (!Array.isArray(programGroup)) return;\n\n      programGroup.forEach((program: any) => {\n        const customFields = program?.customFields || [];\n        customFields.forEach((tag: string) => {\n          const lowerTag = tag?.toLowerCase?.();\n          if (lowerTag && !existingTagsSet.has(lowerTag)) {\n            newTags.push({\n              name: tag,\n              value: '',\n              programId: program.id,\n            });\n            existingTagsSet.add(lowerTag);\n          }\n        });\n      });\n    });\n\n    // Merge new and existing tags\n    this.responsibilityForm.customTags = [\n      ...newTags,\n      ...this.responsibilityForm.customTags,\n    ];\n  }\n\n\n  get currentUserInfo() {\n    const currentUser = this.authService.getUserDetails()?.user;\n\n    return {\n      member_email: currentUser?.email,\n      member_id: currentUser.id,\n      member_name: currentUser.name,\n      organisation_id: currentUser.organisation_id,\n      uid: currentUser.uid,\n      _id: this.authService.getUserDetails()._id,\n    }\n  }\n\n  removeProgram(program: any): void {\n    const keys = Object.keys(this.selectedPrograms);\n    keys.forEach((key: any) => {\n      const index = this.selectedPrograms[key].findIndex(\n        (item: any) => item?.id === program?.id\n      );\n      if (index !== -1) {\n        this.selectedPrograms[key].splice(index, 1);\n      }\n    });\n  }\n\n  populateResponsibilityDetails() {\n    this.uiKitService.isLoader = false;\n    const res = this.responsibilityDetails;\n    const title = this.isDuplicate ? \"Copy of \" + res?.title : res?.title;\n    const currentsUerInfo = this.currentUserInfo;\n    const assignorId = this.isDuplicate ? currentsUerInfo.uid : res?.assignorId;\n    this.responsibilityId = res?.id;\n\n    this.responsibilityForm = {\n      assignors: {\n        enable: false,\n        list:\n          this.setList(this.assignorsList, [assignorId], 'uid')\n            ?.length > 0\n            ? this.setList(this.assignorsList, [assignorId], 'uid')\n            : [currentsUerInfo],\n      },\n      responsibility: {\n        name: title,\n        keyResponsibility: res?.key,\n      },\n      assignees: {\n        whoCanComplete: res?.assignee?.type.toLowerCase(),\n        list: this.setList(this.assigneesList, res?.assignee?.userId, 'uid'),\n      },\n      assigneeGroups: {\n        whoCanComplete: res?.assignee?.type.toLowerCase(),\n        list: this.setList(\n          this.groupAssigneeList,\n          res?.assignee?.userGroupId,\n          'uid',\n        ),\n      },\n      allowEditDueDate: res?.allowEditDueDate,\n      frequency: res?.frequency,\n      description: res?.notes,\n      objective: res?.objective,\n      rc: (() => {\n        const rcId = res.responsibilityCenter?.id;\n        // After normalisation RCs should always have item_id populated\n        const rcResult = this.setList(\n          this.responsibilityCentersList,\n          rcId ? [rcId] : [],\n          'item_id'\n        );\n        return rcResult;\n      })(),\n      responsibilityCenterType:\n        res.responsibilityCenter?.type === 'all' ? 1 : 0,\n      category: res?.program_cat_ids?.length\n        ? res?.category_ids_array.filter(\n          (ele: any) => !res.program_cat_ids?.includes(ele)\n        )\n        : res?.category_ids_array,\n      program_selected_ids: res?.category_id?.split(',') ?? [],\n      category_id: res?.category_id ?? '',\n\n      program: res?.programDetails?.category_id\n        ? [res?.programDetails]\n        : [],\n      checkpointInstruction: res?.checkpoint_description,\n      customTags: res?.tags,\n      checkpoints: res?.checkpoint_details\n        ? JSON.parse(res?.checkpoint_details)\n        : '',\n      reviewers: {\n        sequentialWorkflow:\n          res?.reviewer?.type == 'sequential' ? true : false,\n        reviewFrequency: {\n          reviewCompleteDays: res?.reviewer?.frequency?.completeBy ?? 2,\n          reviewNOtCompletedDays: res?.reviewer?.frequency?.endAfter ?? 2,\n        },\n        list: this.setList(this.reviewersList, res?.reviewer?.userId, 'uid'),\n      },\n\n      groupReviewers: {\n        sequentialWorkflow: res?.reviewer?.type == 'sequential' ? true : false,\n        reviewFrequency: {\n          reviewCompleteDays: res?.reviewer?.frequency?.completeBy ?? 2,\n          reviewNOtCompletedDays: res?.reviewer?.frequency?.endAfter ?? 2,\n        },\n        list: this.setList(\n          this.groupReviewerList,\n          res?.reviewer?.userGroupId,\n          'uid',\n        ),\n      },\n\n      overseers: {\n        list: res?.overseer\n          ? this.setList(\n            this.overseersList,\n            res?.overseer?.success?.userId,\n            'uid'\n          )\n          : [],\n        notifyList: res?.overseer?.fail?.userId\n          ? this.setList(\n            this.overseersList,\n            res?.overseer?.fail?.userId,\n            'uid'\n          )\n          : [],\n      },\n      formatAndEvidence: {\n        formatRequired:\n          res?.evidence?.format?.data?.length > 0\n            ? true\n            : false,\n        formatFiles: res.evidence?.format?.type === 'file' ? res?.evidence?.format?.data : [],\n        formatLinks: res?.evidence?.format?.type === 'link' ? res?.evidence?.format?.data : [],\n        evidenceRequired: res?.evidence?.required ? true : false,\n      },\n      assuranceList: [],\n      requiresAuditList: [],\n      riskClass: res?.riskClass,\n      selectedGRCObjects: res?.meta?.linkedEntities?.grcObjects ?? [],\n      customFields: this.populateCustomFields(res) ?? [],\n\n    };\n    this.customFields = this.customFields?.filter((ele: any) => !res?.customField?.some((field: any) => field.id === ele.id));\n    const GRC_OBJECTS = res?.meta?.linkedEntities?.grcObjects ?? [];\n    if (GRC_OBJECTS?.length > 0) {\n      this.populateGRCObjectDetails(GRC_OBJECTS);\n    }\n    this.populateFrequencyDetails(res.frequency);\n    this.populateProgramDetails(res);\n    this.getEditMoreOptions(res);\n    this.populateformatDetails(res);\n  }\n\n  //populate custom fields\n  populateCustomFields(res: any) {\n    if (!this.customFields?.length || !res?.customField?.length) return [];\n\n    return res?.customField?.map((ele: any) => {\n      const customField = this.customFields?.find((field: any) => field.id === ele.id);\n      return {\n        name: customField?.name,\n        id: ele.id,\n        value: ele.value,\n      }\n    });\n  }\n\n\n  //populate format Details\n  populateformatDetails(res: any) {\n    const formatObject: any[] = []\n    const formatFiles = res?.evidence?.format?.data ?? [];\n    if (formatFiles?.length === 0) return;\n    formatFiles.forEach((file: any) => {\n      formatObject.push({\n        file_url_path: file?.filePath ?? '',\n        name: file?.name ?? '',\n        org_file: file?.name ?? '',\n        file_name: file?.name ?? '',\n        type: file?.type ?? ''\n      })\n    })\n    this.responsibilityForm.formatAndEvidence.formatFiles = formatObject;\n  }\n\n  //Populate Program Details\n  populateProgramDetails(res: any) {\n    const data = res?.meta?.linkedEntities?.programs ?? {};\n    this.responsibilityForm.customTags = data?.tags ?? [];\n    this.selectedPrograms = this.mapLinkedPrograms(data)\n    if (Object.keys(this.selectedPrograms).length > 0) {\n      this.onItemsSelectedChange(this.selectedPrograms);\n    }\n  }\n\n  populateFrequencyDetails(frequency: any) {\n    const getPattern = this.frequencyService.createFrequencyPattern(frequency);\n    const lifecycleDetails = this.frequencyService.getLifecyclePattern(frequency);\n    frequency.pattern = getPattern;\n    frequency.lifecycle_details = lifecycleDetails.pattern;\n    frequency.start_of_day_utc = lifecycleDetails.startFrom;\n    if (this.responsibilityDetails?.onCompletionResponsibility) {\n      this.responsibilityDetails.onCompletionResponsibility = {\n        ...this.responsibilityDetails?.onCompletionResponsibility,\n        ...frequency.onComplete\n      }\n    }\n    this.frequencyDataPopulation(frequency);\n    this.getFrequencyPlaceholder(frequency);\n  }\n\n  mapLinkedPrograms(programs: {\n    linked: Record<string, number[]>,\n    data: any[]\n  }): Record<string, any[]> {\n    // Build a lookup for fast id → object mapping\n    const programById = new Map<number, any>();\n    for (const program of programs.data) {\n      programById.set(program.id, program);\n    }\n\n    // Map each linked ID group to full program objects\n    const mapped: Record<string, any[]> = {};\n    for (const originId in programs.linked) {\n      mapped[originId] = programs.linked[originId]\n        .map(id => programById.get(id))\n        .filter(Boolean); // remove undefined if id not found\n    }\n\n    return mapped;\n  }\n\n  populateGRCObjectDetails(GRC_OBJECTS: any) {\n    if (GRC_OBJECTS?.length > 0) {\n      this.grcService.getGRCObjectByGRCId(GRC_OBJECTS.map((item: any) => item.grcid).join(',')).subscribe((data: any) => {\n        this.responsibilityForm.selectedGRCObjects = data\n        this.setOtherGRCTypesFormate();\n      });\n    }\n  }\n\n}","<div class=\"workflw-compliance\" *ngIf=\"!showSmiley\">\n  <!-- Behalf -->\n  <div *ngIf=\"mode !== 'EDIT'\" class=\"form-group-row\" [class.active]=\"activeSelector === 'assignors'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'assignors' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"\n        responsibilityForm?.assignors?.list?.length > 0 &&\n        activeSelector !== 'assignors'\n      \">\n      <img [src]=\"ASSETS.im_creating\" alt=\"im\" *ngIf=\"\n          responsibilityForm?.assignors?.list?.length == 0 ||\n          activeSelector === 'assignors'\n        \" />\n\n      <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" *ngIf=\"\n          responsibilityForm?.assignors?.list?.length > 0 &&\n          activeSelector !== 'assignors'\n        \">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">I am creating this responsibility on behalf of someone else\n          <app-cs-switch [ngValue]=\"responsibilityForm.assignors.enable\" (ngValueChange)=\"\n              responsibilityForm.assignors.enable = $event;\n              responsibilityForm.assignors.list = []\n            \">\n          </app-cs-switch>\n        </label>\n        <div class=\"select\" *ngIf=\"\n            responsibilityForm?.assignors?.list?.length === 0 ||\n            activeSelector === 'assignors'\n          \">\n          <input type=\"text\" (click)=\"activateSelector('assignors', true)\"\n            placeholder=\"Who is responsible for managing this responsibility?\" readonly\n            [disabled]=\"!responsibilityForm?.assignors?.enable\" />\n        </div>\n        <div class=\"selected\" *ngIf=\"\n            responsibilityForm?.assignors?.list?.length > 0 &&\n            activeSelector !== 'assignors'\n          \">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <ng-container *ngFor=\"\n                let b_user of responsibilityForm?.assignors?.list?.slice(0, 1)\n              \">\n              <i (click)=\"remove('assignors', b_user)\"\n                class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"b_user.member_name\" placement=\"bottom-left\"\n                delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ b_user.member_name }}</span>\n            </ng-container>\n            <button *ngIf=\"responsibilityForm?.assignors?.list?.length > 1\"\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover (click)=\"behalf.popover()\" placement=\"right\">\n              +{{ responsibilityForm?.assignors?.list?.slice(1).length }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                      <span class=\"chip\" *ngFor=\"let b_user of responsibilityForm?.assignors?.list?.slice(0,2)\"><i\n                              class=\"icons\" (click)=\"remove('assignors',b_user)\">&#xe90d;</i>\n                          {{b_user.member_name}}</span>\n                      <button class=\"count\" *ngIf=\"responsibilityForm?.assignors?.list?.length > 2\" type=\"button\"\n                          appPopover (click)=\"behalf.popover()\" placement=\"right\">+\n                          {{responsibilityForm?.assignors?.list?.slice(2).length}}</button>\n                  </div> -->\n          <button *ngIf=\"activeSelector !== 'assignors'\" class=\"edit\" type=\"button\"\n            (click)=\"activateSelector('assignors', true)\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <app-popover #behalf [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let b_user of responsibilityForm?.assignors?.list | slice : 2;\n                  let j = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('assignors', b_user)\">&#xe90d;</i>\n                    {{ b_user.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <p *ngIf=\"invalidType === 'whom'\" [appScrollInView]=\"true\" class=\"error-message\">\n          Please select the person responsible for managing this responsibility.\n        </p>\n      </div>\n    </div>\n  </div>\n\n  <!-- What -->\n  <div class=\"form-group-row\" [class.active]=\"activeSelector === 'framework'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'responsibilityName' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"\n        responsibilityForm?.responsibility?.name.trim() !== '' &&\n        !focus.responsibilityName\n      \">\n      <img [src]=\"ASSETS.what\" alt=\"im\" *ngIf=\"\n          responsibilityForm?.responsibility?.name.trim() === '' ||\n          focus.responsibilityName\n        \" />\n\n      <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" *ngIf=\"\n          responsibilityForm?.responsibility?.name.trim() !== '' &&\n          !focus.responsibilityName\n        \">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">\n          What? <span class=\"required\">*</span>\n          <button *ngIf=\"\n              isFrameworkAvailable &&\n              mode !== 'EDIT' &&\n              openedFrom !== 'RISK_TREATMENT' &&\n              assessmentDetails?.assessment_type !== 'compliance_audit'\n            \" (click)=\"activateSelector('framework', true)\" class=\"button\">\n            Select From A framework\n          </button>\n        </label>\n        <span *ngIf=\"responsibilityForm?.responsibility?.keyResponsibility\" class=\"indicator\"\n          [appTooltip]=\"'This responsibility is marked as key responsibility.'\" placement=\"bottom\" type=\"black\"\n          delay=\"0\" [tooltipMandatory]=\"true\">\n          <i class=\"icons\">&#xea70;</i>\n        </span>\n        <input *ngIf=\"\n            responsibilityForm?.responsibility?.name.trim() == '' || !isEditWhat\n          \" type=\"text\" [ngModel]=\"responsibilityForm.responsibility.name\" placeholder=\"What is the responsibility?\"\n          (change)=\"whatChanged($event)\" (focusin)=\"activateSelector('responsibilityName', true)\"\n          (focusout)=\"activeDeselector()\" (clickOutside)=\"testFunction()\" #what />\n        <div class=\"selected\" *ngIf=\"\n            responsibilityForm?.responsibility?.name.trim() != '' && isEditWhat\n          \">\n          <div class=\"chip-container\">\n            <span class=\"value\">{{\n              responsibilityForm.responsibility?.name\n              }}</span>\n          </div>\n          <button *ngIf=\"assessmentDetails?.assessment_type !== 'compliance_audit'\" class=\"edit\" type=\"button\"\n            (click)=\"onEditWhat($event)\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <p *ngIf=\"invalidType === 'what'\" [appScrollInView]=\"true\" class=\"error-message\">\n          Please enter a name for this responsibility.\n        </p>\n        <div class=\"switch-row align-right\">\n          <app-cs-switch [ngValue]=\"responsibilityForm.responsibility?.keyResponsibility\" (ngValueChange)=\"\n              responsibilityForm.responsibility.keyResponsibility = $event\n            \">Key Responsibility\n          </app-cs-switch>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <!-- Who -->\n  <div class=\"form-group-row\" [class.active]=\"activeSelector === 'assignees'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'assignees' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"\n        responsibilityForm?.assignees?.list?.length > 0 &&\n        activeSelector !== 'assignees'\n      \">\n      <img [src]=\"ASSETS.case_assignees\" alt=\"im\" *ngIf=\"\n          responsibilityForm?.assignees?.list?.length == 0 ||\n          activeSelector === 'assignees'\n        \" />\n\n      <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" *ngIf=\"\n          responsibilityForm?.assignees?.list?.length > 0 &&\n          activeSelector !== 'assignees'\n        \">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <div class=\"edit-due-date\">\n          <label class=\"vx-control-panel\">Who? <span class=\"required\">*</span></label>\n          <div *ngIf=\"allowEditDueDateFeatureFlag && false\" class=\"switch-row align-right\">\n            <app-cs-switch [ngValue]=\"responsibilityForm.allowEditDueDate\"\n              (ngValueChange)=\"responsibilityForm.allowEditDueDate = $event\">ALLOW ASSIGNEE TO EDIT COMPLETED WORK<i\n                class=\"icons\" [appTooltip]=\"\n                  'If it’s enabled, the assignee will have the option to modify a previously completed due date.'\n                \" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n            </app-cs-switch>\n          </div>\n        </div>\n        <div class=\"select vx-mt-0\" *ngIf=\"\n            responsibilityForm?.assignees?.list?.length == 0 &&\n            (!featureFlag_groups ||\n              (responsibilityForm?.assigneeGroups?.list?.length == 0 &&\n                featureFlag_groups))\n          \">\n          <input type=\"text\" (click)=\"activateSelector('assignees', true)\"\n            placeholder=\"Who is responsible for completing the responsibility?\" readonly />\n        </div>\n\n        <div class=\"selected\" *ngIf=\"\n            (responsibilityForm?.assignees?.list?.length > 0 &&\n              !featureFlag_groups) ||\n            ((responsibilityForm?.assignees?.list?.length > 0 ||\n              responsibilityForm?.assigneeGroups?.list?.length > 0) &&\n              featureFlag_groups)\n          \">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngIf=\"!featureFlag_groups\">\n            <ng-container *ngFor=\"\n                let e_user of responsibilityForm?.assignees?.list?.slice(0, 1)\n              \">\n              <i (click)=\"remove('assignees', e_user)\"\n                class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"e_user.member_name\" placement=\"bottom-left\"\n                delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ e_user.member_name }}</span>\n            </ng-container>\n            <button\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenbg\"\n              appPopover (click)=\"assignees.popover()\" placement=\"right\"\n              *ngIf=\"responsibilityForm?.assignees?.list?.length > 1\">\n              +{{ responsibilityForm?.assignees?.list?.slice(1).length }}\n            </button>\n          </div>\n\n          <div class=\"vx-d-flex vx-align-center\" *ngIf=\"featureFlag_groups\">\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"responsibilityForm?.assignees?.list?.length > 0\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove('assignees', responsibilityForm?.assignees?.list[0])\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  responsibilityForm?.assignees?.list[0]?.employee_name\n                \" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">{{\n                responsibilityForm?.assignees?.list[0]?.employee_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                appPopover (click)=\"user.popover()\" placement=\"left\"\n                *ngIf=\"responsibilityForm?.assignees?.list?.length > 1\">\n                +{{ responsibilityForm?.assignees?.list?.length - 1 }}\n              </button>\n            </div>\n            <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"\n                responsibilityForm?.assignees?.list?.length > 0 &&\n                responsibilityForm?.assigneeGroups?.list?.length > 0\n              \">&</span>\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"responsibilityForm?.assigneeGroups?.list?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    'groupassignees',\n                    responsibilityForm?.assigneeGroups?.list[0]\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  responsibilityForm?.assigneeGroups?.list[0]?.group_name\n                \" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">{{\n                responsibilityForm?.assigneeGroups?.list[0]?.group_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"group.popover()\" placement=\"right\"\n                *ngIf=\"responsibilityForm?.assigneeGroups?.list?.length > 1\">\n                +{{ responsibilityForm?.assigneeGroups?.list?.length - 1 }}\n              </button>\n            </div>\n          </div>\n\n          <!-- <div class=\"chip-container\" [class.more-one]=\"responsibilityForm?.assignees?.length>1\" [class.plus]=\"responsibilityForm?.assignees?.length>2\" *ngIf=\"!featureFlag_groups\">\n                      <span class=\"chip\" *ngFor=\"let e_user of responsibilityForm?.assignees?.list?.slice(0,2)\"><i\n                              class=\"icons\" (click)=\"remove('assignees',e_user)\">&#xe90d;</i>\n                          {{e_user.member_name}}</span>\n                      <button class=\"count\" *ngIf=\"responsibilityForm?.assignees?.list?.length > 2\" type=\"button\"\n                          appPopover (click)=\"assignees.popover()\" placement=\"right\">+\n                          {{responsibilityForm?.assignees?.list?.slice(2).length}}</button>\n                  </div> -->\n          <!-- <div class=\"chip-container\" *ngIf=\"featureFlag_groups\">\n                      <div class=\"chip-inner\" *ngIf=\"responsibilityForm?.assignees?.list?.length > 0\" >\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove('assignees',responsibilityForm?.assignees?.list[0])\" >&#xe90d;</i>\n                          <span class=\"chip\" [appTooltip]=\"responsibilityForm?.assignees?.list[0]?.employee_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500\">{{responsibilityForm?.assignees?.list[0]?.employee_name}}</span></span>\n                          <button *ngIf=\"responsibilityForm?.assignees?.list?.length > 1\" class=\"count user\" appPopover (click)=\"user.popover()\" placement=\"left\"> +{{responsibilityForm?.assignees?.list?.length -1}}</button>\n                      </div>\n                      <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"  *ngIf=\"responsibilityForm?.assignees?.list?.length > 0 && responsibilityForm?.assigneeGroups?.list?.length > 0\" >&</span>\n                      <div class=\"chip-inner\" *ngIf=\"responsibilityForm?.assigneeGroups?.list?.length\" >\n                          <i *ngIf=\"(!allGroupAssignee || mode !== 'EDIT')\" class=\"icons cross vx-mr-1\" (click)=\"remove('groupassignees',responsibilityForm?.assigneeGroups?.list[0])\" >&#xe90d;</i>\n                          <span class=\"chip\" [appTooltip]=\"responsibilityForm?.assigneeGroups?.list[0]?.group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500\">{{responsibilityForm?.assigneeGroups?.list[0]?.group_name}}</span></span>\n                          <button *ngIf=\"responsibilityForm?.assigneeGroups?.list?.length > 1\" class=\"count\" appPopover (click)=\"group.popover()\" placement=\"right\">+{{responsibilityForm?.assigneeGroups?.list?.length - 1}}</button>\n                      </div>\n                  </div> -->\n          <button *ngIf=\"activeSelector !== 'assignees'\" class=\"edit\" type=\"button\"\n            (click)=\"activateSelector('assignees', true)\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <app-popover #user [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let e_user of responsibilityForm?.assignees?.list | slice : 1\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('assignees', e_user)\">&#xe90d;</i>\n                    {{ e_user.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #group [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let group of responsibilityForm?.assigneeGroups?.list\n                    | slice : 1\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i *ngIf=\"\n                        !featureFlag_groups ||\n                        (featureFlag_groups &&\n                          (!allGroupAssignee || mode !== 'EDIT'))\n                      \" class=\"icons\" (click)=\"remove('groupassignees', group)\">&#xe90d;</i>\n                    {{ group.group_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n\n        <p *ngIf=\"invalidType === 'who'\" [appScrollInView]=\"true\" class=\"error-message\">\n          Please select the person responsible for completing this\n          responsibility.\n        </p>\n        <ng-container *ngIf=\"!isGroupAssigned\">\n\n          <app-cs-radio *ngIf=\"mode !== 'EDIT'\" (checkedEvent)=\"\n              responsibilityForm.assignees.whoCanComplete = 'ANY_ONE'\n            \" [checked]=\"responsibilityForm.assignees.whoCanComplete == 'ANY_ONE'\" [name]=\"'what'\">ANY SELECTED PERSON\n            CAN COMPLETE THIS\n            <i class=\"icons\" [appTooltip]=\"\n                'If selected, only one responsibility will be created.'\n              \" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n          </app-cs-radio>\n\n          <app-cs-radio *ngIf=\"mode !== 'EDIT'\" (checkedEvent)=\"responsibilityForm.assignees.whoCanComplete = 'ALL'\"\n            [checked]=\"responsibilityForm.assignees.whoCanComplete == 'ALL'\" [name]=\"'what'\">ALL SELECTED PERSONS NEED\n            TO COMPLETE THIS<i class=\"icons\" [appTooltip]=\"\n              'If selected, separate responsibilities will be created for each person.'\n            \" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n          </app-cs-radio>\n\n          <div class=\"switch-row align-right\" *ngIf=\"\n              mode == 'EDIT' &&\n              (!featureFlag_groups ||\n                (responsibilityForm?.assigneeGroups?.list.length === 0 &&\n                  featureFlag_groups))\n            \">\n            <app-cs-switch (ngValueChange)=\"openAssigneeChangeConfirmation($event)\" [ngValue]=\"\n                responsibilityForm.assignees.whoCanComplete == 'ANY_ONE'\n              \">\n              ANY SELECTED PERSON CAN COMPLETE THIS\n            </app-cs-switch>\n          </div>\n        </ng-container>\n        <app-popover #assignees [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let e_user of responsibilityForm?.assignees?.list | slice : 1;\n                  let j = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('assignees', e_user)\">&#xe90d;</i>\n                    {{ e_user.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n    </div>\n  </div>\n\n  <!-- When? -->\n  <div class=\"form-group-row\" [class.active]=\"activeSelector === 'frequency'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'frequency' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"\n        !responsibilityForm?.frequency || activeSelector === 'frequency'\n      \">\n      <img [src]=\"ASSETS.when\" alt=\"im\" *ngIf=\"!responsibilityForm?.frequency || activeSelector === 'frequency'\" />\n\n      <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" *ngIf=\"\n          responsibilityForm?.frequency &&\n          activeSelector !== 'frequency' &&\n          responsibilityForm?.frequency != '' &&\n          responsibilityForm?.frequency != '5~0~0~0'\n        \">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">When? <span class=\"required\">*</span></label>\n        <div *ngIf=\"\n            responsibilityForm?.frequency == '' ||\n            responsibilityForm?.frequency == '5~0~0~0'\n          \" class=\"select button-sec\">\n          <input type=\"text\" (click)=\"activateSelector('frequency', true)\" [placeholder]=\"frequencyPlaceholder\"\n            readonly />\n          <button (click)=\"activateSelector('frequency', true)\" type=\"button\">\n            Set A frequency\n          </button>\n        </div>\n        <div *ngIf=\"\n            responsibilityForm?.frequency != '' &&\n            responsibilityForm?.frequency !== '5~0~0~0'\n          \" class=\"selected button-sec\">\n          <span class=\"chip\" [appTooltip]=\"frequencyPlaceholder\" placement=\"bottom-left\" delay=\"0\" type=\"black\"\n            [tooltipMandatory]=\"false\">{{ frequencyPlaceholder }}</span>\n          <button *ngIf=\"activeSelector !== 'frequency'\" type=\"button\" class=\"edit\"\n            (click)=\"activateSelector('frequency', true)\">\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n        <p *ngIf=\"invalidType === 'when'\" [appScrollInView]=\"true\" class=\"error-message\">\n          Please select the frequency of occurrence for this responsibility.\n        </p>\n      </div>\n    </div>\n  </div>\n\n  <!-- Notes -->\n  <div class=\"form-group-row\" [class.active]=\"activeSelector === 'notes'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'notes' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"\n        checkBlank(responsibilityForm?.description).trim() !== '' &&\n        !focus.description\n      \">\n      <img [src]=\"ASSETS.notes\" alt=\"im\" *ngIf=\"\n          checkBlank(responsibilityForm?.description).trim() === '' ||\n          focus.description\n        \" />\n\n      <svg class=\"checkIcon\" *ngIf=\"\n          checkBlank(responsibilityForm?.description).trim() !== '' &&\n          !focus.description\n        \" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Notes</label>\n        <vcomply-editor [(ngModel)]=\"responsibilityForm.description\" [editorConfig]=\"{\n            mode: 'prime',\n            colorPalette: true,\n            link: true,\n            id: 'notes',\n            placeholder:\n              'Add more information about completing the responsibility'\n          }\"></vcomply-editor>\n      </div>\n    </div>\n  </div>\n\n  <!-- Objective -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"moreOptions?.OBJECTIVE\" [attr.id]=\"'OBJECTIVE'\"\n    [class.active]=\"activeSelector === 'objective'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'objective' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"\n        checkBlank(responsibilityForm?.objective).trim() !== '' &&\n        !focus.objective\n      \">\n      <img [src]=\"ASSETS.objectives\" alt=\"im\" *ngIf=\"\n          checkBlank(responsibilityForm?.objective).trim() === '' ||\n          focus.objective\n        \" />\n\n      <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" *ngIf=\"\n          checkBlank(responsibilityForm?.objective).trim() !== '' &&\n          !focus.objective\n        \">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Objective</label>\n        <vcomply-editor [(ngModel)]=\"responsibilityForm.objective\" [editorConfig]=\"{\n            mode: 'prime',\n            colorPalette: true,\n            id: 'objective',\n            link: true,\n            placeholder:\n              'This option lets you specify an objective for the responsibility.'\n          }\"></vcomply-editor>\n      </div>\n    </div>\n  </div>\n\n  <!-- Responsibility Center -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"moreOptions?.RC\" [attr.id]=\"'RC'\"\n    [class.active]=\"activeSelector === 'rc'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'rc' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"\n        responsibilityForm?.rc?.length > 0 && activeSelector !== 'rc'\n      \">\n      <img [src]=\"ASSETS.responsibility_center\" alt=\"\"\n        *ngIf=\"responsibilityForm?.rc?.length == 0 || activeSelector === 'rc'\" />\n\n      <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\n        *ngIf=\"responsibilityForm?.rc?.length > 0 && activeSelector !== 'rc'\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Responsibility Center </label>\n\n        <div class=\"select\" *ngIf=\"responsibilityForm?.rc?.length === 0\">\n          <div class=\"custom-input\" (click)=\"activateSelector('rc', true)\"\n            aria-placeholder=\"Select the responsibility center or the responsibility centers for this responsibility.\">\n          </div>\n          <!-- <input type=\"text\" (click)=\"activateSelector('rc',true)\" placeholder=\"Select Responsibility Center(s)\" readonly> -->\n        </div>\n\n        <div class=\"selected\" *ngIf=\"responsibilityForm?.rc?.length > 0\"\n          [class.readOnly]=\"openedFrom === 'RISK_TREATMENT'\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            *ngFor=\"let rc of responsibilityForm?.rc?.slice(0, 1)\">\n            <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"remove('rc', rc)\"\n              *ngIf=\"openedFrom !== 'RISK_TREATMENT'\">&#xe9ae;</i>\n            <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"rc?.item_name\" placement=\"bottom-left\" delay=\"0\"\n              type=\"black\" [tooltipMandatory]=\"false\">{{ rc?.item_name }}</span>\n            <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              *ngIf=\"responsibilityForm?.rc?.length > 1\" appPopover (click)=\"rcPopover.popover()\" placement=\"left\">\n              +{{ responsibilityForm?.rc?.slice(1).length }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\" [class.more-one]=\"responsibilityForm?.rc?.length>1\" [class.plus]=\"responsibilityForm?.rc?.length>2\">\n                      <span class=\"chip\" *ngFor=\"let rc of responsibilityForm?.rc?.slice(0,2)\"><i class=\"icons\" (click)=\"remove('rc',rc)\" *ngIf=\"openedFrom !== 'RISK_TREATMENT'\">&#xe90d;</i>{{rc?.item_name}}</span>\n                      <button class=\"count\" *ngIf=\"responsibilityForm?.rc?.length > 2\" type=\"button\" appPopover (click)=\"rc.popover()\" placement=\"right\" placement=\"right\">+{{responsibilityForm?.rc?.slice(2).length}}</button>\n                  </div> -->\n\n          <button *ngIf=\"activeSelector !== 'rc' && openedFrom !== 'RISK_TREATMENT'\" class=\"edit\" type=\"button\"\n            (click)=\"activateSelector('rc', true)\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <app-popover #rcPopover [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let rc of responsibilityForm?.rc | slice : 1;\n                  let j = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('rc', rc)\">&#xe90d;</i>\n                    {{ rc.item_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n\n        <ng-container *ngIf=\"\n            isResponsibilityRcLinkEnabled &&\n            (mode != 'EDIT' || responsibilityForm?.rc?.length <= 1)\n          \">\n          <!-- <app-cs-radio><div [appTooltip]=\"'Create separate responsibilities for each responsibility center'\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\">CREATE SEPARATE RESPONSIBILITIES FOR EACH RESPONSIBILITY CEN…</div><i class=\"icons\" [appTooltip]=\"'If selected, separate responsibilities will be created for each Responsibility Center.'\" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe91f;</i></app-cs-radio> -->\n          <app-cs-radio [class.disabled]=\"\n          mode == 'EDIT' &&\n          responsibilityForm.responsibilityCenterType === 1 &&\n          responsibilityForm?.rc?.length > 1\n        \" [checked]=\"responsibilityCenterType === 1\" [name]=\"'ff_responsibility_rc_link'\"\n            (checkedEvent)=\"onRcTypeChange(1)\">DISPLAY THE SAME RESPONSIBILITY IN ALL RESPONSIBILITY CENTERS<i\n              class=\"icons\" [appTooltip]=\"\n            'If selected, the same responsibility will be linked to each Responsibility Center.'\n          \" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe91f;</i></app-cs-radio>\n          <app-cs-radio [class.disabled]=\"\n              mode == 'EDIT' &&\n              responsibilityForm.responsibilityCenterType === 1 &&\n              responsibilityForm?.rc?.length > 1\n            \" [checked]=\"responsibilityCenterType === 0\" [name]=\"'ff_responsibility_rc_link'\"\n            (checkedEvent)=\"onRcTypeChange(0)\">\n            <div class=\"rc-radio-text\" [appTooltip]=\"\n                'Create separate responsibilities for each responsibility centers'\n              \" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\">\n              CREATE SEPARATE RESPONSIBILITIES FOR EACH RESPONSIBILITY CEN…\n            </div>\n            <i class=\"icons\" [appTooltip]=\"\n                'If selected, separate responsibilities will be created for each Responsibility Center.'\n              \" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n          </app-cs-radio>\n\n        </ng-container>\n      </div>\n    </div>\n  </div>\n\n  <!-- Program -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"moreOptions?.PROGRAM\" [attr.id]=\"'PROGRAM'\"\n    [class.active]=\"activeSelector === 'program'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'program' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"\n        responsibilityForm?.program?.length > 0 && activeSelector !== 'program'\n      \">\n      <img [src]=\"ASSETS.case_category\" alt=\"\" *ngIf=\"\n          (responsibilityForm?.program?.length == 0 ||\n            activeSelector === 'program') &&\n          allProgamSelected?.length == 0\n        \" />\n\n      <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" *ngIf=\"\n          (responsibilityForm?.program?.length > 0 &&\n            activeSelector !== 'program') ||\n          allProgamSelected?.length > 0\n        \">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Program</label>\n        <div class=\"select\" *ngIf=\"allProgamSelected?.length == 0\">\n          <div class=\"custom-input\" (click)=\"activateSelector('program', true)\"\n            aria-placeholder=\"Select the Program or Program Categories that this responsibility relates to.\"></div>\n          <!-- <input type=\"text\" (click)=\"activateSelector('program',true)\" placeholder=\"Select Responsibility program(s)\" readonly> -->\n        </div>\n        <div class=\"selected\" *ngIf=\"allProgamSelected?.length > 0\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <ng-container>\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" *ngIf=\"\n                  !hiddenList?.includes('PROGRAM') &&\n                  !program?.isViewOnlyProgram\n                \" (click)=\"remove('program', allProgamSelected[0])\">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"allProgamSelected[0]?.name ?? '--'\"\n                placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ allProgamSelected[0]?.name\n                ?? \"--\" }}</span>\n            </ng-container>\n            <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover (click)=\"program.popover()\" placement=\"right\" *ngIf=\"allProgamSelected?.length > 1\">\n              +{{ allProgamSelected?.length - 1 }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\" [class.more-one]=\"responsibilityForm?.program?.length>1\" [class.plus]=\"responsibilityForm?.program?.length>2\">\n                              <span class=\"chip\" *ngFor=\"let program of responsibilityForm?.program\"><i class=\"icons\" *ngIf=\"feature.isFeatureEnabled('ff_deprecate_primary_program_flag')\" (click)=\"remove('program',program)\">&#xe90d;</i> {{program?.name??'--'}}</span>\n                              <!- - <button *ngIf=\"responsibilityForm?.program?.length > 2\" class=\"count\" type=\"button\" appPopover (click)=\"program.popover()\" placement=\"right\">+ {{responsibilityForm?.program?.slice(2).length}}</button> - ->\n                              <button *ngIf=\"responsibilityForm?.linkedProgram?.length > 1\" class=\"count\" type=\"button\" appPopover (click)=\"program.popover()\" placement=\"right\">+ {{responsibilityForm?.linkedProgram?.length - 1}}</button>\n                          </div> -->\n\n          <button *ngIf=\"\n              activeSelector !== 'program' && !hiddenList.includes('PROGRAM')\n            \" class=\"edit\" type=\"button\" (click)=\"activateSelector('program', true)\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n\n        <app-popover #program [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let program of allProgamSelected | slice : 1;\n                  let j = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\" [appTooltip]=\"program?.name\" placement=\"bottom\" type=\"black\" delay=\"0\"\n                    [tooltipMandatory]=\"false\">\n                    <i *ngIf=\"\n                        !hiddenList?.includes('PROGRAM') &&\n                        !program?.isViewOnlyProgram\n                      \" class=\"icons\" (click)=\"remove('program', program)\">&#xe90d;</i>\n                    {{ program?.name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <div *ngIf=\"responsibilityForm?.customTags?.length > 0\">\n          <ng-container *ngFor=\"let tag of responsibilityForm?.customTags\">\n            <ng-container *ngIf=\"tag?.name?.trim()\">\n              <label class=\"vx-control-panel vx-mt-2\">{{\n                tag?.name\n                }}</label>\n              <input type=\"text\" [(ngModel)]=\"tag.value\" placeholder=\"{{ tag?.name }}\" />\n            </ng-container>\n          </ng-container>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <!-- Format & Evidence -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"moreOptions?.FORMATE_EVIDENCE\"\n    [attr.id]=\"'FORMATE_EVIDENCE'\" [class.active]=\"activeSelector === 'formate_evidence'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'formate_evidence' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img *ngIf=\"\n          this.responsibilityForm.formatAndEvidence.evidenceRequired == false &&\n          this.responsibilityForm.formatAndEvidence.formatFiles.length == 0 &&\n          this.responsibilityForm.formatAndEvidence.formatLinks?.length == 0\n        \" [src]=\"ASSETS.format_evidence\" alt=\"im\" />\n\n      <svg *ngIf=\"\n          this.responsibilityForm.formatAndEvidence.evidenceRequired ||\n          this.responsibilityForm.formatAndEvidence.formatFiles.length ||\n          this.responsibilityForm.formatAndEvidence.formatLinks?.length\n        \" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <app-format-and-evidence (updateFiles)=\"saveSelectedList('formate_evidence', $event)\" [mode]=\"'responsibility'\"\n        [formatEvidanceData]=\"responsibilityForm?.formatAndEvidence\" [organization_id]=\"organizationId\"\n        [orgDetails]=\"orgDetails\">\n      </app-format-and-evidence>\n    </div>\n  </div>\n\n  <!-- Assessment -->\n  <div *ngIf=\"moreOptions?.ASSESSMENT\" [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\"\n    [attr.id]=\"'ASSESSMENT'\" [class.active]=\"activeSelector === 'isAssessment'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'isAssessment' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"responsibilityForm.assessment?.assessment_id\">\n      <img *ngIf=\"!responsibilityForm.assessment?.assessment_id\" [src]=\"ASSETS.assessments\" alt=\"im\" />\n\n      <svg *ngIf=\"responsibilityForm.assessment?.assessment_id\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">ASSESSMENTS</label>\n        <div *ngIf=\"!responsibilityForm.assessment?.assessment_id\" class=\"select\">\n          <input type=\"text\" (click)=\"\n              activateSelector('isAssessment', true); isAssessment = true\n            \" placeholder=\"Select an assessment for this responsibility\"\n            [disabled]=\"responsibilityForm.checkpoints?.length\" readonly />\n        </div>\n        <div class=\"selected\" *ngIf=\"responsibilityForm.assessment?.assessment_id\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i *ngIf=\"assessmentDetails?.assessment_type !== 'compliance_audit'\"\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"remove('assessment', category)\">&#xe9ae;</i>\n            <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                responsibilityForm.assessment?.assessmentDetails\n                  ?.assessment_name\n              \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n              responsibilityForm.assessment?.assessmentDetails\n              ?.assessment_name\n              }}</span>\n            <div class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-ml-1 vx-text-center\">\n              {{ responsibilityForm.assessment?.assessmentDetails?.questions }}\n              {{\n              responsibilityForm.assessment?.assessmentDetails?.questions > 1\n              ? \"Questions\"\n              : \"Question\"\n              }}\n            </div>\n          </div>\n\n          <button *ngIf=\"assessmentDetails?.assessment_type !== 'compliance_audit'\" (click)=\"\n              activateSelector('isAssessment', true); isAssessment = true\n            \" class=\"edit\" type=\"button\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <!-- Checkpoints -->\n  <!-- *ngIf=\"moreOptions.checkpoints\" -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"moreOptions?.CHECKPOINTS\"\n    [attr.id]=\"'CHECKPOINTS'\" [class.active]=\"activeSelector === 'checkpoints'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'checkpoints' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\">\n      <img [src]=\"ASSETS.checkpoints\" alt=\"im\" *ngIf=\"\n          responsibilityForm?.checkpoints?.length == 0 ||\n          activeSelector === 'checkpoints'\n        \" />\n\n      <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" *ngIf=\"\n          responsibilityForm?.checkpoints?.length > 0 &&\n          activeSelector !== 'checkpoints'\n        \">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">\n          <!-- {{responsibilityForm.checkpoints|json}}\n                {{responsibilityForm.checkpointInstruction}} -->\n\n          Checkpoints\n          <!-- <button *ngIf=\"responsibilityForm?.checkpoints?.length === 0\" class=\"button\"\n                      (click)=\"activateSelector('checkpoints',true)\">+ Add Checkpoints</button> -->\n        </label>\n        <div class=\"select button-sec\" *ngIf=\"responsibilityForm?.checkpoints?.length === 0\">\n          <input [disabled]=\"!responsibilityForm.checkpoints?.length\" type=\"text\"\n            (click)=\"activateSelector('checkpoints', true)\" placeholder=\"Add checkpoints for this responsibility\"\n            readonly />\n          <button [disabled]=\"!responsibilityForm.checkpoints?.length\" (click)=\"activateSelector('checkpoints', true)\"\n            type=\"button\">\n            Add Checkpoints\n          </button>\n        </div>\n        <div class=\"selected\" *ngIf=\"responsibilityForm.checkpoints?.length > 0\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <ng-container *ngFor=\"\n                let checkpoint of responsibilityForm.checkpoints?.slice(0, 1)\n              \">\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"checkpoint?.label\" placement=\"bottom-left\"\n                delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ checkpoint?.label }}</span>\n            </ng-container>\n            <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover (click)=\"checkpoint.popover()\" placement=\"right\"\n              *ngIf=\"responsibilityForm.checkpoints?.length > 1\">\n              +{{ responsibilityForm.checkpoints?.length - 1 }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container checkpoints\" [class.more-one]=\"responsibilityForm.checkpoints?.length>1\" [class.plus]=\"responsibilityForm.checkpoints?.length>2\">\n                      <span class=\"chip\" *ngFor=\"let checkpoint of responsibilityForm.checkpoints?.slice(0,1)\">{{checkpoint?.label}}</span>\n                      <button class=\"count\" *ngIf=\"responsibilityForm.checkpoints?.length > 1\" type=\"button\" appPopover (click)=\"checkpoint.popover()\" placement=\"right\">+{{responsibilityForm.checkpoints?.length- 1}}</button>\n                  </div> -->\n\n          <button *ngIf=\"activeSelector !== 'checkpoints'\" class=\"edit\" type=\"button\"\n            (click)=\"activateSelector('checkpoints', true)\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </div>\n      <div *ngIf=\"this.responsibilityForm.checkpoints?.length\" class=\"assessment-text\">\n        <i class=\"icons alert-icon\">&#xe930;</i>\n        <span>You can now use the new <strong>Checkpoints </strong>or\n          <strong>Assessments</strong> feature instead of the old checkpoints\n          functionality to create analytical questions.\n          <button class=\"remove-btn\" (click)=\"onRemoveCheckpoints('checkpoint')\">\n            Remove Checkpoints\n          </button>\n          to continue.</span>\n      </div>\n      <app-popover #checkpoint [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let checkpoint of responsibilityForm.checkpoints | slice : 1;\n                let j = index\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  {{ checkpoint?.label }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </div>\n  </div>\n\n  <!-- New  Checkpoints -->\n  <!-- *ngIf=\"moreOptions.checkpoints\" -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"moreOptions?.CHECKPOINTS_NEW\"\n    [attr.id]=\"'CHECKPOINTS-NEW'\" [class.active]=\"activeSelector === 'checkpoints-new'\">\n    <div class=\"left\">\n      <img [src]=\"ASSETS.checkpoints\" alt=\"im\" *ngIf=\"\n          responsibilityForm?.checkpoints?.length == 0 ||\n          activeSelector === 'checkpoints'\n        \" />\n\n      <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\n        *ngIf=\"checkpointCount > 0 && activeSelector !== 'checkpoints'\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">\n          <!-- {{responsibilityForm.checkpoints|json}}\n                {{responsibilityForm.checkpointInstruction}} -->\n\n          Checkpoints\n          <!-- <span class=\"checkpoint-version\"> V2.0</span> -->\n          <!-- <button  class=\"button\"\n                      (click)=\"activateSelector('checkpoints-new',true)\">+ Add Checkpoints</button> -->\n        </label>\n        <div class=\"select button-sec\" *ngIf=\"checkpointCount === 0\">\n          <input type=\"text\" (click)=\"activateSelector('checkpoints-new', true)\"\n            placeholder=\"Add checkpoints for this responsibility\" readonly />\n          <button (click)=\"activateSelector('checkpoints-new', true)\" type=\"button\">\n            Add Checkpoints\n          </button>\n        </div>\n        <div class=\"selected\" *ngIf=\"checkpointCount > 0\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"onRemoveCheckpoints('new-checkpoints')\">&#xe9ae;</i>\n            <span class=\"chipName vx-fs-11 vx-label-txt\">{{ checkpointCount }}\n              {{ checkpointCount > 1 ? \"Questions\" : \"Question\" }}</span>\n          </div>\n\n          <!-- <div class=\"chip-container checkpoints\" [class.more-one]=\"checkpointCount > 0\">\n                      <span class=\"chip\">\n                          <i class=\"icons\" (click)=\"onRemoveCheckpoints('new-checkpoints')\">&#xe90d;</i>\n                          {{checkpointCount}} {{checkpointCount > 1 ? 'Questions': 'Question'}}</span>\n                  </div> -->\n\n          <button *ngIf=\"activeSelector !== 'checkpoints-new'\" class=\"edit\" type=\"button\"\n            (click)=\"activateSelector('checkpoints-new', true)\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </div>\n      <app-popover #checkpoint [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let checkpoint of responsibilityForm.checkpoints | slice : 1;\n                let j = index\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  {{ checkpoint?.label }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </div>\n  </div>\n\n  <!-- Risk Classification -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"moreOptions?.RISK_CLASSIFICATION\"\n    [attr.id]=\"'RISK_CLASSIFICATION'\" [class.active]=\"activeSelector === 'riskCalculator'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'riskCalculator' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"responsibilityForm?.riskClass\">\n      <svg *ngIf=\"responsibilityForm?.riskClass\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">\n          Risk Classification\n          <button (click)=\"activateSelector('riskCalculator', true)\" class=\"button\">\n            + Risk Calculator\n          </button>\n        </label>\n\n        <div class=\"classification\">\n          <label class=\"low\" *ngFor=\"let risk of riskClassification\" [ngClass]=\"[risk.class]\">\n            <input type=\"radio\" name=\"classification\" [(ngModel)]=\"responsibilityForm.riskClass\"\n              [value]=\"risk?.value\" />\n            <span>{{ risk?.name }}</span>\n          </label>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <!-- Reviewer -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"moreOptions?.REVIEWER\" [attr.id]=\"'REVIEWER'\"\n    [class.active]=\"\n      activeSelector === 'reviewerFrequency' || activeSelector === 'reviewer'\n    \" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'reviewer' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.reviewer\" alt=\"\" *ngIf=\"\n          responsibilityForm?.reviewers?.list?.length == 0 ||\n          activeSelector === 'reviewer'\n        \" />\n\n      <svg *ngIf=\"\n          responsibilityForm?.reviewers?.list?.length > 0 &&\n          activeSelector !== 'reviewer'\n        \" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Reviewer</label>\n        <div class=\"select\" *ngIf=\"\n            (responsibilityForm?.reviewers?.list?.length == 0 &&\n              !featureFlag_groups) ||\n            (responsibilityForm?.reviewers?.list?.length == 0 &&\n              responsibilityForm?.groupReviewers?.list?.length == 0 &&\n              featureFlag_groups)\n          \">\n          <input type=\"text\" (click)=\"activateSelector('reviewer', true)\" placeholder=\"Select Reviewer\" readonly />\n        </div>\n        <div class=\"selected\" *ngIf=\"\n            (responsibilityForm?.reviewers?.list?.length > 0 &&\n              !featureFlag_groups) ||\n            ((responsibilityForm?.reviewers?.list?.length > 0 ||\n              responsibilityForm?.groupReviewers?.list?.length > 0) &&\n              featureFlag_groups)\n          \">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngIf=\"!featureFlag_groups\">\n            <ng-container *ngFor=\"\n                let reviewer of responsibilityForm?.reviewers?.list?.slice(0, 1)\n              \">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                (click)=\"remove('reviewer', reviewer)\">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"reviewer.member_name\" placement=\"bottom-left\"\n                delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ reviewer.member_name }}</span>\n            </ng-container>\n            <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover (click)=\"reviewer.popover()\" placement=\"right\"\n              *ngIf=\"responsibilityForm?.reviewers?.list?.length > 1\">\n              +{{ responsibilityForm?.reviewers?.list?.slice(1).length }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\" *ngIf=\"!featureFlag_groups\" [class.more-one]=\"responsibilityForm?.reviewers?.list?.length>1\"\n                      [class.plus]=\"responsibilityForm?.reviewers?.list?.length>2\">\n                      <span class=\"chip\" *ngFor=\"let reviewer of responsibilityForm?.reviewers?.list?.slice(0,2)\"><i class=\"icons\" (click)=\"remove('reviewer',reviewer)\">&#xe90d;</i> {{reviewer.member_name}}</span>\n                      <button class=\"count\" *ngIf=\"responsibilityForm?.reviewers?.list?.length > 2\" type=\"button\" appPopover (click)=\"reviewer.popover()\" placement=\"right\">+{{responsibilityForm?.reviewers?.list?.slice(2).length}}</button>\n                  </div> -->\n\n          <div class=\"vx-d-flex vx-align-center\" *ngIf=\"featureFlag_groups\">\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"responsibilityForm?.reviewers?.list.length > 0\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove('reviewer', responsibilityForm?.reviewers?.list[0])\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  responsibilityForm?.reviewers?.list[0]?.employee_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                responsibilityForm?.reviewers?.list[0]?.employee_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                appPopover (click)=\"user.popover()\" placement=\"right\"\n                *ngIf=\"responsibilityForm?.reviewers?.list?.length > 1\">\n                +{{ responsibilityForm?.reviewers?.list?.length - 1 }}\n              </button>\n            </div>\n            <div class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"\n                responsibilityForm?.reviewers?.list.length > 0 &&\n                responsibilityForm?.groupReviewers?.list?.length > 0\n              \">\n              &\n            </div>\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"responsibilityForm?.groupReviewers?.list.length > 0\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    'groupReviewer',\n                    responsibilityForm?.groupReviewers?.list[0]\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  responsibilityForm?.groupReviewers?.list[0]?.group_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                responsibilityForm?.groupReviewers?.list[0]?.group_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"group.popover()\" placement=\"right\"\n                *ngIf=\"responsibilityForm?.groupReviewers?.list?.length > 1\">\n                +{{ responsibilityForm?.groupReviewers?.list?.length - 1 }}\n              </button>\n            </div>\n          </div>\n\n          <!-- <div class=\"chip-container\" *ngIf=\"featureFlag_groups\">\n                      <div class=\"chip-inner\" *ngIf=\"responsibilityForm?.reviewers?.list.length > 0 \">\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove('reviewer',responsibilityForm?.reviewers?.list[0])\" >&#xe90d;</i>\n                          <span class=\"chip\" [appTooltip]=\"responsibilityForm?.reviewers?.list[0]?.employee_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500\">{{responsibilityForm?.reviewers?.list[0]?.employee_name}}</span></span>\n                          <button *ngIf=\"responsibilityForm?.reviewers?.list?.length > 1\" class=\"count user\" appPopover (click)=\"user.popover()\" placement=\"left\"> +{{responsibilityForm?.reviewers?.list?.length - 1}}</button>\n                      </div>\n                      <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"responsibilityForm?.reviewers?.list.length > 0 && responsibilityForm?.groupReviewers?.list?.length > 0\">&</span>\n                      <div class=\"chip-inner\" *ngIf=\"responsibilityForm?.groupReviewers?.list.length > 0 \" >\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove('groupReviewer',responsibilityForm?.groupReviewers?.list[0])\">&#xe90d;</i>\n                          <span class=\"chip\" [appTooltip]=\"responsibilityForm?.groupReviewers?.list[0]?.group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500\">{{responsibilityForm?.groupReviewers?.list[0]?.group_name}}</span></span>\n                          <button *ngIf=\"responsibilityForm?.groupReviewers?.list?.length > 1\" class=\"count\" appPopover (click)=\"group.popover()\" placement=\"right\">+{{responsibilityForm?.groupReviewers?.list?.length - 1}}</button>\n\n                      </div>\n                  </div> -->\n\n          <button *ngIf=\"activeSelector !== 'reviewer'\" class=\"edit\" type=\"button\"\n            (click)=\"activateSelector('reviewer', true)\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <app-cs-radio [checked]=\"responsibilityForm.reviewers.sequentialWorkflow\" [name]=\"'reviewer'\"\n          (checkedEvent)=\"onReviewerWorkflowChange('sequential')\" [class.disabled]=\"\n            responsibilityForm?.groupReviewers?.list?.length > 0\n          \">\n          SEQUENTIAL<i class=\"icons\" [appTooltip]=\"\n              'The responsibility will be sent for review one at a time in the sequence defined by you.'\n            \" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n        </app-cs-radio>\n        <app-cs-radio [checked]=\"!responsibilityForm.reviewers.sequentialWorkflow\" [name]=\"'reviewer'\"\n          (checkedEvent)=\"onReviewerWorkflowChange('anyReviewer')\">\n          ANY REVIEWER CAN MARK THIS AS REVIEWED<i class=\"icons\" [appTooltip]=\"\n              'The responsibility will be sent for review to all reviewers at the same time. If anyone of the reviewer reviews the responsibility, it will be considered as reviewed.'\n            \" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n        </app-cs-radio>\n        <app-popover #reviewer [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let reviewer of responsibilityForm?.reviewers?.list\n                    | slice : 1;\n                  let j = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('reviewer', reviewer)\">&#xe90d;</i>\n                    {{ reviewer.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #user [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let reviewer of responsibilityForm?.reviewers?.list\n                    | slice : 1;\n                  let j = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('reviewer', reviewer)\">&#xe90d;</i>\n                    {{ reviewer.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #group [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let group of responsibilityForm?.groupReviewers?.list\n                    | slice : 1;\n                  let i = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('groupReviewer', group)\">&#xe90d;</i>\n                    {{ group.group_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n    </div>\n  </div>\n\n  <!-- Overseer -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"moreOptions?.OVERSEER\" [attr.id]=\"'OVERSEER'\"\n    [class.active]=\"\n      activeSelector === 'overseerNotify' || activeSelector === 'overseer'\n    \" [class.disabled]=\"\n      activeSelector &&\n      !['overseerNotify', 'overseerNotify'].includes(activeSelector) &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.oversight\" alt=\"\" *ngIf=\"\n          (responsibilityForm?.overseers?.list?.length == 0 &&\n            responsibilityForm?.overseers?.notifyList?.length == 0) ||\n          activeSelector === 'overseerNotify' ||\n          activeSelector === 'overseer'\n        \" />\n      <svg class=\"checkIcon\" *ngIf=\"\n          (responsibilityForm?.overseers?.list?.length > 0 ||\n            responsibilityForm?.overseers?.notifyList?.length > 0) &&\n          !(\n            activeSelector === 'overseerNotify' || activeSelector === 'overseer'\n          )\n        \" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Oversight</label>\n        <div class=\"select\" *ngIf=\"\n            (responsibilityForm?.overseers?.list?.length == 0 &&\n              !featureFlag_groups) ||\n            (responsibilityForm?.overseers?.list?.length == 0 &&\n              responsibilityForm?.overseersGroups?.list?.length == 0 &&\n              featureFlag_groups)\n          \">\n          <input type=\"text\" (click)=\"activateSelector('overseer', true)\"\n            placeholder=\"Who should have oversight of the responsibility?\" readonly />\n        </div>\n        <div class=\"selected\" *ngIf=\"\n            (responsibilityForm?.overseers?.list?.length > 0 &&\n              !featureFlag_groups) ||\n            ((responsibilityForm?.overseers?.list?.length > 0 ||\n              responsibilityForm?.overseersGroups?.list?.length > 0) &&\n              featureFlag_groups)\n          \">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngIf=\"!featureFlag_groups\">\n            <ng-container *ngFor=\"\n                let overseer of responsibilityForm?.overseers?.list?.slice(0, 1)\n              \">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                (click)=\"remove('overseer', overseer)\">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"overseer.member_name\" placement=\"bottom-left\"\n                delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ overseer.member_name }}</span>\n            </ng-container>\n            <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover (click)=\"overseers.popover()\" placement=\"right\"\n              *ngIf=\"responsibilityForm?.overseers?.list?.length > 1\">\n              +{{ responsibilityForm?.overseers?.list?.slice(1).length }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\" [class.more-one]=\"responsibilityForm?.overseers?.list?.length>1\" [class.plus]=\"responsibilityForm?.overseers?.list?.length>2\" *ngIf=\"!featureFlag_groups\" >\n                      <span class=\"chip\" *ngFor=\"let overseer of responsibilityForm?.overseers?.list?.slice(0,2)\"><i class=\"icons\" (click)=\"remove('overseer',overseer)\">&#xe90d;</i> {{overseer.member_name}}</span>\n                      <button class=\"count\" *ngIf=\"responsibilityForm?.overseers?.list?.length > 2\" type=\"button\" appPopover (click)=\"overseers.popover()\" placement=\"right\">+{{responsibilityForm?.overseers?.list?.slice(2).length}}</button>\n                  </div> -->\n\n          <div class=\"vx-d-flex vx-align-center\" *ngIf=\"featureFlag_groups\">\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"responsibilityForm?.overseers?.list.length > 0\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove('overseer', responsibilityForm?.overseers?.list[0])\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  responsibilityForm?.overseers?.list[0]?.employee_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                responsibilityForm?.overseers?.list[0]?.employee_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                appPopover (click)=\"overseerUser.popover()\" placement=\"right\"\n                *ngIf=\"responsibilityForm?.overseers?.list?.length > 1\">\n                +{{ responsibilityForm?.overseers?.list?.length - 1 }}\n              </button>\n            </div>\n            <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"\n                responsibilityForm?.overseers?.list.length > 0 &&\n                responsibilityForm?.overseersGroups?.list?.length > 0\n              \">&</span>\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"responsibilityForm?.overseersGroups?.list?.length > 0\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    'overseerGroup',\n                    responsibilityForm?.overseersGroups?.list[0]\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  responsibilityForm?.overseersGroups?.list[0].group_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                responsibilityForm?.overseersGroups?.list[0].group_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"overseerGroup.popover()\" placement=\"right\"\n                *ngIf=\"responsibilityForm?.overseersGroups?.list?.length > 1\">\n                +{{ responsibilityForm?.overseersGroups?.list?.length - 1 }}\n              </button>\n            </div>\n          </div>\n\n          <!-- <div class=\"chip-container\" *ngIf=\"featureFlag_groups\">\n                      <div class=\"chip-inner\" *ngIf=\"responsibilityForm?.overseers?.list.length > 0\" >\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove('overseer',responsibilityForm?.overseers?.list[0])\">&#xe90d;</i>\n                          <span class=\"chip\" [appTooltip]=\"responsibilityForm?.overseers?.list[0]?.employee_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500\">{{responsibilityForm?.overseers?.list[0]?.employee_name}}</span></span>\n                          <button *ngIf=\"responsibilityForm?.overseers?.list?.length > 1\" class=\"count user\" appPopover (click)=\"overseerUser.popover()\" placement=\"left\"> +{{responsibilityForm?.overseers?.list?.length -1}}</button>\n                      </div>\n                      <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"  *ngIf=\"responsibilityForm?.overseers?.list.length > 0 && responsibilityForm?.overseersGroups?.list?.length > 0\" >&</span>\n                      <div class=\"chip-inner\" *ngIf=\"responsibilityForm?.overseersGroups?.list?.length > 0 \" >\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove('overseerGroup',responsibilityForm?.overseersGroups?.list[0])\">&#xe90d;</i>\n                          <span class=\"chip\" [appTooltip]=\"responsibilityForm?.overseersGroups?.list[0].group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500\"  >{{responsibilityForm?.overseersGroups?.list[0].group_name}}</span></span>\n                          <button *ngIf=\"responsibilityForm?.overseersGroups?.list?.length > 1\" class=\"count\" appPopover (click)=\"overseerGroup.popover()\" placement=\"right\">+{{responsibilityForm?.overseersGroups?.list?.length -1}}</button>\n                      </div>\n                  </div> -->\n          <button *ngIf=\"activeSelector !== 'overseer'\" class=\"edit\" type=\"button\"\n            (click)=\"activateSelector('overseer', true)\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n\n        <div class=\"select\" *ngIf=\"\n            (responsibilityForm?.overseers?.notifyList?.length == 0 &&\n              !featureFlag_groups) ||\n            (responsibilityForm?.overseers?.notifyList?.length == 0 &&\n              responsibilityForm?.overseersGroups?.notifyList?.length == 0 &&\n              featureFlag_groups)\n          \">\n          <input type=\"text\" (click)=\"activateSelector('overseerNotify', true)\"\n            placeholder=\"Who should be notified if the responsibility is not complet...\" readonly [appTooltip]=\"\n              'Who should be notified if the responsibility is not completed?'\n            \" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\" />\n        </div>\n        <div class=\"selected\" *ngIf=\"\n            (responsibilityForm?.overseers?.notifyList?.length > 0 &&\n              !featureFlag_groups) ||\n            ((responsibilityForm?.overseers?.notifyList?.length > 0 ||\n              responsibilityForm?.overseersGroups?.notifyList?.length > 0) &&\n              featureFlag_groups)\n          \">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngIf=\"!featureFlag_groups\">\n            <ng-container *ngFor=\"\n                let overseer of responsibilityForm?.overseers?.notifyList?.slice(\n                  0,\n                  1\n                )\n              \">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                (click)=\"remove('overseerNotifyList', overseer)\">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"overseer.member_name\" placement=\"bottom-left\"\n                delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ overseer.member_name }}</span>\n            </ng-container>\n            <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover (click)=\"notify.popover()\" placement=\"right\"\n              *ngIf=\"responsibilityForm?.overseers?.notifyList?.length > 1\">\n              +{{ responsibilityForm?.overseers?.notifyList?.slice(1).length }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\" [class.more-one]=\"responsibilityForm?.overseers?.notifyList?.length>1\" [class.plus]=\"responsibilityForm?.overseers?.notifyList?.length>2\" *ngIf=\"!featureFlag_groups\">\n                      <span class=\"chip\" *ngFor=\"let overseer of responsibilityForm?.overseers?.notifyList?.slice(0,2)\"><i class=\"icons\" (click)=\"remove('overseerNotifyList',overseer)\">&#xe90d;</i> {{overseer.member_name}}</span>\n                      <button class=\"count\" *ngIf=\"responsibilityForm?.overseers?.notifyList?.length > 2\" type=\"button\" appPopover (click)=\"notify.popover()\" placement=\"right\">+{{responsibilityForm?.overseers?.notifyList?.slice(2).length}}</button>\n                  </div> -->\n\n          <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"responsibilityForm?.overseers?.notifyList.length > 0\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    'overseerNotifyList',\n                    responsibilityForm?.overseers?.notifyList[0]\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  responsibilityForm?.overseers?.notifyList[0]?.employee_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                responsibilityForm?.overseers?.notifyList[0]?.employee_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                appPopover (click)=\"notifyUser.popover()\" placement=\"right\"\n                *ngIf=\"responsibilityForm?.overseers?.notifyList?.length > 1\">\n                +{{ responsibilityForm?.overseers?.notifyList?.length - 1 }}\n              </button>\n            </div>\n            <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"\n                responsibilityForm?.overseers?.notifyList.length > 0 &&\n                responsibilityForm?.overseersGroups?.notifyList?.length > 0\n              \">&</span>\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngIf=\"\n                responsibilityForm?.overseersGroups?.notifyList?.length > 0\n              \">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    'overseerGroupNotifyList',\n                    responsibilityForm?.overseersGroups?.notifyList[0]\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  responsibilityForm?.overseersGroups?.notifyList[0]?.group_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                responsibilityForm?.overseersGroups?.notifyList[0]?.group_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"notifyGroup.popover()\" placement=\"right\" *ngIf=\"\n                  responsibilityForm?.overseersGroups?.notifyList?.length > 1\n                \">\n                +{{\n                responsibilityForm?.overseersGroups?.notifyList?.length - 1\n                }}\n              </button>\n            </div>\n          </div>\n\n          <!-- <div class=\"chip-container\" *ngIf=\"featureFlag_groups\">\n                      <div class=\"chip-inner\" *ngIf=\"responsibilityForm?.overseers?.notifyList.length > 0\">\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove('overseerNotifyList',responsibilityForm?.overseers?.notifyList[0])\">&#xe90d;</i>\n                          <span class=\"chip\" [appTooltip]=\"responsibilityForm?.overseers?.notifyList[0]?.employee_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500\">{{responsibilityForm?.overseers?.notifyList[0]?.employee_name}}</span></span>\n                          <button *ngIf=\"responsibilityForm?.overseers?.notifyList?.length > 1\" class=\"count user\" appPopover (click)=\"notifyUser.popover()\" placement=\"left\"> +{{responsibilityForm?.overseers?.notifyList?.length - 1}}</button>\n                      </div>\n                      <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"  *ngIf=\"responsibilityForm?.overseers?.notifyList.length > 0 && responsibilityForm?.overseersGroups?.notifyList?.length > 0\" >&</span>\n                      <div class=\"chip-inner\" *ngIf=\"responsibilityForm?.overseersGroups?.notifyList?.length > 0 \" >\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove('overseerGroupNotifyList',responsibilityForm?.overseersGroups?.notifyList[0])\">&#xe90d;</i>\n                          <span class=\"chip\" [appTooltip]=\"responsibilityForm?.overseersGroups?.notifyList[0]?.group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\"><span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500\"  >{{responsibilityForm?.overseersGroups?.notifyList[0]?.group_name}}</span></span>\n                          <button *ngIf=\"responsibilityForm?.overseersGroups?.notifyList?.length > 1\" class=\"count\" appPopover (click)=\"notifyGroup.popover()\" placement=\"right\">+{{responsibilityForm?.overseersGroups?.notifyList?.length - 1}}</button>\n                      </div>\n                  </div> -->\n          <button *ngIf=\"activeSelector !== 'overseerNotify'\" class=\"edit\" type=\"button\"\n            (click)=\"activateSelector('overseerNotify', true)\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <app-popover #overseers [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let overseer of responsibilityForm?.overseers?.list\n                    | slice : 1;\n                  let j = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('overseer', overseer)\">&#xe90d;</i>\n                    {{ overseer?.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #overseerUser [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let overseers of responsibilityForm?.overseers?.list\n                    | slice : 1;\n                  let j = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('overseer', overseers)\">&#xe90d;</i>\n                    {{ overseers?.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #overseerGroup [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let overseer of responsibilityForm?.overseersGroups?.list\n                    | slice : 1;\n                  let i = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('overseerGroup', overseer)\">&#xe90d;</i>\n                    {{ overseer?.group_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #notify [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let overseer of responsibilityForm?.overseers?.notifyList\n                    | slice : 1;\n                  let j = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('overseerNotifyList', overseer)\">&#xe90d;</i>\n                    {{ overseer?.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #notifyUser [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let overseer of responsibilityForm?.overseers?.notifyList\n                    | slice : 1;\n                  let j = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('overseerNotifyList', overseer)\">&#xe90d;</i>\n                    {{ overseer?.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #notifyGroup [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let group of responsibilityForm?.overseersGroups?.notifyList\n                    | slice : 1;\n                  let i = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('overseerGroupNotifyList', group)\">&#xe90d;</i>\n                    {{ group?.group_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n    </div>\n  </div>\n\n  <!-- Assurance -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"moreOptions?.ASSURANCE\" [attr.id]=\"'ASSURANCE'\"\n    [class.active]=\"activeSelector === 'assurance'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'assurance' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.reviewer\" alt=\"\" *ngIf=\"\n          responsibilityForm?.assuranceList?.length == 0 ||\n          activeSelector === 'assurance'\n        \" />\n\n      <svg *ngIf=\"\n          responsibilityForm?.assuranceList?.length > 0 &&\n          activeSelector !== 'assurance'\n        \" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Assurance</label>\n        <div class=\"select\" *ngIf=\"responsibilityForm?.assuranceList?.length == 0\">\n          <div class=\"custom-input\" (click)=\"activateSelector('assurance', true)\"\n            aria-placeholder=\"Select the test plan categories that you would like to add this responsibility to.\"></div>\n        </div>\n        <div class=\"selected\" *ngIf=\"responsibilityForm?.assuranceList?.length > 0\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <ng-container *ngFor=\"\n                let assurance of responsibilityForm?.assuranceList?.slice(0, 1)\n              \">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                (click)=\"remove('assurance', assurance)\">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"assurance.category_name\"\n                placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ assurance.category_name\n                }}</span>\n            </ng-container>\n            <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover (click)=\"assurance.popover()\" placement=\"right\"\n              *ngIf=\"responsibilityForm?.assuranceList?.length > 1\">\n              +{{ responsibilityForm?.assuranceList?.slice(1).length }}\n            </button>\n          </div>\n\n          <button *ngIf=\"activeSelector !== 'assurance'\" class=\"edit\" type=\"button\"\n            (click)=\"activateSelector('assurance', true)\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <app-popover #assurance [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let assurance of responsibilityForm?.assuranceList\n                    | slice : 1;\n                  let j = index\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('assurance', assurance)\">&#xe90d;</i>\n                    {{ assurance.category_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n    </div>\n  </div>\n\n  <!-- Requires Audit -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\"\n    *ngIf=\"moreOptions?.REQUIRES_AUDIT && responsibilityForm.rc.length > 0\" [attr.id]=\"'REQUIRES_AUDIT'\"\n    [class.active]=\"activeSelector === 'requires_audit'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'requires_audit' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.audit\" alt=\"\" *ngIf=\"\n          responsibilityForm?.requiresAuditList?.length == 0 ||\n          activeSelector === 'requires_audit'\n        \" />\n\n      <svg *ngIf=\"\n          responsibilityForm?.requiresAuditList?.length > 0 &&\n          activeSelector !== 'requires_audit'\n        \" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">REQUIRES AUDIT?</label>\n        <div class=\"select\" *ngIf=\"responsibilityForm?.requiresAuditList?.length == 0\">\n          <input type=\"text\" placeholder=\"If yes, select an Audit Category.\" readonly\n            (click)=\"activateSelector('requires_audit', true)\" />\n        </div>\n        <div class=\"selected\" *ngIf=\"responsibilityForm?.requiresAuditList?.length > 0\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"remove('requires_audit', overseer)\">&#xe9ae;</i>\n            <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                responsibilityForm?.requiresAuditList[0]?.category_name\n              \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n              responsibilityForm?.requiresAuditList[0]?.category_name\n              }}</span>\n          </div>\n\n          <button class=\"edit\" type=\"button\" (click)=\"activateSelector('requires_audit', true)\">\n            <i class=\"icons\">&#xe90c;</i> Edit\n          </button>\n          <!-- class=\"icons\">&#xe9ba;</i>\n                      Edit</button> -->\n        </div>\n        <ng-container *ngIf=\"responsibilityForm?.requiresAuditList?.length\">\n          <label class=\"vx-control-panel vx-mt-8\">\n            SAMPLE SIZE\n            <app-cs-switch [(ngValue)]=\"isSample\" (ngValueChange)=\"switchEnable($event)\"></app-cs-switch>\n          </label>\n          <div class=\"sample-part\" [class.disabled]=\"!isSample\">\n            <app-cs-radio value=\"0\" class=\"sample-radio\" (click)=\"selectedSampleData(0)\"\n              [checked]=\"selectedSample === 0\">\n              <div class=\"name\">COUNT</div>\n              <input type=\"number\" placeholder=\"--\" (keypress)=\"checkInputValue($event)\" [(ngModel)]=\"sampleValue\" />\n            </app-cs-radio>\n            <div class=\"or\">OR</div>\n            <app-cs-radio value=\"1\" class=\"sample-radio\" (click)=\"selectedSampleData(1)\"\n              [checked]=\"selectedSample === 1\">\n              <div class=\"name\">PERCENTAGE</div>\n              <input type=\"number\" (keypress)=\"checkInputValue($event)\" [(ngModel)]=\"samplePercentage\"\n                placeholder=\"--\" />\n            </app-cs-radio>\n          </div>\n          <label class=\"vx-control-panel vx-mt-8\">SET A REMINDER IF THE AUDIT PLAN IS NOT CREATED.</label>\n          <div class=\"reminder-part\">\n            Send reminder every\n            <input type=\"number\" value=\"2\" [(ngModel)]=\"sendAuditRemindersValue\" />\n            Day by\n            <div class=\"picker-group\">\n              <input class=\"time\" aria-label=\"12hr format\" [(ngModel)]=\"auditTime\" [ngxTimepicker]=\"dailyTime\"\n                placeholder=\"auditTime.toUpperCase()\" type=\"text\" [min]=\"currentTime\" readonly />\n              <i class=\"icons\">&#xe955;</i>\n              <ngx-material-timepicker #dailyTime [defaultTime]=\"auditTime\">\n              </ngx-material-timepicker>\n            </div>\n          </div>\n        </ng-container>\n      </div>\n    </div>\n  </div>\n\n  <!-- Link of GRC objects -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\"\n    *ngIf=\"moreOptions?.GRC_OBJECTS && responsibilityForm.rc.length > 0\" [attr.id]=\"'GRC_OBJECTS'\"\n    [class.active]=\"activeSelector === 'GRC_OBJECTS'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'GRC_OBJECTS' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.audit\" alt=\"\" *ngIf=\"\n          responsibilityForm?.selectedGRCObjects?.length == 0 ||\n          activeSelector === 'GRC_OBJECTS'\n        \" />\n\n      <svg *ngIf=\"\n          responsibilityForm?.selectedGRCObjects?.length > 0 &&\n          activeSelector !== 'GRC_OBJECTS'\n        \" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">LINK GRC OBJECT(S)</label>\n        <div class=\"select\" *ngIf=\"responsibilityForm?.selectedGRCObjects?.length === 0\">\n          <input type=\"text\" placeholder=\"Select GRC object(s) to link with this responsibility\" readonly\n            (click)=\"activateSelector('GRC_OBJECTS', true)\" />\n        </div>\n        <ng-container *ngIf=\"responsibilityForm?.selectedGRCObjects?.length\">\n          <ng-container *ngFor=\"let selectedGRC of GRC_TYPE_ARRAY; let i = index\">\n            <div *ngIf=\"grcDataWithTypes[selectedGRC]?.length\" class=\"selected vx-mb-2\">\n              <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n                <ng-container *ngFor=\"let grc of grcDataWithTypes[selectedGRC]?.slice(0, 1)\">\n                  <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                    (click)=\"remove('GRC_OBJECTS', grc, 0)\">&#xe9ae;</i>\n                  <div class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\">\n                    {{ selectedGRC | titlecase }}\n                  </div>\n\n                  <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"grc?.name\" placement=\"bottom-left\"\n                    delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ grc?.name }}</span>\n                </ng-container>\n\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover (click)=\"popoverGRC.popover()\" placement=\"left\"\n                  *ngIf=\"grcDataWithTypes[selectedGRC]?.length > 1\">\n                  +{{ grcDataWithTypes[selectedGRC].length - 1 }}\n                </button>\n              </div>\n\n              <button *ngIf=\"activeSelector !== 'GRC'\" class=\"edit\" type=\"button\" (click)=\"\n                  selectedGRCTab = grcDataWithTypes[selectedGRC][0]?.type;\n                  getOtherGRCObjects();\n                  activateSelector('GRC_OBJECTS', true)\n                \">\n                <i class=\"icons\">&#xe9ba;</i> Edit\n              </button>\n            </div>\n            <app-popover #popoverGRC [dontCloseonClick]=\"true\">\n              <div class=\"wf-action-list\">\n                <ul class=\"action-item\">\n                  <li *ngFor=\"\n                      let grc of grcDataWithTypes[selectedGRC] | slice : 1;\n                      let j = index\n                    \">\n                    <div class=\"avatar-card\">\n                      <span class=\"value\">\n                        <i class=\"icons\" (click)=\"remove('GRC_OBJECTS', grc, j + 1)\">&#xe90d;</i>\n                        {{ grc.name }}\n                      </span>\n                    </div>\n                  </li>\n                </ul>\n              </div>\n            </app-popover>\n          </ng-container>\n        </ng-container>\n      </div>\n    </div>\n  </div>\n\n  <!-- Custom Fields -->\n  <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"moreOptions?.CUSTOM_FIELDS \"\n    [attr.id]=\"'CUSTOM_FIELDS'\" [class.active]=\"activeSelector === 'CUSTOM_FIELDS'\" [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'CUSTOM_FIELDS' &&\n      sideSelectorElements.includes(activeSelector)\n    \">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.audit\" alt=\"\" *ngIf=\"\n          activeSelector === 'CUSTOM_FIELDS'\n        \" />\n\n      <svg *ngIf=\"\n          activeSelector !== 'CUSTOM_FIELDS'\n        \" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Custom Fields</label>\n        <ng-container *ngFor=\"let field of responsibilityForm.customFields\">\n          <div class=\"vc-cf-container vx-d-flex vx-align-center vx-justify-between vx-pt-2 vx-pb-2\">\n            <div class=\"cf-name vx-d-flex vx-align-center vx-justify-between\">\n              <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n                <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"remove('CUSTOM_FIELDS', field)\">&#xe9ae;</i>\n                <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"field.name ?? '--'\" placement=\"bottom-left\"\n                  delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{ field.name\n                  ?? \"--\" }}</span>\n              </div>\n              <span class=\"vx-fs-11 vx-gray-70\">:&nbsp; </span>\n            </div>\n            <span class=\"cf-value vx-fs-13 vx-fw-500 vx-p-0 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\">\n              <input type=\"text\" placeholder=\"Enter value\" [(ngModel)]=\"field.value\" />\n            </span>\n          </div>\n        </ng-container>\n        <div *ngIf=\"customFields.length > 0\" class=\"select\">\n          <!-- <input type=\"text\" placeholder=\"+ Add Custom Fields\" readonly\n            (click)=\"activateSelector('CUSTOM_FIELDS', true)\" /> -->\n          <app-cs-select [dataList]='customFields' [isStaticData]=\"true\" [placeholder]=\"'+ Add Custom Fields'\"\n            valueKey=\"id\" [selectedData]=\"'+ Add Custom Fields'\" displayProperty=\"name\" [isArrowIcon]=\"false\"\n            (selectedData)=\"activateSelector('CUSTOM_FIELDS', $event)\"></app-cs-select>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n\n<app-users-radio-list *ngIf=\"activeSelector === 'assignors'\" [usersList]=\"assignorsList\"\n  [selectedUsers]=\"responsibilityForm.assignors.list\" [itemEmailKey]=\"'member_email'\" [userIdKey]=\"'member_id'\"\n  [itemNameKey]=\"'member_name'\" (saveSelectedList)=\"saveSelectedList('assignors', $event)\"\n  (closeUsersList)=\"activeDeselector()\" [loaded]=\"assignorsListLoaded\">\n</app-users-radio-list>\n\n<ng-container *ngIf=\"activeSelector === 'assignees'\">\n  <app-group-users-list *ngIf=\"\n      isEntrust || responsibilityForm?.assignees?.whoCanComplete === 'ANY_ONE'\n    \" [openedFrom]=\"openedFrom\" [usersList]=\"assigneesList\" [fromResponsibility]=\"'Assignee'\" [groupsList]=\"groupsList\"\n    [assigneeGroupsList]=\"groupAssigneeList\" [selectedUsers]=\"responsibilityForm?.assignees?.list\"\n    [selectedGroups]=\"responsibilityForm?.assigneeGroups?.list\" [userIdKey]=\"'my_member_id'\" [groupIdKey]=\"'group_id'\"\n    [loader]=\"userListLoader || assignorsListLoader\" (saveSelectedList)=\"saveSelectedList('assignees', $event)\"\n    (closeUsersList)=\"activeDeselector()\" [groupsEnabled]=\"featureFlag_groups\">\n  </app-group-users-list>\n  <app-users-radio-list *ngIf=\"\n      !isEntrust && responsibilityForm.assignees.whoCanComplete !== 'ANY_ONE'\n    \" [itemEmailKey]=\"'employee_email'\" [usersList]=\"assigneesList\" [selectedUsers]=\"responsibilityForm.assignees.list\"\n    [userIdKey]=\"'employee_id'\" [itemNameKey]=\"'employee_name'\" [fromResponsibility]=\"'Assignee'\"\n    (saveSelectedList)=\"saveSelectedList('assignees', $event)\" (closeUsersList)=\"activeDeselector()\"\n    [loaded]=\"assigneesListLoaded\">\n  </app-users-radio-list>\n</ng-container>\n\n<app-checkpoints *ngIf=\"activeSelector === 'checkpoints'\"\n  [checkpointInstruction]=\"responsibilityForm?.checkpointInstruction\" [checkpointData]=\"responsibilityForm?.checkpoints\"\n  (saveCheckPoint)=\"saveSelectedList('checkpoints', $event)\" (closeCheckPoint)=\"activeDeselector()\"></app-checkpoints>\n<app-frequency-container *ngIf=\"activeSelector === 'frequency'\" [frequencyDetails]=\"frequencyDetails\"\n  [feature]=\"feature\" [onCompletionResponsibility]=\"responsibilityDetails?.onCompletionResponsibility\"\n  (selectedFrequency)=\"frequencyData($event)\" [mode]=\"'responsibility'\" (closeFrequency)=\"activeDeselector()\">\n</app-frequency-container>\n\n<app-responsibility-centers-list *ngIf=\"activeSelector === 'rc'\" [loaded]=\"rcListLoaded\"\n  [responsibilityCentersList]=\"responsibilityCentersList\" [radioSelection]=\"\n    mode == 'EDIT' && responsibilityCenterType === 0 ? true : false\n  \" [selectedResponsibilityCenters]=\"responsibilityForm.rc\" [rcIdKey]=\"'item_id'\"\n  (saveSelectedList)=\"saveSelectedList('rc', $event)\" (closeRcList)=\"activeDeselector()\">\n</app-responsibility-centers-list>\n\n<app-category-multi-select *ngIf=\"activeSelector === 'category'\" [categoryList]=\"categories\"\n  [allCategories]=\"allCategories\" [categoryIdKey]=\"'category_id'\" [selectedCategories]=\"responsibilityForm.category\"\n  (saveSelectedCategory)=\"saveSelectedList('category', $event)\" (closeCategoriesList)=\"activeDeselector()\">\n</app-category-multi-select>\n\n<!-- Program List Popup -->\n<app-list-container *ngIf=\"activeSelector === 'program'\" (close)=\"activeDeselector()\">\n  <app-program-list body (itemsSelectedChange)=\"onItemsSelectedChange($event)\" [selectedItems]=\"selectedPrograms\"\n    [url]=\"programListUrl\"></app-program-list>\n  <div class=\"vx-d-flex vx-align-center vx-justify-between vx-w-100\" footer>\n    <div class=\"left-side vx-fs-12 vx-d-flex\">\n      <ng-container *ngIf=\"allProgamSelected.length > 0\">\n        <button\n          class=\"selected-count-box vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\">\n          {{ allProgamSelected.length }}\n        </button>\n        <span class=\"selected-text\">\n          Program\n          {{ allProgamSelected.length > 1 ? \"Categories\" : \"Category\" }}\n          Selected</span>\n      </ng-container>\n    </div>\n    <div class=\"right-side vx-d-flex\">\n      <button class=\"cancelBtn\" (click)=\"activeDeselector()\">Cancel</button>\n      <button class=\"nextBtn\" (click)=\"activeDeselector(); selectCategory()\">\n        Next <i class=\"icons\">&#xe91e;</i>\n      </button>\n    </div>\n  </div>\n</app-list-container>\n\n<app-owner-list *ngIf=\"activeSelector === 'reviewer' && !featureFlag_groups\" [listHeading]=\"'Select a Reviewer'\"\n  [singularText]=\"'User selected'\" [pluralText]=\"'Users selected'\" [usersList]=\"allUsersList\" [showWorkflow]=\"true\"\n  [selectedUsers]=\"responsibilityForm.reviewers.list\" [userIdKey]=\"'employee_id'\" [itemEmailKey]=\"'employee_email'\"\n  [itemNameKey]=\"'member_name'\" (saveSelectedList)=\"\n    saveSelectedList('reviewer', $event);\n    activateSelector('reviewerFrequency', true)\n  \" (closeUsersList)=\"activeDeselector()\" [mode]=\"mode\" [fromResponsibility]=\"'Reviewer'\" [reviewerWorkflowType]=\"\n    responsibilityForm?.reviewers?.sequentialWorkflow\n      ? 'SEQUENTIAL'\n      : 'ANY REVIEWER CAN MARK THIS AS REVIEWED'\n  \" (reviewerWorkflowTypeChange)=\"reviewerTypeChange($event)\">\n</app-owner-list>\n<user-group-list *ngIf=\"activeSelector === 'reviewer' && featureFlag_groups\" [selectedReviewer]=\"true\"\n  [userlist]=\"reviewerMemberIdsList\" [groupEnabled]=\"true\" [groupList]=\"groupReviewerList\"\n  [selectedGroups]=\"responsibilityForm?.groupReviewers?.list\" [selectedUsers]=\"responsibilityForm?.reviewers?.list\"\n  (cancel)=\"activeDeselector()\" (save)=\"\n    saveSelectedList('reviewer', $event);\n    activateSelector('reviewerFrequency', true)\n  \" [mode]=\"mode\" [fromResponsibility]=\"'Reviewer'\" [loading]=\"userListLoader || assignorsListLoader\"\n  (reviewerWorkflowTypeChange)=\"reviewerTypeChange($event)\" [reviewerWorkflowType]=\"\n    responsibilityForm?.reviewers?.sequentialWorkflow\n      ? 'SEQUENTIAL'\n      : 'ANY REVIEWER CAN MARK THIS AS REVIEWED'\n  \" [featureflag]=\"featureFlag_groups\">\n</user-group-list>\n<app-owner-list *ngIf=\"activeSelector === 'overseer' && !featureFlag_groups\" [singularText]=\"'User selected'\"\n  [pluralText]=\"'Users selected'\" [usersList]=\"allUsersList\" [selectedUsers]=\"responsibilityForm.overseers.list\"\n  [userIdKey]=\"'employee_id'\" [fromResponsibility]=\"'Overseer'\" [itemNameKey]=\"'member_name'\"\n  (saveSelectedList)=\"saveSelectedList('overseer', $event)\" (closeUsersList)=\"activeDeselector()\"\n  [itemEmailKey]=\"'employee_email'\">\n</app-owner-list>\n<user-group-list *ngIf=\"activeSelector === 'overseer' && featureFlag_groups\" [groupEnabled]=\"true\"\n  [groupList]=\"groupOverseerList\" [selectedGroups]=\"responsibilityForm?.overseersGroups?.list\"\n  [userlist]=\"overseersList\" [selectedUsers]=\"responsibilityForm.overseers.list\" [fromResponsibility]=\"'Overseer'\"\n  [loading]=\"userListLoader || assignorsListLoader\" (save)=\"saveSelectedList('overseer', $event)\"\n  (cancel)=\"activeDeselector()\" [featureflag]=\"featureFlag_groups\">\n</user-group-list>\n\n<app-owner-list *ngIf=\"activeSelector === 'overseerNotify' && !featureFlag_groups\" [singularText]=\"'User selected'\"\n  [pluralText]=\"'Users selected'\" [usersList]=\"allUsersList\" [fromResponsibility]=\"'Overseer'\"\n  [selectedUsers]=\"responsibilityForm.overseers.notifyList\" [userIdKey]=\"'employee_id'\" [itemNameKey]=\"'member_name'\"\n  (saveSelectedList)=\"saveSelectedList('overseerNotify', $event)\" (closeUsersList)=\"activeDeselector()\"\n  [itemEmailKey]=\"'employee_email'\"></app-owner-list>\n<user-group-list *ngIf=\"activeSelector === 'overseerNotify' && featureFlag_groups\" [userlist]=\"overseersList\"\n  [groupEnabled]=\"true\" [groupList]=\"groupOverseerList\"\n  [selectedGroups]=\"responsibilityForm?.overseersGroups?.notifyList\"\n  [selectedUsers]=\"responsibilityForm.overseers.notifyList\" [fromResponsibility]=\"'Overseer'\"\n  [loading]=\"userListLoader || assignorsListLoader\" (save)=\"saveSelectedList('overseerNotify', $event)\"\n  (cancel)=\"activeDeselector()\" [featureflag]=\"featureFlag_groups\">\n</user-group-list>\n\n<app-owner-list *ngIf=\"activeSelector === 'assurance'\" [singularText]=\"'Test Category selected'\"\n  [pluralText]=\"'Test Categories selected'\" [searchPlaceholder]=\"'Search Test Category...'\"\n  [listHeading]=\"'Select Test Categories'\" [usersList]=\"assuranceCategoriesList\"\n  [noDataText]=\"'No Test Categories Found'\" [selectedUsers]=\"responsibilityForm.assuranceList\"\n  [userIdKey]=\"'category_id'\" [itemEmailKey]=\"'category_name'\" [itemNameKey]=\"'category_name'\"\n  (saveSelectedList)=\"saveSelectedList('assurance', $event)\" (closeUsersList)=\"activeDeselector()\"\n  [searchPlaceholder]=\"'Search Category'\">\n</app-owner-list>\n\n<app-audit-category-list *ngIf=\"activeSelector === 'requires_audit'\" (closeList)=\"activeDeselector()\"\n  [auditCategory]=\"assuranceRequiresAuditList\" (saveSelectedList)=\"saveSelectedList('requires_audit', $event)\"\n  [selectedData]=\"responsibilityForm?.requiresAuditList[0]\"></app-audit-category-list>\n\n<app-loader-inline *ngIf=\"(loader && this.mode === 'EDIT') || entrustLoader\"></app-loader-inline>\n<app-framework-list *ngIf=\"activeSelector === 'framework'\" (assignControl)=\"assignFromFramework($event)\"\n  [previousSelectedValues]=\"selectedFrameworkValues\" (closeFramework)=\"activeDeselector()\"\n  (entrustFramework)=\"entrustFramework($event)\"></app-framework-list>\n\n<!-- risk-calculator here -->\n<app-risk-classification *ngIf=\"activeSelector === 'riskCalculator'\" [currentRiskValue]=\"responsibilityForm.riskClass\"\n  (saveList)=\"saveSelectedList('calculatedrisk', $event)\" (closeList)=\"activeDeselector()\">\n</app-risk-classification>\n\n<app-review-frequency *ngIf=\"activeSelector === 'reviewerFrequency'\" [reviewCompleteDays]=\"\n    responsibilityForm.reviewers.reviewFrequency.reviewCompleteDays\n  \" [reviewNOtCompletedDays]=\"\n    responsibilityForm.reviewers.reviewFrequency.reviewNOtCompletedDays\n  \" (saveReviewFrequency)=\"saveSelectedList('reviewFrequency', $event)\" (closeReviewFrequency)=\"\n    activeDeselector();\n    activateSelector('reviewer', false);\n    responsibilityForm.reviewers.list = [];\n    responsibilityForm.groupReviewers.list = []\n  \" (backToUserList)=\"activeDeselector(); activateSelector('reviewer', true)\">\n</app-review-frequency>\n\n<app-assessment-list *ngIf=\"isAssessment\" [program_ids]=\"responsibilityForm.program[0]?._id\" (cancelAssessment)=\"\n    isAssessment = false; activateSelector('isAssessment', false)\n  \" [isEdit]=\"responsibilityForm?.assessment?.assessment_id ? true : false\"\n  [selectedAssessment]=\"responsibilityForm?.assessment\" (onAssessmentSelect)=\"\n    onAssessmentSelect($event); activateSelector('isAssessment', false)\n  \"></app-assessment-list>\n\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\"\n  (action)=\"action($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\n\n<div class=\"import\" *ngIf=\"activeSelector === 'checkpoints-new'\">\n  <app-create-assessment-container #editor [openPortal]=\"'RESPONSIBILITY_CHECKPOINT'\"\n    (postAssessment)=\"postAssessment($event)\" (setIsUploaded)=\"setIsUploaded($event)\"\n    [checkpointJSON]=\"responsibilityForm.new_checkpoints\">\n  </app-create-assessment-container>\n</div>\n\n<app-grc-object-list *ngIf=\"activeSelector === 'GRC_OBJECTS'\" [grcObject]=\"grcList\"\n  [selectedGRC]=\"responsibilityForm.selectedGRCObjects | refDisconnect\" [loader]=\"grcLoader\" [tableCard]=\"otherGRCCard\"\n  [selectedTab]=\"selectedGRCTab\" [cardLoader]=\"grcTabLoader\" (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"\n  (saveOtherGRC)=\"saveSelectedList('GRC_OBJECTS', $event)\"\n  (closeOtherGRC)=\"activateSelector('GRC_OBJECTS', false)\"></app-grc-object-list>","export const CONSTANTS ={\n  DEFAULT_PAGE_NUMBER: 1,\n  PAGE_IN_SINGLE_VIEW: 5,\n  NO_DATA_IMAGE_TEXT:'No data to display.',\n  LINK_POLICY : 'isLinkedPolices',\n  LINK_POLICY_HELP_TEXT:  'If enabled, all the related policies will be visible when this policy is published on the Policy Portal.',\n  POLICY_ID: 'policyId',\n};\n\n\n","import { Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpErrorResponse,\n  HttpInterceptor,\n  HttpRequest,\n  HttpHandler,\n  HttpEvent,\n  HttpHeaders,\n  HttpParams,\n} from '@angular/common/http';\nimport { throwError, Observable, Subject } from 'rxjs';\nimport { of } from 'rxjs';\nimport { retry, catchError } from 'rxjs/operators';\nimport { AuthService } from '../../workflow-services/auth.service';\nimport { Configurations } from '../../configurations';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class RestApiService implements HttpInterceptor {\n  env!: any;\n  constructor(\n    private httpClient: HttpClient,\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  /**\n   * Interceptor where will intercept any thing has to be intercept in header like token or business cycle\n   * anything related to common which needs to pass in each api\n   */\n  intercept(\n    request: HttpRequest<any>,\n    next: HttpHandler\n  ): Observable<HttpEvent<any>> {\n    return next.handle(request);\n  }\n\n  /**\n   * This Handler contains REST_URL which is used to host the server.\n   */\n\n  /**\n   * This displays the error message when the server is not taking the data.\n   * There are Two types errors.\n   * Client-side errors.\n   * Server-side errors\n   */\n  handleError(error: HttpErrorResponse) {\n    let errorMessage = 'Unknown error!';\n    if (error.error instanceof ErrorEvent) {\n      // Client-side errors\n      errorMessage = `Error: ${error.error.message}`;\n    } else {\n      // Server-side errors\n      if (error.status === 401) {\n        // auto logout if 401 response returned from api\n        localStorage.clear();\n        location.reload();\n      }\n      errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\n    }\n    return throwError(errorMessage);\n  }\n\n  //business cycle code added\n  getBusinessCycle() {\n    const localStorageData = localStorage.getItem('businessCycle') ?? '';\n    const businessCycle = JSON.parse(localStorageData)?.selectedCycle;\n\n    let currentBusinessCycle = {\n      selected_cycle: businessCycle?.start_date + '-' + businessCycle?.end_date,\n      start_date: businessCycle?.start_date,\n      end_date: businessCycle?.end_date,\n      selected_cycle_arr: businessCycle?.selected_cycle_arr,\n    };\n    return currentBusinessCycle;\n  }\n\n  apiDelegate(req: any, additionalUrl?: string) {\n    let httpOptions: any = {};\n    let headers = new HttpHeaders();\n    httpOptions.headers = headers.append(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    if (req?.params) {\n      httpOptions.params = req.params;\n    }\n    if (req?.payloadObject) {\n      httpOptions.headers = httpOptions.headers.append(\n        'payload-object',\n        JSON.stringify(req.payloadObject)\n      );\n    }\n    if (req?.businessCycle) {\n      httpOptions.headers = httpOptions.headers.append(\n        'x-business-cycle',\n        JSON.stringify(req.businessCycle)\n      );\n    }\n\n    const url = this.env[req?.action];\n    switch (req.method.toLowerCase()) {\n      case 'get':\n        return this.httpClient\n          .get(url + additionalUrl, httpOptions)\n          .pipe(retry(2), catchError(this.handleError));\n      case 'post':\n        return this.httpClient.post(url + additionalUrl, req.data, httpOptions);\n      case 'put':\n        return this.httpClient\n          .put(url + additionalUrl, req.data)\n          .pipe(retry(2), catchError(this.handleError));\n      case 'patch':\n        return this.httpClient\n          .patch(url + additionalUrl, req.data)\n          .pipe(retry(2), catchError(this.handleError));\n      case 'delete':\n        return this.httpClient\n          .delete(url + additionalUrl, httpOptions)\n          .pipe(retry(2), catchError(this.handleError));\n      default:\n        return of('invalid req');\n    }\n  }\n\n  // don't use this\n  apiTestDelegate(req: any) {\n    let httpOptions: any = {};\n    let headers = new HttpHeaders();\n    httpOptions.headers = headers.append(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    if (req?.params) {\n      httpOptions.params = req.params;\n    }\n    if (req?.payloadObject) {\n      httpOptions.headers = httpOptions.headers.append(\n        'payload-object',\n        JSON.stringify(req.payloadObject)\n      );\n    }\n    if (req?.businessCycle) {\n      httpOptions.headers = httpOptions.headers.append(\n        'x-business-cycle',\n        JSON.stringify(req.businessCycle)\n      );\n    }\n    const url = 'http://localhost:3000/dev';\n    switch (req.method.toLowerCase()) {\n      case 'get':\n        return this.httpClient\n          .get(url + req.action, httpOptions)\n          .pipe(retry(2), catchError(this.handleError));\n      case 'post':\n        return this.httpClient.post(url + req.action, req.data, httpOptions);\n      case 'put':\n        return this.httpClient\n          .put(url + req.action, req.data)\n          .pipe(retry(2), catchError(this.handleError));\n      case 'patch':\n        return this.httpClient\n          .patch(url + req.action, req.data)\n          .pipe(retry(2), catchError(this.handleError));\n      case 'delete':\n        return this.httpClient\n          .delete(url + req.action, httpOptions)\n          .pipe(retry(2), catchError(this.handleError));\n      default:\n        return of('invalid req');\n    }\n  }\n}\n","import { ASSETS } from '../../../constants/assets.constants';\n\nexport const NO_DATA_FOUND_IMAGE = ASSETS.search_data;\nexport const NO_DATA_FOUND_MESSAGE = 'No results matched your search criteria.';\n","export const APIs = {\n  fetchTemplates: 'templates/list',\n  default_categories: `default/getDefaultCategories`,\n  fetch_content: 'fetchTemplateContent?id=',\n};\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { AuthService } from '../../../services/auth.service';\nimport { AuthorizerService } from '@vcomply/authorizer';\nimport { Configurations } from '../../../configurations';\nimport { APIs } from '../../../constants/template.constant';\nimport { map, Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class TemplateService {\n  env: any;\n  private tokenDetails: string = '';\n\n  constructor(\n    private http: HttpClient,\n    private authService: AuthorizerService,\n    @Optional() config?: Configurations\n  ) {\n    this.env = config?.envConfig;\n    this.tokenDetails = this.authService.getToken();\n  }\n\n  public sortByKey(array: any[], key: string, order = 1) {\n    return array.sort((a, b) => {\n      const comparison = a[key] > b[key] ? 1 : a[key] < b[key] ? -1 : 0;\n      return order === 1 ? comparison : -comparison;\n    });\n  }\n\n  get headerToken() {\n    return new HttpHeaders().set('token', this.tokenDetails);\n  }\n\n  fetchTemplates(payload: any) {\n    const headers = this.headerToken;\n    return this.http.post(this.env.policyPost + APIs.fetchTemplates, payload, {\n      headers,\n    });\n  }\n\n  fetchDefaultCategories() {\n    const headers = this.headerToken;\n    return this.http\n      .get(this.env.policyGet + APIs.default_categories, {\n        headers,\n      })\n      .pipe(\n        map((res: any) => {\n          return res.map((category: any) => {\n            return {\n              item_id: category.categoryId,\n              item_name: category.name,\n              parent_item_ids: [],\n              parent_items: [],\n              name: category.name,\n            };\n          });\n        })\n      );\n  }\n\n  public getTemplateContent(id: string, type: string = ''): Observable<any> {\n    return this.http.get(\n      this.env.nodeDomain +\n        APIs.fetch_content +\n        id +\n        (type ? `&type=${type}` : '')\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MultiSelectService {\n\n  constructor() { }\n  public overflowHidden = false;\n}\n","import { Component, ElementRef, Input, ViewChild, Output, EventEmitter, OnChanges, SimpleChanges, AfterViewInit } from '@angular/core';\nimport { nanoid } from 'nanoid';\nimport { MultiSelectService } from '../multi-select.service';\n\n@Component({\n  selector: 'cs-multi-select',\n  templateUrl: './cs-multiselect.component.html',\n  styleUrls: ['./cs-multiselect.component.less'],\n})\nexport class CsMultiselectComponent implements OnChanges, AfterViewInit {\n  @Input() isRequired!: boolean;\n  @Input() dropdownLabel!: string;\n  @Input() dropdownSubLabel!: string;\n  @Input() disabled!: boolean;\n  @Input() placeholder: string = '';\n  @Input() searchPlaceholder: string;\n  @Input() value!: any;\n  @Input() selectedItem: any = [];\n  @Output() valueChange: EventEmitter<any[]> = new EventEmitter();\n  @Output() applyFilter: EventEmitter<any> = new EventEmitter();\n  @Output() searchText: EventEmitter<string> = new EventEmitter();\n  @Output() resetSelectedData: EventEmitter<any> = new EventEmitter();\n  @Output() restoreSelectedData: EventEmitter<any[]> = new EventEmitter();\n  dropdownOption!: boolean;\n  positionReset!: boolean;\n  getLeft!: number;\n  getTop!: number;\n  getWidth!: number;\n  maxWidth!: number;\n  activeDropdown!: boolean;\n  items!: any[];\n  previousItems: any[]=[];\n\n  itemsDisplayedList: any[]=[];\n  name: string;\n  filterApplied: boolean = true;\n  searchKey!: any;\n  timer: any;\n  tempSelectedData: any = [];\n\n  private optionList!: ElementRef;\n  @ViewChild('optionList') set content(content: ElementRef) {\n    if (content) {\n      // initially setter gets called with undefined\n      this.optionList = content;\n    }\n  }\n\n  constructor(public multiSelectService: MultiSelectService) {\n    this.value = [];\n    this.items = [];\n    this.name = nanoid();\n    this.searchPlaceholder = 'Search...';\n    // alert(this.tempSelectedData.length);\n  }\n\n  /**\n   *\n   * @param index - Represents the index of the value to be removed\n   */\n  removeValue(index: number): void {\n    this.items.splice(index, 1);\n    this.value.splice(index, 1);\n    this.writeValue(this.value);\n    this.itemsDisplayedList = [...new Set(this.items)]\n    this.applyFilter.emit(this.filterApplied);\n    this.tempSelectedData = [... this.value];\n    this.previousItems =  [...new Set(this.items)]\n    this.multiSelectService.overflowHidden = false;\n  }\n\n\n\n  resetState(type?: any){\n    this.value = [];\n    this.items = [];\n    if(type === 'allReset'){\n      this.previousItems = []\n      this.tempSelectedData = []\n    }\n    if(this.previousItems?.length === 0){\n      this.resetSelectedData.emit(true);\n    }\n  }\n\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.searchPlaceholder) {\n      this.searchPlaceholder = this.searchPlaceholder || 'Search...';\n    }\n  }\n  ngAfterViewInit()\t{\n    if(this.selectedItem && this.selectedItem?.length ){\n      this.selectedItem.forEach( (ele: any) => {\n        // this.addValue({key: ele?.rc_name ?? ele?.category_name , value: ele});\n        this.addValue({key: ele?.item_short_name , value: ele});\n      })\n    }\n    this.tempSelectedData = this.selectedItem ? [...this.selectedItem] : [];\n    this.previousItems =  [...new Set(this.items)];\n\n  }\n\n  set CheckBoxVal(val: any[]) {\n    if (val !== undefined && val !== null) {\n      this.value = val;\n      this.valueChange.emit(this.value);\n    }\n  }\n\n  search(event: any) {\n    this.searchText.emit(event);\n    clearTimeout(this.timer);\n    this.timer = setTimeout(() => {\n      this.searchKey = event;\n    }, 400);\n  }\n\n  writeValue(value: any[]): void {\n    if(value?.length){\n    this.CheckBoxVal = value;\n    }\n  }\n\n  /**\n   *\n   * @param obj - Represents the object which is added to the value list\n   */\n  addValue(obj: { key: string; value: any }): void {\n    this.items.push(obj.key);\n    this.value.push(obj.value);\n    this.writeValue(this.value);\n  }\n\n  /**\n   *\n   * @param value - Represents the value to be removed from the value list\n   */\n  removeValueFromCheckbox(value: any): void {\n    let index: number = this.value.indexOf(value);\n    this.items.splice(index, 1);\n    this.value.splice(index, 1);\n    this.writeValue(this.value);\n  }\n\n  openDropdown(event: any): void {\n    this.dropdownOption = true;\n    this.multiSelectService.overflowHidden = true;\n    setTimeout(() => {\n      const dropdown = event.target.getBoundingClientRect();\n      const selectOption = this.optionList.nativeElement.offsetHeight;\n      if (dropdown.top + selectOption + 50 > window.innerHeight) {\n        this.getTop = dropdown.top - selectOption;\n      } else {\n        this.getTop = dropdown.top + dropdown.height;\n      }\n      this.getLeft = dropdown.left;\n      this.getWidth = dropdown.width;\n      this.maxWidth = dropdown.width * 1.25;\n    }, 10);\n    setTimeout(() => {\n      this.activeDropdown = true;\n    }, 100);\n  }\n\n  /**\n   *\n   * @param applyFilter - Determines whether filter is applied or not\n   */\n  closeDropdown(applyFilter: boolean): void {\n    this.dropdownOption = false;\n    this.search('');\n    this.filterApplied = applyFilter;\n    this.multiSelectService.overflowHidden = false;\n    this.searchKey = '';\n    if (applyFilter) {\n      this.tempSelectedData =  [... new Set(this.value)];\n      this.previousItems =  [...new Set(this.items)];\n      this.itemsDisplayedList = [...new Set(this.items)]\n      this.applyFilter.emit(applyFilter);\n    } else {\n      this.filterApplied = true;\n      this.tempSelectedData?.forEach( (ele: any) => {\n        // this.addValue({key: ele?.rc_name ?? ele?.category_name, value: ele});\n        this.addValue({key: ele?.item_short_name , value: ele});\n      })\n      this.resetToLastState();\n    }\n  }\n\n  resetToLastState(){\n    this.value = [...new Set(this.tempSelectedData)];\n    this.items = [...new Set(this.previousItems)];\n    this.restoreSelectedData.emit([...new Set(this.tempSelectedData)]);\n  }\n\n  checkChanges(){\n    if (this.previousItems?.length === 0 && this.items?.length > 0) {\n      return false;\n    } else if (this.previousItems?.length === 0 && this.items?.length === 0) {\n      return true;\n    } else {\n      return (\n        this.previousItems?.every((element) => this.items?.includes(element)) &&\n        this.previousItems?.length === this.items?.length\n      );\n    }\n\n  }\n}\n","<div class=\"multi-select-input-group\" (clickOutside)=\"dropdownOption = false\">\n  <label *ngIf=\"dropdownLabel\">\n    {{ dropdownLabel }}\n    <span class=\"sub-label\" *ngIf=\"dropdownSubLabel\">{{\n      dropdownSubLabel\n    }}</span>\n    <span class=\"required\" *ngIf=\"isRequired\">*</span></label\n  >\n  <div class=\"custom-select-box\" [class.disabled]=\"disabled\">\n    <div class=\"multiple-value vx-d-flex vx-align-center vx-justify-between\">\n      <div\n        class=\"multiple-value-inner vx-d-flex vx-align-center vx-justify-end vx-pr-2\"\n        (click)=\"openDropdown($event)\"\n      ></div>\n      <span class=\"placeholder\" *ngIf=\"!value || value?.length === 0\">{{\n        placeholder\n      }}</span>\n      <!-- <i class=\"icons arrow-down vx-fs-9\">&#xe9e8;</i> -->\n      <div class=\"vx-d-flex vx-align-center\" *ngIf=\"value && value?.length > 0\">\n        <div\n          class=\"chip\"\n          *ngFor=\"let data of items | slice : 0 : 1; let i = index\"\n        >\n          <span class=\"close\" (click)=\"removeValue(i)\">&times;</span\n          ><span class=\"value\">{{ data }}</span>\n        </div>\n        <span\n          class=\"counter\"\n          *ngIf=\"items.length > 1\"\n          appPopover\n          (click)=\"actionButton.popover()\"\n          placement=\"right\"\n          >+{{ items.length - 1 }}</span\n        >\n        <app-popover #actionButton>\n          <div class=\"template-filter-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"let data of items.slice(1); let j = index\">\n                <div class=\"chip-item\">\n                  <i class=\"icons\" (click)=\"removeValue(j + 1)\">&#xe90d;</i>\n                  <span>{{ data }}</span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n    </div>\n  </div>\n  <div\n    class=\"overlay active\"\n    *ngIf=\"dropdownOption === true\"\n    (click)=\"closeDropdown(false)\"\n  ></div>\n  <ul\n    class=\"list-of-option\"\n    *ngIf=\"dropdownOption === true\"\n    #optionList\n    (keyup.Escape)=\"closeDropdown(false)\"\n    [style.top.px]=\"getTop\"\n    [style.left.px]=\"getLeft\"\n    [style.min-width.px]=\"getWidth\"\n    [style.max-width.px]=\"maxWidth\"\n    [class.active]=\"activeDropdown\"\n  >\n    <div class=\"input-group\">\n      <input\n        type=\"text\"\n        [placeholder]=\"searchPlaceholder\"\n        [ngModel]=\"searchKey\"\n        (ngModelChange)=\"search($event)\"\n      />\n    </div>\n    <ng-content></ng-content>\n    <div class=\"button-block\">\n      <button\n        type=\"button\"\n        [class.disabled]=\"checkChanges()\"\n        (click)=\"closeDropdown(true)\"\n      >\n        Apply\n      </button>\n    </div>\n  </ul>\n</div>\n","import { Component, Input, ElementRef, ViewChild } from '@angular/core';\nimport { CsMultiselectComponent } from '../cs-multiselect/cs-multiselect.component';\n@Component({\n  selector: 'cs-multi-select-option',\n  templateUrl: './cs-multiselect-option.component.html',\n  styleUrls: ['./cs-multiselect-option.component.less'],\n})\nexport class CsMultiselectOptionComponent {\n  @Input() value!: any;\n  @ViewChild('options', { read: ElementRef, static: false })\n  option!: ElementRef;\n  constructor(public select: CsMultiselectComponent) {}\n\n  change(event: any): void {\n    if (event.target.checked) {\n      this.select.addValue({\n        key: this.option.nativeElement.innerHTML.replace(/&lt;/g,\"<\"),\n        value: this.value,\n      });\n    } else {\n      this.select.removeValueFromCheckbox(this.value);\n    }\n  }\n}\n","<li>\n  <label class=\"multi-select\">\n    <input type=\"checkbox\" tabindex=\"0\" [value]=\"value\" [checked]=\"select.value.includes(value)\" (change)=\"change($event)\" />\n    <span class=\"checkbox\"></span>\n    <span class=\"value\" #options>\n      <ng-content> </ng-content>\n    </span>\n  </label>\n</li>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-template-list-table',\n  templateUrl: './template-list-table.component.html',\n  styleUrls: ['./template-list-table.component.less'],\n})\nexport class TemplateListTableComponent implements OnInit {\n\n  previewEnabled: boolean = false;\n\n  @Input() selectedTemplate: any;\n  @Input() templateList: any[] = [];\n  @Input() loader: boolean = false;\n  @Input() categoryList: any[] = [];\n  @Input() feature: any;\n  @Output() onSort = new EventEmitter<string>();\n  @Output() onSelectTemplate = new EventEmitter<any>();\n  @Output() onPreview = new EventEmitter<any>();\n\n  ngOnInit(): void {\n    this.previewEnabled = this.feature?.isFeatureEnabled('ff_preview_enabled');\n  }\n\n  onSelect(template: any) {\n    this.selectedTemplate = template;\n    this.onSelectTemplate.emit(template);\n  }\n}\n","<div class=\"template-list-table\">\n  <div class=\"table-header\">\n    <div class=\"table-row\">\n      <div\n        class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n      >\n        #\n      </div>\n      <div\n        class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center template-name\"\n      >\n        <span\n          (click)=\"onSort.emit('name')\"\n          class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"\n          ><i class=\"icons\">&#xeaf0;</i></span\n        >\n        TEMPLATE NAME\n      </div>\n      <div\n        class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n      >\n        <!-- <span class=\"sorting vx-fs-9 vx-txt-blue vx-mr-1\"\n          ><i class=\"icons\">&#xeaf0;</i></span\n        > -->\n        CATEGORIES\n      </div>\n      <div\n        class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center view-action\"\n      ></div>\n    </div>\n  </div>\n  <div class=\"table-body\">\n    <div\n      class=\"table-row\"\n      *ngFor=\"let eachTemplate of templateList; let i = index\"\n      [class.active]=\"selectedTemplate?._id === eachTemplate?._id\"\n    >\n      <div\n        class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n      >\n        <div\n          class=\"sr-no\"\n          [appTooltip]=\"i + 1\"\n          placement=\"bottom\"\n          delay=\"0\"\n          type=\"black\"\n          [tooltipMandatory]=\"true\"\n        >\n          {{ i + 1 }}\n        </div>\n        <app-cs-radio\n          name=\"template\"\n          [value]=\"selectedTemplate?._id\"\n          [checked]=\"selectedTemplate?._id === eachTemplate?._id\"\n          (checkedEvent)=\"onSelect(eachTemplate)\"\n        ></app-cs-radio>\n      </div>\n      <div\n        class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center template-name\"\n      >\n        <div\n          class=\"value vx-fs-12 vx-label-txt\"\n          [appTooltip]=\"eachTemplate?.name\"\n          placement=\"bottom-left\"\n          delay=\"0\"\n          type=\"black\"\n          [tooltipMandatory]=\"false\"\n        >\n          {{ eachTemplate?.name }}\n        </div>\n      </div>\n      <div\n        class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n        *ngIf=\"eachTemplate?.categoryDetails as categoryDetails\"\n      >\n        <div class=\"category-inner\">\n          <div class=\"category-name vx-fs-12 vx-lh-4\">\n            {{ categoryDetails[0]?.item_name }}\n          </div>\n          <div\n            *ngIf=\"categoryDetails[0]?.parent_items?.length\"\n            class=\"within-part vx-d-flex vx-align-center vx-pr-3\"\n          >\n            <span\n              class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n              >Within</span\n            >\n            <span\n              class=\"within-value vx-fs-11 vx-paragraph-txt\"\n              [appTooltip]=\"categoryDetails[0]?.parent_items?.join(' < ')\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ categoryDetails[0]?.parent_items?.join(\" < \") }}</span\n            >\n          </div>\n        </div>\n        <button\n          *ngIf=\"categoryDetails?.length > 1\"\n          class=\"countBtn vx-fs-9 vx-fw-600 vx-txt-blue vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\n          appPopover\n          (click)=\"MoreCategory.popover()\"\n          placement=\"right\"\n        >\n          +{{ categoryDetails?.length - 1 }}\n        </button>\n\n        <app-popover #MoreCategory>\n          <div class=\"wf-action-list category-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"let eachTemplate of categoryDetails | slice : 1\">\n                <div class=\"avatar-card\">\n                  <div class=\"vx-w-100\">\n                    <span\n                      class=\"value vx-p-0 vx-w-100\"\n                      [appTooltip]=\"eachTemplate?.item_name\"\n                      placement=\"bottom-left\"\n                      type=\"black\"\n                      delay=\"0\"\n                      [tooltipMandatory]=\"false\"\n                      >{{ eachTemplate?.item_name }}</span\n                    >\n                    <div\n                      *ngIf=\"eachTemplate?.parent_items?.length\"\n                      class=\"within-part vx-d-flex vx-align-center vx-pr-3\"\n                    >\n                      <span\n                        class=\"within-box vx-fs-9 vx-fw-600 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2 vx-lh-3\"\n                        >Within</span\n                      >\n                      <span\n                        class=\"within-value vx-fs-11 vx-paragraph-txt\"\n                        [appTooltip]=\"eachTemplate?.parent_items?.join(' < ')\"\n                        placement=\"bottom-left\"\n                        delay=\"0\"\n                        type=\"black\"\n                        [tooltipMandatory]=\"false\"\n                        >{{ eachTemplate?.parent_items?.join(\" < \") }}</span\n                      >\n                    </div>\n                  </div>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n      <div\n        class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center view-action\"\n      >\n        <button\n          *ngIf=\"previewEnabled\"\n          class=\"previewBtn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-2 vx-pr-2 vx-m-0 vx-d-flex vx-align-center vx-lh-6\"\n          (click)=\"onPreview.emit(eachTemplate)\"\n        >\n          PREVIEW\n        </button>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * @Pipe SearchByKeys\n *\n * A custom Angular pipe that filters an array of objects based on a search value and specified keys.\n *\n * @example\n * <div *ngFor=\"let item of items | SearchByKeys: ['name', 'description']: searchValue\">\n *   {{ item.name }}\n * </div>\n *\n * @class\n * @implements {PipeTransform}\n */\n\n/**\n * Transforms an array of objects by filtering them based on the provided keys and search value.\n *\n * @param {any[]} items - The array of objects to be filtered.\n * @param {string[]} keys - The keys of the objects to be searched.\n * @param {string} value - The search value to filter the objects.\n * @returns {any[]} - The filtered array of objects.\n */\n\n/**\n * Searches within an object for a value.\n *\n * @private\n * @param {any} obj - The object to search within.\n * @param {string} value - The search value.\n * @returns {boolean} - True if the value is found within the object, otherwise false.\n */\n@Pipe({\n  name: 'SearchByKeys',\n})\nexport class SearchByKeysPipe implements PipeTransform {\n  transform(items: any[], keys: string[], value: string): any[] {\n    if (!items || !keys || !value) {\n      return items;\n    }\n    value = value.toLowerCase();\n    return items.filter((item) => {\n      return keys.some((key) => {\n        if (Array.isArray(item[key])) {\n          return item[key].some((subItem: any) =>\n            this.searchInObject(subItem, value)\n          );\n        }\n        return item[key]?.toString().toLowerCase().includes(value);\n      });\n    });\n  }\n\n  private searchInObject(obj: any, value: string): boolean {\n    return Object.values(obj).some((val) =>\n      val?.toString().toLowerCase().includes(value)\n    );\n  }\n}\n","import { Component, EventEmitter, Input, Optional, Output } from '@angular/core';\nimport { TemplateService } from '../services/template.service';\nimport { forkJoin } from 'rxjs';\nimport {\n  NO_DATA_FOUND_IMAGE,\n  NO_DATA_FOUND_MESSAGE,\n} from '../constants/template.constant';\nimport { PolicyService } from '../../../workflow-services/policy.service';\nimport { Configurations } from '../../../configurations';\n@Component({\n  selector: 'app-select-template-list',\n  templateUrl: './select-template-list.component.html',\n  styleUrls: ['./select-template-list.component.less'],\n})\nexport class SelectTemplateListComponent {\n  fileUrl: string = ''\n  env:any;\n  animation = false;\n  defaultTemplates: any[] = [];\n  customTemplates: any[] | null = null;\n  templateList: any[] = [];\n  currentTab = 'VCOMPLY';\n  loader: boolean = false;\n  categoryList: any[] = [];\n  defaultCategoryList: any[] = [];\n  userCreatedCategoryList: any[] = [];\n  sortStatus = -1;\n  searchCategory: string = '';\n  searchTemplate: string = '';\n  selectedCategory: any[] = [];\n  NO_DATA_FOUND_IMAGE = NO_DATA_FOUND_IMAGE;\n  NO_DATA_FOUND_MESSAGE = NO_DATA_FOUND_MESSAGE;\n  selectedTemplate: any[] = [];\n  isPreview = false;\n  previewTemplate: any;\n\n  @Input() selectedCategoryId: number[] = [];\n  @Input() feature: any;\n  @Output() onTemplateSelect = new EventEmitter<any>();\n\n  constructor(\n    private templateService: TemplateService,\n    private policyService: PolicyService,\n    @Optional() config?: Configurations\n  ) {\n    if(config){\n      this.env = config?.envConfig\n    }\n  }\n\n  ngOnInit(): void {\n    this.setAnimation();\n    this.getTemplate();\n  }\n\n  setAnimation() {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  switchTab(tab: string) {\n    this.currentTab = tab;\n    this.selectedCategory = [];\n    if (tab === 'VCOMPLY') {\n      this.templateList = [...this.defaultTemplates];\n      this.categoryList = this.defaultCategoryList;\n    } else {\n      if (this.customTemplates === null) {\n        this.getCustomTemplates();\n      } else {\n        this.templateList = [...this.customTemplates];\n        this.categoryList = this.userCreatedCategoryList;\n      }\n    }\n  }\n\n  getCustomTemplates() {\n    this.loader = true;\n    const payload = {\n      type: 'custom',\n      categoryId: this.selectedCategoryId.map(\n        (category: any) => category.item_id\n      ),\n    };\n    this.templateService.fetchTemplates(payload).subscribe((res: any) => {\n      this.customTemplates = res?.templates ?? [];\n      this.mapCustomTemplate();\n    });\n  }\n\n  mapCustomTemplate() {\n    this.policyService.getCategoriesList().subscribe((res: any) => {\n      this.userCreatedCategoryList = [...res];\n      this.userCreatedCategoryList = this.userCreatedCategoryList.map(\n        (res: any) => {\n          const parentItems = [...new Set(res?.parent_items ?? [])];\n          parentItems.unshift(res.item_name);\n          return {\n            ...res,\n            name: parentItems?.join(' < '),\n            parent_items: res?.parent_items.reverse(),\n          };\n        }\n      );\n      if (this.customTemplates) {\n        this.customTemplates = this.customTemplates.map((template: any) => {\n          return {\n            ...template,\n            categoryDetails: this.userCreatedCategoryList.filter(\n              (category: any) =>\n                template?.categoryId?.includes(category.item_id)\n            ),\n          };\n        });\n      }\n      this.templateList = [...new Set(this.customTemplates ?? [])];\n      if(this.selectedCategoryId?.length){\n      const categoryIds = this.selectedCategoryId.map(\n        (category: any) => category.item_id\n      );\n      this.userCreatedCategoryList = this.userCreatedCategoryList.filter(\n        (category: any) => categoryIds?.includes(category.item_id)\n      );\n    }\n      this.loader = false;\n      this.categoryList = this.userCreatedCategoryList;\n    });\n  }\n\n  getTemplate() {\n    this.loader = true;\n    const payload = {\n      type: 'default',\n    };\n    forkJoin([\n      this.templateService.fetchTemplates(payload),\n      this.templateService.fetchDefaultCategories(),\n    ]).subscribe((res: any) => {\n      this.defaultTemplates = res[0]?.templates;\n      this.defaultCategoryList = res[1];\n      this.mapDefaultTemplate();\n      this.categoryList = [...new Set(this.defaultCategoryList)];\n\n      this.templateList = this.defaultTemplates;\n      this.loader = false;\n    });\n  }\n\n  mapDefaultTemplate() {\n    this.defaultTemplates = this.defaultTemplates.map((template: any) => {\n      const category = this.defaultCategoryList.filter((category: any) =>\n        template?.categoryId?.includes(category.item_id)\n      );\n      return {\n        ...template,\n        categoryDetails: category,\n      };\n    });\n  }\n\n  sortBy(key: string) {\n    this.sortStatus = this.sortStatus * -1;\n    this.templateList = this.templateService.sortByKey(\n      this.templateList,\n      key,\n      this.sortStatus\n    );\n  }\n\n  onSelectCategory(category: any, event: any) {\n    if (event.target.checked) {\n      this.selectedCategory.push(category?.item_id);\n    } else {\n      this.selectedCategory = this.selectedCategory.filter(\n        (id: any) => id !== category?.item_id\n      );\n    }\n    this.selectedCategory = [...new Set(this.selectedCategory)];\n  }\n\n  onRestoreSelectedData(event: any[]) {\n    if (event?.length === 0) {\n      this.selectedCategory = [];\n    } else {\n      this.selectedCategory = [...new Set(event)];\n    }\n  }\n\n  onApplyFilter(event: any) {\n    if (!event) {\n      this.selectedCategory = [];\n      return;\n    }\n    let selectedTemplate =\n      this.currentTab === 'VCOMPLY'\n        ? this.defaultTemplates\n        : this.customTemplates ?? [];\n    selectedTemplate = [...new Set(selectedTemplate)];\n    if (this.selectedCategory.length === 0) {\n      this.templateList = selectedTemplate;\n      return;\n    }\n    this.templateList = selectedTemplate.filter((template: any) => {\n      return template?.categoryId?.some((id: any) =>\n        this.selectedCategory.includes(id)\n      );\n    });\n  }\n\n  onSelectTemplate(template: any) {\n    this.selectedTemplate = [template];\n  }\n\n  save() {\n    this.onTemplateSelect.emit(this.selectedTemplate);\n  }\n\n  close() {\n    this.onTemplateSelect.emit([]);\n  }\n\n  deleteEvent() {\n    this.selectedTemplate = [];\n  }\n\n  onPreview(details: any) {\n    this.loader = false;\n    this.isPreview = true;\n    this.previewTemplate = details;\n    this.fileUrl = `${this.env?.s3Url}${this.env?.s3Bucket}/${details?.s3DocxPath}`;\n    console.log(this.fileUrl, 'fileUrl');\n  }\n\n  onClosePreview() {\n    this.isPreview = false;\n    this.previewTemplate = null;\n  }\n}\n","<div\n  class=\"select-template-list\"\n  [class.animate]=\"animation\"\n  [class.withPreview]=\"isPreview\"\n>\n  <ng-container *ngIf=\"!isPreview\">\n    <div\n      class=\"select-template-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n    >\n      <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Template</div>\n    </div>\n    <div class=\"select-template-list-body\">\n      <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n      <div class=\"select-template-list-tab vx-d-flex vx-align-center vx-mb-2\">\n        <button\n          (click)=\"switchTab('VCOMPLY')\"\n          class=\"tab-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n          [class.active]=\"currentTab === 'VCOMPLY'\"\n        >\n          VCOMPLY TEMPLATES\n        </button>\n        <button\n          (click)=\"switchTab('USER_CREATED')\"\n          class=\"tab-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n          [class.active]=\"currentTab === 'USER_CREATED'\"\n        >\n          USER-CREATED TEMPLATES\n        </button>\n      </div>\n      <div class=\"search-block vx-mb-2\">\n        <i class=\"icons\">&#xe90b;</i>\n        <input type=\"text\" [(ngModel)]=\"searchTemplate\" placeholder=\"Search\" />\n      </div>\n      <div *ngIf=\"categoryList?.length\" class=\"body-top vx-d-flex vx-align-center vx-justify-end vx-mb-2\">\n        <cs-multi-select\n          (searchText)=\"searchCategory = $event\"\n          [placeholder]=\"'Select Category'\"\n          [value]=\"selectedCategory\"\n          (restoreSelectedData)=\"onRestoreSelectedData($event)\"\n          (applyFilter)=\"onApplyFilter($event)\"\n        >\n          <ng-container\n            *ngFor=\"\n              let eachCategory of categoryList\n                | SearchByKeys : ['name'] : searchCategory\n            \"\n          >\n            <cs-multi-select-option\n              [appTooltip]=\"eachCategory?.name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              [value]=\"eachCategory?.item_id\"\n              (change)=\"onSelectCategory(eachCategory, $event)\"\n              [tooltipMandatory]=\"true\"\n            >\n              {{ eachCategory?.name }}\n            </cs-multi-select-option>\n          </ng-container>\n        </cs-multi-select>\n      </div>\n      <div class=\"body-inner vx-mb-1\">\n        <ng-container *ngIf=\"!loader\">\n          <ng-container\n            *ngIf=\"\n              templateList\n                | SearchByKeys\n                  : ['name', 'categoryDetails']\n                  : searchTemplate as allTemplate\n            \"\n          >\n            <app-template-list-table\n              *ngIf=\"allTemplate.length\"\n              [templateList]=\"allTemplate\"\n              [loader]=\"loader\"\n              [categoryList]=\"categoryList\"\n              [selectedTemplate]=\"selectedTemplate[0]\"\n              [feature]=\"feature\"\n              (onSort)=\"sortBy($event)\"\n              (onSelectTemplate)=\"onSelectTemplate($event)\"\n              (onPreview)=\"onPreview($event)\"\n            ></app-template-list-table>\n            <app-no-data\n              *ngIf=\"!allTemplate?.length\"\n              [noDataImage]=\"NO_DATA_FOUND_IMAGE\"\n              [noDataText]=\"NO_DATA_FOUND_MESSAGE\"\n            ></app-no-data>\n          </ng-container>\n        </ng-container>\n      </div>\n\n      <app-floating-bar\n        (closeEvent)=\"save()\"\n        (closeList)=\"close()\"\n        [isDisabled]=\"selectedTemplate?.length === 0\"\n        [selectedData]=\"selectedTemplate\"\n        [displayElementKey]=\"'name'\"\n        [singularText]=\"'Template Selected'\"\n        (deleteEvent)=\"deleteEvent()\"\n      >\n      </app-floating-bar>\n    </div>\n  </ng-container>\n  <ng-container *ngIf=\"isPreview\">\n    <div\n      class=\"select-template-list-head vx-d-flex vx-align-center vx-pl-4 vx-pr-4\"\n    >\n      <button\n        (click)=\"onClosePreview()\"\n        class=\"previewBtn vx-fs-14 vx-fw-500 vx-label-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n      >\n        <i class=\"icons vx-mr-1\">&#xe91d;</i>Preview\n      </button>\n      <div\n        class=\"template-name vx-fs-14 vx-ml-1\"\n        [appTooltip]=\"previewTemplate?.name\"\n        placement=\"bottom-left\"\n        delay=\"0\"\n        type=\"black\"\n        [tooltipMandatory]=\"false\"\n      >\n        {{ previewTemplate?.name }}\n      </div>\n    </div>\n    <div class=\"preview-template-body vx-d-flex vx-justify-center\">\n      <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n      <div *ngIf=\"!loader\" class=\"preview-template-body-inner\">\n        <ngx-doc-viewer\n          [url]=\"fileUrl\"\n          viewer=\"office\"\n          style=\"width: 100%; height: 100%; margin: 0\"\n          disableContent=\"popout-hide\"\n        >\n        </ngx-doc-viewer>\n      </div>\n    </div>\n  </ng-container>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'app-checkpoints-policy-questions',\n  templateUrl: './checkpoints-policy-questions.component.html',\n  styleUrls: ['./checkpoints-policy-questions.component.less'],\n})\nexport class CheckpointsPolicyQuestionsComponent implements OnInit {\n  checkPointQuestions: any = [];\n  @Output() changeMax = new EventEmitter();\n  @Input() requiredPoint = 0;\n  @Output() requiredPointChange = new EventEmitter();\n  @Input() set checkpointDetails(value: any) {\n    this.checkPointQuestions = value;\n    if (this.checkPointQuestions.length) {\n      this.checkPointQuestions.forEach((element: any, index: number) => {\n        const answerIndex = element?.answers.indexOf(element?.ranswer);\n        if (answerIndex > -1 && element.ranswer.trim().length > 0) {\n          this.rightAnswerIndex[index] = answerIndex;\n        }\n      });\n    }\n  }\n  @Output() saveValidQuestions = new EventEmitter();\n  activeQuestionIndex = 0;\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  errorTracker: any = [];\n  rightAnswerIndex: any = [];\n\n  /**\n   * Changes active question index\n   * @param index\n   */\n  changeActiveQuestion(index: number) {\n    this.activeQuestionIndex = index;\n  }\n\n  cloneQuestion(index: any, isBlank?: boolean) {\n    if (isBlank === false) {\n      const COPY_ARR = JSON.parse(\n        JSON.stringify(this.checkPointQuestions[index])\n      );\n      this.checkPointQuestions.splice(index + 1, 0, COPY_ARR);\n    }\n    if (isBlank === true) {\n      const QUESTION = {\n        ranswer: '',\n        question: '',\n        answers: ['', ''],\n      };\n      this.checkPointQuestions.splice(index + 1, 0, QUESTION);\n    }\n    this.changeActiveQuestion(index + 1);\n    this.requiredPointChange.emit(this.requiredPoint + 1);\n    //this.changeMax.emit(this.checkPointQuestions.length)\n  }\n\n  addOption(questionIndex: number, optionIndex: number) {\n    this.checkPointQuestions[questionIndex].answers.splice(\n      optionIndex + 1,\n      0,\n      ''\n    );\n    this.focusAnOption(questionIndex, optionIndex + 1);\n  }\n  deleteOption(questionIndex: number, optionIndex: number) {\n    this.checkPointQuestions[questionIndex].answers.splice(optionIndex, 1);\n    this.focusAnOption(questionIndex, optionIndex - 1);\n  }\n\n  focusAnOption(questionIndex: number, optionIndex: number) {\n    setTimeout(() => {\n      const EL: any = document.getElementById(\n        'option' + '-' + questionIndex + '' + optionIndex\n      );\n      if (EL) {\n        EL.focus();\n      }\n    }, 10);\n  }\n\n  deleteOnBackspace(questionIndex: number, optionIndex: number) {\n    if (\n      this.checkPointQuestions[questionIndex].answers?.length > 2 &&\n      this.checkPointQuestions[questionIndex].answers[optionIndex].trim()\n        .length === 0\n    ) {\n      this.deleteOption(questionIndex, optionIndex);\n    }\n  }\n  deleteQuestion(questionIndex: number) {\n    this.checkPointQuestions.splice(questionIndex, 1);\n    if (this.checkPointQuestions.length === 0) {\n      const QUESTION = {\n        ranswer: '',\n        question: '',\n        answers: ['', ''],\n      };\n      this.checkPointQuestions.push(QUESTION);\n      this.requiredPoint = 1;\n    }\n    //this.changeMax.emit(this.checkPointQuestions.length)\n    this.requiredPointChange.emit(this.requiredPoint - 1);\n  }\n  selectRightAnswer(evt: any, index: number, answerIndex: string) {\n    if (evt) {\n      this.checkPointQuestions[index].ranswer =\n        this.checkPointQuestions[index][answerIndex];\n      this.rightAnswerIndex[index] = answerIndex;\n      this.reValidate(index);\n    }\n  }\n\n  reValidate(questionIndex: number) {\n    if (this.errorTracker[questionIndex]) {\n      this.validateForm();\n    }\n  }\n\n  async saveCheckPoint() {\n    const validStatus = await this.validateForm();\n    if (validStatus) {\n      this.saveValidQuestions.emit(this.checkPointQuestions);\n    }\n  }\n\n  mapRightAnswers() {\n    this.checkPointQuestions.forEach((element: any, index: number) => {\n      element.ranswer = element.answers[this.rightAnswerIndex[index]] ?? '';\n    });\n  }\n  async validateForm() {\n    await this.mapRightAnswers();\n    this.errorTracker = [];\n    await this.checkPointQuestions.forEach((element: any, index: number) => {\n      if (element.question.trim().length === 0) {\n        this.errorTracker[index] = {\n          type: 'QUESTION',\n          message: 'Please add a question.',\n        };\n      } else {\n        if (element.answers.length >= 2) {\n          if (this.isOptionValid(element.answers) === false) {\n            this.errorTracker[index] = {\n              type: 'OPTION',\n              message: 'You need to complete all the answer options.',\n            };\n          } else {\n            if (this.checkDuplicate(element?.answers) === true) {\n              this.errorTracker[index] = {\n                type: 'OPTION',\n                message: 'Two options cannot have same title.',\n              };\n            } else {\n              if (element?.ranswer?.length === 0) {\n                this.errorTracker[index] = {\n                  type: 'OPTION',\n                  message:\n                    'Select the correct answer choice for this question.',\n                };\n              }\n            }\n          }\n        }\n      }\n    });\n    return this.errorTracker.length > 0 ? false : true;\n  }\n  isOptionValid(options: any) {\n    if (\n      options.length ===\n      options.filter((ele: any) => ele.trim().length > 0).length\n    ) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n  checkDuplicate(arr: any) {\n    let result = false;\n    // create a Set with array elements\n    const s = new Set(arr);\n    // compare the size of array and Set\n    if (arr.length !== s.size) {\n      result = true;\n    }\n    return result;\n  }\n\n  trackByFn(index: any, item: any) {\n    return index;\n  }\n}\n","<div class=\"checkpoints-policy-questions\">\n    <!-- <div class=\"checkpoints-questions-blocks instruction\">\n        <div class=\"container\">\n            <h3 class=\"question\">\n                <span class=\"counter\"><i class=\"icons\">&#xe932;</i></span>\n                <span class=\"text\">Add instruction</span>\n            </h3>\n        </div>\n    </div> -->\n    <!-- <small>\n      <pre>\n        {{checkPointQuestions |json}}\n      </pre>\n    </small> -->\n    <div class=\"checkpoints-policy-questions-top vx-d-flex vx-align-center vx-justify-between vx-pb-2 vx-mb-2\">\n        <div class=\"vx-d-flex vx-align-center\">\n            <span class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mr-1\">TOTAL POINTS</span>\n            <span class=\"vx-fs-11 vx-paragraph-txt vx-mr-1\">(Each question carries 1 point)</span>\n            <div class=\"question-count vx-fs-12 vx-paragraph-txt vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center\">{{checkPointQuestions.length}}</div>\n        </div>\n        <div class=\"vx-d-flex vx-align-center\">\n            <span class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase\">POINTS REQUIRED TO ATTEST: <span class=\"vx-fs-14 vx-txt-red\">*</span></span>\n            <i class=\"icons info vx-fs-12 vx-txt-blue vx-ml-2\" appPopover (click)=\"policyPassing.popover()\" placement=\"right\">&#xe91f;</i>\n            <input class=\"attestInput\"  type=\"number\" [(ngModel)]=\"requiredPoint\" [max]=\"checkPointQuestions.length\"   onkeydown=\"return event.keyCode !== 190\" min=\"0\"\n            oninput=\"this.value = Math.abs(this.value);\" (ngModelChange)=\"requiredPointChange.emit(requiredPoint)\"/>\n            <app-popover #policyPassing [dontCloseonClick]=\"true\">\n                <div class=\"infoPopup\">\n                 Every correct answer choice carries 1 point. You can specify the total number of questions that the reader must answer correctly in order to attest the policy.\n                </div>\n            </app-popover>\n        </div>\n    </div>\n    <ng-container *ngFor=\"let questionValue of checkPointQuestions; let questionIndex = index\">\n      <!-- [class.error]=\"questionIndex === 0\" -->\n        <div class=\"checkpoints-policy-questions-blocks\" [appScrollInView]=\"activeQuestionIndex === questionIndex\"   [class.active]=\"activeQuestionIndex === questionIndex\" (click)=\"changeActiveQuestion(questionIndex)\">\n            <div class=\"container\">\n                <h3 class=\"question\" >\n                    <span class=\"counter\">{{questionIndex + 1}}.\n                      <!-- <span class=\"required\">*</span> -->\n                    </span>\n                    <input [appConditionalFocus]=\"activeQuestionIndex === questionIndex\" [(ngModel)]=\"questionValue.question\" class=\"text\" type=\"text\"\n                        placeholder=\"Type your question here\" (ngModelChange)=\"reValidate(questionIndex)\"\n                       >\n                </h3>\n                <p class=\"error-message\" *ngIf=\"errorTracker[questionIndex]?.type === 'QUESTION'\">{{errorTracker[questionIndex]?.message}}</p>\n                <ul class=\"list\">\n\n                    <li *ngFor=\"let option of questionValue.answers; let optionIndex = index;trackBy:trackByFn\">\n                        <app-cs-radio  [readonly]=\"option?.trim()?.length === 0\" [name]=\"'option-' + '' + questionIndex + '' + optionIndex\" [checked]=\"rightAnswerIndex[questionIndex] === optionIndex ? true  :false \"\n                        (checkedEvent)=\"selectRightAnswer($event,questionIndex,optionIndex)\" [oneLine]=\"true\" [id]=\"optionIndex + 'wee'\" >\n                          <input  [id]=\"'option-' + '' + questionIndex + '' + optionIndex\" (ngModelChange)=\"reValidate(questionIndex)\"\n                          (keydown.enter)=\"addOption(questionIndex,optionIndex)\"\n                          (keydown.backspace)=\"deleteOnBackspace(questionIndex,optionIndex)\"\n                          placeholder=\"Option\" [(ngModel)]=\"questionValue.answers[optionIndex]\" type=\"text\" placeholder=\"Option\" />\n                        </app-cs-radio>\n                        <button *ngIf=\"questionValue?.answers?.length > 2 && activeQuestionIndex === questionIndex\" (click)=\"deleteOption(questionIndex,optionIndex)\" class=\"close\" ><i class=\"icons\">&#xe90d;</i></button>\n                    </li>\n\n                    <li class=\"add-new\" *ngIf=\"activeQuestionIndex === questionIndex\">\n                        <app-cs-radio [oneLine]=\"true\" [readonly]=\"true\">\n                            <input type=\"text\" readonly placeholder=\"Add more option\"\n                                (click)=\"addOption(questionIndex,questionValue?.answers?.length-1)\">\n                        </app-cs-radio>\n                    </li>\n                </ul>\n                <p class=\"error-message\" *ngIf=\"errorTracker[questionIndex]?.type === 'OPTION'\">{{errorTracker[questionIndex]?.message}}</p>\n            </div>\n\n            <div class=\"footer\">\n                <div class=\"left\">\n                    <!-- <app-cs-checkbox>Is required</app-cs-checkbox> -->\n                </div>\n                <div class=\"right\">\n                    <ul>\n                        <li>\n                            <button (click)=\"cloneQuestion(questionIndex,true);$event.stopPropagation();\" [appTooltip]=\"'Add new'\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\">\n                                <i class=\"icons\">&#xe915;</i>\n                            </button>\n                        </li>\n                        <li>\n                            <button  (click)=\"deleteQuestion(questionIndex)\" class=\"delete\" [appTooltip]=\"'Delete'\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\">\n                                <i class=\"icons\">&#xe923;</i>\n                            </button>\n                        </li>\n                        <li>\n                            <button (click)=\"cloneQuestion(questionIndex,false);$event.stopPropagation();\" [appTooltip]=\"'Copy'\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"true\">\n                                <i class=\"icons\">&#xe9b6;</i>\n                            </button>\n                        </li>\n                    </ul>\n                </div>\n            </div>\n        </div>\n    </ng-container>\n    <button class=\"btn-add-new vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" type=\"button\" (click)=\"cloneQuestion(checkPointQuestions.length -1,true);$event.stopPropagation();\">+ ADD A NEW QUESTION</button>\n</div>\n","import { SnackBarService } from './../../../ui-kit/snack-bar/snack-bar.service';\nimport cloneDeep from 'lodash-es/cloneDeep';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { CheckpointsPolicyQuestionsComponent } from '../checkpoints-policy-questions/checkpoints-policy-questions.component';\n\n@Component({\n  selector: 'app-checkpoints-policy-container',\n  templateUrl: './checkpoints-policy-container.component.html',\n  styleUrls: ['./checkpoints-policy-container.component.less'],\n})\nexport class CheckpointsPolicyContainerComponent implements OnInit {\n  animation = true;\n  constructor(private snackbarService: SnackBarService) {}\n  @Output() closeCheckPoint = new EventEmitter();\n  @Output() saveCheckPoint = new EventEmitter();\n  @ViewChild('checkpoint', { static: false })\n  CheckpointsPolicyQuestionsComponent!: CheckpointsPolicyQuestionsComponent;\n  @Input() requiredPoint = 0;\n  @Input() checkpointData: any = [];\n\n  ngOnInit(): void {\n    this.checkpointData = cloneDeep(this.checkpointData);\n    if (this.checkpointData.length === 0) {\n      this.checkpointData = [\n        {\n          ranswer: '',\n          question: '',\n          answers: ['', ''],\n        },\n      ];\n    }\n    setTimeout(() => {\n      this.animation = false;\n    }, 500);\n    if (this.requiredPoint === 0) {\n      this.requiredPoint = 1;\n    }\n  }\n\n  next() {\n    this.CheckpointsPolicyQuestionsComponent.saveCheckPoint();\n  }\n  saveQuestions(event: any) {\n    this.checkpointData = event;\n    this.checkpointData.forEach((element: any) => {\n      if (element?._id) {\n        delete element._id;\n      }\n    });\n    if (this.requiredPoint > this.checkpointData.length) {\n      this.snackbarService.show(\n        `The points required to attest this policy cannot exceed ${this.checkpointData.length}.`\n      );\n    } else {\n      if (this.requiredPoint < 1) {\n        this.snackbarService.show(\n          `The points required to attest this policy cannot be 0`\n        );\n      } else {\n        this.saveCheckPoint.emit({\n          requiredPoint: this.requiredPoint,\n          checkpointDetails: this.checkpointData,\n        });\n      }\n    }\n  }\n}\n","<!-- <p>checkpoints works!</p> -->\n<div class=\"checkpoints\" [class.animate]=\"animation\">\n  <div\n    class=\"checkpoints-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Add Questions</div>\n  </div>\n  <div class=\"checkpoints-body\">\n    <div class=\"checkpoints-body-inner vx-mb-4\">\n      <div class=\"checkpoints-body-inside\">\n        <!-- <app-checkpoints-list></app-checkpoints-list> -->\n        <app-checkpoints-policy-questions\n          [(requiredPoint)]=\"requiredPoint\"\n          (changeMax)=\"requiredPoint = $event\"\n          #checkpoint\n          [checkpointDetails]=\"checkpointData\"\n          (saveValidQuestions)=\"saveQuestions($event)\"\n        ></app-checkpoints-policy-questions>\n      </div>\n    </div>\n\n    <div class=\"checkpoints-footer\">\n      <app-checkpoint-floating-bar\n        [isPolicyCheckpoint]=\"true\"\n        (closeList)=\"closeCheckPoint.emit()\"\n        [pluralText]=\"'Questions selected'\"\n        [singularText]=\"'Question selected'\"\n        (saveList)=\"next()\"\n        [(requiredPoint)]=\"requiredPoint\"\n        [count]=\"checkpointData?.length\"\n      ></app-checkpoint-floating-bar>\n    </div>\n  </div>\n</div>\n","export const WORD_CONSTANTS = {\n  MS_WORD_OPTION: 'Create a Policy Using MS Word',\n  createWordPolicy_snackbar_message:\n    \"Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?\",\n};\n\nexport const WORD_PAYLOAD = {\n  module_name: 'POLICY',\n  increment: 'MAJOR',\n  action: 'CREATED',\n  ms_word_type: 1,\n  docx_file_path: '',\n  url: {\n    edit: '',\n    preview: '',\n  },\n};\n\nexport const WORD_URL_CONSTANTS = {\n  new_word_policy_url: 'https://word.new',\n  createVersion: 'createVersion',\n  workroom_url: '/all/policy/workroom?id=',\n};\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { AuthService } from './auth.service';\nimport {  WORD_PAYLOAD, WORD_URL_CONSTANTS } from '../workflow-policy/ms-word.constants';\n\nimport { Configurations } from '../configurations';\n@Injectable({\n  providedIn: 'root',\n})\nexport class PolicyAPIService {\n  env: any;\n\n  constructor(private http: HttpClient, private authService: AuthService, private config: Configurations) {\n    this.env = config?.envConfig;\n  }\n\n  payloadBuilder_wordPolicy(policyId: string) {\n    const tokenDetails = this.authService.getUserDetails();\n    const memberId = tokenDetails.user.id;\n    return {\n      member_id: memberId,\n      document_id: policyId,\n      ...WORD_PAYLOAD,\n    };\n  }\n\n  createWordPolicy(policyId: string) {\n    const payload = this.payloadBuilder_wordPolicy(policyId);\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post<any>(this.env.createVersion + WORD_URL_CONSTANTS.createVersion, payload, { headers });\n  }\n}\n","import { Subscription } from 'rxjs';\nimport { PlatformLocation } from '@angular/common';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\nimport { PolicyService } from '../../workflow-services/policy.service';\nimport { PolicyAPIService } from '../../workflow-services/policy-api.service';\nimport { IframeService } from '../../services/iframe.service';\nimport { WORD_CONSTANTS, WORD_URL_CONSTANTS } from '../../workflow-policy/ms-word.constants';\n\n@Component({\n  selector: 'lib-document-section',\n  templateUrl: './document-section.component.html',\n  styleUrls: ['./document-section.component.less'],\n})\nexport class DocumentSectionComponent implements OnInit, OnDestroy{\n  private templateViewSubscription: Subscription | undefined;\n  private fileToUpload: any;\n  filename = '';\n  fileType = '';\n  pdf = false;\n  draft = false;\n  doc = false;\n  isUploading = false;\n  isLoader = false;\n  ff_policy_ms_word_integration: boolean = false;\n  createWordPolicyText = WORD_CONSTANTS.MS_WORD_OPTION;\n\n  @Input() selectedDocumentType = '';\n  @Input() feature: any;\n  @Input() templateView = false;\n  @Input() policyId: any = '';\n  @Input() policyName: any = '';\n  @Input() organization_id: any = '';\n  @Input() member_obj_id: any;\n  @Input() userInfo: any;\n  @Input() templateUrl: string = '';\n  @Output() disconnectRefresh = new EventEmitter();\n  @Output() editPolicy = new EventEmitter();\n  @Output() openTemplate = new EventEmitter();\n\n  baseURL = '';\n  docxError = {\n    visible: false,\n    message: '',\n  };\n\n  constructor(\n    private snackBar: SnackBarService,\n    private policyService: PolicyService,\n    private policyAPIService: PolicyAPIService,\n    private router: Router,\n    private route: ActivatedRoute,\n    platformLocation: PlatformLocation,\n    private iframeService: IframeService\n  ) {\n    this.baseURL = location?.origin;\n    if (this.baseURL == 'http://localhost:4200') {\n      this.baseURL = 'https://dev.v-comply.com';\n    }\n  }\n\n  ngOnInit(): void {\n    this.initialiseFeatureFlags();\n    this.checkTemplateView();\n    const data = JSON.parse(\n      localStorage.getItem('lastFileNameAndType') ?? '\"{}\"'\n    );\n    if (\n      data.name !== null &&\n      data.name !== undefined &&\n      data.type !== null &&\n      data.type !== undefined &&\n      data.policyId == this.policyId\n    ) {\n      this.selectedDocumentType = data.type;\n      this.filename = data.name;\n      localStorage.removeItem('lastFileNameAndType');\n    }\n  }\n\n  checkTemplateView() {\n    this.templateViewSubscription = this.policyService.templateView.subscribe((res:boolean) => {\n      if(!res) {\n        this.selectedDocumentType = '';\n      }\n    });\n  }\n\n  ngOnDestroy(): void {\n    if (this.templateViewSubscription) {\n      this.templateViewSubscription.unsubscribe();\n    }\n  }\n\n  initialiseFeatureFlags() {\n    this.ff_policy_ms_word_integration =  this.feature.isFeatureEnabled('ff_policy_ms_word_integration');\n  }\n\nredirectUserToWordPolicy() {\n  window.open(WORD_URL_CONSTANTS.new_word_policy_url, '_blank');\n  window.location.href =  this.baseURL + WORD_URL_CONSTANTS.workroom_url + this.policyId;\n}\n\n  createWordPolicy() {\n    this.isLoader = true;\n    this.policyAPIService.createWordPolicy(this.policyId).subscribe((res) => {\n      if(res){\n        this.redirectUserToWordPolicy();\n      }       \n      this.isLoader = false;\n    },\n    (err) => {\n      this.isLoader = false;\n      this.snackBar.show(\n        WORD_CONSTANTS.createWordPolicy_snackbar_message,\n        'alert'\n      );\n    }\n  );\n  }\n\n  handleFileInput(files: FileList): void {\n    this.fileToUpload = files[0];\n    this.filename = this.fileToUpload.name;\n    this.fileType = this.fileToUpload.name\n      .slice(\n        this.fileToUpload.name.lastIndexOf('.') + 1,\n        this.fileToUpload.name.length\n      )\n      .toLowerCase();\n    if (this.fileType === 'pdf') {\n      this.uploadFile({ file: this.fileToUpload, fileType: this.fileType });\n    } else if (this.fileType === 'docx') {\n      this.uploadFile({ file: this.fileToUpload, fileType: this.fileType });\n    } else {\n      this.snackBar.show('Please upload a valid file', 'alert');\n    }\n  }\n  showPdfBlock = true;\n  showDocxBlock = true;\n\n  get isNextButtonDisabled() {\n    return !this.selectedDocumentType || this.templateView || this.isLoader || this.isUploading;\n  }\n\n  uploadFile(event: any) {\n    this.isUploading = true;\n    if (event.fileType === 'docx') {\n      this.changeDocType('docx');\n      this.uploadDocxfile(event);\n    } else if (event.fileType === 'pdf') {\n      this.changeDocType('pdf');\n      this.showPdfBlock = false;\n      setTimeout(() => {\n        this.showPdfBlock = true;\n      }, 10);\n      const uploadData = new FormData();\n      uploadData.append('file', event.file);\n      const path = 'o/' + this.organization_id + '/policy/';\n      this.policyService.uploadFile(uploadData, this.policyId, path).subscribe(\n        (res) => {\n          if (res) {\n            this.isUploading = false;\n          }\n        },\n        (err) => {\n          this.snackBar.show(\n            \"Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?\",\n            'alert'\n          );\n          this.isUploading = false;\n          this.selectedDocumentType = '';\n        }\n      );\n    }\n  }\n\n  uploadDocxfile(event: any) {\n    this.resetDocsError();\n    this.showDocxBlock = false;\n    setTimeout(() => {\n      this.showDocxBlock = true;\n    }, 10);\n    const uploadData = new FormData();\n    uploadData.append('file', event.file);\n    const path = 'o/' + this.organization_id + '/policy/';\n    this.policyService\n      .uploadDocxFile(uploadData, this.policyId, path)\n      .subscribe(\n        (res: any) => {\n          if (res) {\n            this.isUploading = false;\n            if (res?.message?.includes('done')) {\n              this.resetDocsError();\n            } else {\n              if (res.message?.includes('RangeError')) {\n                this.docxError = {\n                  visible: true,\n                  message: 'The file size is too large and cannot be uploaded.',\n                };\n              } else {\n                this.docxError = {\n                  visible: true,\n                  message: 'Oops! An error occurred while uploading this file.',\n                };\n              }\n            }\n          }\n        },\n        (err) => {\n          this.snackBar.show(\n            \"Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?\",\n            'alert'\n          );\n          this.isUploading = false;\n          this.selectedDocumentType = '';\n        }\n      );\n  }\n\n  resetUploads(){\n    this.selectedDocumentType='';\n    this.filename='';\n    this.fileType='';\n    this.pdf=false;\n    this.doc=false;\n    this.isUploading=false;\n    this.isLoader=false;\n    this.resetDocsError();\n  }\n\n  resetDocsError() {\n    this.docxError = {\n      visible: false,\n      message: '',\n    };\n  }\n\n  changeDocType(event: any) {\n    this.resetDocsError();\n    if(this.selectedDocumentType === event) {\n      this.selectedDocumentType = '';\n      return;\n    }\n    this.selectedDocumentType = event;\n    if (event === 'template') {\n      this.openTemplateList();\n    }\n  }\n\n  editor(event: string) {\n    this.disconnectRefresh.emit(false);\n\n    if (event === 'draft') {\n      // If it is a draft go directly to the editor\n      const uname = this.userInfo ? this.userInfo.name : '';\n      const uid = this.member_obj_id;\n      const name = this.policyName.trim();\n      const id = this.policyId;\n      this.isLoader = true;\n      this.policyService\n        .savePolicyDetails(uname, uid, id, name, '', 0)\n        .subscribe(\n          (res) => {\n            if (res) {\n              this.isLoader = false;\n              const url =\n                this.baseURL + '/all/policy/edit-policy?id=' + this.policyId;\n              this.iframeService.redirectIfInIframe(url, true);\n            }\n          },\n          (err) => {\n            this.isLoader = false;\n            this.snackBar.show(\n              \"Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?\",\n              'alert'\n            );\n          }\n        );\n    } else if (event === 'docx') {\n      const url =\n        this.baseURL + '/all/policy/edit-policy?id=' + this.policyId;\n      this.iframeService.redirectIfInIframe(url, true);\n    } else if (event === 'word') {\n        this.createWordPolicy();\n    } else if (event === 'pdf') {\n      // If it is a pdf send to the workroom\n      const url =\n        this.baseURL + '/all/policy/workroom?id=' + this.policyId;\n      this.iframeService.redirectIfInIframe(url, true);\n    } else if (event === 'template') {\n      this.iframeService.redirectIfInIframe(this.templateUrl, true);\n    }\n    localStorage.setItem('_dId', this.policyId);\n  }\n  editPolicyEmit() {\n    this.selectedDocumentType = '';\n    localStorage.setItem(\n      'lastFileNameAndType',\n      JSON.stringify({\n        type: this.selectedDocumentType,\n        name: this.filename,\n        policyId: this.policyId,\n      })\n    );\n    this.editPolicy.emit();\n  }\n\n  openTemplateList() {\n    this.openTemplate.emit();\n  }\n}\n","<div class=\"document-section\" [class.grayscale]=\"templateView\">\n  <div class=\"document-section-inner\">\n    <div class=\"message-box\">\n      <svg\n        version=\"1.1\"\n        id=\"Capa_1\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n        x=\"0px\"\n        y=\"0px\"\n        viewBox=\"0 0 480.8 480.8\"\n        style=\"enable-background: new 0 0 480.8 480.8\"\n        xml:space=\"preserve\"\n      >\n        <path\n          style=\"fill: #ffd517\"\n          d=\"M317.112,314.4c-22.4,22.4-19.6,67.6-19.6,67.6h-113.6c0,0,2.4-45.2-19.6-67.6\n                                        c-24.4-21.6-40-52.8-40-87.6c0-64,52-116,116-116s116,52,116,116C356.312,261.6,341.112,292.8,317.112,314.4L317.112,314.4z\"\n        />\n        <g>\n          <path\n            style=\"fill: #e5e5e5\"\n            d=\"M300.712,417.6c0,6-4.8,10.8-10.8,10.8h-98.8c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n                                            h98.4C295.512,406.8,300.712,411.6,300.712,417.6L300.712,417.6z\"\n          />\n          <path\n            style=\"fill: #e5e5e5\"\n            d=\"M285.912,462.4c0,6-4.8,10.8-10.8,10.8h-69.2c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n                                            h69.2C281.112,451.6,285.912,456.4,285.912,462.4L285.912,462.4z\"\n          />\n        </g>\n        <g>\n          <path\n            style=\"fill: #210b20\"\n            d=\"M323.112,318.4c26-23.6,40.8-56.8,40.8-91.6c0-68-55.6-123.6-123.6-123.6s-123.6,55.6-123.6,123.6\n                                            c0,35.6,15.6,69.6,42,92.8c19.6,19.6,17.6,61.2,17.6,61.6c0,2,0.8,4,2,5.6c1.6,1.6,3.6,2.4,5.6,2.4h113.2c2,0,4-0.8,5.6-2.4\n                                            s2-3.6,2-5.6c0-0.4-2-42,17.6-61.6C322.712,319.2,323.112,318.8,323.112,318.4z M311.912,308.4c-0.8,0.4-1.2,1.2-1.6,2\n                                            c-17.6,18.8-20.4,49.6-20.8,64h-98c-0.4-14.8-3.6-46.8-22.4-65.6c-23.6-20.8-37.2-50.4-37.2-81.6c0-60,48.8-108.4,108.4-108.4\n                                            c60,0,108.4,48.8,108.4,108.4C348.712,258,335.512,288,311.912,308.4z\"\n          />\n          <path\n            style=\"fill: #210b20\"\n            d=\"M240.312,135.2c-4,0-7.6,3.2-7.6,7.6c0,4,3.2,7.6,7.6,7.6c44.8,0,81.2,36.4,81.2,81.2\n                                            c0,4,3.2,7.6,7.6,7.6c4,0,7.6-3.2,7.6-7.6C336.712,178.4,293.512,135.2,240.312,135.2z\"\n          />\n          <path\n            style=\"fill: #210b20\"\n            d=\"M308.312,417.6c0-10.4-8.4-18.4-18.4-18.4h-98.8c-10.4,0-18.4,8.4-18.4,18.4\n                                            c0,10.4,8.4,18.4,18.4,18.4h98.4C299.912,436,308.312,428,308.312,417.6z M289.512,420.8h-98.4c-2,0-3.2-1.6-3.2-3.2\n                                            c0-2,1.6-3.2,3.2-3.2h98.4c2,0,3.2,1.6,3.2,3.2C293.112,419.6,291.512,420.8,289.512,420.8z\"\n          />\n          <path\n            style=\"fill: #210b20\"\n            d=\"M275.112,444h-69.2c-10.4,0-18.4,8.4-18.4,18.4c0,10.4,8.4,18.4,18.4,18.4h69.2\n                                            c10.4,0,18.4-8.4,18.4-18.4C293.512,452.4,285.112,444,275.112,444z M275.112,465.6h-69.2c-2,0-3.2-1.6-3.2-3.2\n                                            c0-2,1.6-3.2,3.2-3.2h69.2c2,0,3.2,1.6,3.2,3.2C278.312,464.4,277.112,465.6,275.112,465.6z\"\n          />\n          <path\n            style=\"fill: #210b20\"\n            d=\"M247.912,58.8V7.6c0-4-3.2-7.6-7.6-7.6c-4,0-7.6,3.2-7.6,7.6v51.6c0,4,3.2,7.6,7.6,7.6\n                                            C244.712,66.4,247.912,63.2,247.912,58.8z\"\n          />\n          <path\n            style=\"fill: #210b20\"\n            d=\"M366.312,38c-3.6-2.4-8-1.2-10.4,2l-28.4,42.8c-2.4,3.6-1.2,8,2,10.4c1.2,0.8,2.8,1.2,4,1.2\n                                            c2.4,0,4.8-1.2,6.4-3.2l28.4-42.8C370.712,45.2,369.512,40.4,366.312,38z\"\n          />\n          <path\n            style=\"fill: #210b20\"\n            d=\"M149.912,92.8c1.2,0,2.8-0.4,4-1.2c3.6-2.4,4.4-6.8,2.4-10.4l-27.6-43.2c-2.4-3.6-6.8-4.4-10.4-2.4\n                                            c-3.6,2.4-4.4,6.8-2.4,10.4l27.6,43.2C145.112,91.6,147.512,92.8,149.912,92.8z\"\n          />\n          <path\n            style=\"fill: #210b20\"\n            d=\"M43.912,128.8l45.2,24.4c1.2,0.8,2.4,0.8,3.6,0.8c2.8,0,5.2-1.6,6.8-4c2-3.6,0.8-8.4-3.2-10.4\n                                            l-45.2-24.4c-3.6-2-8.4-0.8-10.4,3.2C39.112,122.4,40.312,126.8,43.912,128.8z\"\n          />\n          <path\n            style=\"fill: #210b20\"\n            d=\"M387.912,154.4c1.2,0,2.4-0.4,3.6-0.8l45.2-24.4c3.6-2,5.2-6.4,3.2-10.4c-2-3.6-6.4-5.2-10.4-3.2\n                                            l-45.2,24.4c-3.6,2-5.2,6.4-3.2,10.4C382.312,152.8,385.112,154.4,387.912,154.4z\"\n          />\n        </g>\n      </svg>\n      <p>\n        There are multiple ways to create a policy on VComply. You can either draft it from scratch using VComply's online editor{{ ff_policy_ms_word_integration ? ' or Create a Policy Using MS Word' : '' }}{{ showDocxBlock ? ' or Upload an Existing DOCX file' : '' }}{{ showPdfBlock ? ' or Upload an Existing PDF file' : '' }} or Draft Using a Template.\n      </p>\n    </div>\n    <label\n      class=\"document-box\"\n      [class.active]=\"selectedDocumentType == 'draft'\"\n    >\n      <input\n        type=\"radio\"\n        name=\"selectedDocumentType\"\n        (click)=\"changeDocType('draft')\"\n        [checked]=\"selectedDocumentType === 'draft'\"\n      />\n      <svg id=\"Draft\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n        <path id=\"Path_20402\" data-name=\"Path 20402\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#565a6f\"/>\n        <path id=\"Path_20403\" data-name=\"Path 20403\" d=\"M21.884,8.51,10.549,10.384,12.426,21.06l4.38-.61a.333.333,0,0,1,.326.435c-.051.219-.338.235-.514.267-1.474.266-3.009.388-4.491.631-.416-.032-.321-.718-.441-1l-3-.365c-.213-.12-.2-.273-.2-.492.019-.622.092-1.251.125-1.872.16-3,.316-6,.5-8.993A9.457,9.457,0,0,1,9.152,8.1a.369.369,0,0,1,.265-.3l8.519.681L22.2,7.8c.225.068.246.19.3.393.553,2.288.758,4.775,1.285,7.083.143.531-.507.731-.642.2ZM17.211,21.932a.563.563,0,0,0-.072.24,8.549,8.549,0,0,0,0,1.187c.019.217.088.393.328.421a9.138,9.138,0,0,0,1.448-.021.53.53,0,0,0,.122-.065l3.756-3.771L21,18.13Zm5.329-5.35c-.365.286-.7.757-1.061,1.062L23.3,19.437c.3-.35.777-.687,1.05-1.044.15-.2.174-.312.017-.516a13.851,13.851,0,0,0-1.327-1.327.393.393,0,0,0-.23-.1.476.476,0,0,0-.271.13\" fill=\"#fff\"/>\n      </svg>\n      \n      <div class=\"label-right\">\n        <div class=\"value\"><strong>Create</strong> a Policy</div>\n        <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n        <div class=\"check-circle\">\n          <svg\n            class=\"checkIcon\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            viewBox=\"0 0 52 52\"\n          >\n            <circle\n              class=\"checkIcon__circle\"\n              cx=\"26\"\n              cy=\"26\"\n              r=\"25\"\n              fill=\"none\"\n            />\n            <path\n              class=\"checkIcon__check\"\n              fill=\"none\"\n              d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n            />\n          </svg>\n        </div>\n      </div>\n    </label>\n\n    \n    <label\n      *ngIf=\"ff_policy_ms_word_integration\"\n      class=\"document-box\"\n      [class.active]=\"selectedDocumentType == 'word'\"\n    >\n      <input\n        type=\"radio\"\n        name=\"selectedDocumentType\"\n        (click)=\"changeDocType('word')\"\n        [checked]=\"selectedDocumentType === 'word'\"\n      />\n      <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n        <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n        <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n      </svg>\n      \n      <div class=\"label-right\">\n        <div class=\"value\">{{createWordPolicyText}}</div>\n        <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n        <div class=\"check-circle\">\n          <svg\n            class=\"checkIcon\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            viewBox=\"0 0 52 52\"\n          >\n            <circle\n              class=\"checkIcon__circle\"\n              cx=\"26\"\n              cy=\"26\"\n              r=\"25\"\n              fill=\"none\"\n            />\n            <path\n              class=\"checkIcon__check\"\n              fill=\"none\"\n              d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n            />\n          </svg>\n        </div>\n      </div>\n    </label>\n\n\n\n    <label\n      class=\"document-box\"\n      *ngIf=\"showDocxBlock\"\n      [class.active]=\"selectedDocumentType == 'docx' && !docxError?.visible\"\n      [class.error]=\"docxError?.visible\"\n      (click)=\"resetUploads()\"\n    >\n      <input\n        type=\"file\"\n        accept=\".docx\"\n        id=\"DOCfile\"\n        (change)=\"handleFileInput($event.target.files)\"\n        onclick=\"event.stopPropagation();\"\n        #docxUploadButton\n      />\n      <svg id=\"Word-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n        <path id=\"Path_20404\" data-name=\"Path 20404\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#1e5dd3\"/>\n        <path id=\"Path_20405\" data-name=\"Path 20405\" d=\"M10.419,9.718l1.889,9.121L12.44,20l.132-.885,2.152-9.4,2.626.018,2.187,9.106.174,1.132a13.4,13.4,0,0,1,.174-1.352c.5-2.954,1.188-5.88,1.7-8.832l.04-.07H24L21.085,22.281l-2.818-.026L15.931,12.22l-.16,1.077-2.015,8.986-2.829-.028L8,9.718Z\" fill=\"#fff\"/>\n      </svg>\n      \n      <div class=\"label-right\">\n        <div class=\"value\">\n          <ng-container *ngIf=\"!(selectedDocumentType == 'docx' && filename)\"\n            >Upload a <strong>DOCX</strong></ng-container\n          >\n          <span *ngIf=\"selectedDocumentType == 'docx' && filename\"\n           [appTooltip]=\"filename\"\n           placement=\"bottom-left\"\n           delay=\"0\"\n           type=\"black\"\n           [tooltipMandatory]=\"true\"\n           >{{\n            filename\n          }}</span>\n        </div>\n        <div class=\"error-msg-text\" *ngIf=\"docxError?.visible\">\n          {{ docxError?.message }}\n        </div>\n        <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea97;</i>\n        <div class=\"check-circle\" *ngIf=\"!docxError?.visible\">\n          <svg\n            class=\"checkIcon\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            viewBox=\"0 0 52 52\"\n          >\n            <circle\n              class=\"checkIcon__circle\"\n              cx=\"26\"\n              cy=\"26\"\n              r=\"25\"\n              fill=\"none\"\n            />\n            <path\n              class=\"checkIcon__check\"\n              fill=\"none\"\n              d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n            />\n          </svg>\n        </div>\n        <i class=\"icons error-icon\" *ngIf=\"docxError?.visible\">&#xe914;</i>\n      </div>\n      <div\n        class=\"line-progress\"\n        *ngIf=\"selectedDocumentType == 'docx' && isUploading\"\n      >\n        <div class=\"line-progress-bar\"></div>\n      </div>\n    </label>\n    <label\n      class=\"document-box\"\n      *ngIf=\"showPdfBlock\"\n      [class.active]=\"selectedDocumentType == 'pdf'\"\n      (click)=\"resetUploads()\"\n    >\n      <input\n        type=\"file\"\n        accept=\".pdf\"\n        id=\"PDFfile\"\n        (change)=\"handleFileInput($event.target.files)\"\n        onclick=\"event.stopPropagation();\"\n        #pdfUploadButton\n      />\n      <svg id=\"PDF-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n        <path id=\"Path_20408\" data-name=\"Path 20408\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#a82a1d\"/>\n        <path id=\"Path_20409\" data-name=\"Path 20409\" d=\"M16.125,13.778A1.39,1.39,0,0,0,16.285,15a16.106,16.106,0,0,0,2.106,2.554c.312-.045.6-.047,1.2-.092a6.964,6.964,0,0,1,3.616.239,1.31,1.31,0,0,1,.784,1.361,1.176,1.176,0,0,1-1.075.981c-2.224.336-3.305-.9-4.579-1.746a2.094,2.094,0,0,0-.812.021,25.782,25.782,0,0,0-3.412.916c-.253.089-.338.3-.533.609a11.062,11.062,0,0,1-2.82,3.427,2.145,2.145,0,0,1-1.861.445c-1-.222-1.178-1.182-.5-1.942A9.452,9.452,0,0,1,10,20.462a14.714,14.714,0,0,1,2.418-1.109c.491-.461.556-.686.966-1.764.431-1.136.922-2.25,1.324-3.4a1.679,1.679,0,0,0-.035-1.062,7.7,7.7,0,0,1-.638-3.476,1.4,1.4,0,0,1,.959-1.393,1.279,1.279,0,0,1,1.464.8c.2.479.552,1.75-.331,4.728m-.377,1.377-1.418,3.422,3.353-.883-1.935-2.539m3.222,2.882A4.5,4.5,0,0,0,21.92,19.37c.377,0,.714-.131.733-.6.051-1.251-2.656-.864-3.682-.73m-6.96,2.037a9.788,9.788,0,0,0-2.975,1.8c-.218.171-.446.718-.282.984s.81.067,1-.12a9.29,9.29,0,0,0,2.253-2.664m3.246-7.243c-.045-.878.461-2.172.437-3.224-.008-.355-.051-.747-.5-.772-.364-.02-.534.476-.569.762a5.8,5.8,0,0,0,.636,3.234\" fill=\"#fff\"/>\n      </svg>\n      \n      <div class=\"label-right\">\n        <div class=\"value\">\n          <ng-container *ngIf=\"!(selectedDocumentType == 'pdf' && filename)\"\n            >Upload a <strong>PDF</strong></ng-container\n          >\n          <span *ngIf=\"selectedDocumentType == 'pdf' && filename\"\n           [appTooltip]=\"filename\"\n           placement=\"bottom-left\"\n           delay=\"0\"\n           type=\"black\"\n           [tooltipMandatory]=\"true\"\n           >{{\n            filename\n          }}</span>\n        </div>\n        <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea97;</i>\n        <div class=\"check-circle\">\n          <svg\n            class=\"checkIcon\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            viewBox=\"0 0 52 52\"\n          >\n            <circle\n              class=\"checkIcon__circle\"\n              cx=\"26\"\n              cy=\"26\"\n              r=\"25\"\n              fill=\"none\"\n            />\n            <path\n              class=\"checkIcon__check\"\n              fill=\"none\"\n              d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n            />\n          </svg>\n        </div>\n      </div>\n      <div\n        class=\"line-progress\"\n        *ngIf=\"selectedDocumentType == 'pdf' && isUploading\"\n      >\n        <div class=\"line-progress-bar\"></div>\n      </div>\n    </label>\n    <!-- Select a template -->\n    <label\n      class=\"document-box\"\n      [class.active]=\"selectedDocumentType === 'template'\"\n    >\n      <input\n        type=\"radio\"\n        name=\"selectedDocumentType\"\n        (click)=\"changeDocType('template')\"\n        [checked]=\"selectedDocumentType === 'template'\"\n      />\n      <svg id=\"TMP-Icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\">\n        <path id=\"Path_20406\" data-name=\"Path 20406\" d=\"M28,32H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H28a4,4,0,0,1,4,4V28a4,4,0,0,1-4,4\" fill=\"#34aa44\"/>\n        <path id=\"Path_20410\" data-name=\"Path 20410\" d=\"M16,1.778V3.555H0V1.778A1.783,1.783,0,0,1,1.778,0H14.223A1.783,1.783,0,0,1,16,1.778M0,4.444H16v8.889a1.778,1.778,0,0,1-1.777,1.778H1.778A1.778,1.778,0,0,1,0,13.333ZM6.99,9.928A.891.891,0,0,0,6.1,9.039H3.642a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889H6.1a.891.891,0,0,0,.888-.889Zm6.306,0a.892.892,0,0,0-.889-.889H9.948a.891.891,0,0,0-.888.889v2.456a.891.891,0,0,0,.888.889h2.459a.892.892,0,0,0,.889-.889ZM2.667,7.111A.889.889,0,0,0,3.556,8h8.889a.889.889,0,0,0,0-1.778H3.556a.889.889,0,0,0-.889.889\" transform=\"translate(8 7.999)\" fill=\"#fff\"/>\n      </svg>\n      \n      <div class=\"label-right\">\n        <div class=\"value\">Draft Using a <strong>Template</strong></div>\n        <i class=\"icons document-box-icon vx-fs-16 vx-mr-2\">&#xea46;</i>\n        <div class=\"check-circle\">\n          <svg\n            class=\"checkIcon\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            viewBox=\"0 0 52 52\"\n          >\n            <circle\n              class=\"checkIcon__circle\"\n              cx=\"26\"\n              cy=\"26\"\n              r=\"25\"\n              fill=\"none\"\n            />\n            <path\n              class=\"checkIcon__check\"\n              fill=\"none\"\n              d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n            />\n          </svg>\n        </div>\n      </div>\n    </label>\n    <!-- End Select a template -->\n    <app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\n  </div>\n</div>\n<div class=\"bottom-button\" [class.grayscale]=\"templateView\">\n  <button\n    type=\"button\"\n    (click)=\"editPolicyEmit()\"\n    class=\"back\"\n    [class.disabled]=\"templateView\"\n  >\n    <i class=\"icons\">&#xe91d;</i> Back\n  </button>\n  <button\n    type=\"button\"\n    (click)=\"editor(selectedDocumentType)\"\n    class=\"next\"\n    [class.disabled]=\"isNextButtonDisabled\"\n  >\n    Next <i class=\"icons\">&#xe91e;</i>\n  </button>\n</div>\n","\nimport {Directive, HostListener} from \"@angular/core\";\n    \n@Directive({\n  selector: '[appStopPropagation]'\n})\nexport class StopPropagationDirective\n{\n  @HostListener(\"click\", [\"$event\"])\n  public onClick(event: any): void\n  {\n    event.preventDefault();\n    event.stopPropagation();\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n} from '@angular/core';\n\n@Component({\n  selector: 'app-approval-workflow-list',\n  templateUrl: './approval-workflow-list.component.html',\n  styleUrls: ['./approval-workflow-list.component.less'],\n})\nexport class ApprovalWorkflowListComponent implements OnInit, OnChanges {\n  hideDetails = false;\n  openIndexId = -1;\n  selectedWorkflow!: any;\n  isNextDisabled: boolean = true;\n\n  @Input() approverWorkFlowList!: any;\n  @Input() editApprovalWorkflow!: any;\n\n  @Output() createApprovalClicked = new EventEmitter();\n  @Output() listCancelClicked = new EventEmitter();\n  @Output() selectedWorkflowNext = new EventEmitter();\n  @Output() onApprovalEdit = new EventEmitter();\n\n  constructor() {}\n\n  ngOnInit(): void {\n    this.selectedWorkflow = this.editApprovalWorkflow;\n    if (this.editApprovalWorkflow) {\n      this.isNextDisabled = false;\n    }\n  }\n\n  ngOnChanges() {\n    this.selectedWorkflow = this.editApprovalWorkflow;\n  }\n  showDetails(id: any) {\n    this.openIndexId === id ? (this.openIndexId = -1) : (this.openIndexId = id);\n    this.hideDetails = !this.hideDetails;\n  }\n\n  createApprovalClick(event: boolean) {\n    this.createApprovalClicked.emit(event);\n  }\n\n  selectApproval(approval?: any) {\n    this.selectedWorkflow = approval;\n    this.isNextDisabled = false;\n  }\n\n  cancelClicked() {\n    this.listCancelClicked.emit(true);\n  }\n\n  nextClicked() {\n    this.selectedWorkflow = this.approverWorkFlowList.find(\n      (workflow: any) => workflow?._id === this.selectedWorkflow?._id\n    );\n    this.selectedWorkflowNext.emit(this.selectedWorkflow);\n  }\n\n  onEdit(approverWorkflow: any) {\n    this.onApprovalEdit.emit(JSON.parse(JSON.stringify(approverWorkflow)));\n  }\n\n  removeWorkflow() {\n    this.selectedWorkflow = null;\n    this.isNextDisabled = true;\n  }\n}\n","<div class=\"approval-workflow-list-dialog\">\n  <div\n    class=\"approval-workflow-list-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Approval Workflow</div>\n  </div>\n  <div class=\"approval-workflow-list-dialog-body\">\n    <div *ngIf=\"true\" class=\"approval-workflow-list-dialog-body-inner\">\n      <div class=\"approval-table\">\n        <div class=\"approval-table-head\">\n          <div class=\"approval-table-row\">\n            <div\n              class=\"approval-table-column vx-fs-11 vx-fw-500 vx-tt-uppercase serial\"\n            >\n              #\n            </div>\n            <div\n              class=\"approval-table-column vx-fs-11 vx-fw-500 vx-tt-uppercase workflow\"\n            >\n              APPROVAL WORKFLOWS\n            </div>\n            <button\n              (click)=\"createApprovalClick(true)\"\n              class=\"create-approval-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\"\n            >\n              + CREATE A NEW APPROVAL WORKFLOW\n            </button>\n          </div>\n        </div>\n        <div class=\"approval-table-body\">\n          <ng-container\n            *ngFor=\"let approvalWorkflow of approverWorkFlowList; let i = index\"\n          >\n            <div\n              (click)=\"showDetails(approvalWorkflow?._id)\"\n              class=\"approval-table-row clickable\"\n              [class.active]=\"selectedWorkflow?._id === approvalWorkflow?._id\"\n              [class.open]=\"approvalWorkflow?._id === openIndexId\"\n            >\n              <div class=\"approval-table-column serial\">\n                <div\n                  class=\"sr-no\"\n                  [appTooltip]=\"i + 1\"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"true\"\n                >\n                  {{ i + 1 }}\n                </div>\n                <app-cs-radio\n                  [checked]=\"selectedWorkflow?._id === approvalWorkflow?._id\"\n                  (checkedEvent)=\"selectApproval(approvalWorkflow)\"\n                ></app-cs-radio>\n              </div>\n              <div class=\"approval-table-column workflow\">\n                <div\n                  class=\"name vx-fs-12 vx-label-txt\"\n                  [appTooltip]=\"approvalWorkflow?.workflow_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{ approvalWorkflow?.workflow_name }}\n                </div>\n              </div>\n              <div class=\"approval-table-column action\" appStopPropagation>\n                <button\n                  appPopover\n                  (click)=\"moreAction.popover()\"\n                  placement=\"right\"\n                  class=\"more-action vx-fs-16 vx-txt-blue vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n                  [class.disabled]=\"false\"\n                >\n                  <i class=\"icons\">&#xe911;</i>\n                </button>\n                <app-popover #moreAction>\n                  <div class=\"wf-action-list\">\n                    <ul class=\"action-item\">\n                      <li>\n                        <button (click)=\"onEdit(approvalWorkflow)\">\n                          <i class=\"icons\">&#xe90c;</i> Edit\n                        </button>\n                      </li>\n                      <!-- <li>\n                        <button><i class=\"icons\">&#xe923;</i> Delete</button>\n                      </li> -->\n                    </ul>\n                  </div>\n                </app-popover>\n              </div>\n              <div class=\"approval-table-column action\">\n                <button\n                  class=\"arrow vx-fs-12 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n                  [class.disabled]=\"false\"\n                >\n                  <i *ngIf=\"approvalWorkflow?._id !== openIndexId\" class=\"icons\"\n                    >&#xe9e8;</i\n                  >\n                  <i *ngIf=\"approvalWorkflow?._id === openIndexId\" class=\"icons\"\n                    >&#xe9e7;</i\n                  >\n                </button>\n              </div>\n            </div>\n            <div\n              *ngIf=\"approvalWorkflow?._id === openIndexId\"\n              class=\"approval-table-details\"\n            >\n              <div class=\"details-item vx-mb-4\">\n                <div\n                  class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\"\n                >\n                  POLICY CATEGORIES:\n                </div>\n                <div class=\"vx-d-flex\">\n                  <div\n                    class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-1\"\n                    *ngFor=\"\n                      let category of approvalWorkflow?.category_arr\n                        | slice : 0 : 3\n                    \"\n                  >\n                    <div\n                      class=\"chipName vx-fs-11 vx-label-txt\"\n                      [appTooltip]=\"category?.category_name\"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"false\"\n                    >\n                      {{ category?.category_name }}\n                    </div>\n                  </div>\n                  <button\n                    *ngIf=\"approvalWorkflow?.category_arr?.length > 3\"\n                    appPopover\n                    (click)=\"criteriaAction.popover()\"\n                    placement=\"right\"\n                    class=\"details-chip-count vx-fs-11 vx-fw-500 vx-txt-blue vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n                  >\n                    + {{ approvalWorkflow?.category_arr?.length - 3 }}\n                  </button>\n                  <app-popover #criteriaAction>\n                    <div class=\"wf-action-list\">\n                      <ul class=\"action-item\">\n                        <li\n                          *ngFor=\"\n                            let category of approvalWorkflow?.category_arr\n                              | slice : 3\n                          \"\n                        >\n                          <div class=\"avatar-card\">\n                            <span\n                              class=\"value\"\n                              [appTooltip]=\"category?.category_name\"\n                              placement=\"bottom-left\"\n                              delay=\"0\"\n                              type=\"black\"\n                              [tooltipMandatory]=\"false\"\n                              >{{ category?.category_name }}</span\n                            >\n                          </div>\n                        </li>\n                      </ul>\n                    </div>\n                  </app-popover>\n                </div>\n              </div>\n              <div class=\"details-item vx-mb-1\">\n                <div\n                  class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\"\n                >\n                  APPROVERS:\n                </div>\n                <div\n                  *ngFor=\"\n                    let approverLevel of approvalWorkflow?.approval_workflow;\n                    let k = index\n                  \"\n                  class=\"approver-item vx-mb-2 vx-pb-2 vx-d-flex vx-align-center\"\n                >\n                  <div class=\"lavel-area vx-pl-1 vx-pr-1\">\n                    <div\n                      class=\"lavel-name vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-lh-3\"\n                      [appTooltip]=\"\n                        approverLevel?.alias_name\n                          ? approverLevel?.alias_name\n                          : approverLevel?.level1\n                      \"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"false\"\n                    >\n                      {{\n                        approverLevel?.alias_name\n                          ? approverLevel?.alias_name\n                          : approverLevel?.level1\n                      }}\n                    </div>\n                    <div\n                      class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-3\"\n                    >\n                      {{\n                        (approverLevel?.type | lowercase) === \"roundrobin\"\n                          ? \"ROUND-ROBIN\"\n                          : (approverLevel?.type | lowercase) === \"anyone\"\n                          ? \"ANY ONE\"\n                          : approverLevel?.type\n                      }}\n                    </div>\n                  </div>\n                  <div class=\"lavel-chips vx-d-flex vx-flex-wrap\">\n                    <div\n                      class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-1\"\n                      *ngFor=\"\n                        let approver of approverLevel?.approvers\n                          | slice : 0 : 3;\n                        let approverIndex = index\n                      \"\n                    >\n                      <div\n                        *ngIf=\"\n                          approverLevel?.type?.toLowerCase() === 'sequential' &&\n                          approverLevel?.approvers?.length < 3\n                        \"\n                        class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\n                      >\n                        {{\n                          approverIndex == approverLevel?.approvers?.length - 1\n                            ? \"Final\"\n                            : approverIndex + 1\n                        }}\n                      </div>\n                      <div\n                        *ngIf=\"\n                          approverLevel?.approvers?.length > 3 &&\n                          approverLevel?.type?.toLowerCase() === 'sequential'\n                        \"\n                        class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\n                      >\n                        {{ approverIndex + 1 }}\n                      </div>\n                      <div\n                        class=\"chipName vx-fs-11 vx-label-txt\"\n                        [appTooltip]=\"approver?.member_name\"\n                        placement=\"bottom-left\"\n                        delay=\"0\"\n                        type=\"black\"\n                        [tooltipMandatory]=\"false\"\n                      >\n                        {{ approver?.member_name }}\n                      </div>\n                    </div>\n                    <button\n                      *ngIf=\"approverLevel?.approvers?.length > 3\"\n                      appPopover\n                      (click)=\"approversAction.popover()\"\n                      placement=\"right\"\n                      class=\"details-chip-count vx-fs-11 vx-fw-500 vx-txt-blue vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n                    >\n                      + {{ approverLevel?.approvers?.length - 3 }}\n                    </button>\n                    <app-popover #approversAction>\n                      <div class=\"wf-action-list\">\n                        <ul class=\"action-item\">\n                          <li\n                            *ngFor=\"\n                              let approver of approverLevel?.approvers\n                                | slice : 3;\n                              let approverIndex = index\n                            \"\n                          >\n                            <div class=\"avatar-card\">\n                              <div\n                                *ngIf=\"\n                                  approverLevel?.type?.toLowerCase() ===\n                                  'sequential'\n                                \"\n                                class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\n                              >\n                                {{\n                                  approverIndex + 3 ===\n                                  approverLevel?.approvers?.length - 1\n                                    ? \"Final\"\n                                    : approverIndex + 4\n                                }}\n                              </div>\n                              <span\n                                class=\"value\"\n                                [appTooltip]=\"approver?.member_name\"\n                                placement=\"bottom-left\"\n                                delay=\"0\"\n                                type=\"black\"\n                                [tooltipMandatory]=\"false\"\n                                >{{ approver?.member_name }}</span\n                              >\n                            </div>\n                          </li>\n                        </ul>\n                      </div>\n                    </app-popover>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </ng-container>\n        </div>\n      </div>\n    </div>\n\n    <vui-floating-bar\n      (closeList)=\"cancelClicked()\"\n      (closeEvent)=\"nextClicked()\"\n      [nextDisabled]=\"isNextDisabled\"\n    >\n      <ng-container *ngIf=\"selectedWorkflow\">\n        <div\n          class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n        >\n          <i\n            class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n            (click)=\"removeWorkflow()\"\n            >&#xe9ae;</i\n          >\n          <span class=\"chipName vx-fs-11 vx-label-txt\">\n            {{ selectedWorkflow?.workflow_name }}</span\n          >\n        </div>\n      </ng-container>\n    </vui-floating-bar>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ASSETS } from '../../constants/assets.constants';\n\n@Component({\n  selector: 'app-select-approvers',\n  templateUrl: './select-approvers.component.html',\n  styleUrls: ['./select-approvers.component.less'],\n})\nexport class SelectApproversComponent implements OnInit {\n  approvalLevelName: string = '';\n  approversPayload: any[] = [];\n  selectedType: string = 'SEQUENTIAL';\n  @Input() allApprovers!: any;\n  @Input() levels: number = 1;\n  @Input() editApprovalData!: any;\n  @Output() closeSelectApprover = new EventEmitter();\n  @Output() selectedApprover = new EventEmitter();\n  ASSETS = ASSETS;\n  constructor() { }\n\n  ngOnInit(): void {\n    this.approvalLevelName = `Level ${this.levels - 1}`;\n    if (this.editApprovalData?.length) {\n      this.approvalLevelName = this.editApprovalData[0]?.alias_name;\n      this.selectedType = this.editApprovalData[0]?.type;\n    }\n  }\n\n  closeUserList() {\n    this.closeSelectApprover.emit();\n  }\n\n  selectedUsers(event: any) {\n    // this.generatePayload(event);\n\n    this.generateApprovers(event.users);\n  }\n\n  generateApprovers(approvers: any) {\n    let approversList: any[] = [];\n    approversList = approvers.map((ele: any) => {\n      return {\n        member_id: ele.member_id,\n        member_name: ele.member_name,\n        approval_flag: false,\n        reject_flag: false,\n        remove_flag: false,\n      };\n    });\n    this.generatePayload(approversList);\n  }\n\n  approvalType(type: 'ANYONE' | 'ROUNDROBIN' | 'SEQUENTIAL') {\n    this.selectedType = type;\n  }\n\n  generatePayload(event: any) {\n    this.approversPayload = [];\n    this.approversPayload = [\n      {\n        approvers: event,\n        type: this.selectedType,\n        approval_done: false,\n        level1: `Level ${this.levels - 1}`,\n        alias_name:\n          this.approvalLevelName === ''\n            ? `Level ${this.levels - 1}`\n            : this.approvalLevelName,\n      },\n    ];\n    this.selectedApprover.emit(this.approversPayload);\n  }\n}\n","<div class=\"select-approvers-dialog\">\n  <div\n    class=\"select-approvers-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n      Select Approvers & Approval Workflow\n    </div>\n  </div>\n  <div class=\"select-approvers-dialog-body\">\n    <div class=\"select-approvers-dialog-body-inner\">\n      <!-- Step 1 -->\n      <div class=\"approvers-form-group vx-mb-2\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n          STEP 1: APPROVAL LEVEL NAME <span class=\"vx-fs-14 vx-txt-red\">*</span>\n        </div>\n        <input\n          [(ngModel)]=\"approvalLevelName\"\n          class=\"textField\"\n          type=\"text\"\n          placeholder=\"Level 1\"\n        />\n      </div>\n\n      <!-- Step 2 -->\n      <div class=\"approvers-form-group vx-mb-2\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n          STEP 2: APPROVAL WORKFLOW TYPE\n          <span class=\"vx-fs-14 vx-txt-red\">*</span>\n        </div>\n        <div class=\"vx-d-flex vx-align-center vx-justify-between\">\n          <app-cs-radio [checked]=\"selectedType === 'SEQUENTIAL'\">\n            <div\n              (click)=\"approvalType('SEQUENTIAL')\"\n              class=\"approval-type vx-d-flex vx-align-center vx-justify-between vx-p-2 vx-pl-3 vx-pr-3\"\n            >\n              <div class=\"vx-d-flex vx-align-center\">\n                <img [src]=\"ASSETS.sequential\" />\n                <div\n                  class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\"\n                >\n                  SEQUENTIAL\n                </div>\n                <i\n                  class=\"icons vx-fs-12 vx-txt-blue vx-ml-2\"\n                  [appTooltip]=\"\n                    'The policy would be sent for approval one at a time in the sequence defined by you.'\n                  \"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"white\"\n                  [tooltipMandatory]=\"true\"\n                  >&#xe91f;</i\n                >\n              </div>\n              <div class=\"vx-d-block\">\n                <span class=\"circle-selection\"></span>\n                <i class=\"icons ckeck-selection vx-fs-16\">&#xe949;</i>\n              </div>\n            </div>\n          </app-cs-radio>\n          <app-cs-radio [checked]=\"selectedType === 'ROUNDROBIN'\">\n            <div\n              (click)=\"approvalType('ROUNDROBIN')\"\n              class=\"approval-type vx-d-flex vx-align-center vx-justify-between vx-p-2 vx-pl-3 vx-pr-3\"\n            >\n              <div class=\"vx-d-flex vx-align-center\">\n                <img [src]=\"ASSETS.round_robin\" />\n                <div\n                  class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\"\n                >\n                  ROUND-ROBIN\n                </div>\n                <i\n                  class=\"icons vx-fs-12 vx-txt-blue vx-ml-2\"\n                  [appTooltip]=\"\n                    'The policy will be sent for approval to all approvers at the same time. However, it is mandatory for all approvers to take action.'\n                  \"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"white\"\n                  [tooltipMandatory]=\"true\"\n                  >&#xe91f;</i\n                >\n              </div>\n              <div class=\"vx-d-block\">\n                <span class=\"circle-selection\"></span>\n                <i class=\"icons ckeck-selection vx-fs-16\">&#xe949;</i>\n              </div>\n            </div>\n          </app-cs-radio>\n          <app-cs-radio [checked]=\"selectedType === 'ANYONE'\">\n            <div\n              (click)=\"approvalType('ANYONE')\"\n              class=\"approval-type vx-d-flex vx-align-center vx-justify-between vx-p-2 vx-pl-3 vx-pr-3\"\n            >\n              <div class=\"vx-d-flex vx-align-center\">\n                <img [src]=\"ASSETS.anyone\" />\n                <div\n                  class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\"\n                >\n                  ANY ONE\n                </div>\n                <i\n                  class=\"icons vx-fs-12 vx-txt-blue vx-ml-2\"\n                  [appTooltip]=\"\n                    'The policy will be sent for approval to all approvers at the same time. If anyone of the approver approves the policy, it will be considered as approved.'\n                  \"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"white\"\n                  [tooltipMandatory]=\"true\"\n                  >&#xe91f;</i\n                >\n              </div>\n              <div class=\"vx-d-block\">\n                <span class=\"circle-selection\"></span>\n                <i class=\"icons ckeck-selection vx-fs-16\">&#xe949;</i>\n              </div>\n            </div>\n          </app-cs-radio>\n        </div>\n      </div>\n\n      <!-- Step 3 -->\n      <div class=\"approvers-form-group\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n          STEP 3: APPROVERS <span class=\"vx-fs-14 vx-txt-red\">*</span>\n        </div>\n        <div class=\"approvers-user-group\">\n          <!-- <app-owner-list  [listHeading]=\"'Select Approvers'\" [singularText]=\"'User selected'\" [pluralText]=\"'Users selected'\" [usersList]=\"allApprovers\" [showWorkflow]=\"true\" [usersList]=\"allApprovers\" [userIdKey]=\"'member_id'\" [itemEmailKey]=\"'member_email'\" [itemNameKey]=\"'member_name'\" [mode]=\"'CREATE'\"></app-owner-list> -->\n          <user-group-list\n            [userlist]=\"allApprovers\"\n            [groupEnabled]=\"false\"\n            (cancel)=\"closeUserList()\"\n            (save)=\"selectedUsers($event)\"\n            [selectedUsers]=\"editApprovalData[0]?.approvers\"\n            [fromApprovalWorkflow]=\"true\"\n            [approvalType]=\"selectedType\"\n          ></user-group-list>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { EditorConfig } from 'vcomply-editor';\nimport { AuthService } from '../../../workflow-services/auth.service';\nimport { PolicyService } from '../../../workflow-services/policy.service';\nimport { ASSETS } from '../../../constants/assets.constants';\n\n@Component({\n  selector: 'app-approval-create-form',\n  templateUrl: './approval-create-form.component.html',\n  styleUrls: ['./approval-create-form.component.less'],\n})\nexport class ApprovalCreateFormComponent implements OnInit {\n  ASSETS = ASSETS;\n  enableApprovalCreate: boolean = false;\n  enableApprovalLevel: boolean = false;\n  enablePolicyCategory: boolean = false;\n  workflowName: string = '';\n  selectApprovalPayload: any[] = [];\n  createApprovalPayload: any[] = [];\n  approvalWorkflows: any[] = [];\n  filteredCategory: any[] = [];\n  levels: number = 1;\n  categoryConfig = {\n    panelTitle: 'Select Category',\n    floatingTextSingular: 'Category selected',\n    floatingTextPlural: 'Categories selected',\n    searchPlaceholder: 'Search Category',\n    searchEnabled: true,\n    selectAllEnabled: true,\n    workflow: 'policy',\n  };\n  selectedCat: any[] = [];\n  editApprovalData: any[] = [];\n  editIndex: number = -1;\n  createDescription: string = '';\n  selectedCategoryId: any[] = [];\n  approvalName!: any;\n  isSaving: boolean = false;\n\n  @Input() mode: 'CREATE' | 'EDIT' = 'CREATE';\n  @Input() approverDetails: any;\n  @Input() approverWorkFlowList!: any;\n  @Input() enableCreateForm!: boolean;\n  @Input() allApprovers!: any;\n  @Input() selectedCategory!: any;\n  @Input() editWorkflowLevel: any;\n\n  @Output() saveApprovalWorkflow = new EventEmitter();\n  @Output() closeCreateClicked = new EventEmitter();\n\n  constructor(\n    private authService: AuthService,\n    private policyService: PolicyService\n  ) { }\n\n  description: EditorConfig = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Add a description for this approval workflow',\n  };\n\n  ngOnInit(): void {\n    if (this.mode == 'EDIT') {\n      this.populateApprover();\n    }\n    if (this.editWorkflowLevel?.editLevel) {\n      this.editApproval(\n        this.editWorkflowLevel?.editLevel,\n        this.editWorkflowLevel?.index\n      );\n    }\n    if (this.enableCreateForm) {\n      this.enableApprovalCreate = true;\n    }\n  }\n\n  createApprovalAction(event: any) {\n    if (event.toLowerCase() === 'approval') {\n      this.enableApprovalCreate = true;\n    }\n  }\n\n  addLevelsClicked(event: any) {\n    this.enableApprovalLevel = event;\n    if (event) this.levels++;\n  }\n\n  getCategoryId(category: any) {\n    this.selectedCategoryId = category.map((cat: any) => cat.item_id);\n  }\n\n  saveCategoryList(event: any) {\n    this.selectedCat = event;\n    this.filterSelectedCategory(event);\n    this.enablePolicyCategory = false;\n  }\n\n  filterSelectedCategory(selectedCategory: any) {\n    this.filteredCategory = this.selectedCategory.filter((category: any) =>\n      selectedCategory.includes(category._id)\n    );\n    this.getCategoryId(this.filteredCategory);\n  }\n\n  removeCategory(event: any) {\n    const categoryIndex = this.filteredCategory.findIndex(\n      (category: any) => category?.item_id === event?.item_id\n    );\n    this.filteredCategory?.splice(categoryIndex, 1);\n  }\n\n  closeCategoryList() {\n    this.enablePolicyCategory = false;\n  }\n\n  enableCategory(event: boolean) {\n    this.enablePolicyCategory = event;\n  }\n\n  closeSelectApprover() {\n    this.enableApprovalLevel = false;\n    this.approvalWorkflows = this.approvalWorkflows.filter(\n      (workflow: any) => workflow.approvers?.length\n    );\n    this.levels = this.approvalWorkflows?.length + 1;\n  }\n\n  selectedApprover(event: any) {\n    this.selectApprovalPayload = event;\n    if (this.editIndex !== -1) {\n      this.approvalWorkflows?.splice(this.editIndex, 1);\n      this.approvalWorkflows?.splice(this.editIndex, 0, event[0]);\n      this.editIndex = -1;\n      this.editApprovalData = [];\n    } else {\n      this.approvalWorkflows.push(event[0]);\n    }\n    this.approvalWorkflows = this.approvalWorkflows.filter(\n      (workflow: any) => workflow.approvers?.length\n    );\n    this.levels = this.approvalWorkflows?.length + 1;\n\n    this.enableApprovalLevel = false;\n  }\n\n  deleteLevel(index: any) {\n    this.approvalWorkflows.splice(index, 1);\n    this.levels = this.approvalWorkflows?.length + 1;\n    for (let i = index; i < this.approvalWorkflows.length; i++) {\n      if (\n        this.approvalWorkflows[index]['level1'] ===\n        this.approvalWorkflows[index]['alias_name']\n      ) {\n        this.approvalWorkflows[index]['alias_name'] = `Level ${i + 1}`;\n      }\n      this.approvalWorkflows[index]['level1'] = `Level ${i + 1}`;\n    }\n  }\n\n  checkLevel() {\n    if (this.levels === 0) {\n      this.levels = 1;\n    }\n  }\n\n  editApproval(approval: any, index: any) {\n    this.editApprovalData = [approval];\n    this.editIndex = index;\n    this.enableApprovalLevel = true;\n  }\n\n  closeCreateForm() {\n    this.closeCreateClicked.emit();\n  }\n\n  nextClick() {\n    this.removeMemberNameKey();\n  }\n\n  removeMemberNameKey() {\n    this.approvalWorkflows = this.approvalWorkflows.map(\n      ({\n        approvers,\n        ...rest\n      }: {\n        approvers: Array<{ [key: string]: any }>;\n        [key: string]: any;\n      }) => ({\n        ...rest,\n        approvers: approvers.map(\n          ({ member_name, ...rest }: { [key: string]: any }) => ({ ...rest })\n        ),\n      })\n    );\n    this.generatePayload();\n  }\n\n  generatePayload() {\n    this.isSaving = true;\n    this.setDefaultValues();\n    const payload = {\n      workflow_module: 'POLICY',\n      workflow_name: this.workflowName,\n      category_id: this.selectedCategoryId,\n      approval_workflow: this.approvalWorkflows,\n      created_by: this.authService.getMemberId(),\n      organisation_id: this.authService.getOrganizationId(),\n      delete_flag: 0,\n      Is_approval: 1,\n      description: {\n        attachments: [],\n        text: this.createDescription,\n      },\n    };\n    if (this.mode === 'EDIT') {\n      this._editWorkflow(payload);\n    } else {\n      this.createNewWorkflow(payload);\n    }\n  }\n\n  private setDefaultValues() {\n    const approvers = JSON.parse(JSON.stringify(this.approvalWorkflows));\n    this.approvalWorkflows = approvers.map((ele: any) => {\n      ele['approvers'] = ele['approvers'].map((approvers: any) => {\n        approvers['approval_flag'] = false;\n        approvers['reject_flag'] = false;\n        approvers['remove_flag'] = false;\n        return approvers;\n      });\n      return ele;\n    });\n  }\n\n  createNewWorkflow(payload: any) {\n    this.policyService.createApprovalWorkflow(payload).subscribe({\n      next: (res: any) => {\n        this.isSaving = false;\n        this.saveApprovalWorkflow.emit(true);\n      },\n      error: (err: any) => {\n        console.error(err);\n      },\n    });\n  }\n\n  _editWorkflow(payload: any) {\n    this.policyService\n      .editApprovalWorkflow(payload, this.approverDetails._id)\n      .subscribe({\n        next: (res: any) => {\n          this.isSaving = false;\n          this.saveApprovalWorkflow.emit(true);\n        },\n        error: (err: any) => {\n          console.error(err);\n        },\n      });\n  }\n  populateApprover() {\n    const { workflow_name, approval_workflow, description, category_arr } =\n      this.approverDetails;\n    this.workflowName = workflow_name;\n    this.approvalWorkflows = approval_workflow;\n    this.createDescription = description?.text ?? '';\n    const categoryDetails = category_arr.map((category: any) => {\n      return {\n        item_id: category?.cal_category_id,\n        item_name: category?.category_name,\n        _id: category?._id,\n        parent_items: [],\n        parent_item_ids: [],\n        custom_tags: [],\n      };\n    });\n    this.selectedCategoryId = category_arr.map(\n      (category: any) => category?.cal_category_id\n    );\n    this.filteredCategory = categoryDetails;\n  }\n\n  closeForm() {\n    this.saveApprovalWorkflow.emit();\n  }\n\n  deselectUser(approver: any, index: any) {\n    const removeIndex = this.approvalWorkflows[index]?.approvers.findIndex(\n      (ele: any) => ele?.member_id === approver?.member_id\n    );\n    this.approvalWorkflows[index]?.approvers.splice(removeIndex, 1);\n    this.approvalWorkflows = this.approvalWorkflows.filter(\n      (workflow: any) => workflow.approvers?.length\n    );\n    this.levels = this.approvalWorkflows?.length + 1;\n  }\n\n  approvalNameSelection(type: any, event: boolean) {\n    this.approvalName = event ? type : '';\n  }\n}\n","<div\n  class=\"approval-workflow-dialog\"\n  *ngIf=\"!enableApprovalLevel && !enablePolicyCategory\"\n>\n  <div\n    class=\"approval-workflow-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n      <button (click)=\"closeCreateForm()\" class=\"back-btn vx-p-0 vx-m-0\">\n        <i class=\"icons vx-mr-1\">&#xe91d;</i></button\n      >Select Approval Workflow\n    </div>\n  </div>\n  <div class=\"approval-workflow-dialog-body\">\n    <app-no-data\n      *ngIf=\"!approverWorkFlowList.length && !enableApprovalCreate\"\n      [noDataImage]=\"ASSETS.approval_workflow\"\n      noDataText=\"\n        You did not set any approval workflow.<br><span class='small-text'>Click on the <strong>Create An Approval Workflow</strong> button to begin.</span>\n      \"\n      [noDataButton]=\"'CREATE AN APPROVAL WORKFLOW'\"\n      [button]=\"'approval'\"\n      (buttonAction)=\"createApprovalAction($event)\"\n    ></app-no-data>\n\n    <div\n      *ngIf=\"enableApprovalCreate || enableCreateForm\"\n      class=\"approval-workflow-dialog-body-inner vx-d-flex vx-align-center vx-justify-center\"\n    >\n      <div class=\"approval-workflow-form\">\n        <!-- Workflow Name -->\n        <div class=\"approval-workflow-form-row vx-mb-5\">\n          <div class=\"form-left\">\n            <img [src]=\"ASSETS.what\" />\n          </div>\n          <div class=\"form-right\">\n            <div\n              class=\"label-heading vx-fs-11 vx-fw-500 vx-tt-uppercase vx-tt-uppercase vx-mb-2\"\n            >\n              WORKFLOW NAME <span class=\"required vx-fs-14 vx-fw-500\">*</span>\n            </div>\n            <input\n              *ngIf=\"!workflowName?.length || approvalName === 'name'\"\n              (keydown)=\"approvalName = 'name'\"\n              (focusin)=\"approvalNameSelection('name', true)\"\n              (focusout)=\"approvalNameSelection('name', false)\"\n              class=\"textField\"\n              type=\"text\"\n              [(ngModel)]=\"workflowName\"\n              placeholder=\"Name of the approval workflow\"\n            />\n            <div\n              *ngIf=\"workflowName?.length && approvalName !== 'name'\"\n              class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n            >\n              <div\n                class=\"selectBoxText vx-fs-13 vx-paragraph-txt\"\n                [appTooltip]=\"workflowName\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n              >\n                {{ workflowName }}\n              </div>\n              <button\n                (click)=\"approvalNameSelection('name', true)\"\n                class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n              >\n                <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n              </button>\n            </div>\n            <div class=\"vx-mt-2\">\n              <vcomply-editor\n                [editorConfig]=\"description\"\n                [(ngModel)]=\"createDescription\"\n              ></vcomply-editor>\n            </div>\n          </div>\n        </div>\n\n        <!-- Policy Category -->\n        <div class=\"approval-workflow-form-row vx-mb-5\">\n          <div class=\"form-left\">\n            <img [src]=\"ASSETS.case_category\" />\n          </div>\n          <div class=\"form-right\">\n            <div\n              class=\"label-heading vx-fs-11 vx-fw-500 vx-tt-uppercase vx-tt-uppercase vx-mb-2\"\n            >\n              SELECT POLICY CATEGORY\n              <span class=\"required vx-fs-14 vx-fw-500\">*</span>\n            </div>\n            <div\n              *ngIf=\"filteredCategory?.length === 0\"\n              (click)=\"enableCategory(true)\"\n              class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\n              [class.disabled]=\"false\"\n            >\n              <div\n                class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\n              >\n                Select the policy category that this approval<br />workflow\n                applies to\n              </div>\n            </div>\n\n            <div\n              *ngIf=\"filteredCategory?.length > 0\"\n              class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n            >\n              <div\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-1 vx-pr-2\"\n              >\n                <ng-container\n                  *ngFor=\"\n                    let category of filteredCategory | slice : 0 : 1;\n                    let catIndex = index\n                  \"\n                >\n                  <i\n                    (click)=\"removeCategory(category)\"\n                    class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\"\n                    >&#xe9ae;</i\n                  >\n                  <span\n                    class=\"chipName vx-fs-11 vx-label-txt\"\n                    [appTooltip]=\"category?.item_name\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                    >{{ category?.item_name }}</span\n                  >\n                </ng-container>\n                <button\n                  *ngIf=\"filteredCategory?.length > 1\"\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover\n                  (click)=\"policyOwnerPopover.popover()\"\n                  placement=\"right\"\n                >\n                  +{{ filteredCategory?.length - 1 }}\n                </button>\n              </div>\n              <app-popover #policyOwnerPopover [dontCloseonClick]=\"true\">\n                <div class=\"wf-action-list\">\n                  <ul class=\"action-item\">\n                    <li *ngFor=\"let category of filteredCategory | slice : 1\">\n                      <div class=\"avatar-card\">\n                        <span\n                          class=\"value\"\n                          [appTooltip]=\"category?.item_name\"\n                          placement=\"bottom-left\"\n                          delay=\"0\"\n                          type=\"black\"\n                          [tooltipMandatory]=\"false\"\n                        >\n                          <i (click)=\"removeCategory(category)\" class=\"icons\"\n                            >&#xe90d;</i\n                          >\n                          {{ category?.item_name }}\n                        </span>\n                      </div>\n                    </li>\n                  </ul>\n                </div>\n              </app-popover>\n              <button\n                filteredCategory\n                (click)=\"enableCategory(true)\"\n                class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n              >\n                <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n              </button>\n            </div>\n          </div>\n        </div>\n\n        <!-- Approval Workflow -->\n        <div class=\"approval-workflow-form-row vx-mb-5\">\n          <div class=\"form-left\">\n            <img [src]=\"ASSETS.approval\" />\n          </div>\n          <div class=\"form-right\">\n            <div\n              class=\"label-heading vx-fs-11 vx-fw-500 vx-tt-uppercase vx-tt-uppercase vx-mb-2\"\n            >\n              APPROVERS & APPROVAL WORKFLOW\n              <span class=\"required vx-fs-14 vx-fw-500\">*</span>\n            </div>\n            <div\n              *ngIf=\"approvalWorkflows?.length === 0\"\n              (click)=\"addLevelsClicked(true)\"\n              class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\n              [class.disabled]=\"false\"\n            >\n              <div\n                class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\n              >\n                Select approvers and select the order of approval\n              </div>\n            </div>\n            <ng-container *ngIf=\"approvalWorkflows?.length > 0\">\n              <div\n                *ngFor=\"\n                  let approvalWorkflow of approvalWorkflows;\n                  let i = index\n                \"\n                class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between vx-mb-2\"\n              >\n                <div class=\"vx-d-flex vx-align-center\">\n                  <div class=\"level-left vx-d-flex vx-align-center\">\n                    <div class=\"vx-d-block\">\n                      <div\n                        class=\"level-name vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-lh-3\"\n                        [appTooltip]=\"approvalWorkflow?.alias_name\"\n                        placement=\"bottom-left\"\n                        delay=\"0\"\n                        type=\"black\"\n                        [tooltipMandatory]=\"false\"\n                      >\n                        {{ approvalWorkflow?.alias_name }}\n                      </div>\n                      <div\n                        class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-3\"\n                      >\n                        <!-- {{ approvalWorkflow?.type }} -->\n                        {{\n                          (approvalWorkflow?.type | lowercase) === \"roundrobin\"\n                            ? \"ROUND-ROBIN\"\n                            : (approvalWorkflow?.type | lowercase) === \"anyone\"\n                            ? \"ANY ONE\"\n                            : approvalWorkflow?.type\n                        }}\n                      </div>\n                    </div>\n                  </div>\n                  <div\n                    class=\"chipContainer vx-d-flex vx-align-center vx-pl-1 vx-pr-2 vx-ml-2\"\n                  >\n                    <i\n                      (click)=\"deselectUser(approvalWorkflow?.approvers[0], i)\"\n                      class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\"\n                      >&#xe9ae;</i\n                    >\n                    <div\n                      *ngIf=\"\n                        approvalWorkflow?.type?.toLowerCase() ===\n                          'sequential' &&\n                        approvalWorkflow?.approvers?.length < 2\n                      \"\n                      class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\n                    >\n                      {{\n                        1 == approvalWorkflow?.approvers?.length ? \"Final\" : 1\n                      }}\n                    </div>\n                    <div\n                      *ngIf=\"\n                        approvalWorkflow?.approvers?.length > 1 &&\n                        approvalWorkflow?.type?.toLowerCase() === 'sequential'\n                      \"\n                      class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\n                    >\n                      1\n                    </div>\n                    <span\n                      class=\"chipName vx-fs-11 vx-label-txt\"\n                      [appTooltip]=\"approvalWorkflow?.approvers[0]?.member_name\"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"false\"\n                      >{{ approvalWorkflow?.approvers[0]?.member_name }}</span\n                    >\n                    <button\n                      *ngIf=\"approvalWorkflow?.approvers?.length > 1\"\n                      class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                      appPopover\n                      (click)=\"workflowPopover.popover()\"\n                      placement=\"right\"\n                    >\n                      + {{ approvalWorkflow?.approvers?.length - 1 }}\n                    </button>\n                  </div>\n                  <app-popover #workflowPopover [dontCloseonClick]=\"true\">\n                    <div class=\"wf-action-list\">\n                      <ul class=\"action-item\">\n                        <li\n                          *ngFor=\"\n                            let approver of approvalWorkflow?.approvers\n                              | slice : 1;\n                            let j = index\n                          \"\n                        >\n                          <div class=\"avatar-card\">\n                            <span\n                              class=\"value\"\n                              [appTooltip]=\"approver?.member_name\"\n                              placement=\"bottom-left\"\n                              delay=\"0\"\n                              type=\"black\"\n                              [tooltipMandatory]=\"false\"\n                            >\n                              <i\n                                (click)=\"deselectUser(approver, i)\"\n                                class=\"icons\"\n                                >&#xe90d;</i\n                              >\n                              <span\n                                *ngIf=\"\n                                  approvalWorkflow?.type?.toLowerCase() ===\n                                  'sequential'\n                                \"\n                                class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\n                                >{{\n                                  j + 1 ===\n                                  approvalWorkflow?.approvers?.length - 1\n                                    ? \"Final\"\n                                    : j + 2\n                                }}</span\n                              >\n                              {{ approver?.member_name }}\n                            </span>\n                          </div>\n                        </li>\n                      </ul>\n                    </div>\n                  </app-popover>\n                </div>\n\n                <div class=\"vx-d-flex vx-align-center\">\n                  <button\n                    (click)=\"editApproval(approvalWorkflow, i)\"\n                    class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n                  >\n                    <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n                  </button>\n                  <button\n                    (click)=\"deleteLevel(i)\"\n                    class=\"deleteBtn vx-fs-11 vx-fw-600 vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\"\n                  >\n                    <i class=\"icons vx-mr-1\">&#xe9ae;</i> DELETE\n                  </button>\n                </div>\n              </div>\n            </ng-container>\n\n            <button\n              *ngIf=\"approvalWorkflows?.length > 0\"\n              (click)=\"addLevelsClicked(true)\"\n              class=\"addMoreBtn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-mt-1\"\n            >\n              + ADD MORE LEVELS\n            </button>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <vui-floating-bar\n      *ngIf=\"enableApprovalCreate || enableCreateForm\"\n      [nextDisabled]=\"\n        workflowName?.trim() === '' ||\n        approvalWorkflows?.length === 0 ||\n        filteredCategory?.length === 0 ||\n        isSaving\n      \"\n      (closeList)=\"closeCreateForm()\"\n      (closeEvent)=\"nextClick()\"\n    ></vui-floating-bar>\n  </div>\n</div>\n\n<!-- [selectedItems]=\"policyForm.selectedCategories\" -->\n\n<app-select-approvers\n  *ngIf=\"enableApprovalLevel\"\n  [allApprovers]=\"allApprovers\"\n  (closeSelectApprover)=\"closeSelectApprover()\"\n  (selectedApprover)=\"selectedApprover($event)\"\n  [levels]=\"levels\"\n  [editApprovalData]=\"editApprovalData\"\n></app-select-approvers>\n\n<app-checkbox-list\n  *ngIf=\"enablePolicyCategory\"\n  [config]=\"categoryConfig\"\n  [twoColumn]=\"false\"\n  [itemsList]=\"selectedCategory\"\n  [identifierKey]=\"'_id'\"\n  [displayKey]=\"'item_name'\"\n  [tooltipKey]=\"'item_name'\"\n  [loaded]=\"false\"\n  (saveList)=\"saveCategoryList($event)\"\n  (closeList)=\"closeCategoryList()\"\n  [selectedItems]=\"filteredCategory\"\n>\n</app-checkbox-list>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { EditorConfig } from 'vcomply-editor';\n\n@Component({\n  selector: 'app-approval-workflow',\n  templateUrl: './approval-workflow.component.html',\n  styleUrls: ['./approval-workflow.component.less'],\n})\nexport class ApprovalWorkflowComponent implements OnInit {\n  hideDetails = false;\n  enableCreateForm: boolean = false;\n\n  @Input() approverWorkFlowList!: any;\n  @Input() allApprovers!: any;\n  @Input() selectedCategory: any;\n  @Input() editApprovalWorkflow: any;\n  @Input() createApprovalClick: boolean = false;\n  @Input() editWorkflowLevel!: any;\n\n  @Output() selectedWorkflowNext = new EventEmitter();\n  @Output() listCancelClicked = new EventEmitter();\n  @Output() saveApprovalWorkflow = new EventEmitter();\n  @Output() closeCreateClicked = new EventEmitter();\n\n  description: EditorConfig = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Add a description for this policy',\n  };\n  mode: 'CREATE' | 'EDIT' = 'CREATE';\n  approverDetails: any;\n\n  constructor() {}\n\n  ngOnInit(): void {\n    if (this.createApprovalClick) {\n      this.enableCreateForm = true;\n    }\n    if (this.editWorkflowLevel.editLevel) {\n      this.enableCreateForm = true;\n    }\n  }\n\n  showDetails() {\n    this.hideDetails = !this.hideDetails;\n  }\n\n  createApprovalClicked(event: boolean) {\n    this.enableCreateForm = event;\n  }\n\n  cancelClicked(event: any) {\n    this.enableCreateForm = false;\n    this.listCancelClicked.emit(event);\n  }\n\n  nextClicked(event: any) {\n    this.selectedWorkflowNext.emit(event);\n  }\n\n  approvalWorkflowAPICalled(event: any) {\n    this.enableCreateForm = false;\n    this.saveApprovalWorkflow.emit(event);\n  }\n\n  onApprovalEdit(event: any) {\n    this.enableCreateForm = true;\n    this.mode = 'EDIT';\n    this.approverDetails = event;\n  }\n\n  closeCreateFormClicked() {\n    this.closeCreateClicked.emit();\n  }\n}\n","<app-approval-workflow-list\n  *ngIf=\"approverWorkFlowList.length && !enableCreateForm\"\n  [approverWorkFlowList]=\"approverWorkFlowList\"\n  (createApprovalClicked)=\"createApprovalClicked($event)\"\n  (selectedWorkflowNext)=\"nextClicked($event)\"\n  (listCancelClicked)=\"cancelClicked($event)\"\n  (onApprovalEdit)=\"onApprovalEdit($event)\"\n  [editApprovalWorkflow]=\"editApprovalWorkflow\"\n></app-approval-workflow-list>\n<app-approval-create-form\n  *ngIf=\"!approverWorkFlowList.length || enableCreateForm\"\n  [selectedCategory]=\"selectedCategory\"\n  [approverWorkFlowList]=\"approverWorkFlowList\"\n  [enableCreateForm]=\"enableCreateForm\"\n  [allApprovers]=\"allApprovers\"\n  [mode]=\"mode\"\n  [approverDetails]=\"approverDetails\"\n  (saveApprovalWorkflow)=\"approvalWorkflowAPICalled($event)\"\n  (closeCreateClicked) = closeCreateFormClicked()\n  [editWorkflowLevel]=\"editWorkflowLevel\"\n></app-approval-create-form>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ASSETS } from '../../constants/assets.constants';\n@Component({\n  selector: 'app-policy-access',\n  templateUrl: './policy-access.component.html',\n  styleUrls: ['./policy-access.component.less'],\n})\nexport class PolicyAccessComponent implements OnInit {\n  ASSETS = ASSETS;\n\n  @Input() policyAccessType: number = 0;\n  @Input() SelectedCategory!: any;\n  @Input() orgUsersList: any = [];\n  @Input() groupList: any = [];\n  @Input() selectedUsers: any = [];\n  @Input() selectedGroups: any = [];\n  @Input() disabledIds: any = [];\n  @Input() usersAccessList: any = [];\n  @Input() groupsAccessList: any = [];\n  @Input() disabledGroupIds: any = [];\n  @Input() futureUsersWillSelect: boolean = false;\n  @Output() close: EventEmitter<any> = new EventEmitter();\n  @Output() saveCheckPoint: EventEmitter<any> = new EventEmitter();\n  @Output() setPolicyAccessType: EventEmitter<any> = new EventEmitter();\n  isConfirmationAlertVisible: boolean = false;\n  selectedUsersDetailsOnNext!: any;\n\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  setAccessField(event: number) {\n    this.policyAccessType = event;\n    this.selectedGroups = [];\n    if (event === 1) {\n      this.selectedUsers = [];\n    }\n  }\n\n  disableSelector() {\n    this.close.emit();\n  }\n\n  saveSelectedUsers(event: any) {\n    if (event?.futureUsersWillSelect) {\n      this.isConfirmationAlertVisible = event?.futureUsersWillSelect;\n      this.selectedUsersDetailsOnNext = event;\n    } else {\n      this.saveCheckPoint.emit(event);\n      this.setPolicyAccessType.emit(this.policyAccessType);\n    }\n  }\n\n  saveChanges(event: boolean) {\n    this.isConfirmationAlertVisible = false;\n    if (event) {\n      this.saveCheckPoint.emit(this.selectedUsersDetailsOnNext);\n      this.setPolicyAccessType.emit(this.policyAccessType);\n    }\n  }\n}\n","<div class=\"policy-access-dialog\">\n  <div\n    class=\"policy-access-dialog-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n      Specify Policy Portal Access Type\n    </div>\n  </div>\n  <div class=\"policy-access-dialog-body\">\n    <div class=\"policy-access-dialog-body-inner\">\n      <!-- Step 1 -->\n      <div class=\"approvers-form-group vx-mb-2\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n          STEP 1: ACCESS TYPE <span class=\"vx-fs-14 vx-txt-red\">*</span>\n        </div>\n        <div class=\"vx-d-flex vx-align-center vx-justify-between\">\n          <app-cs-radio\n            [name]=\"'policyAccessType'\"\n            [checked]=\"policyAccessType === 0\"\n            (checkedEvent)=\"setAccessField(0)\"\n          >\n            <div\n              class=\"approval-type vx-d-flex vx-align-center vx-justify-between vx-p-2 vx-pl-3 vx-pr-3\"\n            >\n              <div class=\"vx-d-flex vx-align-center\">\n                <img [src]=\"ASSETS.select_users\" />\n                <div\n                  class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\"\n                >\n                  EVERYONE WHO HAS ACCESS TO THIS POLICY CATEGORY\n                </div>\n                <i\n                  class=\"icons vx-fs-12 vx-txt-blue vx-ml-2\"\n                  [appTooltip]=\"\n                    'If selected, this policy will be visible to all users selected as authors, approvers and category owners of the policy categories linked with this policy.'\n                  \"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"white\"\n                  [tooltipMandatory]=\"true\"\n                  >&#xe91f;</i\n                >\n              </div>\n              <div class=\"vx-d-block\">\n                <span class=\"circle-selection\"></span>\n                <i class=\"icons ckeck-selection vx-fs-16\">&#xe949;</i>\n              </div>\n            </div>\n          </app-cs-radio>\n          <app-cs-radio\n            [name]=\"'policyAccessType'\"\n            [checked]=\"policyAccessType === 1\"\n            (checkedEvent)=\"setAccessField(1)\"\n          >\n            <div\n              class=\"approval-type vx-d-flex vx-align-center vx-justify-between vx-p-2 vx-pl-3 vx-pr-3\"\n            >\n              <div class=\"vx-d-flex vx-align-center\">\n                <img [src]=\"ASSETS.everyone_as_per_category\" />\n                <div\n                  class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase\"\n                >\n                  SELECT USERS & GROUPS\n                </div>\n                <i\n                  class=\"icons vx-fs-12 vx-txt-blue vx-ml-2\"\n                  [appTooltip]=\"\n                    'This option allows you to specify users or groups that can view this policy, This is the list of all users within your VComply account.'\n                  \"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"white\"\n                  [tooltipMandatory]=\"true\"\n                  >&#xe91f;</i\n                >\n              </div>\n              <div class=\"vx-d-block\">\n                <span class=\"circle-selection\"></span>\n                <i class=\"icons ckeck-selection vx-fs-16\">&#xe949;</i>\n              </div>\n            </div>\n          </app-cs-radio>\n        </div>\n      </div>\n\n      <!-- Step 2 -->\n      <div class=\"approvers-form-group vx-mb-2\">\n        <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n          STEP 2: SELECT USER(S) <span class=\"vx-fs-14 vx-txt-red\">*</span>\n        </div>\n        <div class=\"approvers-user-group\">\n          <user-group-list\n            *ngIf=\"policyAccessType === 0\"\n            [userlist]=\"orgUsersList\"\n            [groupEnabled]=\"true\"\n            [isGroupTabShow]=\"true\"\n            [selectedUsers]=\"usersAccessList\"\n            [selectedGroups]=\"groupsAccessList\"\n            [disabledIds]=\"disabledIds\"\n            [nonRemovableUserIds]=\"disabledIds\"\n            [nonRemovableGroupIds]=\"disabledGroupIds\"\n            [groupList]=\"groupsAccessList\"\n            [allUserSelectedDisabled]=\"true\"\n            [showFutureUsersSwitch]=\"false\"\n            [isAllDisabled]=\"true\"\n            (cancel)=\"disableSelector()\"\n            (save)=\"saveSelectedUsers($event)\"\n          ></user-group-list>\n\n          <user-group-list\n            *ngIf=\"policyAccessType === 1\"\n            [userlist]=\"orgUsersList\"\n            [groupEnabled]=\"true\"\n            [groupList]=\"groupList\"\n            [selectedUsers]=\"selectedUsers\"\n            [selectedGroups]=\"selectedGroups\"\n            [showFutureUsersSwitch]=\"true\"\n            [futureUsersWillSelect]=\"futureUsersWillSelect\"\n            (cancel)=\"disableSelector()\"\n            (save)=\"saveSelectedUsers($event)\"\n          ></user-group-list>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div\n    class=\"policy-access-dialog-confirmation\"\n    *ngIf=\"isConfirmationAlertVisible\"\n  >\n    <div class=\"confirmation-top\">\n      <div class=\"icon-block\"><i class=\"icons\">&#xe930;</i></div>\n      <div class=\"text\">\n        The policies that you intend to make accessible to the entire\n        organization can be added to the policy portal. It is like a shared\n        catalog of all active & updated policies that any logged in user can\n        read/ download for reference. Hence, if this option is enabled, it is\n        not necessary for you to set up an attestation schedule or select\n        readers to attest the policies.\n      </div>\n    </div>\n    <div class=\"confirmation-bottom\">\n      <div class=\"message\">Are you sure you would like to proceed?</div>\n      <div class=\"button-group\">\n        <button class=\"no-btn\" (click)=\"saveChanges(false)\">NO</button>\n        <button class=\"yes-btn\" (click)=\"saveChanges(true)\">YES</button>\n      </div>\n    </div>\n  </div>\n</div>\n\n<!-- [selectedUsers]=\"policyForm.CCFailEmail\"\n[selectedGroups]=\"policyForm.CCFailEmailGroup\"\n(save)=\"saveSelectedList('ccFail', $event)\" -->\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'tooltipValidation'\n})\nexport class TooltipValidationPipe implements PipeTransform {\n\n  transform(value: any, program?:any): any {\n    value = value?.toString()\n    const index = value?.indexOf('<br>')\n    if(index == -1){\n    let newVal = value?.replaceAll(/<\\/?span[^>]*>/g,\"\");\n    newVal = newVal?.replaceAll(\"<\", \"&lt;\");\n    if(program?.name?.length){\n     newVal = newVal + `<span class='small-text'>WITHIN: ${program?.name?.join(' < ')}</span>`\n    }\n    return newVal;\n    }else{\n      return value;\n    }\n  }\n\n}\n","import { HttpParams } from '@angular/common/http';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { RestApiService } from '../restapi.service';\nimport { SnackBarService } from '../../../ui-kit/snack-bar/snack-bar.service';\nimport { SelectedIds, SelectedValues } from '../program-integration-interfaces';\nimport { programList } from './program-list-model';\nimport { ASSETS } from '../../../constants/assets.constants';\n\n@Component({\n  selector: 'vc-link-program',\n  templateUrl: './link-program.component.html',\n  styleUrls: ['./link-program.component.less'],\n})\nexport class LinkProgramComponent implements OnInit {\n  animation = false;\n  ASSETS = ASSETS;\n  subCategoriesList = {\n    from: 1,\n    to: 0,\n    currentPage: 1,\n    totalPage: 0,\n    totalRecords: 0,\n    data: [],\n  };\n  responsibilitiesList = {\n    from: 1,\n    to: 0,\n    currentPage: 1,\n    totalPage: 0,\n    totalRecords: 0,\n    data: [],\n  };\n\n  searchText = {\n    program: '',\n    category: '',\n    responsibility: '',\n  };\n\n  selectedValues: SelectedValues = {\n    program: {},\n    categories: [],\n    responsibilities: [],\n  };\n  selectedIds: SelectedIds = {\n    categories: [],\n    responsibilities: [],\n  };\n\n  submissionLoader = false;\n  currentCategory: any = {};\n\n  @Input() policy: any = {};\n  @Input() currentTab!: any;\n  @Input() mode: string = '';\n  @Output() changeTab = new EventEmitter();\n  @Output() updatedProgramDetails = new EventEmitter();\n\n  currentBusinessCycle!: any;\n  loader = false;\n  programSortBy: 'desc' | 'asc' = 'desc';\n  currentList: 'programs' | 'categories' | 'responsibilities' = 'programs';\n  unsubscribe = new Subject();\n  @Output() save = new EventEmitter();\n  @Output() close = new EventEmitter();\n\n  @Output() refreshLinkedPolicies = new EventEmitter();\n  //program\n  subList = false;\n  @Input() programsList: any;\n  @Input('selectedProgram') set getSelectedProgram(program: any) {\n    this.selectedValues = JSON.parse(JSON.stringify(program)) ?? {\n      program: {},\n      categories: [],\n      responsibilities: [],\n    };\n  }\n  @Input() selectedCategories: any[] = [];\n  @Input() selectedLinkProgram = {\n    _id: '',\n  };\n  @Input() hideProgramsList!: any;\n  @ViewChild('searchProgram') searchProgram!: any;\n\n  previousSelectedValues: any = {\n    program: {},\n    categories: [],\n  };\n  programData: programList = {\n    data: [],\n    from: 0,\n    to: 0,\n    totalPages: 0,\n    totalRecords: 0,\n    currentPage: 1,\n    AllInternalControlsProgramsCount: 0,\n    AllOthersProgramsCount: 0,\n    AllRegulationProgramsCount: 0,\n    AllStandardProgramsCount: 0,\n    SelectedInternalControlsProgramsCount: 0,\n    SelectedOthersProgramsCount: 0,\n    SelectedRegulationProgramsCount: 0,\n    SelectedStandardProgramsCount: 0,\n  };\n  programTypeObject = {\n    regulations: 1,\n    standards: 2,\n    internal_controls: 3,\n    others: 0,\n  };\n\n  displayConfirmationMessage = false;\n\n  activeTab: 'regulations' | 'standards' | 'internal_controls' | 'others' =\n    'regulations';\n\n  //program\n\n  constructor(\n    private restApiService: RestApiService,\n    private snackbar: SnackBarService\n  ) {\n    this.getPrograms();\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.currentBusinessCycle = this.restApiService.getBusinessCycle();\n  }\n\n  getPrograms(data?: any) {\n    this.loader = true;\n    let params = new HttpParams();\n    // params = params.append('mode', 'complianceCategory/programList');\n    params = params.append(\n      'programType',\n      this.programTypeObject[this.activeTab]\n    );\n    params = params.append('pageName', 'policyWorkroom');\n    if (data?.search || this.searchText.program) {\n      params = params.append('searchText', this.searchText.program);\n    } else {\n      params = params.append('pageNo', this.programData.currentPage);\n    }\n    const request = {\n      method: 'get',\n      action: 'complianceGet',\n      params,\n    };\n    this.restApiService\n      .apiDelegate(request, 'complianceCategory/programList')\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.programData.data = res.data;\n          this.programData.from = res.from;\n          this.programData.to = res.to;\n          this.programData.totalPages = res.totalPages;\n          this.programData.totalRecords = res.totalRecords;\n          this.programData.AllInternalControlsProgramsCount =\n            res.AllInternalControlsProgramsCount;\n          this.programData.AllOthersProgramsCount = res.AllOthersProgramsCount;\n          this.programData.AllRegulationProgramsCount =\n            res.AllRegulationProgramsCount;\n          this.programData.AllStandardProgramsCount =\n            res.AllStandardProgramsCount;\n          this.loader = false;\n        },\n        error: (err: any) => {\n          this.loader = false;\n        },\n      });\n  }\n\n  getCategories(data?: any) {\n    this.loader = true;\n    let params = new HttpParams();\n    params = params.append('parentId', this.selectedValues.program?._id);\n\n    if (data?.search) {\n      params = params.append('q', this.searchText.category);\n    }\n\n    const request = {\n      method: 'get',\n      action: 'programEndpoint',\n      params,\n    };\n    this.restApiService\n      .apiDelegate(request, '/subCategories')\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.subCategoriesList.from = res.items_from ?? 1;\n          this.subCategoriesList.to = res.items_to ?? 0;\n          this.subCategoriesList.totalPage = res.total_pages ?? 0;\n          this.subCategoriesList.totalRecords = res.total_items ?? 0;\n          this.subCategoriesList.data = res.data ?? [];\n          this.loader = false;\n        },\n        error: (err: any) => {\n          this.loader = false;\n        },\n      });\n  }\n  changeTabProgram(\n    type: 'regulations' | 'standards' | 'internal_controls' | 'others'\n  ) {\n    this.activeTab = type;\n    this.programData.currentPage = 1;\n    this.searchText.program = '';\n    this.searchProgram.nativeElement.value = '';\n    this.getPrograms();\n  }\n\n  getResponsibilities(data?: any) {\n    this.loader = true;\n\n    const request = {\n      method: 'get',\n      action: 'programEndpoint',\n      payloadObject: {\n        categoryIds: this.selectedIds?.categories,\n        pageNo: this.responsibilitiesList?.currentPage,\n        searchText: data?.search ? this.searchText?.responsibility : '',\n        pageName: 'policyWorkroom',\n      },\n    };\n    this.restApiService\n      .apiDelegate(request, '/categoryResponsibilities')\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.loader = false;\n          this.responsibilitiesList.from = res.items_from ?? 1;\n          this.responsibilitiesList.to = res.items_to ?? 0;\n          this.responsibilitiesList.totalPage = res.total_pages ?? 1;\n          this.responsibilitiesList.totalRecords = res.total_items ?? 0;\n          this.responsibilitiesList.data = res.data ?? [];\n        },\n        error: (err: any) => {\n          this.loader = false;\n        },\n      });\n  }\n\n  changePage(event: any, type: 'programs' | 'categories' | 'responsibilities') {\n    switch (type) {\n      case 'programs':\n        this.programData.currentPage = event;\n        this.getPrograms();\n        break;\n      case 'categories':\n        this.subCategoriesList.currentPage = event;\n        this.getCategories();\n        break;\n      case 'responsibilities':\n        this.responsibilitiesList.currentPage = event;\n        this.getResponsibilities();\n        break;\n    }\n  }\n  searchBy(event: any, type: 'programs' | 'categories' | 'responsibilities') {\n    switch (type) {\n      case 'programs':\n        if (this.searchText.program != event) {\n          this.searchText.program = event;\n          this.getPrograms({ search: true });\n        }\n        break;\n      case 'categories':\n        if (this.searchText.category != event) {\n          this.searchText.category = event;\n          this.getCategories({ search: true });\n        }\n        break;\n      case 'responsibilities':\n        if (this.searchText.responsibility != event) {\n          this.searchText.responsibility = event;\n          this.getResponsibilities({ search: true });\n        }\n        break;\n    }\n  }\n\n  selectProgram(event: any, data: any) {\n    if (event) {\n      this.selectedValues.program = data;\n      this.selectedIds.categories = [];\n      this.selectedValues.categories = [];\n      this.selectedIds.responsibilities = [];\n      this.selectedValues.responsibilities = [];\n    }\n  }\n\n  selectCategory(event: any, category: any) {\n    if (event) {\n      this.selectedIds.categories.push(category.category_id);\n      this.selectedValues.categories.push(category);\n    } else {\n      const index = this.selectedIds.categories.findIndex(\n        (element: any) => element == category.category_id\n      );\n      this.selectedIds.categories.splice(index, 1);\n      const categoryIndex = this.selectedValues.categories.findIndex(\n        (ele: any) => ele.category_id == category.category_id\n      );\n      this.selectedValues.categories.splice(categoryIndex, 1);\n    }\n  }\n  selectResponsibility(event: any, data: any) {\n    if (event) {\n      this.selectedIds.responsibilities.push(data.ReportId);\n      this.selectedValues.responsibilities.push(data);\n    } else {\n      const index = this.selectedIds.responsibilities.findIndex(\n        (element: any) => element == data.ReportId\n      );\n      this.selectedIds.responsibilities.splice(index, 1);\n      const reportIndex = this.selectedValues.responsibilities.findIndex(\n        (ele: any) => ele.ReportId == data.ReportId\n      );\n      this.selectedValues.responsibilities.splice(reportIndex, 1);\n    }\n  }\n  goBack(from?: 'categories' | 'responsibilities') {\n    if (from) {\n      switch (from) {\n        case 'categories':\n          this.currentList = 'programs';\n          this.selectedIds.categories = [];\n          break;\n        case 'responsibilities':\n          this.currentList = 'categories';\n          this.selectedIds.responsibilities = [];\n          break;\n      }\n    } else {\n      this.close.emit();\n    }\n  }\n\n  remove(type: 'programs' | 'categories' | 'responsibilities', item: any) {\n    switch (type) {\n      case 'programs':\n        this.selectedValues.program = {};\n        this.selectedValues.categories = [];\n        this.selectedValues.responsibilities = [];\n        break;\n      case 'categories':\n        const categoryIndex = this.selectedValues.categories.findIndex(\n          (ele: any) => ele.category_id == item.category_id\n        );\n        if (categoryIndex != -1) {\n          this.selectedValues.categories.splice(categoryIndex, 1);\n          this.selectedValues.responsibilities = [];\n        }\n        const categoryIdIndex = this.selectedIds.categories.findIndex(\n          (element: any) => element == item.category_id\n        );\n        if (categoryIdIndex != -1) {\n          this.selectedIds.categories.splice(categoryIdIndex, 1);\n        }\n        break;\n      case 'responsibilities':\n        const respIndex = this.selectedValues.responsibilities.findIndex(\n          (ele: any) => ele.ReportId == item.ReportId\n        );\n        if (respIndex != -1) {\n          this.selectedValues.responsibilities.splice(respIndex, 1);\n        }\n        const index = this.selectedIds.responsibilities.findIndex(\n          (element: any) => element == item.ReportId\n        );\n        if (index != -1) {\n          this.selectedIds.responsibilities.splice(index, 1);\n        }\n\n        break;\n    }\n  }\n\n  saveChanges(\n    type: 'programs' | 'categories' | 'responsibilities' | 'programsOnly'\n  ) {\n    switch (type) {\n      case 'programs':\n        this.currentList = 'categories';\n        this.selectedValues.categories = [];\n        this.selectedValues.responsibilities = [];\n        this.getCategories();\n        break;\n      case 'categories':\n        this.currentList = 'responsibilities';\n        this.selectedValues.responsibilities = [];\n        this.getResponsibilities();\n\n        break;\n      case 'responsibilities':\n        this.submitprogramIntegration();\n        break;\n      case 'programsOnly':\n        this.displayConfirmationMessage = true;\n        break;\n    }\n  }\n  saveChangesFromProgram(event: boolean) {\n    if (event) {\n      this.displayConfirmationMessage = false;\n      this.submitprogramIntegration();\n    } else {\n      this.displayConfirmationMessage = false;\n    }\n  }\n\n  submitprogramIntegration() {\n    // this.submissionLoader = true;\n    let params = new HttpParams();\n    params = params.append('mode', 'programPolicyUpdate/update');\n\n    const categoryArray = this.selectedIds?.categories;\n\n    const payload = {\n      policyId: this.policy?.policy_id ?? 0,\n      report_ids: this.selectedIds?.responsibilities ?? 0,\n      category_id: [...new Set(categoryArray)],\n      parentId: this.selectedValues?.program?.category_id,\n    };\n    let remove = {};\n    if (\n      this.selectedLinkProgram?._id &&\n      this.selectedValues?.program?._id !== this.selectedLinkProgram?._id\n    ) {\n      remove = {\n        policyIds: [this.policy?.policy_id ?? 0],\n        programId: this.selectedLinkProgram?._id,\n      };\n    }\n    const currentBusinessCycle = {\n      start_date: this.currentBusinessCycle?.start_date,\n      end_date: this.currentBusinessCycle?.end_date,\n      selected_cycle_arr: this.currentBusinessCycle?.selected_cycle_arr,\n      selected_cycle: this.currentBusinessCycle?.selected_cycle,\n    };\n    let linkProgram = {\n      added: Object.keys(payload).length ? [payload] : [],\n      removed: Object.keys(remove).length ? [remove] : [],\n    };\n    let selectedProgram = {\n      selectedValues: this.selectedValues,\n      linkProgram: linkProgram,\n      businessCycle: currentBusinessCycle,\n    };\n    this.updatedProgramDetails.emit(\n      JSON.parse(JSON.stringify(selectedProgram))\n    );\n    this.submissionLoader = false;\n\n    const request = {\n      method: 'post',\n      action: '/compliance_post',\n      params,\n      data: payload,\n      businessCycle: currentBusinessCycle,\n    };\n    // this.restApiService.apiDelegate(request).pipe(takeUntil(this.unsubscribe)).subscribe({\n    //   next: (res: any) => {\n    //     this.submissionLoader = false;\n    //     this.snackbar.show('The program has been linked with this Policy.', 'success');\n    //     setTimeout(() => {\n    //       if(this.currentTab != 'linked_programs'){\n    //         this.refreshLinkedPolicies.emit();\n    //         // this.changeTab.emit();\n    //       }\n    //       this.close.emit();\n    //     }, 1000);\n\n    //   },\n    //   error: (err: any) => {\n    //     this.submissionLoader = false;\n    //     this.snackbar.show(\"Oops Something went wrong and we were unable to complete this action. Let's give it another try shall we ?\");\n    //   },\n    // });\n  }\n}\n","<div class=\"link-policy\" [class.animate]=\"animation\">\n  <ng-container *ngIf=\"currentList == 'programs'\">\n    <div\n      class=\"program-listing-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n    >\n      <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Program</div>\n      <!-- <button (click)=\"goBack()\" class=\"back-btn vx-fs-12 vx-fw-500 vx-lable-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"><i class=\"icons vx-mr-1\">&#xe91d;</i> Back</button> -->\n    </div>\n    <div class=\"program-listing-body\">\n      <div class=\"filter-card-row vx-d-flex vx-mb-2\">\n        <div\n          class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"activeTab == 'regulations'\"\n          (click)=\"changeTabProgram('regulations')\"\n        >\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <div class=\"vx-d-block vx-lh-3\">\n                <label\n                  class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n                  >REGULATIONS</label\n                >\n                <span\n                  class=\"vx-fs-10 vx-fw-600 vx-label-txt vx-lh-4\"\n                  *ngIf=\"programData?.SelectedRegulationProgramsCount > 0\"\n                  >{{ programData?.SelectedRegulationProgramsCount }}\n                  {{\n                    programData?.SelectedRegulationProgramsCount == 1\n                      ? \"Program\"\n                      : \"Programs\"\n                  }}\n                  selected</span\n                >\n              </div>\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span\n              class=\"counter vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\"\n              >{{ programData?.AllRegulationProgramsCount }}</span\n            >\n          </div>\n        </div>\n        <div\n          class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"activeTab == 'standards'\"\n          (click)=\"changeTabProgram('standards')\"\n        >\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <div class=\"vx-d-block vx-lh-3\">\n                <label\n                  class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n                  >STANDARDS</label\n                >\n                <span\n                  class=\"vx-fs-10 vx-fw-600 vx-label-txt vx-lh-4\"\n                  *ngIf=\"programData?.SelectedStandardProgramsCount > 0\"\n                  >{{ programData?.SelectedStandardProgramsCount }}\n                  {{\n                    programData?.SelectedStandardProgramsCount == 1\n                      ? \"Program\"\n                      : \"Programs\"\n                  }}\n                  selected</span\n                >\n              </div>\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span\n              class=\"counter vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\"\n              >{{ programData?.AllStandardProgramsCount }}</span\n            >\n          </div>\n        </div>\n        <div\n          class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"activeTab == 'internal_controls'\"\n          (click)=\"changeTabProgram('internal_controls')\"\n        >\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <div class=\"vx-d-block vx-lh-3\">\n                <label\n                  class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n                  >INTERNAL CONTROLS</label\n                >\n                <span\n                  class=\"vx-fs-10 vx-fw-600 vx-label-txt vx-lh-4\"\n                  *ngIf=\"programData?.SelectedInternalControlsProgramsCount > 0\"\n                  >{{ programData?.SelectedInternalControlsProgramsCount }}\n                  {{\n                    programData?.SelectedInternalControlsProgramsCount == 1\n                      ? \"Program\"\n                      : \"Programs\"\n                  }}\n                  selected</span\n                >\n              </div>\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span\n              class=\"counter vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\"\n              >{{ programData?.AllInternalControlsProgramsCount }}</span\n            >\n          </div>\n        </div>\n        <div\n          class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"activeTab == 'others'\"\n          (click)=\"changeTabProgram('others')\"\n        >\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <div class=\"vx-d-block vx-lh-3\">\n                <label\n                  class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n                  >OTHERS</label\n                >\n                <span\n                  class=\"vx-fs-10 vx-fw-600 vx-label-txt vx-lh-4\"\n                  *ngIf=\"programData?.SelectedOthersProgramsCount > 0\"\n                  >{{ programData?.SelectedOthersProgramsCount }}\n                  {{\n                    programData?.SelectedOthersProgramsCount == 1\n                      ? \"Program\"\n                      : \"Programs\"\n                  }}\n                  selected</span\n                >\n              </div>\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span\n              class=\"counter vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\"\n              >{{ programData?.AllOthersProgramsCount }}</span\n            >\n          </div>\n        </div>\n\n        <!-- <div class=\"filter-card\" [class.active]=\"activeTab == 'regulations'\" (click)=\"changeTabProgram('regulations')\">\n                    <div class=\"left\">\n                        <label>REGULATIONS</label>\n                        <p *ngIf=\"programData?.SelectedRegulationProgramsCount> 0\">\n                            {{programData?.SelectedRegulationProgramsCount}}\n                            {{(programData?.SelectedRegulationProgramsCount==1)?'Program':'Programs'}} selected\n                        </p>\n                    </div>\n                    <span class=\"counter\">{{programData?.AllRegulationProgramsCount}}</span>\n                </div> -->\n        <!-- <div class=\"filter-card\" [class.active]=\"activeTab == 'standards'\" (click)=\"changeTabProgram('standards')\">\n                    <div class=\"left\">\n                        <label>STANDARDS</label>\n                        <p *ngIf=\"programData?.SelectedStandardProgramsCount> 0\">\n                            {{programData?.SelectedStandardProgramsCount}}\n                            {{(programData?.SelectedStandardProgramsCount==1)?'Program':'Programs'}} selected\n                        </p>\n                    </div>\n                    <span class=\"counter\">{{programData?.AllStandardProgramsCount}}</span>\n                </div> -->\n        <!-- <div class=\"filter-card\" [class.active]=\"activeTab == 'internal_controls'\" (click)=\"changeTabProgram('internal_controls')\">\n                    <div class=\"left\">\n                        <label>INTERNAL CONTROLS</label>\n                        <p *ngIf=\"programData?.SelectedInternalControlsProgramsCount> 0\">\n                            {{programData?.SelectedInternalControlsProgramsCount}}\n                            {{(programData?.SelectedInternalControlsProgramsCount==1)?'Program':'Programs'}} selected\n                        </p>\n                    </div>\n                    <span class=\"counter\">{{programData?.AllInternalControlsProgramsCount}}</span>\n                </div> -->\n        <!-- <div class=\"filter-card\" [class.active]=\"activeTab == 'others'\" (click)=\"changeTabProgram('others')\">\n                    <div class=\"left\">\n                        <label>OTHERS</label>\n                        <p *ngIf=\"programData?.SelectedOthersProgramsCount> 0\">\n                            {{programData?.SelectedOthersProgramsCount}}\n                            {{(programData?.SelectedOthersProgramsCount==1)?'Program':'Programs'}} selected\n                        </p>\n                    </div>\n                    <span class=\"counter\">{{programData?.AllOthersProgramsCount}}</span>\n                </div> -->\n      </div>\n      <div class=\"link-policy-search vx-mb-2\">\n        <i class=\"icons vx-fs-12\">&#xe90b;</i>\n        <input\n          type=\"text\"\n          placeholder=\"Search Programs\"\n          #searchProgram\n          (keyup.enter)=\"searchBy($event.target.value, 'programs')\"\n        />\n      </div>\n      <vui-pagination\n        *ngIf=\"!loader && programData.totalPages > 1\"\n        [from]=\"programData.from\"\n        [to]=\"programData.to\"\n        [total]=\"programData.totalRecords\"\n        [showPageDetail]=\"true\"\n        [totalPage]=\"programData.totalPages\"\n        [currentPage]=\"programData.currentPage\"\n        [pageInSingleView]=\"5\"\n        (pageChanged)=\"changePage($event, 'programs')\"\n      >\n      </vui-pagination>\n      <div\n        class=\"program-listing-part vx-mb-4\"\n        [class.with-pagination]=\"!loader && programData.totalPages > 1\"\n      >\n        <app-no-data\n          *ngIf=\"programData?.data?.length == 0 && !loader\"\n          [noDataImage]=\"ASSETS.search_data\"\n          [noDataText]=\"'No data to display'\"\n        ></app-no-data>\n\n        <div\n          class=\"program-listing-item\"\n          [class.active]=\"\n            selectedValues?.program?.category_id == program?.category_id\n          \"\n          *ngFor=\"let program of programData.data; let i = index\"\n        >\n          <div\n            class=\"table-row main-list\"\n            [class.active]=\"\n              selectedValues?.program?.category_id == program?.category_id\n            \"\n            [class.disabled]=\"program?.programReportExists == 0\"\n            (click)=\"selectProgram(true, program)\"\n          >\n            <div class=\"table-column serial\">\n              <div\n                class=\"sr-no\"\n                [appTooltip]=\"i + programData.from\"\n                placement=\"bottom\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"true\"\n              >\n                {{ i + programData.from }}\n              </div>\n\n              <app-cs-radio\n                [name]=\"'policyName'\"\n                [checked]=\"\n                  selectedValues?.program?.category_id == program?.category_id\n                \"\n                (checkedEvent)=\"selectProgram($event.target.checked, program)\"\n              ></app-cs-radio>\n            </div>\n            <div class=\"table-column name\">\n              <div class=\"name-inner\">\n                <div class=\"name-with-count\">\n                  <div\n                    class=\"value\"\n                    appTooltip=\"{{ program?.name | tooltipValidation }}\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                  >\n                    {{ program?.name }}\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div\n        class=\"link-policy-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3\"\n      >\n        <div class=\"link-policy-floating-bar-left vx-d-flex vx-align-center\">\n          <div\n            class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            *ngIf=\"selectedValues?.program?.name\"\n          >\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"remove('programs', '')\"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"selectedValues?.program?.name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ selectedValues?.program?.name }}</span\n            >\n          </div>\n\n          <!-- <div class=\"chip vx-pl-2 vx-pr-2 vx-txt-blue vx-fs-12 vx-lh-6 vx-mr-1\" *ngIf=\"selectedValues?.program?.name\"><i class=\"icons vx-mr-1\" (click)=\"remove('programs','')\">&#xe9ae;</i>{{selectedValues?.program?.name}}</div> -->\n          <!-- <div class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt vx-ml-2\">Policy selected</div> -->\n        </div>\n        <div class=\"link-policy-floating-bar-right vx-d-flex vx-align-center\">\n          <button\n            (click)=\"goBack()\"\n            class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-m-0 vx-mr-2 vx-d-flex vx-align-center vx-justify-center vx-txt-red\"\n          >\n            CANCEL\n          </button>\n          <!-- <button (click)=\"saveChanges('programs')\" [class.disabled]=\"!selectedValues?.program?.name\" class=\"white-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-m-0 vx-mr-1 vx-d-flex vx-align-center vx-justify-center vx-txt-blue\">\n                        LINK CATEGORIES AND RESPONSIBILITIES</button> -->\n          <button\n            (click)=\"saveChanges('programs')\"\n            [class.disabled]=\"!selectedValues?.program?.name\"\n            class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-m-0 vx-d-flex vx-align-center vx-justify-center vx-txt-white\"\n          >\n            Link <i class=\"icons vx-ml-2\">&#xe91e;</i>\n          </button>\n        </div>\n      </div>\n    </div>\n\n    <div\n      class=\"program-listing-confirmation\"\n      *ngIf=\"displayConfirmationMessage\"\n    >\n      <div class=\"confirmation-top\">\n        <div class=\"icon-block\"><i class=\"icons\">&#xe930;</i></div>\n        <div class=\"text\">\n          You have opted to link all the responsibilities under the selected\n          program \"{{ selectedValues?.program?.name }}\" and it's sub-categories.\n        </div>\n      </div>\n      <div class=\"confirmation-bottom\">\n        <div class=\"message\">Are you sure you would like to proceed?</div>\n        <div class=\"button-group\">\n          <button class=\"no-btn\" (click)=\"saveChangesFromProgram(false)\">\n            NO\n          </button>\n          <button class=\"yes-btn\" (click)=\"saveChangesFromProgram(true)\">\n            YES\n          </button>\n        </div>\n      </div>\n    </div>\n  </ng-container>\n\n  <ng-container *ngIf=\"currentList == 'categories'\">\n    <div\n      class=\"link-policy-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n    >\n      <div class=\"vx-fs-14 vx-fw-500 vx-label-txt vx-d-flex vx-align-center\">\n        <button\n          (click)=\"goBack('categories')\"\n          class=\"back-btn vx-fs-14 vx-fw-500 vx-lable-txt vx-p-0 vx-mr-2 vx-d-flex vx-align-center\"\n        >\n          <i class=\"icons\">&#xe91d;</i>\n        </button>\n        Select program categories to link with this policy\n      </div>\n    </div>\n    <div class=\"link-policy-body\">\n      <div class=\"link-policy-search vx-mb-2\">\n        <i class=\"icons vx-fs-12\">&#xe90b;</i>\n        <input\n          type=\"text\"\n          placeholder=\"Search program categories\"\n          #searchCategory\n          (keyup.enter)=\"searchBy($event.target.value, 'categories')\"\n        />\n      </div>\n      <vui-pagination\n        *ngIf=\"!loader && subCategoriesList.totalPage > 1\"\n        [from]=\"subCategoriesList.from\"\n        [to]=\"subCategoriesList.to\"\n        [total]=\"subCategoriesList.totalRecords\"\n        [showPageDetail]=\"true\"\n        [totalPage]=\"subCategoriesList.totalPage\"\n        [currentPage]=\"subCategoriesList.currentPage\"\n        [pageInSingleView]=\"5\"\n        (pageChanged)=\"changePage($event, 'programs')\"\n      >\n      </vui-pagination>\n\n      <div\n        class=\"link-policy-table vx-mb-4\"\n        [class.with-pagination]=\"!loader && subCategoriesList.totalPage > 1\"\n      >\n        <ng-container *ngIf=\"!loader && subCategoriesList.data?.length > 0\">\n          <div class=\"table-header\">\n            <div class=\"table-row\">\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n              >\n                #\n              </div>\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category-name\"\n              >\n                CATEGORIES\n              </div>\n            </div>\n          </div>\n          <div class=\"table-body\">\n            <!-- when checkbox was checked then active class was true -->\n            <div\n              class=\"table-row\"\n              [class.active]=\"\n                selectedIds.categories.includes(category.category_id)\n              \"\n              *ngFor=\"let category of subCategoriesList.data; let i = index\"\n            >\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n              >\n                <div\n                  class=\"sr-no\"\n                  [appTooltip]=\"i + subCategoriesList.from\"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"true\"\n                >\n                  {{ i + subCategoriesList.from }}\n                </div>\n                <vui-checkbox\n                  [checked]=\"\n                    selectedIds.categories.includes(category.category_id)\n                  \"\n                  (change)=\"selectCategory($event.target.checked, category)\"\n                ></vui-checkbox>\n              </div>\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category-name\"\n              >\n                <div class=\"vx-d-block vx-w-100\">\n                  <div\n                    class=\"value vx-fs-12 vx-label-txt\"\n                    [appTooltip]=\"category?.item_name | tooltipValidation\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                  >\n                    {{ category?.item_name }}\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </ng-container>\n\n        <app-no-data\n          *ngIf=\"!loader && subCategoriesList.data?.length == 0\"\n          [noDataImage]=\"ASSETS.search_data\"\n          [noDataText]=\"'No data to display'\"\n        ></app-no-data>\n      </div>\n\n      <div\n        class=\"link-policy-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3\"\n      >\n        <div class=\"link-policy-floating-bar-left vx-d-flex vx-align-center\">\n          <div\n            class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            *ngIf=\"selectedValues?.categories?.length > 0\"\n          >\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"remove('categories', selectedValues?.categories[0])\"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"selectedValues?.categories[0]?.item_name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ selectedValues?.categories[0]?.item_name }}</span\n            >\n            <button\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"programCount.popover()\"\n              placement=\"left\"\n              *ngIf=\"selectedValues?.categories?.length > 1\"\n            >\n              +{{ selectedValues?.categories?.slice(1).length }}\n            </button>\n          </div>\n          <div\n            *ngIf=\"selectedValues?.categories?.slice(1).length\"\n            class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt vx-ml-2\"\n          >\n            {{\n              selectedValues?.categories?.slice(1).length === 1\n                ? \"Program category\n                        selected\"\n                : \"Program categories selected\"\n            }}\n          </div>\n          <app-popover #programCount>\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let selectedCategory of selectedValues?.categories?.slice(1)\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <i\n                      class=\"icons cross-btn vx-fs-12 vx-paragraph-txt vx-mr-2\"\n                      (click)=\"remove('categories', selectedCategory)\"\n                      >&#xe9ae;</i\n                    >\n                    <span class=\"value\">{{ selectedCategory?.item_name }}</span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n\n          <!-- <div class=\"chip vx-pl-2 vx-pr-2 vx-txt-blue vx-fs-12 vx-lh-6 vx-mr-1\" *ngIf=\"selectedValues.categories.length>0\"><i (click)=\"remove('categories',selectedValues?.categories[0])\" class=\"icons vx-mr-1\">&#xe9ae;</i> {{selectedValues?.categories[0]?.item_name}}</div>\n                    <ng-container *ngIf=\"selectedValues.categories.length>1\">\n                        <button class=\"count vx-fs-12 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\" vcPopover (click)=\"programCount.popover()\" position=\"left\">+{{selectedValues?.categories?.slice(1).length}}</button>\n                        <div class=\"vx-fs-12 vx-fw-500 vx-paragraph-txt vx-ml-2\">{{(selectedValues?.categories?.slice(1)?.length==1)?'Category selected':'Categories selected'}}</div>\n                        <app-popover #programCount>\n                            <div class=\"wf-action-list\">\n                                <ul class=\"action-item\">\n                                    <li *ngFor=\"let selectedCategory of selectedValues?.categories?.slice(1)\">\n                                        <div class=\"avatar-card\">\n                                            <i class=\"icons cross-btn vx-fs-12 vx-txt-blue vx-mr-2\" (click)=\"remove('categories',selectedCategory)\">&#xe9ae;</i>\n                                            <span class=\"value\">{{selectedCategory?.item_name}}</span>\n                                        </div>\n                                    </li>\n                                </ul>\n                            </div>\n                        </app-popover>\n                    </ng-container> -->\n        </div>\n        <div class=\"link-policy-floating-bar-right vx-d-flex vx-align-center\">\n          <button\n            (click)=\"goBack('categories')\"\n            class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-red\"\n          >\n            CANCEL\n          </button>\n          <button\n            (click)=\"saveChanges('categories')\"\n            [class.disabled]=\"!selectedValues?.categories?.length\"\n            class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-white vx-ml-5\"\n          >\n            Add <i class=\"icons vx-ml-2\">&#xe91e;</i>\n          </button>\n        </div>\n      </div>\n    </div>\n  </ng-container>\n\n  <ng-container *ngIf=\"currentList == 'responsibilities'\">\n    <div\n      class=\"link-policy-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n    >\n      <div class=\"vx-fs-14 vx-fw-500 vx-label-txt vx-d-flex vx-align-center\">\n        <button\n          (click)=\"goBack('responsibilities')\"\n          class=\"back-btn vx-fs-14 vx-fw-500 vx-lable-txt vx-p-0 vx-mr-2 vx-d-flex vx-align-center\"\n        >\n          <i class=\"icons\">&#xe91d;</i>\n        </button>\n        Select Responsibilities to link with this policy\n      </div>\n      <!-- <div class=\"page-title vx-fs-14 vx-fw-500 vx-label-txt\">Select Responsibilities to link with this policy </div> -->\n\n      <!-- <button  (click)=\"goBack('responsibilities')\"\n                class=\"back-btn vx-fs-14 vx-fw-500 vx-label-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"><i\n                    class=\"icons vx-mr-1\">&#xe91d;</i> BACK</button> -->\n    </div>\n    <div class=\"link-policy-body\">\n      <div class=\"link-policy-search vx-mb-2\">\n        <i class=\"icons vx-fs-12\">&#xe90b;</i>\n        <input\n          type=\"text\"\n          placeholder=\"Search Responsibilities\"\n          (keyup.enter)=\"searchBy($event.target.value, 'responsibilities')\"\n        />\n      </div>\n      <vui-pagination\n        *ngIf=\"!loader && responsibilitiesList.totalPage > 1\"\n        [from]=\"responsibilitiesList.from\"\n        [to]=\"responsibilitiesList.to\"\n        [total]=\"responsibilitiesList.totalRecords\"\n        [showPageDetail]=\"true\"\n        [totalPage]=\"responsibilitiesList.totalPage\"\n        [currentPage]=\"responsibilitiesList.currentPage\"\n        [pageInSingleView]=\"5\"\n        (pageChanged)=\"changePage($event, 'responsibilities')\"\n      >\n      </vui-pagination>\n\n      <div\n        class=\"link-policy-table vx-mb-4\"\n        [class.with-pagination]=\"!loader && subCategoriesList.totalPage > 1\"\n      >\n        <ng-container *ngIf=\"!loader && responsibilitiesList.data?.length > 0\">\n          <div class=\"table-header\">\n            <div class=\"table-row\">\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n              >\n                #\n              </div>\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category-name\"\n              >\n                RESPONSIBLITIES\n              </div>\n            </div>\n          </div>\n          <div class=\"table-body\">\n            <!-- when checkbox was checked then active class was true -->\n\n            <div\n              class=\"table-row\"\n              [class.active]=\"\n                selectedIds.responsibilities.includes(responsibility.ReportId)\n              \"\n              *ngFor=\"\n                let responsibility of responsibilitiesList.data;\n                let i = index\n              \"\n            >\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n              >\n                <div\n                  class=\"sr-no\"\n                  [appTooltip]=\"i + responsibilitiesList.from\"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"true\"\n                >\n                  {{ i + responsibilitiesList.from }}\n                </div>\n                <vui-checkbox\n                  [checked]=\"\n                    selectedIds.responsibilities.includes(\n                      responsibility.ReportId\n                    )\n                  \"\n                  (change)=\"\n                    selectResponsibility($event.target.checked, responsibility)\n                  \"\n                >\n                </vui-checkbox>\n              </div>\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category-name\"\n              >\n                <div\n                  class=\"value vx-fs-12 vx-label-txt\"\n                  [appTooltip]=\"\n                    responsibility?.control_id + responsibility?.ReportName\n                      | tooltipValidation\n                  \"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  <span class=\"vx-fs-10 vx-fw-500 vx-tt-uppercase vx-mr-1\">{{\n                    responsibility?.control_id\n                  }}</span>\n                  {{ responsibility?.ReportName }}\n                </div>\n              </div>\n              <!-- <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category-name\">\n                        <div class=\"value vx-fs-12 vx-label-txt\"\n                            [appTooltip]=\"'[CID-20210005] A.8.1.3 Acceptable Use of Assets'\" placement=\"bottom-left\"\n                            delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"><span\n                                class=\"vx-fs-10 vx-fw-500 vx-tt-uppercase vx-mr-1\">[CID-20210005]</span> A.8.1.3\n                            Acceptable Use of Assets</div>\n                    </div> -->\n            </div>\n          </div>\n        </ng-container>\n\n        <app-no-data\n          *ngIf=\"!loader && responsibilitiesList.data?.length == 0\"\n          [noDataImage]=\"ASSETS.search_data\"\n          [noDataText]=\"'No data to display'\"\n        ></app-no-data>\n      </div>\n      <div\n        class=\"link-policy-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-mt-1\"\n      >\n        <div class=\"link-policy-floating-bar-left vx-d-flex vx-align-center\">\n          <div\n            class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            *ngIf=\"selectedValues.responsibilities.length > 0\"\n          >\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"\n                remove('responsibilities', selectedValues?.responsibilities[0])\n              \"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"selectedValues?.responsibilities[0]?.ReportName\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ selectedValues?.responsibilities[0]?.ReportName }}</span\n            >\n            <button\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"responsibilitiesPopover.popover()\"\n              placement=\"left\"\n              *ngIf=\"selectedValues.responsibilities.length > 1\"\n            >\n              +{{ selectedValues?.responsibilities?.slice(1).length }}\n            </button>\n            <app-popover #responsibilitiesPopover>\n              <div class=\"wf-action-list\">\n                <ul class=\"action-item\">\n                  <li\n                    *ngFor=\"\n                      let selectedres of selectedValues?.responsibilities?.slice(\n                        1\n                      )\n                    \"\n                  >\n                    <div class=\"avatar-card\">\n                      <i\n                        class=\"icons cross-btn vx-fs-12 vx-paragraph-txt vx-mr-2\"\n                        (click)=\"remove('responsibilities', selectedres)\"\n                        >&#xe9ae;</i\n                      >\n                      <span class=\"value\">{{ selectedres?.ReportName }}</span>\n                    </div>\n                  </li>\n                </ul>\n              </div>\n            </app-popover>\n          </div>\n        </div>\n        <div class=\"link-policy-floating-bar-right vx-d-flex vx-align-center\">\n          <button\n            (click)=\"goBack('responsibilities')\"\n            class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-red\"\n          >\n            CANCEL\n          </button>\n          <button\n            (click)=\"saveChanges('responsibilities')\"\n            [class.disabled]=\"!selectedValues?.responsibilities?.length\"\n            class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-white vx-ml-5\"\n          >\n            ADD <i class=\"icons vx-ml-2\">&#xe91e;</i>\n          </button>\n        </div>\n      </div>\n    </div>\n  </ng-container>\n  <app-loader-inline *ngIf=\"loader || submissionLoader\"></app-loader-inline>\n</div>\n","import { HttpParams } from '@angular/common/http';\nimport { Component, EventEmitter, Output, OnInit, Input } from '@angular/core';\nimport { PolicyService } from '../workflow-services/policy.service';\nimport { Subject, takeUntil } from 'rxjs';\nimport { CONSTANTS } from './constants';\nimport { LINKS } from '../workflow/shared/constants/cdn-link.constant';\nimport { API_URLS } from '../workflow-engine-container/api-constants';\nimport {\n  policyList,\n  searchText,\n} from '../sharedComponents/framework-list/framework-integration-interfaces';\n\n@Component({\n  selector: 'app-link-related-policies',\n  templateUrl: './link-related-policies.component.html',\n  styleUrls: ['./link-related-policies.component.less'],\n})\nexport class LinkRelatedPoliciesComponent implements OnInit {\n  CONSTANTS: any = CONSTANTS;\n  LINKS: any = LINKS;\n  animation = false;\n  unsubscribe = new Subject();\n  policySortBy: 'desc' | 'asc' = 'desc';\n  selectedControlIds: Array<any> = [];\n  selectedPolicyList: Array<any> = [];\n  deletedList: Array<any> = [];\n  searchText: searchText = {\n    policy: '',\n  };\n  loader: boolean = false;\n  recentPage: number = CONSTANTS.DEFAULT_PAGE_NUMBER;\n  policiesList: policyList = {\n    from: 1,\n    to: 0,\n    currentPage: 1,\n    totalPage: 0,\n    totalRecords: 0,\n    data: [],\n  };\n  @Input() selectedPolicies: Array<any> = [];\n  @Input() mode: string = 'CREATE';\n  @Input() policyId: string = '';\n  @Output() closeLinkPolicyList = new EventEmitter();\n  @Output() selectedList = new EventEmitter();\n\n  constructor(private policyService: PolicyService) {\n    this.recentPage = CONSTANTS.DEFAULT_PAGE_NUMBER;\n  }\n\n  ngOnInit(): void {\n    this.selectedPolicyList = [...new Set(this.selectedPolicies)];\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.getPolicies();\n  }\n\n  goBack() {\n    this.closeLinkPolicyList.emit();\n  }\n\n  selectedItems() {\n    const selectedContractIds = this.selectedPolicyList?.map(\n      (item) => item?.contract_id\n    );\n    this.selectedControlIds = this.policyService?.linkRelatePolicies[\n      this.recentPage - 1\n    ]?.data\n      .filter((element: any) =>\n        selectedContractIds?.includes(element?.contract_id)\n      )\n      .map((element: any) => element?.contract_id);\n  }\n\n  searchBy(event: any) {\n    if (this.searchText?.policy != event) {\n      this.searchText.policy = event;\n      this.getPolicies({ search: true });\n    }\n    if (!event) {\n      this.recentPage = CONSTANTS.DEFAULT_PAGE_NUMBER;\n      this.getPolicies({ search: false });\n    }\n  }\n\n  changePage(event: any) {\n    this.recentPage = event;\n    if (this.policyService?.linkRelatePolicies[event - 1]) {\n      this.policiesList = this.policyService?.linkRelatePolicies[event - 1];\n      this.selectedItems();\n      return;\n    }\n    this.getPolicies();\n  }\n\n  selectedParam(data?: any) {\n    let params = new HttpParams();\n    params = params.append('paginationType', 'small');\n    if (data?.search) {\n      params = params.append('searchText', this.searchText.policy);\n    }\n    params = params.append('pageNo', this.recentPage);\n    if (data?.sort) {\n      params = params.append('sortBy', this.policySortBy);\n    }\n    if (this.mode === 'EDIT') {\n      params = params.append(CONSTANTS.POLICY_ID, this.policyId);\n    }\n    return params;\n  }\n\n  getPagePolicyList(res: any) {\n    return {\n      from: res?.from ?? 1,\n      to: res?.to ?? 0,\n      currentPage: this.recentPage,\n      totalPage: res?.total_pages ?? 0,\n      totalRecords: res?.all_records ?? 0,\n      data: [...new Set(res?.data)],\n    };\n  }\n\n  getPolicies(data?: any) {\n    if (\n      this.policyService?.linkRelatePolicies[this.recentPage - 1] &&\n      !data?.search\n    ) {\n      this.policiesList =\n        this.policyService.linkRelatePolicies[this.recentPage - 1];\n      this.selectedItems();\n      return;\n    }\n    let params = this.selectedParam(data);\n    this.loader = true;\n\n    const request = {\n      method: 'get',\n      action: '/policy',\n      mode: API_URLS.fetchPolicyList,\n      params,\n    };\n\n    this.policyService\n      .getPolicyList(request)\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe({\n        next: (res: any) => {\n          this.loader = false;\n          this.policiesList = this.getPagePolicyList(res);\n\n          if (!this.policyService?.linkRelatePolicies[this.recentPage - 1]) {\n            this.policyService.linkRelatePolicies[this.recentPage - 1] =\n              JSON.parse(JSON.stringify(this.policiesList));\n          }\n          this.selectedItems();\n        },\n        error: (err: any) => {\n          this.loader = false;\n        },\n      });\n  }\n\n  selectPolicy(event: any, data: any) {\n    if (event) {\n      this.selectedControlIds.push(data?.contract_id);\n      this.selectedPolicyList.push(data);\n    } else {\n      this.selectedControlIds = this.selectedControlIds?.filter(\n        (id) => id !== data?.contract_id\n      );\n      this.selectedPolicyList = this.selectedPolicyList?.filter(\n        (item) => item?.contract_id !== data?.contract_id\n      );\n    }\n  }\n\n  saveChanges() {\n    this.selectedList.emit({\n      selectedPolicyList: this.selectedPolicyList,\n    });\n  }\n\n  deleteItem(event: any) {\n    this.selectedPolicyList = this.selectedPolicyList?.filter(\n      (item) => item?.contract_id !== event?.contract_id\n    );\n    this.selectedItems();\n  }\n}\n","<div class=\"link-policy\" [class.animate]=\"animation\">\n  <ng-container>\n    <div\n      class=\"link-policy-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n    >\n      <div class=\"page-title vx-fs-14 vx-fw-500 vx-label-txt\">\n        Select Policies to link with\n      </div>\n    </div>\n    <div class=\"link-policy-body vx-p-4 vx-pb-3\">\n      <div class=\"link-policy-search vx-mb-2\">\n        <i class=\"icons vx-fs-12\">&#xe90b;</i>\n        <input\n          type=\"text\"\n          placeholder=\"Search Policies\"\n          (keyup.enter)=\"searchBy($event.target.value)\"\n        />\n      </div>\n      <vui-pagination\n        *ngIf=\"\n          !loader && policiesList.totalPage > CONSTANTS.DEFAULT_PAGE_NUMBER\n        \"\n        [from]=\"policiesList.from\"\n        [to]=\"policiesList.to\"\n        [total]=\"policiesList.totalRecords\"\n        [showPageDetail]=\"true\"\n        [totalPage]=\"policiesList.totalPage\"\n        [currentPage]=\"policiesList.currentPage\"\n        [pageInSingleView]=\"CONSTANTS.PAGE_IN_SINGLE_VIEW\"\n        (pageChanged)=\"changePage($event)\"\n      >\n      </vui-pagination>\n      <div\n        class=\"link-policy-table\"\n        [class.with-pagination]=\"!loader && policiesList.totalPage > 1\"\n      >\n        <ng-container *ngIf=\"!loader && policiesList?.data?.length > 0\">\n          <div class=\"table-header\">\n            <div class=\"table-row\">\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n              >\n                #\n              </div>\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center policies\"\n              >\n                POLICIES\n              </div>\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center categories\"\n              >\n                CATEGORIES\n              </div>\n            </div>\n          </div>\n          <div class=\"table-body\">\n            <div\n              class=\"table-row\"\n              [class.active]=\"selectedControlIds?.includes(policy?.contract_id)\"\n              *ngFor=\"let policy of policiesList?.data; let i = index\"\n            >\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n              >\n                <div\n                  class=\"sr-no\"\n                  [appTooltip]=\"i + policiesList.from\"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"true\"\n                >\n                  {{ i + policiesList.from }}\n                </div>\n                <app-cs-checkbox\n                  class=\"check-box\"\n                  [value]=\"policy?.contract_id\"\n                  [ngValue]=\"selectedControlIds?.includes(policy?.contract_id)\"\n                  (ngValueChange)=\"selectPolicy($event, policy)\"\n                ></app-cs-checkbox>\n              </div>\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center policies column-body clickable\"\n              >\n                <div\n                  class=\"value vx-fs-12 vx-label-txt\"\n                  [appTooltip]=\"policy?.contract_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  (click)=\"\n                    selectPolicy(\n                      !selectedControlIds?.includes(policy?.contract_id),\n                      policy\n                    )\n                  \"\n                >\n                  {{\n                    policy?.control_id\n                      ? \"[POLID - \" + policy.control_id + \"] \"\n                      : \"\"\n                  }}{{ policy?.contract_name }}\n                </div>\n              </div>\n              <div\n                class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center categories\"\n              >\n                <ng-container *ngIf=\"policy?.childCat?.length\">\n                  <div\n                    class=\"value vx-fs-12 vx-label-txt\"\n                    [appTooltip]=\"policy?.childCat[0]?.category_name\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                  >\n                    {{ policy?.childCat[0]?.category_name }}\n                  </div>\n                </ng-container>\n                <ng-container *ngIf=\"policy?.childCat?.length > 1\">\n                  <button\n                    class=\"count vx-fs-12 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\n                    appPopover\n                    (click)=\"category.popover()\"\n                    placement=\"top\"\n                  >\n                    +{{ policy?.childCat?.length - 1 }}\n                  </button>\n                  <app-popover #category [dontCloseonClick]=\"true\">\n                    <div class=\"wf-action-list\">\n                      <ul class=\"action-item\">\n                        <li\n                          *ngFor=\"\n                            let childCategory of policy?.childCat\n                              | slice : 1\n                          \"\n                        >\n                          <div class=\"avatar-card\">\n                            <span class=\"value\">{{\n                              childCategory?.category_name\n                            }}</span>\n                          </div>\n                        </li>\n                      </ul>\n                    </div>\n                  </app-popover>\n                </ng-container>\n              </div>\n            </div>\n          </div>\n        </ng-container>\n\n        <app-no-data\n          *ngIf=\"!loader && policiesList?.data?.length === 0\"\n          [noDataImage]=\"LINKS.linkPolicyNoDataImage\"\n          [noDataText]=\"CONSTANTS.NO_DATA_IMAGE_TEXT\"\n        ></app-no-data>\n      </div>\n\n      <div\n        class=\"link-policy-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-mt-1\"\n      >\n        <div class=\"link-policy-floating-bar-left vx-d-flex vx-align-center\">\n          <div class=\"selected\" *ngIf=\"selectedPolicyList?.length > 0\">\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <ng-container\n                *ngFor=\"let policy of selectedPolicyList | slice : 0 : 1\"\n              >\n                <i\n                  (click)=\"deleteItem(policy)\"\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"policy?.contract_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ policy?.contract_name }}</span\n                >\n              </ng-container>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                *ngIf=\"selectedPolicyList.length > 1\"\n                type=\"button\"\n                appPopover\n                (click)=\"relatedPolicy.popover()\"\n                placement=\"left\"\n              >\n                +{{ selectedPolicyList?.length - 1 }}\n              </button>\n            </div>\n          </div>\n        </div>\n        <app-popover #relatedPolicy [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li\n                *ngFor=\"\n                  let policy of selectedPolicyList | slice : 1;\n                  let j = index\n                \"\n              >\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"deleteItem(policy)\">&#xe90d;</i>\n                    {{ policy?.contract_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <div class=\"link-policy-floating-bar-right vx-d-flex vx-align-center\">\n          <button\n            (click)=\"goBack()\"\n            class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-red\"\n          >\n            CANCEL\n          </button>\n          <button\n            (click)=\"saveChanges()\"\n            class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-white\"\n          >\n            NEXT <i class=\"icons vx-ml-2\">&#xe91e;</i>\n          </button>\n        </div>\n      </div>\n    </div>\n  </ng-container>\n\n  <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n</div>\n","import {\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { cloneDeep, uniqBy } from 'lodash';\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport { EditorConfig } from 'vcomply-editor';\nimport { ConfirmationAlert } from '../interfaces/confirmation-alert';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\nimport { PolicyForm } from '../workflow-interfaces/create-policy-form';\nimport { AuthService } from '../workflow-services/auth.service';\nimport { PolicyService } from '../workflow-services/policy.service';\nimport { ResponsibilityService } from '../workflow-services/responsibility.service';\nimport { UiKitService } from '../workflow-services/ui-kit.service';\nimport { PlatformLocation } from '@angular/common';\nimport moment from 'moment/moment';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FrequencyService } from '../sharedComponents/frequency/frequency.service';\nimport { FormatAndEvidenceComponent } from '../sharedComponents/format-and-evidence/format-and-evidence.component';\nimport { RestApiService } from '../sharedComponents/link-program/restapi.service';\nimport { DEFAULT_24HR, DEFAULT_TIME } from '../constants/time.constants';\nimport { CommonService } from '../services/common.service';\nimport { OrganizationUserService } from '../workflow-services/organization-user.service';\nimport { OrganizationCommonService } from '../workflow-services/common-workflow-services/organization-common.service';\nimport { ComplianceCommonService } from '../workflow-services/common-workflow-services/compliance-common.service';\nimport { CONSTANTS } from '../link-related-policies/constants';\nimport { LINKS } from '../workflow/shared/constants/cdn-link.constant';\nimport { IframeService } from '../services/iframe.service';\nimport { ASSETS } from '../constants/assets.constants';\nimport { PROGRAM_LIST_API } from '../constants/api.constants';\nimport { ListItem } from '../sharedComponents/program-list/interfaces/list-item.interface';\nimport { API } from '../constants/api.constants';\n\n@Component({\n  selector: 'app-workflow-policy',\n  templateUrl: './workflow-policy.component.html',\n  styleUrls: ['./workflow-policy.component.less', '../forms.less'],\n})\nexport class WorkflowPolicyComponent implements OnInit {\n  ASSETS = ASSETS;\n  CONSTANTS: any = CONSTANTS;\n  LINKS: any = LINKS;\n  @Output() pickerChanged = new EventEmitter();\n  @Input() mode = 'CREATE';\n  @Input() policyId = '';\n  @Input() feature: any;\n  @Output() showConfirmationAlert = new EventEmitter();\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  @Output() populateOption = new EventEmitter();\n  @Output() disconnectRefresh = new EventEmitter();\n  @Output() shiftToEditMode = new EventEmitter();\n  @Input() convertFileData: any = {};\n  @Input() selectedCategory = '';\n  @Input() isSendForAttestation: boolean = false;\n  @Input() templateId: string = '';\n\n  @ViewChild('formatEvidence') formatEvidence!: FormatAndEvidenceComponent;\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n\n  description: EditorConfig = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Add a description for this policy.',\n  };\n  workflowType = 'SEQUENTIAL';\n  scrollToBottom = false;\n  navigateToDocumentsSection = false;\n\n  activeSelector = '';\n  rcList: any = [];\n  usersList: any = [];\n  allApprovers: any = [];\n  allReviewers: any = [];\n  assigneesList: any = [];\n  ownerlist: any = [];\n  reviewersList: any = [];\n  overseersList: any = [];\n  rcListLoaded = false;\n  usersListLoaded = false;\n  categoryList: any = [];\n  groupsList: any[] = [];\n  workFlowList: any[] = [];\n  approverWorkFlowList: any[] = [];\n  submitted = false;\n  ccEmailObjIds: any[] = [];\n  ccFailGroupObjIds: any[] = [];\n  usersAccessList: any[] = [];\n  usersAccessListIds: any[] = [];\n  groupsAccessListIds: any[] = [];\n  groupsAccessList: any[] = [];\n  SelectedListOfPolicies: any[] = [];\n\n  loader = false;\n  categoriesListLoaded = false;\n  groupsListLoaded = false;\n  categoryConfig = {\n    panelTitle: 'Select Policy Category',\n    floatingTextSingular: 'Policy Category Selected',\n    floatingTextPlural: 'Policy Categories Selected',\n    searchPlaceholder: 'Search Policy Category',\n    searchEnabled: true,\n    selectAllEnabled: true,\n    workflow: 'policy',\n  };\n  approvalWorkflowConfig = {\n    panelTitle: 'Select user(s)',\n    floatingTextSingular: 'User selected',\n    floatingTextPlural: 'Users selected',\n    searchPlaceholder: 'Search User',\n    searchEnabled: true,\n    selectAllEnabled: true,\n  };\n\n  addMoreLevels = false;\n  approversListIndex = 0;\n  workflowList = ['SEQUENTIAL', 'ROUND-ROBIN', 'ANY ONE'];\n  datePickerOverlay = false;\n  dateConfig = {\n    disableKeypress: true,\n    format: 'DD MM YYYY',\n    unSelectOnClick: true,\n    openOnClick: false,\n    openOnFocus: false,\n  };\n  frequencyDetails = {\n    pattern: '',\n    notificationPending: 0,\n    dateOfModified: 0,\n    deactivationValue: 0,\n    selectedReport: 0,\n    lifecycle: '0000-00-00~~0',\n    startDate: Math.floor(new Date().getTime() / 1000),\n    startOnTheDay: Math.floor(new Date().getTime() / 1000),\n    window: 0,\n    failed: 0,\n    time: DEFAULT_TIME,\n    failedTime: '',\n    continuous_failed_days: 0,\n  };\n  reviewerFrequencyDetails = {\n    pattern: '',\n    notificationPending: 0,\n    dateOfModified: 0,\n    deactivationValue: 0,\n    selectedReport: 0,\n    lifecycle: '0000-00-00~~0',\n    startDate: Math.floor(new Date().getTime() / 1000),\n    startOnTheDay: Math.floor(new Date().getTime() / 1000),\n    window: 0,\n    failed: 0,\n    time: DEFAULT_TIME,\n    failedTime: '',\n    continuous_failed_days: 3,\n  };\n  frequencyPlaceholder = 'What is the attestation schedule for this policy?';\n  reviewerFrequencyPlaceholder = 'When does this policy need to be reviewed?';\n\n  sideSelectorElements = [\n    'approvalWorkflow',\n    'assignees',\n    'approvers',\n    'reviewer',\n    'ccEmail',\n    'ccFail',\n    'rc',\n    'category',\n    'frequency',\n    'reviewerFrequency',\n    'checkpoints',\n    'linkProgram',\n    'isAssessment',\n    'isLinkedPolices',\n    'owners',\n    'policyAccess',\n  ];\n  riskClassification = [\n    { name: 'LOW', value: 1, class: 'low' },\n    { name: 'LOW-Medium', value: 2, class: 'low-med' },\n    { name: 'Medium-High', value: 3, class: 'med-high' },\n    { name: 'High', value: 4, class: 'high' },\n  ];\n  showRiskClassification = true;\n  showCreateDocuments = false;\n  organization_id = '';\n  member_obj_id = '';\n  memberId = 0;\n  userInfo!: any;\n\n  policyApprovalFlag = 0;\n  baseURL = '';\n  groupEnabled: any = true;\n  overseerGroupsList: any[] = [];\n  enableApprovalWorkflow: boolean = false;\n  isVersionValid: boolean = true;\n  selectedLinkProgram: any = {};\n  versionErrorMessage: string =\n    'You have entered an incorrect format. The version field can either include numbers, alphabets, hyphen or dots.';\n  selectedWorkflow: any[] = [];\n  editApprovalWorkflow!: any;\n  approvalWorkflowIds: any[] = [];\n  defaultEditApprovers: any = {};\n  createApprovalClick: boolean = false;\n  editWorkflowLevel = {};\n  noWorkflowSelected: boolean = false;\n  templateView: boolean = false;\n  templateUrl: string = '';\n  isTemplateClosed: boolean = true;\n  programListUrl: any = PROGRAM_LIST_API;\n  selectedPrograms: any = {};\n  allProgamSelected: ListItem[] = [];\n  linkProgram: any = {};\n  constructor(\n    private policyService: PolicyService,\n    private snackBar: SnackBarService,\n    private uiKitService: UiKitService,\n    private authService: AuthService,\n    private responsibilityService: ResponsibilityService,\n    private router: Router,\n    private route: ActivatedRoute,\n    private frequencyService: FrequencyService,\n    platformLocation: PlatformLocation,\n    private changeRef: ChangeDetectorRef,\n    private restApiService: RestApiService,\n    private commonService: CommonService,\n    private organizationUserService: OrganizationUserService,\n    private organizationCommonService: OrganizationCommonService,\n    private complianceCommonService: ComplianceCommonService,\n    private iframeService: IframeService\n  ) {\n    this.baseURL = location?.origin;\n    if (this.baseURL == 'http://localhost:4200') {\n      this.baseURL = 'https://dev.v-comply.com';\n    }\n  }\n  policyForm: PolicyForm = {\n    policyName: '',\n    policyNotes: '',\n    selectedCategories: [],\n    selectedApprovers: [],\n    selectedAssignees: [], //doubt in name\n    selectedGroupAssignee: [],\n    selectedReviewers: [],\n\n    selectedRCs: [],\n    CCFailEmail: [],\n    CCFailEmailGroup: [],\n    CCEmail: [],\n    CCGroupEmail: [],\n    availableOnPortal: false,\n    acceptSuggestions: false,\n    requiresSignatureForAttestation: false,\n    riskRating: 1,\n    associatedDocuments: {\n      formatFiles: [],\n    },\n    policyDueDate: moment(),\n    customTags: [],\n    checkpointDetails: [],\n    LinkedPolicies: [],\n    totalQuestion: 0,\n    passingMarks: 0,\n    documentsAndLinks: {\n      formatFiles: [],\n      formatLinks: [],\n    },\n    addResponsibilityCenters: false,\n    addReviewers: false,\n    addCheckpoints: false,\n    addOverseers: false,\n    addAssociatedDocuments: false,\n    addVersion: false,\n    addLinkAssessment: false,\n    addLinkProgram: false,\n    addLinkPolicies: false,\n    isPortalDisplayEnabled: false,\n\n    failed_time: '',\n    frequency_details: '',\n    frequency_text: '',\n    mark_failed_after: 0,\n    remind_days_before_due_date: 0,\n\n    reviewFailedAfter: 0,\n    reviewFailedTime: '',\n    review_frequency_details: '',\n    review_frequency_type: '',\n    review_remind_days_before_due_date: 0,\n    review: false,\n    linkProgram: {},\n    programSelectedValues: {},\n    assignee_start_date: '', //Thu Feb 22 2024\n    reviewer_start_date: '', //Thu Feb 22 2024\n    policy_version: '', // it will accept matches alphabets, hyphens (-), dots (.), and numeric values only and should be smaller or equal to 6 characters\n    assessment: [],\n    policy_owners: [],\n    policy_group_owners: [],\n    businessCycle: {},\n    policy_id: 0,\n    policy_access_type: 0,\n    policy_access_owners: [],\n    policy_access_groups: [],\n  };\n  ngOnInit(): void {\n    this._initiateAPI();\n    this.overseerGroupList();\n\n  }\n\n  _initiateAPI() {\n    this.groupEnabled =\n      this.feature?.isFeatureEnabled('ff_policy_groups') || true;\n    if (this.mode === 'EDIT') {\n      this._initiateEditAPI();\n    }\n    this.getUsersList();\n    this.checkWhetherAllListsLoaded();\n    this.loader = this.mode === 'EDIT' ? true : false;\n    this.getOrgDetails();\n    this.member_obj_id = this.authService?.getUserDetails()?._id;\n    this.userInfo = this.authService?.getUserDetails()?.user;\n    this.memberId = this.authService?.getMemberId();\n    this.changeRef.detectChanges();\n    this.policyForm.businessCycle = this.restApiService?.getBusinessCycle();\n    //this.showCreateDocuments = true;\n  }\n\n  _initiateEditAPI() {\n    this.getRCList();\n    this.getCategoriesList();\n    this.overseerGroupList();\n    this.getGroupsList();\n  }\n\n  getOrgDetails() {\n    this.organizationCommonService?.getOrgDetailsInfo()?.subscribe({\n      next: (res: any) => {\n        if (!res?.enable_riskclass) {\n          this.showRiskClassification = false;\n        }\n        if (res?._id) {\n          this.organization_id = res?._id;\n        }\n      },\n      error: (err: Error) => {\n        console.error(err);\n      },\n    });\n  }\n\n  getLinkedPolicies(policyId: string) {\n    this.policyService.LinkedPoliciesList(policyId).subscribe({\n      next: (response: any) => {\n        if (response) {\n          this.SelectedListOfPolicies = [...new Set(response?.data)].reverse();\n          this.populateOptionalFields();\n        }\n        this.policyForm.LinkedPolicies = this.SelectedListOfPolicies?.filter(\n          (item) => item?.contract_id\n        ).map((item) => item?.contract_id);\n        this.policyForm.isPortalDisplayEnabled = response?.displayOnPortal;\n        this.policyForm.addLinkPolicies = true;\n      },\n      error: (err) => {\n        this.policyForm.addLinkPolicies = false;\n        console.log(err);\n      },\n    });\n  }\n\n  /**\n   * Displays the listing pages the left side of policy form to set and edit the dropdown fields values\n   * @param type holds name of particular list is to be displayed\n   * @param event contains boolean value to display the list or not\n   * @param workflowType it sets the approval workflow type while editing the approval workflow.\n   */\n  activateSelector(type: any, event: boolean, workflowType?: any) {\n    if (workflowType) {\n      this.workflowType = workflowType;\n    }\n    this.activeSelector = event ? type : '';\n    switch (type) {\n      case 'rc':\n        this.getRCList();\n        break;\n      case 'category':\n        this.getCategoriesList();\n        break;\n      case 'ccEmail':\n      case 'ccFail':\n      case 'assignees':\n        this.getGroupsList();\n        this.overseerGroupList();\n        break;\n    }\n    if (this.sideSelectorElements.includes(type)) {\n      this.pickerChanged.emit(event);\n    }\n  }\n\n  /**\n   * Closes the listing pages\n   */\n  disableSelector() {\n    this.addMoreLevels = false;\n    this.activeSelector = '';\n    this.pickerChanged.emit(false);\n  }\n\n  /**\n   * Fetches Responsibility centers list\n   */\n  getRCList() {\n    this.complianceCommonService?.getRcListInfo()?.subscribe({\n      next: (res: any) => {\n        this.rcList = res;\n        this.rcListLoaded = true;\n      },\n      error: (err: Error) => {\n        console.error(err);\n        this.rcListLoaded = true;\n      },\n    });\n  }\n\n  /**\n   * Fetches organization users list\n   */\n  getUsersList() {\n    this.organizationUserService.getOrganizationUsers().subscribe(\n      (res: any) => {\n        if (this.groupEnabled) {\n          this.usersList = this.updateMemberIdKey(res);\n        } else {\n          this.usersList = res;\n        }\n        this.usersListLoaded = true;\n      },\n      (err) => {\n        console.error(err);\n        this.usersListLoaded = true;\n      }\n    );\n  }\n\n  // replace member_id value to my_member_id\n  updateMemberIdKey(list: any) {\n    let updatedList = list.map((ele: any) => ({\n      ...ele,\n      member_id: ele?.my_member_id,\n    }));\n    return updatedList;\n  }\n\n  /**\n   * Fetches Policy Categories list\n   */\n  getCategoriesList() {\n    this.policyService.getCategoriesList().subscribe(\n      (res: any) => {\n        this.categoryList = res;\n        this.categoriesListLoaded = true;\n      },\n      (err: Error) => {\n        console.error(err);\n        this.categoriesListLoaded = true;\n      }\n    );\n  }\n\n  /**\n   * Fetches organization users groups list\n   */\n  getGroupsList() {\n    this.responsibilityService.getOrganizationPolicyGroups().subscribe(\n      (res: any) => {\n        const data = res.data;\n        const groups: any = [];\n        data?.forEach((element: any) => {\n          const obj = {\n            groupName: element.group_name,\n            userIds: element.member_ids,\n          };\n          groups.push(obj);\n        });\n        this.groupsList = groups;\n        if (this.groupEnabled) {\n          this.groupsList = data;\n        }\n        this.groupsListLoaded = true;\n      },\n      (err) => {\n        console.error(err);\n        this.groupsListLoaded = true;\n      }\n    );\n  }\n\n  //Get the list of overseers group.\n  overseerGroupList() {\n    this.responsibilityService?.getOrganizationOverseersGroups().subscribe(\n      (res: any) => {\n        this.overseerGroupsList = res?.data;\n        this.groupsListLoaded = true;\n      },\n      (err) => {\n        console.error(err);\n        this.groupsListLoaded = true;\n      }\n    );\n  }\n\n  /**\n   * Sets the approvers workflow from the selected workflow on Approvers workflow list\n   * @param event contains selected predefined workflow\n   */\n  selectedWorkflowChange(event: any) {\n    if (event === -1) {\n      // this.policyForm.selectedApprovers = [];\n      // this.addMoreLevels = true\n      // this.activateSelector('approvers', true);\n    } else {\n      let data = cloneDeep(event.approval_workflow);\n      const newArray = data.map((item: any) => {\n        item.name = item.type;\n        const ids = item.approvers.map((approver: any) => approver.member_id);\n        item.approvers = this.setList(this.allApprovers, ids, 'member_id');\n        return item;\n      });\n      this.policyForm.selectedApprovers = newArray.filter(\n        (level: any) => level.approvers.length > 0\n      );\n    }\n  }\n\n  /**\n   * Fetches Approvers workflow list based on selected policy categories\n   * @param id contains selected categories id's\n   */\n  getApproverWorkFlow(id: any, data?: any) {\n    this.loader = true;\n    this.policyService.getWorkflowList(id).subscribe(\n      (res: any) => {\n        if (res?.length >= 0) {\n          this.approverWorkFlowList = res; // getting all approver saved workflows\n          this.selectedWorkflow = [];\n          this.approverWorkFlowList?.forEach((workflow) => {\n            if (this.approvalWorkflowIds?.includes(workflow?._id)) {\n              this.updateDefaultWorkflow(workflow);\n            }\n          });\n\n          const approvalData: any = [];\n          if (!this.selectedWorkflow?.length) {\n            this.noWorkflowSelected = true;\n            let approvalWorkflow: any[] = [];\n            this.removeWorkflow();\n            Object.keys(this.defaultEditApprovers).forEach((approversLevel) => {\n              this.defaultEditApprovers[approversLevel].approvers =\n                this.defaultEditApprovers[approversLevel]?.approvers?.map(\n                  (app: any) => {\n                    if (!app.member_name) {\n                      const approverUser = this.usersList?.find(\n                        (user: any) => user.my_member_id == app.member_id\n                      );\n                      if (approverUser) {\n                        app.member_name = approverUser?.member_name;\n                      }\n                    }\n                    return app;\n                  }\n                );\n              const originalApprovalStatus = this.defaultEditApprovers[approversLevel]?.approval_done ?? false;\n              const levelData = {\n                level1: approversLevel,\n                ...this.defaultEditApprovers[approversLevel],\n                approval_done: originalApprovalStatus,\n              };\n              approvalWorkflow.push(levelData);\n            });\n            approvalData.push({\n              workflow_name: '',\n              workflow_module: 'POLICY',\n              description: {},\n              approval_workflow: approvalWorkflow,\n              category_arr: [],\n              creator: {},\n            });\n\n            if (this.selectedWorkflow?.length) {\n              this.selectedWorkflow[0].approval_workflow = approvalData;\n            }\n          }\n          this.policyForm.selectedApprovers = this.selectedWorkflow;\n          if (data) {\n            this.getApproversAndReviewersList(\n              id,\n              data,\n              [data.ReviewerMemberId],\n              data\n            );\n          }\n          this.loader = false;\n        }\n      },\n      (err) => {\n        console.error(err);\n        this.loader = false;\n      }\n    );\n  }\n\n  updateDefaultWorkflow(workflow: any): void {\n    if (this.defaultEditApprovers && workflow?.approval_workflow) {\n      const updatedWorkflow = { ...workflow };\n      updatedWorkflow.approval_workflow = workflow.approval_workflow.map((level: any, index: number) => {\n        const levelKey = `level${index + 1}`;\n        const currentPolicyLevel = this.defaultEditApprovers[levelKey];\n\n        // If approval status exists, preserve it; otherwise, keep the existing status in workflow\n        if (currentPolicyLevel) {\n          return {\n            ...level,\n            approval_done: currentPolicyLevel.approval_done ? currentPolicyLevel.approval_done : level.approval_done\n          };\n        }\n        return level;\n      });\n      this.selectedWorkflow?.push(updatedWorkflow);\n    } else {\n      this.selectedWorkflow?.push(workflow);\n    }\n  }\n\n  removeWorkflow() {\n    this.selectedWorkflow = [];\n    this.policyForm.selectedApprovers = [];\n    this.approvalWorkflowIds = [];\n    this.editApprovalWorkflow = undefined;\n  }\n\n  /**\n   * Fetches Approvers and reviewers list based on selected policy categories\n   * @param categoryIds contains selected categories id's\n   */\n  getApproversAndReviewersList(\n    categoryIds: any,\n    approverIds?: any,\n    reviewerIds?: any,\n    policy?: any\n  ) {\n    this.loader = true;\n    this.allApprovers = [];\n    this.allReviewers = [];\n    this.policyService.getReviewers(categoryIds).subscribe(\n      (res: any) => {\n        if (res?.length >= 0) {\n          res.forEach((element: any) => {\n            this.allApprovers = uniqBy(\n              this.allApprovers.concat(element.all_approvers),\n              'member_id'\n            );\n            this.allReviewers = uniqBy(\n              element.all_approvers.concat(\n                this.allReviewers,\n                element.all_authors\n              ),\n              'member_id'\n            );\n            if (this.mode === 'CREATE') this.setOwnersOnLoad();\n            if (policy?.policy_owners.length) {\n              this.policyForm.policy_owners = this.setList(\n                this.allApprovers,\n                policy?.policy_owners ?? [],\n                'member_id'\n              );\n            }\n            this.getUsersAccessListByCategory(element);\n          });\n        }\n        if (approverIds?.approvers) {\n          if (this.hasWorkflowChanges(approverIds)) {\n            let obj = approverIds?.approvers;\n            let approverLevels = [];\n            for (var item in obj) {\n              const ids = obj[item]?.approvers?.map(\n                (approver: any) => approver.member_id\n              );\n              let data = {\n                type: obj[item]?.name ?? obj[item]?.type,\n                approvers: obj[item]?.approvers,\n                approval_done: false,\n                level1: obj[item]?.level1 || item,\n                alias_name: obj[item]?.alias_name,\n              };\n              approverLevels.push(data);\n            }\n            if (this.selectedWorkflow?.length) {\n              this.selectedWorkflow[0].approval_workflow = approverLevels;\n            } else {\n              this.selectedWorkflow = [\n                {\n                  approval_workflow: approverLevels,\n                },\n              ];\n            }\n            this.policyForm.selectedApprovers = this.selectedWorkflow;\n          }\n        }\n        if (reviewerIds) {\n          this.policyForm.selectedReviewers = this.setList(\n            this.allReviewers,\n            reviewerIds,\n            'member_id'\n          );\n        }\n        this.loader = false;\n      },\n      (err: Error) => {\n        console.error(err);\n        this.loader = false;\n      }\n    );\n  }\n\n  private hasWorkflowChanges(newApproverIds: any): boolean {\n    // If there is no workflow selected\n    if (!this.selectedWorkflow?.length || !this.selectedWorkflow[0]?.approval_workflow) {\n      return true;\n    }\n\n    const existingWorkflow = this.selectedWorkflow[0]?.approval_workflow;\n    const newApprovers = newApproverIds?.approvers;\n\n    // Check if new approvers exist and have the same number of levels \n    if (!newApprovers || Object.keys(newApprovers).length !== existingWorkflow.length) {\n      return true;\n    }\n\n    //Compare each level in the workflow\n    for (const levelKey in newApprovers) {\n      const newLevel = newApprovers[levelKey];\n      let existingLevel = existingWorkflow.find(\n        (level: any) => level.level1 === newLevel.level1\n      );\n      if (!existingLevel && existingWorkflow[parseInt(levelKey.replace('level', '')) - 1]) {\n        existingLevel = existingWorkflow[parseInt(levelKey.replace('level', '')) - 1];\n      }\n\n      // If no existing level found, consider this as a new level\n      if (!existingLevel) {\n        return true;\n      }\n\n      // Check if the approval type has changed\n      if (existingLevel && newLevel.type !== existingLevel.type) {\n        return true;\n      }\n\n      // Check if the approver name has changed\n      if (existingLevel && newLevel.alias_name !== existingLevel.alias_name) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /*******\n   * It is to populate more options elements while editing the policy form\n   */\n  populateOptionalFields() {\n    const activatedOptions = [];\n    if (this.policyForm.addResponsibilityCenters) {\n      activatedOptions.push('RESPONSIBILITY_CENTER');\n    }\n    // if (this.policyForm.addReviewers) { activatedOptions.push('REVIEWER'); }\n    // if (this.policyForm.addCheckpoints) { activatedOptions.push('CHECKPOINTS'); }\n    if (this.policyForm.addOverseers) {\n      activatedOptions.push('OVERSEER');\n    }\n    if (this.policyForm.addAssociatedDocuments) {\n      activatedOptions.push('RELATED_DOCUMENTS');\n    }\n    if (this.policyForm.policy_version) {\n      activatedOptions.push('VERSION');\n    }\n\n    if (this.policyForm.assessment.length) {\n      activatedOptions.push('LINK_ASSESSMENTS');\n      this.getAssessmentDetails(this.policyForm.assessment[0]);\n    }\n    if (\n      this.policyForm?.programSelectedValues?.program &&\n      this.policyForm?.programSelectedValues?.program?.category_id\n    ) {\n      activatedOptions.push('LINK_PROGRAM_RESPONSIBILITIES');\n      this.policyForm.addLinkProgram = true;\n    }\n    if (this.SelectedListOfPolicies.length > 0) {\n      activatedOptions.push('LINK_RELATED_POLICIES');\n    }\n    this.populateOption.emit(activatedOptions);\n  }\n  /**\n   * It is to add and remove the elements from More option to the policy Form\n   * @param event contains details related to checked value, code particular elements from More options\n   */\n  addMoreInfo(event: any) {\n    switch (event.code) {\n      case 'RESPONSIBILITY_CENTER':\n        this.policyForm.addResponsibilityCenters = event.checked;\n        break;\n      // case 'REVIEWER':\n      //   this.policyForm.addReviewers = event.checked;\n      //   break;\n      case 'CHECKPOINTS':\n        this.policyForm.addCheckpoints = event.checked;\n        break;\n      case 'OVERSEER':\n        this.policyForm.addOverseers = event.checked;\n        break;\n      case 'RELATED_DOCUMENTS':\n        this.policyForm.addAssociatedDocuments = event.checked;\n        break;\n      case 'VERSION':\n        this.policyForm.addVersion = event.checked;\n        break;\n      case 'LINK_PROGRAM_RESPONSIBILITIES':\n        this.policyForm.addLinkProgram = event.checked;\n        break;\n      case 'LINK_ASSESSMENTS':\n        this.policyForm.addLinkAssessment = event.checked;\n        break;\n      case 'LINK_RELATED_POLICIES':\n        this.policyForm.addLinkPolicies = event.checked;\n        break;\n    }\n    this.scrollToBottom = true;\n  }\n\n  /**\n   * It is to ensure whether all required lists on Policy from is loaded from the api call or not\n   */\n  checkWhetherAllListsLoaded() {\n    const editLoader =\n      this.mode === 'EDIT'\n        ? this.rcListLoaded &&\n        this.categoriesListLoaded &&\n        this.groupsListLoaded\n        : true;\n    if (this.usersListLoaded && editLoader) {\n      this.refreshAllLists();\n      if (this.convertFileData && this.convertFileData.fileName) {\n        this.policyForm.policyName = this.convertFileData.fileName.substring(\n          0,\n          this.convertFileData.fileName.lastIndexOf('.')\n        );\n        if (this.convertFileData.categoryId) {\n          this.saveSelectedList('category', [this.convertFileData.categoryId]);\n        }\n      }\n      if (this.selectedCategory) {\n        this.saveSelectedList('category', [this.selectedCategory]);\n      }\n      if (this.mode === 'EDIT') {\n        this.editPolicy();\n      } else {\n        this.loader = false;\n      }\n    } else {\n      setTimeout(() => {\n        this.checkWhetherAllListsLoaded();\n      }, 300);\n    }\n  }\n\n  /**\n   * Triggers the confirmation popup when availability on Policy portal toggle in ON\n   * @param event contains toggle value which is always true or false\n   */\n  availabilityOnPortal(event: any) {\n    if (event) {\n      const confirmationDetails: ConfirmationAlert = {\n        isVisible: true,\n        message: `The policies that you intend to make accessible to the entire organization can be added to the policy portal.\n        It is like a shared catalog of all active & updated policies that any logged in user can read/ download for reference.\n        Hence, if this option is enabled, it is not necessary for you to set up an attestation schedule or select\n        readers to attest the policies.`,\n        action: 'POLICY_PORTAL',\n      };\n      this.showConfirmationAlert.emit(confirmationDetails);\n    }\n  }\n\n  /**\n   * Receives the input from the Confirmation dialog of available on Policy portal\n   * @param event contains selected option from the confirmation dialog which is always either 'YES' or 'NO'\n   */\n  confirmPolicyPortal(event: any) {\n    this.policyForm.availableOnPortal = event == 'YES' ? true : false;\n    if (event == 'NO') {\n      this.policyForm.acceptSuggestions = false;\n    }\n  }\n\n  /**\n   * Sets the policyForm with selected elements from the listing, frequency, file upload components\n   * @param type defines the particular field on Policy form.\n   * @param selectedItems contains the list of selected items from the list\n   */\n  saveSelectedList(type: string, selectedItems: any) {\n    switch (type) {\n      case 'rc':\n        this.policyForm.selectedRCs = this.setList(\n          this.rcList,\n          selectedItems,\n          'item_id'\n        );\n        break;\n      case 'category':\n        this.policyForm.selectedCategories = this.setList(\n          this.categoryList,\n          selectedItems,\n          '_id'\n        );\n        const objectIds = this.returnIds(\n          this.policyForm.selectedCategories,\n          '_id'\n        );\n        this.policyForm.selectedApprovers = [];\n        this.policyForm.selectedReviewers = [];\n        this.resetPolicyAccessDetails();\n        this.resetReviewerFrequency();\n        this.policyForm.customTags = [];\n        this.getApproverWorkFlow(objectIds);\n        this.getApproversAndReviewersList(objectIds);\n        this.policyForm.selectedCategories.forEach((element: any) => {\n          const tag = element.custom_tags;\n          if (tag.length > 0) {\n            tag.forEach((tagData: any) => {\n              const index = this.policyForm.customTags.findIndex(\n                (tagElement: any) => tagElement.tagname == tagData.tagname\n              );\n              if (index == -1) {\n                this.policyForm.customTags.push(tagData);\n              }\n            });\n          }\n        });\n\n        break;\n      case 'assignees':\n        let userIds, groupIds;\n        if (this.groupEnabled) {\n          userIds = this.returnIds(selectedItems.users, 'member_id');\n          groupIds = this.returnIds(selectedItems.groups, 'group_id');\n          this.policyForm.selectedGroupAssignee = this.setList(\n            this.overseerGroupsList,\n            groupIds,\n            'group_id'\n          );\n        } else {\n          userIds = selectedItems;\n        }\n        this.policyForm.selectedAssignees = this.setList(\n          this.assigneesList,\n          userIds,\n          'my_member_id'\n        );\n        this.refreshAllLists();\n        break;\n\n      case 'reviewer':\n        this.policyForm.selectedReviewers = this.setList(\n          this.allReviewers,\n          [selectedItems.member_id],\n          'member_id'\n        );\n        break;\n      case 'ccEmail':\n        let selectedUserIds, selectedGroupIds;\n        if (this.groupEnabled) {\n          selectedUserIds = this.returnIds(selectedItems?.users, 'member_id');\n          selectedGroupIds = this.returnIds(selectedItems?.groups, 'group_id');\n          this.policyForm.CCGroupEmail = this.setList(\n            this.overseerGroupsList,\n            selectedGroupIds,\n            'group_id'\n          );\n          this.policyForm.CCEmail = this.setList(\n            this.usersList,\n            selectedUserIds,\n            'my_member_id'\n          );\n          this.ccEmailObjIds = this.getGroupObjectId(\n            this.policyForm?.CCGroupEmail\n          );\n        } else {\n          this.policyForm.CCEmail = this.setList(\n            this.usersList,\n            selectedItems,\n            'employee_id'\n          );\n        }\n        this.refreshAllLists();\n        break;\n      case 'ccFail':\n        let selectedFailUserIds, selectedFailGroupIds;\n        if (this.groupEnabled) {\n          selectedFailUserIds = this.returnIds(\n            selectedItems?.users,\n            'member_id'\n          );\n          selectedFailGroupIds = this.returnIds(\n            selectedItems?.groups,\n            'group_id'\n          );\n          this.policyForm.CCFailEmailGroup = this.setList(\n            this.overseerGroupsList,\n            selectedFailGroupIds,\n            'group_id'\n          );\n          this.policyForm.CCFailEmail = this.setList(\n            this.usersList,\n            selectedFailUserIds,\n            'my_member_id'\n          );\n          this.ccFailGroupObjIds = this.getGroupObjectId(\n            this.policyForm?.CCFailEmailGroup\n          );\n        } else {\n          this.policyForm.CCFailEmail = this.setList(\n            this.usersList,\n            selectedItems,\n            'employee_id'\n          );\n        }\n        this.refreshAllLists();\n        break;\n      case 'approvers':\n        const approvers = this.setList(\n          this.allApprovers,\n          selectedItems,\n          'member_id'\n        );\n        if (this.addMoreLevels) {\n          this.policyForm.selectedApprovers.push({\n            name: this.workflowType,\n            approvers,\n          });\n          this.addMoreLevels = false;\n          this.disableSelector();\n          return;\n        }\n        this.policyForm.selectedApprovers[this.approversListIndex] = {\n          name: this.workflowType,\n          approvers,\n        };\n        break;\n      case 'reviewer_attachments':\n        this.policyForm.documentsAndLinks.formatFiles =\n          selectedItems?.files ?? [];\n\n        this.policyForm.documentsAndLinks.formatLinks =\n          selectedItems?.links ?? [];\n        break;\n      case 'associatedDocuments':\n        this.policyForm.associatedDocuments.formatFiles =\n          selectedItems?.files ?? [];\n\n        break;\n      case 'checkpoints':\n        this.policyForm.checkpointDetails =\n          selectedItems?.checkpointDetails ?? [];\n        this.policyForm.totalQuestion =\n          selectedItems?.checkpointDetails?.length ?? 0;\n        this.policyForm.passingMarks = selectedItems?.requiredPoint ?? 0;\n        break;\n      case 'owners':\n        this.policyForm.policy_owners = this.setList(\n          this.allApprovers,\n          selectedItems,\n          'member_id'\n        );\n        break;\n      case 'policyAccess':\n        let accessIds, accessGroupIds;\n        this.policyForm.availableOnPortal =\n          selectedItems?.futureUsersWillSelect;\n        if (this.groupEnabled) {\n          accessIds = this.returnIds(selectedItems.users, 'member_id');\n          accessGroupIds = this.returnIds(selectedItems.groups, 'group_id');\n          this.policyForm.policy_access_groups = this.setList(\n            this.overseerGroupsList,\n            accessGroupIds,\n            'group_id'\n          );\n        } else {\n          accessIds = selectedItems;\n        }\n        this.policyForm.policy_access_owners = this.setList(\n          this.assigneesList,\n          accessIds,\n          'my_member_id'\n        );\n        this.refreshAllLists();\n        break;\n      case 'isLinkedPolices':\n        this.policyForm.LinkedPolicies = this.listOfSelectedPolicies(\n          selectedItems?.selectedPolicyList\n        );\n        this.SelectedListOfPolicies = selectedItems?.selectedPolicyList;\n\n        break;\n    }\n    this.disableSelector();\n  }\n\n  listOfSelectedPolicies(selectedPolicies: any) {\n    return selectedPolicies?.map((policy: any) => policy?.contract_id);\n  }\n\n  //return the _id from the selected overseer group.\n  getGroupObjectId(overseerGroup?: any) {\n    let overseerGroupIdArray = overseerGroup.map((ele: any) => ele._id);\n    return overseerGroupIdArray;\n  }\n\n  /**\n   * Removes the particular element from selected list\n   * @param type defines the particular case\n   * @param event holds the id or key of element to be removed\n   * @param removeIndex contains the index of the element to be removed\n   */\n  remove(type: any, event: any, removeIndex?: any) {\n    switch (type) {\n      case 'rc':\n        const rcIndex = this.policyForm.selectedRCs.findIndex(\n          (rc: any) => rc.rc_id == event.rc_id\n        );\n        this.policyForm.selectedRCs.splice(rcIndex, 1);\n        break;\n      case 'assignees':\n        const entrustIndex = this.policyForm.selectedAssignees.findIndex(\n          (owner: any) => owner.employee_id == event.employee_id\n        );\n        this.policyForm.selectedAssignees.splice(entrustIndex, 1);\n        this.refreshAllLists();\n        break;\n      case 'groupAssignees':\n        const groupIndex: any =\n          this.policyForm.selectedGroupAssignee?.findIndex(\n            (group: any) => group.group_id == event.group_id\n          );\n        this.policyForm.selectedGroupAssignee?.splice(groupIndex, 1);\n        break;\n      case 'reviewer':\n        const reviewerIndex = this.policyForm.selectedReviewers.findIndex(\n          (reviewer: any) => reviewer.member_id == event.member_id\n        );\n        this.policyForm.selectedReviewers.splice(reviewerIndex, 1);\n        this.resetReviewerFrequency();\n        break;\n      case 'ccEmail':\n        const overseerIndex = this.policyForm.CCEmail.findIndex(\n          (overseer: any) => overseer.employee_id == event.employee_id\n        );\n        this.policyForm.CCEmail.splice(overseerIndex, 1);\n        this.refreshAllLists();\n        break;\n      case 'ccGroupEmail':\n        const ccGroupIndex: any = this.policyForm?.CCGroupEmail?.findIndex(\n          (group: any) => group?.group_id == event?.group_id\n        );\n        this.policyForm.CCGroupEmail?.splice(ccGroupIndex, 1);\n        this.ccEmailObjIds = this.getGroupObjectId(\n          this.policyForm?.CCGroupEmail\n        );\n        this.refreshAllLists();\n        break;\n      case 'ccFail':\n        const overseerNotifyIndex = this.policyForm.CCFailEmail.findIndex(\n          (overseerN: any) => overseerN.employee_id == event.employee_id\n        );\n        this.policyForm.CCFailEmail.splice(overseerNotifyIndex, 1);\n        this.refreshAllLists();\n        break;\n      case 'ccGroupFailEmail':\n        const ccFailGroupIndex: any =\n          this.policyForm?.CCFailEmailGroup?.findIndex(\n            (group: any) => group?.group_id == event?.group_id\n          );\n        this.policyForm.CCFailEmailGroup?.splice(ccFailGroupIndex, 1);\n        this.ccFailGroupObjIds = this.getGroupObjectId(\n          this.policyForm?.CCFailEmailGroup\n        );\n        this.refreshAllLists();\n        break;\n      case 'approvers':\n        const approversIndex = this.policyForm.selectedApprovers[\n          removeIndex\n        ].approvers.findIndex(\n          (approver: any) => approver.member_id == event.member_id\n        );\n        this.policyForm.selectedApprovers[removeIndex].approvers.splice(\n          approversIndex,\n          1\n        );\n        if (\n          this.policyForm.selectedApprovers[removeIndex].approvers.length == 0\n        ) {\n          this.policyForm.selectedApprovers.splice(removeIndex, 1);\n        }\n        break;\n      case 'category':\n        const categoryIndex = this.policyForm.selectedCategories.findIndex(\n          (category: any) => category.item_id == event.item_id\n        );\n        this.policyForm.selectedCategories.splice(categoryIndex, 1);\n        const tag = event.custom_tags;\n        if (tag.length > 0) {\n          tag.forEach((tagData: any) => {\n            const indexCT = this.policyForm.customTags.findIndex(\n              (tagElement: any) => tagElement.tagname == tagData.tagname\n            );\n            if (indexCT != -1) {\n              this.policyForm.customTags.splice(indexCT, 1);\n            }\n          });\n        }\n        const objectIds = this.returnIds(\n          this.policyForm.selectedCategories,\n          '_id'\n        );\n        this.resetReviewerFrequency();\n        this.policyForm.selectedApprovers.splice(\n          0,\n          this.policyForm.selectedApprovers.length\n        );\n\n        this.policyForm = Object.assign(this.policyForm);\n        this.policyForm.selectedReviewers = [];\n        this.getApproverWorkFlow(objectIds);\n        this.getApproversAndReviewersList(objectIds);\n        this.resetPolicyAccessDetails();\n\n        break;\n      case 'checkpoints':\n        this.policyForm.checkpointDetails = [];\n        this.policyForm.totalQuestion = 0;\n        this.policyForm.passingMarks = 0;\n        break;\n      case 'workflowLevel':\n        this.policyForm?.selectedApprovers.splice(removeIndex, 1);\n        this.removeWorkflow();\n        break;\n      case 'linkProgram':\n        this.allProgamSelected = this.allProgamSelected.filter(\n          (program: any) => program?.id !== event?.id\n        );\n        this.removeProgram(event);\n        this.refreshAllLists();\n        break;\n\n      case 'owners':\n        this.policyForm?.policy_owners.splice(removeIndex, 1);\n        break;\n      case 'policyAccess':\n        const userAccessIndex = this.policyForm?.policy_access_owners.findIndex(\n          (owner: any) => owner?.employee_id == event?.employee_id\n        );\n        this.policyForm?.policy_access_owners?.splice(userAccessIndex, 1);\n        this.refreshAllLists();\n        break;\n      case 'accessGroup':\n        const groupAccessIndex: any =\n          this.policyForm?.policy_access_groups?.findIndex(\n            (group: any) => group?.group_id == event?.group_id\n          );\n        this.policyForm?.policy_access_groups?.splice(groupAccessIndex, 1);\n        break;\n      case 'frequency':\n        this.removeFrequency();\n        break;\n      case 'isLinkedPolices':\n        this.policyForm.LinkedPolicies = this.policyForm.LinkedPolicies?.filter(\n          (policyId: any) => event !== policyId\n        );\n        this.SelectedListOfPolicies = this.SelectedListOfPolicies?.filter(\n          (item) => item?.contract_id !== event\n        );\n        break;\n    }\n  }\n  /**\n   * Refreshes the assignees and overseers list such that both list does not contain the same users based on selection\n   */\n  refreshAllLists() {\n    let assigneesIds: any = [];\n    let reviewersIds: any = [];\n    let overseerIds: any = [];\n    const allUsers = cloneDeep(this.usersList);\n    const assignees = cloneDeep(this.policyForm.selectedAssignees);\n    const overseerList = cloneDeep(this.policyForm.CCEmail);\n    const notifyOverseers = cloneDeep(this.policyForm.CCFailEmail);\n    assignees?.forEach((user: any) => {\n      assigneesIds.push(user.employee_id);\n    });\n    overseerList?.forEach((user: any) => {\n      overseerIds.push(user.employee_id);\n    });\n    notifyOverseers?.forEach((user: any) => {\n      overseerIds.push(user.employee_id);\n    });\n\n    assigneesIds = [...new Set(assigneesIds)];\n    reviewersIds = [...new Set(reviewersIds)];\n    overseerIds = [...new Set(overseerIds)];\n\n    // this.assignorsList = behalfUsers.filter((user: any) => !(reviewersIds.includes(user.member_id) || overseerIds.includes(user.member_id)));\n    this.assigneesList = allUsers.filter(\n      (user: any) =>\n        !(\n          reviewersIds.includes(user.employee_id) ||\n          overseerIds.includes(user.employee_id)\n        )\n    );\n    if (this.groupEnabled) {\n      const userObj = this.assigneesList;\n      userObj?.forEach((user: any) => {\n        user.member_id = user.my_member_id;\n      });\n      this.ownerlist = userObj;\n    }\n    // this.reviewersList = allUsers.filter((user: any) => !(assigneesIds.includes(user.employee_id) || overseerIds.includes(user.employee_id)));\n    this.overseersList = allUsers.filter(\n      (user: any) =>\n        !(\n          assigneesIds.includes(user.employee_id) ||\n          reviewersIds.includes(user.employee_id)\n        )\n    );\n  }\n\n  /**\n   * Returns whole list based on selected id's from a particular list elements\n   * @param list it is the main list  which contains all elements list\n   * @param key contains key to filter selected list from the list\n   * @param ids selected ids array\n   */\n  setList(list: any[], ids: any[], key: string) {\n    const data: any = [];\n    ids?.forEach((element: any) => {\n      const index = list?.findIndex(\n        (listElement: any) => listElement[key] == element\n      );\n      if (index !== -1) {\n        data.push(list[index]);\n      }\n    });\n    return data;\n  }\n\n  /**\n   * Returns id's from a particular list elements\n   * @param list actual selected list\n   * @param key contains key to extract id from the list\n   */\n  returnIds(list: any[], key: string) {\n    return list.map((ele) => {\n      if (ele[key]) {\n        return ele[key];\n      }\n    });\n  }\n\n  /**\n   * Sets the reviewer type in approval workflow\n   * @param event contains selected reviewer type\n   */\n  reviewerTypeChange(event: any) {\n    this.workflowType = event;\n  }\n\n  /**\n   * Sets frequency in edit  mode\n   */\n  frequencyDataPopulation(event: any, mode: 'SELECT' | 'POPULATE' = 'SELECT') {\n    //needs to discuss with backend about edit and default values\n    const data = {\n      pattern: event?.frequency_details, //\n      window: event?.remind_days_before_due_date,\n      failedAfter: event?.mark_failed_after,\n      failed_time_utc: '',\n      lifecycleDetails: '0000-00-00~~0',\n      timeIn24Hr: event.failed_time != '' ? event.failed_time : DEFAULT_24HR,\n      continuous_failed_days: 0,\n      startFrom: Math.floor(\n        new Date(event.assignee_start_date).getTime() / 1000\n      ),\n      startDate: '',\n      reportId: 0,\n      timeIn12hr: this.frequencyService.timeIn12(\n        event.failed_time != '' ? event.failed_time : DEFAULT_24HR\n      ),\n      placeholder: event.frequency_text,\n    };\n\n    this.frequencyData(data);\n  }\n\n  /**\n   * Sets the selected frequency details in the policyForm\n   * @param event contains selected frequency details\n   */\n  frequencyData(event: any) {\n    this.policyForm.frequency_details = event.pattern;\n    (this.policyForm.frequency_text = event.placeholder),\n      (this.policyForm.mark_failed_after = event.failedAfter);\n    this.policyForm.remind_days_before_due_date = event.window;\n    this.policyForm.failed_time = event.timeIn24Hr;\n    this.policyForm.assignee_start_date = moment(event.startFrom * 1000).format(\n      'ddd MMM DD YYYY'\n    );\n    this.activateSelector('frequency', false);\n    const payload = {\n      frequency_details: event.pattern,\n      frequency_time: event.timeIn12hr,\n      reminder_before_days: event.window,\n      failed_after_days: event.failedAfter,\n      lifecycle_details: event.lifecycleDetails,\n      start_of_day_utc: event.startFrom,\n      on_completion_of: [event.reportId],\n      dom_utc: Math.floor(Date.now() / 1000),\n      continuous_failed_days: event.continuous_failed_days,\n      placeholder: event.placeholder,\n    };\n    this.frequencyPopulation(payload);\n  }\n\n  /**\n   * Populates the frequency field with selected data from frequency component\n   * @param event contains selected frequency details\n   */\n  frequencyPopulation(event: any) {\n    this.frequencyDetails.pattern = event?.frequency_details;\n    this.frequencyDetails.failedTime = event?.frequency_time;\n    this.frequencyDetails.window = event?.reminder_before_days;\n    this.frequencyDetails.failed = event?.failed_after_days;\n    this.frequencyDetails.lifecycle = event?.lifecycle_details;\n    this.frequencyDetails.startDate = event?.start_of_day_utc;\n    this.frequencyDetails.selectedReport = event?.on_completion_of[0] ?? 0;\n    this.frequencyDetails.dateOfModified = event?.dom_utc;\n    this.frequencyDetails.continuous_failed_days = 3;\n    this.frequencyPlaceholder = event?.placeholder\n      ? event.placeholder\n      : 'How often does this policy need to be attested?';\n  }\n\n  reviewerFrequencyDataPopulation(event: any) {\n    //needs to discuss with backend about edit and default values\n    const data = {\n      pattern: event?.review_frequency_details, //\n      window: event?.review_remind_days_before_due_date,\n      failedAfter: event?.reviewFailedAfter,\n      failed_time_utc: '',\n      lifecycleDetails: '0000-00-00~~0',\n      timeIn24Hr:\n        event.reviewFailedTime != '' ? event.reviewFailedTime : DEFAULT_24HR,\n      continuous_failed_days: 0,\n      startFrom: Math.floor(\n        new Date(event.reviewer_start_date).getTime() / 1000\n      ),\n      startDate: '',\n      reportId: 0,\n      timeIn12hr: this.frequencyService.timeIn12(\n        event.reviewFailedTime != '' ? event.reviewFailedTime : DEFAULT_24HR\n      ),\n      placeholder: event.reviewfrequencyDetails,\n    };\n\n    this.reviewerFrequencyData(data);\n  }\n\n  resetReviewerFrequency() {\n    this.reviewerFrequencyDetails = {\n      pattern: '',\n      notificationPending: 0,\n      dateOfModified: 0,\n      deactivationValue: 0,\n      selectedReport: 0,\n      lifecycle: '0000-00-00~~0',\n      startDate: Math.floor(new Date().getTime() / 1000),\n      startOnTheDay: Math.floor(new Date().getTime() / 1000),\n      window: 0,\n      failed: 0,\n      time: DEFAULT_TIME,\n      failedTime: '',\n      continuous_failed_days: 3,\n    };\n    this.policyForm.reviewFailedAfter = 0;\n    this.policyForm.review_frequency_details = '';\n    this.policyForm.review_frequency_type = '';\n    this.policyForm.review_remind_days_before_due_date = 0;\n    this.policyForm.reviewFailedTime = DEFAULT_24HR;\n    this.reviewerFrequencyPlaceholder =\n      'When does this policy need to be reviewed ?';\n  }\n\n  /**\n   * Sets the selected reviewer frequency details in the policyForm\n   * @param event contains selected frequency details\n   */\n  reviewerFrequencyData(event: any) {\n    this.policyForm.reviewFailedAfter = event.failedAfter;\n    this.policyForm.review_frequency_details = event.pattern;\n    this.policyForm.review_frequency_type = event.pattern.split('~')[0];\n    this.policyForm.review_remind_days_before_due_date = event.window;\n    this.policyForm.reviewFailedTime = event.timeIn24Hr;\n    this.policyForm.reviewer_start_date = moment(event.startFrom * 1000).format(\n      'ddd MMM DD YYYY'\n    );\n\n    this.activateSelector('reviewerFrequency', false);\n    const payload = {\n      frequency_details: event.pattern,\n      frequency_time: event.timeIn12hr,\n      reminder_before_days: event.window,\n      failed_after_days: event.failedAfter,\n      lifecycle_details: event.lifecycleDetails,\n      start_of_day_utc: event.startFrom,\n      on_completion_of: [event.reportId],\n      dom_utc: Math.floor(Date.now() / 1000),\n      continuous_failed_days: event.continuous_failed_days,\n      placeholder: event.placeholder,\n    };\n    this.reviewerFrequencyPopulation(payload);\n  }\n\n  /**\n   * Populates the reviewer frequency field with selected data from frequency component\n   * @param event contains selected frequency details\n   */\n  reviewerFrequencyPopulation(event: any) {\n    this.reviewerFrequencyDetails.pattern = event?.frequency_details;\n    this.reviewerFrequencyDetails.failedTime = event?.frequency_time;\n    this.reviewerFrequencyDetails.window = event?.reminder_before_days;\n    this.reviewerFrequencyDetails.failed = event?.failed_after_days;\n    this.reviewerFrequencyDetails.lifecycle = event?.lifecycle_details;\n    this.reviewerFrequencyDetails.startDate = event?.start_of_day_utc;\n    this.reviewerFrequencyDetails.selectedReport =\n      event?.on_completion_of[0] ?? 0;\n    this.reviewerFrequencyDetails.dateOfModified = event?.dom_utc;\n    this.reviewerFrequencyDetails.continuous_failed_days = 3;\n    this.reviewerFrequencyPlaceholder = event?.placeholder\n      ? event.placeholder\n      : 'When does this policy need to be reviewed ?';\n  }\n\n  /**\n   * Validates the data submitted on create policy form\n   */\n  validatePolicy() {\n    setTimeout(() => {\n      this.submitted = true;\n    }, 100);\n    const event = this.policyForm.policyName;\n    const re = /&nbsp;|<br>/g;\n    this.policyForm.policyName = event.replace(re, '').trim();\n\n    if (\n      this.policyForm.policyName.trim() == '' ||\n      (!this.policyForm?.frequency_details &&\n        ((this.policyForm?.selectedAssignees?.length > 0 &&\n          !this.groupEnabled) ||\n          ((this.policyForm?.selectedAssignees?.length > 0 ||\n            this.policyForm?.selectedGroupAssignee?.length > 0) &&\n            this.groupEnabled))) ||\n      (this.policyForm?.frequency_details &&\n        this.policyForm?.selectedAssignees?.length == 0 &&\n        (!this.groupEnabled ||\n          (this.policyForm?.selectedGroupAssignee?.length == 0 &&\n            this.groupEnabled))) ||\n      (!this.policyForm.review_frequency_details &&\n        this.policyForm.selectedReviewers.length > 0) ||\n      (this.policyForm.review_frequency_details &&\n        this.policyForm.selectedReviewers.length == 0) ||\n      this.policyForm.selectedCategories.length == 0 ||\n      (!this.policyForm?.selectedApprovers[0]?.approval_workflow?.length &&\n        !this.policyForm?.selectedApprovers[0]?.approvers?.length &&\n        this.policyApprovalFlag === 0) ||\n      (this.formatEvidence && this.formatEvidence.newLink.containsError) ||\n      !this.policyForm.policy_owners?.length ||\n      (this.isSendForAttestation &&\n        this.policyForm?.selectedAssignees.length === 0)\n    ) {\n      return false;\n    } else {\n      return true;\n    }\n  }\n\n  /**\n   * Makes an api call to create a policy\n   * @param policy contains policyForm data\n   */\n  submitPolicy() {\n    this.submitted = false;\n    const valid = this.validatePolicy();\n    if (!valid || !this.isVersionValid) {\n      return false;\n    }\n    this.loader = true;\n    this.uiKitService.isLoader = true;\n    if (this.noWorkflowSelected) {\n      this.policyForm.selectedApprovers = this.selectedWorkflow;\n    }\n    const policy = this.policyForm;\n    let approversData: any = this.convertApprovalWorkflow(\n      policy.selectedApprovers\n    );\n    const startDate = policy.policyDueDate?.$d ?? policy.policyDueDate;\n    let reviewerFilesArray = cloneDeep(policy.documentsAndLinks.formatFiles);\n    const reviewerFiles = reviewerFilesArray.map((file: any) => {\n      file.name = file.filename;\n      file.file_path = file.filepath;\n      file.org_name = file.original_filename;\n      delete file.filename;\n      delete file.filepath;\n      delete file.original_filename;\n      delete file.linkSet;\n      return file;\n    });\n\n    let attestationFilesArray = cloneDeep(\n      policy.associatedDocuments.formatFiles\n    );\n    const attestationFiles = attestationFilesArray.map((ele: any) => {\n      ele.name = ele.filename;\n      ele.file_path = ele.filepath;\n      ele.original_file_name = ele.original_filename;\n      ele.folder_id = ele?.folder_id ? ele.folder_id : 0;\n      ele.path = ele?.path ? ele.path : ele.filepath + ele.filename;\n      ele.isLinkSet = ele.linkSet;\n      ele.other_type = ele?.others;\n      delete ele.filename;\n      delete ele.filepath;\n      delete ele.original_filename;\n      delete ele.linkSet;\n      delete ele.file_name;\n      delete ele.others;\n      return ele;\n    });\n    const reviewerID = this.returnIds(policy.selectedReviewers, 'member_id');\n    const policyAccessUsersIds =\n      this.returnIds(policy.policy_access_owners, 'member_id') ?? [];\n    const policyAccessGroupsIds =\n      this.returnIds(policy.policy_access_groups, '_id') ?? [];\n    const linkProgram = this.commonService.transformProgramData(this.selectedPrograms, this.linkProgram?.program?.linked);\n    const payload = {\n      policy_name: policy.policyName,\n      notes: policy.policyNotes,\n      is_portal_enable: policy.availableOnPortal ? 1 : 0,\n      is_suggetion_enable: policy.acceptSuggestions ? 1 : 0,\n      category_id_arr: this.returnIds(policy.selectedCategories, 'item_id'),\n      approvers: approversData,\n      assignee_ids: this.returnIds(\n        policy?.selectedAssignees,\n        'employee_id'\n      ).map((id) => Number(id)),\n      usergroup_ids: this.returnIds(policy.selectedGroupAssignee, '_id') ?? [],\n      Is_approval: 0, //needs to check in fe\n\n      associated_documents: policy.addAssociatedDocuments\n        ? attestationFiles\n        : [],\n\n      custom_tags: JSON.stringify(policy.customTags),\n\n      frequency_details: policy.frequency_details\n        ? policy.frequency_details\n        : '',\n      frequency_text: policy.frequency_details ? policy.frequency_text : '',\n      remind_days_before_due_date: policy.frequency_details\n        ? policy.remind_days_before_due_date\n        : 0,\n      failed_time: policy.frequency_details ? policy.failed_time : '',\n      mark_failed_after: policy.frequency_details\n        ? policy.mark_failed_after\n        : '',\n      // startDate: policy.policyDueDate.toDateString(),\n      startDate: moment(startDate).format('ddd MMM DD YYYY'),\n\n      ReviewerAttachments:\n        policy.addReviewers && policy.documentsAndLinks.formatFiles\n          ? reviewerFiles\n          : [],\n      ReviewerLinks:\n        policy.addReviewers && policy.documentsAndLinks.formatLinks\n          ? policy.documentsAndLinks.formatLinks\n          : [],\n      ReviewerMemberId:\n        policy.addReviewers && reviewerID[0] ? reviewerID[0] : 0,\n      isReview:\n        policy.addReviewers &&\n          (policy.documentsAndLinks.formatFiles ||\n            policy.documentsAndLinks.formatLinks) &&\n          reviewerID[0]\n          ? 1\n          : 0,\n\n      reviewFailedAfter:\n        policy.addReviewers && policy.review_frequency_details\n          ? policy.reviewFailedAfter\n          : 0,\n      reviewFailedTime:\n        policy.addReviewers && policy.review_frequency_details\n          ? policy.reviewFailedTime\n          : '',\n      review_frequency_details:\n        policy.addReviewers && policy.review_frequency_details\n          ? policy.review_frequency_details\n          : '',\n      review_frequency_type:\n        policy.addReviewers && policy.review_frequency_details\n          ? policy.review_frequency_type\n          : '',\n      review_remind_days_before_due_date:\n        policy.addReviewers && policy.review_frequency_details\n          ? policy.review_remind_days_before_due_date\n          : 0,\n\n      entities: this.policyForm?.addResponsibilityCenters\n        ? this.returnIds(policy.selectedRCs, 'item_id').toString()\n        : '',\n      risk_class: policy.riskRating.toString(),\n\n      CCFailEmail: policy.addOverseers\n        ? this.returnIds(policy.CCFailEmail, 'employee_email').toString()\n        : '',\n      CCEmail: policy.addOverseers\n        ? this.returnIds(policy.CCEmail, 'employee_email').toString()\n        : '',\n\n      checkpointDetails: policy.checkpointDetails ?? [],\n      totalQuestion: policy.totalQuestion ? policy.totalQuestion : 0, //\n      passingMarks: policy.passingMarks ? policy.passingMarks : 0, //\n\n      policyApprovalFlag: 0,\n\n      is_signature_required: policy.requiresSignatureForAttestation ? 1 : 0,\n      cc_usergroup_ids: this.ccEmailObjIds,\n      cc_fail_usergroup_ids: this.ccFailGroupObjIds,\n      reviewer_start_date: policy.reviewer_start_date ?? '',\n      assignee_start_date: policy.assignee_start_date,\n      policy_version: policy.addVersion ? policy.policy_version : '',\n      assessment: policy.addLinkAssessment\n        ? policy.assessment.map((ele: any) => {\n          return {\n            assessment_id: ele.assessment_id,\n            category_id: ele.category_id,\n          };\n        })\n        : [],\n      policy_owners: this.policyForm.policy_owners.map(\n        (ele: any) => ele.member_id\n      ),\n      approval_workflow_id: policy?.selectedApprovers[0]?._id\n        ? [policy?.selectedApprovers[0]?._id]\n        : [],\n      linkProgram: linkProgram,\n      business_cycle: Object.keys(policy?.linkProgram).length\n        ? policy?.businessCycle\n        : undefined,\n      policy_access_type: policy.policy_access_type ?? 0,\n      policy_access_owners: policy.availableOnPortal\n        ? []\n        : policyAccessUsersIds ?? [],\n      policy_access_groups: policy.availableOnPortal\n        ? []\n        : policyAccessGroupsIds ?? [],\n      displayOnPortal: policy.isPortalDisplayEnabled ?? false,\n      linkedPolicies: [...new Set(policy.LinkedPolicies)],\n    };\n    if (this.mode == 'CREATE') {\n      this.policyService.submitPolicy(payload).subscribe(\n        (res: any) => {\n          this.policyId = res._id;\n          if (this.convertFileData?.fileName) {\n            this.loader = true;\n            this.linkDocumentWithPolicy(this.convertFileData);\n            return;\n          }\n\n          if (this.templateId) {\n            this.onTemplateSelect([{ _id: this.templateId }], true);\n          } else {\n            this.showCreateDocuments = true;\n            this.loader = false;\n            this.uiKitService.isLoader = false;\n            this.pickerChanged.emit(true);\n          }\n        },\n        (err) => {\n          console.error(err);\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.snackBar.show(\n            'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n            'alert'\n          );\n        }\n      );\n    }\n    if (this.mode == 'EDIT') {\n      if (this.policyApprovalFlag !== 0) {\n        delete payload.approvers;\n        payload.policyApprovalFlag = 2;\n      }\n      this.policyService.updatePolicy(payload, this.policyId).subscribe(\n        (res: any) => {\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.policyId = res._id;\n\n          if (this.navigateToDocumentsSection) {\n            this.pickerChanged.emit(true);\n            this.showCreateDocuments = true;\n          } else {\n            this.disconnectRefresh.emit(false);\n            if (this.isSendForAttestation) {\n              this.snackBar.show(\n                'The policy has been sent for attestation',\n                'success'\n              );\n            } else {\n              this.snackBar.show('The policy has been updated', 'success');\n            }\n            const url =\n              this.baseURL + '/all/policy/workroom?id=' + this.policyId;\n            this.iframeService.redirectIfInIframe(url, true);\n            // this.router.navigate(['/policy/workroom'], { queryParams: { id: this.policyId }, relativeTo: this.route });\n            // window.location.reload();\n          }\n        },\n        (err) => {\n          console.error(err);\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.snackBar.show(\n            'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n            'alert'\n          );\n        }\n      );\n    }\n  }\n\n  linkDocumentWithPolicy(document: any) {\n    let url: string = '';\n    if (\n      document.fileName &&\n      (document.fileExtension === 'pdf' ||\n        document.fileExtension === 'PDF' ||\n        document.fileExtension === 'docx' ||\n        document.fileExtension === 'DOCX')\n    ) {\n      this.policyService\n        .extractFile(document.fileExtension, document.filePath, this.policyId)\n        .subscribe(\n          (res: any) => {\n            if (res && this.policyId) {\n              if (res.message === 'done' || res.content) {\n                this.loader = false;\n                if (\n                  document.fileExtension === 'docx' ||\n                  document.fileExtension === 'DOCX'\n                ) {\n                  url = this.baseURL + API.editPolicy + this.policyId;\n                } else if (\n                  document.fileExtension === 'pdf' ||\n                  document.fileExtension === 'PDF'\n                ) {\n                  url = this.baseURL + API.goToPolicyWorkroom + this.policyId;\n                }\n                this.iframeService.redirectIfInIframe(url, true);\n              }\n            }\n          },\n          (err: any) => {\n            this.loader = false;\n            console.error(err);\n            this.snackBar.show(\n              \"Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?\",\n              'alert'\n            );\n          }\n        );\n    } else {\n      this.loader = false;\n      this.snackBar.show(\n        \"Oops! Something went wrong and we were unable to complete this action. Let's give it another try, shall we?\",\n        'alert'\n      );\n    }\n  }\n\n  /**\n   * opens the date picker on policy form\n   */\n  openDatePicker() {\n    this.datePicker?.api?.open();\n    this.datePickerOverlay = true;\n    // this.setActiveFieldSelector('ISSUE_DATE_TIME', 'ISSUE_DATE_TIME');\n  }\n\n  /**\n   * closes the date picker from policy form\n   */\n  closeDatePicker(evt: any) {\n    this.datePickerOverlay = false;\n\n    if (!evt) {\n      return;\n    }\n    if (evt?.date?.$d) {\n      let monthArray = [\n        'Jan',\n        'Feb',\n        'Mar',\n        'Apr',\n        'May',\n        'Jun',\n        'Jul',\n        'Aug',\n        'Sep',\n        'Oct',\n        'Nov',\n        'Dec',\n      ];\n      const dateValue = new Date(evt?.date?.$d).getDate();\n      const monthValue = monthArray[new Date(evt?.date?.$d).getMonth()];\n      const yearValue = new Date(evt?.date?.$d).getFullYear();\n      const dateStr = `${dateValue} ${monthValue} ${yearValue}`;\n    }\n    if (evt?.date?.$d) {\n      this.policyForm.policyDueDate = evt?.date?.$d;\n    }\n    this.datePicker?.api?.close();\n  }\n  editPolicyFromDocuments() {\n    this.mode = 'EDIT';\n    this.shiftToEditMode.emit();\n    this.pickerChanged.emit(false);\n    this.showCreateDocuments = false;\n    this.navigateToDocumentsSection = true;\n    this.editPolicy();\n  }\n\n  checkForCreateDocuments() {\n    const data = localStorage.getItem('showCreateDocuments');\n    this.navigateToDocumentsSection = data === 'true' ? true : false;\n    if (this.navigateToDocumentsSection) {\n      this.pickerChanged.emit(true);\n      this.showCreateDocuments = true;\n      localStorage.removeItem('showCreateDocuments');\n    }\n  }\n\n  editPolicy() {\n    this.mode = 'EDIT';\n\n    if (this.policyId) {\n      this.policyService.editPolicy(this.policyId).subscribe(\n        (res: any) => {\n          const data = res[0];\n          const categoryIds = data.category_details_arr.map(\n            (id: any) => id.catObjId\n          );\n          this.policyApprovalFlag = data.policyApprovalFlag;\n          this.approvalWorkflowIds = data?.approvalWorkflowDetails?.map(\n            (workflow: any) => workflow?._id\n          );\n          this.selectedWorkflow = [];\n          this.defaultEditApprovers = data?.approvers;\n          this.getApproverWorkFlow(categoryIds, data);\n          this.getLinkedPolicies(data?._id);\n          this.populatePolicyForm(data, categoryIds);\n          this.frequencyDataPopulation(data);\n          this.reviewerFrequencyDataPopulation(data);\n          this.populatePolicyAccessDetails(data);\n          this.getLinkProgram(res[0]?.polid);\n        },\n        (error) => {\n          console.error(error);\n        }\n      );\n\n\n    }\n  }\n\n  populatePolicyForm(data: any, categoryIds: any) {\n    const reviewerFiles = data.ReviewerAttachments.map((file: any) => {\n      file.filename = file.name;\n      file.filepath = file.file_path;\n      file.original_filename = file.org_name;\n      file.file_name = file.org_name;\n      file.linkSet = '';\n      delete file.name;\n      delete file.file_path;\n      delete file.org_name;\n\n      return file;\n    });\n    const attestationFiles = data.associated_documents.map((ele: any) => {\n      ele.filename = ele.name;\n      ele.filepath = ele.file_path;\n      ele.original_filename = ele.original_file_name;\n      ele.file_name = ele.original_file_name;\n      ele.linkSet = ele.isLinkSet;\n      ele.others = ele?.other_type;\n\n      delete ele.name;\n      delete ele.file_path;\n      delete ele.original_file_name;\n      delete ele.isLinkSet;\n      delete ele?.other_type;\n      return ele;\n    });\n    const group_employeeIds = data.group_employeeNames.map(\n      (id: any) => id?.employee_id\n    );\n    const group_Ids = data?.usergroup_ids?.map((id: any) => id) ?? [];\n\n    this.policyForm.selectedCategories = this.setList(\n      this.categoryList,\n      categoryIds,\n      '_id'\n    );\n    this.policyForm.policy_id = data?.policy_id;\n    (this.policyForm.policyName = data.policy_name),\n      (this.policyForm.policyNotes = data.notes),\n      (this.policyForm.customTags = data.custom_tags ? data.custom_tags : []);\n\n    this.policyForm.selectedAssignees =\n      group_employeeIds.length > 0\n        ? this.setList(this.assigneesList, group_employeeIds, 'my_member_id')\n        : []; //doubt in name\n\n    this.policyForm.selectedGroupAssignee =\n      group_Ids?.length > 0\n        ? this.setList(this.overseerGroupsList, group_Ids, '_id')\n        : [];\n\n    this.policyForm.selectedRCs = data.entities\n      ? this.setList(this.rcList, data.entities.split(','), 'item_id')\n      : [];\n    this.policyForm.CCFailEmail = data.CCFailEmail\n      ? this.setList(this.overseersList, data.CCFailEmail, 'employee_email')\n      : [];\n    this.policyForm.CCFailEmailGroup =\n      data?.cc_fail_usergroup_ids?.length > 0\n        ? this.setList(\n          this.overseerGroupsList,\n          data?.cc_fail_usergroup_ids,\n          '_id'\n        )\n        : [];\n    this.policyForm.CCEmail = data.CCEmail\n      ? this.setList(\n        this.overseersList,\n        data.CCEmail.split(','),\n        'employee_email'\n      )\n      : [];\n    this.policyForm.CCGroupEmail =\n      data?.cc_usergroup_ids?.length > 0\n        ? this.setList(this.overseerGroupsList, data?.cc_usergroup_ids, '_id')\n        : [];\n    this.policyForm.availableOnPortal = data.enablePortal ? true : false;\n    this.policyForm.acceptSuggestions = data.enableSuggestion ? true : false;\n    this.policyForm.requiresSignatureForAttestation = data.is_signature_required\n      ? true\n      : false;\n    this.policyForm.riskRating = data.risk_class ? Number(data.risk_class) : 1;\n    this.policyForm.associatedDocuments = data.associated_documents\n      ? {\n        formatFiles: attestationFiles,\n      }\n      : { formatFiles: [] };\n    this.policyForm.policyDueDate = data.startDate\n      ? moment(data.startDate)\n      : moment();\n    this.policyForm.checkpointDetails = data.checkpoints\n      ? data.checkpoints\n      : [];\n    this.policyForm.totalQuestion = data.total_marks ? data.total_marks : 0;\n    this.policyForm.passingMarks = data.pass_marks ? data.pass_marks : 0;\n    this.policyForm.documentsAndLinks = data.ReviewerAttachments\n      ? {\n        formatFiles: reviewerFiles,\n        formatLinks: data.ReviewerLinks,\n      }\n      : { formatFiles: [], formatLinks: [] };\n    this.policyForm.addResponsibilityCenters =\n      this.policyForm.selectedRCs.length > 0 ? true : false;\n    this.policyForm.addReviewers = data.ReviewerMemberId ? true : false;\n    this.policyForm.addCheckpoints =\n      this.policyForm.checkpointDetails.length > 0 ? true : false;\n    this.policyForm.addOverseers =\n      this.policyForm?.CCFailEmail?.length > 0 ||\n        this.policyForm?.CCEmail?.length > 0 ||\n        this.policyForm?.CCFailEmailGroup?.length > 0 ||\n        this.policyForm?.CCGroupEmail?.length > 0\n        ? true\n        : false;\n    this.policyForm.addAssociatedDocuments =\n      data.associated_documents.length > 0 ? true : false;\n    this.ccEmailObjIds =\n      data?.cc_usergroup_ids?.length > 0 ? data?.cc_usergroup_ids : [];\n    this.ccFailGroupObjIds =\n      data?.cc_fail_usergroup_ids?.length > 0\n        ? data?.cc_fail_usergroup_ids\n        : [];\n    this.policyForm.assessment = data?.assessment ?? [];\n    this.policyForm.addLinkAssessment = data?.assessment?.length;\n    this.policyForm.addVersion = data?.policy_version ? true : false;\n    // this.checkForCreateDocuments();\n    this.policyForm.policy_version = data.policy_version;\n    this.policyForm.programSelectedValues.program =\n      data?.programCatDetails && data?.programCatDetails?.length\n        ? data?.programCatDetails[0]\n        : {};\n    this.selectedLinkProgram =\n      data?.programCatDetails && data?.programCatDetails?.length\n        ? JSON.parse(JSON.stringify(data?.programCatDetails[0]))\n        : {};\n    this.populateOptionalFields();\n    this.loader = false;\n  }\n  changeName(event: string) {\n    let text = event;\n    text = text.replace(/<(.*?)>/gi, '');\n    return text;\n  }\n\n  typeSelected(event: boolean) {\n    this.policyForm.addReviewers = event;\n  }\n  onVersion(event: any) {\n    const regexMatch = new RegExp('^[A-Za-z0-9\\\\.-]*$');\n    this.isVersionValid = regexMatch.test(this.policyForm.policy_version);\n    if (!this.isVersionValid) {\n      if (this.policyForm.policy_version?.length > 20) {\n        this.versionErrorMessage =\n          'Your input is invalid. The version field can only include numbers, alphabets, hyphen or dots. The maximum character limit is 20 characters.';\n      }\n    } else if (\n      this.isVersionValid &&\n      this.policyForm.policy_version?.length > 20\n    ) {\n      this.versionErrorMessage =\n        'Your input is invalid. The maximum character limit is 20 characters.';\n    }\n  }\n\n  //this function responsible when we click on div select\n  clickApprovalWorkflow(event: boolean) {\n    this.enableApprovalWorkflow = event;\n    this.createApprovalClick = false;\n    this.activateSelector('approvers', true);\n  }\n\n  listCancelClicked(event: any) {\n    if (event) {\n      this.enableApprovalWorkflow = false;\n      this.disableSelector();\n      // this.pickerChanged.emit(false);\n    }\n  }\n\n  selectedApprovalWorkflow(event: any) {\n    this.selectedWorkflow = [event];\n    this.approvalWorkflowIds = event?._id ? [event?._id] : [];\n    this.enableApprovalWorkflow = false;\n    this.policyForm.selectedApprovers = [event];\n    this.disableSelector();\n  }\n\n  updatedProgramDetails(event: any) {\n    this.policyForm.linkProgram = event?.linkProgram;\n    this.policyForm.programSelectedValues = event?.selectedValues;\n    this.policyForm.businessCycle = event?.businessCycle;\n    this.disableSelector();\n  }\n\n  onAssessmentSelect(event: any) {\n    this.policyForm.assessment = [event];\n  }\n  getAssessmentDetails(assessmentDetails: any, type?: string) {\n    this.responsibilityService\n      .getAssessmentDetailsByID(assessmentDetails.assessment_id)\n      .subscribe((res: any) => {\n        if (res?.length > 0) {\n          const categoryDetails = res[0].category.find(\n            (ele: any) => ele._id == assessmentDetails.category_id\n          );\n\n          this.policyForm.assessment = [\n            {\n              category_id: assessmentDetails.category_id,\n              assessment_id: assessmentDetails.assessment_id,\n              assessmentDetails: {\n                id: assessmentDetails.assessment_id,\n                assessment_name: res[0].assessment_name,\n                questions: res[0].questionsCount,\n              },\n              category_details: categoryDetails,\n            },\n          ];\n        }\n      });\n  }\n\n  setOwnersOnLoad() {\n    this.policyForm.policy_owners = this.setList(\n      this.allApprovers,\n      [this.authService.getMemberId()],\n      'member_id'\n    );\n  }\n\n  approvalWorkflowAPICall(event: any) {\n    if (event) {\n      const objectIds = this.returnIds(\n        this.policyForm.selectedCategories,\n        '_id'\n      );\n      this.getApproverWorkFlow(objectIds);\n      this.enableApprovalWorkflow = true;\n    }\n  }\n\n  convertApprovalWorkflow(approverList: any) {\n    let returnJson: any = {};\n    const modifiedData = JSON.parse(JSON.stringify(approverList));\n    modifiedData?.forEach((workflow: any) => {\n      workflow?.approval_workflow?.forEach((approver: any, index: number) => {\n        let i = index + 1;\n        returnJson['level' + i] = approver;\n      });\n    });\n    return returnJson;\n  }\n\n  deleteLevel(index: any) {\n    // Approver Level delete\n    this.selectedWorkflow[0]?.approval_workflow.splice(index, 1);\n    for (\n      let i = index;\n      i < this.selectedWorkflow[0]?.approval_workflow.length;\n      i++\n    ) {\n      if (\n        this.selectedWorkflow[0].approval_workflow[index]['level1'] ===\n        this.selectedWorkflow[0]?.approval_workflow[index]['alias_name']\n      ) {\n        this.selectedWorkflow[0].approval_workflow[index][\n          'alias_name'\n        ] = `Level ${i + 1}`;\n      }\n      this.selectedWorkflow[0].approval_workflow[index]['level1'] = `Level ${i + 1\n        }`;\n    }\n  }\n\n  editWorkflow(event: any) {\n    this.enableApprovalWorkflow = true;\n    this.editApprovalWorkflow = event;\n    this.createApprovalClick = false;\n    this.activateSelector('approvers', true);\n  }\n\n  //Function responsible when we click on CREATE A NEW APPROVAL WORKFLOW\n  createApprovalWorkflow() {\n    this.enableApprovalWorkflow = true;\n    this.createApprovalClick = true;\n  }\n\n  closeClickedCreateForm() {\n    this.enableApprovalWorkflow = false;\n    this.disableSelector();\n  }\n\n  editLevelClicked(editLevel: any, index: any) {\n    this.enableApprovalWorkflow = true;\n    this.editWorkflowLevel = {\n      editLevel: editLevel,\n      index: index,\n    };\n    this.activateSelector('approvers', true);\n  }\n\n  setAccessField(event: number) {\n    this.policyForm.policy_access_type = event;\n    if (event == 0) {\n      // this.policyForm.policy_access_owners = this.usersAccessList;\n      this.saveSelectedList('policyAccess', {\n        users: this.usersAccessList,\n        groups: [],\n      });\n    }\n  }\n\n  getUsersAccessListByCategory(categoryDetails: any) {\n    let uniqueUsers: any = [];\n    let uniqueGroupsId: any = [];\n    uniqueUsers = uniqBy(\n      categoryDetails?.all_managers?.concat(\n        categoryDetails?.all_approvers,\n        categoryDetails?.all_authors\n      ),\n      'member_id'\n    );\n    this.usersAccessList = uniqueUsers;\n    this.usersAccessListIds = this.returnIds(this.usersAccessList, 'member_id');\n\n    uniqueGroupsId = [\n      ...new Set(\n        categoryDetails?.author_usergroup_ids?.concat(\n          categoryDetails?.owner_usergroup_ids\n        )\n      ),\n    ];\n    this.groupsAccessList = this.setList(\n      this.overseerGroupsList,\n      uniqueGroupsId,\n      '_id'\n    );\n    this.groupsAccessListIds = this.returnIds(\n      this.groupsAccessList,\n      'group_id'\n    );\n  }\n\n  populatePolicyAccessDetails(policyDetails: any) {\n    this.policyForm.policy_access_type = policyDetails?.policy_access_type;\n    if (policyDetails?.policy_access_owners?.length) {\n      this.policyForm.policy_access_owners = this.setList(\n        this.usersList,\n        policyDetails?.policy_access_owners,\n        'member_id'\n      );\n    }\n    if (policyDetails?.policy_access_groups?.length) {\n      this.policyForm.policy_access_groups = this.setList(\n        this.overseerGroupsList,\n        policyDetails?.policy_access_groups,\n        '_id'\n      );\n    }\n  }\n\n  resetPolicyAccessDetails() {\n    if (this.policyForm.policy_access_type == 0) {\n      this.policyForm.policy_access_owners = [];\n      this.policyForm.policy_access_groups = [];\n    }\n  }\n\n  removeFrequency() {\n    this.policyForm.frequency_details = '';\n    this.policyForm.frequency_text = '';\n    this.policyForm.mark_failed_after = 0;\n    this.policyForm.remind_days_before_due_date = 0;\n    this.policyForm.failed_time = '';\n    this.policyForm.assignee_start_date = '';\n    this.frequencyDetails.pattern = '';\n    this.frequencyDetails.failedTime = '';\n    this.frequencyDetails.window = 0;\n    this.frequencyDetails.failed = 0;\n    this.frequencyDetails.lifecycle = '';\n    this.frequencyDetails.startDate = 0;\n    this.frequencyDetails.selectedReport = 0;\n    this.frequencyDetails.dateOfModified = 0;\n    this.frequencyDetails.continuous_failed_days = 0;\n    this.frequencyPlaceholder =\n      'How often does this policy need to be attested?';\n  }\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'effective-date',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datePickerOverlay,\n    };\n    this.commonService.handleDocumentClick(datePickerObject);\n  }\n\n  onTemplateSelect(event: any, isPreselected: boolean = false) {\n    if (event?.length === 0) {\n      this.templateView = false;\n      this.policyService.templateView.next(false);\n      return;\n    }\n    this.disconnectRefresh.emit(false);\n\n    const uname = this.userInfo ? this.userInfo.name : '';\n    const uid = this.member_obj_id;\n    const name = this.policyForm.policyName.trim();\n    const id = this.policyId;\n    this.templateId = event[0]?._id;\n    this.policyService\n      .savePolicyDetails(uname, uid, id, name, '', 0)\n      .subscribe(() => {\n        this.templateView = false;\n        this.setNavigationUrl();\n        if (isPreselected) {\n          this.navigateToTemplate();\n        }\n      });\n  }\n\n  setNavigationUrl() {\n    const basUrl =\n      this.baseURL +\n      '/all/policy/edit-policy?id=' +\n      this.policyId +\n      '&templateId=' +\n      this.templateId;\n    this.templateUrl = basUrl;\n  }\n\n  navigateToTemplate() {\n    this.iframeService.redirectIfInIframe(this.templateUrl, true);\n  }\n\n  onItemsSelectedChange(items: ListItem[]): void {\n    this.selectedPrograms = items;\n    this.allProgamSelected = ([] as any).concat(...Object.values(items));\n  }\n\n  selectCategory(): void {\n    this.allProgamSelected = ([] as any).concat(...Object.values(this.selectedPrograms));\n  }\n\n  removeProgram(program: any): void {\n    const keys = Object.keys(this.selectedPrograms);\n    keys.forEach((key: any) => {\n      const index = this.selectedPrograms[key].findIndex(\n        (item: any) => item?.pid === program?.pid\n      );\n      if (index !== -1) {\n        this.selectedPrograms[key].splice(index, 1);\n      }\n    });\n  }\n\n\n  getLinkProgram(policyId: string) {\n    // this.policyService.getLinkedPrograms(policyId).subscribe((res: any) => {\n    //   this.linkProgram = res;\n    // });\n  }\n}\n","<!-- <p>workflow-policy works!</p> -->\n\n<ng-container *ngIf=\"!showCreateDocuments\">\n  <div class=\"workflow-policy\">\n    <!-- Policy Name -->\n    <div\n      class=\"form-group-row\"\n      [class.disabled]=\"activeSelector && activeSelector !== 'name'\"\n    >\n      <div class=\"left\" [class.checked]=\"policyForm?.policyName\">\n        <img\n          [src]=\"ASSETS.what\"\n          alt=\"name\"\n          *ngIf=\"!policyForm?.policyName || activeSelector === 'name'\"\n        />\n\n        <svg\n          *ngIf=\"policyForm?.policyName && activeSelector !== 'name'\"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">\n            Policy Name <span class=\"required\">*</span>\n          </label>\n          <input\n            type=\"text\"\n            (keydown)=\"activeSelector = 'name'\"\n            (focusin)=\"activateSelector('name', true)\"\n            *ngIf=\"policyForm.policyName == '' || activeSelector === 'name'\"\n            (focusout)=\"activateSelector('name', false)\"\n            [ngModel]=\"policyForm.policyName\"\n            (ngModelChange)=\"policyForm.policyName = changeName($event)\"\n            placeholder=\"Name this policy\"\n          />\n          <div\n            class=\"selected\"\n            *ngIf=\"policyForm.policyName.length && activeSelector !== 'name'\"\n          >\n            <div class=\"chip-container\">\n              <span class=\"value\">{{ policyForm.policyName }}</span>\n            </div>\n            <button\n              class=\"edit\"\n              (click)=\"activateSelector('name', true)\"\n              type=\"button\"\n            >\n              <i class=\"icons\">&#xe9ba;</i> Edit\n            </button>\n          </div>\n\n          <p\n            *ngIf=\"submitted && !policyForm.policyName.trim()\"\n            [appScrollInView]=\"true\"\n            class=\"error-message\"\n          >\n            Please enter a name for this policy.\n          </p>\n          <vcomply-editor\n            [(ngModel)]=\"policyForm.policyNotes\"\n            [editorConfig]=\"description\"\n          ></vcomply-editor>\n          <!-- <app-cs-switch\n            [(ngValue)]=\"policyForm.availableOnPortal\"\n            (ngValueChange)=\"availabilityOnPortal($event)\"\n          >\n            Do you want this policy to be available on the portal?\n            <i\n              class=\"icons\"\n              [appTooltip]=\"\n                'The policies that you intend to make accessible to the entire organization can be added to the policy portal. It is like a shared catalog of all active & updated policies that any logged in user can read/download for reference.'\n              \"\n              placement=\"bottom-right\"\n              type=\"white\"\n              delay=\"0\"\n              [tooltipMandatory]=\"true\"\n              >&#xe932;</i\n            >\n          </app-cs-switch>\n          <app-cs-switch\n            *ngIf=\"policyForm.availableOnPortal\"\n            [(ngValue)]=\"policyForm.acceptSuggestions\"\n          >\n            Accept suggestions\n            <i\n              class=\"icons\"\n              [appTooltip]=\"\n                'If enabled, users can provide improvement suggestions to the policies that are listed on the Policy Portal.'\n              \"\n              placement=\"bottom-right\"\n              type=\"white\"\n              delay=\"0\"\n              [tooltipMandatory]=\"true\"\n              >&#xe932;</i\n            ></app-cs-switch> -->\n        </div>\n      </div>\n    </div>\n\n    <!-- Policy Category -->\n    <div\n      class=\"form-group-row\"\n      [class.active]=\"activeSelector === 'category'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'category' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div\n        class=\"left\"\n        [class.checked]=\"policyForm?.selectedCategories?.length > 0\"\n      >\n        <img\n          *ngIf=\"\n            policyForm?.selectedCategories?.length == 0 ||\n            activeSelector === 'category'\n          \"\n          [src]=\"ASSETS.case_category\"\n          alt=\"\"\n        />\n\n        <svg\n          *ngIf=\"\n            policyForm?.selectedCategories?.length > 0 &&\n            activeSelector !== 'category'\n          \"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\"\n            >Policy Category <span class=\"required\">*</span>\n          </label>\n          <div\n            class=\"select\"\n            *ngIf=\"policyForm?.selectedCategories?.length == 0\"\n          >\n            <input\n              type=\"text\"\n              (click)=\"activateSelector('category', true)\"\n              placeholder=\"Select a category for this policy.\"\n              readonly\n            />\n          </div>\n\n          <div\n            class=\"selected\"\n            *ngIf=\"policyForm?.selectedCategories?.length > 0\"\n          >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <ng-container\n                *ngFor=\"\n                  let category of policyForm?.selectedCategories?.slice(0, 1)\n                \"\n              >\n                <i\n                  (click)=\"remove('category', category)\"\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"category.item_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ category.item_name }}</span\n                >\n              </ng-container>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                *ngIf=\"policyForm?.selectedCategories?.length > 1\"\n                type=\"button\"\n                appPopover\n                (click)=\"category.popover()\"\n                placement=\"left\"\n              >\n                +{{ policyForm?.selectedCategories?.slice(1).length }}\n              </button>\n            </div>\n\n            <!-- <div class=\"chip-container\" [class.more-one]=\"policyForm?.selectedCategories?.length>1\"\n                          [class.plus]=\"policyForm?.selectedCategories?.length>2\">\n                          <span class=\"chip\" *ngFor=\"let category of policyForm?.selectedCategories?.slice(0,2)\"><i\n                                  class=\"icons\" (click)=\"remove('category',category)\">&#xe90d;</i>\n                              {{category.item_name}}</span>\n                          <button class=\"count\" *ngIf=\"policyForm?.selectedCategories?.length > 2\" type=\"button\"\n                              appPopover (click)=\"category.popover()\" placement=\"right\">+\n                              {{policyForm?.selectedCategories?.slice(2).length}}</button>\n                      </div> -->\n            <button\n              *ngIf=\"activeSelector !== 'category'\"\n              class=\"edit\"\n              type=\"button\"\n              (click)=\"activateSelector('category', true)\"\n            >\n              <i class=\"icons\">&#xe9ba;</i> Edit\n            </button>\n          </div>\n          <app-popover #category [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let category of policyForm?.selectedCategories | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i class=\"icons\" (click)=\"remove('category', category)\"\n                        >&#xe90d;</i\n                      >\n                      {{ category.item_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n          <p\n            *ngIf=\"submitted && policyForm?.selectedCategories?.length == 0\"\n            [appScrollInView]=\"true\"\n            class=\"error-message\"\n          >\n            Please select the category for this policy.\n          </p>\n        </div>\n\n        <div class=\"vx-form-group\" *ngIf=\"policyForm?.customTags?.length > 0\">\n          <ng-container *ngFor=\"let tag of policyForm?.customTags\">\n            <label class=\"vx-control-panel vx-mt-2\">{{ tag.tagname }}</label>\n            <input\n              type=\"text\"\n              [(ngModel)]=\"tag.value\"\n              placeholder=\"{{ tag.tagname }}\"\n            />\n          </ng-container>\n        </div>\n      </div>\n    </div>\n\n    <!-- Effective Date -->\n    <div\n      class=\"form-group-row\"\n      [class.disabled]=\"activeSelector && activeSelector !== 'name'\"\n    >\n      <div class=\"left\" [class.checked]=\"false\">\n        <img [src]=\"ASSETS.when\" alt=\"\" />\n\n        <svg\n          *ngIf=\"false\"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">Effective Date</label>\n          <div class=\"date-time-picker\">\n            <div class=\"picker-group\">\n              <input\n                type=\"text\"\n                readonly\n                placeholder=\"Select the effective date of the policy.\"\n                [value]=\"policyForm.policyDueDate | date : 'dd MMM yyyy'\"\n                (click)=\"openDatePicker()\"\n                id=\"effective-date\"\n              />\n              <i class=\"icons\">&#xe92d;</i>\n              <dp-date-picker\n                #datePicker\n                (onSelect)=\"datePickerOverlay = false; closeDatePicker($event)\"\n                [config]=\"dateConfig\"\n                [(ngModel)]=\"policyForm.policyDueDate\"\n              >\n              </dp-date-picker>\n              <div\n                class=\"vx-overlay\"\n                (click)=\"closeDatePicker($event)\"\n                *ngIf=\"datePickerOverlay\"\n              ></div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <!-- Policy Owner -->\n    <div\n      class=\"form-group-row\"\n      [class.active]=\"activeSelector === 'owners'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'owners' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div class=\"left\" [class.checked]=\"policyForm.policy_owners?.length\">\n        <img\n          *ngIf=\"!policyForm.policy_owners?.length\"\n          [src]=\"ASSETS.im_creating\"\n          alt=\"\"\n        />\n\n        <svg\n          *ngIf=\"policyForm.policy_owners?.length\"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <div class=\"vx-d-flex vx-align-center vx-justify-between\">\n            <label class=\"vx-control-panel\">POLICY OWNER(S)</label>\n          </div>\n          <div\n            *ngIf=\"!policyForm.policy_owners?.length\"\n            (click)=\"activateSelector('owners', true)\"\n            class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\n            [class.disabled]=\"!policyForm?.selectedCategories?.length\"\n          >\n            <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\n              Select owners for this policy.\n            </div>\n          </div>\n\n          <div\n            *ngIf=\"policyForm.policy_owners?.length\"\n            class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n          >\n            <div class=\"vx-d-flex vx-align-center\">\n              <div\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              >\n                <i\n                  (click)=\"remove('owners', policyForm?.policy_owners[0], 0)\"\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"policyForm?.policy_owners[0]?.member_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ policyForm?.policy_owners[0]?.member_name }}</span\n                >\n\n                <button\n                  *ngIf=\"policyForm?.policy_owners?.length > 1\"\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                  appPopover\n                  (click)=\"policyUserPopover.popover()\"\n                  placement=\"left\"\n                >\n                  + {{ policyForm?.policy_owners.length - 1 }}\n                </button>\n              </div>\n              <div\n                *ngIf=\"false\"\n                class=\"vx-fs-12 vx-paragraph-txt vx-ml-1 vx-mr-1\"\n              >\n                &\n              </div>\n              <div\n                *ngIf=\"false\"\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              >\n                <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"'Samantha Jones'\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >Samantha Jones</span\n                >\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover\n                  (click)=\"policyGroupPopover.popover()\"\n                  placement=\"right\"\n                >\n                  +4\n                </button>\n              </div>\n              <app-popover #policyUserPopover [dontCloseonClick]=\"true\">\n                <div class=\"wf-action-list\">\n                  <ul class=\"action-item\">\n                    <li\n                      *ngFor=\"\n                        let owner of policyForm?.policy_owners | slice : 1;\n                        let i = index\n                      \"\n                    >\n                      <div class=\"avatar-card\">\n                        <span\n                          class=\"value\"\n                          [appTooltip]=\"owner?.member_name\"\n                          placement=\"bottom-left\"\n                          delay=\"0\"\n                          type=\"black\"\n                          [tooltipMandatory]=\"false\"\n                        >\n                          <i\n                            (click)=\"remove('owners', owner, i + 1)\"\n                            class=\"icons\"\n                            >&#xe90d;</i\n                          >\n                          {{ owner?.member_name }}\n                        </span>\n                      </div>\n                    </li>\n                  </ul>\n                </div>\n              </app-popover>\n              <app-popover #policyGroupPopover [dontCloseonClick]=\"true\">\n                <div class=\"wf-action-list\">\n                  <ul class=\"action-item\">\n                    <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n                      <div class=\"avatar-card\">\n                        <span\n                          class=\"value\"\n                          [appTooltip]=\"'Harshvardhan Kariwala'\"\n                          placement=\"bottom-left\"\n                          delay=\"0\"\n                          type=\"black\"\n                          [tooltipMandatory]=\"false\"\n                        >\n                          <i class=\"icons\">&#xe90d;</i>\n                          Harshvardhan Kariwala\n                        </span>\n                      </div>\n                    </li>\n                  </ul>\n                </div>\n              </app-popover>\n            </div>\n            <button\n              (click)=\"activateSelector('owners', true)\"\n              class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n            >\n              <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n            </button>\n          </div>\n          <p\n            *ngIf=\"submitted && !policyForm?.policy_owners?.length\"\n            [appScrollInView]=\"true\"\n            class=\"error-message\"\n          >\n            Select owners for this policy.\n          </p>\n        </div>\n      </div>\n    </div>\n\n    <!-- Review -->\n    <div\n      class=\"form-group-row\"\n      [class.active]=\"\n        activeSelector === 'reviewer' || activeSelector === 'reviewerFrequency'\n      \"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'reviewer' &&\n        activeSelector !== 'reviewerFrequency' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div class=\"left\" [class.checked]=\"policyForm?.addReviewers\">\n        <img *ngIf=\"!policyForm?.addReviewers\" src=\"ASSETS.reviewer\" alt=\"\" />\n\n        <svg\n          *ngIf=\"policyForm?.addReviewers\"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">REVIEW</label>\n          <div\n            class=\"reviewSelection vx-p-3 vx-pb-0\"\n            [class.disabled]=\"\n              activeSelector && sideSelectorElements.includes(activeSelector)\n            \"\n          >\n            <div class=\"vx-fs-13 vx-paragraph-txt vx-mb-1\">\n              Does this policy need to be reviewed?\n            </div>\n            <app-cs-radio\n              name=\"review-type\"\n              [checked]=\"policyForm?.addReviewers\"\n              (checkedEvent)=\"typeSelected(true)\"\n              ><div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-mr-3\">\n                YES\n              </div></app-cs-radio\n            >\n            <app-cs-radio\n              name=\"review-type\"\n              [checked]=\"!policyForm?.addReviewers\"\n              (checkedEvent)=\"typeSelected(false)\"\n              ><div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-mr-3\">\n                NO\n              </div></app-cs-radio\n            >\n          </div>\n\n          <ng-container *ngIf=\"policyForm?.addReviewers\">\n            <label class=\"vx-control-panel vx-mt-2\">REVIEWER</label>\n            <div\n              class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\n              *ngIf=\"policyForm?.selectedReviewers?.length == 0\"\n              [appScrollInView]=\"scrollToBottom\"\n              [class.active]=\"activeSelector === 'reviewer'\"\n              [class.disabled]=\"\n                activeSelector &&\n                activeSelector !== 'reviewer' &&\n                sideSelectorElements.includes(activeSelector)\n              \"\n              (click)=\"activateSelector('reviewer', true)\"\n            >\n              <div\n                class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\n              >\n                Select the person responsible for reviewing this policy\n              </div>\n            </div>\n\n            <div\n              class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n              *ngIf=\"policyForm?.selectedReviewers?.length > 0\"\n              [class.active]=\"activeSelector === 'reviewer'\"\n              [class.disabled]=\"\n                activeSelector &&\n                activeSelector !== 'reviewer' &&\n                sideSelectorElements.includes(activeSelector)\n              \"\n            >\n              <div\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                *ngFor=\"let reviewer of policyForm?.selectedReviewers\"\n              >\n                <i\n                  (click)=\"remove('reviewer', reviewer)\"\n                  class=\"icons cross vx-fs-12 vx-paragraph-txt vx-mr-1\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"'Samantha Jones'\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{ reviewer?.member_name }}</span\n                >\n              </div>\n              <button\n                class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n                *ngIf=\"activeSelector !== 'reviewer'\"\n                (click)=\"activateSelector('reviewer', true)\"\n              >\n                <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n              </button>\n            </div>\n            <label class=\"vx-control-panel vx-mt-3\">REVIEW FREQUENCY</label>\n            <div\n              *ngIf=\"policyForm?.review_frequency_details == ''\"\n              class=\"selectButton vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n              [class.active]=\"activeSelector === 'reviewerFrequency'\"\n              [class.disabled]=\"\n                activeSelector &&\n                activeSelector !== 'reviewerFrequency' &&\n                sideSelectorElements.includes(activeSelector)\n              \"\n              (click)=\"activateSelector('reviewerFrequency', true)\"\n            >\n              <div\n                class=\"selectButtonPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\n              >\n                When does this policy needs to be reviewed?\n              </div>\n              <div\n                (click)=\"activateSelector('reviewerFrequency', true)\"\n                class=\"vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase\"\n              >\n                SET A FREQUENCY\n              </div>\n            </div>\n\n            <div\n              *ngIf=\"policyForm?.review_frequency_details != ''\"\n              class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n              [class.disabled]=\"\n                activeSelector &&\n                activeSelector !== 'reviewerFrequency' &&\n                sideSelectorElements.includes(activeSelector)\n              \"\n              [class.active]=\"activeSelector === 'reviewerFrequency'\"\n            >\n              <div\n                class=\"selectBoxText vx-fs-13 vx-paragraph-txt\"\n                [appTooltip]=\"reviewerFrequencyPlaceholder\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n              >\n                {{ reviewerFrequencyPlaceholder }}\n              </div>\n              <button\n                *ngIf=\"activeSelector !== 'reviewerFrequency'\"\n                (click)=\"activateSelector('reviewerFrequency', true)\"\n                class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n              >\n                <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n              </button>\n            </div>\n            <p\n              *ngIf=\"\n                submitted &&\n                policyForm?.selectedReviewers?.length > 0 &&\n                !policyForm?.review_frequency_details\n              \"\n              class=\"error-message\"\n              [appScrollInView]=\"true\"\n            >\n              Select the review schedule for this policy.\n            </p>\n          </ng-container>\n        </div>\n      </div>\n    </div>\n\n    <!-- New Approval Workflow -->\n    <div\n      class=\"form-group-row\"\n      [class.active]=\"activeSelector === 'approvers'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'approvers' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div\n        class=\"left\"\n        [class.checked]=\"policyForm?.selectedApprovers?.length > 0\"\n      >\n        <img\n          *ngIf=\"\n            policyForm?.selectedApprovers?.length == 0 ||\n            activeSelector === 'approvers'\n          \"\n          [src]=\"ASSETS.approval\"\n          alt=\"im\"\n        />\n\n        <svg\n          *ngIf=\"\n            policyForm?.selectedApprovers?.length > 0 &&\n            activeSelector !== 'approvers'\n          \"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\" [class.disabled]=\"policyApprovalFlag !== 0\">\n        <div class=\"vx-form-group\">\n          <div class=\"vx-d-flex vx-align-center vx-justify-between\">\n            <label class=\"vx-control-panel\"\n              >APPROVAL <span class=\"required\">*</span></label\n            >\n            <button\n              (click)=\"\n                createApprovalWorkflow(); activateSelector('approvers', true)\n              \"\n              [class.disabled]=\"!policyForm?.selectedCategories?.length\"\n              class=\"createNewBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\"\n            >\n              CREATE A NEW APPROVAL WORKFLOW\n            </button>\n          </div>\n          <div\n            *ngIf=\"\n              selectedWorkflow?.length === 0 ||\n              !selectedWorkflow[0]?.workflow_name\n            \"\n            (click)=\"\n              clickApprovalWorkflow(true); activateSelector('approvers', true)\n            \"\n            class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\n            [class.disabled]=\"!policyForm?.selectedCategories?.length\"\n          >\n            <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\n              Select the approval workflow for this policy\n            </div>\n          </div>\n          <div\n            *ngIf=\"\n              selectedWorkflow?.length > 0 && selectedWorkflow[0]?.workflow_name\n            \"\n            class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-mb-2\"\n          >\n            <div\n              class=\"vx-d-flex vx-align-center vx-justify-between vx-mt-2 vx-mb-2\"\n            >\n              <div\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              >\n                <i\n                  (click)=\"removeWorkflow()\"\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"selectedWorkflow[0]?.workflow_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ selectedWorkflow[0]?.workflow_name }}</span\n                >\n              </div>\n              <button\n                (click)=\"editWorkflow(selectedWorkflow[0])\"\n                class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n              >\n                <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n              </button>\n            </div>\n          </div>\n          <ng-container *ngIf=\"selectedWorkflow?.length > 0\">\n            <div\n              *ngFor=\"\n                let approval of selectedWorkflow[0]?.approval_workflow;\n                let approvalIndex = index\n              \"\n              class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between vx-mb-2\"\n            >\n              <div class=\"vx-d-flex vx-align-center\">\n                <div class=\"level-left vx-d-flex vx-align-center\">\n                  <div class=\"vx-d-block\">\n                    <div\n                      class=\"level-name vx-fs-9 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-lh-3\"\n                      [appTooltip]=\"\n                        approval?.alias_name\n                          ? approval?.alias_name\n                          : approval?.level1\n                      \"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"false\"\n                    >\n                      {{\n                        approval?.alias_name\n                          ? approval?.alias_name\n                          : approval?.level1\n                      }}\n                    </div>\n                    <div\n                      class=\"vx-fs-9 vx-fw-500 vx-label-txt vx-tt-uppercase vx-lh-3\"\n                    >\n                      {{\n                        approval?.type === \"ROUNDROBIN\"\n                          ? \"ROUND-ROBIN\"\n                          : approval?.type === \"ANYONE\"\n                          ? \"ANY ONE\"\n                          : approval?.type\n                      }}\n                    </div>\n                  </div>\n                </div>\n                <div\n                  class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-ml-2\"\n                >\n                  <!-- <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                    >&#xe9ae;</i\n                  > -->\n                  <div\n                    *ngIf=\"\n                      approval?.type?.toLowerCase() === 'sequential' &&\n                      approval?.approvers?.length < 2\n                    \"\n                    class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\n                  >\n                    {{ 1 == approval?.approvers?.length ? \"Final\" : 1 }}\n                  </div>\n                  <div\n                    *ngIf=\"\n                      approval?.approvers?.length > 1 &&\n                      approval?.type?.toLowerCase() === 'sequential'\n                    \"\n                    class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\n                  >\n                    1\n                  </div>\n                  <span\n                    class=\"chipName vx-fs-11 vx-label-txt\"\n                    [appTooltip]=\"approval?.approvers[0]?.member_name\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                    >{{ approval?.approvers[0]?.member_name }}</span\n                  >\n                  <button\n                    *ngIf=\"approval?.approvers?.length > 1\"\n                    class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                    appPopover\n                    (click)=\"workflowPopover.popover()\"\n                    placement=\"right\"\n                  >\n                    +{{ approval?.approvers?.length - 1 }}\n                  </button>\n                </div>\n                <app-popover #workflowPopover [dontCloseonClick]=\"true\">\n                  <div class=\"wf-action-list\">\n                    <ul class=\"action-item\">\n                      <li\n                        *ngFor=\"\n                          let approver of approval?.approvers | slice : 1;\n                          let approvalIndex = index\n                        \"\n                      >\n                        <div class=\"avatar-card\">\n                          <span\n                            class=\"value\"\n                            [appTooltip]=\"approver?.member_name\"\n                            placement=\"bottom-left\"\n                            delay=\"0\"\n                            type=\"black\"\n                            [tooltipMandatory]=\"false\"\n                          >\n                            <!-- <i class=\"icons\">&#xe90d;</i> -->\n                            <span\n                              *ngIf=\"\n                                approval?.type?.toLowerCase() === 'sequential'\n                              \"\n                              class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\n                              >{{\n                                approvalIndex + 1 ===\n                                approval?.approvers?.length - 1\n                                  ? \"Final\"\n                                  : approvalIndex + 2\n                              }}</span\n                            >\n                            {{ approver?.member_name }}\n                          </span>\n                        </div>\n                      </li>\n                    </ul>\n                  </div>\n                </app-popover>\n              </div>\n\n              <!-- <div class=\"vx-d-flex vx-align-center\">\n                <button (click)=\"editLevelClicked(approval,approvalIndex)\"\n                  class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n                >\n                  <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n                </button>\n                <button (click)=\"deleteLevel(approvalIndex)\"\n                  class=\"deleteBtn vx-fs-11 vx-fw-600 vx-tt-uppercase vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center\"\n                >\n                  <i class=\"icons vx-mr-1\">&#xe9ae;</i> DELETE\n                </button>\n              </div> -->\n            </div>\n          </ng-container>\n          <p\n            *ngIf=\"\n              submitted &&\n              !policyForm?.selectedApprovers[0]?.approval_workflow?.length &&\n              !policyApprovalFlag &&\n              !policyForm?.selectedApprovers[0]?.approvers?.length\n            \"\n            [appScrollInView]=\"true\"\n            class=\"error-message\"\n          >\n            Select or create an approval workflow for this policy.\n          </p>\n        </div>\n      </div>\n    </div>\n\n    <!-- Policy Access -->\n    <div\n      *ngIf=\"true\"\n      class=\"form-group-row\"\n      [class.active]=\"activeSelector === 'policyAccess'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'policyAccess' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div class=\"left\" [class.checked]=\"true\">\n        <img\n          *ngIf=\"\n            !policyForm?.policy_access_owners?.length &&\n            !policyForm?.policy_access_groups?.length &&\n            !policyForm?.availableOnPortal\n          \"\n          [src]=\"ASSETS.lock_scope\"\n          alt=\"\"\n        />\n\n        <svg\n          *ngIf=\"\n            policyForm?.policy_access_owners?.length ||\n            policyForm?.policy_access_groups?.length ||\n            policyForm?.availableOnPortal\n          \"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <div class=\"vx-d-flex vx-align-center vx-justify-between\">\n            <label class=\"vx-control-panel\">POLICY PORTAL ACCESS</label>\n          </div>\n          <div\n            *ngIf=\"\n              !policyForm?.policy_access_owners?.length &&\n              !policyForm?.policy_access_groups?.length &&\n              !policyForm?.availableOnPortal\n            \"\n            (click)=\"activateSelector('policyAccess', true)\"\n            class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\n            [class.disabled]=\"!policyForm?.selectedCategories?.length\"\n          >\n            <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\n              Who should be able to view this policy?\n            </div>\n          </div>\n\n          <ng-container *ngIf=\"!policyForm?.availableOnPortal\">\n            <div\n              class=\"selectBoxSuccess vx-pl-2 vx-pr-3\"\n              *ngIf=\"\n                policyForm?.policy_access_owners?.length ||\n                policyForm?.policy_access_groups?.length\n              \"\n            >\n              <div\n                class=\"vx-d-flex vx-align-center vx-justify-between vx-mt-2 vx-mb-2\"\n              >\n                <div class=\"vx-d-flex vx-align-center\">\n                  <div\n                    *ngIf=\"policyForm?.policy_access_owners?.length\"\n                    class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                  >\n                    <i\n                      class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                      *ngIf=\"policyForm?.policy_access_type === 1\"\n                      (click)=\"\n                        remove(\n                          'policyAccess',\n                          policyForm?.policy_access_owners[0]\n                        )\n                      \"\n                      >&#xe9ae;</i\n                    >\n                    <span\n                      class=\"chipName vx-fs-11 vx-label-txt\"\n                      [appTooltip]=\"\n                        policyForm?.policy_access_owners[0]?.employee_name\n                      \"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"false\"\n                      >{{\n                        policyForm?.policy_access_owners[0]?.employee_name\n                      }}</span\n                    >\n                    <button\n                      *ngIf=\"policyForm?.policy_access_owners?.length > 1\"\n                      class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                      appPopover\n                      (click)=\"policyAccessPopover.popover()\"\n                      placement=\"left\"\n                    >\n                      +{{ policyForm?.policy_access_owners.length - 1 }}\n                    </button>\n                  </div>\n\n                  <div\n                    class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\n                    *ngIf=\"\n                      policyForm?.policy_access_owners.length > 0 &&\n                      policyForm?.policy_access_groups.length > 0\n                    \"\n                  >\n                    &\n                  </div>\n                  <div\n                    class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                    *ngIf=\"policyForm?.policy_access_groups.length > 0\"\n                  >\n                    <i\n                      class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                      *ngIf=\"policyForm?.policy_access_type === 1\"\n                      (click)=\"\n                        remove(\n                          'accessGroup',\n                          policyForm?.policy_access_groups[0]\n                        )\n                      \"\n                      >&#xe9ae;</i\n                    >\n                    <span\n                      class=\"chipName vx-fs-11 vx-label-txt\"\n                      [appTooltip]=\"\n                        policyForm?.policy_access_groups[0]?.group_name\n                      \"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"false\"\n                      >{{\n                        policyForm?.policy_access_groups[0]?.group_name\n                      }}</span\n                    >\n                    <button\n                      class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                      appPopover\n                      (click)=\"accessGroup.popover()\"\n                      placement=\"right\"\n                      *ngIf=\"policyForm?.policy_access_groups.length > 1\"\n                    >\n                      +{{ policyForm?.policy_access_groups.length - 1 }}\n                    </button>\n                  </div>\n\n                  <app-popover #policyAccessPopover [dontCloseonClick]=\"true\">\n                    <div class=\"wf-action-list\">\n                      <ul class=\"action-item\">\n                        <li\n                          *ngFor=\"\n                            let user of policyForm?.policy_access_owners\n                              | slice : 1;\n                            let j = index\n                          \"\n                        >\n                          <div class=\"avatar-card\">\n                            <span\n                              class=\"value\"\n                              [appTooltip]=\"user?.employee_name\"\n                              placement=\"bottom-left\"\n                              delay=\"0\"\n                              type=\"black\"\n                              [tooltipMandatory]=\"false\"\n                            >\n                              <i\n                                class=\"icons\"\n                                *ngIf=\"policyForm?.policy_access_type === 1\"\n                                (click)=\"remove('policyAccess', user)\"\n                                >&#xe90d;</i\n                              >\n                              {{ user?.employee_name }}\n                            </span>\n                          </div>\n                        </li>\n                      </ul>\n                    </div>\n                  </app-popover>\n                  <app-popover #accessGroup [dontCloseonClick]=\"true\">\n                    <div class=\"wf-action-list\">\n                      <ul class=\"action-item\">\n                        <li\n                          *ngFor=\"\n                            let data of policyForm?.policy_access_groups\n                              | slice : 1;\n                            let j = index\n                          \"\n                        >\n                          <div class=\"avatar-card\">\n                            <span class=\"value\">\n                              <i\n                                class=\"icons\"\n                                *ngIf=\"policyForm?.policy_access_type === 1\"\n                                (click)=\"remove('accessGroup', data)\"\n                                >&#xe90d;</i\n                              >\n                              {{ data?.group_name }}\n                            </span>\n                          </div>\n                        </li>\n                      </ul>\n                    </div>\n                  </app-popover>\n                </div>\n\n                <button\n                  (click)=\"activateSelector('policyAccess', true)\"\n                  class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n                >\n                  <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n                </button>\n              </div>\n\n              <!-- <div class=\"vx-mt-4 vx-mb-2\">\n                <app-cs-radio\n                  [name]=\"'policyFormAccessType'\" [checked]=\"policyForm?.policy_access_type === 0\" (checkedEvent)=\"setAccessField(0)\"\n                  ><div class=\"vx-fs-12 vx-paragraph-txt\">\n                    Everyone who has access to this Policy Category\n                  </div></app-cs-radio\n                >\n                <app-cs-radio\n                  [name]=\"'policyFormAccessType'\" [checked]=\"policyForm?.policy_access_type === 1\" (checkedEvent)=\"setAccessField(1)\"\n                class=\"vx-mt-1\"\n                  ><div class=\"vx-fs-12 vx-paragraph-txt\">\n                    Select users/groups\n                  </div></app-cs-radio\n                >\n              </div> -->\n            </div>\n          </ng-container>\n\n          <div\n            class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n            *ngIf=\"policyForm?.availableOnPortal\"\n          >\n            <span class=\"vx-fs-13 vx-paragraph-txt\"\n              >Visible to All Current & Future Users</span\n            >\n\n            <button\n              (click)=\"activateSelector('policyAccess', true)\"\n              class=\"edit vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n            >\n              <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n            </button>\n          </div>\n\n          <div class=\"vx-mt-2\">\n            <app-cs-switch\n              *ngIf=\"\n                policyForm.availableOnPortal ||\n                policyForm?.policy_access_owners?.length ||\n                policyForm?.policy_access_groups?.length\n              \"\n              [(ngValue)]=\"policyForm.acceptSuggestions\"\n              >ACCEPT SUGGESTIONS\n              <i\n                class=\"icons vx-fs-12 vx-txt-blue vx-ml-1 vx-mr-2\"\n                [appTooltip]=\"\n                  'If enabled, users can provide improvement suggestions to the policies that are listed on the Policy Portal.'\n                \"\n                placement=\"bottom-right\"\n                delay=\"0\"\n                type=\"white\"\n                [tooltipMandatory]=\"true\"\n                >&#xe91f;</i\n              ></app-cs-switch\n            >\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <!-- Attestations -->\n    <div\n      class=\"form-group-row\"\n      [class.active]=\"false\"\n      [class.disabled]=\"false\"\n      *ngIf=\"false\"\n    >\n      <div class=\"left\" [class.checked]=\"false\">\n        <img [src]=\"ASSETS.attestations\" alt=\"\" />\n\n        <svg\n          *ngIf=\"false\"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <div class=\"vx-d-flex vx-align-center vx-justify-between\">\n            <label class=\"vx-control-panel\">ATTESTATIONS</label>\n          </div>\n          <div\n            class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\n            [class.disabled]=\"false\"\n          >\n            <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\n              Select the persons required to attest to this Policy\n            </div>\n          </div>\n\n          <div\n            class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n          >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                >&#xe9ae;</i\n              >\n              <span\n                class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"'Samantha Jones'\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >Samantha Jones</span\n              >\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover\n                (click)=\"policyAttestationPopover.popover()\"\n                placement=\"left\"\n              >\n                +4\n              </button>\n            </div>\n            <app-popover #policyAttestationPopover [dontCloseonClick]=\"true\">\n              <div class=\"wf-action-list\">\n                <ul class=\"action-item\">\n                  <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n                    <div class=\"avatar-card\">\n                      <span\n                        class=\"value\"\n                        [appTooltip]=\"'Harshvardhan Kariwala'\"\n                        placement=\"bottom-left\"\n                        delay=\"0\"\n                        type=\"black\"\n                        [tooltipMandatory]=\"false\"\n                      >\n                        <i class=\"icons\">&#xe90d;</i>\n                        Harshvardhan Kariwala\n                      </span>\n                    </div>\n                  </li>\n                </ul>\n              </div>\n            </app-popover>\n            <button\n              class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n            >\n              <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n            </button>\n          </div>\n\n          <div class=\"vx-mt-2\">\n            <app-cs-switch\n              >REQUIRES E-SIGNATURE FOR ATTESTATION\n              <i\n                class=\"icons vx-fs-12 vx-txt-blue vx-ml-1 vx-mr-2\"\n                [appTooltip]=\"\n                  'Requires e-signature for attestation info text here...'\n                \"\n                placement=\"bottom-right\"\n                delay=\"0\"\n                type=\"white\"\n                [tooltipMandatory]=\"true\"\n                >&#xe91f;</i\n              ></app-cs-switch\n            >\n          </div>\n\n          <label class=\"vx-control-panel vx-mt-2\">WHEN?</label>\n          <div\n            class=\"selectButton vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n          >\n            <div\n              class=\"selectButtonPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\"\n            >\n              What is the attestation schedule for this<br />policy?\n            </div>\n            <div class=\"vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase\">\n              SET A FREQUENCY\n            </div>\n          </div>\n\n          <div\n            class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n          >\n            <div class=\"selectBoxText vx-fs-13 vx-paragraph-txt\">\n              Every Wednesday by 11:59 pm\n            </div>\n            <button\n              class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n            >\n              <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n            </button>\n          </div>\n\n          <label class=\"vx-control-panel vx-mt-2\"\n            >ASSESSMENT OF UNDERSTANDING</label\n          >\n          <div\n            class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\n            [class.disabled]=\"false\"\n          >\n            <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\n              Set up a questionnaire to confirm the reader’s<br />understanding\n              of the policy.\n            </div>\n          </div>\n\n          <div\n            class=\"selectBoxSuccess vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n          >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <span class=\"chipName vx-fs-11 vx-label-txt\">5 Questions</span>\n            </div>\n            <button\n              class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n            >\n              <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n            </button>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <!-- Approval Workflow -->\n    <div\n      class=\"form-group-row\"\n      *ngIf=\"false\"\n      [class.active]=\"activeSelector === 'approvers'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'approvers' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div\n        class=\"left\"\n        [class.checked]=\"policyForm?.selectedApprovers?.length > 0\"\n      >\n        <img\n          *ngIf=\"\n            policyForm?.selectedApprovers?.length == 0 ||\n            activeSelector === 'approvers'\n          \"\n          [src]=\"ASSETS.approval\"\n          alt=\"im\"\n        />\n\n        <svg\n          *ngIf=\"\n            policyForm?.selectedApprovers?.length > 0 &&\n            activeSelector !== 'approvers'\n          \"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div\n          class=\"vx-form-group approval-workflow\"\n          [class.disabled]=\"policyApprovalFlag !== 0\"\n        >\n          <label class=\"vx-control-panel\">\n            Approval workflow <span class=\"required\">*</span>\n            <button\n              (click)=\"\n                activateSelector('approvers', true);\n                addMoreLevels = true;\n                workflowType = 'SEQUENTIAL'\n              \"\n              class=\"button\"\n            >\n              Create a new Approval Workflow\n            </button>\n          </label>\n          <div\n            class=\"select\"\n            [class.disabled]=\"approverWorkFlowList?.length == 0\"\n            *ngIf=\"\n              policyForm?.selectedApprovers[0]?.approvers?.length == 0 ||\n              policyForm?.selectedApprovers.length == 0\n            \"\n          >\n            <cs-select\n              [ngModel]=\"selectedApprovalWorkflow\"\n              (ngModelChange)=\"selectedWorkflowChange($event)\"\n              [placeholder]=\"'Select approval workflow for this policy'\"\n              name=\"selectedApprovalWorkflow\"\n              [setMaxWidth]=\"true\"\n            >\n              <cs-option\n                *ngFor=\"let data of approverWorkFlowList\"\n                [value]=\"data\"\n              >\n                {{ data.workflow_name }}\n              </cs-option>\n              <cs-option\n                [value]=\"-1\"\n                (click)=\"\n                  activateSelector('approvers', true);\n                  addMoreLevels = true;\n                  workflowType = 'SEQUENTIAL'\n                \"\n                >Create a new approval workflow</cs-option\n              >\n            </cs-select>\n          </div>\n          <ng-container\n            *ngIf=\"policyForm?.selectedApprovers[0]?.approvers?.length > 0\"\n          >\n            <div\n              class=\"selected\"\n              *ngFor=\"let level of policyForm?.selectedApprovers; let i = index\"\n            >\n              <div class=\"workflow-label\">\n                <p class=\"title\">Level {{ i + 1 }}</p>\n                <p class=\"description\">{{ level.name }}</p>\n              </div>\n              <div class=\"vx-d-flex vx-align-center\">\n                <div class=\"chip-container\">\n                  <span\n                    class=\"chip\"\n                    *ngFor=\"\n                      let approver of level.approvers.slice(0, 1);\n                      let j = index\n                    \"\n                    ><i class=\"icons\" (click)=\"remove('approvers', approver, i)\"\n                      >&#xe90d;</i\n                    >\n                    <span class=\"step\" *ngIf=\"level.name == 'SEQUENTIAL'\">{{\n                      j + 1\n                    }}</span\n                    >{{ approver.member_name }}</span\n                  >\n\n                  <button\n                    class=\"count\"\n                    *ngIf=\"level.approvers?.length > 1\"\n                    type=\"button\"\n                    appPopover\n                    (click)=\"labelName.popover()\"\n                    placement=\"left\"\n                  >\n                    +\n\n                    {{ level.approvers.slice(1).length }}\n                  </button>\n                  <app-popover #labelName [dontCloseonClick]=\"true\">\n                    <div class=\"wf-action-list\">\n                      <ul class=\"action-item\">\n                        <li\n                          *ngFor=\"\n                            let approver of level.approvers | slice : 1;\n                            let j = index\n                          \"\n                        >\n                          <div class=\"avatar-card\">\n                            <span class=\"value\">\n                              <i\n                                class=\"icons\"\n                                (click)=\"remove('approvers', approver, i)\"\n                                >&#xe90d;</i\n                              >\n                              <span\n                                class=\"step\"\n                                *ngIf=\"level.name == 'SEQUENTIAL'\"\n                              >\n                                {{\n                                  j == level.approvers.slice(1).length - 1\n                                    ? \"Final\"\n                                    : j + 2\n                                }}\n                              </span>\n                              {{ approver.member_name }}\n                            </span>\n                          </div>\n                        </li>\n                      </ul>\n                    </div>\n                  </app-popover>\n                </div>\n                <button\n                  class=\"edit\"\n                  type=\"button\"\n                  (click)=\"\n                    activateSelector('approvers', true, level.name);\n                    approversListIndex = i\n                  \"\n                >\n                  <i class=\"icons\">&#xe9ba;</i>Edit\n                </button>\n                <button\n                  class=\"close-btn\"\n                  (click)=\"remove('workflowLevel', level, i)\"\n                >\n                  <i class=\"icons\">&#xe90d;</i>\n                </button>\n              </div>\n            </div>\n          </ng-container>\n\n          <p\n            *ngIf=\"\n              submitted &&\n              !policyForm?.selectedApprovers?.length &&\n              !policyApprovalFlag\n            \"\n            [appScrollInView]=\"true\"\n            class=\"error-message\"\n          >\n            Select or create an approval workflow for this policy.\n          </p>\n\n          <label\n            class=\"vx-control-panel\"\n            *ngIf=\"policyForm.selectedApprovers[0]?.approvers?.length > 0\"\n            ><button\n              class=\"button\"\n              (click)=\"\n                activateSelector('approvers', true);\n                addMoreLevels = true;\n                workflowType = 'SEQUENTIAL'\n              \"\n            >\n              + Add More Levels\n            </button></label\n          >\n        </div>\n      </div>\n    </div>\n\n    <!-- Who / now Attestation -->\n    <div\n      class=\"form-group-row\"\n      [class.active]=\"activeSelector === 'assignees'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'assignees' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div\n        class=\"left\"\n        [class.checked]=\"policyForm?.selectedAssignees?.length > 0\"\n      >\n        <img\n          *ngIf=\"\n            policyForm?.selectedAssignees?.length == 0 ||\n            activeSelector === 'assignees'\n          \"\n          [src]=\"ASSETS.case_assignees\"\n          alt=\"im\"\n        />\n\n        <svg\n          *ngIf=\"\n            policyForm?.selectedAssignees?.length > 0 &&\n            activeSelector !== 'assignees'\n          \"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">Attestation</label>\n          <div\n            class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center vx-mb-2\"\n            *ngIf=\"\n              (policyForm?.selectedAssignees?.length == 0 && !groupEnabled) ||\n              (policyForm?.selectedAssignees?.length == 0 &&\n                groupEnabled &&\n                policyForm?.selectedGroupAssignee.length == 0)\n            \"\n            (click)=\"activateSelector('assignees', true)\"\n          >\n            <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\n              Select the persons responsible for attesting this policy.\n            </div>\n          </div>\n\n          <div\n            class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between vx-mb-2\"\n            *ngIf=\"\n              policyForm?.selectedAssignees?.length > 0 ||\n              policyForm?.selectedGroupAssignee?.length > 0\n            \"\n          >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"!groupEnabled\"\n            >\n              <ng-container\n                *ngFor=\"\n                  let assignee of policyForm?.selectedAssignees?.slice(0, 1)\n                \"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"remove('assignees', assignee)\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"assignee.employee_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ assignee.employee_name }}</span\n                >\n              </ng-container>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                appPopover\n                (click)=\"assigneePopover.popover()\"\n                placement=\"left\"\n                *ngIf=\"policyForm?.selectedAssignees?.length > 1\"\n              >\n                +{{ policyForm?.selectedAssignees?.slice(1).length }}\n              </button>\n            </div>\n            <ng-container *ngIf=\"groupEnabled\">\n              <div\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                *ngIf=\"groupEnabled && policyForm?.selectedAssignees.length > 0\"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"\n                    remove('assignees', policyForm?.selectedAssignees[0])\n                  \"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"policyForm?.selectedAssignees[0]?.employee_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ policyForm?.selectedAssignees[0]?.employee_name }}</span\n                >\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover\n                  (click)=\"UserPopover.popover()\"\n                  placement=\"right\"\n                  *ngIf=\"policyForm?.selectedAssignees.length > 1\"\n                >\n                  +{{ policyForm?.selectedAssignees.length - 1 }}\n                </button>\n              </div>\n              <div\n                class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\n                *ngIf=\"\n                  policyForm?.selectedAssignees.length > 0 &&\n                  policyForm?.selectedGroupAssignee.length > 0\n                \"\n              >\n                &\n              </div>\n              <div\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                *ngIf=\"policyForm?.selectedGroupAssignee.length > 0\"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"\n                    remove(\n                      'groupAssignees',\n                      policyForm?.selectedGroupAssignee[0]\n                    )\n                  \"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"\n                    policyForm?.selectedGroupAssignee[0]?.group_name\n                  \"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ policyForm?.selectedGroupAssignee[0]?.group_name }}</span\n                >\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover\n                  (click)=\"group.popover()\"\n                  placement=\"right\"\n                  *ngIf=\"policyForm?.selectedGroupAssignee.length > 1\"\n                >\n                  +{{ policyForm?.selectedGroupAssignee.length - 1 }}\n                </button>\n              </div>\n            </ng-container>\n            <button\n              class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n              (click)=\"activateSelector('assignees', true)\"\n            >\n              <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n            </button>\n          </div>\n\n          <p\n            *ngIf=\"\n              submitted &&\n              ((policyForm?.selectedAssignees?.length == 0 &&\n                policyForm?.frequency_details &&\n                !groupEnabled) ||\n                (policyForm?.selectedAssignees?.length == 0 &&\n                  policyForm.selectedGroupAssignee.length == 0 &&\n                  policyForm?.frequency_details &&\n                  groupEnabled) ||\n                (isSendForAttestation &&\n                  policyForm?.selectedAssignees?.length === 0))\n            \"\n            id=\"whovalidatemsg\"\n            class=\"error-message\"\n            [appScrollInView]=\"true\"\n          >\n            Select the persons required to attest to this Policy.\n          </p>\n          <app-cs-switch\n            [(ngValue)]=\"policyForm.requiresSignatureForAttestation\"\n            [class.disabled]=\"policyForm?.selectedAssignees?.length == 0\"\n            class=\"who-toggle\"\n            >THIS POLICY REQUIRES E-SIGNATURE FOR ATTESTATION\n            <i\n              class=\"icons\"\n              [appTooltip]=\"\n                'If selected, the readers will be required to attest this policy using their electronic signature.'\n              \"\n              placement=\"bottom-right\"\n              type=\"white\"\n              delay=\"0\"\n              [tooltipMandatory]=\"true\"\n              >&#xe91f;</i\n            ></app-cs-switch\n          >\n          <app-popover #assigneePopover [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let assignee of policyForm?.selectedAssignees | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i class=\"icons\" (click)=\"remove('assignees', assignee)\"\n                        >&#xe90d;</i\n                      >\n                      {{ assignee.employee_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n          <app-popover #UserPopover [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let assignee of policyForm?.selectedAssignees | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i class=\"icons\" (click)=\"remove('assignees', assignee)\"\n                        >&#xe90d;</i\n                      >\n                      {{ assignee.employee_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n          <app-popover #group [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let data of policyForm?.selectedGroupAssignee | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i class=\"icons\" (click)=\"remove('groupAssignees', data)\"\n                        >&#xe90d;</i\n                      >\n                      {{ data.group_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n\n          <!-- overseer -->\n          <app-popover #overseerPopover [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let overseer of policyForm?.CCEmail | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i class=\"icons\" (click)=\"remove('ccEmail', overseer)\"\n                        >&#xe90d;</i\n                      >\n                      {{ overseer?.employee_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n          <app-popover #overseerGroup [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let data of policyForm?.CCGroupEmail | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i class=\"icons\" (click)=\"remove('ccGroupEmail', data)\"\n                        >&#xe90d;</i\n                      >\n                      {{ data?.group_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n          <!-- overseer end -->\n\n          <!-- overseer fail start -->\n          <app-popover #overseerFailPopover [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let overseer of policyForm?.CCFailEmail | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i class=\"icons\" (click)=\"remove('ccFail', overseer)\"\n                        >&#xe90d;</i\n                      >\n                      {{ overseer?.employee_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n          <app-popover #overseerFailGroup [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let data of policyForm?.CCFailEmailGroup | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i\n                        class=\"icons\"\n                        (click)=\"remove('ccGroupFailEmail', data)\"\n                        >&#xe90d;</i\n                      >\n                      {{ data?.group_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n          <!-- overseer fail end -->\n        </div>\n      </div>\n    </div>\n\n    <!-- When -->\n    <div\n      class=\"form-group-row\"\n      [class.active]=\"activeSelector === 'frequency'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'frequency' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">When?</label>\n\n          <div\n            *ngIf=\"policyForm?.frequency_details == ''\"\n            class=\"select button-sec\"\n          >\n            <div\n              class=\"custom-input frequency-custom-input\"\n              (click)=\"activateSelector('frequency', true)\"\n            >\n              {{ frequencyPlaceholder }}\n            </div>\n\n            <button (click)=\"activateSelector('frequency', true)\" type=\"button\">\n              Set A frequency\n            </button>\n          </div>\n          <!-- <div\n            *ngIf=\"policyForm?.frequency_details != ''\"\n            class=\"selected button-sec\"\n          > -->\n          <div\n            *ngIf=\"policyForm?.frequency_details != ''\"\n            class=\"selected button-sec selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n          >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <i\n                (click)=\"remove('frequency', rc)\"\n                class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                >&#xe9ae;</i\n              >\n              <span\n                class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"frequencyPlaceholder\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{ frequencyPlaceholder }}</span\n              >\n            </div>\n            <button\n              *ngIf=\"activeSelector !== 'frequency'\"\n              type=\"button\"\n              class=\"edit\"\n              (click)=\"activateSelector('frequency', true)\"\n            >\n              <i class=\"icons\">&#xe9ba;</i>Edit\n            </button>\n            <!-- </div>\n            <span class=\"chip\">{{ frequencyPlaceholder }}</span>\n            <button\n              *ngIf=\"activeSelector !== 'frequency'\"\n              type=\"button\"\n              class=\"edit\"\n              (click)=\"activateSelector('frequency', true)\"\n            >\n              <i class=\"icons\">&#xe9ba;</i>Edit\n            </button> -->\n          </div>\n          <p\n            *ngIf=\"\n              submitted &&\n              ((policyForm?.selectedAssignees?.length > 0 &&\n                !policyForm?.frequency_details &&\n                !groupEnabled) ||\n                ((policyForm?.selectedAssignees?.length > 0 ||\n                  policyForm?.selectedGroupAssignee?.length > 0) &&\n                  !policyForm?.frequency_details &&\n                  groupEnabled))\n            \"\n            class=\"error-message\"\n            [appScrollInView]=\"true\"\n          >\n            Select an attestation schedule for this policy.\n          </p>\n\n          <!-- <label class=\"vx-control-panel\">Effective Date</label>\n                  <div class=\"date-time-picker\">\n                      <div class=\"picker-group\">\n                          <input type=\"text\" readonly placeholder=\"Select the date from which this policy goes into effect.\"\n                              [value]=\"policyForm.policyDueDate  | date: 'dd MMM yyyy'\" (click)=\"openDatePicker();\">\n                          <i class=\"icons\">&#xe92d;</i>\n                          <dp-date-picker #datePicker (onSelect)=\"datePickerOverlay = false;closeDatePicker($event)\"\n                              [config]=\"dateConfig\" [(ngModel)]=\"policyForm.policyDueDate\">\n                          </dp-date-picker>\n                          <div class=\"vx-overlay\" (click)=\"closeDatePicker($event)\" *ngIf=\"datePickerOverlay\"></div>\n                      </div>\n                  </div> -->\n        </div>\n      </div>\n    </div>\n\n    <!-- Checkpoints / Assessment of Understanding -->\n    <div\n      class=\"form-group-row\"\n      [appScrollInView]=\"scrollToBottom\"\n      *ngIf=\"true\"\n      [class.active]=\"activeSelector === 'checkpoints'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'checkpoints' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">\n            Assessment of Understanding\n            <!-- <button  *ngIf=\"policyForm?.checkpointDetails?.length===0\" class=\"button\" (click)=\"activateSelector('checkpoints',true)\">+ Add Checkpoints</button> -->\n          </label>\n          <div\n            class=\"select\"\n            *ngIf=\"policyForm?.checkpointDetails?.length === 0\"\n            (click)=\"activateSelector('checkpoints', true)\"\n          >\n            <!-- <input type=\"text\" placeholder=\"Set up a questionnaire to confirm the reader’s understanding of the policy.\" readonly> -->\n            <div class=\"custom-input\">\n              Set up a questionnaire to confirm the reader’s<br />understanding\n              of the policy.\n            </div>\n          </div>\n          <div\n            class=\"selected\"\n            *ngIf=\"policyForm?.checkpointDetails?.length > 0\"\n          >\n            <!-- <div class=\"chip-container\">\n                      <span class=\"chip\">{{policyForm?.checkpointDetails?.length + (policyForm?.checkpointDetails?.length > 1 ?' Checkpoints':' Checkpoint')}}</span>\n\n                      <span class=\"checkpoint-point-text first\">TOTAL POINTS: <span class=\"no\">{{policyForm?.totalQuestion}}</span><br><em>Each question carries 1 point</em></span>\n\n                      <span class=\"checkpoint-point-text\">POINTS REQUIRED TO ATTEST : <span class=\"no\">{{policyForm?.passingMarks}}</span></span>\n\n                    </div> -->\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <i\n                class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                (click)=\"remove('checkpoints', policyForm?.checkpointDetails)\"\n                >&#xe9ae;</i\n              >\n              <span class=\"chipName vx-fs-11 vx-label-txt\">{{\n                policyForm?.checkpointDetails?.length +\n                  (policyForm?.checkpointDetails?.length > 1\n                    ? \" Questions\"\n                    : \" Question\")\n              }}</span>\n            </div>\n            <button\n              class=\"edit\"\n              type=\"button\"\n              (click)=\"activateSelector('checkpoints', true)\"\n            >\n              <i class=\"icons\">&#xe9ba;</i> Edit\n            </button>\n          </div>\n          <!-- <app-popover #checkpointPopOver [dontCloseonClick]=\"true\">\n                  <div class=\"wf-action-list\">\n                      <ul class=\"action-item\">\n                          <li *ngFor=\"let checkpoint of policyForm?.checkpointDetails | slice: 1; let j = index\">\n                              <div class=\"avatar-card\">\n                                  <span class=\"value\">\n                                      <i class=\"icons\" (click)=\"remove('checkpoints',checkpoint,j+1)\">&#xe90d;</i>\n                                      {{ checkpoint?.question }}\n                                  </span>\n                              </div>\n                          </li>\n                      </ul>\n                  </div>\n              </app-popover> -->\n        </div>\n      </div>\n    </div>\n\n    <!-- Risk Classification -->\n    <div\n      class=\"form-group-row\"\n      *ngIf=\"showRiskClassification && false\"\n      [class.disabled]=\"activeSelector && activeSelector !== 'name'\"\n    >\n      <div class=\"left\" [class.checked]=\"policyForm.riskRating\">\n        <img [src]=\"ASSETS.risks\" alt=\"im\" *ngIf=\"!policyForm?.riskRating\" />\n\n        <svg\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n          *ngIf=\"policyForm?.riskRating\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">Risk Classification</label>\n          <div class=\"classification\">\n            <label\n              class=\"low\"\n              *ngFor=\"let class of riskClassification\"\n              [ngClass]=\"[class.class]\"\n            >\n              <input\n                type=\"radio\"\n                name=\"classification\"\n                [value]=\"class.value\"\n                [checked]=\"policyForm?.riskRating === class.value\"\n                [(ngModel)]=\"policyForm.riskRating\"\n              />\n              <span>{{ class.name }}</span>\n            </label>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <!-- Responsibility Center -->\n    <div\n      class=\"form-group-row\"\n      [appScrollInView]=\"scrollToBottom\"\n      *ngIf=\"policyForm.addResponsibilityCenters\"\n      [class.active]=\"activeSelector === 'rc'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'rc' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div class=\"left\" [class.checked]=\"policyForm?.selectedRCs?.length > 0\">\n        <img\n          *ngIf=\"\n            policyForm?.selectedRCs?.length == 0 || activeSelector === 'rc'\n          \"\n          [src]=\"ASSETS.responsibility_center\"\n          alt=\"\"\n        />\n\n        <svg\n          *ngIf=\"policyForm?.selectedRCs?.length > 0 && activeSelector !== 'rc'\"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">Responsibility Center</label>\n          <div class=\"select\" *ngIf=\"policyForm?.selectedRCs?.length == 0\">\n            <input\n              type=\"text\"\n              (click)=\"activateSelector('rc', true)\"\n              placeholder=\"Select Responsibility Center(s) that this policy relates to.\"\n              readonly\n            />\n          </div>\n\n          <div class=\"selected\" *ngIf=\"policyForm?.selectedRCs?.length > 0\">\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <ng-container\n                *ngFor=\"let rc of policyForm?.selectedRCs?.slice(0, 1)\"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"remove('rc', rc)\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"rc.item_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ rc.item_name }}</span\n                >\n              </ng-container>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover\n                (click)=\"rcPopover.popover()\"\n                placement=\"left\"\n                *ngIf=\"policyForm?.selectedRCs?.length > 1\"\n              >\n                +{{ policyForm?.selectedRCs?.slice(1).length }}\n              </button>\n            </div>\n            <button\n              class=\"edit\"\n              type=\"button\"\n              (click)=\"activateSelector('rc', true)\"\n            >\n              <i class=\"icons\">&#xe9ba;</i> Edit\n            </button>\n          </div>\n          <app-popover #rcPopover [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let rc of policyForm?.selectedRCs | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i class=\"icons\" (click)=\"remove('rc', rc)\">&#xe90d;</i>\n                      {{ rc.item_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n        </div>\n      </div>\n    </div>\n\n    <!-- Version -->\n    <div\n      *ngIf=\"policyForm.addVersion\"\n      [appScrollInView]=\"scrollToBottom\"\n      class=\"form-group-row\"\n      [class.disabled]=\"\n        activeSelector && sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div class=\"left\" [class.checked]=\"policyForm.policy_version\">\n        <img\n          [src]=\"ASSETS.associated_risks\"\n          alt=\"name\"\n          *ngIf=\"!policyForm.policy_version\"\n        />\n\n        <svg\n          *ngIf=\"policyForm.policy_version\"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">VERSION</label>\n          <input\n            [(ngModel)]=\"policyForm.policy_version\"\n            (change)=\"onVersion($event)\"\n            type=\"text\"\n            placeholder=\"Specify the policy version.\"\n          />\n          <p\n            *ngIf=\"!isVersionValid\"\n            class=\"error-message\"\n            [appScrollInView]=\"true\"\n          >\n            {{ versionErrorMessage }}\n          </p>\n        </div>\n      </div>\n    </div>\n\n    <!-- Reviewer -->\n    <div\n      class=\"form-group-row\"\n      [appScrollInView]=\"scrollToBottom\"\n      *ngIf=\"policyForm.addReviewers && false\"\n      [class.active]=\"activeSelector === 'reviewer'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'reviewer' &&\n        activeSelector !== 'reviewerFrequency' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div\n        class=\"left\"\n        [class.checked]=\"policyForm?.selectedReviewers?.length > 0\"\n      >\n        <img\n          *ngIf=\"\n            policyForm?.selectedReviewers?.length == 0 ||\n            activeSelector === 'reviewer'\n          \"\n          [src]=\"ASSETS.reviewer\"\n          alt=\"\"\n        />\n\n        <svg\n          *ngIf=\"\n            policyForm?.selectedReviewers?.length > 0 &&\n            activeSelector !== 'reviewer'\n          \"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">Reviewer </label>\n          <div\n            class=\"select\"\n            *ngIf=\"policyForm?.selectedReviewers?.length == 0\"\n          >\n            <input\n              type=\"text\"\n              (click)=\"activateSelector('reviewer', true)\"\n              placeholder=\"Select the person responsible for reviewing this policy\"\n              readonly\n            />\n          </div>\n\n          <div\n            class=\"selected\"\n            *ngIf=\"policyForm?.selectedReviewers?.length > 0\"\n          >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <ng-container\n                *ngFor=\"let reviewer of policyForm?.selectedReviewers\"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"remove('reviewer', reviewer)\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"reviewer.member_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ reviewer.member_name }}</span\n                >\n              </ng-container>\n            </div>\n\n            <button\n              class=\"edit\"\n              type=\"button\"\n              (click)=\"activateSelector('reviewer', true)\"\n            >\n              <i class=\"icons\">&#xe9ba;</i> Edit\n            </button>\n          </div>\n          <p\n            *ngIf=\"\n              submitted &&\n              policyForm?.selectedReviewers?.length == 0 &&\n              policyForm?.review_frequency_details\n            \"\n            class=\"error-message\"\n            [appScrollInView]=\"true\"\n          >\n            Select a reviewer for this policy.\n          </p>\n\n          <label class=\"vx-control-panel\">When? </label>\n\n          <div\n            *ngIf=\"policyForm?.review_frequency_details == ''\"\n            class=\"select button-sec\"\n          >\n            <input\n              type=\"text\"\n              (click)=\"activateSelector('reviewerFrequency', true)\"\n              [placeholder]=\"reviewerFrequencyPlaceholder\"\n              readonly\n            />\n            <button\n              (click)=\"activateSelector('reviewerFrequency', true)\"\n              type=\"button\"\n            >\n              Set A frequency\n            </button>\n          </div>\n          <div\n            *ngIf=\"policyForm?.review_frequency_details != ''\"\n            class=\"selected button-sec\"\n          >\n            <span class=\"chip\">{{ reviewerFrequencyPlaceholder }}</span>\n            <button\n              *ngIf=\"activeSelector !== 'reviewerFrequency'\"\n              type=\"button\"\n              class=\"edit\"\n              (click)=\"activateSelector('reviewerFrequency', true)\"\n            >\n              <i class=\"icons\">&#xe9ba;</i>Edit\n            </button>\n          </div>\n          <p\n            *ngIf=\"\n              submitted &&\n              policyForm?.selectedReviewers?.length > 0 &&\n              !policyForm?.review_frequency_details\n            \"\n            class=\"error-message\"\n            [appScrollInView]=\"true\"\n          >\n            Select the review schedule for this policy.\n          </p>\n\n          <app-format-and-evidence\n            (updateFiles)=\"saveSelectedList('reviewer_attachments', $event)\"\n            #formatEvidence\n            [mode]=\"'policyReviewer'\"\n            [organization_id]=\"organization_id\"\n            [formatEvidanceData]=\"policyForm?.documentsAndLinks\"\n          >\n          </app-format-and-evidence>\n        </div>\n      </div>\n    </div>\n\n    <!-- Overseer -->\n    <div\n      class=\"form-group-row\"\n      [appScrollInView]=\"scrollToBottom\"\n      *ngIf=\"policyForm.addOverseers\"\n      [class.active]=\"\n        activeSelector === 'ccEmail' || activeSelector === 'ccFail'\n      \"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'ccEmail' &&\n        activeSelector !== 'ccFail' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div\n        class=\"left\"\n        [class.checked]=\"\n          policyForm?.CCEmail?.length > 0 || policyForm?.CCFailEmail?.length > 0\n        \"\n      >\n        <img\n          *ngIf=\"\n            (policyForm?.CCFailEmail?.length == 0 &&\n              policyForm?.CCEmail?.length == 0) ||\n            activeSelector === 'ccEmail' ||\n            activeSelector === 'ccFail'\n          \"\n          [src]=\"ASSETS.oversight\"\n          alt=\"im\"\n        />\n\n        <svg\n          *ngIf=\"\n            (policyForm?.CCFailEmail?.length > 0 ||\n              policyForm?.CCEmail?.length > 0) &&\n            activeSelector !== 'ccEmail' &&\n            activeSelector !== 'ccFail'\n          \"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">Oversight</label>\n          <div\n            class=\"select\"\n            *ngIf=\"\n              policyForm?.CCEmail?.length == 0 &&\n              policyForm?.CCGroupEmail.length == 0\n            \"\n          >\n            <input\n              type=\"text\"\n              (click)=\"activateSelector('ccEmail', true)\"\n              placeholder=\"Who should have oversight of this policy?\"\n              readonly\n            />\n          </div>\n          <div\n            class=\"selected\"\n            *ngIf=\"\n              policyForm?.CCEmail?.length > 0 ||\n              policyForm?.CCGroupEmail.length > 0\n            \"\n          >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"!groupEnabled\"\n            >\n              <ng-container\n                *ngFor=\"let ccEmail of policyForm?.CCEmail?.slice(0, 1)\"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"remove('ccEmail', ccEmail)\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"ccEmail.employee_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ ccEmail.employee_name }}</span\n                >\n              </ng-container>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                appPopover\n                (click)=\"ccEmailPopover.popover()\"\n                placement=\"left\"\n                *ngIf=\"policyForm?.CCEmail?.length > 1\"\n              >\n                +{{ policyForm?.CCEmail?.slice(1).length }}\n              </button>\n            </div>\n\n            <div *ngIf=\"groupEnabled\" class=\"chip-container\">\n              <div\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                *ngIf=\"groupEnabled && policyForm?.CCEmail?.length > 0\"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"remove('ccEmail', policyForm?.CCEmail[0])\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"policyForm?.CCEmail[0].employee_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ policyForm?.CCEmail[0].employee_name }}</span\n                >\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                  appPopover\n                  (click)=\"overseerPopover.popover()\"\n                  placement=\"right\"\n                  *ngIf=\"policyForm?.CCEmail?.length > 1\"\n                >\n                  +{{ policyForm?.CCEmail?.length - 1 }}\n                </button>\n              </div>\n\n              <div\n                class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\n                *ngIf=\"\n                  policyForm?.CCEmail.length > 0 &&\n                  policyForm?.CCGroupEmail?.length > 0\n                \"\n              >\n                &\n              </div>\n\n              <div\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                *ngIf=\"policyForm?.CCGroupEmail.length > 0\"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"remove('ccGroupEmail', policyForm?.CCGroupEmail[0])\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"policyForm?.CCGroupEmail[0]?.group_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ policyForm?.CCGroupEmail[0]?.group_name }}</span\n                >\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover\n                  (click)=\"overseerGroup.popover()\"\n                  placement=\"right\"\n                  *ngIf=\"policyForm?.CCGroupEmail?.length > 1\"\n                >\n                  +{{ policyForm?.CCGroupEmail?.length - 1 }}\n                </button>\n              </div>\n            </div>\n\n            <button\n              class=\"edit\"\n              type=\"button\"\n              (click)=\"activateSelector('ccEmail', true)\"\n            >\n              <i class=\"icons\">&#xe9ba;</i> Edit\n            </button>\n          </div>\n\n          <div\n            class=\"select\"\n            *ngIf=\"\n              policyForm?.CCFailEmail?.length == 0 &&\n              policyForm?.CCFailEmailGroup?.length == 0\n            \"\n          >\n            <input\n              type=\"text\"\n              (click)=\"activateSelector('ccFail', true)\"\n              placeholder=\"Who should be notified if the policy is not attested on time?\"\n              readonly\n            />\n          </div>\n\n          <div\n            class=\"selected\"\n            *ngIf=\"\n              policyForm?.CCFailEmail?.length > 0 ||\n              policyForm?.CCFailEmailGroup?.length > 0\n            \"\n          >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"!groupEnabled\"\n            >\n              <ng-container\n                *ngFor=\"let ccFail of policyForm?.CCFailEmail?.slice(0, 1)\"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"remove('ccFail', ccFail)\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"ccFail.employee_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ ccFail.employee_name }}</span\n                >\n              </ng-container>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                appPopover\n                (click)=\"ccFailPopover.popover()\"\n                placement=\"right\"\n                *ngIf=\"policyForm?.CCFailEmail?.length > 1\"\n              >\n                +{{ policyForm?.CCFailEmail?.slice(1).length }}\n              </button>\n            </div>\n\n            <div *ngIf=\"groupEnabled\" class=\"chip-container\">\n              <div\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                *ngIf=\"groupEnabled && policyForm?.CCFailEmail.length > 0\"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"remove('ccFail', policyForm?.CCFailEmail[0])\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"policyForm?.CCFailEmail[0]?.employee_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ policyForm?.CCFailEmail[0]?.employee_name }}</span\n                >\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                  appPopover\n                  (click)=\"overseerFailPopover.popover()\"\n                  placement=\"right\"\n                  *ngIf=\"policyForm?.CCFailEmail?.length > 1\"\n                >\n                  +{{ policyForm?.CCFailEmail?.length - 1 }}\n                </button>\n              </div>\n\n              <div\n                class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\"\n                *ngIf=\"\n                  policyForm?.CCFailEmail?.length > 0 &&\n                  policyForm?.CCFailEmailGroup?.length > 0\n                \"\n              >\n                &\n              </div>\n\n              <div\n                class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                *ngIf=\"policyForm?.CCFailEmailGroup?.length > 0\"\n              >\n                <i\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  (click)=\"\n                    remove('ccGroupFailEmail', policyForm?.CCFailEmailGroup[0])\n                  \"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"policyForm?.CCFailEmailGroup[0]?.group_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ policyForm?.CCFailEmailGroup[0]?.group_name }}</span\n                >\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover\n                  (click)=\"overseerFailGroup.popover()\"\n                  placement=\"right\"\n                  *ngIf=\"policyForm?.CCFailEmailGroup?.length > 1\"\n                >\n                  +{{ policyForm?.CCFailEmailGroup?.length - 1 }}\n                </button>\n              </div>\n            </div>\n            <button\n              class=\"edit\"\n              type=\"button\"\n              (click)=\"activateSelector('ccFail', true)\"\n            >\n              <i class=\"icons\">&#xe9ba;</i> Edit\n            </button>\n          </div>\n          <app-popover #ccEmailPopover [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let ccEmail of policyForm?.CCEmail | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i class=\"icons\" (click)=\"remove('ccEmail', ccEmail)\"\n                        >&#xe90d;</i\n                      >\n                      {{ ccEmail.employee_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n          <app-popover #ccFailPopover [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let ccFail of policyForm?.CCFailEmail | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i class=\"icons\" (click)=\"remove('ccFail', ccFail)\"\n                        >&#xe90d;</i\n                      >\n                      {{ ccFail.employee_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n        </div>\n      </div>\n    </div>\n\n    <!-- Related Documents -->\n    <div\n      class=\"form-group-row\"\n      [appScrollInView]=\"scrollToBottom\"\n      *ngIf=\"policyForm.addAssociatedDocuments\"\n      [class.disabled]=\"activeSelector && activeSelector !== 'name'\"\n    >\n      <div class=\"left\">\n        <img\n          *ngIf=\"policyForm.associatedDocuments.formatFiles?.length == 0\"\n          [src]=\"ASSETS.format_evidence\"\n          alt=\"im\"\n        />\n\n        <svg\n          *ngIf=\"policyForm.associatedDocuments.formatFiles?.length > 0\"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">RELATED DOCUMENTS</label>\n          <app-format-and-evidence\n            (updateFiles)=\"saveSelectedList('associatedDocuments', $event)\"\n            [mode]=\"'policy'\"\n            [organization_id]=\"organization_id\"\n            [formatEvidanceData]=\"policyForm?.associatedDocuments\"\n          ></app-format-and-evidence>\n        </div>\n      </div>\n    </div>\n\n    <!-- Link Programs & Responsibilities -->\n    <div\n      *ngIf=\"policyForm?.addLinkProgram\"\n      [appScrollInView]=\"scrollToBottom\"\n      class=\"form-group-row\"\n      [class.active]=\"activeSelector === 'linkProgram'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'linkProgram' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div\n        class=\"left\"\n        [class.checked]=\"\n          allProgamSelected?.length > 0\n        \"\n      >\n        <img\n          *ngIf=\"allProgamSelected?.length == 0\"\n          [src]=\"ASSETS.link_items\"\n          alt=\"\"\n        />\n\n        <svg\n          *ngIf=\"allProgamSelected?.length > 0\"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\"\n            >LINK PROGRAMS</label\n          >\n          <div\n            *ngIf=\"allProgamSelected?.length === 0\"\n            (click)=\"activateSelector('linkProgram', true)\"\n            class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\n            [class.disabled]=\"false\"\n          >\n            <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\n              Select Programs that are associated with this policy.\n            </div>\n          </div>\n\n          <div\n            class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n            *ngIf=\"allProgamSelected?.length > 0\"\n          >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <i\n                (click)=\"\n                  remove('linkProgram', allProgamSelected[0])\n                \"\n                class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                >&#xe9ae;</i\n              >\n              <span\n                class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"allProgamSelected[0]?.name\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{ allProgamSelected[0]?.name }}</span\n              >\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                *ngIf=\"allProgamSelected?.length > 1\"\n                type=\"button\"\n                appPopover\n                placement=\"left\"\n                (click)=\"programResponsibilityPopover.popover()\"  \n              >\n                +{{ allProgamSelected?.length - 1 }}\n              </button>\n            </div>\n            <app-popover\n              #programResponsibilityPopover\n              [dontCloseonClick]=\"true\"\n            >\n              <div class=\"wf-action-list\">\n                <ul class=\"action-item\">\n                  <li *ngFor=\"let data of allProgamSelected | slice : 1\">\n                    <div class=\"avatar-card\">\n                      <span\n                        class=\"value\"\n                        [appTooltip]=\"\n                          data?.name\n                        \"\n                        placement=\"bottom-left\"\n                        delay=\"0\"\n                        type=\"black\"\n                        [tooltipMandatory]=\"false\"\n                      >\n                        <i (click)=\"remove('linkProgram', data)\" class=\"icons\">&#xe90d;</i>\n                        {{ data?.name }}\n                      </span>\n                    </div>\n                  </li>\n                </ul>\n              </div>\n            </app-popover>\n            <button\n              class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n              (click)=\"activateSelector('linkProgram', true)\"\n            >\n              <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n            </button>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <!-- Link Assessment -->\n    <div\n      *ngIf=\"policyForm.addLinkAssessment\"\n      [appScrollInView]=\"scrollToBottom\"\n      class=\"form-group-row\"\n      [class.active]=\"activeSelector === 'isAssessment'\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'isAssessment' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div class=\"left\" [class.checked]=\"policyForm?.assessment?.length\">\n        <img\n          *ngIf=\"!policyForm?.assessment?.length\"\n          [src]=\"ASSETS.assessments\"\n          alt=\"\"\n        />\n\n        <svg\n          *ngIf=\"policyForm?.assessment?.length\"\n          class=\"checkIcon\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">LINK ASSESSMENTS</label>\n          <div\n            *ngIf=\"policyForm?.assessment?.length === 0\"\n            (click)=\"activateSelector('isAssessment', true)\"\n            class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\n            [class.disabled]=\"false\"\n          >\n            <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\n              Select assessments that are associated with this<br />policy.\n            </div>\n          </div>\n\n          <div\n            *ngIf=\"policyForm?.assessment?.length > 0\"\n            class=\"selectBoxSuccess vx-pl-2 vx-pr-3 vx-d-flex vx-align-center vx-justify-between\"\n          >\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                >&#xe9ae;</i\n              >\n              <span\n                class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"\n                  policyForm.assessment[0]?.assessmentDetails?.assessment_name\n                \"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n                >{{\n                  policyForm.assessment[0]?.assessmentDetails?.assessment_name\n                }}</span\n              >\n            </div>\n            <app-popover\n              #programResponsibilityPopover\n              [dontCloseonClick]=\"true\"\n            >\n              <div class=\"wf-action-list\">\n                <ul class=\"action-item\">\n                  <li\n                    *ngFor=\"let assessment of policyForm.assessment | slice : 1\"\n                  >\n                    <div class=\"avatar-card\">\n                      <span\n                        class=\"value\"\n                        [appTooltip]=\"\n                          assessment?.assessmentDetails?.assessment_name\n                        \"\n                        placement=\"bottom-left\"\n                        delay=\"0\"\n                        type=\"black\"\n                        [tooltipMandatory]=\"false\"\n                      >\n                        <i class=\"icons\">&#xe90d;</i>\n                        {{ assessment?.assessmentDetails?.assessment_name }}\n                      </span>\n                    </div>\n                  </li>\n                </ul>\n              </div>\n            </app-popover>\n            <button\n              (click)=\"activateSelector('isAssessment', true)\"\n              class=\"editBtn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\n            >\n              <i class=\"icons vx-mr-1\">&#xe90c;</i> EDIT\n            </button>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <!-- Link Related Polices -->\n\n    <div\n      *ngIf=\"policyForm.addLinkPolicies\"\n      [appScrollInView]=\"scrollToBottom\"\n      class=\"form-group-row\"\n      [class.active]=\"activeSelector === CONSTANTS.LINK_POLICY\"\n      [class.disabled]=\"\n        activeSelector &&\n        activeSelector !== 'isLinkedPolices' &&\n        sideSelectorElements.includes(activeSelector)\n      \"\n    >\n      <div class=\"left\" [class.checked]=\"SelectedListOfPolicies\">\n        <img\n          *ngIf=\"!SelectedListOfPolicies?.length\"\n          [src]=\"LINKS.linkedPolicyImage\"\n          alt=\"\"\n        />\n\n        <svg\n          *ngIf=\"SelectedListOfPolicies?.length\"\n          class=\"checkIcon\"\n          [xmlns]=\"LINKS.checked\"\n          viewBox=\"0 0 52 52\"\n        >\n          <circle\n            class=\"checkIcon__circle\"\n            cx=\"26\"\n            cy=\"26\"\n            r=\"25\"\n            fill=\"none\"\n          />\n          <path\n            class=\"checkIcon__check\"\n            fill=\"none\"\n            d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n          />\n        </svg>\n      </div>\n      <div class=\"right\">\n        <div class=\"vx-form-group\">\n          <label class=\"vx-control-panel\">LINK RELATED POLICIES</label>\n          <div\n            *ngIf=\"SelectedListOfPolicies?.length === 0\"\n            (click)=\"activateSelector('isLinkedPolices', true)\"\n            class=\"selectBoxEnable vx-pl-3 vx-pr-3 vx-d-flex vx-align-center\"\n            [class.disabled]=\"false\"\n          >\n            <div class=\"selectBoxPlacehoder vx-fs-13 vx-paragraph-txt vx-lh-4\">\n              Select policies that are associated with this policy.\n            </div>\n          </div>\n\n          <div class=\"selected\" *ngIf=\"SelectedListOfPolicies?.length > 0\">\n            <div\n              class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n            >\n              <ng-container\n                *ngFor=\"let policy of SelectedListOfPolicies.slice(0, 1)\"\n              >\n                <i\n                  (click)=\"remove(CONSTANTS.LINK_POLICY, policy?.contract_id)\"\n                  class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n                  >&#xe9ae;</i\n                >\n                <span\n                  class=\"chipName vx-fs-11 vx-label-txt\"\n                  [appTooltip]=\"policy?.contract_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                  >{{ policy?.contract_name }}</span\n                >\n              </ng-container>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                *ngIf=\"SelectedListOfPolicies?.length > 1\"\n                type=\"button\"\n                appPopover\n                (click)=\"relatedPolicy.popover()\"\n                placement=\"left\"\n              >\n                +{{ SelectedListOfPolicies?.slice(1).length }}\n              </button>\n            </div>\n            <button\n              *ngIf=\"activeSelector !== CONSTANTS.LINK_POLICY\"\n              class=\"edit\"\n              type=\"button\"\n              (click)=\"activateSelector(CONSTANTS.LINK_POLICY, true)\"\n            >\n              <i class=\"icons\">&#xe9ba;</i> Edit\n            </button>\n          </div>\n          <app-popover #relatedPolicy [dontCloseonClick]=\"true\">\n            <div class=\"wf-action-list\">\n              <ul class=\"action-item\">\n                <li\n                  *ngFor=\"\n                    let policy of SelectedListOfPolicies | slice : 1;\n                    let j = index\n                  \"\n                >\n                  <div class=\"avatar-card\">\n                    <span class=\"value\">\n                      <i\n                        class=\"icons\"\n                        (click)=\"\n                          remove(CONSTANTS.LINK_POLICY, policy?.contract_id)\n                        \"\n                        >&#xe90d;</i\n                      >\n                      {{ policy?.contract_name }}\n                    </span>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </app-popover>\n          <app-cs-switch\n            [(ngValue)]=\"policyForm.isPortalDisplayEnabled\"\n            [class.disabled]=\"policyForm?.LinkedPolicies == 0\"\n            class=\"who-toggle\"\n            >DISPLAY ON THE POLICY PORTAL\n            <i\n              class=\"icons\"\n              [appTooltip]=\"CONSTANTS.LINK_POLICY_HELP_TEXT\"\n              placement=\"bottom-right\"\n              type=\"white\"\n              delay=\"0\"\n              [tooltipMandatory]=\"true\"\n              >&#xe91f;</i\n            ></app-cs-switch\n          >\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <app-checkbox-list\n    [config]=\"categoryConfig\"\n    [twoColumn]=\"false\"\n    [itemsList]=\"categoryList\"\n    [selectedItems]=\"policyForm.selectedCategories\"\n    [identifierKey]=\"'_id'\"\n    [displayKey]=\"'item_name'\"\n    [tooltipKey]=\"'item_name'\"\n    *ngIf=\"activeSelector === 'category'\"\n    (saveList)=\"saveSelectedList('category', $event)\"\n    (closeList)=\"disableSelector()\"\n    [loaded]=\"!categoriesListLoaded\"\n  >\n  </app-checkbox-list>\n  <!-- <app-checkbox-list [config]=\"approvalWorkflowConfig\" [twoColumn]=\"true\"\n  [itemsList]=\"\"\n  [selectedItems]=\"policyForm.issueCCUsers\" [identifierKey]=\"'employee_email'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\n  *ngIf=\"activeSelector==='ISSUE_CC'\" (saveList)=\"selectorAction($event,'ISSUE_CC')\"\n  (closeList)=\"fieldDeselector('ISSUE_CC')\">\n</app-checkbox-list> -->\n\n  <app-responsibility-centers-list\n    *ngIf=\"activeSelector === 'rc'\"\n    [responsibilityCentersList]=\"rcList\"\n    [selectedResponsibilityCenters]=\"policyForm.selectedRCs\"\n    [rcIdKey]=\"'item_id'\"\n    (saveSelectedList)=\"saveSelectedList('rc', $event)\"\n    (closeRcList)=\"disableSelector()\"\n    [loaded]=\"rcListLoaded\"\n  >\n  </app-responsibility-centers-list>\n\n  <app-link-related-policies\n    *ngIf=\"activeSelector === CONSTANTS.LINK_POLICY\"\n    [policyId]=\"policyId\"\n    [mode]=\"mode\"\n    [selectedPolicies]=\"SelectedListOfPolicies\"\n    (closeLinkPolicyList)=\"disableSelector()\"\n    (selectedList)=\"saveSelectedList(CONSTANTS.LINK_POLICY, $event)\"\n  ></app-link-related-policies>\n\n  <app-users-radio-list\n    *ngIf=\"activeSelector === 'reviewer'\"\n    [itemEmailKey]=\"'member_email'\"\n    [usersList]=\"allReviewers\"\n    [headerText]=\"'Select a Reviewer'\"\n    [selectedUsers]=\"policyForm.selectedReviewers\"\n    [userIdKey]=\"'member_id'\"\n    [itemNameKey]=\"'member_name'\"\n    (saveSelectedList)=\"saveSelectedList('reviewer', $event)\"\n    (closeUsersList)=\"disableSelector()\"\n  >\n  </app-users-radio-list>\n\n  <app-owner-list\n    *ngIf=\"activeSelector === 'ccEmail' && !groupEnabled\"\n    [usersList]=\"overseersList\"\n    [singularText]=\"'User selected'\"\n    [pluralText]=\"'Users selected'\"\n    [selectedUsers]=\"policyForm.CCEmail\"\n    [userIdKey]=\"'employee_id'\"\n    [itemNameKey]=\"'employee_name'\"\n    (saveSelectedList)=\"saveSelectedList('ccEmail', $event)\"\n    (closeUsersList)=\"disableSelector()\"\n  >\n  </app-owner-list>\n\n  <user-group-list\n    *ngIf=\"activeSelector === 'ccEmail' && groupEnabled\"\n    [groupEnabled]=\"true\"\n    [userlist]=\"overseersList\"\n    [groupList]=\"overseerGroupsList\"\n    [selectedUsers]=\"policyForm.CCEmail\"\n    [selectedGroups]=\"policyForm.CCGroupEmail\"\n    (save)=\"saveSelectedList('ccEmail', $event)\"\n    (cancel)=\"disableSelector()\"\n    [featureflag]=\"groupEnabled\"\n  >\n  </user-group-list>\n\n  <app-owner-list\n    *ngIf=\"activeSelector === 'ccFail' && !groupEnabled\"\n    [usersList]=\"overseersList\"\n    [singularText]=\"'User selected'\"\n    [pluralText]=\"'Users selected'\"\n    [selectedUsers]=\"policyForm.CCFailEmail\"\n    [userIdKey]=\"'employee_id'\"\n    [itemNameKey]=\"'employee_name'\"\n    (saveSelectedList)=\"saveSelectedList('ccFail', $event)\"\n    (closeUsersList)=\"disableSelector()\"\n  >\n  </app-owner-list>\n\n  <user-group-list\n    *ngIf=\"activeSelector === 'ccFail' && groupEnabled\"\n    [groupEnabled]=\"true\"\n    [userlist]=\"overseersList\"\n    [groupList]=\"overseerGroupsList\"\n    [selectedUsers]=\"policyForm.CCFailEmail\"\n    [selectedGroups]=\"policyForm.CCFailEmailGroup\"\n    (save)=\"saveSelectedList('ccFail', $event)\"\n    (cancel)=\"disableSelector()\"\n    [featureflag]=\"groupEnabled\"\n  >\n  </user-group-list>\n\n  <app-group-users-list\n    *ngIf=\"activeSelector === 'assignees' && !groupEnabled\"\n    [usersList]=\"assigneesList\"\n    [groupsList]=\"overseerGroupsList\"\n    [selectedUsers]=\"policyForm.selectedAssignees\"\n    [userIdKey]=\"'my_member_id'\"\n    (saveSelectedList)=\"saveSelectedList('assignees', $event)\"\n    (closeUsersList)=\"disableSelector()\"\n  >\n  </app-group-users-list>\n\n  <user-group-list\n    *ngIf=\"activeSelector === 'assignees' && groupEnabled\"\n    [groupEnabled]=\"true\"\n    [userlist]=\"ownerlist\"\n    [groupList]=\"overseerGroupsList\"\n    (save)=\"saveSelectedList('assignees', $event)\"\n    (cancel)=\"disableSelector()\"\n    [selectedGroups]=\"policyForm.selectedGroupAssignee\"\n    [selectedUsers]=\"policyForm.selectedAssignees\"\n    [featureflag]=\"groupEnabled\"\n  >\n  </user-group-list>\n\n  <app-owner-list\n    *ngIf=\"activeSelector === 'approvers' && false\"\n    [listHeading]=\"'Select Approvers'\"\n    [singularText]=\"'User selected'\"\n    [pluralText]=\"'Users selected'\"\n    [usersList]=\"allApprovers\"\n    [showWorkflow]=\"true\"\n    [selectedUsers]=\"\n      addMoreLevels\n        ? []\n        : policyForm.selectedApprovers[approversListIndex].approvers\n    \"\n    [userIdKey]=\"'member_id'\"\n    [itemEmailKey]=\"'member_email'\"\n    [itemNameKey]=\"'member_name'\"\n    (saveSelectedList)=\"saveSelectedList('approvers', $event)\"\n    (closeUsersList)=\"disableSelector()\"\n    [mode]=\"mode\"\n    [reviewerWorkflowType]=\"workflowType\"\n    (reviewerWorkflowTypeChange)=\"reviewerTypeChange($event)\"\n    [workflowList]=\"workflowList\"\n    [workflowText]=\"'Approval Workflow'\"\n  >\n  </app-owner-list>\n\n  <app-frequency-container\n    *ngIf=\"activeSelector === 'frequency'\"\n    [mode]=\"'policy'\"\n    [frequencyDetails]=\"frequencyDetails\"\n    (selectedFrequency)=\"frequencyData($event)\"\n    [feature]=\"feature\"\n    [pageType]=\"'policy'\"\n    (closeFrequency)=\"disableSelector()\"\n  ></app-frequency-container>\n\n  <app-frequency-container\n    *ngIf=\"activeSelector === 'reviewerFrequency'\"\n    [mode]=\"'reviewerFrequency'\"\n    [frequencyDetails]=\"reviewerFrequencyDetails\"\n    (selectedFrequency)=\"reviewerFrequencyData($event)\"\n    [feature]=\"feature\"\n    [pageType]=\"'policy'\"\n    (closeFrequency)=\"disableSelector()\"\n  ></app-frequency-container>\n\n  <vc-link-program\n    *ngIf=\"activeSelector === 'linkProgram' && false\"\n    (close)=\"disableSelector()\"\n    [policy]=\"policyForm\"\n    [selectedProgram]=\"policyForm?.programSelectedValues\"\n    [mode]=\"mode\"\n    [selectedLinkProgram]=\"selectedLinkProgram\"\n    (changeTab)=\"changeTab('linkedPrograms')\"\n    (updatedProgramDetails)=\"updatedProgramDetails($event)\"\n  >\n  </vc-link-program>\n\n  <!-- Program List Popup -->\n<app-list-container\n*ngIf=\"activeSelector === 'linkProgram'\"\n(close)=\"activeDeselector()\"\n>\n  <app-program-list\n    body\n    (itemsSelectedChange)=\"onItemsSelectedChange($event)\"\n    [selectedItems]=\"selectedPrograms\"\n    [url]=\"programListUrl\"\n  ></app-program-list>\n  <div class=\"vx-d-flex vx-align-center vx-justify-between vx-w-100\" footer>\n    <div  class=\"left-side vx-fs-12 vx-d-flex\">\n      <ng-container *ngIf=\"allProgamSelected.length > 0\">\n        <button class=\"countPolicyBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"> {{ allProgamSelected.length }}</button> \n        <span class=\"selected-text\"> Program {{allProgamSelected.length > 1 ? 'Categories' : 'Category'}} Selected</span>\n      </ng-container>\n    </div>\n    <div class=\"right-side vx-d-flex\">\n      <button class=\"cancelBtn\" (click)=\"disableSelector()\">Cancel</button>\n      <button class=\"nextBtn\" (click)=\"disableSelector(); selectCategory()\">\n        Next <i class=\"icons\">&#xe91e;</i>\n      </button>\n    </div>\n  </div>\n</app-list-container>\n\n  <app-checkpoints-policy-container\n    (closeCheckPoint)=\"disableSelector()\"\n    [checkpointData]=\"policyForm?.checkpointDetails\"\n    [requiredPoint]=\"policyForm?.passingMarks\"\n    *ngIf=\"activeSelector === 'checkpoints'\"\n    (saveCheckPoint)=\"saveSelectedList('checkpoints', $event)\"\n  ></app-checkpoints-policy-container>\n  <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n  <app-approval-workflow\n    *ngIf=\"enableApprovalWorkflow\"\n    [selectedCategory]=\"policyForm?.selectedCategories\"\n    [approverWorkFlowList]=\"approverWorkFlowList\"\n    [allApprovers]=\"allApprovers\"\n    (listCancelClicked)=\"listCancelClicked($event)\"\n    (selectedWorkflowNext)=\"selectedApprovalWorkflow($event)\"\n    (saveApprovalWorkflow)=\"approvalWorkflowAPICall($event)\"\n    [editApprovalWorkflow]=\"editApprovalWorkflow\"\n    [createApprovalClick]=\"createApprovalClick\"\n    (closeCreateClicked)=\"closeClickedCreateForm()\"\n    [editWorkflowLevel]=\"editWorkflowLevel\"\n  ></app-approval-workflow>\n  <!-- <app-select-approvers></app-select-approvers> -->\n\n  <app-policy-access\n    *ngIf=\"activeSelector === 'policyAccess'\"\n    [policyAccessType]=\"policyForm?.policy_access_type\"\n    (close)=\"disableSelector()\"\n    [orgUsersList]=\"usersList\"\n    [usersAccessList]=\"usersAccessList\"\n    [groupList]=\"overseerGroupsList\"\n    [groupsAccessList]=\"groupsAccessList\"\n    [selectedUsers]=\"policyForm?.policy_access_owners\"\n    [selectedGroups]=\"policyForm?.policy_access_groups\"\n    [disabledIds]=\"usersAccessListIds\"\n    [disabledGroupIds]=\"groupsAccessListIds\"\n    [futureUsersWillSelect]=\"policyForm?.availableOnPortal\"\n    (saveCheckPoint)=\"saveSelectedList('policyAccess', $event)\"\n    (setPolicyAccessType)=\"policyForm.policy_access_type = $event\"\n  >\n  </app-policy-access>\n</ng-container>\n<ng-container *ngIf=\"showCreateDocuments\">\n  <!-- <app-create-documents *ngIf=\"showCreateDocuments\"\n   [organization_id]=\"organization_id\"\n   [member_obj_id]=\"member_obj_id\"\n   [userInfo]=\"userInfo\"\n   [policyId]=\"policyId\"\n   [policyName]=\"policyForm.policyName\"\n   (disconnectRefresh)=\"disconnectRefresh.emit(false)\"\n   (editPolicy)=\"editPolicyFromDocuments()\"\n   ></app-create-documents> -->\n  <lib-document-section\n    *ngIf=\"showCreateDocuments\"\n    [templateView]=\"templateView\"\n    [organization_id]=\"organization_id\"\n    [member_obj_id]=\"member_obj_id\"\n    [userInfo]=\"userInfo\"\n    [policyId]=\"policyId\"\n    [feature]=\"feature\"\n    [templateUrl]=\"templateUrl\"\n    [policyName]=\"policyForm.policyName\"\n    (disconnectRefresh)=\"disconnectRefresh.emit(false)\"\n    (editPolicy)=\"editPolicyFromDocuments()\"\n    (openTemplate)=\"templateView = true\"\n  ></lib-document-section>\n</ng-container>\n\n<app-assessment-list\n  *ngIf=\"activeSelector === 'isAssessment'\"\n  [program_ids]=\"''\"\n  [isEdit]=\"policyForm?.assessment?.length\"\n  (cancelAssessment)=\"saveSelectedList('isAssessment', false)\"\n  [selectedAssessment]=\"policyForm?.assessment[0]\"\n  [mode]=\"'policy'\"\n  (onAssessmentSelect)=\"\n    onAssessmentSelect($event); saveSelectedList('isAssessment', false)\n  \"\n></app-assessment-list>\n\n<app-owner-list\n  *ngIf=\"activeSelector === 'approvers' && false\"\n  [listHeading]=\"'Select Approvers'\"\n  [singularText]=\"'User selected'\"\n  [pluralText]=\"'Users selected'\"\n  [usersList]=\"allApprovers\"\n  [showWorkflow]=\"true\"\n  [selectedUsers]=\"\n    addMoreLevels\n      ? []\n      : policyForm.selectedApprovers[approversListIndex].approvers\n  \"\n  [userIdKey]=\"'member_id'\"\n  [itemEmailKey]=\"'member_email'\"\n  [itemNameKey]=\"'member_name'\"\n  (saveSelectedList)=\"saveSelectedList('approvers', $event)\"\n  (closeUsersList)=\"disableSelector()\"\n  [mode]=\"mode\"\n  [reviewerWorkflowType]=\"workflowType\"\n  (reviewerWorkflowTypeChange)=\"reviewerTypeChange($event)\"\n  [workflowList]=\"workflowList\"\n  [workflowText]=\"'Approval Workflow'\"\n>\n</app-owner-list>\n\n<app-owner-list\n  *ngIf=\"activeSelector === 'owners'\"\n  [listHeading]=\"'Select Owner(s)'\"\n  [singularText]=\"'User selected'\"\n  [pluralText]=\"'Users selected'\"\n  [usersList]=\"allApprovers\"\n  [showWorkflow]=\"false\"\n  [userIdKey]=\"'member_id'\"\n  [itemEmailKey]=\"'member_email'\"\n  [itemNameKey]=\"'member_name'\"\n  (saveSelectedList)=\"saveSelectedList('owners', $event)\"\n  (closeUsersList)=\"disableSelector()\"\n  [mode]=\"mode\"\n  [selectedUsers]=\"policyForm?.policy_owners ?? []\"\n>\n</app-owner-list>\n\n<app-select-template-list\n  *ngIf=\"templateView\"\n  [selectedCategoryId]=\"policyForm?.selectedCategories\"\n  [feature]=\"feature\"\n  (onTemplateSelect)=\"onTemplateSelect($event)\"\n></app-select-template-list>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PopoverHoverService {\n  positionX!: number;\n  positionY!: number;\n  popoverHeight: any;\n  popoverWidth: any;\n  elementPosition: any;\n  elementDirection: any;\n  constructor() { }\n}\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { PopoverHoverService } from './popover-hover.service';\n\n@Component({\n  selector: 'popover-hover',\n  templateUrl: './popover-hover.component.html',\n  styleUrls: ['./popover-hover.component.less']\n})\nexport class PopoverHoverComponent implements OnInit {\n\n  popoverContainer = false;\n  @ViewChild('popoverRatio') popoverRatio!: ElementRef;\n  @ViewChild('popoverContent') popoverContent!: ElementRef;\n  constructor(public popoverService: PopoverHoverService) { }\n  showPopover = false;\n  leftValue: any;\n  topValue: any;\n  popoverHeight: any;\n  popoverWidth: any;\n  positionX!: number;\n  positionY!: number;\n  popoverPosition: string | any;\n  ngOnInit(): void { }\n  popover() {\n    this.popoverContainer = false;\n    this.popoverContainer = true;\n    setTimeout(() => {\n      this.getPosition();\n      this.showPopover = true;\n    }, 10);\n    return false;\n  }\n  closePopover() {\n    this.popoverContainer = false;\n    this.showPopover = false;\n  }\n  clickedPopover() {\n    this.getPosition();\n  }\n  getPosition() {\n    const elementPosition = this.popoverService?.elementPosition;\n    this.popoverHeight = this.popoverRatio?.nativeElement?.offsetHeight;\n    this.popoverWidth = this.popoverRatio?.nativeElement?.offsetWidth;\n    if (this.popoverService.elementDirection === 'left') {\n      this.leftValue = elementPosition.left;\n      if (elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight - 220) {\n        this.topValue = elementPosition.top - this.popoverHeight;\n        this.popoverPosition = 'top';\n      } else {\n        this.topValue = elementPosition.top + elementPosition.height;\n        this.popoverPosition = 'bottom';\n      }\n    }\n    if (this.popoverService.elementDirection === 'right') {\n      this.leftValue = elementPosition.left + elementPosition.width - this.popoverWidth;\n      if (elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight - 220) {\n        this.topValue = elementPosition.top - this.popoverHeight;\n        this.popoverPosition = 'top';\n      } else {\n        this.topValue = elementPosition.top + elementPosition.height;\n        this.popoverPosition = 'bottom';\n      }\n    }\n    if (this.popoverService.elementDirection === 'top') {\n      this.leftValue = elementPosition.left + elementPosition.width;\n      if (elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight - 220) {\n        this.topValue = elementPosition.top - this.popoverHeight;\n        this.popoverPosition = 'top';\n      } else {\n        this.topValue = elementPosition.top - this.popoverHeight;\n        this.popoverPosition = 'bottom';\n      }\n    }\n    if (this.popoverService.elementDirection === 'bottom') {\n      this.leftValue = elementPosition.left + elementPosition.width;\n      if (elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight - 220) {\n        this.topValue = elementPosition.top - this.popoverHeight;\n        this.popoverPosition = 'top';\n      } else {\n        this.topValue = elementPosition.top + elementPosition.height;\n        this.popoverPosition = 'bottom';\n      }\n    }\n    if (this.popoverService.elementDirection === 'self-position') {\n      this.leftValue = elementPosition.left + elementPosition.width / 2 - this.popoverWidth / 2;\n      this.topValue = elementPosition.top - 15;\n    }\n    if (this.popoverService.elementDirection === 'top-center') {\n      this.leftValue = elementPosition.left + elementPosition.width / 2 - this.popoverWidth / 2;\n      if (elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight) {\n        this.topValue = elementPosition.top + elementPosition.height;\n      } else {\n        this.topValue = elementPosition.top - this.popoverHeight;\n      }\n    }\n    if (this.popoverService.elementDirection === 'center') {\n      this.leftValue = elementPosition.left + elementPosition.width / 2 - this.popoverWidth / 2;\n      this.topValue = elementPosition.top + elementPosition.height;\n    }\n    this.positionX = this.leftValue;\n    this.positionY = this.topValue;\n  }\n}\n","<!-- <p>popover-hover works!</p> -->\n<div class=\"popover-hover-action\" [class.top]=\"popoverPosition == 'top'\" [class.bottom]=\"popoverPosition == 'bottom'\" (mouseleave)=\"closePopover()\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\n  <div #popoverContent>\n    <ng-content></ng-content>\n  </div>\n</div>\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { PopoverHoverService } from './popover-hover.service';\n\n@Directive({\n  selector: '[libPopoverHover]'\n})\nexport class PopoverHoverDirective {\n  @Input() placement!: string;\n  leftValue: any;\n  topValue: any;\n  constructor(private elRef: ElementRef, private popoverService: PopoverHoverService) { }\n\n  @HostListener('mouseenter') onMouseEnter() {\n    this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\n    this.popoverService.elementDirection = this.placement;\n  }\n  @HostListener('mouseover') onMouseOver() {\n    this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();\n    this.popoverService.elementDirection = this.placement;\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\nimport { LINKS } from '../workflow/shared/constants/cdn-link.constant';\nimport { ReportACaseService } from '../report-a-case/services/report-a-case.service';\nimport { ASSETS } from '../constants/assets.constants';\nimport { COLLABORATOR_TOOLTIP } from '../workflow-program/constants';\n\n@Component({\n  selector: 'app-more-option',\n  templateUrl: './more-option.component.html',\n  styleUrls: ['./more-option.component.less'],\n})\nexport class MoreOptionComponent implements OnInit, OnChanges {\n  ASSETS = ASSETS;\n  @Input() currentWorkflow = '';\n  @Input() openedFrom = '';\n  @Input() isEditMode = false;\n  @Output() selectedOption = new EventEmitter();\n  @Input() isRCSelected = false;\n  @Input() isProgramSelected = false;\n  @Input() allowedFeature: any;\n  orgDetails: any;\n  @Input('orgDetailsData') set getOrganizationDetails(details: any) {\n    this.orgDetails = details ?? '{}';\n    if (details && Object.keys(details)?.length) {\n      this.updateProgramMoreOptions();\n    }\n  }\n  @Input() isAttributesAvailable: boolean = true;\n  featureflagrole: boolean = false;\n  programSimplifyFlag: boolean = false;\n  ff_rc_listing: boolean = false;\n  permissionText: string = 'Permissions';\n\n  placeholderTexts: any = {\n    AAR: 'Select what additional information you would like to include in the risk.',\n    CAP: 'Select what additional information you would like to include in the policy.',\n    CAR: 'Select what additional information you would like to include in the responsibility.',\n    CAS: 'Select what additional information you would like to include in the survey.',\n    LAI: 'Select what additional information you would like to include in the issue.',\n    CAPR: 'Select what additional information you would like to include in the scope.',\n    GRC: 'Select what additional information you would like to include in the GRC Object.',\n    RAC: 'Select what additional information you would like to include in the case.',\n    ACTW: 'Select what additional information you would like to include in the case.',\n  };\n\n  businessCycle = JSON.parse(localStorage.getItem('businessCycle') ?? '{}');\n  moreOptionsList: any = {\n    AAR: [\n      {\n        imageUrl: ASSETS.case_owners,\n        name: 'Risk Owner',\n        tooltipTitle: 'Risk Owner',\n        tooltipMessage:\n          'This is either a person, department owner or a functional role within the organization that owns the risk. Example: For IT risk, the Risk Owner could be the \"Director of IT & Security\".',\n        checked: false,\n        hidden: false,\n        code: 'RISK_OWNER',\n      },\n      {\n        imageUrl: ASSETS.oversight,\n        name: 'Risk Oversight',\n        tooltipTitle: 'Risk Oversight',\n        tooltipMessage:\n          'Oversight enables you to designate persons to oversee the risk management process.',\n        checked: false,\n        hidden: false,\n        code: 'OVERSEER',\n      },\n      {\n        imageUrl: ASSETS.priority,\n        name: 'Risk Mitigation Priority',\n        tooltipTitle: 'Risk Mitigation Priority',\n        tooltipMessage:\n          'This sets the priority level for the mitigation of each risk.',\n        checked: false,\n        hidden: false,\n        code: 'MITIGATION',\n      },\n      {\n        imageUrl: ASSETS.lables,\n        name: 'Risk Label',\n        tooltipTitle: 'Risk Label',\n        tooltipMessage:\n          'This option lets you specify if this is a newly identified risk or it is a rapidly changing risk.',\n        checked: false,\n        hidden: false,\n        code: 'RISK_LABEL',\n      },\n    ],\n    CAP: [\n      {\n        imageUrl: ASSETS.responsibility_center,\n        name: 'Responsibility Center',\n        tooltipTitle: 'Responsibility Center',\n        tooltipMessage: `Responsibility Centers represent your organizational and\n         operational infrastructure. You can attribute a policy to one or more Responsibility Centers.\n          Where you attribute a policy to a Responsibility Center, that policy will be shown as a policy\n           that is required to be attested by all the persons associated with that Responsibility Center.\n            The performance of a policy assigned to a Responsibility Center will also contribute to the\n            overall performance of the Responsibility Center.`,\n        checked: false,\n        hidden: false,\n        code: 'RESPONSIBILITY_CENTER',\n      },\n      {\n        imageUrl: ASSETS.associated_risks,\n        name: 'VERSION',\n        tooltipTitle: 'Version',\n        tooltipMessage: `This option lets you specify the offline version number for a policy. Hence, you can input the version number of the digital or physical copy of the policy document for record-keeping purposes.`,\n        checked: false,\n        hidden: false,\n        code: 'VERSION',\n      },\n      {\n        imageUrl: ASSETS.reviewer,\n        name: 'Reviewer',\n        tooltipTitle: 'Reviewer',\n        tooltipMessage: `This options lets you specify a review lifecycle for the policy document.\n         You can select a reviewer and determine how often the policy needs to be reviewed.`,\n        checked: false,\n        hidden: true,\n        code: 'REVIEWER',\n      },\n      {\n        imageUrl: ASSETS.checkpoints,\n        name: 'Checkpoints',\n        tooltipTitle: 'Checkpoints',\n        tooltipMessage: `Checkpoints enable you to confirm a person’s understanding of the policy document.\n         You can create questions based on the policy content and require that the reader of the policy\n         answers these questions correctly before proceeding to complete the attestation.\n        `,\n        checked: false,\n        hidden: true,\n        code: 'CHECKPOINTS',\n      },\n      {\n        imageUrl: ASSETS.oversight,\n        name: 'Oversight',\n        tooltipTitle: 'Oversight',\n        tooltipMessage: `Oversights are persons who oversee the policy.\n         These persons will receive email notifications about the performance of the policy.\n         As the person creating the policy, you will automatically receive email notifications about the performance of the policy.\n        `,\n        checked: false,\n        hidden: false,\n        code: 'OVERSEER',\n      },\n      {\n        imageUrl: ASSETS.format_evidence,\n        name: 'Related Documents',\n        tooltipTitle: 'Related Documents',\n        tooltipMessage: `Related documents are files that might be related to the policy. These could be documents which are related\n         to the policy or are a subset of the policy that is being created.`,\n        checked: false,\n        hidden: false,\n        code: 'RELATED_DOCUMENTS',\n      },\n      {\n        imageUrl: ASSETS.link_items,\n        name: 'LINK PROGRAMS',\n        tooltipTitle: 'LINK PROGRAMS',\n        tooltipMessage: `This option allows you to associate Programs from the Compliance module with a policy. These could be processes or procedures that might be linked to a policy.`,\n        checked: false,\n        hidden: false,\n        code: 'LINK_PROGRAM_RESPONSIBILITIES',\n      },\n      {\n        imageUrl: ASSETS.assessments,\n        name: 'LINK AN ASSESSMENT',\n        tooltipTitle: 'LINK AN ASSESSMENT',\n        tooltipMessage: `Assessments allow you to associate outcome based questionnaires or checklist based procedures with a policy.`,\n        checked: false,\n        hidden: false,\n        code: 'LINK_ASSESSMENTS',\n      },\n      {\n        imageUrl: ASSETS.link_items,\n        name: 'LINK RELATED POLICIES',\n        tooltipTitle: 'LINK RELATED POLICIES',\n        tooltipMessage: `This options lets you associate related policies for quick reference, enabling users to view relevant documents in one place and ensuring policy alignment.`,\n        checked: false,\n        hidden: false,\n        code: 'LINK_RELATED_POLICIES',\n      },\n    ],\n    CAR: [\n      {\n        imageUrl: ASSETS.objectives,\n        name: 'Objective',\n        code: 'OBJECTIVE',\n        tooltipTitle: 'Objective',\n        tooltipMessage:\n          'The objective allows you to specify an objective for the responsibility.',\n        checked: false,\n        hidden: false,\n      },\n\n      {\n        imageUrl: ASSETS.responsibility_center,\n        name: 'Responsibility Center',\n        code: 'RC',\n        tooltipTitle: 'Responsibility Center',\n        tooltipMessage: `Responsibility Centers represent your organizational and operational infrastructure.<br>\n          You can assign a responsibility to one or more Responsibility Centers. Where you assign a responsibility to a Responsibility Center,\n          that responsibility will be shown as a responsibility that is required to be completed by the Responsibility Center.\n          The performance of a responsibility assigned to a Responsibility Center will also contribute to the overall performance of the Responsibility Center.`,\n        checked: false,\n        hidden: false,\n      },\n      {\n        imageUrl: ASSETS.case_category,\n        name: 'Program',\n        code: 'PROGRAM',\n        tooltipTitle: 'Program',\n        tooltipMessage: `Programs enable you to group similar responsibilities together.\n          Allocating a responsibility to a Program allows you to view a group or similar responsibilities at once.\n          It also allows you to view the performance of those collective responsibilities.`,\n        checked: false,\n        hidden: false,\n      },\n      {\n        imageUrl: ASSETS.format_evidence,\n        name: 'Format & Evidence',\n        code: 'FORMATE_EVIDENCE',\n        tooltipTitle: ' Format & Evidence',\n        tooltipMessage:\n          'You can upload a format for this responsibility and you can also require evidence of completion of the responsibility to be provided.',\n        checked: false,\n        hidden: false,\n      },\n      {\n        imageUrl: ASSETS.assessments,\n        name: 'Assessments',\n        code: 'ASSESSMENT',\n        tooltipTitle: ' Assessments',\n        tooltipMessage:\n          'Assessments allow you to associate outcome based-questionnaires or self-assessment questionnaires with a responsibility. These need to be completed by the assignee as a part of completing the responsibility.',\n        checked: false,\n        hidden: false,\n        isDisabled: false,\n        disabledMessage:\n          'An assessment can be linked with a responsibility only after removing the associated checkpoints.',\n      },\n      {\n        imageUrl:\n          'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg',\n        name: 'Risk Classification',\n        tooltipTitle: 'Risk Classification',\n        tooltipMessage:\n          'You can specify the level of risk that the organization will be exposed to if the responsibility is not completed.',\n        checked: false,\n        hidden: false,\n        code: 'RISK_CLASSIFICATION',\n      },\n      {\n        imageUrl: ASSETS.reviewer,\n        name: 'Reviewer',\n        tooltipTitle: 'Reviewer',\n        tooltipMessage:\n          'A Reviewer is a person that is tasked with reviewing the completed responsibility.',\n        checked: false,\n        hidden: false,\n        code: 'REVIEWER',\n      },\n      {\n        imageUrl: ASSETS.oversight,\n        name: 'Oversight',\n        tooltipTitle: 'Oversight',\n        tooltipMessage: `Oversight enables you to designate persons to oversee the responsibility.\n          These persons will receive email notifications about the performance of the responsibility.<br>\n          As the person creating the responsibility, you will automatically receive email notifications about the performance of the responsibility.`,\n        checked: false,\n        hidden: false,\n        code: 'OVERSEER',\n      },\n      {\n        imageUrl:\n          'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/custom-fields.svg',\n        name: 'Custom Fields',\n        tooltipTitle: 'Custom Fields',\n        tooltipMessage: `A custom field is a user-defined data field that allows you to capture information beyond the standard fields provided by the system.`,\n        checked: false,\n        hidden: false,\n        isDisabled: false,\n        code: 'CUSTOM_FIELDS',\n      },\n    ],\n    CAS: [\n      {\n        imageUrl: ASSETS.responsibility_center,\n        name: 'Responsibility Center',\n        tooltipTitle: '',\n        tooltipMessage: '',\n        checked: false,\n        hidden: false,\n      },\n      {\n        imageUrl: ASSETS.format_evidence,\n        name: 'Format &amp; Evidence',\n        tooltipTitle: '',\n        tooltipMessage: '',\n        checked: false,\n        hidden: false,\n      },\n      {\n        imageUrl: ASSETS.oversight,\n        name: 'Oversight',\n        tooltipTitle: '',\n        tooltipMessage: '',\n        checked: false,\n        hidden: false,\n      },\n    ],\n\n    LAI: [\n      {\n        imageUrl: ASSETS.exception_type,\n        name: 'Exception Type',\n        tooltipTitle: 'Exception Type',\n        tooltipMessage:\n          'Exception type lets you specify whether there is a design or an operational effectiveness problem.',\n        checked: false,\n        hidden: false,\n        code: 'EXCEPTION_TYPE',\n      },\n      // {\n      //   imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/issue-type.svg',\n      //   name: 'Issue type',\n      //   tooltipTitle: '',\n      //   tooltipMessage: '',\n      //   checked: false,\n      //   hidden: false,\n      //   code: 'ISSUE_TYPE'\n      // },\n      {\n        imageUrl: ASSETS.priority,\n        name: 'Priority',\n        tooltipTitle: 'Priority',\n        tooltipMessage:\n          'This sets the priority level for resolving each issue.',\n        checked: false,\n        hidden: false,\n        code: 'PRIORITY',\n      },\n      {\n        imageUrl: ASSETS.associated_risks,\n        name: 'Associated Risks',\n        tooltipTitle: 'Associated Risks',\n        tooltipMessage:\n          'Associated risks lets you specify the risks that are related to this issue.',\n        checked: false,\n        hidden: false,\n        code: 'ASSOCIATED_RISKS',\n      },\n      {\n        imageUrl: ASSETS.oversight,\n        name: 'Oversight',\n        tooltipTitle: 'Oversight',\n        tooltipMessage:\n          'Oversights are the persons responsible for overseeing an issue. These persons will receive email notifications about the issue status. As the person reporting this issue, you will automatically receive such email notifications.',\n        checked: false,\n        hidden: false,\n        code: 'OVERSIGHT',\n      },\n      {\n        imageUrl: ASSETS.format_evidence,\n        name: 'Evidence',\n        tooltipTitle: 'Evidence',\n        tooltipMessage:\n          'You can require that the person resolving the issue uploads evidence to confirm',\n        checked: false,\n        hidden: false,\n        code: 'EVIDENCE',\n      },\n    ],\n    CAPR: [\n      {\n        imageUrl:\n          'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/owner.svg',\n        name: 'Owner(s)',\n        tooltipTitle: 'Owner(s)',\n        tooltipMessage: `Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>\n        The <b>Key Power User</b> and <b>Power Users with All Access</b> will be Owners of a Program by default.\n        `,\n        checked: false,\n        hidden: false,\n        code: 'OWNERS',\n      },\n      {\n        imageUrl:\n          'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/collaborator.svg',\n        name: 'Collaborators',\n        tooltipTitle: 'Collaborators',\n        tooltipMessage: COLLABORATOR_TOOLTIP,\n        checked: false,\n        hidden: false,\n        code: 'COLLABORATORS',\n      },\n\n      {\n        imageUrl: ASSETS.custom_fields,\n        name: 'Custom Field',\n        code: 'CUSTOM_FIELDS',\n        tooltipTitle: ' Custom Field',\n        tooltipMessage:\n          'When a custom field is specified, all responsibilities linked with a Program will contain that custom field. Custom fields enable the collection of additional meta data.',\n        checked: false,\n        hidden: false,\n      },\n    ],\n    GRC: [\n      {\n        imageUrl: ASSETS.link_items,\n        name: 'LINK RESPONSIBILITIES',\n        tooltipTitle: 'LINK RESPONSIBILITIES',\n        tooltipMessage: `This option lets you link a GRC Object with related responsibilities.`,\n        disabledMessage:\n          'You can link a responsibility with this GRC Object only after you have selected the relevant Responsibility Center.',\n        checked: false,\n        hidden: false,\n        code: 'LINK_PROGRAM',\n      },\n      {\n        imageUrl: ASSETS.link_risks,\n        name: 'LINK RISKS',\n        tooltipTitle: 'LINK RISKS',\n        tooltipMessage: `This option lets you link a GRC Object with related risks.`,\n        disabledMessage:\n          'You can link a risk with this GRC Object only after you have selected the relevant Responsibility Center.',\n        checked: false,\n        hidden: false,\n        code: 'LINK_RISK_CATEGORIES_RISKS',\n      },\n      {\n        imageUrl: ASSETS.link_items,\n        name: 'LINK OTHER GRC OBJECTS',\n        tooltipTitle: 'LINK OTHER GRC OBJECTS',\n        tooltipMessage: `This option lets you link a GRC Object with other related GRC Objects.`,\n        checked: false,\n        hidden: false,\n        code: 'OTHER_GRC_OBJECTS',\n      },\n      {\n        imageUrl: LINKS?.customFields,\n        name: 'GRC Object Type Attributes',\n        tooltipTitle: 'GRC Object Type Attributes',\n        tooltipMessage: `This option lets you add additional information related to a GRC Object.`,\n        disabledMessage:\n          'There are no additional attributes linked with this GRC Object Type.',\n        checked: false,\n        hidden: false,\n        code: 'ATTRIBUTES',\n      },\n    ],\n    RAC: [\n      {\n        imageUrl: ASSETS.objectives,\n        name: 'Exception Type',\n        tooltipTitle: 'Exception Type',\n        tooltipMessage:\n          'Exception type lets you specify whether there is a design or an operational effectiveness problem.',\n        checked: false,\n        hidden: false,\n        code: 'EXCEPTION_TYPE',\n      },\n      {\n        imageUrl: ASSETS.associated_risks,\n        name: 'Associated Risks',\n        tooltipTitle: 'Associated Risks',\n        tooltipMessage:\n          'Associated risks lets you specify the risks that are related to this case.',\n        checked: false,\n        hidden: false,\n        code: 'ASSOCIATED_RISKS',\n      },\n      {\n        imageUrl: ASSETS.oversight,\n        name: 'Oversight',\n        tooltipTitle: 'Oversight',\n        tooltipMessage:\n          'Oversight option lets you designate users to oversee a case. These users will receive email notifications about the case status & related workflows. As the person reporting this case, you will automatically receive such email notifications.',\n        checked: false,\n        hidden: false,\n        code: 'OVERSIGHT',\n      },\n      {\n        imageUrl: ASSETS.format_evidence,\n        name: 'Evidence',\n        tooltipTitle: 'Evidence',\n        tooltipMessage:\n          'You can require that the person resolving the case uploads evidence to confirm',\n        checked: false,\n        hidden: true,\n        code: 'EVIDENCE',\n      },\n      {\n        imageUrl: ASSETS.recommended_action,\n        name: 'Recommended Actions',\n        tooltipTitle: '',\n        tooltipMessage: '',\n        checked: false,\n        hidden: false,\n        code: 'RECOMMENDED_ACTIONS',\n      },\n      {\n        imageUrl: ASSETS.risks,\n        name: 'Risk Classification',\n        tooltipTitle: '',\n        tooltipMessage: '',\n        checked: false,\n        hidden: false,\n        code: 'RISK_CLASSIFICATION',\n      },\n    ],\n    ACTW: [\n      {\n        imageUrl: ASSETS.objectives,\n        name: 'Exception Type',\n        tooltipTitle: 'Exception Type',\n        tooltipMessage:\n          'Exception type lets you specify whether there is a design or an operational effectiveness problem.',\n        checked: false,\n        hidden: false,\n        code: 'EXCEPTION_TYPE',\n      },\n      {\n        imageUrl: ASSETS.associated_risks,\n        name: 'Associated Risks',\n        tooltipTitle: 'Associated Risks',\n        tooltipMessage:\n          'Associated risks lets you specify the risks that are related to this case.',\n        checked: false,\n        hidden: false,\n        code: 'ASSOCIATED_RISKS',\n      },\n      {\n        imageUrl: ASSETS.oversight,\n        name: 'Oversight',\n        tooltipTitle: 'Oversight',\n        tooltipMessage:\n          'Oversights are the persons responsible for overseeing an case. These persons will receive email notifications about the case status. As the person reporting this case, you will automatically receive such email notifications.',\n        checked: false,\n        hidden: false,\n        code: 'OVERSIGHT',\n      },\n      {\n        imageUrl: ASSETS.recommended_action,\n        name: 'Recommended Actions',\n        tooltipTitle: '',\n        tooltipMessage: '',\n        checked: false,\n        hidden: false,\n        code: 'RECOMMENDED_ACTIONS',\n      },\n      {\n        imageUrl: ASSETS.risks,\n        name: 'Risk Classification',\n        tooltipTitle: '',\n        tooltipMessage: '',\n        checked: false,\n        hidden: false,\n        code: 'RISK_CLASSIFICATION',\n      },\n    ],\n  };\n\n  constructor(private reportACaseService: ReportACaseService) {\n    this.resetRACMoreOptions();\n  }\n\n  resetRACMoreOptions() {\n    this.reportACaseService.resetMoreOption.subscribe((res) => {\n      if (res) {\n        this.moreOptionsList.RAC.forEach((ele: any) => {\n          ele.checked = false;\n        });\n      }\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (\n      changes?.isProgramSelected?.currentValue !==\n      changes?.isProgramSelected?.previousValue\n    ) {\n      this.isProgramSelected = changes.isProgramSelected.currentValue;\n    }\n    if (!this.isRCSelected) {\n      if (this.currentWorkflow === 'AAR') {\n        this.moreOptionsList.AAR.forEach((ele: any) => {\n          // if(ele.code === 'ASSURANCE') {\n          //   ele.checked = false;\n          // }\n          if (ele.code === 'GRC_OBJECTS') {\n            ele.checked = false;\n            ele.isDisabled = true;\n          }\n        });\n      } else {\n        this.moreOptionsList.CAR.forEach((ele: any) => {\n          // if(ele.code === 'ASSURANCE') {\n          //   ele.checked = false;\n          // }\n          if (['GRC_OBJECTS'].includes(ele.code)) {\n            ele.checked = false;\n          }\n        });\n      }\n    } else {\n      if (this.currentWorkflow === 'AAR') {\n        this.moreOptionsList.AAR.forEach((ele: any) => {\n          // if(ele.code === 'ASSURANCE') {\n          //   ele.checked = false;\n          // }\n          if (ele.code === 'GRC_OBJECTS') {\n            ele.isDisabled = false;\n          }\n        });\n      } else {\n        this.moreOptionsList.CAR.forEach((ele: any) => {\n          // if(ele.code === 'ASSURANCE') {\n          //   ele.isDisabled = false;\n          // }\n          if (['GRC_OBJECTS'].includes(ele.code)) {\n            ele.isDisabled = false;\n          }\n        });\n      }\n    }\n    this.checkGRCAttributes(this.isAttributesAvailable);\n  }\n\n  checkGRCAttributes(value: any) {\n    this.moreOptionsList.GRC.forEach((ele: any, index: number) => {\n      if (ele.code === 'ATTRIBUTES') {\n        ele.isDisabled = !value;\n        if (!value) {\n          ele.checked = !value;\n          this.selectMoreOption(ele, index);\n        }\n      }\n      if (ele.code === 'LINK_PROGRAM') {\n        ele.isDisabled = !this.isRCSelected;\n      }\n      if (ele.code === 'LINK_RISK_CATEGORIES_RISKS') {\n        ele.isDisabled = !this.isRCSelected;\n      }\n    });\n  }\n  ngOnInit(): void {\n    this.featureflagrole = this.allowedFeature?.isFeatureEnabled(\n      'ff_role_improvements'\n    );\n    this.ff_rc_listing = this.allowedFeature.isFeatureEnabled('ff_rc_listing');\n    this.ff_rc_listing\n      ? (this.permissionText = 'Permissions')\n      : (this.permissionText = 'Permission Group(S)');\n    this.programSimplifyFlag =\n      this.allowedFeature?.isFeatureEnabled('ff_program_simplify') ?? true;\n  }\n\n  selectMoreOption(event: any, index: number) {\n    if (\n      this.currentWorkflow === 'CAR' &&\n      event.code === 'CHECKPOINTS_NEW' &&\n      this.moreOptionsList[this.currentWorkflow][index]?.checked\n    ) {\n      event['checkpoint_new'] = true;\n    } else if (this.moreOptionsList[this.currentWorkflow]?.length > index) {\n      event['checkpoint_new'] = false;\n      this.moreOptionsList[this.currentWorkflow][index]['checked'] =\n        !event.checked;\n    }\n\n    this.selectedOption.emit(event);\n  }\n\n  populate(evt: any) {\n    if (this.currentWorkflow) {\n      this.moreOptionsList[this.currentWorkflow].forEach((element: any) => {\n        if (evt.includes(element.code)) {\n          element.checked = true;\n        } else {\n          element.checked = false;\n        }\n        if (evt.includes('CHECKPOINTS_NEW')) {\n          if (element.code === 'CHECKPOINTS') {\n            element.isDisabled = true;\n          }\n          if (element.code === 'ASSESSMENT') {\n            element.isDisabled = true;\n          }\n        }\n        if (evt.includes('ASSESSMENT')) {\n          if (element.code === 'CHECKPOINTS_NEW') {\n            element.isDisabled = true;\n          }\n          if (element.code === 'CHECKPOINTS') {\n            element.isDisabled = false;\n          }\n        }\n        if (evt.includes('CHECKPOINTS')) {\n          if (element.code === 'CHECKPOINTS_NEW') {\n            element.isDisabled = true;\n          }\n          if (element.code === 'ASSESSMENT') {\n            element.isDisabled = true;\n          }\n        }\n        if (evt.includes('PROGRAM')) {\n          if (element.code === 'PROGRAM' && this.isProgramSelected) {\n            element.isDisabled = true;\n          }\n        }\n      });\n    }\n  }\n  hideElements(hiddenList: any) {\n    if (this.currentWorkflow) {\n      this.moreOptionsList[this.currentWorkflow].forEach((element: any) => {\n        if (hiddenList.includes(element.code)) {\n          element.hidden = true;\n        } else {\n          element.hidden = false;\n        }\n      });\n    }\n  }\n\n  resetAll(workflowType: string) {\n    if (this.moreOptionsList[workflowType]) {\n      this.moreOptionsList[workflowType].forEach((element: any) => {\n        element.checked = false;\n      });\n    }\n  }\n\n  updateProgramMoreOptions() {\n    const code = [\n      'PROGRAM_FREQUENCY',\n      'SCOPE_CHANGES',\n      'RC',\n      'ASSIGNEES',\n      'REVIEWER',\n      'OVERSEER',\n      'ASSESSMENT',\n      'FORMATE_EVIDENCE',\n    ];\n\n  }\n}\n","<!-- <p>more-option works!</p> -->\n<div class=\"more-option\">\n  <div class=\"message-container\">\n    <img [src]=\"ASSETS.add_risk_more_option\" alt=\"\" />\n    <p *ngIf=\"currentWorkflow\">{{ placeholderTexts[currentWorkflow] }}</p>\n  </div>\n  <div class=\"more-options\">\n    <ul>\n      <!-- <div class=\"more-options-heading\" *ngIf=\"currentWorkflow ==='CAPR'\">PROGRAM SCOPE OPTIONS</div> -->\n      <ng-container *ngFor=\"let data of moreOptionsList[currentWorkflow]; let i = index\">\n        <!-- <li *ngIf=\"!data.hidden\" [appTooltip]=\"data.isDisabled && !isRcSelected? 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.' : ''\" placement=\"right\" delay=\"0\" [tooltipMandatory]=\"data.isDisabled && !isRcSelected\">\n                    <button [class.active]=\"data.checked\" [disabled]=\"data.code === 'RC' && openedFrom === 'RISK_TREATMENT' && currentWorkflow === 'CAR' || (data.isDisabled && !isRCSelected)\" [class.disabled]=\"data.isDisabled && !isRCSelected\" (click)=\"data.checked = !data.checked; selectMoreOption(data)\"> -->\n        <li *ngIf=\"!data.hidden\" [appTooltip]=\"\n            data.isDisabled ||\n            (((data.code === 'RC' && !isRcSelected) ||\n              data.code === 'ATTRIBUTES') &&\n              data.isDisabled)\n              ? data?.disabledMessage\n              : ''\n          \" placement=\"right\" delay=\"0\" [tooltipMandatory]=\"data.isDisabled\" id=\"listdata\">\n          <button [class.active]=\"data.checked\" [disabled]=\"\n              (data.code === 'RC' &&\n                openedFrom === 'RISK_TREATMENT' &&\n                currentWorkflow === 'CAR') ||\n              data.isDisabled ||\n              (data.isDisabled && !isRCSelected)\n            \" (click)=\"selectMoreOption(data, i)\">\n            <span *ngIf=\"!data.checked\" class=\"more-icon\">\n              <img [src]=\"data.imageUrl\" alt=\"\" />\n            </span>\n            <svg *ngIf=\"data.checked\" class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n              <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n              <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n            </svg>\n            <span class=\"value\" [innerHTML]=\"data?.name\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n              [tooltipMandatory]=\"false\"></span>\n            <!-- <span *ngIf=\"data.code ==='CHECKPOINTS_NEW'\" class=\"checkpoint-version\"> V2.0</span> -->\n          </button>\n          <span class=\"icon\" *ngIf=\"data.tooltipMessage !== ''\" libPopoverHover (mouseover)=\"dataTooltip.popover()\"\n            (mouseleave)=\"dataTooltip.closePopover()\" placement=\"right\"><i class=\"icons\">&#xe91f;</i></span>\n          <popover-hover #dataTooltip>\n            <div class=\"vx-info-card\">\n              <div class=\"vx-info-card-head\" [innerHTML]=\"data.tooltipTitle\"></div>\n              <div class=\"vx-info-card-body\" [innerHTML]=\"data.tooltipMessage\"></div>\n            </div>\n          </popover-hover>\n        </li>\n\n      </ng-container>\n    </ul>\n  </div>\n</div>","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class FrequencyBulkService {\n    public env !: any;\n    constructor() { }\n    shortHand_freqCal(frequency:any, day?:any, month?:any, year?:any, dueDate?: any, ongoingValues?: any) {\n        const monthNames = [\n            { value: 1, month: 'Jan' },\n            { value: 2, month: 'Feb' },\n            { value: 3, month: 'Mar' },\n            { value: 4, month: 'Apr' },\n            { value: 5, month: 'May' },\n            { value: 6, month: 'Jun' },\n            { value: 7, month: 'Jul' },\n            { value: 8, month: 'Aug' },\n            { value: 9, month: 'Sep' },\n            { value: 10, month: 'Oct' },\n            { value: 11, month: 'Nov' },\n            { value: 12, month: 'Dec' },\n        ];\n        let frequency_details;\n        const date_value = new Date();\n        if(month){\n            date_value?.setMonth(typeof month !== 'number' ? monthNames?.filter((x) => x?.month === month?.substring(0, 3))[0]?.value - 1 : month);\n        }\n        if (!year) {\n            if(month?.includes(\"'\")){\n                date_value?.setFullYear(20 + month?.split(\"'\")[1]);\n            }\n        } else {\n            date_value?.setFullYear(year);\n        }\n        if(day){\n            date_value?.setDate(day);\n        }\n        let quarterPattern = '~1,4,7,10~0';\n        const firstHalfMonth = ['1', '2', '3', '4', '5', '6'];\n        const secondHalfMonth = ['7', '8', '9', '10', '11', '12'];\n        frequency = frequency?.toLowerCase();\n\n        switch (date_value?.getMonth()) {\n            case 0:\n            case 3:\n            case 6:\n            case 9:\n                quarterPattern = '~1,4,7,10~0';\n                break;\n            case 1:\n            case 4:\n            case 7:\n            case 10:\n                quarterPattern = '~2,5,8,11~0';\n                break;\n            case 2:\n            case 5:\n            case 8:\n            case 11:\n                quarterPattern = '~3,6,9,12~0';\n                break;\n        }\n        const getDay = date_value?.getDay() === 0 ? 7 : date_value?.getDay();\n        switch (frequency) {\n            case 'every week':\n                frequency_details = '2~' + getDay + '~0~1';\n                break;\n            case 'weekly':\n                frequency_details = '2~' + getDay + '~0~1';\n                break;\n            case 'one time':\n                frequency_details = '0~' + '' + date_value.getFullYear() + '~' + (date_value.getMonth() + 1) + '~' + date_value.getDate();\n                break;\n            case 'every day':\n                frequency_details = '1~0~0~1';\n                break;\n            case 'daily':\n                frequency_details = '1~0~0~1';\n                break;\n            case 'every alternate day':\n                frequency_details = '1~0~0~2';\n                break;\n            case 'every 10 days':\n                frequency_details = '1~0~0~10';\n                break;\n            case 'every 2 weeks':\n                frequency_details = '2~' + getDay + '~0~2';\n                break;\n            case 'every fortnight':\n                frequency_details = '1~' + getDay + '~0~14';\n                break;\n            case 'every 3 weeks':\n                frequency_details = '2~' + getDay + '~0~3';\n                break;\n            case 'every month':\n                frequency_details = '3~' + date_value.getDate() + '~1,2,3,4,5,6,7,8,9,10,11,12~0';\n                break;\n            case 'monthly':\n                frequency_details = '3~' + date_value.getDate() + '~1,2,3,4,5,6,7,8,9,10,11,12~0';\n                break;\n            case 'every 45 days':\n                frequency_details = '1~0~0~45';\n                break;\n            case 'every alternate month':\n                frequency_details = '3~' + date_value.getDate() + '~' + ((date_value.getMonth() + 1) % 2 === 0 ? '2,4,6,8,10,12' : '1,3,5,7,9,11') + '~0';\n                break;\n            case 'every quarter':\n                frequency_details = '7~' + date_value.getDate() + quarterPattern;\n                break;\n            case 'quarterly':\n                frequency_details = '7~' + date_value.getDate() + quarterPattern;\n                break;\n            case 'every 120 days':\n                frequency_details = '1~0~0~120';\n                break;\n            case 'half yearly':\n                const index1 = firstHalfMonth.indexOf((date_value.getMonth() + 1).toString());\n                const index2 = secondHalfMonth.indexOf((date_value.getMonth() + 1).toString());\n                const pattern = index1 > -1 ? '~' + firstHalfMonth[index1] + ',' + secondHalfMonth[index1] + '~0' : '~' + firstHalfMonth[index2] + ',' + secondHalfMonth[index2] + '~0';\n                frequency_details = '9~' + date_value.getDate() + pattern;\n                break;\n            case 'biannual':\n                const biannualIndex = firstHalfMonth.indexOf((date_value.getMonth() + 1).toString());\n                const biannualIndex1 = secondHalfMonth.indexOf((date_value.getMonth() + 1).toString());\n                const biannualPattern = biannualIndex > -1 ? '~' + firstHalfMonth[biannualIndex] + ',' + secondHalfMonth[biannualIndex] + '~0' : '~' + firstHalfMonth[biannualIndex1] + ',' + secondHalfMonth[biannualIndex1] + '~0';\n                frequency_details = '9~' + date_value.getDate() + biannualPattern;\n                break;\n            case 'annual':\n            case 'yearly':\n                frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~1';\n                break;\n            case 'every 2 years':\n                frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~2';\n                break;\n            case 'every 3 years':\n                frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~3';\n                break;\n            case 'every 4 years':\n                frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~4';\n                break;\n            case 'every 5 years':\n                frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~5';\n                break;\n            case 'every 10 years':\n                frequency_details = '4~' + date_value.getDate() + '~' + (date_value.getMonth() + 1) + '~10';\n                break;\n            case 'ongoing':\n                if(ongoingValues?.setReminder?.toLowerCase() === 'yes') {\n                    frequency_details = '10~1~' + ( ongoingValues?.frequencyReminder ? ongoingValues?.frequencyReminder?.toString() : '0') + '~0';\n                }else {\n                    frequency_details = '10~0~0~0';\n                }\n                break;\n            case 'on completion of':\n                frequency_details = '6~0~0~' + ( dueDate ? dueDate?.toString() : '1');\n                break;\n            case 'onCompletion':\n                frequency_details = '6~0~0~' + ( dueDate ? dueDate?.toString() : '1');\n                break;\n            case 'to be decided later':\n            default:\n                frequency_details = '5~0~0~0';\n        }\n\n        return frequency_details;\n    }\n}\n\n\n\n","export const MULTIPLE_RISKS = {\n  LINKED_GRC: 'Linked GRC Object(s)',\n  GRC_ERROR_MESSAGE:\n    'The selected GRC object is not linked to the correct Responsibility Center. Therefore, this GRC object will not be associated with this risk.',\n};\n","import {\n  Component,\n  Input,\n  EventEmitter,\n  Output,\n  OnChanges,\n} from '@angular/core';\nimport { MULTIPLE_RISKS } from '../../constants/multiple-risks.constants';\n\n@Component({\n  selector: 'app-bulk-view',\n  templateUrl: './bulk-view.component.html',\n  styleUrls: ['./bulk-view.component.less'],\n})\nexport class BulkViewComponent implements OnChanges {\n  @Input() riskBulkUpload!: any;\n  @Input() templateInfo!: any;\n  @Input() fileName!: any;\n  @Input() assessmentDaysEnable!: any;\n  @Input() defaultOwner!: any;\n  @Input() loader = false;\n  @Input() ffLinkedGrcObjects: boolean = false;\n\n  @Output() submitRiskBulkUpload = new EventEmitter();\n  @Output() cancel = new EventEmitter();\n\n  finalRisks = 0;\n  showCompleteAssessmentButton = false;\n  LINKED_GRC = MULTIPLE_RISKS.LINKED_GRC;\n  GRC_ERROR_MESSAGE = MULTIPLE_RISKS.GRC_ERROR_MESSAGE;\n\n  ngOnChanges() {\n    if (this.riskBulkUpload) {\n      this.finalRisks = 0;\n      this.riskBulkUpload.risks.forEach((risk: any) => {\n        if (risk.isValid) {\n          this.finalRisks += 1;\n        }\n      });\n    }\n    this.riskBulkUpload.risks.forEach((risk: any) => {\n      if (this.riskBulkUpload?.weightFactors?.length == 4) {\n        if (risk?.likelihood && risk?.impact) {\n          this.showCompleteAssessmentButton = true;\n        }\n      } else if (this.riskBulkUpload?.weightFactors?.length == 5) {\n        if (\n          risk?.likelihood &&\n          risk?.impact &&\n          (risk?.velocity || risk?.vulnerability)\n        ) {\n          this.showCompleteAssessmentButton = true;\n        }\n      } else if (this.riskBulkUpload?.weightFactors?.length == 6) {\n        if (\n          risk?.likelihood &&\n          risk?.impact &&\n          risk?.velocity &&\n          risk?.vulnerability\n        ) {\n          this.showCompleteAssessmentButton = true;\n        }\n      }\n    });\n  }\n\n  submit(completeAssessment: any) {\n    this.submitRiskBulkUpload.emit(completeAssessment);\n  }\n\n  close() {\n    this.cancel.emit();\n  }\n}\n","<div class=\"bulk-view\">\n  <div class=\"bulk-view-head\">\n    <h2 class=\"bulk-view-title\">\n      {{ fileName }}\n    </h2>\n  </div>\n  <div class=\"bulk-view-body\">\n    <div class=\"exel-view\">\n      <div class=\"exel-view-row head\">\n        <div class=\"exel-view-column sl-no\">#</div>\n        <div\n          class=\"exel-view-column\"\n          [class.two-column]=\"heading && i === 5\"\n          *ngFor=\"let heading of riskBulkUpload?.header; let i = index\"\n          [class.large]=\"heading && heading.startsWith('Inherent')\"\n        >\n          <ng-container\n            *ngIf=\"heading && !heading.startsWith('Inherent') && !(i === 5)\"\n          >\n            {{ heading.includes(\"*\") ? heading.replace(\"*\", \"\") : heading }}\n            <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\n          </ng-container>\n          <ng-container *ngIf=\"heading && heading.startsWith('Inherent')\">\n            <div class=\"exel-view-row\">\n              <div class=\"exel-view-column large\">Inherent Risk Assessment</div>\n            </div>\n            <div class=\"exel-view-row multi-column\">\n              <div\n                class=\"exel-view-column\"\n                *ngFor=\"\n                  let weightAgeFactor of riskBulkUpload.weightFactors\n                    | slice : 2\n                \"\n              >\n                {{ weightAgeFactor }}\n              </div>\n            </div>\n          </ng-container>\n          <ng-container *ngIf=\"heading && i === 5\">\n            <div class=\"exel-view-row\">\n              <div class=\"exel-view-column large\">\n                {{ heading.includes(\"*\") ? heading.replace(\"*\", \"\") : heading }}\n                <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\n              </div>\n            </div>\n            <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n              <div\n                class=\"exel-view-column\"\n                *ngFor=\"\n                  let weightAgeFactor of riskBulkUpload?.weightFactors\n                    | slice : 0 : 2\n                \"\n              >\n                {{\n                  weightAgeFactor.includes(\"*\")\n                    ? weightAgeFactor.replace(\"*\", \"\")\n                    : weightAgeFactor\n                }}\n                <span *ngIf=\"weightAgeFactor.includes('*')\" class=\"required\"\n                  >*</span\n                >\n              </div>\n            </div>\n          </ng-container>\n        </div>\n      </div>\n      <div\n        class=\"exel-view-row\"\n        *ngFor=\"let risk of riskBulkUpload.risks; let i = index\"\n      >\n        <div class=\"exel-view-column sl-no\" [class.error]=\"!risk.isValid\">\n          {{ i + 1 }}\n        </div>\n\n        <div class=\"exel-view-column\" [class.error]=\"!risk?.riskName\">\n          {{ risk?.riskName }}\n          <i\n            *ngIf=\"!risk?.riskName\"\n            class=\"icons\"\n            [appTooltip]=\"'Risk Name must be populated.'\"\n            placement=\"bottom-right\"\n            type=\"white\"\n            delay=\"0\"\n            [tooltipMandatory]=\"true\"\n            >&#xe932;</i\n          >\n        </div>\n\n        <div class=\"exel-view-column\">{{ risk?.description }}</div>\n\n        <div class=\"exel-view-column\" [class.error]=\"!risk?.rcName\">\n          {{ risk?.rcName }}\n          <i\n            *ngIf=\"!risk?.rcName\"\n            class=\"icons\"\n            [appTooltip]=\"'Assign this risk to a Responsibility Center.'\"\n            placement=\"bottom-right\"\n            type=\"white\"\n            delay=\"0\"\n            [tooltipMandatory]=\"true\"\n            >&#xe932;</i\n          >\n        </div>\n        <div class=\"exel-view-column\">{{ risk?.owner }}</div>\n        <div class=\"exel-view-column\">{{ risk?.riskOwner }}</div>\n        <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n          <div class=\"exel-view-column\" [class.error]=\"!risk?.isValidFrequency\">\n            {{ risk?.frequency }}\n            <i\n              *ngIf=\"!risk?.isValidFrequency\"\n              class=\"icons\"\n              [appTooltip]=\"\n                'Set a frequency for the completion of the inherent risk assessment.'\n              \"\n              placement=\"bottom-right\"\n              type=\"white\"\n              delay=\"0\"\n              [tooltipMandatory]=\"true\"\n              >&#xe932;</i\n            >\n          </div>\n          <div class=\"exel-view-column\" [class.error]=\"false\">\n            {{ risk?.emailReminder }}\n          </div>\n        </div>\n        <div\n          class=\"exel-view-column\"\n          [class.error]=\"\n            (risk?.owner && risk?.owner == risk?.overseer) ||\n            (!risk?.owner && defaultOwner == risk?.overseer)\n          \"\n        >\n          {{ risk?.overseer }}\n          <i\n            *ngIf=\"\n              (risk?.owner && risk?.owner == risk?.overseer) ||\n              (!risk?.owner && defaultOwner == risk?.overseer)\n            \"\n            class=\"icons\"\n            [appTooltip]=\"\n              (risk?.owner\n                ? 'The Risk Owner cannot also be the'\n                : 'You cannot be a') +\n              ' Oversight of the risk. Select another user as the Oversight of this risk.'\n            \"\n            placement=\"bottom-right\"\n            type=\"white\"\n            delay=\"0\"\n            [tooltipMandatory]=\"true\"\n            >&#xe932;</i\n          >\n        </div>\n        <div\n          *ngIf=\"\n            riskBulkUpload?.header &&\n            riskBulkUpload?.header?.includes('Recommended Mitigation Priority')\n          \"\n          class=\"exel-view-column\"\n        >\n          {{ risk?.mitigationPriority }}\n        </div>\n        <div class=\"exel-view-column\">{{ risk?.mitigationPlans }}</div>\n        <div class=\"exel-view-column\">{{ risk?.riskLabel }}</div>\n        <!-- <div class=\"exel-view-column\" *ngIf=\"assessmentDaysEnable\" [class.error]=\"!risk?.assessmentDeadLine\">\n                  {{risk?.assessmentDeadLine}}\n                  <i *ngIf=\"!risk?.assessmentDeadLine\" class=\"icons\"\n                      [appTooltip]=\"'Set a deadline for the completion of the inherent risk assessment.'\"\n                      placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe932;</i>\n              </div> -->\n        <div class=\"exel-view-row multi-column\">\n          <div\n            class=\"exel-view-column\"\n            [class.error]=\"\n              risk?.likelihood &&\n              !templateInfo?.likelihood.includes(risk?.likelihood)\n            \"\n          >\n            {{ risk?.likelihood }}\n          </div>\n          <div\n            class=\"exel-view-column\"\n            [class.error]=\"\n              risk?.impact && !templateInfo?.impact.includes(risk?.impact)\n            \"\n          >\n            {{ risk?.impact }}\n          </div>\n          <div\n            class=\"exel-view-column\"\n            [class.error]=\"\n              risk?.velocity && !templateInfo?.velocity.includes(risk?.velocity)\n            \"\n            *ngIf=\"riskBulkUpload?.weightFactors?.includes('Velocity')\"\n          >\n            {{ risk?.velocity }}\n          </div>\n          <div\n            class=\"exel-view-column\"\n            [class.error]=\"\n              risk?.vulnerability &&\n              !templateInfo?.vulnerability.includes(risk?.vulnerability)\n            \"\n            *ngIf=\"riskBulkUpload?.weightFactors?.includes('Vulnerability')\"\n          >\n            {{ risk?.vulnerability }}\n          </div>\n        </div>\n        <div\n          *ngIf=\"\n            riskBulkUpload?.header &&\n            riskBulkUpload?.header?.includes(\n              'Do you want to apply the same risk ratings for all Responsibility Centers?'\n            )\n          \"\n          class=\"exel-view-column\"\n        >\n          {{ risk?.applySameRiskRating }}\n        </div>\n        <div\n          *ngIf=\"\n            ffLinkedGrcObjects &&\n            riskBulkUpload?.header &&\n            riskBulkUpload?.header?.includes(LINKED_GRC)\n          \"\n          class=\"exel-view-column\"\n          [class.error]=\"risk?.isGrcNotValid\"\n        >\n          {{ risk?.linkedGrcObject }}\n          <i\n            *ngIf=\"risk?.isGrcNotValid\"\n            class=\"icons\"\n            [appTooltip]=\"GRC_ERROR_MESSAGE\"\n            placement=\"bottom-right\"\n            type=\"white\"\n            delay=\"0\"\n            [tooltipMandatory]=\"true\"\n            >&#xe932;</i\n          >\n        </div>\n        <!-- <div class=\"exel-view-column\">{{risk?.customField1}}</div>\n              <div class=\"exel-view-column\">{{risk?.customField2}}</div> -->\n\n        <ng-container *ngIf=\"risk?.customTag\">\n          <div class=\"exel-view-column\" *ngFor=\"let tag of risk?.customTag\">\n            {{ tag?.custom_tag_value }}\n          </div>\n        </ng-container>\n      </div>\n    </div>\n    <div class=\"bulk-view-footer\">\n      <div class=\"left\">\n        <p>\n          {{ finalRisks }} out of {{ riskBulkUpload?.risks?.length }} risks will\n          be added to the Risk Register.\n        </p>\n      </div>\n      <div class=\"right\">\n        <button (click)=\"close()\">Cancel</button>\n        <button\n          (click)=\"submit(false)\"\n          [disabled]=\"finalRisks < 1\"\n          class=\"blue\"\n        >\n          Add Risks\n        </button>\n        <button\n          (click)=\"submit(true)\"\n          *ngIf=\"showCompleteAssessmentButton\"\n          [disabled]=\"finalRisks < 1\"\n          class=\"blue\"\n        >\n          Add Risks And Complete Assessment\n        </button>\n      </div>\n    </div>\n  </div>\n  <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n</div>\n","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  SimpleChanges,\n  OnChanges,\n  ChangeDetectionStrategy,\n  OnInit,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport * as XLSX from 'xlsx';\nimport { CategoryList } from '../interfaces/categoryList';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\nimport { AddRiskService } from '../workflow-services/add-risk.service';\nimport { AuthService } from '../workflow-services/auth.service';\nimport { FrequencyBulkService } from '../workflow-services/frequency.service';\nimport moment from 'moment/moment';\nimport { IframeService } from '../services/iframe.service';\nimport { ASSETS } from '../constants/assets.constants';\n\ntype AOA = any[][];\n@Component({\n  selector: 'app-add-multiple-risk',\n  templateUrl: './add-multiple-risk.component.html',\n  styleUrls: ['./add-multiple-risk.component.less', '../forms.less'],\n})\nexport class AddMultipleRiskComponent implements OnInit, OnChanges {\n  ASSETS = ASSETS;\n  @Input() feature: any;\n  @Output() pickerChanged = new EventEmitter();\n  @Output() populateOption = new EventEmitter();\n  @Output() closeWorkflow = new EventEmitter();\n  @Output() disconnectRefresh = new EventEmitter();\n  categoryList: CategoryList = {\n    strategic: {\n      name: 'STRATEGIC',\n      data: [],\n    },\n    operational: {\n      name: 'OPERATIONAL',\n      data: [],\n    },\n    compliance: {\n      name: 'COMPLIANCE',\n      data: [],\n    },\n    others: {\n      name: 'OTHERS',\n      data: [],\n    },\n  };\n\n  category: any = {\n    type: 'strategic',\n    selectedCategory: '',\n  };\n\n  riskBulkUpload: any = {\n    header: [],\n    weightFactors: [],\n    risks: [],\n  };\n\n  templateInfo: any = {\n    memberId: '',\n    categoryId: '',\n    ownerList: [],\n    rcList: [],\n    grcList: [],\n    mitigationList: [],\n    likelihood: [],\n    impact: [],\n    velocity: [],\n    vulnerability: [],\n  };\n\n  isLoader = false;\n  showCategoryList = false;\n  templateDownloaded = false;\n  downloadInProgress = false;\n  loader = false;\n  settingsInfo!: any;\n  isFileEmpty = false;\n  isWrongFile = false;\n  isWrongFormat = false;\n  fileName: any;\n  data: any;\n  assessmentDeadLine: any;\n  showExcel = false;\n  fileValue: any;\n  memberId = 0;\n  organizationId = 0;\n  errorMessage = ' invalid file error';\n  downloadStatus: string = 'NOT_DOWNLOADING';\n  downloadPercent = 0;\n  ffLinkedGrcObjects: boolean = false;\n  selectedRcId: number = 0;\n  selectedRcName: string = '';\n  selectedGrcName: string = '';\n  columnWiseData: any = [];\n\n  smileyMessage = `You're All Set! We're uploading the risks. The risk owners will be notified once the risks have been uploaded.`;\n  actionButtons = [\n    { buttonText: 'Add More Risks', class: 'white-btn', id: 'addMore' },\n    { buttonText: 'View Risk', class: 'blue-btn', id: 'viewRisks' },\n  ];\n  showSmiley = false;\n  member_obj_id = '';\n  defaultOwner = '';\n  riskData!: any;\n  frequencyType = [\n    'weekly',\n    'monthly',\n    'quarterly',\n    'biannual',\n    'annual',\n    'one time',\n  ];\n\n  constructor(\n    private riskService: AddRiskService,\n    private authService: AuthService,\n    private snackBar: SnackBarService,\n    private frequencyService: FrequencyBulkService,\n    private iframeService: IframeService\n  ) { }\n\n  ngOnChanges(changes: SimpleChanges) { }\n  ngOnInit() {\n    this.pickerChanged.emit(false);\n    this.getSettingsInfo();\n\n    this.organizationId = this.authService.getOrganizationId();\n    this.memberId = this.authService.getMemberId();\n    this.member_obj_id = this.authService.getUserDetails()._id;\n    this.setFeatureFlag();\n  }\n  getCategoryList() {\n    this.showCategoryList = true;\n    this.pickerChanged.emit(true);\n    this.isLoader = true;\n    this.riskService.getCategoryList().subscribe(\n      (res: any) => {\n        this.isLoader = false;\n        this.categoryList.strategic.data = res.strategic_arr;\n        this.categoryList.operational.data = res.operational_arr;\n        this.categoryList.compliance.data = res.compliance_arr;\n        this.categoryList.others.data = res.others_arr;\n      },\n      (err) => {\n        console.error(err);\n        this.isLoader = false;\n      }\n    );\n  }\n  saveSelectedCategory(category: any) {\n    if (\n      this.category?.selectedCategory?.category_id !=\n      category?.selectedCategory?.category_id\n    ) {\n      this.downloadStatus = 'NOT_DOWNLOADING';\n    }\n    this.showCategoryList = false;\n    this.category = category;\n    const reference = document.querySelector('#scrollReference');\n    if (reference) {\n      reference.scrollIntoView({ behavior: 'smooth', block: 'center' });\n    }\n    this.reset();\n  }\n  removeCategory() {\n    this.category = {\n      type: 'strategic',\n      selectedCategory: '',\n    };\n    this.reset();\n  }\n  getSettingsInfo() {\n    this.riskService.getRiskSettingDetails().subscribe(\n      (res) => {\n        this.settingsInfo = res;\n      },\n      (err) => {\n        console.error(err);\n      }\n    );\n  }\n  triggerBrowseFile() {\n    const getFile = document.getElementById('fileInput');\n    if (getFile) {\n      getFile.click();\n    }\n  }\n\n  uploadedFile(event: any) {\n    try {\n      this.riskBulkUpload = {\n        header: [],\n        weightFactors: [],\n        risks: [],\n      };\n      this.templateInfo = {\n        memberId: '',\n        categoryId: '',\n        ownerList: [],\n        rcList: [],\n        grcList: [],\n        mitigationList: [],\n        likelihood: [],\n        impact: [],\n        velocity: [],\n        vulnerability: [],\n      };\n      const reference = document.querySelector('#scrollReference');\n      if (reference) {\n        reference.scrollIntoView({ behavior: 'smooth', block: 'center' });\n      }\n      this.isFileEmpty = false;\n      this.isWrongFile = false;\n      this.isWrongFormat = false;\n      this.fileName = event.target.files[0].name;\n\n      const target: DataTransfer = event.target as DataTransfer;\n      // tslint:disable-next-line: curly\n      if (target.files.length !== 1)\n        throw new Error('Cannot use multiple files');\n      const reader: FileReader = new FileReader();\n      reader.onload = (e: any) => {\n        const bstr: string = e.target.result;\n        const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\n        const wsname: string = wb.SheetNames[0];\n        const wsname1: string = wb.SheetNames[1];\n\n        const ws: XLSX.WorkSheet = wb.Sheets[wsname];\n        const tempData: XLSX.WorkSheet = wb.Sheets[wsname1];\n\n        this.data = XLSX.utils.sheet_to_json(ws, {\n          header: 1,\n        }) as AOA;\n\n        const tData = XLSX.utils.sheet_to_json(tempData, { header: 1 }) as AOA;\n        const tempList = tData.filter(\n          (dataElement: any) => dataElement.length > 0\n        );\n\n        this.columnWiseData = this.getColumnWiseData(tData);\n        this.templateInfo.memberId = tempList[0][27];\n        this.templateInfo.categoryId = tempList[0][26];\n        this.riskBulkUpload.header = cloneDeep(\n          this.data[4].filter((dataElement: any) => dataElement.length > 0)\n        );\n\n        this.riskBulkUpload.weightFactors = cloneDeep(\n          this.data[5].filter((weightFactor: any) => weightFactor.length > 0)\n        );\n\n        tempList.forEach((element) => {\n          if (element[8]) {\n            const member = {\n              name: element[8],\n              member_id: element[9],\n            };\n            this.templateInfo.ownerList.push(member);\n          }\n          if (element[2]) {\n            const mitigation = {\n              mitigationName: element[2],\n              mitigation_id: element[3],\n            };\n            this.templateInfo.mitigationList.push(mitigation);\n          }\n          if (element[6]) {\n            const rc = {\n              rcName: element[6],\n              rc_id: element[7],\n              owner_ids: element[11],\n            };\n            this.templateInfo.rcList.push(rc);\n          }\n\n          if (element[12]) {\n            this.templateInfo?.likelihood.push(element[12]);\n          }\n          if (element[13]) {\n            this.templateInfo?.impact.push(element[13]);\n          }\n          if (\n            this.riskBulkUpload?.weightFactors?.includes('Velocity') &&\n            element[14]\n          ) {\n            this.templateInfo.velocity.push(element[14]);\n          }\n          if (\n            this.riskBulkUpload?.weightFactors?.includes('Vulnerability') &&\n            element[15]\n          ) {\n            this.templateInfo.vulnerability.push(element[15]);\n          }\n        });\n\n        if (this.fileName.substr(-5) !== '.xlsx') {\n          this.errorMessage =\n            'The incorrect file has been uploaded. Please upload the template file for Risk Category:' +\n            this.category.selectedCategory.category_name +\n            ' RETRY';\n\n          this.isWrongFile = true;\n          return;\n        }\n\n        if (\n          this.riskBulkUpload.header[0] !==\n          'What risk would you like to manage?*'\n        ) {\n          this.errorMessage =\n            'The incorrect file has been uploaded. Please upload the template file for Risk Category:' +\n            this.category.selectedCategory.category_name +\n            ' RETRY';\n\n          this.isWrongFile = false;\n          this.isWrongFormat = true;\n\n          return;\n        }\n        this.data = this.data?.slice(7);\n        const defaultOwner = this.templateInfo?.ownerList?.findIndex(\n          (ele: any) => ele?.member_id == this.memberId\n        );\n        if (defaultOwner != -1) {\n          this.defaultOwner = this.templateInfo.ownerList[defaultOwner].name;\n        } else {\n          this.errorMessage =\n            'The incorrect file has been uploaded. Please upload the template file for Risk Category:' +\n            this.category.selectedCategory.category_name +\n            ' RETRY';\n          this.isWrongFile = true;\n          return;\n        }\n\n        if (\n          this.member_obj_id != this.templateInfo.memberId ||\n          this.category.selectedCategory._id != this.templateInfo.categoryId\n        ) {\n          this.errorMessage =\n            'The incorrect file has been uploaded. Please upload the template file for Risk Category:' +\n            this.category.selectedCategory.category_name +\n            ' RETRY';\n\n          this.isWrongFile = true;\n          return;\n        }\n\n        const isEmpty = this.checkEmptyFile();\n        if (isEmpty) {\n          this.errorMessage =\n            'You have uploaded a blank template. Please add details for all mandatory fields. RETRY';\n          this.isFileEmpty = true;\n          this.isWrongFile = false;\n          this.isWrongFormat = false;\n          return;\n        } else {\n          if (this.riskBulkUpload.header[6] === 'Risk Assessment Deadline*') {\n            this.assessmentDeadLine = true;\n          } else {\n            this.assessmentDeadLine = false;\n          }\n          this.isFileEmpty = false;\n          this.isWrongFile = false;\n          this.isWrongFormat = false;\n          this.fileValue = '';\n        }\n        const riskData = this.data.filter(\n          (dataElement: any) => dataElement.length > 0\n        );\n\n        riskData.forEach((risk: any, index: any) => {\n          // const obj: any = {\n          //   riskName: risk[0] ?? '',\n          //   description: risk[1] ?? '',\n          //   rcName: risk[2] ?? '',\n          //   owner: risk[3] ?? '',\n          //   mitigationPriority: risk[4] ?? '',\n          //   overseer: risk[5] ?? '',\n          //   isValid: this.checkValidity(risk),\n          // }\n\n          // if (this.assessmentDeadLine) {\n          //   obj.assessmentDeadLine = risk[6] ?? '';\n          //   obj.likelihood = risk[7] ?? '';\n          //   obj.impact = risk[8] ?? '';\n          //   if (this.riskBulkUpload.weightFactors.length == 3) {\n          //     obj.velocity = risk[9] ?? '';\n          //   }\n          //   if (this.riskBulkUpload.weightFactors.length == 4) {\n          //     obj.velocity = risk[9] ?? '';\n          //     obj.vulnerability = risk[10] ?? '';\n          //   }\n          //   const customTags: any = [];\n\n          //   this.category.selectedCategory.custom_tag.forEach((tag: any, index: any) => {\n          //     if (tag) {\n          //       const cTag = {\n          //         custom_tag_value: risk[7 + this.riskBulkUpload.weightFactors.length + index] ?? '',\n          //         custom_tag_name: tag.tagName\n          //       };\n          //       customTags.push(cTag);\n          //     }\n          //   });\n          //   obj.customTag = customTags;\n          // } else {\n          //   obj.likelihood = risk[6] ?? '';\n          //   obj.impact = risk[7] ?? '';\n\n          //   if (this.riskBulkUpload.weightFactors.length == 3) {\n          //     obj.velocity = risk[8] ?? '';\n          //   }\n          //   if (this.riskBulkUpload.weightFactors.length == 4) {\n          //     obj.velocity = risk[8] ?? '';\n          //     obj.vulnerability = risk[9] ?? '';\n          //   }\n          //   const customTags: any = [];\n          //   this.category.selectedCategory.custom_tag.forEach((tag: any, index: any) => {\n          //     if (tag) {\n          //       const cTag = {\n          //         custom_tag_value: risk[6 + this.riskBulkUpload.weightFactors.length + index] ?? '',\n          //         custom_tag_name: tag.tagName\n          //       };\n          //       customTags.push(cTag);\n          //     }\n          //   });\n          //   obj.customTag = customTags;\n          // }\n          let obj = this.setRiskDetails(risk);\n          if (\n            obj?.likelihood &&\n            !this.templateInfo?.likelihood.includes(obj?.likelihood)\n          ) {\n            obj.isValid = false;\n          }\n          if (obj?.impact && !this.templateInfo?.impact.includes(obj?.impact)) {\n            obj.isValid = false;\n          }\n          if (\n            obj?.velocity &&\n            !this.templateInfo?.velocity.includes(obj?.velocity)\n          ) {\n            obj.isValid = false;\n          }\n          if (\n            obj?.vulnerability &&\n            !this.templateInfo?.vulnerability.includes(obj?.vulnerability)\n          ) {\n            obj.isValid = false;\n          }\n          obj.isGrcNotValid = this.validateGrcObjectForRc(\n            obj.rcName,\n            obj.linkedGrcObject\n          );\n          if (obj.isGrcNotValid) {\n            obj.isValid = false;\n          }\n          this.riskBulkUpload.risks.push(obj);\n        });\n        this.getGrcList();\n        this.isFileEmpty = false;\n        this.isWrongFile = false;\n        this.isWrongFormat = false;\n        this.showExcel = true;\n      };\n      reader.readAsBinaryString(target?.files[0]);\n    } catch (e) {\n      console.error(e);\n    }\n  }\n\n  checkEmptyFile() {\n    let isEmpty = false;\n    this.data = this.data.filter((dataElement: any) => dataElement.length > 0);\n    if (this.data.length < 1) {\n      isEmpty = true;\n    }\n    return isEmpty;\n  }\n\n  checkValidity(risk: any) {\n    const re = /&nbsp;|<br>/g;\n    let trimmedName = risk[0] ? risk[0].toString().replace(re, '').trim() : '';\n    trimmedName = trimmedName.replace(/  +/g, ' ');\n    // || (this.assessmentDeadLine && (!risk[6]))\n    if (\n      !trimmedName ||\n      (risk[3] && risk[3] == risk[7]) ||\n      (!risk[3] && this.defaultOwner == risk[7]) ||\n      !risk[2] ||\n      !this.frequencyType?.includes(risk[5]?.toLowerCase())\n    ) {\n      return false;\n    } else {\n      return true;\n    }\n  }\n\n  downloadTemplate() {\n    this.downloadStatus = 'DOWNLOADING';\n    this.downloadPercent = 0;\n    const today = new Date().toISOString().split('T');\n    const downloadDate = today[0];\n    const fileName =\n      'VComply - Risk Module - Add Multiple Risks - ' +\n      this.category?.selectedCategory?.category_name +\n      ' - ' +\n      downloadDate +\n      '.xlsx';\n\n    this.riskService\n      .downloadTemplate(this.category.selectedCategory._id)\n      .subscribe(\n        (data: any) => {\n          if (data.loaded) {\n            this.downloadPercent = 100 * (data.loaded / data.total);\n          }\n          if (data.body) {\n            setTimeout(() => {\n              this.downloadStatus = this.riskService.downLoadFile(\n                data.body,\n                'application/xlsx',\n                fileName\n              );\n            }, 1500);\n          }\n        },\n        (error) => {\n          console.error(error);\n          this.downloadStatus = 'DOWNLOADED';\n        }\n      );\n  }\n\n  submitRiskBulkUpload(completeAssessment: any) {\n    this.loader = true;\n    const payload: any = [];\n    this.riskBulkUpload.risks.forEach((risk: any) => {\n      let frequencyValue = '';\n      if (risk?.frequency.toLowerCase() === 'one time') {\n        const date = new Date();\n        date.setDate(date.getDate() + 1);\n        frequencyValue =\n          '0~' +\n          '' +\n          date.getFullYear() +\n          '~' +\n          (date.getMonth() + 1) +\n          '~' +\n          date.getDate();\n      } else {\n        frequencyValue = this.frequencyService.shortHand_freqCal(\n          risk?.frequency\n        );\n      }\n\n      if (risk.isValid) {\n        const obj = {\n          title: risk?.riskName,\n          description: risk?.description,\n          category_custom_tag: risk?.customTag,\n          assessment_deadline_enable:\n            this.settingsInfo?.assessment_deadline_enable,\n          owner: risk?.owner\n            ? this.returnIds(risk?.owner, 'owner')\n            : this.returnIds(this.defaultOwner, 'owner'),\n          risk_owner: risk?.riskOwner,\n          category: this.category?.selectedCategory?.category_id\n            ? [this.category?.selectedCategory?.category_id]\n            : [],\n          manage_oversight: this.returnIds(risk?.overseer, 'overseer'),\n          rc_id: this.returnIds(risk?.rcName, 'rc_id'),\n          head_ids: this.returnIds(risk?.rcName, 'rc_owner_ids'), //2 to be aray\n          linked_GRC_ids: this.ffLinkedGrcObjects\n            ? this.returnIds(risk?.linkedGrcObject, 'grc_id')\n            : [],\n          rating_arr: [\n            risk?.likelihood ? risk?.likelihood.split(' - ')[1] : 0,\n            risk?.impact ? risk?.impact.split(' - ')[1] : 0,\n            risk?.velocity ? risk?.velocity.split(' - ')[1] : 0,\n            risk?.vulnerability ? risk?.vulnerability.split(' - ')[1] : 0,\n          ],\n          member_id: this.memberId,\n          organisation_id: this.organizationId,\n          risk_progress_flag: 1,\n          IfAssessmentDone: 0,\n          workshop_id: '',\n          complete_assessment: completeAssessment ? 1 : 0,\n          mitigation: this.returnIds(risk?.mitigationPriority, 'mitigation'), //3 wrong\n          weightage_enable: this.settingsInfo?.weightage_enable,\n          treatment_type: this.settingsInfo?.treatment_criteria,\n          weightage_details: this.settingsInfo?.weightage_details,\n          weightage_set_by: this.settingsInfo?.weightage_set_by,\n          weightage_str: [\n            this.settingsInfo?.weightage_details?.impact.value,\n            this.settingsInfo?.weightage_details?.likelihood.value,\n            this.settingsInfo?.weightage_details?.velocity.value,\n            this.settingsInfo?.weightage_details?.vulnerability.value,\n          ],\n          // assessment_deadline_set_by: this.settingsInfo?.assessment_deadline_set_by, //check1 not appearing\n          assessment_deadline_set_by:\n            this.settingsInfo?.assessment_deadline_set_by ?? this.memberId, //check1 not appearing\n          assessment_deadline_days: this.settingsInfo\n            ?.assessment_deadline_enable\n            ? this.settingsInfo?.assessment_deadline_days\n            : risk?.assessmentDeadLine,\n          frequency_details: {\n            frequency: frequencyValue,\n            started_at:\n              this.changeTimeZone(new Date()) ?? moment().format('YYYY-MM-DD'),\n            frequency_time: '11:00 pm',\n            remind_before_days: risk?.emailReminder\n              ? risk?.emailReminder\n              : this.setDefaultEmailReminderValue(risk?.frequency),\n          },\n          risk_label: this.setRiskLabel(risk?.riskLabel),\n          mitigation_plan_recommendation: risk?.mitigationPlans ?? '',\n          sameRiskRatingsForAllRC: risk?.applySameRiskRating ?? 'No',\n        };\n        payload.push(obj);\n      }\n    });\n    this.riskService.addBulkRisk(payload).subscribe(\n      (res: any) => {\n        this.loader = false;\n        this.showExcel = false;\n        this.showSmiley = true;\n        this.submitWorkflow();\n        this.riskData = res;\n      },\n      (err) => {\n        console.error(err);\n        this.loader = false;\n        this.showExcel = false;\n        this.snackBar.show(\n          'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n          'alert'\n        );\n      }\n    );\n  }\n\n  submitWorkflow() { \n    const message = {type:'submit'}\n    const targetOrigin = this.getOrigin();\n    window.parent.postMessage(message, targetOrigin);\n  } \n\n  private getOrigin(): string {\n    return window.location.origin;\n  }\n\n  returnIds(item: any, key: string) {\n    switch (key) {\n      case 'rc_id':\n        const rcId: any = [];\n        this.templateInfo.rcList.forEach((rc_element: any) => {\n          if (rc_element.rcName == item) {\n            rcId.push(rc_element.rc_id);\n          }\n        });\n        return rcId;\n        break;\n      case 'rc_owner_ids':\n        let owner_ids: any = [];\n        this.templateInfo.rcList.forEach((headerIds: any) => {\n          if (headerIds.rcName == item && headerIds.owner_ids) {\n            owner_ids = headerIds.owner_ids.includes(',')\n              ? headerIds.owner_ids.split(',').map(Number)\n              : [Number(headerIds.owner_ids)];\n          }\n        });\n        return owner_ids;\n        break;\n      case 'owner':\n        const ownerId: any = [];\n        this.templateInfo.ownerList.forEach((element: any) => {\n          if (element.name == item) {\n            ownerId.push(element.member_id);\n          }\n        });\n        return ownerId;\n        break;\n      case 'overseer':\n        const overseerId: any = [];\n        this.templateInfo.ownerList.forEach((os_element: any) => {\n          if (os_element.name == item) {\n            overseerId.push(os_element.member_id);\n          }\n        });\n        return overseerId;\n        break;\n\n      case 'mitigation':\n        let mitigationId: any = 0;\n        this.templateInfo.mitigationList.forEach((mitigation: any) => {\n          if (mitigation.mitigationName == item) {\n            mitigationId = mitigation.mitigation_id;\n          }\n        });\n        return mitigationId;\n        break;\n\n      case 'grc_id':\n        const grcId: any = [];\n        const grcElement = this.templateInfo.grcList.find(\n          (grc_element: any) => grc_element.grcName === item\n        );\n        return grcElement ? [grcElement.grcId] : [];\n        break;\n    }\n  }\n\n  reset() {\n    this.riskBulkUpload = {\n      header: [],\n      weightFactors: [],\n      risks: [],\n    };\n\n    this.templateInfo = {\n      memberId: '',\n      categoryId: '',\n      ownerList: [],\n      rcList: [],\n      mitigationList: [],\n      grcList: [],\n    };\n\n    this.isFileEmpty = false;\n    this.isWrongFile = false;\n    this.isWrongFormat = false;\n    this.fileName = undefined;\n    this.data = undefined;\n    this.assessmentDeadLine = undefined;\n    this.showExcel = false;\n    this.showSmiley = false;\n  }\n  action(event: string) {\n    switch (event) {\n      case 'addMore':\n        this.category = {\n          type: 'strategic',\n          selectedCategory: '',\n        };\n        this.downloadStatus = 'NOT_DOWNLOADING';\n        this.reset();\n        break;\n      case 'viewRisks':\n        this.viewRisks();\n        break;\n    }\n  }\n\n  closeSmiley(event: any) {\n    this.showSmiley = false;\n    this.closeWorkflow.emit({ evt: this.riskData, confirm: false });\n  }\n\n  viewRisks(): void {\n    this.disconnectRefresh.emit(false);\n    let url: string;\n    if (window.location.host.startsWith('localhost')) {\n      url = 'http://' + window.location.host;\n    } else {\n      url = 'https://' + window.location.host;\n    }\n    if (window.location.host.startsWith('localhost')) {\n      url += '/risk-register';\n    } else {\n      url += '/risk/risk-register';\n    }\n    this.iframeService.redirectIfInIframe(url, true);\n  }\n\n  /**\n   * It takes an array of strings and returns an object with the array values as properties.\n   * </code>\n   * @param {any} risk - any = [\n   * @returns [\n   *   {\n   *     \"riskName\": \"\",\n   *     \"description\": \"\",\n   *     \"rcName\": \"\",\n   *     \"owner\": \"\",\n   *     \"frequency\": \"\",\n   *     \"emailReminder\": \"\",\n   *     \"overseer\": \"\",\n   *     \"isValid\": false,\n   *     \"mitigationPriority\": \"\",\n   */\n  setRiskDetails(risk: any) {\n    let obj: any;\n    obj = {\n      riskName: risk[0] ?? '',\n      description: risk[1] ?? '',\n      rcName: risk[2] ?? '',\n      owner: risk[3] ?? '',\n      riskOwner: risk[4] ?? '',\n      frequency: risk[5] ?? '',\n      emailReminder: risk[6],\n      overseer: risk[7] ?? '',\n      isValid: this.checkValidity(risk),\n      isGrcNotValid: this.validateGrcObjectForRc(\n        this.selectedRcName,\n        this.selectedGrcName\n      ),\n    };\n    let index = 8;\n    if (\n      this.riskBulkUpload?.header?.includes('Recommended Mitigation Priority')\n    ) {\n      obj['mitigationPriority'] = risk[index] ?? '';\n      index++;\n    }\n    obj['mitigationPlans'] = risk[index] ?? '';\n    index++;\n    obj['riskLabel'] = risk[index] ?? '';\n    index++;\n    obj['likelihood'] = risk[index] ?? '';\n    index++;\n    obj['impact'] = risk[index] ?? '';\n    index++;\n    if (this.riskBulkUpload?.weightFactors?.includes('Velocity')) {\n      obj['velocity'] = risk[index] ?? '';\n      index++;\n    }\n    if (this.riskBulkUpload?.weightFactors?.includes('Vulnerability')) {\n      obj['vulnerability'] = risk[index] ?? '';\n      index++;\n    }\n    if (\n      this.riskBulkUpload?.header?.includes(\n        'Do you want to apply the same risk ratings for all Responsibility Centers?'\n      )\n    ) {\n      obj['applySameRiskRating'] = risk[index] ?? '';\n      index++;\n    }\n    if (this.riskBulkUpload?.header?.includes('Linked GRC Object(s)')) {\n      obj['linkedGrcObject'] = risk[index] ?? '';\n      index++;\n    }\n    const customTags: any = [];\n    this.category?.selectedCategory?.custom_tag?.forEach((tag: any, i: any) => {\n      if (tag) {\n        const cTag = {\n          custom_tag_value: risk[index + i] ?? '',\n          custom_tag_name: tag.tagName,\n        };\n        customTags.push(cTag);\n      }\n    });\n    obj['customTag'] = customTags;\n    obj['isValidFrequency'] = this.frequencyType?.includes(\n      obj?.frequency?.toLowerCase()\n    );\n    return obj;\n  }\n\n  /**\n   * If the frequencyType is weekly, return 2, if it's monthly, return 7, if it's quarterly, return 7,\n   * if it's biannual, return 30, if it's annual, return 30, if it's one time, return 15, otherwise\n   * return 0.\n   * @param {string} [frequencyType] - string - the frequency type of the reminder\n   * @returns The return value is the number of days before the event that the reminder should be sent.\n   */\n  setDefaultEmailReminderValue(frequencyType?: string): any {\n    switch (frequencyType?.toLowerCase()) {\n      case 'weekly':\n        return 2;\n      case 'monthly':\n        return 7;\n      case 'quarterly':\n        return 7;\n      case 'biannual':\n        return 30;\n      case 'annual':\n        return 30;\n      case 'one time':\n        return 15;\n      default:\n        return 0;\n    }\n  }\n\n  /**\n   * If the label is 'new risk', return 1, if the label is 'emerging/rapidly changing risks', return 2,\n   * otherwise return 1\n   * @param {string} [label] - the label of the risk\n   * @returns The return value is the value of the last expression in the function.\n   */\n  setRiskLabel(label?: string) {\n    switch (label?.toLowerCase()) {\n      case 'newly identified risks':\n        return 1;\n      case 'rapidly changing risks':\n        return 2;\n      default:\n        return 1;\n    }\n  }\n\n  /**\n   * \"If the date is a number, convert it to a date object, then create a new date object with the\n   * timezone set to the user's timezone, then return the date in the format YYYY-MM-DD.\"\n   * </code>\n   * @param {any} date - any - the date you want to change the timezone of\n   * @returns The date is being returned in the timezone of the user.\n   */\n  changeTimeZone(date: any) {\n    if (typeof date === 'number') {\n      date = new Date(date);\n    }\n    const invDate = new Date(\n      date.toLocaleString('en-US', {\n        timeZone: this.authService.userDetails?.timezone,\n      })\n    );\n    return moment(invDate).format('YYYY-MM-DD');\n  }\n\n  setFeatureFlag() {\n    this.ffLinkedGrcObjects = this.feature.isFeatureEnabled('ff_grc_v1');\n  }\n\n  getColumnWiseData = (data: any[][]): any[][] => {\n    return data[0].map((_, colIndex) => data.map((row) => row[colIndex]));\n  };\n\n  validateGrcObjectForRc(selectedRc: string, selectedGrc: string): boolean {\n    for (\n      let colIndex = 29;\n      colIndex < this.columnWiseData.length;\n      colIndex += 2\n    ) {\n      const rcNamesColumn = this.columnWiseData[colIndex];\n\n      if (rcNamesColumn[0] === selectedRc) {\n        return !rcNamesColumn\n          .slice(1)\n          .some((grc: any) => grc === selectedGrc || !selectedGrc);\n      }\n    }\n    return false;\n  }\n\n  getGrcList() {\n    this.riskBulkUpload?.risks.forEach((risk: any) => {\n      this.selectedGrcName = risk?.linkedGrcObject;\n      this.selectedRcName = risk?.rcName;\n      this.selectedRcId = this.returnIds(risk.rcName, 'rc_id');\n\n      if (this.selectedRcId) {\n        for (\n          let colIndex = 29;\n          colIndex < this.columnWiseData.length;\n          colIndex += 2\n        ) {\n          const rcNamesColumn = this.columnWiseData[colIndex];\n          const rcIdsColumn = this.columnWiseData[colIndex + 1];\n          if (rcIdsColumn[0] == this.selectedRcId) {\n            for (let i = 1; i < rcNamesColumn.length; i++) {\n              const grcName = rcNamesColumn[i];\n              const grcId = rcIdsColumn[i];\n              if (grcName && grcId) {\n                const grc = {\n                  grcName: grcName,\n                  grcId: grcId,\n                };\n                this.templateInfo.grcList.push(grc);\n              }\n            }\n          }\n        }\n      }\n    });\n  }\n}\n","<div class=\"add-multiple-risk\">\n  <!-- main container starts here -->\n  <div class=\"add-multiple-risk-body\" [class.disabled]=\"showCategoryList\">\n    <div class=\"add-multiple-risk-container\">\n      <div class=\"image\">\n        <img [src]=\"ASSETS.spreadsheet_multiple_category\" alt=\"\" />\n      </div>\n\n      <h4 id=\"multipleRisk\">\n        You can add multiple risk in just three easy steps\n      </h4>\n      <ul class=\"list\">\n        <li>Select a Risk Category.</li>\n        <li>Download the template and fill in the details.</li>\n        <li>Upload the .xlsx file and you're good to go!</li>\n      </ul>\n      <div class=\"vx-form-group\" [attr.id]=\"'scrollReference'\">\n        <label class=\"vx-control-panel\"\n          >Risk Category <span class=\"required\">*</span></label\n        >\n        <div class=\"select\" *ngIf=\"!category.selectedCategory\">\n          <input\n            type=\"text\"\n            (click)=\"getCategoryList()\"\n            placeholder=\"Select Risk Category\"\n            readonly\n          />\n        </div>\n        <div class=\"selected\" *ngIf=\"category.selectedCategory\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"removeCategory()\"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"category?.selectedCategory?.category_name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ category?.selectedCategory?.category_name }}</span\n            >\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                        <span class=\"chip\">\n                            <i class=\"icons\" (click)=\"removeCategory()\">&#xe90d;</i>\n                            {{category?.selectedCategory?.category_name}}</span>\n                    </div> -->\n          <button\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"showCategoryList = true; pickerChanged.emit(true)\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </div>\n      <ng-container *ngIf=\"category?.selectedCategory\">\n        <button\n          *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\"\n          class=\"download\"\n          type=\"button\"\n          (click)=\"downloadTemplate()\"\n        >\n          <i class=\"icons\">&#xe91b;</i> Download Template\n        </button>\n        <div class=\"bulk-btn-progress\" *ngIf=\"downloadStatus === 'DOWNLOADING'\">\n          Download in Progress\n          <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\n        </div>\n        <ng-container *ngIf=\"downloadStatus === 'DOWNLOADED'\">\n          <div class=\"bulk-btn-progress\">\n            <i class=\"icons\">&#xe91c;</i>Download Complete\n          </div>\n          <div class=\"bulk-btn-again\">\n            Is the file not downloaded?\n            <button (click)=\"downloadTemplate()\">Retry Download</button>\n          </div>\n        </ng-container>\n      </ng-container>\n      <p\n        class=\"error-message\"\n        *ngIf=\"isWrongFile || isWrongFormat || isFileEmpty\"\n      >\n        {{ errorMessage }}\n      </p>\n    </div>\n  </div>\n</div>\n<app-category-list\n  *ngIf=\"showCategoryList\"\n  [categoryList]=\"categoryList\"\n  [selectedCategory]=\"category\"\n  (saveSelectedCategory)=\"\n    saveSelectedCategory($event); pickerChanged.emit(false)\n  \"\n  (closeCategoriesList)=\"showCategoryList = false; pickerChanged.emit(false)\"\n  [loaded]=\"!isLoader\"\n>\n</app-category-list>\n<app-bulk-view\n  *ngIf=\"showExcel\"\n  [riskBulkUpload]=\"riskBulkUpload\"\n  [templateInfo]=\"templateInfo\"\n  [defaultOwner]=\"defaultOwner\"\n  [fileName]=\"fileName\"\n  [loader]=\"loader\"\n  [assessmentDaysEnable]=\"assessmentDeadLine\"\n  (submitRiskBulkUpload)=\"submitRiskBulkUpload($event)\"\n  (cancel)=\"reset()\"\n  [ffLinkedGrcObjects]=\"ffLinkedGrcObjects\"\n></app-bulk-view>\n\n<input\n  type=\"file\"\n  [(ngModel)]=\"fileValue\"\n  id=\"fileInput\"\n  class=\"hidden-input\"\n  (change)=\"uploadedFile($event)\"\n/>\n<app-smiley-dialog-inline\n  *ngIf=\"showSmiley\"\n  [message]=\"smileyMessage\"\n  [actionButtons]=\"actionButtons\"\n  (action)=\"action($event)\"\n  (closeSmiley)=\"closeSmiley($event)\"\n></app-smiley-dialog-inline>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ConfirmationAlert } from '../interfaces/confirmation-alert';\n\n@Component({\n  selector: 'app-confirmation-alert',\n  templateUrl: './confirmation-alert.component.html',\n  styleUrls: ['./confirmation-alert.component.less']\n})\nexport class ConfirmationAlertComponent implements OnInit {\n  @Input() message = '';\n  @Input() config: ConfirmationAlert = {isVisible: false, isRedAlert: false};\n  @Output() action = new EventEmitter<any>();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  actionTaken(evt: any){\n    this.action.emit({action: evt, payload: this.config});\n  }\n}\n","<!-- <p>confirmation-alert works!</p> -->\n<div class=\"confirmation-alert\" [class.warning-color]=\"config?.isRedAlert\">\n    <div class=\"confirmation-alert-top\" >\n        <span class=\"icon-block\">\n            <i class=\"icons\">&#xe930;</i>\n        </span>\n        <p class=\"text\" *ngIf=\"message\">{{message}}</p>\n    </div>\n    <div class=\"confirmation-alert-bottom\">\n        <p class=\"message\">Are you sure you would like to proceed?</p>\n        <div class=\"button-group\">\n          <ng-container *ngIf=\"false\">\n            <button class=\"outline\" type=\"button\" (click)=\"actionTaken('NO')\">NO</button>\n            <button class=\"fill\" type=\"button\" (click)=\"actionTaken('YES')\">Yes</button>\n          </ng-container>\n          <ng-container >\n            <button class=\"fill\" type=\"button\" (click)=\"actionTaken('NO')\">NO</button>\n            <button class=\"outline\" type=\"button\" (click)=\"actionTaken('YES')\">Yes</button>\n          </ng-container>\n\n        </div>\n    </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { EditorConfig } from 'vcomply-editor';\nimport { ASSETS } from '../constants/assets.constants';\n\n@Component({\n  selector: 'app-workflow-survey-form',\n  templateUrl: './workflow-survey-form.component.html',\n  styleUrls: ['./workflow-survey-form.component.less', '../forms.less'],\n})\nexport class WorkflowSurveyFormComponent implements OnInit {\n  ASSETS = ASSETS;\n  description: EditorConfig = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Description',\n  };\n  constructor() { }\n\n  ngOnInit(): void { }\n}\n","<!-- <p>workflow-survey-form works!</p> -->\n<div class=\"workflow-survey-form\">\n  <div class=\"form-group-row\">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.what\" alt=\"name\" />\n      <svg viewBox=\"25 25 50 50\" class=\"edit-loader\">\n        <circle\n          cx=\"50\"\n          cy=\"50\"\n          r=\"20\"\n          fill=\"none\"\n          stroke=\"#1e5dd3\"\n          stroke-width=\"3\"\n          class=\"loader-path\"\n        ></circle>\n      </svg>\n      <!-- <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                  <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                  <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n              </svg> -->\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">\n          Survey Name <span class=\"required\">*</span>\n        </label>\n        <input type=\"text\" placeholder=\"Enter Survey name\" />\n        <vcomply-editor [editorConfig]=\"description\"></vcomply-editor>\n        <app-cs-switch\n          >Do you want this Survey to be available on the portal?\n          <i class=\"icons\">&#xe932;</i></app-cs-switch\n        >\n        <app-cs-switch\n          >Accept suggestions <i class=\"icons\">&#xe932;</i></app-cs-switch\n        >\n      </div>\n    </div>\n  </div>\n  <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img s[rc=\"ASSETS.risk_category\" alt=\"\" />\n      <svg viewBox=\"25 25 50 50\" class=\"edit-loader\">\n        <circle\n          cx=\"50\"\n          cy=\"50\"\n          r=\"20\"\n          fill=\"none\"\n          stroke=\"#1e5dd3\"\n          stroke-width=\"3\"\n          class=\"loader-path\"\n        ></circle>\n      </svg>\n      <!-- <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n            </svg> -->\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Survey Category </label>\n        <div class=\"select\">\n          <input\n            type=\"text\"\n            placeholder=\"Select a category for this policy\"\n            readonly\n          />\n        </div>\n        <div class=\"selected\">\n          <div class=\"chip-container\">\n            <span class=\"chip\"><i class=\"icons\">&#xe90d;</i>Test Category</span>\n          </div>\n          <button class=\"edit\" type=\"button\">\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n      </div>\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Custom tag 1</label>\n        <input type=\"text\" placeholder=\"Custom tag 1\" />\n      </div>\n    </div>\n  </div>\n  <div class=\"form-group-row\">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.what\" alt=\"im\" />\n      <svg viewBox=\"25 25 50 50\" class=\"edit-loader\">\n        <circle\n          cx=\"50\"\n          cy=\"50\"\n          r=\"20\"\n          fill=\"none\"\n          stroke=\"#1e5dd3\"\n          stroke-width=\"3\"\n          class=\"loader-path\"\n        ></circle>\n      </svg>\n      <!-- <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                  <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                  <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n              </svg> -->\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">\n          Approval workflow<span class=\"required\">*</span>\n          <button class=\"button\">Create a new Approval Workflow</button>\n        </label>\n        <div class=\"select\">\n          <input\n            type=\"text\"\n            placeholder=\"Select approval workflow for this policy\"\n            readonly\n          />\n        </div>\n\n        <div class=\"selected\">\n          <div class=\"workflow-label\">\n            <p class=\"title\">Level 1</p>\n            <p class=\"description\">Sequential</p>\n          </div>\n          <div class=\"chip-container\">\n            <span class=\"chip\"><i class=\"icons\">&#xe90d;</i>Test Category</span>\n          </div>\n          <button class=\"edit\" type=\"button\">\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n        <label class=\"vx-control-panel\"\n          ><button class=\"button\">+ Add More Levels</button></label\n        >\n      </div>\n    </div>\n  </div>\n  <div class=\"form-group-row\">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.case_assignees\" alt=\"im\" />\n      <svg viewBox=\"25 25 50 50\" class=\"edit-loader\">\n        <circle\n          cx=\"50\"\n          cy=\"50\"\n          r=\"20\"\n          fill=\"none\"\n          stroke=\"#1e5dd3\"\n          stroke-width=\"3\"\n          class=\"loader-path\"\n        ></circle>\n      </svg>\n      <!-- <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                  <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                  <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n              </svg> -->\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Who? <span class=\"required\">*</span></label\n        >\n        <div class=\"select\">\n          <input\n            type=\"text\"\n            placeholder=\"Who is responsible for completing the responsibility?\"\n            readonly\n          />\n        </div>\n        <app-cs-switch\n          >THIS POLICY REQUIRES E-SIGNATURE FOR ATTESTATION\n          <i class=\"icons\">&#xe91f;</i></app-cs-switch\n        >\n      </div>\n    </div>\n  </div>\n  <div class=\"form-group-row\">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.when\" alt=\"im\" />\n      <svg viewBox=\"25 25 50 50\" class=\"edit-loader\">\n        <circle\n          cx=\"50\"\n          cy=\"50\"\n          r=\"20\"\n          fill=\"none\"\n          stroke=\"#1e5dd3\"\n          stroke-width=\"3\"\n          class=\"loader-path\"\n        ></circle>\n      </svg>\n      <!-- <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n            </svg> -->\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >When? <span class=\"required\">*</span></label\n        >\n        <div class=\"select button-sec\">\n          <input\n            type=\"text\"\n            placeholder=\"How often does this policy need to be attested?\"\n            readonly\n          />\n          <button type=\"button\">Set A frequency</button>\n        </div>\n\n        <label class=\"vx-control-panel\">Effective Date</label>\n        <input\n          type=\"text\"\n          placeholder=\"How often does the responsibility occur?\"\n        />\n      </div>\n    </div>\n  </div>\n\n  <div class=\"form-group-row\">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.risks\" alt=\"im\" />\n      <svg viewBox=\"25 25 50 50\" class=\"edit-loader\">\n        <circle\n          cx=\"50\"\n          cy=\"50\"\n          r=\"20\"\n          fill=\"none\"\n          stroke=\"#1e5dd3\"\n          stroke-width=\"3\"\n          class=\"loader-path\"\n        ></circle>\n      </svg>\n      <!-- <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n            </svg> -->\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Risk Classification</label>\n        <div class=\"classification\">\n          <label class=\"low\">\n            <input type=\"radio\" name=\"classification\" />\n            <span>LOW</span>\n          </label>\n          <label class=\"low-med\">\n            <input type=\"radio\" name=\"classification\" />\n            <span>LOW-Medium</span>\n          </label>\n          <label class=\"med-high\">\n            <input type=\"radio\" name=\"classification\" />\n            <span>Medium-High</span>\n          </label>\n          <label class=\"high\">\n            <input type=\"radio\" name=\"classification\" />\n            <span>High</span>\n          </label>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.responsibility_center\" alt=\"\" />\n      <svg viewBox=\"25 25 50 50\" class=\"edit-loader\">\n        <circle\n          cx=\"50\"\n          cy=\"50\"\n          r=\"20\"\n          fill=\"none\"\n          stroke=\"#1e5dd3\"\n          stroke-width=\"3\"\n          class=\"loader-path\"\n        ></circle>\n      </svg>\n      <!-- <svg class=\"checkIcon\"\n                xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n            </svg> -->\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Responsibility Center</label>\n        <div class=\"select\">\n          <input\n            type=\"text\"\n            placeholder=\"Select Responsibility Center(s)\"\n            readonly\n          />\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\n    <div class=\"left\" [class.checked]=\"false\">\n      <img [src]=\"ASSETS.reviewer\" alt=\"\" />\n      <svg viewBox=\"25 25 50 50\" class=\"edit-loader\">\n        <circle\n          cx=\"50\"\n          cy=\"50\"\n          r=\"20\"\n          fill=\"none\"\n          stroke=\"#1e5dd3\"\n          stroke-width=\"3\"\n          class=\"loader-path\"\n        ></circle>\n      </svg>\n      <!-- <svg class=\"checkIcon\"\n                xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n            </svg> -->\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Reviewer </label>\n        <div class=\"select\">\n          <input type=\"text\" placeholder=\"Select a Reviewer\" readonly />\n        </div>\n        <app-cs-radio\n          >ALL SELECTED PERSONS NEED TO COMPLETE THIS\n          <i class=\"icons\">&#xe91f;</i></app-cs-radio\n        >\n        <app-cs-radio\n          >ANY SELECTED PERSON CAN COMPLETE THIS\n          <i class=\"icons\">&#xe91f;</i></app-cs-radio\n        >\n      </div>\n    </div>\n  </div>\n  <div class=\"form-group-row\">\n    <div class=\"left\">\n      <img [src]=\"ASSETS.format_evidence\" alt=\"im\" />\n      <svg viewBox=\"25 25 50 50\" class=\"edit-loader\">\n        <circle\n          cx=\"50\"\n          cy=\"50\"\n          r=\"20\"\n          fill=\"none\"\n          stroke=\"#1e5dd3\"\n          stroke-width=\"3\"\n          class=\"loader-path\"\n        ></circle>\n      </svg>\n      <!-- <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                  <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                  <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n              </svg> -->\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"> Associated Documents </label>\n\n        <div class=\"tab-group\" [class.uploaded]=\"false\">\n          <label class=\"upload-file\">\n            <img [src]=\"ASSETS.upload\" alt=\"\" class=\"image\" />\n            <div class=\"browse\">\n              <span>Drop your files here /</span>\n              <span class=\"label\">Browse<input type=\"file\" /></span>\n            </div>\n          </label>\n        </div>\n        <label class=\"vx-control-panel\">\n          LINK THE DOCUMENT AND SPECIFY THE RELATIONSHIP WITH THIS POLICY\n        </label>\n        <div class=\"file-list policy\">\n          <div class=\"file-container\">\n            <span class=\"file-name\">Demo file.jpg</span>\n            <div class=\"button-group\">\n              <button class=\"edit\">\n                <i class=\"icons\">&#xe9ba;</i>\n              </button>\n              <button>\n                <i class=\"icons\">&#xe90d;</i>\n              </button>\n            </div>\n          </div>\n          <cs-select\n            placeholder=\"Define Document's relationship to this policy\"\n          >\n            <cs-option>Select One</cs-option>\n          </cs-select>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { catchError, map, retry } from 'rxjs/operators';\nimport moment from 'moment/moment';\n\nimport { Configurations } from '../configurations';\nimport { AuthService } from './auth.service';\nimport { DEFAULT_24HR, DEFAULT_TIME } from '../constants/time.constants';\nimport { BehaviorSubject, of } from 'rxjs';\nimport dayjs from 'dayjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class LogIssueService {\n  env!: any;\n  private issueCategories: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  getIssueTypes() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.organizationGet + 'issueTypeList', { headers })\n      .pipe(retry(2));\n  }\n\n  getOrgPeople() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.organizationGet + 'people', { headers })\n      .pipe(retry(2));\n  }\n\n  getIssueCategories() {\n    if(this.issueCategories?.getValue()) {\n      return of(this.issueCategories?.value);\n    }\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(\n        this.env.assurance + 'Issue/Category/CatList?categories=true',\n        { headers }\n      )\n      .pipe(\n        map((res) => {\n          this.issueCategories?.next(res);\n          return res;\n        }),\n        catchError((error) => {\n          return of(null);\n        }\n      ))\n      .pipe(retry(2));\n    //https://devapi.v-comply.com/Assurance/Issue/Category/CatList/1?isBusinessCycle=true&categories=true\n  }\n  getResponsibilityCenterList() {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get<any[]>(this.env.organizationGet + 'responsibilityCenterTree', {\n        headers,\n      })\n      .pipe(retry(2));\n  }\n  createIssue(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .post(this.env.assurance + 'Issue', payload, { headers })\n      .pipe(retry(2));\n  }\n  updateIssue(payload: any, issueId: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .put(this.env.assurance + 'Issue/' + issueId, payload, { headers })\n      .pipe(retry(2));\n  }\n\n  getControlRisk(auditPlanId: string, type: string) {\n    //     Get Linked Audit Plan Responsibilities by Audit_Plan_Id\n    // URL: https://devapi.v-comply.com/responsibilities/?mode=manage_audit_plan_responsibilities&id=610b329144c81a0009cbb598 Method: GET\n\n    // Get Linked Audit Plan Risk by Audit_Plan_Id\n    // URL: https://devapi.v-comply.com/risk/?mode=risk/manage_audit_plan_risk&id=610b329144c81a0009cbb598\n    // Method: GET\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    if (type === 'RESPONSIBILITY') {\n      return this.http\n        .get<any[]>(\n          this.env.responsibilitiesGet +\n            'manage_audit_plan_responsibilities&id=' +\n            auditPlanId,\n          { headers }\n        )\n        .pipe(\n          map((items: any) => {\n            return items.map((item: any) => ({\n              itemId: item?.report_id,\n              itemControlId: item?.control_id,\n              itemControlName: item?.report_name,\n              itemType: 'RESPONSIBILITY',\n            }));\n          })\n        );\n    } else if (type === 'RISK') {\n      return this.http\n        .get<any[]>(\n          this.env.risk + 'risk/manage_audit_plan_risk&id=' + auditPlanId,\n          { headers }\n        )\n        .pipe(\n          map((items: any) => {\n            return items.map((item: any) => ({\n              itemId: item?.risk_id,\n              itemControlId: item?.risk_control_id,\n              itemControlName: item?.title,\n              itemType: 'RISK',\n            }));\n          })\n        );\n    } else {\n      return null;\n    }\n  }\n\n  validate(issueData: any, openedFrom: any, isRCMandatory: any) {\n    const errors = [];\n    if (!issueData.issueName || issueData.issueName.trim().length === 0) {\n      errors.push('issueName');\n    }\n    if (issueData.issueRC.length === 0 && isRCMandatory) {\n      errors.push('issueRC');\n    }\n    if (issueData.entrustTo.length === 0) {\n      errors.push('entrustTo');\n    }\n    if (!issueData.issueDueDate) {\n      errors.push('issueDueDate');\n    }\n    if (\n      issueData.issueRecommendation\n        .replace(/&nbsp;/g, '')\n        .replace(/\\<br\\s*[\\/]?>/gi, '')\n        .trim().length === 0\n    ) {\n      errors.push('issueRecommendation');\n    }\n    return errors;\n  }\n\n  generatePayload(issueData: any, optionFieldsStatus: any) {\n    const selectedDate = new Date(issueData.issueDueDate);\n    const dateSplit = [\n      selectedDate.getFullYear(),\n      selectedDate.getMonth() + 1,\n      selectedDate.getDate(),\n    ];\n    const time: any = this.convertFrom12To24Format(\n      issueData.issueDueTime\n    ).split(':');\n    const date = new Date(\n      dateSplit[0],\n      dateSplit[1] - 1,\n      dateSplit[2],\n      time[0],\n      time[1],\n      0\n    );\n\n    const createIssue: any = {\n      issue_description_attachments: issueData?.issueDescriptionAttachements,\n      associated_risk: optionFieldsStatus.ASSOCIATED_RISKS\n        ? issueData.issueAssociatedRisk\n        : '',\n      issue_name: issueData.issueName,\n      report_id: '0',\n      issue_description: issueData.issueDescription,\n      issue_type: optionFieldsStatus.ISSUE_TYPE\n        ? this.arrayToId(issueData.issueType, 'issue_id').toString()\n        : '',\n      exception_type: optionFieldsStatus.EXCEPTION_TYPE\n        ? issueData.exceptionType.toString()\n        : '',\n      risk_class: issueData.issueRiskRating.toString() ?? '',\n      priority: optionFieldsStatus.PRIORITY\n        ? issueData.issuePriority.toString()\n        : '',\n      issue_category_id:\n        this.arrayToId(issueData.issueCategory, 'category_id') ?? 0,\n      recommendation: issueData.issueRecommendation,\n      entrusted_to: this.arrayToId(issueData.entrustTo, 'employee_id') ?? 0,\n      issue_date:\n        dateSplit[0] +\n        '-' +\n        dateSplit[1] +\n        '-' +\n        dateSplit[2] +\n        ' ' +\n        this.convertFrom12To24Format(issueData.issueDueTime),\n      failed_time: this.convertFrom12To24Format(issueData.issueDueTime),\n      issue_due_date:\n        dateSplit[0] +\n        '-' +\n        dateSplit[1] +\n        '-' +\n        dateSplit[2] +\n        ' ' +\n        this.convertFrom12To24Format(issueData.issueDueTime),\n      grc_area: '',\n      cc_employee_email: optionFieldsStatus.OVERSIGHT\n        ? this.arrayToIDsDtring(issueData.issueCCUsers, 'employee_email')\n        : '',\n      failure_cc_employee_email: optionFieldsStatus.OVERSIGHT\n        ? this.arrayToIDsDtring(issueData.failureCCUsers, 'employee_email')\n        : '',\n      custom_tag_value: '',\n      issue_resolve_timestamp: (date.getTime() / 1000).toString(),\n      evidence_upload_flag: optionFieldsStatus.EVIDENCE\n        ? issueData.evidenceRequired\n          ? '1'\n          : '0'\n        : '0',\n    };\n    if (issueData.issueRC.length) {\n      createIssue.rc_id = this.arrayToId(issueData.issueRC, 'rc_id') ?? 0;\n    }\n\n    return createIssue;\n  }\n\n  payloadBuilder(issueData: any, optionFieldsStatus: any) {\n    const isMoment = moment.isMoment(issueData.issueDueDate);\n    const isDays = dayjs.isDayjs(issueData.issueDueDate);\n    const selectedDate = isMoment\n      ? moment(issueData.issueDueDate)?.toDate()\n      : isDays\n      ? dayjs(issueData.issueDueDate?.$d).toDate()\n      : new Date(issueData.issueDueDate);\n    const dateSplit = [\n      selectedDate.getFullYear(),\n      selectedDate.getMonth() + 1,\n      selectedDate.getDate(),\n    ];\n\n    const payload: any = {\n      description: [],\n      associated_risk: [],\n      recommendation: [],\n    };\n\n    payload.title = issueData.issueName.trim() ?? '';\n    payload.rc_id = issueData.issueRC.length\n      ? this.getArrayId(issueData.issueRC, 'rc_id')\n      : [];\n    payload.responsibilities_Linked = issueData.responsibilityLinked.length\n      ? this.getArrayId(issueData.responsibilityLinked, 'ReportId')\n      : [];\n    payload.category_id = issueData.issueCategory.length\n      ? this.arrayToId(issueData.issueCategory, 'category_id')\n      : null;\n    payload.description[0] = {\n      text: issueData.issueDescription ?? '',\n      attachments: issueData?.issueDescriptionAttachements.length\n        ? issueData?.issueDescriptionAttachements\n        : [],\n    };\n    payload.exception_type = optionFieldsStatus.EXCEPTION_TYPE\n      ? Number(issueData.exceptionType)\n      : null;\n    payload.risk_class = issueData.issueRiskRating ?? null;\n    payload.priority = optionFieldsStatus.PRIORITY\n      ? Number(issueData.issuePriority)\n      : null;\n    payload.assignee_id = issueData.entrustTo\n      ? this.arrayToId(issueData.entrustTo, 'my_member_id')\n      : null;\n    payload.associated_risk[0] = {\n      text: optionFieldsStatus.ASSOCIATED_RISKS\n        ? issueData.issueAssociatedRisk\n        : '',\n      attachments: [],\n    };\n    payload.recommendation[0] = {\n      text: issueData.issueRecommendation ?? '',\n      attachments: issueData?.recommendedActionsAttachments.length\n        ? issueData?.recommendedActionsAttachments\n        : [],\n    };\n    payload.evidence = {\n      evidence_flag: optionFieldsStatus.EVIDENCE\n        ? issueData.evidenceRequired\n          ? 1\n          : 0\n        : 0,\n    };\n    payload.frequency_details = {\n      frequency_time:\n        this.convertFrom12To24Format(issueData.issueDueTime) ?? DEFAULT_TIME,\n      frequency_date:\n        dateSplit[0] +\n        '-' +\n        (dateSplit[1] < 10 ? '0' + dateSplit[1] : dateSplit[1]) +\n        '-' +\n        (dateSplit[2] < 10 ? '0' + dateSplit[2] : dateSplit[2]),\n    };\n    payload.overseer = {\n      cc_email: optionFieldsStatus.OVERSIGHT\n        ? issueData.issueCCUsers.length\n          ? issueData.issueCCUsers.map((x: any) => {\n              return { member_id: x.my_member_id ?? 0, alert_enable: 1 };\n            })\n          : []\n        : [],\n      failure_cc_email: optionFieldsStatus.OVERSIGHT\n        ? issueData.failureCCUsers.length\n          ? issueData.failureCCUsers.map((x: any) => {\n              return { member_id: x.my_member_id ?? 0, alert_enable: 1 };\n            })\n          : []\n        : [],\n    };\n    payload.custom_tags = issueData?.issueCustomTag;\n    payload.issueType = issueData?.issueType;\n    payload.linked_assessment_issues = {\n      resp_id: issueData?.respId ?? '',\n      due_date_id: issueData?.dueDateId ?? '',\n      assessment_id: issueData?.assessmentId ?? '',\n      question_id: issueData?.questionId ?? '',\n      auditee_id: issueData?.auditeeId ?? null,\n    };\n    payload.source = issueData?.source;\n\n    return payload;\n  }\n\n  arrayToId(array: any, key: any) {\n    if (array.length === 0) {\n      return '';\n    } else {\n      return array[0][key];\n    }\n  }\n\n  getArrayId(array: any, key: any) {\n    return array.map((ele: any) => ele[key]);\n  }\n\n  convertFrom12To24Format = (time12: any) => {\n    if (time12) {\n      const [sHours, minutes, period] = time12\n        .match(/([0-9]{1,2}):([0-9]{2}) (am|pm|AM|PM)/)\n        .slice(1);\n      const PM = period === 'PM';\n      const hours = (+sHours % 12) + (PM ? 12 : 0);\n\n      return `${('0' + hours).slice(-2)}:${minutes}:00`;\n    } else {\n      return DEFAULT_24HR;\n    }\n  };\n\n  convertFrom24To12Format(time: any) {\n    const hhmm = time.split(':');\n    time = `${hhmm[0]}:${hhmm[1]}`;\n    // Check correct time format and split into components\n    time = time\n      .toString()\n      .match(/^([01]\\d|2[0-3])(:)([0-5]\\d)(:[0-5]\\d)?$/) || [time];\n\n    if (time.length > 1) {\n      // If time format correct\n      time = time.slice(1); // Remove full string match value\n      time[5] = +time[0] < 12 ? ' AM' : ' PM'; // Set AM/PM\n      time[0] = +time[0] % 12 || 12; // Adjust hours\n    }\n    return time.join(''); // return adjusted time or original string\n  }\n\n  arrayToIDsDtring(array: any, identifierKey: any) {\n    const list = array.map((el: any) => {\n      return el[identifierKey];\n    });\n    return list.join();\n  }\n\n  /**\n   * Uploads the given file to server\n   * @param payload payload File data to be uploaded\n   * @param path path Path of file to be uploaded\n   * @returns response after uploading a file\n   */\n  uploadFiles(payload: any, path: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    const ORG_PATH = `o/${path}`;\n    return this.http.post(\n      this.env.fileUploadEndPoint + ORG_PATH + '&ngsw-bypass=true',\n      payload,\n      { headers }\n    );\n  }\n\n  getIssueDetails(issueId: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http\n      .get(this.env.assurance + 'Issue/Edit/' + issueId, { headers })\n      .pipe(retry(3));\n  }\n\n  formatDate() {\n    const currentDate = new Date();\n    const day = String(currentDate.getDate()).padStart(2, '0');\n    const month = String(currentDate.getMonth() + 1).padStart(2, '0');\n    const year = currentDate.getFullYear();\n    const formattedDate = `${day}-${month}-${year}`;\n    return formattedDate;\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n  AfterViewInit,\n} from '@angular/core';\nimport { ASSETS } from '../../constants/assets.constants';\n\n@Component({\n  selector: 'app-radio-list',\n  templateUrl: './radio-list.component.html',\n  styleUrls: ['./radio-list.component.less'],\n})\nexport class RadioListComponent implements OnInit, AfterViewInit {\n  @ViewChild('listBlock', { static: false }) listBlock!: ElementRef;\n  @Input() itemsList: any = [];\n  @Input() selectedItems: any = [];\n  @Input() identifierKey = '';\n  @Input() displayKey = '';\n  @Input() tooltipKey = '';\n  @Input() config!: any;\n  @Input() twoColumn = false;\n  @Output() closeList = new EventEmitter();\n  @Output() saveList = new EventEmitter();\n  @Input() loader: boolean = false;\n  animation = true;\n  searchItem = '';\n  blockWidth: any;\n  ASSETS = ASSETS;\n  constructor() { }\n\n  ngOnInit(): void {\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.selectedItems = this.arrayToId(this.selectedItems, this.identifierKey);\n    // this.rerenderList();\n  }\n\n  ngAfterViewInit() {\n    setTimeout(() => {\n      this.blockWidth = this.listBlock?.nativeElement?.offsetWidth;\n    }, 100);\n  }\n  selectItem(item: any) {\n    this.selectedItems = [];\n    this.selectedItems.push(item);\n  }\n  deleteItem(item: any) {\n    this.selectedItems = [];\n    // this.rerenderList();\n  }\n\n  save() {\n    this.saveList.emit(this.selectedItems);\n  }\n\n  close() {\n    this.closeList.emit();\n  }\n\n  arrayToId(array: any, identifierKey: any) {\n    return array.map((a: any) => a[identifierKey]);\n  }\n}\n","<div class=\"radio-list\" [class.animate]=\"animation\">\n  <div\n    class=\"radio-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">{{ config?.panelTitle }}</div>\n    <!-- <button class=\"radio-list-close\">\n      <i class=\"icons\" (click)=\"close()\">&#xe90d;</i>\n    </button> -->\n  </div>\n\n  <div class=\"radio-list-body\">\n    <div class=\"search-block vx-mb-2\" *ngIf=\"config?.searchEnabled\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        type=\"text\"\n        [placeholder]=\"config?.searchPlaceholder\"\n        [(ngModel)]=\"searchItem\"\n      />\n    </div>\n    <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n    <ng-container\n      *ngIf=\"itemsList | search : searchItem : displayKey as searchList\"\n    >\n      <div class=\"categories vx-mb-4\" *ngIf=\"searchList?.length > 0\">\n        <ul [class.two-column]=\"twoColumn\" *ngIf=\"searchList?.length > 0\">\n          <li *ngFor=\"let item of searchList\">\n            <ng-container *ngIf=\"(item[displayKey] | dataType) !== 'object'\">\n              <app-cs-radio\n                [name]=\"'radio-selector'\"\n                (checkedEvent)=\"selectItem(item[identifierKey])\"\n                [name]=\"'rx-category'\"\n                [checked]=\"selectedItems.includes(item[identifierKey])\"\n                [appTooltip]=\"tooltipKey ? item[tooltipKey] : item[displayKey]\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                [tooltipMandatory]=\"true\"\n              >\n                {{ item[displayKey] }}\n              </app-cs-radio>\n            </ng-container>\n            <ng-container *ngIf=\"(item[displayKey] | dataType) === 'object'\">\n              <app-cs-radio\n                [name]=\"'radio-selector'\"\n                (checkedEvent)=\"selectItem(item[identifierKey])\"\n                [checked]=\"selectedItems.includes(item[identifierKey])\"\n              >\n                <ul class=\"category-within-list\" #listBlock>\n                  <li\n                    *ngFor=\"let child of item[displayKey]\"\n                    [style.max-width.px]=\"blockWidth / item[displayKey].length\"\n                  >\n                    <span\n                      [appTooltip]=\"child\"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      >{{ child }}</span\n                    >\n                  </li>\n                </ul>\n              </app-cs-radio>\n            </ng-container>\n          </li>\n        </ul>\n      </div>\n      <app-no-data\n        *ngIf=\"searchList?.length === 0 && !loader\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"\n          config?.noDataText?.length > 0\n            ? config?.noDataText\n            : 'No data to display'\n        \"\n      ></app-no-data>\n    </ng-container>\n\n    <app-floating-bar\n      *ngIf=\"!loader\"\n      [selectedData]=\"selectedItems | listMapper : itemsList : identifierKey\"\n      [displayElementKey]=\"displayKey\"\n      [singularText]=\"config?.floatingTextSingular\"\n      [pluralText]=\"\n        config?.floatingTextPlural\n          ? config?.floatingTextPlural\n          : 'Users selected'\n      \"\n      (closeEvent)=\"save()\"\n      (closeList)=\"close()\"\n      (deleteEvent)=\"deleteItem($event)\"\n      [isDisabled]=\"selectedItems.length === 0 || itemsList.length === 0\"\n    >\n    </app-floating-bar>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'arrayFilter'\n})\nexport class ArrayFilterPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    return value.filter((item:any)=>{\n      return item.itemType === args[0]\n    })\n  }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ASSETS } from '../../constants/assets.constants';\n\n@Component({\n  selector: 'app-responsibility-risk-selector',\n  templateUrl: './responsibility-risk-selector.component.html',\n  styleUrls: ['./responsibility-risk-selector.component.less'],\n})\nexport class ResponsibilityRiskSelectorComponent implements OnInit {\n  animation = true;\n  activeTab = 'RESPONSIBILITY';\n  controlIdKey = 'itemControlId';\n  itemDisplayKey = 'itemControlName';\n  identifierKey = 'itemId';\n  ASSETS = ASSETS;\n  @Input() set activeEntity(value: any) {\n    if (value) {\n      this.activeTab = value;\n    }\n  }\n  @Input() listItems = [];\n  @Input() selectedItems: any = [];\n  @Input() loading = false;\n  @Output() fetchList = new EventEmitter();\n  @Output() closeList = new EventEmitter();\n  @Output() saveList = new EventEmitter();\n  constructor() { }\n\n  ngOnInit(): void {\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.selectedItems = this.arrayToId(this.selectedItems, this.identifierKey);\n  }\n\n  changeTab(type: string) {\n    if (this.loading === true) {\n      return;\n    }\n    this.activeTab = type;\n    this.fetchList.emit(type);\n    this.listItems = [];\n  }\n  selectItem(item: any) {\n    this.selectedItems = [];\n    this.selectedItems.push(item);\n  }\n  deleteItem(item: any) {\n    this.selectedItems = [];\n    // this.rerenderList();\n  }\n\n  save() {\n    this.saveList.emit(this.selectedItems);\n  }\n\n  close() {\n    this.closeList.emit();\n  }\n\n  arrayToId(array: any, identifierKey: any) {\n    return array.map((a: any) => a[identifierKey]);\n  }\n}\n","<div class=\"risk-radio-list\" [class.animate]=\"animation\">\n  <div class=\"risk-radio-list-head\">\n    <h3 class=\"risk-radio-list-title\">\n      Define Sample Size for Selected Audit Objects\n    </h3>\n    <!-- <button class=\"radio-list-close\">\n        <i class=\"icons\" (click)=\"close()\">&#xe90d;</i>\n      </button> -->\n  </div>\n\n  <div class=\"risk-radio-list-body\">\n    <div class=\"tab-button\">\n      <button\n        [class.active]=\"activeTab === 'RESPONSIBILITY'\"\n        (click)=\"changeTab('RESPONSIBILITY')\"\n      >\n        RESPONSIBILITIES\n      </button>\n      <button [class.active]=\"activeTab === 'RISK'\" (click)=\"changeTab('RISK')\">\n        RISKS\n      </button>\n    </div>\n    <ng-container *ngIf=\"!loading\">\n      <ul class=\"categories\">\n        <li *ngFor=\"let item of listItems | arrayFilter : activeTab\">\n          <app-cs-radio\n            [checked]=\"selectedItems.includes(item[identifierKey])\"\n            (checkedEvent)=\"selectItem(item[identifierKey])\"\n            ><span class=\"cid\" *ngIf=\"item[controlIdKey]\">{{\n              item[controlIdKey]\n            }}</span\n            >{{ \"\" + item[itemDisplayKey] }}</app-cs-radio\n          >\n        </li>\n      </ul>\n    </ng-container>\n    <app-list-loader *ngIf=\"loading\"></app-list-loader>\n    <app-no-data\n      *ngIf=\"listItems?.length === 0 && !loading\"\n      [noDataImage]=\"ASSETS.search_data\"\n      [noDataText]=\"'No Categories Found'\"\n    ></app-no-data>\n  </div>\n  <!-- [singularText]=\"config?.floatingTextSingular\"\n    [pluralText]=\"config?.floatingTextPlural ?config?.floatingTextPlural:'Users selected'\" -->\n  <!-- [selectedData]=\"selectedItems|listMapper:listItems:identifierKey\" -->\n  <div class=\"risk-radio-list-footer\">\n    <app-floating-bar\n      [displayElementKey]=\"itemDisplayKey\"\n      [selectedData]=\"selectedItems | listMapper : listItems : identifierKey\"\n      (closeEvent)=\"save()\"\n      (closeList)=\"close()\"\n      (deleteEvent)=\"deleteItem($event)\"\n      [isDisabled]=\"selectedItems.length === 0 || listItems.length === 0\"\n    >\n    </app-floating-bar>\n  </div>\n</div>\n","import { AuthService } from '../workflow-services/auth.service';\nimport { LogIssueService } from '../workflow-services/log-issue.service';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n  OnChanges,\n  AfterViewInit,\n  ChangeDetectorRef,\n  ElementRef,\n  HostListener,\n} from '@angular/core';\nimport { EditorConfig } from 'vcomply-editor';\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport { cloneDeep } from 'lodash';\nimport { UiKitService } from '../workflow-services/ui-kit.service';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\nimport moment from 'moment/moment';\nimport { IssueConfiguration } from '../interfaces/issue-data';\nimport { DEFAULT_TIME } from '../constants/time.constants';\nimport { CommonService } from '../services/common.service';\nimport { OrganizationUserService } from '../workflow-services/organization-user.service';\nimport { OrganizationCommonService } from '../workflow-services/common-workflow-services/organization-common.service';\nimport { ComplianceCommonService } from '../workflow-services/common-workflow-services/compliance-common.service';\nimport { IframeService } from '../services/iframe.service';\nimport { ASSETS } from '../constants/assets.constants';\n\n@Component({\n  selector: 'app-log-an-issue',\n  templateUrl: './log-an-issue.component.html',\n  styleUrls: ['./log-an-issue.component.less', '../forms.less'],\n})\nexport class LogAnIssueComponent implements OnInit, OnChanges, AfterViewInit {\n  ASSETS = ASSETS;\n  @Input() openedFrom!: any;\n  @Input() source: 'SAP' | 'WORKROOM' | '' = '';\n  @Input() issueId!: any;\n  @Input() reponsibilityData: any = {\n    // only used by log an issue\n    responsibilityId: null,\n    responsibilityName: '',\n    rcId: [],\n    responsibilityObjectId: '',\n    dueDateId: '',\n  };\n  @Input() assessmentQuestion: any = {\n    questionName: '',\n    questionNumber: '',\n    questionId: '',\n    assessmentId: '',\n    auditeeId: null,\n  };\n  @Input() issueDetails = {\n    auditPlanId: null,\n    auditPlanName: '',\n    rcId: null,\n    auditObjId: null,\n  };\n  @Input() mode = 'CREATE';\n  @Input() config!: IssueConfiguration;\n  @Input() responsibilitiesData: any;\n  @Output() pickerChanged = new EventEmitter();\n  @Output() populateOption = new EventEmitter();\n  @Output() closeWorkflow = new EventEmitter();\n  @Output() modeChange = new EventEmitter();\n  @Output() disconnectRefresh = new EventEmitter();\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  @ViewChild('datePicker', { read: ElementRef, static: false })\n  datePickerPopUp!: ElementRef;\n\n  currentUser!: any;\n  scrollToBottom: boolean = false;\n  datePickerOverlay: boolean = false;\n  showDateError: boolean = false;\n  selectedDate: any;\n  showSmiley: boolean = false;\n  loader: boolean = false;\n  smileyMessage: string = `The issue has been reported.`;\n  issueData!: any;\n  isRiskControlLoading: boolean = false;\n  linkText: string = '';\n  actionButtons: any[] = [\n    { buttonText: 'Report More Issues', class: 'white-btn', id: 'addMore' },\n    { buttonText: 'View Issue', class: 'blue-btn', id: 'viewIssue' },\n  ];\n  createdData!: any;\n  description: EditorConfig = {\n    // mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Description',\n  };\n\n  dateConfig = {\n    disableKeypress: true,\n    format: 'DD',\n    unSelectOnClick: true,\n    openOnClick: false,\n    openOnFocus: false,\n    min: '',\n  };\n  listData: any = {\n    issueTypeList: [],\n    userList: [],\n    categoryList: [],\n    rcList: [],\n    linkageList: [],\n  };\n  DEFAULT_TIME = DEFAULT_TIME;\n\n  get message() {\n    return this.mode === 'EDIT'\n      ? ' The Issue has been updated.'\n      : this.smileyMessage;\n  }\n\n  get displayActionButtons() {\n    return (!['ASSESSMENT'].includes(this.openedFrom) &&\n      ['CREATE'].includes(this.mode)) ||\n      ['EDIT'].includes(this.mode)\n      ? this.actionButtons\n      : [];\n  }\n\n  logIssueForm: any = {\n    issueName: '',\n    evidenceRequired: 0,\n    issueDescription: '',\n    issueDescriptionAttachements: [],\n    issueCategory: [],\n    issueCustomTag: [],\n    issueRC: [],\n    issueType: 'issue',\n    isAssignToMyself: false,\n    entrustTo: [],\n    issueDueDate: '',\n    issueDueTime: DEFAULT_TIME,\n    exceptionType: 1,\n    issueRiskRating: 1,\n    issuePriority: 1,\n    issueRecommendation: '',\n    recommendedActionsAttachments: [],\n    issueAssociatedRisk: '',\n    associatedRisksAttachments: [],\n    issueCCUsers: [],\n    failureCCUsers: [],\n    linkedControlRisk: [],\n    linkageType: 'RISK',\n    responsibilityLinked: [],\n    dueDateId: '',\n    assessmentId: '',\n    auditeeId: null,\n    questionId: '',\n    questionNumber: '',\n    title: '',\n    dueDate: '',\n    source: '',\n  };\n  AttachmentTrack: any = [[], [], []];\n  additionalOptionStatus: any = {\n    EXCEPTION_TYPE: false,\n    EVIDENCE: false,\n    PRIORITY: false,\n    ISSUE_TYPE: false,\n    ASSOCIATED_RISKS: false,\n    OVERSIGHT: false,\n  };\n  riskClassification = [\n    { name: 'LOW', value: 1, class: 'low' },\n    { name: 'LOW-Medium', value: 2, class: 'low-med' },\n    { name: 'Medium-High', value: 3, class: 'med-high' },\n    { name: 'High', value: 4, class: 'high' },\n  ];\n  riskPrority = [\n    { name: 'LOW', value: 1, class: 'low' },\n    { name: 'MEDIUM', value: 2, class: 'low-med' },\n    { name: 'HIGH', value: 3, class: 'high' },\n  ];\n\n  sideSelectorElements: any = [\n    'ISSUE_CATEGORY',\n    'ISSUE_RC',\n    'ISSUE_WHO',\n    'ISSUE_TYPE',\n    'ISSUE_CC',\n    'ISSUE_FCC',\n    'ISSUE_CONTROL_RISK',\n    'LINK_MORE_RESPONSIBILITY',\n  ];\n  selectorConfig = {\n    ISSUE_CATGORY: {\n      panelTitle: 'Select Issue Category',\n      floatingTextSingular: 'Category selected',\n      searchPlaceholder: 'Search Issue Category',\n      searchEnabled: true,\n      noDataText: 'No Categories Found',\n    },\n    ISSUE_RC: {\n      panelTitle: 'Select Responsibility Center',\n      floatingTextSingular: 'Responsibility center selected',\n      floatingTextPlural: 'Responsibility centers selected',\n      searchPlaceholder: 'Search Responsibility Center',\n      searchEnabled: true,\n      noDataText: 'No Responsibility Centers Found',\n      selectAllEnabled: true,\n    },\n    ISSUE_WHO: {\n      panelTitle: 'Select User',\n      floatingTextSingular: 'User selected',\n      searchPlaceholder: 'Search User',\n      searchEnabled: true,\n      noDataText: 'No Users Found',\n    },\n    ISSUE_TYPE: {\n      panelTitle: 'Select Issue Type',\n      floatingTextSingular: 'Issue Type selected',\n      searchPlaceholder: 'Search Issue Type',\n      searchEnabled: true,\n      noDataText: 'No Issue Types Found',\n    },\n    ISSUE_CC: {\n      panelTitle: 'Select user(s)',\n      floatingTextSingular: 'User selected',\n      searchPlaceholder: 'Search User',\n      searchEnabled: true,\n      selectAllEnabled: true,\n      noDataText: 'No Users Found',\n    },\n    ISSUE_FCC: {\n      panelTitle: 'Select user(s)',\n      floatingTextSingular: 'User selected',\n      searchPlaceholder: 'Search User',\n      searchEnabled: true,\n      selectAllEnabled: true,\n      noDataText: 'No Users Found',\n    },\n  };\n\n  fieldsWithError: any = [];\n  // hiddenList: any[] = [];\n\n  activeField: string = '';\n  activeSelector: string = '';\n  listLoadingStatus: any[] = [];\n  currentTime: string = '';\n  /**\n   * isRCPreSelected,isRCVisible are variable used to set the visibility of rc field and edit button in certain conditions\n   */\n  isRCPreSelected: boolean = false;\n  isRCVisible: boolean = true;\n  isRCMandatory: boolean = false;\n  dataForEdit!: any;\n  isRiskControlVisible: boolean = false;\n  isFutureDate: boolean = true;\n  isLinkResponsibility: boolean = false;\n  isLinkAssessment: boolean = false;\n  isLinkRC: boolean = false;\n  isRCEditable: boolean = false;\n  isLinkQuestionVisible: boolean = false;\n  constructor(\n    private logService: LogIssueService,\n    private authService: AuthService,\n    private uiKitService: UiKitService,\n    private snackBar: SnackBarService,\n    private commonService: CommonService,\n    private changeDetectorRef: ChangeDetectorRef,\n    private organizationUserService: OrganizationUserService,\n    private organizationCommonService: OrganizationCommonService,\n    private complianceCommonService: ComplianceCommonService,\n    private iframeService: IframeService\n  ) { }\n  ngOnInit(): void {\n    this._initiateAPI();\n  }\n  ngAfterViewInit() {\n    this.changeDetectorRef.detectChanges();\n    this.fetchControlRisks();\n    this.decideRCmandatory();\n  }\n\n  ngOnChanges() {\n    this.currentTime = this.getCurrentTime();\n  }\n\n  _initiateAPI() {\n    this.currentTime = this.getCurrentTime();\n    this.pickerChanged.emit(false);\n    this.setUserDetails();\n    this.fetchIssueTypes();\n    this.fetchUserList();\n    this.setLink();\n    this.setRcEditable();\n    if (this.mode === 'EDIT') {\n      this._initiateEditAPI();\n    }\n  }\n\n  _initiateEditAPI() {\n    this.fetchRCList();\n    this.fetchCategoryList();\n  }\n\n  decideRCmandatory() {\n    this.isRCMandatory = false;\n  }\n\n  setCurrentTime() {\n    this.currentTime = this.getCurrentTime();\n  }\n  getCurrentTime() {\n    let today = new Date();\n    if (\n      today.getDate() === new Date(this.logIssueForm.issueDueDate).getDate()\n    ) {\n      if (\n        today.getHours() < 12 &&\n        today.getMinutes() < 59 &&\n        today.getSeconds() < 59\n      ) {\n        return `${today.getHours() < 10 ? '0' + today.getHours() : today.getHours()\n          }:${today.getMinutes() < 10\n            ? '0' + today.getMinutes()\n            : today.getMinutes()\n          } am`;\n      } else {\n        return `${today.getHours() - 12 < 10\n            ? '0' + (today.getHours() - 12)\n            : today.getHours() - 12\n          }:${today.getMinutes() < 10\n            ? '0' + today.getMinutes()\n            : today.getMinutes()\n          } pm`;\n      }\n    } else {\n      return '00:00 am';\n    }\n  }\n  setRcEditable() {\n    if (\n      (!['COMPLIANCE_WORKROOM', 'ASSESSMENT'].includes(this.openedFrom) &&\n        ['CREATE'].includes(this.mode)) ||\n      (['EDIT'].includes(this.mode) &&\n        !this.logIssueForm?.responsibilityLinked?.length)\n    ) {\n      this.isRCEditable = true;\n    } else {\n      this.isRCEditable = false;\n    }\n  }\n  setLink() {\n    if (\n      ['ASSESSMENT'].includes(this.openedFrom) ||\n      this.isLinkQuestionVisible\n    ) {\n      this.linkText = 'Linked Responsibility';\n    } else if (\n      ['COMPLIANCE_WORKROOM'].includes(this.openedFrom) ||\n      this.logIssueForm?.responsibilityLinked?.length\n    ) {\n      this.linkText = 'Linked Responsibilities';\n    } else {\n      this.linkText = 'Link Responsibilities';\n    }\n  }\n  setUserDetails() {\n    this.currentUser = this.authService?.getUserDetails()?.user;\n    let utcTime;\n    this.organizationCommonService?.getOrgUserInfo()?.subscribe({\n      next: (res: any) => {\n        if (res) {\n          utcTime = res?.current_time_utc;\n          const updatedDate =\n            this.authService?.convertUtcToLocalDateTime(utcTime);\n          this.dateConfig = { ...this.dateConfig, min: updatedDate };\n          this.changeDetectorRef?.detectChanges();\n        }\n      },\n      error: (error: Error) => {\n        console.error(error);\n      },\n    });\n  }\n  fetchIssueTypes() {\n    this.listLoadingStatus[0] = false;\n    this.checkAllListLoaded();\n    this.logService.getIssueTypes().subscribe(\n      (res: any) => {\n        this.listLoadingStatus[0] = true;\n        this.listData.issueTypeList = res;\n        this.checkAllListLoaded();\n      },\n      (error: any) => {\n        this.listLoadingStatus[0] = true;\n        this.checkAllListLoaded();\n      }\n    );\n  }\n  fetchUserList() {\n    this.listLoadingStatus[1] = false;\n    this.organizationUserService?.getOrganizationUsers()?.subscribe({\n      next: (res: any) => {\n        this.listLoadingStatus[1] = true;\n        this.listData.userList = res;\n        this.checkAllListLoaded();\n      },\n      error: (error: Error) => {\n        this.listLoadingStatus[1] = true;\n        this.checkAllListLoaded();\n      },\n    });\n  }\n\n  fetchCategoryList() {\n    this.listLoadingStatus[2] = false;\n    this.logService.getIssueCategories().subscribe(\n      (res: any) => {\n        this.listLoadingStatus[2] = true;\n        this.listData.categoryList = res?.data;\n        this.listData.categoryList = this.listData.categoryList.filter(\n          (e: any) => e?.category_name !== 'Uncategorized'\n        );\n        this.checkAllListLoaded();\n      },\n      (error: any) => {\n        this.listLoadingStatus[2] = true;\n        this.checkAllListLoaded();\n      }\n    );\n  }\n\n  fetchRCList() {\n    this.listLoadingStatus[3] = false;\n    this.complianceCommonService?.getRcListInfo()?.subscribe({\n      next: (res: any) => {\n        this.listLoadingStatus[3] = true;\n        this.listData.rcList = res;\n        this.checkAllListLoaded();\n        this.setSelectedRC();\n      },\n      error: (error: Error) => {\n        this.listLoadingStatus[3] = true;\n        this.checkAllListLoaded();\n      },\n    });\n  }\n\n  setSelectedRC() {\n    if (\n      this.reponsibilityData?.rcId &&\n      (this.openedFrom === 'COMPLIANCE_WORKROOM' ||\n        this.openedFrom === 'ASSESSMENT')\n    ) {\n      this.logIssueForm.issueRC = this.reponsibilityData?.rcId?.length\n        ? this.listData?.rcList.filter((e: any) =>\n          this.reponsibilityData?.rcId.includes(e?.rc_id)\n        )\n        : [];\n    } else if (\n      this.issueDetails?.rcId &&\n      [\n        'AUDIT_WORKROOM',\n        'VIEW_AUDIT_EXECUTION_SUMMARY',\n        'EXECUTE_AUDIT_PLAN',\n      ].includes(this.openedFrom)\n    ) {\n      this.logIssueForm.issueRC = this.issueDetails?.rcId\n        ? this.listData.rcList.filter(\n          (e: any) => e.rc_id === this.issueDetails?.rcId\n        )\n        : [];\n    }\n\n    if (this.logIssueForm?.issueRC?.length) {\n      this.isRCPreSelected = true;\n    } else {\n      this.isRCPreSelected = false;\n    }\n    if (\n      !(this.reponsibilityData?.rcId || this.issueDetails?.rcId) &&\n      [\n        'COMPLIANCE_WORKROOM',\n        'AUDIT_WORKROOM',\n        'VIEW_AUDIT_EXECUTION_SUMMARY',\n        'EXECUTE_AUDIT_PLAN',\n      ].includes(this.openedFrom)\n    ) {\n      this.isRCVisible = false;\n    } else {\n      this.isRCVisible = true;\n    }\n  }\n\n  fetchControlRisks() {\n    if (\n      ['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\n        this.openedFrom\n      )\n    ) {\n      this.getLinkage(\n        this.issueDetails?.auditObjId,\n        this.logIssueForm.linkageType\n      );\n    }\n  }\n\n  getLinkage(auditId: any, type: string) {\n    this.isRiskControlLoading = true;\n    this.logService.getControlRisk(auditId, type)?.subscribe(\n      (data: any) => {\n        this.listData.linkageList = [...this.listData.linkageList, ...data];\n        this.listData.linkageList = this.listData.linkageList.filter(\n          (thing: any, index: any, self: any) =>\n            index ===\n            self.findIndex(\n              (t: any) =>\n                t.itemId === thing.itemId && t.itemType === thing.itemType\n            )\n        );\n        this.isRiskControlLoading = false;\n      },\n      (error: any) => {\n        this.isRiskControlLoading = false;\n      }\n    );\n  }\n  /**\n   * This functioj check weather all the required lists are loaded\n   * If loaded hides the loader otherwise shows the loader.\n   */\n  checkAllListLoaded() {\n    if (this.listLoadingStatus.includes(false) && this.mode === 'EDIT') {\n      this.loader = true;\n      this.uiKitService.isLoader = true;\n    } else {\n      this.loader = false;\n      this.uiKitService.isLoader = false;\n      if (this.mode === 'EDIT') {\n        this.fetchIssueDetails();\n      }\n    }\n  }\n  /**\n   * Removes error from the fields with error to remove the error messag from the UI\n   * @param errorKey error Identifier used to show error in specific fields.\n   */\n  removeError(errorKey: string) {\n    const index = this.fieldsWithError.indexOf(errorKey);\n    if (index > -1) {\n      this.fieldsWithError.splice(index, 1);\n    }\n  }\n  openDatePicker() {\n    this.datePicker?.api?.open();\n    this.datePickerOverlay = true;\n    this.setActiveFieldSelector('ISSUE_DATE_TIME', 'ISSUE_DATE_TIME');\n  }\n  closeDatePicker(evt: any) {\n    if (!evt) {\n      return;\n    }\n    if (evt?.date?.$d) {\n      let monthArray = [\n        'Jan',\n        'Feb',\n        'Mar',\n        'Apr',\n        'Jun',\n        'Jul',\n        'Aug',\n        'Sep',\n        'Oct',\n        'Nov',\n        'Dec',\n      ];\n      const dateValue = new Date(evt?.date?.$d).getDate();\n      const monthValue = monthArray[new Date(evt?.date?.$d).getMonth()];\n      const yearValue = new Date(evt?.date?.$d).getFullYear();\n      const dateStr = `${dateValue} ${monthValue} ${yearValue}`;\n      if (!this.validateDate(this.logIssueForm?.issueDueTime, evt?.date?.$d)) {\n        return;\n      }\n    }\n    if (evt?.date?.$d) {\n      this.logIssueForm.issueDueDate = evt?.date?.$d;\n    }\n    this.datePicker?.api?.close();\n    this.datePickerOverlay = false;\n    this.setActiveFieldSelector('', '');\n  }\n\n  setActiveFieldSelector(activeField: string, activeSelector?: string) {\n    this.activeField = activeField;\n    activeSelector\n      ? (this.activeSelector = activeSelector)\n      : (this.activeSelector = '');\n    switch (activeSelector) {\n      case 'ISSUE_RC':\n        this.fetchRCList();\n        break;\n      case 'ISSUE_CATEGORY':\n        this.fetchCategoryList();\n        break;\n    }\n    const sliderType = [\n      'ISSUE_RC',\n      'ISSUE_CATEGORY',\n      'ISSUE_TYPE',\n      'ISSUE_CC',\n      'ISSUE_FCC',\n      'ISSUE_WHO',\n      'ISSUE_CONTROL_RISK',\n      'LINK_MORE_RESPONSIBILITY',\n    ];\n    if (sliderType.includes(activeField)) {\n      this.pickerChanged.emit(true);\n    }\n  }\n\n  fieldDeselector(type: any) {\n    this.activeSelector = '';\n    this.activeField = '';\n    this.pickerChanged.emit(false);\n  }\n\n  selectorAction(evt: any, type: any) {\n    switch (type) {\n      case 'ISSUE_CATEGORY': {\n        this.logIssueForm.issueCategory = this.idToArray(\n          evt,\n          this.listData.categoryList,\n          'category_id'\n        );\n        this.fieldDeselector(type);\n        if (evt?.length > 0) {\n          this.removeError('issueCategory');\n        }\n        if (this.logIssueForm?.issueCategory[0]?.custom_tags?.length) {\n          const tag: any = [];\n          this.logIssueForm?.issueCategory[0]?.custom_tags.forEach(\n            (element: any) => {\n              tag.push({ name: element, value: '' });\n            }\n          );\n          this.logIssueForm.issueCustomTag = tag;\n        } else {\n          this.logIssueForm.issueCustomTag = [];\n        }\n        break;\n      }\n      //[\"issueName\", \"issueCategory\", \"issueRC\", \"entrustTo\", \"issueDueDate\", \"issueRecommendation\"]\n      case 'ISSUE_RC': {\n        this.logIssueForm.issueRC = this.idToArray(\n          evt,\n          this.listData.rcList,\n          'rc_id'\n        );\n        this.fieldDeselector(type);\n        if (evt?.length > 0) {\n          this.removeError('issueRC');\n        }\n        break;\n      }\n      case 'ISSUE_WHO': {\n        this.logIssueForm.entrustTo = this.idToArray(\n          evt,\n          this.listData.userList,\n          'employee_id'\n        );\n        if (\n          this.logIssueForm.entrustTo[0]?.my_member_id === this.currentUser.id\n        ) {\n          this.logIssueForm.isAssignToMyself = true;\n        } else {\n          this.logIssueForm.isAssignToMyself = false;\n        }\n        this.fieldDeselector(type);\n        if (evt?.length > 0) {\n          this.removeError('entrustTo');\n        }\n        break;\n      }\n      case 'ISSUE_TYPE': {\n        this.logIssueForm.issueType = this.idToArray(\n          evt,\n          this.listData.issueTypeList,\n          'issue_id'\n        );\n        this.fieldDeselector(type);\n        break;\n      }\n      case 'ISSUE_CC': {\n        this.logIssueForm.issueCCUsers = this.idToArray(\n          evt,\n          this.listData.userList,\n          'employee_email'\n        );\n        this.fieldDeselector(type);\n        break;\n      }\n      case 'ISSUE_FCC': {\n        this.logIssueForm.failureCCUsers = this.idToArray(\n          evt,\n          this.listData.userList,\n          'employee_email'\n        );\n        this.fieldDeselector(type);\n        break;\n      }\n\n      case 'ISSUE_CONTROL_RISK':\n        this.logIssueForm.linkedControlRisk = this.idToArray(\n          evt,\n          this.listData.linkageList,\n          'itemId'\n        );\n        this.logIssueForm.linkageType =\n          this.logIssueForm?.linkedControlRisk[0]?.itemType;\n        this.fieldDeselector(type);\n        break;\n\n      case 'LINK_MORE_RESPONSIBILITY': {\n        this.getRCData(evt);\n        this.logIssueForm.responsibilityLinked = evt;\n        this.fieldDeselector(type);\n        break;\n      }\n    }\n    this.pickerChanged.emit(false);\n  }\n\n  deleteItem(type: any, element: any) {\n    switch (type) {\n      case 'ISSUE_CATEGORY': {\n        const itemIndex = this.logIssueForm.issueCategory.findIndex(\n          (item: any) => item.category_id === element.category_id\n        );\n        if (itemIndex !== -1) {\n          this.logIssueForm.issueCategory.splice(itemIndex, 1);\n        }\n        break;\n      }\n      case 'ISSUE_RC': {\n        const itemIndex = this.logIssueForm.issueRC.findIndex(\n          (item: any) => item.rc_id === element.rc_id\n        );\n        if (itemIndex !== -1) {\n          this.logIssueForm.issueRC.splice(itemIndex, 1);\n        }\n        break;\n      }\n      case 'ISSUE_WHO': {\n        const itemIndex = this.logIssueForm.entrustTo.findIndex(\n          (item: any) => item.employee_id === element.employee_id\n        );\n        if (itemIndex !== -1) {\n          this.logIssueForm.entrustTo.splice(itemIndex, 1);\n        }\n        this.logIssueForm.isAssignToMyself = false;\n        break;\n      }\n      case 'ISSUE_TYPE': {\n        const itemIndex = this.logIssueForm.issueType.findIndex(\n          (item: any) => item.issue_id === element.issue_id\n        );\n        if (itemIndex !== -1) {\n          this.logIssueForm.issueType.splice(itemIndex, 1);\n        }\n        break;\n      }\n      case 'ISSUE_CC': {\n        const itemIndex = this.logIssueForm.issueCCUsers.findIndex(\n          (item: any) => item.employee_email === element.employee_email\n        );\n        if (itemIndex !== -1) {\n          this.logIssueForm.issueCCUsers.splice(itemIndex, 1);\n        }\n        break;\n      }\n      case 'ISSUE_FCC': {\n        const itemIndex = this.logIssueForm.failureCCUsers.findIndex(\n          (item: any) => item.employee_email === element.employee_email\n        );\n        if (itemIndex !== -1) {\n          this.logIssueForm.failureCCUsers.splice(itemIndex, 1);\n        }\n        break;\n      }\n      case 'ISSUE_CONTROL_RISK':\n        const itemIndex = this.logIssueForm.linkedControlRisk.findIndex(\n          (item: any) => item.itemId === element.itemId\n        );\n        if (itemIndex !== -1) {\n          this.logIssueForm.linkedControlRisk.splice(itemIndex, 1);\n        }\n        break;\n      case 'LINK_MORE_RESPONSIBILITY': {\n        const itemIndex = this.logIssueForm.responsibilityLinked.findIndex(\n          (item: any) => item.ReportId === element.ReportId\n        );\n        if (itemIndex > -1) {\n          this.logIssueForm.responsibilityLinked.splice(itemIndex, 1);\n        }\n        this.getRCData(this.logIssueForm.responsibilityLinked);\n        break;\n      }\n    }\n  }\n\n  getRcId(rc: any) {\n    let rcId = rc?.responsibilityCenterArr?.length\n      ? rc?.responsibilityCenterArr\n      : rc?.rc_id_arr?.length\n        ? rc?.rc_id_arr\n        : [];\n    if (rc?.rc_id) {\n      rcId = [...rcId, rc?.rc_id];\n    }\n    return rcId;\n  }\n\n  getRCData(evt: any) {\n    let rcSelected: any[] = [];\n    if (this.reponsibilityData?.rcId) {\n      evt = [...evt, this.reponsibilityData?.rcId];\n    }\n    evt.forEach((element: any) => {\n      let rcId: any[] = this.getRcId(element);\n      if (this.reponsibilityData?.rcId?.length) {\n        const newRcIds = this.reponsibilityData?.rcId.filter(\n          (el: any) => !rcId.includes(el)\n        );\n        rcId = [...rcId, ...newRcIds];\n      }\n      if (rcId?.length) {\n        const newRcSelected = rcId\n          .map((rcId: any) =>\n            this.listData?.rcList.find((el: any) => el?.rc_id === rcId)\n          )\n          .filter(\n            (rcData) =>\n              rcData &&\n              !rcSelected.some(\n                (selectedEl: any) => selectedEl?.rc_id === rcData?.rc_id\n              )\n          );\n        rcSelected = [...rcSelected, ...newRcSelected];\n      }\n    });\n    this.logIssueForm.issueRC = rcSelected;\n  }\n\n  assignMyself(event: any) {\n    this.removeError('entrustTo');\n    this.logIssueForm.entrustTo = [];\n    if (event) {\n      this.logIssueForm.entrustTo = this.listData.userList.filter(\n        (emplist: any) => emplist.my_member_id === this.currentUser.id\n      );\n    }\n  }\n  setException(type: any) {\n    this.logIssueForm.exceptionType = type;\n  }\n  setEvidence(type: any) {\n    this.logIssueForm.evidenceRequired = type;\n  }\n  setIssueType(type: any) {\n    this.logIssueForm.issueType = type;\n  }\n\n  addMoreInfo(event: any) {\n    this.additionalOptionStatus[event.code] = event.checked;\n    this.scrollToBottom = true;\n  }\n\n  idToArray(selectedItems: any, listItems: any, filterkey: any) {\n    const selected = selectedItems;\n    const list = listItems;\n    const key = filterkey;\n    const x = list.filter((el: any) => selected.includes(el[key]));\n    return x;\n  }\n  ///Code between 503 to 608 can be optimized to remove duplication\n  selectFile(type: string, files: any) {\n    switch (type) {\n      case 'ISSUE_DESCRIPTION': {\n        for (let i = 0; i <= files.length - 1; i++) {\n          const name = files[i].file.name ?? '';\n          this.AttachmentTrack[0].push(name);\n          this.uploadFile(files[i].file, type);\n        }\n        break;\n      }\n      case 'RECOMMENDED_ACTIONS': {\n        for (let i = 0; i <= files.length - 1; i++) {\n          const name = files[i].file.name ?? '';\n          this.AttachmentTrack[1].push(name);\n          this.uploadFile(files[i].file, type);\n        }\n        break;\n      }\n      case 'ASSOCIATED_RISKS': {\n        for (let i = 0; i <= files.length - 1; i++) {\n          const name = files[i].file.name ?? '';\n          this.AttachmentTrack[2].push(name);\n          this.uploadFile(files[i].file, type);\n        }\n        break;\n      }\n    }\n  }\n\n  uploadFile(file: any, type: string) {\n    let trackIndex = 0;\n    switch (type) {\n      case 'ISSUE_DESCRIPTION': {\n        trackIndex = 0;\n        break;\n      }\n      case 'RECOMMENDED_ACTIONS': {\n        trackIndex = 1;\n        break;\n      }\n      case 'ASSOCIATED_RISKS': {\n        trackIndex = 2;\n        break;\n      }\n    }\n\n    const formData = new FormData();\n    formData.append('file', file);\n    const destinationString = this.authService.getOrganizationId().toString();\n    this.logService.uploadFiles(formData, destinationString + '/').subscribe(\n      (res: any) => {\n        const index = this.AttachmentTrack[trackIndex].indexOf(file?.name);\n        if (index !== -1) {\n          this.AttachmentTrack[trackIndex].splice(index, 1);\n        }\n\n        switch (type) {\n          case 'ISSUE_DESCRIPTION': {\n            this.logIssueForm.issueDescriptionAttachements.push(res);\n            break;\n          }\n          case 'RECOMMENDED_ACTIONS': {\n            this.logIssueForm.recommendedActionsAttachments.push(res);\n            break;\n          }\n          case 'ASSOCIATED_RISKS': {\n            this.logIssueForm.associatedRisksAttachments.push(res);\n            break;\n          }\n        }\n      },\n      (error) => {\n        const index = this.AttachmentTrack[trackIndex].indexOf(file.name);\n        if (index !== -1) {\n          this.AttachmentTrack[trackIndex].splice(index, 1);\n        }\n      }\n    );\n  }\n\n  deleteFile(file: any, type: string) {\n    let fileIndex = -1;\n    switch (type) {\n      case 'ISSUE_DESCRIPTION': {\n        fileIndex =\n          this.logIssueForm.issueDescriptionAttachements?.findIndex(\n            (currentFiles: any) => currentFiles.org_file === file.org_file\n          ) ?? -1;\n        this.logIssueForm.issueDescriptionAttachements?.splice(fileIndex, 1);\n        break;\n      }\n      case 'RECOMMENDED_ACTIONS': {\n        fileIndex =\n          this.logIssueForm.recommendedActionsAttachments?.findIndex(\n            (currentFiles: any) => currentFiles.org_file === file.org_file\n          ) ?? -1;\n        this.logIssueForm.recommendedActionsAttachments?.splice(fileIndex, 1);\n        break;\n      }\n      case 'ASSOCIATED_RISKS': {\n        fileIndex =\n          this.logIssueForm.associatedRisksAttachments?.findIndex(\n            (currentFiles: any) => currentFiles.org_file === file.org_file\n          ) ?? -1;\n        this.logIssueForm.associatedRisksAttachments?.splice(fileIndex, 1);\n        break;\n      }\n    }\n  }\n\n  handleIssueIdFromResponse(res: any): void {\n    const issueId = res?.data?._id || res?.data?.id;\n    if (issueId && this.openedFrom === 'ASSESSMENT') {\n      sessionStorage.setItem('issue_id', issueId.toString());\n    }\n  }\n\n  addIssue() {\n    const form = cloneDeep(this.logIssueForm);\n    if (form.isAssignToMyself) {\n      form.entrustTo = this.listData.userList.filter(\n        (emplist: any) => emplist.my_member_id === this.currentUser.id\n      );\n    }\n\n    this.fieldsWithError = [];\n    this.fieldsWithError = this.logService.validate(\n      form,\n      this.openedFrom,\n      this.isRCMandatory\n    );\n    if (this.fieldsWithError.length > 0) {\n      return;\n    }\n    const PAYLOAD = this.logService.payloadBuilder(\n      form,\n      this.additionalOptionStatus\n    );\n    if (this.mode === 'CREATE') {\n      if (\n        ['COMPLIANCE_WORKROOM', 'ASSESSMENT'].includes(this.openedFrom) &&\n        this.reponsibilityData?.responsibilityId\n      ) {\n        PAYLOAD.responsibilities_Linked.push(\n          this.reponsibilityData?.responsibilityId\n        );\n        PAYLOAD.linked_assessment_issues.due_date_id =\n          this.reponsibilityData?.dueDateId;\n      }\n      if (\n        ['ASSESSMENT'].includes(this.openedFrom) &&\n        this.assessmentQuestion?.assessmentId\n      ) {\n        PAYLOAD.linked_assessment_issues.assessment_id =\n          this.assessmentQuestion?.assessmentId;\n        PAYLOAD.linked_assessment_issues.question_id =\n          this.assessmentQuestion?.questionId;\n        PAYLOAD.linked_assessment_issues.auditee_id =\n          this.assessmentQuestion?.auditeeId;\n        PAYLOAD.linked_assessment_issues.resp_id =\n          this.reponsibilityData?.responsibilityObjectId;\n        PAYLOAD.linked_assessment_issues.due_date_id =\n          this.reponsibilityData?.dueDateId;\n        PAYLOAD.source = this.source;\n      }\n      if (\n        ['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\n          this.openedFrom\n        )\n      ) {\n        if (\n          this.logIssueForm?.linkageType &&\n          this.logIssueForm?.linkedControlRisk.length > 0\n        ) {\n          if (\n            ['RISK', 'RESPONSIBILITY'].includes(this.logIssueForm?.linkageType)\n          ) {\n            PAYLOAD.linkage_object.source_id =\n              this.logIssueForm?.linkedControlRisk[0]?.itemId;\n          }\n        }\n      }\n      if (\n        [\n          'AUDIT_WORKROOM',\n          'VIEW_AUDIT_EXECUTION_SUMMARY',\n          'EXECUTE_AUDIT_PLAN',\n        ].includes(this.openedFrom)\n      ) {\n        if (this.issueDetails.auditPlanId) {\n          PAYLOAD.linkage_object.source_id = this.issueDetails.auditPlanId;\n        }\n      }\n\n      if (\n        !this.validateDate(\n          this.logIssueForm.issueDueTime,\n          moment(this.logIssueForm.issueDueDate, 'DD MMM YYYY')?.toDate()\n        )\n      ) {\n        return;\n      }\n    }\n\n    if (this.mode === 'EDIT') {\n      PAYLOAD.IssueLinkage = this.dataForEdit?.linkage_object;\n    }\n    this.loader = true;\n    this.uiKitService.isLoader = true;\n    if (this.mode === 'EDIT') {\n      this.logService.updateIssue(PAYLOAD, this.issueId).subscribe(\n        (res: any) => {\n          // this.smileyMessage = `The issue has been updated.`;\n          this.issueData = res;\n          this.showSmiley = true;\n          this.uiKitService.isSmileyOn = true;\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.handleIssueIdFromResponse(res);\n        },\n        (error) => {\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.snackBar.show(\n            'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n            'alert'\n          );\n        }\n      );\n    } else if (this.mode === 'CREATE' || this.mode === '' || !this.mode) {\n      this.logService.createIssue(PAYLOAD).subscribe(\n        (res: any) => {\n          this.issueData = res;\n          this.showSmiley = true;\n          this.uiKitService.isSmileyOn = true;\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.handleIssueIdFromResponse(res);\n        },\n        (error) => {\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.snackBar.show(\n            'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n            'alert'\n          );\n        }\n      );\n    }\n  }\n  closeSmiley(evt?: any) {\n    this.resetIssueForm();\n    this.showSmiley = false;\n    this.uiKitService.isSmileyOn = false;\n    this.closeWorkFlow(this.issueData, false);\n  }\n  /**\n   * Closes workflow engine\n   * @param evt\n   * @param confirm\n   */\n  closeWorkFlow(evt: any, confirm: any) {\n    this.closeWorkflow.emit({ evt, confirm });\n  }\n  action(evt: any) {\n    if (evt === 'addMore') {\n      this.resetIssueForm();\n      this.showSmiley = false;\n      this.uiKitService.isSmileyOn = false;\n      // this.closeWorkFlow(this.issueData, false);\n    } else if (evt === 'viewIssue') {\n      this.viewIssue();\n    }\n  }\n\n  viewIssue(): void {\n    this.disconnectRefresh.emit(false);\n    let url: string;\n    if (window.location.host.startsWith('localhost')) {\n      url = 'http://' + window.location.host;\n    } else {\n      url = 'https://' + window.location.host;\n    }\n\n    if (window.location.host.startsWith('localhost')) {\n      url += '/issue/issue-workroom/' + this.issueData?._id;\n    } else {\n      url += '/audit/issue/issue-workroom/' + this.issueData?._id;\n    }\n    this.iframeService.redirectIfInIframe(url);\n  }\n\n  /**\n   * Populate the tickmark of optional fields\n   */\n  populateOptionalFields() {\n    const activatedOptions = [];\n    for (const key of Object.keys(this.additionalOptionStatus)) {\n      if (this.additionalOptionStatus[key] === true) {\n        activatedOptions.push(key);\n      }\n    }\n    this.populateOption.emit(activatedOptions);\n  }\n  /**\n   * Fetchs issue details when in edit mode based on the input id passed\n   */\n  fetchIssueDetails() {\n    this.loader = true;\n    this.uiKitService.isLoader = true;\n    this.logService.getIssueDetails(this.issueId).subscribe((data: any) => {\n      this.populateForm(data);\n      this.setRcEditable();\n    });\n  }\n  /**\n   * Populates the issue form when in edit mode\n   * @param issueData issue data fetched from API\n   */\n  async populateForm(issueData: any) {\n    this.dataForEdit = issueData;\n    this.loader = false;\n    this.uiKitService.isLoader = false;\n    if (issueData?.linkage_responsibility_details?.length) {\n      this.isLinkResponsibility = true;\n    }\n    if (issueData?.rc_ids?.length) {\n      this.isLinkRC = false;\n    }\n    if (issueData?.linkage_responsibility_details?.length) {\n      this.reponsibilityData = {\n        responsibilityId:\n          issueData?.linkage_responsibility_details[0]?.ReportId,\n        responsibilityName:\n          issueData?.linkage_responsibility_details[0]?.ReportName,\n        rcId: issueData?.linkage_responsibility_details[0]?.rc_id_arr,\n        responsibilityObjectId:\n          issueData?.linkage_responsibility_details[0]?.source_object_id,\n        dueDateId: '',\n      };\n    }\n    this.isLinkQuestionVisible = issueData?.linked_assessment_question?.response\n      ?.name\n      ? true\n      : false;\n    const issueDueDate = issueData?.frequency_details?.frequency_date\n      .split('-')\n      .map(Number);\n    if (issueData?.linked_assessment_question) {\n      this.assessmentQuestion = {\n        questionName:\n          issueData?.linked_assessment_question?.response?.title ?? '',\n        questionId: issueData?.linked_assessment_question?.response?.name ?? '',\n        questionNumber:\n          issueData?.linked_assessment_question?.response?.question_number ??\n          '',\n        assessmentId:\n          issueData?.linked_assessment_question?.assessment_id ?? '',\n      };\n    }\n    this.logIssueForm = {\n      issueName: issueData?.title ?? '',\n      evidenceRequired: issueData?.evidence?.evidence_flag ?? 0,\n      issueDescription: issueData?.description?.length\n        ? issueData?.description[0]?.text\n        : '',\n      issueDescriptionAttachements: issueData?.description?.length\n        ? issueData?.description[0]?.attachments\n        : [],\n      issueCategory: issueData?.category_id\n        ? this.listData?.categoryList?.filter(\n          (e: any) => e?.category_id === issueData?.category_id\n        )\n        : [],\n      issueCustomTag: issueData?.custom_tags ?? [],\n      issueRC: issueData?.rc_ids?.length\n        ? this.listData?.rcList?.filter((e: any) =>\n          issueData?.rc_ids?.includes(e?.rc_id)\n        )\n        : [],\n      responsibilityLinked: issueData?.linkage_responsibility_details?.length\n        ? issueData?.linkage_responsibility_details\n        : [],\n      recommendedActionsAttachments: issueData?.recommendation?.length\n        ? issueData?.recommendation[0]?.attachments\n        : [],\n      associatedRisksAttachments: [],\n      isAssignToMyself:\n        issueData?.assignee_id === this.currentUser?.id ? true : false,\n      entrustTo: this.listData?.userList?.filter(\n        (e: any) => e?.my_member_id === issueData?.assignee_id\n      ),\n      issueDueDate: issueData?.frequency_details?.frequency_date\n        ? moment(\n          `${issueDueDate[0]}-${issueDueDate[1]}-${issueDueDate[2]}`,\n          'YYYY-MM-DD'\n        )\n        : '',\n      issueDueTime: this.logService.convertFrom24To12Format(\n        issueData?.frequency_details?.frequency_time\n      ),\n      exceptionType: issueData?.exception_type ?? 1,\n      issueRiskRating: issueData?.risk_class ?? 1,\n      issuePriority: issueData?.priority ?? 1,\n      issueRecommendation: issueData?.recommendation?.length\n        ? issueData?.recommendation[0]?.text\n        : '',\n      issueAssociatedRisk: issueData?.associated_risk?.length\n        ? issueData?.associated_risk[0]?.text\n        : '',\n      issueCCUsers: issueData.overseer?.cc_email.length\n        ? await this.generateOverseerList(\n          this.listData?.userList,\n          issueData?.overseer?.cc_email\n        )\n        : [],\n      failureCCUsers: issueData?.overseer?.failure_cc_email.length\n        ? await this.generateOverseerList(\n          this.listData?.userList,\n          issueData?.overseer?.failure_cc_email\n        )\n        : [],\n      linkedControlRisk: [],\n      linkageType: 'RESPONSIBILITY',\n      issueType: issueData?.issueType ? issueData?.issueType : 'issue',\n      title: issueData?.linked_assessment_question?.response?.title ?? '',\n      questionNumber:\n        issueData?.linked_assessment_question?.response?.question_number ?? '',\n    };\n    if (this.mode === 'EDIT') {\n      this.logIssueForm.issueRC?.length > 0\n        ? (this.isRCPreSelected = true)\n        : (this.isRCPreSelected = false);\n      issueData.linkage_object?.source === 'GLOBAL' && issueData?.rc_id\n        ? (this.isRCPreSelected = false)\n        : (this.isRCPreSelected = true);\n    }\n    this.setOptionalField(issueData);\n    this.setLink();\n  }\n\n  /**\n   * Sets the visibility of optional fields\n   * @param issueData  issue data fetched from API\n   */\n  setOptionalField(issueData: any) {\n    this.additionalOptionStatus = {\n      EXCEPTION_TYPE: issueData.exception_type ? true : false,\n      EVIDENCE: issueData.evidence.evidence_flag ? true : false,\n      PRIORITY: issueData.priority ? true : false,\n      ISSUE_TYPE: false,\n      ASSOCIATED_RISKS: issueData.associated_risk.length\n        ? issueData.associated_risk[0].text.length\n          ? true\n          : false\n        : false,\n      OVERSIGHT:\n        issueData.overseer.cc_email.length > 0 ||\n          issueData.overseer.failure_cc_email.length > 0\n          ? true\n          : false,\n    };\n    this.populateOptionalFields();\n  }\n  /**\n   * Generates list of selected overseer\n   * @param allUserList list of all users in the organzation\n   * @param overseerList  lit of the overseer that needs to be filtered\n   * @returns  list of array containing the users objects\n   */\n  generateOverseerList(allUserList: any, overseerList: any) {\n    return overseerList.map((user: any) => {\n      const foundUser = allUserList.find(\n        (element: any) => element.my_member_id === user.member_id\n      );\n      if (foundUser) {\n        return foundUser;\n      }\n    });\n  }\n  /**\n   * Resets issue form\n   */\n  resetIssueForm() {\n    this.scrollToBottom = false;\n    this.logIssueForm = {\n      issueName: '',\n      evidenceRequired: 0,\n      issueDescription: '',\n      issueDescriptionAttachements: [],\n      recommendedActionsAttachments: [],\n      associatedRisksAttachments: [],\n      issueCategory: [],\n      issueCustomTag: [],\n      issueRC: [],\n      issueType: 'issue',\n      isAssignToMyself: false,\n      entrustTo: [],\n      issueDueDate: '',\n      issueDueTime: DEFAULT_TIME,\n      exceptionType: 1,\n      issueRiskRating: 1,\n      issuePriority: 1,\n      issueRecommendation: '',\n      issueAssociatedRisk: '',\n      issueCCUsers: [],\n      failureCCUsers: [],\n      responsibilityLinked: [],\n    };\n    for (const key of Object.keys(this.additionalOptionStatus)) {\n      this.additionalOptionStatus[key] = false;\n    }\n    // this.smileyMessage = `The issue has been reported.`;\n    this.mode = 'CREATE';\n    this.modeChange.emit(this.mode);\n    this.populateOptionalFields();\n    this.setSelectedRC();\n  }\n  checkDescription() {\n    if (this.logIssueForm.issueDescription == '<br>') {\n      this.logIssueForm.issueDescription = '';\n    }\n    if (this.logIssueForm.issueRecommendation == '<br>') {\n      this.logIssueForm.issueRecommendation = '';\n    }\n    if (this.logIssueForm.issueAssociatedRisk == '<br>') {\n      this.logIssueForm.issueAssociatedRisk = '';\n    }\n  }\n\n  onTimeChanged(event: any) {\n    if (\n      !this.validateDate(event?.selectedValue, this.logIssueForm?.issueDueDate)\n    ) {\n      return;\n    }\n    this.logIssueForm.issueDueTime = event?.selectedValue;\n  }\n\n  validateDate(time: string, dateString: any) {\n    if (this.logIssueForm?.issueDueDate) {\n      const isMoment = moment.isMoment(dateString.getTime);\n      const currentDate = new Date(dateString);\n      const issueDueDate = currentDate.toDateString().split(' ');\n      const selectedDate = moment(\n        `${issueDueDate[1]}-${issueDueDate[2]}-${issueDueDate[3]} ${time}`,\n        'MMM-DD-YYYY HH:mm a'\n      ).unix();\n      const userTimeZone = this.authService?.userDetails?.timezone;\n      const currentDateInTimeZone = new Date().toLocaleString('en-US', {\n        timeZone: userTimeZone,\n      });\n      const currentDateTimeInTimeZone = new Date(\n        currentDateInTimeZone\n      ).getTime();\n      if (selectedDate * 1000 < currentDateTimeInTimeZone) {\n        this.isFutureDate = false;\n        return false;\n      }\n    }\n    this.isFutureDate = true;\n    return true;\n  }\n\n  get getDateValidationMessage() {\n    return 'Please set a future date.';\n  }\n\n  @HostListener('document:click', ['$event'])\n  documentClick(event: any): void {\n    const datePickerObject = {\n      event: event,\n      class: 'max-time',\n      popup: this.datePickerPopUp,\n      component: this.datePicker,\n      overlay: this.datePickerOverlay,\n    };\n    this.commonService.handleDocumentClick(datePickerObject);\n  }\n}\n","<!-- <p>log-an-issue works!</p> -->\n<div class=\"log-an-issue\" *ngIf=\"!showSmiley\">\n  <div class=\"form-group-row\">\n    <div\n      *ngIf=\"\n        (['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\n          isLinkResponsibility) &&\n        !isLinkQuestionVisible\n      \"\n      class=\"left\"\n      [class.checked]=\"false\"\n    >\n      <img\n        [src]=\"ASSETS.link_items\"\n        alt=\"link_responsibilities\"\n        *ngIf=\"\n          (logIssueForm?.responsibilityLinked?.length === 0 &&\n            !reponsibilityData?.responsibilityName) ||\n          activeField === 'LINK_MORE_RESPONSIBILITY'\n        \"\n      />\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div\n      *ngIf=\"\n        (['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\n          isLinkResponsibility) &&\n        !isLinkQuestionVisible\n      \"\n      class=\"right\"\n    >\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >{{ linkText }}\n          <button\n            class=\"button\"\n            *ngIf=\"['COMPLIANCE_WORKROOM'].includes(openedFrom)\"\n            (click)=\"\n              setActiveFieldSelector(\n                'LINK_MORE_RESPONSIBILITY',\n                'LINK_MORE_RESPONSIBILITY'\n              )\n            \"\n          >\n            Link More Responsibilities\n          </button>\n        </label>\n        <input\n          type=\"text\"\n          placeholder=\"Select responsibilities that are linked to this issue\"\n          readonly\n          *ngIf=\"\n            !['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\n            !logIssueForm?.responsibilityLinked?.length\n          \"\n          (click)=\"\n            setActiveFieldSelector(\n              'LINK_MORE_RESPONSIBILITY',\n              'LINK_MORE_RESPONSIBILITY'\n            )\n          \"\n        />\n        <div\n          class=\"selected\"\n          *ngIf=\"\n            ['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\n            logIssueForm?.responsibilityLinked?.length\n          \"\n        >\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <span\n              *ngIf=\"\n                ['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\n                reponsibilityData?.responsibilityName\n              \"\n              class=\"chipName vx-fs-11 vx-label-txt full-width\"\n              [appTooltip]=\"reponsibilityData?.responsibilityName\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ reponsibilityData?.responsibilityName }}</span\n            >\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              *ngIf=\"!['COMPLIANCE_WORKROOM'].includes(openedFrom)\"\n              (click)=\"\n                deleteItem(\n                  'LINK_MORE_RESPONSIBILITY',\n                  logIssueForm?.responsibilityLinked[0]\n                )\n              \"\n              >&#xe9ae;</i\n            >\n            <span\n              *ngIf=\"\n                !['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\n                logIssueForm?.responsibilityLinked?.length\n              \"\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"logIssueForm?.responsibilityLinked[0]?.ReportName\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ logIssueForm?.responsibilityLinked[0]?.ReportName }}</span\n            >\n            <button\n              *ngIf=\"\n                (['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\n                  logIssueForm?.responsibilityLinked?.length) ||\n                logIssueForm?.responsibilityLinked?.length > 1\n              \"\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"linkResp.popover()\"\n              placement=\"right\"\n            >\n              +{{\n                ![\"COMPLIANCE_WORKROOM\"].includes(openedFrom)\n                  ? logIssueForm?.responsibilityLinked?.length - 1\n                  : logIssueForm?.responsibilityLinked?.length\n              }}\n            </button>\n          </div>\n          <button\n            *ngIf=\"\n              activeField !== 'LINK_MORE_RESPONSIBILITY' &&\n              logIssueForm?.responsibilityLinked?.length\n            \"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"\n              setActiveFieldSelector(\n                'LINK_MORE_RESPONSIBILITY',\n                'LINK_MORE_RESPONSIBILITY'\n              )\n            \"\n          >\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n      </div>\n      <app-popover #linkResp [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li\n              *ngFor=\"\n                let resp of logIssueForm?.responsibilityLinked\n                  | slice\n                    : (!['COMPLIANCE_WORKROOM'].includes(openedFrom) ? 1 : 0)\n              \"\n            >\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i\n                    class=\"icons\"\n                    (click)=\"deleteItem('LINK_MORE_RESPONSIBILITY', resp)\"\n                    >&#xe90d;</i\n                  >\n                  {{ resp?.ReportName }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </div>\n  </div>\n\n  <div class=\"form-group-row\">\n    <div\n      *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\n      class=\"left\"\n      [class.checked]=\"false\"\n    >\n      <img\n        [src]=\"ASSETS.link_controls\"\n        alt=\"link_responsibility\"\n        *ngIf=\"\n          (logIssueForm?.responsibilityLinked?.length === 0 &&\n            !reponsibilityData?.responsibilityName) ||\n          activeField === 'LINK_RESPONSIBILITY'\n        \"\n      />\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div\n      *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\n      class=\"right\"\n    >\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">{{ linkText }}</label>\n        <div\n          class=\"selected\"\n          *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\n        >\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <span\n              *ngIf=\"\n                (['ASSESSMENT'].includes(openedFrom) &&\n                  reponsibilityData?.responsibilityName) ||\n                isLinkQuestionVisible\n              \"\n              class=\"chipName vx-fs-11 vx-label-txt full-width\"\n              [appTooltip]=\"reponsibilityData?.responsibilityName\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ reponsibilityData?.responsibilityName }}</span\n            >\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"form-group-row\">\n    <div\n      *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\n      class=\"left\"\n      [class.checked]=\"false\"\n    >\n      <img\n        [src]=\"ASSETS.link_items\"\n        alt=\"link_assessment_question\"\n        *ngIf=\"\n          !assessmentQuestion?.questionName ||\n          activeField === 'LINK_ASSESSMENT_QUESTION'\n        \"\n      />\n      <svg\n        *ngIf=\"isLinkQuestionVisible || ['ASSESSMENT'].includes(openedFrom)\"\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div\n      *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\n      class=\"right\"\n    >\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Linked Assessment Question </label>\n        <div\n          class=\"selected\"\n          *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\n        >\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <span\n              *ngIf=\"\n                (['ASSESSMENT'].includes(openedFrom) &&\n                  assessmentQuestion?.questionName) ||\n                isLinkQuestionVisible\n              \"\n              class=\"chipName vx-fs-11 vx-label-txt full-width\"\n              appTooltip=\"{{\n                assessmentQuestion?.questionNumber +\n                  ': ' +\n                  assessmentQuestion?.questionName\n              }}\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{\n                assessmentQuestion?.questionNumber +\n                  \": \" +\n                  assessmentQuestion?.questionName\n              }}</span\n            >\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div\n    class=\"form-group-row\"\n    *ngIf=\"\n      ['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\n        openedFrom\n      ) || isRiskControlVisible\n    \"\n    [class.active]=\"activeField === 'ISSUE_CONTROL_RISK'\"\n    [class.disabled]=\"\n      activeField &&\n      activeField !== 'ISSUE_CONTROL_RISK' &&\n      sideSelectorElements.includes(activeField)\n    \"\n  >\n    <div\n      class=\"left\"\n      [class.checked]=\"logIssueForm?.linkedControlRisk?.length > 0\"\n    >\n      <img\n        [src]=\"ASSETS.case_category\"\n        alt=\"\"\n        *ngIf=\"\n          logIssueForm?.linkedControlRisk?.length === 0 ||\n          activeField === 'ISSUE_CONTROL_RISK'\n        \"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"\n          logIssueForm?.linkedControlRisk?.length > 0 &&\n          activeField !== 'ISSUE_CONTROL_RISK'\n        \"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Select a control or risk</label>\n        <div\n          class=\"select\"\n          *ngIf=\"\n            !logIssueForm?.linkedControlRisk ||\n            logIssueForm?.linkedControlRisk?.length === 0\n          \"\n        >\n          <input\n            (click)=\"\n              setActiveFieldSelector('ISSUE_CONTROL_RISK', 'ISSUE_CONTROL_RISK')\n            \"\n            type=\"text\"\n            placeholder=\"Select a control or risk.\"\n            readonly\n          />\n        </div>\n        <div\n          class=\"selected\"\n          *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0\"\n        >\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"\n                deleteItem(\n                  'ISSUE_CONTROL_RISK',\n                  logIssueForm?.linkedControlRisk[0]\n                )\n              \"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"logIssueForm?.linkedControlRisk[0]?.itemControlName\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ logIssueForm?.linkedControlRisk[0]?.itemControlName }}</span\n            >\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                      <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\">&#xe90d;</i>{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\n                  </div> -->\n          <button\n            class=\"edit\"\n            *ngIf=\"activeField !== 'ISSUE_CONTROL_RISK'\"\n            type=\"button\"\n            (click)=\"\n              setActiveFieldSelector('ISSUE_CONTROL_RISK', 'ISSUE_CONTROL_RISK')\n            \"\n          >\n            <i class=\"icons\">&#xe90c;</i>Edit\n          </button>\n        </div>\n      </div>\n      <div\n        class=\"vx-form-group\"\n        *ngFor=\"let tag of logIssueForm.issueCustomTag | keyvalue\"\n      >\n        <!-- {{logIssueForm.issueCustomTag|json}} -->\n        <label class=\"vx-control-panel\">{{\n          tag?.value?.custom_tag_name\n        }}</label>\n        <input\n          type=\"text\"\n          [placeholder]=\"tag?.value?.custom_tag_name\"\n          [(ngModel)]=\"tag.value.custom_tag_value\"\n        />\n      </div>\n    </div>\n  </div>\n\n  <!-- Issue Title -->\n  <div\n    class=\"form-group-row\"\n    [class.disabled]=\"\n      activeField &&\n      activeField !== 'ISSUE_TITLE' &&\n      sideSelectorElements.includes(activeField)\n    \"\n  >\n    <div class=\"left\" [class.checked]=\"logIssueForm.issueName.trim().length\">\n      <img\n        [src]=\"ASSETS.what\"\n        alt=\"name\"\n        *ngIf=\"\n          !logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\n        \"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"\n          logIssueForm.issueName.trim().length && activeField !== 'ISSUE_TITLE'\n        \"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Issue Title <span class=\"required\">*</span>\n        </label>\n        <input\n          type=\"text\"\n          placeholder=\"Add a name for this issue\"\n          [(ngModel)]=\"logIssueForm.issueName\"\n          (focusin)=\"setActiveFieldSelector('ISSUE_TITLE', 'ISSUE_TITLE')\"\n          (keyup)=\"\n            logIssueForm.issueName?.trim()?.length > 0\n              ? removeError('issueName')\n              : null\n          \"\n          (focusout)=\"setActiveFieldSelector('', '')\"\n          *ngIf=\"\n            logIssueForm.issueName == '' || activeSelector === 'ISSUE_TITLE'\n          \"\n        />\n        <div\n          class=\"selected\"\n          *ngIf=\"\n            logIssueForm.issueName.length && activeSelector !== 'ISSUE_TITLE'\n          \"\n        >\n          <div class=\"chip-container\">\n            <span class=\"value\">{{ logIssueForm.issueName }}</span>\n          </div>\n          <button\n            class=\"edit\"\n            (click)=\"setActiveFieldSelector('ISSUE_TITLE', 'ISSUE_TITLE')\"\n            type=\"button\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueName')\">\n          Enter a name for this issue.\n        </p>\n        <ng-container *ngIf=\"AttachmentTrack[0]?.length > 0\">\n          <div\n            class=\"file-list\"\n            *ngFor=\"let uploadingFile of AttachmentTrack[0]\"\n          >\n            <div class=\"file-container\">\n              <span class=\"file-name\">{{ uploadingFile }}</span>\n              <!-- <button>\n                              <i class=\"icons\">&#xe90d;</i>\n                          </button> -->\n            </div>\n            <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\n          </div>\n        </ng-container>\n        <ng-container\n          *ngIf=\"logIssueForm?.issueDescriptionAttachements?.length > 0\"\n        >\n          <div\n            class=\"file-list\"\n            *ngFor=\"let file of logIssueForm?.issueDescriptionAttachements\"\n          >\n            <div class=\"file-container\">\n              <span class=\"file-name\">{{ file?.name }}</span>\n              <button>\n                <i class=\"icons\" (click)=\"deleteFile(file, 'ISSUE_DESCRIPTION')\"\n                  >&#xe90d;</i\n                >\n              </button>\n            </div>\n          </div>\n        </ng-container>\n        <vcomply-editor\n          [editorConfig]=\"{\n            mode: 'prime',\n            file: false,\n            colorPalette: true,\n            link: true,\n            placeholder: 'Description'\n          }\"\n          [(ngModel)]=\"logIssueForm.issueDescription\"\n          (sendSavedFiles)=\"selectFile('ISSUE_DESCRIPTION', $event)\"\n          (clickOutside)=\"checkDescription()\"\n        ></vcomply-editor>\n      </div>\n    </div>\n  </div>\n\n  <!-- issue type start-->\n  <div\n    class=\"form-group-row\"\n    [class.disabled]=\"\n      activeField &&\n      activeField !== 'ISSUE_TITLE' &&\n      sideSelectorElements.includes(activeField)\n    \"\n  >\n    <div class=\"left checked\">\n      <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\n              *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\"> -->\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"> Issue Type </label>\n        <app-cs-radio\n          class=\"main-filed\"\n          name=\"issue-type\"\n          [checked]=\"logIssueForm?.issueType === 'issue'\"\n          (checkedEvent)=\"setIssueType('issue')\"\n          >Issue\n          <!-- <i class=\"icons\">&#xe91f;</i> -->\n        </app-cs-radio>\n        <app-cs-radio\n          class=\"main-filed\"\n          name=\"issue-type\"\n          [checked]=\"logIssueForm?.issueType === 'incident'\"\n          (checkedEvent)=\"setIssueType('incident')\"\n          >Incident\n          <!-- <i class=\"icons\">&#xe91f;</i> -->\n        </app-cs-radio>\n      </div>\n    </div>\n  </div>\n\n  <!-- Issue Category -->\n  <div\n    class=\"form-group-row\"\n    [class.active]=\"activeField === 'ISSUE_CATEGORY'\"\n    [class.disabled]=\"\n      activeField &&\n      activeField !== 'ISSUE_CATEGORY' &&\n      sideSelectorElements.includes(activeField)\n    \"\n  >\n    <div class=\"left\" [class.checked]=\"logIssueForm?.issueCategory?.length > 0\">\n      <img\n        [src]=\"ASSETS.case_category\"\n        alt=\"\"\n        *ngIf=\"\n          logIssueForm?.issueCategory?.length === 0 ||\n          activeField === 'ISSUE_CATEGORY'\n        \"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"\n          logIssueForm?.issueCategory?.length > 0 &&\n          activeField !== 'ISSUE_CATEGORY'\n        \"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Issue Category</label>\n        <div\n          class=\"select\"\n          *ngIf=\"\n            !logIssueForm?.issueCategory ||\n            logIssueForm?.issueCategory?.length === 0\n          \"\n        >\n          <input\n            (click)=\"setActiveFieldSelector('ISSUE_CATEGORY', 'ISSUE_CATEGORY')\"\n            type=\"text\"\n            placeholder=\"Select a category for this issue\"\n            readonly\n          />\n        </div>\n        <div class=\"selected\" *ngIf=\"logIssueForm?.issueCategory?.length > 0\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"\n                deleteItem('ISSUE_CATEGORY', logIssueForm?.issueCategory[0])\n              \"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"logIssueForm?.issueCategory[0]?.category_name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ logIssueForm?.issueCategory[0]?.category_name }}</span\n            >\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                      <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\">&#xe90d;</i>{{logIssueForm?.issueCategory[0]?.category_name}}</span>\n                  </div> -->\n          <button\n            class=\"edit\"\n            *ngIf=\"activeField !== 'ISSUE_CATEGORY'\"\n            type=\"button\"\n            (click)=\"setActiveFieldSelector('ISSUE_CATEGORY', 'ISSUE_CATEGORY')\"\n          >\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n        <p\n          class=\"error-message\"\n          *ngIf=\"fieldsWithError.includes('issueCategory')\"\n        >\n          Select an issue category.\n        </p>\n      </div>\n      <div\n        class=\"vx-form-group\"\n        *ngFor=\"let tag of logIssueForm.issueCustomTag\"\n      >\n        <!-- {{logIssueForm.issueCustomTag|json}} -->\n        <label class=\"vx-control-panel\">{{ tag?.name }}</label>\n        <input type=\"text\" [placeholder]=\"tag?.name\" [(ngModel)]=\"tag.value\" />\n      </div>\n    </div>\n  </div>\n\n  <!-- Responsibility Center -->\n  <div\n    class=\"form-group-row\"\n    *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\"\n    [class.active]=\"false\"\n    [class.disabled]=\"\n      activeField &&\n      activeField !== 'ISSUE_RC' &&\n      sideSelectorElements.includes(activeField)\n    \"\n  >\n    <div\n      *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\"\n      class=\"left\"\n      [class.checked]=\"logIssueForm?.issueRC?.length > 0\"\n    >\n      <img\n        [src]=\"ASSETS.responsibility_center\"\n        alt=\"\"\n        *ngIf=\"logIssueForm?.issueRC?.length === 0\"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        *ngIf=\"logIssueForm?.issueRC?.length > 0 && activeField !== 'ISSUE_RC'\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\" class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Responsibility Center\n          <span class=\"required\" *ngIf=\"isRCMandatory\">*</span>\n        </label>\n        <div\n          class=\"select\"\n          *ngIf=\"!logIssueForm?.issueRC || logIssueForm?.issueRC?.length === 0\"\n        >\n          <input\n            (click)=\"setActiveFieldSelector('ISSUE_RC', 'ISSUE_RC')\"\n            type=\"text\"\n            placeholder=\"Select Responsibility Center(s)\"\n            readonly\n          />\n        </div>\n        <div class=\"selected\" *ngIf=\"logIssueForm?.issueRC?.length > 0\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              *ngIf=\"isRCEditable\"\n              (click)=\"deleteItem('ISSUE_RC', logIssueForm?.issueRC[0])\"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"logIssueForm?.issueRC[0]?.item_name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ logIssueForm?.issueRC[0]?.item_name }}</span\n            >\n            <button\n              *ngIf=\"logIssueForm?.issueRC?.length > 1\"\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"RC.popover()\"\n              placement=\"right\"\n            >\n              +{{ logIssueForm?.issueRC?.slice(1)?.length }}\n            </button>\n          </div>\n          <button\n            *ngIf=\"activeField !== 'ISSUE_RC' && isRCEditable\"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"setActiveFieldSelector('ISSUE_RC', 'ISSUE_RC')\"\n          >\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n        <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRC')\">\n          Select the Responsibility Center associated with this issue.\n        </p>\n      </div>\n      <app-popover #RC [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li\n              *ngFor=\"\n                let rc of logIssueForm?.issueRC | slice : 1;\n                let j = index\n              \"\n            >\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i\n                    *ngIf=\"isRCEditable\"\n                    class=\"icons\"\n                    (click)=\"deleteItem('ISSUE_RC', rc)\"\n                    >&#xe90d;</i\n                  >\n                  {{ rc?.item_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </div>\n  </div>\n\n  <!-- Who -->\n  <div\n    class=\"form-group-row\"\n    [class.disabled]=\"\n      activeField &&\n      activeField !== 'ISSUE_WHO' &&\n      sideSelectorElements.includes(activeField)\n    \"\n  >\n    <div class=\"left\" [class.checked]=\"logIssueForm?.entrustTo?.length > 0\">\n      <img\n        [src]=\"ASSETS.case_assignees\"\n        alt=\"im\"\n        *ngIf=\"\n          (logIssueForm?.entrustTo?.length === 0 &&\n            !logIssueForm?.isAssignToMyself) ||\n          activeField === 'ISSUE_WHO'\n        \"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"\n          (logIssueForm?.entrustTo?.length > 0 ||\n            logIssueForm?.isAssignToMyself) &&\n          activeField !== 'ISSUE_WHO'\n        \"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Who? <span class=\"required\">*</span></label\n        >\n        <div\n          class=\"select\"\n          [class.disabled]=\"logIssueForm?.isAssignToMyself\"\n          *ngIf=\"\n            !logIssueForm?.entrustTo || logIssueForm?.entrustTo?.length === 0\n          \"\n        >\n          <input\n            (click)=\"setActiveFieldSelector('ISSUE_WHO', 'ISSUE_WHO')\"\n            [disabled]=\"logIssueForm?.isAssignToMyself\"\n            type=\"text\"\n            placeholder=\"Who is responsible for completing the responsibility?\"\n            readonly\n          />\n        </div>\n        <div class=\"selected\" *ngIf=\"logIssueForm?.entrustTo?.length > 0\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"deleteItem('ISSUE_WHO', logIssueForm?.entrustTo[0])\"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"logIssueForm?.entrustTo[0]?.employee_name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ logIssueForm?.entrustTo[0]?.employee_name }}</span\n            >\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                      <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\">&#xe90d;</i>{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\n                  </div> -->\n          <button\n            *ngIf=\"activeField !== 'ISSUE_WHO'\"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"setActiveFieldSelector('ISSUE_WHO', 'ISSUE_WHO')\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('entrustTo')\">\n          Select the person responsible for resolving this issue.\n        </p>\n        <div\n          class=\"switch-row align-right\"\n          [class.disabled]=\"activeField === 'ISSUE_WHO'\"\n        >\n          <app-cs-switch\n            [disabled]=\"activeField === 'ISSUE_WHO'\"\n            [(ngValue)]=\"logIssueForm.isAssignToMyself\"\n            (ngValueChange)=\"assignMyself($event)\"\n            >OR ASSIGN TO MYSELF</app-cs-switch\n          >\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <!-- Maximun Time to Resolve -->\n  <div\n    class=\"form-group-row\"\n    [class.disabled]=\"\n      activeField &&\n      activeField !== 'ISSUE_DATE_TIME' &&\n      sideSelectorElements.includes(activeField)\n    \"\n  >\n    <div class=\"left\" [class.checked]=\"logIssueForm?.issueDueDate\">\n      <img\n        [src]=\"ASSETS.when\"\n        alt=\"im\"\n        *ngIf=\"!logIssueForm?.issueDueDate || activeField === 'ISSUE_DATE_TIME'\"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"logIssueForm?.issueDueDate && activeField !== 'ISSUE_DATE_TIME'\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Maximum Time to Resolve <span class=\"required\">*</span></label\n        >\n        <div class=\"date-time-picker\">\n          <div class=\"picker-group\">\n            <input\n              type=\"text\"\n              readonly\n              placeholder=\"Set a deadline.\"\n              [value]=\"logIssueForm.issueDueDate | date : 'dd MMM yyyy'\"\n              (click)=\"openDatePicker()\"\n              id=\"max-time\"\n            />\n            <i class=\"icons\">&#xe92d;</i>\n            <dp-date-picker\n              #datePicker\n              (onSelect)=\"\n                datePickerOverlay = false;\n                closeDatePicker($event);\n                removeError('issueDueDate')\n              \"\n              [config]=\"dateConfig\"\n              [(ngModel)]=\"logIssueForm.issueDueDate\"\n            >\n            </dp-date-picker>\n            <div\n              class=\"vx-overlay\"\n              (click)=\"closeDatePicker($event)\"\n              *ngIf=\"datePickerOverlay\"\n            ></div>\n          </div>\n\n          <div\n            class=\"picker-group\"\n            appPopover\n            (click)=\"timePicker.popover()\"\n            placement=\"right\"\n          >\n            <input\n              (mouseover)=\"setCurrentTime()\"\n              [(ngModel)]=\"logIssueForm.issueDueTime\"\n              [value]=\"logIssueForm?.issueDueTime\"\n              readonly\n              class=\"time\"\n              placeholder=\"Select Time\"\n              type=\"text\"\n              [min]=\"currentTime\"\n            />\n            <i class=\"icons\">&#xe955;</i>\n          </div>\n          <app-popover #timePicker [dontCloseonClick]=\"true\">\n            <app-time-picker\n              [time]=\"logIssueForm?.issueDueTime\"\n              (onTimeSelection)=\"\n                onTimeChanged($event); timePicker.closePopover('top')\n              \"\n            ></app-time-picker>\n          </app-popover>\n        </div>\n        <p\n          class=\"error-message\"\n          *ngIf=\"fieldsWithError.includes('issueDueDate')\"\n        >\n          Select the date by which this issue needs to be resolved.\n        </p>\n\n        <p class=\"error-message\" *ngIf=\"!isFutureDate\">\n          {{ getDateValidationMessage }}\n        </p>\n      </div>\n    </div>\n  </div>\n\n  <!-- Recommended Actions -->\n  <div\n    class=\"form-group-row\"\n    [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\n  >\n    <div class=\"left\" [class.checked]=\"logIssueForm.issueRecommendation\">\n      <img\n        [src]=\"ASSETS.recommended_action\"\n        alt=\"im\"\n        *ngIf=\"!(logIssueForm.issueRecommendation | spaceBreaker).length\"\n      />\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"(logIssueForm.issueRecommendation | spaceBreaker).length > 0\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Recommended Actions <span class=\"required\">*</span></label\n        >\n        <ng-container *ngIf=\"AttachmentTrack[1]?.length > 0\">\n          <div\n            class=\"file-list\"\n            *ngFor=\"let uploadingFile of AttachmentTrack[1]\"\n          >\n            <div class=\"file-container\">\n              <span class=\"file-name\">{{ uploadingFile }}</span>\n              <!-- <button>\n                            <i class=\"icons\">&#xe90d;</i>\n                        </button> -->\n            </div>\n            <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\n          </div>\n        </ng-container>\n        <ng-container\n          *ngIf=\"logIssueForm?.recommendedActionsAttachments?.length > 0\"\n        >\n          <div\n            class=\"file-list\"\n            *ngFor=\"let file of logIssueForm?.recommendedActionsAttachments\"\n          >\n            <div class=\"file-container\">\n              <span class=\"file-name\">{{ file?.name }}</span>\n              <button>\n                <i\n                  class=\"icons\"\n                  (click)=\"deleteFile(file, 'RECOMMENDED_ACTIONS')\"\n                  >&#xe90d;</i\n                >\n              </button>\n            </div>\n          </div>\n        </ng-container>\n        <vcomply-editor\n          [(ngModel)]=\"logIssueForm.issueRecommendation\"\n          [editorConfig]=\"{\n            mode: 'prime',\n            colorPalette: true,\n            link: true,\n            file: true,\n            placeholder: 'Recommended actions'\n          }\"\n          (ngModelChange)=\"\n            logIssueForm?.issueRecommendation?.trim()?.length > 0\n              ? removeError('issueRecommendation')\n              : null\n          \"\n          (clickOutside)=\"checkDescription()\"\n          (sendSavedFiles)=\"selectFile('RECOMMENDED_ACTIONS', $event)\"\n        ></vcomply-editor>\n        <p\n          class=\"error-message\"\n          *ngIf=\"fieldsWithError.includes('issueRecommendation')\"\n        >\n          Specify the recommended actions to resolve this issue.\n        </p>\n      </div>\n    </div>\n  </div>\n\n  <!-- *ngIf=\"!hiddenList.includes('RISK_CLASSIFICATION')\"  [class.disabled]=\"activeField  && sideSelectorElements.includes(activeField)\" -->\n  <!-- removed the above condition since Risk Classification should be displayed by default in log an issue form -->\n\n  <!-- Risk Classification -->\n  <div class=\"form-group-row\" id=\"risk_classification\">\n    <div class=\"left\" [class.checked]=\"logIssueForm.issueRiskRating\">\n      <img\n        [src]=\"ASSETS.risks\"\n        alt=\"im\"\n        *ngIf=\"!logIssueForm?.issueRiskRating\"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"logIssueForm?.issueRiskRating\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Risk Classification</label>\n        <div class=\"classification\">\n          <label\n            class=\"low\"\n            *ngFor=\"let class of riskClassification\"\n            [ngClass]=\"[class.class]\"\n          >\n            <input\n              type=\"radio\"\n              name=\"classification\"\n              [value]=\"class.value\"\n              [checked]=\"logIssueForm?.issueRiskRating === class.value\"\n              [(ngModel)]=\"logIssueForm.issueRiskRating\"\n            />\n            <span>{{ class.name }}</span>\n          </label>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <!-- Exception Type -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    *ngIf=\"additionalOptionStatus.EXCEPTION_TYPE\"\n    [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\n  >\n    <div class=\"left\" [class.checked]=\"logIssueForm?.exceptionType > -1\">\n      <img\n        [src]=\"ASSETS.exception_type\"\n        alt=\"im\"\n        *ngIf=\"logIssueForm?.exceptionType === null\"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"logIssueForm?.exceptionType > -1\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Exception Type</label>\n        <app-cs-radio\n          class=\"main-filed\"\n          [value]=\"1\"\n          name=\"exception-type\"\n          [checked]=\"logIssueForm?.exceptionType === 1\"\n          (checkedEvent)=\"setException(1)\"\n          >Design Exception\n          <!-- <i class=\"icons\">&#xe91f;</i> -->\n        </app-cs-radio>\n        <app-cs-radio\n          class=\"main-filed\"\n          [value]=\"2\"\n          name=\"exception-type\"\n          [checked]=\"logIssueForm?.exceptionType === 2\"\n          (checkedEvent)=\"setException(2)\"\n          >Effectiveness Exception\n          <!-- <i class=\"icons\">&#xe91f;</i> -->\n        </app-cs-radio>\n      </div>\n    </div>\n  </div>\n\n  <!-- Priority -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    *ngIf=\"additionalOptionStatus.PRIORITY\"\n    [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\n  >\n    <div class=\"left\" [class.checked]=\"logIssueForm?.issuePriority\">\n      <img\n        [src]=\"ASSETS.priority\"\n        alt=\"im\"\n        *ngIf=\"!logIssueForm?.issuePriority\"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"logIssueForm?.issuePriority > 0\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Priority</label>\n        <div class=\"classification\">\n          <label\n            *ngFor=\"let priority of riskPrority\"\n            [ngClass]=\"[priority.class]\"\n          >\n            <input\n              type=\"radio\"\n              name=\"classification-priority\"\n              [value]=\"priority.value\"\n              [checked]=\"logIssueForm?.issuePriority === priority.value\"\n              [(ngModel)]=\"logIssueForm.issuePriority\"\n            />\n            <span>{{ priority.name }}</span>\n          </label>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <!-- Associated Risks -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    *ngIf=\"additionalOptionStatus.ASSOCIATED_RISKS\"\n    [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\n  >\n    <div class=\"left\" [class.checked]=\"logIssueForm.issueAssociatedRisk\">\n      <img\n        [src]=\"ASSETS.associated_risks\"\n        alt=\"im\"\n        *ngIf=\"!logIssueForm?.issueAssociatedRisk.trim().length\"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n        *ngIf=\"logIssueForm?.issueAssociatedRisk.trim().length\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Associated Risks </label>\n        <ng-container *ngIf=\"AttachmentTrack[2]?.length > 0\">\n          <div\n            class=\"file-list\"\n            *ngFor=\"let uploadingFile of AttachmentTrack[2]\"\n          >\n            <div class=\"file-container\">\n              <span class=\"file-name\">{{ uploadingFile }}</span>\n              <!-- <button>\n                            <i class=\"icons\">&#xe90d;</i>\n                        </button> -->\n            </div>\n          </div>\n        </ng-container>\n        <ng-container\n          *ngIf=\"logIssueForm?.associatedRisksAttachments?.length > 0\"\n        >\n          <div\n            class=\"file-list\"\n            *ngFor=\"let file of logIssueForm?.associatedRisksAttachments\"\n          >\n            <div class=\"file-container\">\n              <span class=\"file-name\">{{ file?.name }}</span>\n              <button>\n                <i class=\"icons\" (click)=\"deleteFile(file, 'ASSOCIATED_RISKS')\"\n                  >&#xe90d;</i\n                >\n              </button>\n            </div>\n          </div>\n        </ng-container>\n        <vcomply-editor\n          [(ngModel)]=\"logIssueForm.issueAssociatedRisk\"\n          [editorConfig]=\"{\n            mode: 'prime',\n            colorPalette: true,\n            link: true,\n            file: false,\n            placeholder: 'Associated Risks'\n          }\"\n          (clickOutside)=\"checkDescription()\"\n          (sendSavedFiles)=\"selectFile('ASSOCIATED_RISKS', $event)\"\n        ></vcomply-editor>\n      </div>\n    </div>\n  </div>\n\n  <!-- Overseer -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    [class.active]=\"false\"\n    *ngIf=\"additionalOptionStatus.OVERSIGHT\"\n    [class.disabled]=\"\n      activeField &&\n      !['ISSUE_CC', 'ISSUE_FCC'].includes(activeField) &&\n      sideSelectorElements.includes(activeField)\n    \"\n  >\n    <div\n      class=\"left\"\n      [class.checked]=\"\n        logIssueForm?.issueCCUsers?.length > 0 ||\n        logIssueForm?.failureCCUsers?.length > 0\n      \"\n    >\n      <img\n        [src]=\"ASSETS.oversight\"\n        alt=\"\"\n        *ngIf=\"\n          (logIssueForm?.issueCCUsers?.length === 0 &&\n            logIssueForm?.failureCCUsers?.length === 0) ||\n          activeField === 'ISSUE_CC' ||\n          activeField === 'ISSUE_FCC'\n        \"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        *ngIf=\"\n          logIssueForm?.issueCCUsers?.length > 0 ||\n          (logIssueForm?.failureCCUsers?.length > 0 &&\n            activeField !== 'ISSUE_CC') ||\n          activeField !== 'ISSUE_FCC'\n        \"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Oversight</label>\n        <div\n          class=\"select\"\n          *ngIf=\"\n            !logIssueForm?.issueCCUsers ||\n            logIssueForm?.issueCCUsers?.length === 0\n          \"\n        >\n          <input\n            type=\"text\"\n            (click)=\"setActiveFieldSelector('ISSUE_CC', 'ISSUE_CC')\"\n            placeholder=\"Who should have oversight of this issue?\"\n            readonly\n          />\n        </div>\n\n        <div class=\"selected\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 0\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"deleteItem('ISSUE_CC', logIssueForm?.issueCCUsers[0])\"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"logIssueForm?.issueCCUsers[0]?.employee_name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ logIssueForm?.issueCCUsers[0]?.employee_name }}</span\n            >\n            <button\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"CC.popover()\"\n              placement=\"right\"\n              *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\"\n            >\n              +{{ logIssueForm?.issueCCUsers?.slice(1).length }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                      <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\">&#xe90d;</i>{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\n                      <button class=\"count\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"CC.popover()\" placement=\"right\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\n                  </div> -->\n          <button\n            *ngIf=\"activeField !== 'ISSUE_CC'\"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"setActiveFieldSelector('ISSUE_CC', 'ISSUE_CC')\"\n          >\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n\n        <div\n          class=\"select\"\n          *ngIf=\"\n            !logIssueForm?.failureCCUsers ||\n            logIssueForm?.failureCCUsers?.length === 0\n          \"\n        >\n          <input\n            (click)=\"setActiveFieldSelector('ISSUE_FCC', 'ISSUE_FCC')\"\n            type=\"text\"\n            placeholder=\"Who should be notified if the issue is not resolved?\"\n            readonly\n          />\n        </div>\n\n        <div class=\"selected\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 0\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"deleteItem('ISSUE_FCC', logIssueForm?.failureCCUsers[0])\"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"logIssueForm?.failureCCUsers[0]?.employee_name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ logIssueForm?.failureCCUsers[0]?.employee_name }}</span\n            >\n            <button\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"FCC.popover()\"\n              placement=\"right\"\n              *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\"\n            >\n              +{{ logIssueForm?.failureCCUsers?.slice(1).length }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                      <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\">&#xe90d;</i>{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\n                      <button class=\"count\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"FCC.popover()\" placement=\"right\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\n                  </div> -->\n          <button\n            *ngIf=\"activeField !== 'ISSUE_FCC'\"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"setActiveFieldSelector('ISSUE_FCC', 'ISSUE_FCC')\"\n          >\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n      </div>\n      <app-popover #CC [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li\n              *ngFor=\"\n                let cc of logIssueForm?.issueCCUsers | slice : 1;\n                let j = index\n              \"\n            >\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i class=\"icons\" (click)=\"deleteItem('ISSUE_CC', cc)\"\n                    >&#xe90d;</i\n                  >\n                  {{ cc?.employee_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <app-popover #FCC [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li\n              *ngFor=\"\n                let fcc of logIssueForm?.failureCCUsers | slice : 1;\n                let j = index\n              \"\n            >\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC', fcc)\"\n                    >&#xe90d;</i\n                  >\n                  {{ fcc?.employee_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </div>\n  </div>\n\n  <!-- Evidence -->\n  <div\n    [appScrollInView]=\"scrollToBottom\"\n    class=\"form-group-row\"\n    *ngIf=\"additionalOptionStatus.EVIDENCE\"\n    [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\n  >\n    <div class=\"left\" [class.checked]=\"true\">\n      <!-- <img src=\"https://cdn.v-comply.com/format-evidence.svg\" alt=\"im\"> -->\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\">Evidence</label>\n        <div class=\"upload-format\">\n          <span class=\"text\"\n            >Do you want evidence of completion of the issue to be\n            uploaded?</span\n          >\n          <div class=\"radio-group\">\n            <app-cs-radio\n              [name]=\"'file-evidence'\"\n              [value]=\"1\"\n              [checked]=\"logIssueForm?.evidenceRequired === 1\"\n              (checkedEvent)=\"setEvidence(1)\"\n              >Yes\n            </app-cs-radio>\n            <app-cs-radio\n              [name]=\"'file-evidence'\"\n              [value]=\"0\"\n              [checked]=\"logIssueForm?.evidenceRequired === 0\"\n              (checkedEvent)=\"setEvidence(0)\"\n              >No\n            </app-cs-radio>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n<app-radio-list\n  [config]=\"selectorConfig?.ISSUE_CATGORY\"\n  [itemsList]=\"listData?.categoryList\"\n  [selectedItems]=\"logIssueForm.issueCategory\"\n  [identifierKey]=\"'category_id'\"\n  [displayKey]=\"'category_name'\"\n  *ngIf=\"activeSelector === 'ISSUE_CATEGORY'\"\n  (saveList)=\"selectorAction($event, 'ISSUE_CATEGORY')\"\n  (closeList)=\"fieldDeselector('ISSUE_CATEGORY')\"\n  [loader]=\"!listLoadingStatus[2]\"\n>\n</app-radio-list>\n\n<app-responsibility-centers-list\n  *ngIf=\"activeSelector === 'ISSUE_RC'\"\n  [responsibilityCentersList]=\"listData?.rcList\"\n  [radioSelection]=\"false\"\n  [selectedResponsibilityCenters]=\"logIssueForm?.issueRC\"\n  [rcIdKey]=\"'item_id'\"\n  (saveSelectedList)=\"selectorAction($event, 'ISSUE_RC')\"\n  (closeRcList)=\"fieldDeselector('ISSUE_RC')\"\n  [loaded]=\"listLoadingStatus[3]\"\n>\n</app-responsibility-centers-list>\n\n<app-radio-list\n  [config]=\"selectorConfig?.ISSUE_WHO\"\n  [itemsList]=\"listData?.userList\"\n  [twoColumn]=\"true\"\n  [selectedItems]=\"logIssueForm.entrustTo\"\n  [identifierKey]=\"'employee_id'\"\n  [displayKey]=\"'employee_name'\"\n  [tooltipKey]=\"'employee_email'\"\n  *ngIf=\"activeSelector === 'ISSUE_WHO'\"\n  (saveList)=\"selectorAction($event, 'ISSUE_WHO')\"\n  (closeList)=\"fieldDeselector('ISSUE_WHO')\"\n></app-radio-list>\n\n<app-radio-list\n  [config]=\"selectorConfig?.ISSUE_TYPE\"\n  [itemsList]=\"listData?.issueTypeList\"\n  [selectedItems]=\"logIssueForm.issueType\"\n  [identifierKey]=\"'issue_id'\"\n  [displayKey]=\"'issue_type_name'\"\n  *ngIf=\"activeSelector === 'ISSUE_TYPE'\"\n  (saveList)=\"selectorAction($event, 'ISSUE_TYPE')\"\n  (closeList)=\"fieldDeselector('ISSUE_TYPE')\"\n></app-radio-list>\n\n<app-checkbox-list\n  [config]=\"selectorConfig?.ISSUE_CC\"\n  [twoColumn]=\"true\"\n  [itemsList]=\"\n    listData.userList\n      | userFilter\n        : 'employee_email'\n        : logIssueForm.entrustTo\n        : { employee_email: currentUser?.email }\n  \"\n  [selectedItems]=\"logIssueForm.issueCCUsers\"\n  [identifierKey]=\"'employee_email'\"\n  [displayKey]=\"'employee_name'\"\n  [tooltipKey]=\"'employee_email'\"\n  *ngIf=\"activeSelector === 'ISSUE_CC'\"\n  (saveList)=\"selectorAction($event, 'ISSUE_CC')\"\n  (closeList)=\"fieldDeselector('ISSUE_CC')\"\n  [loaded]=\"!listLoadingStatus[1]\"\n></app-checkbox-list>\n\n<app-checkbox-list\n  [config]=\"selectorConfig?.ISSUE_FCC\"\n  [twoColumn]=\"true\"\n  [itemsList]=\"\n    listData.userList\n      | userFilter\n        : 'employee_email'\n        : logIssueForm.entrustTo\n        : { employee_email: currentUser?.email }\n  \"\n  [selectedItems]=\"logIssueForm.failureCCUsers\"\n  [identifierKey]=\"'employee_email'\"\n  [displayKey]=\"'employee_name'\"\n  [tooltipKey]=\"'employee_email'\"\n  *ngIf=\"activeSelector === 'ISSUE_FCC'\"\n  (saveList)=\"selectorAction($event, 'ISSUE_FCC')\"\n  (closeList)=\"fieldDeselector('ISSUE_FCC')\"\n  [loaded]=\"!listLoadingStatus[1]\"\n></app-checkbox-list>\n\n<app-responsibility-risk-selector\n  [loading]=\"isRiskControlLoading\"\n  *ngIf=\"activeSelector === 'ISSUE_CONTROL_RISK'\"\n  (closeList)=\"fieldDeselector('ISSUE_CONTROL_RISK')\"\n  (fetchList)=\"getLinkage(issueDetails?.auditObjId, $event)\"\n  (saveList)=\"selectorAction($event, 'ISSUE_CONTROL_RISK')\"\n  [activeEntity]=\"logIssueForm?.linkageType\"\n  [listItems]=\"listData?.linkageList\"\n  [selectedItems]=\"logIssueForm?.linkedControlRisk\"\n></app-responsibility-risk-selector>\n\n<app-smiley-dialog-inline\n  *ngIf=\"showSmiley\"\n  [message]=\"message\"\n  [actionButtons]=\"displayActionButtons\"\n  (action)=\"action($event)\"\n  (closeSmiley)=\"closeSmiley($event)\"\n>\n</app-smiley-dialog-inline>\n\n<app-link-responsibility-list\n  *ngIf=\"activeSelector === 'LINK_MORE_RESPONSIBILITY'\"\n  [selectedResponsibilityValues]=\"logIssueForm?.responsibilityLinked\"\n  (closeButton)=\"fieldDeselector('LINK_MORE_RESPONSIBILITY')\"\n  [respIdKey]=\"'ReportId'\"\n  [radioSelection]=\"false\"\n  (selectedResponsibility)=\"selectorAction($event, 'LINK_MORE_RESPONSIBILITY')\"\n></app-link-responsibility-list>\n","import { HttpClient, HttpBackend, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { retry } from 'rxjs/operators';\nimport { AuthService } from './auth.service';\nimport { Configurations } from '../configurations';\nimport { BehaviorSubject } from 'rxjs';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AssessmentService {\n  env!: any;\n  baseValue: any = {\n    currentPage: 0,\n    data: [],\n    end_value: 0,\n    start_value: 0,\n    totalPage: 0,\n    totalRecords: 0,\n  };\n\n  constructor(\n    private http: HttpClient,\n    private authService: AuthService,\n    @Optional() config?: Configurations\n  ) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n  updateAssessment(id: string, payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post<any>(\n      this.env.assessmentEnpoint + 'assessment/update&id=' + id,\n      payload,\n      { headers }\n    );\n  }\n\n  addAssessment(payload: any) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post<any>(\n      this.env.assessmentEnpoint + 'assessment/create',\n      payload,\n      { headers }\n    );\n  }\n\n  private categories: BehaviorSubject<any> = new BehaviorSubject<any>({});\n  categoriesListData$: Observable<any> = this.categories.asObservable();\n\n  private categoriesLoader: BehaviorSubject<boolean> =\n    new BehaviorSubject<boolean>(true);\n  categoriesLoading$: Observable<boolean> =\n    this.categoriesLoader.asObservable();\n\n  fetchCategory(payload: any) {\n    this.categoriesLoader.next(true);\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    this.http\n      .post(this.env.assessmentEnpoint + 'category/list', payload, { headers })\n      .subscribe({\n        next: (res: any) => {\n          this.categories.next(res);\n          this.categoriesLoader.next(false);\n        },\n        error: (err: any) => {\n          this.categories.next(this.baseValue);\n          this.categoriesLoader.next(false);\n        },\n      });\n  }\n  resetCategory() {\n    this.categories.next(this.baseValue);\n  }\n\n  getAssessmentDetails(id: string) {\n    const headers = new HttpHeaders().set(\n      'token',\n      this.authService.getAuthorizationToken()\n    );\n    return this.http.post(\n      this.env.assessmentEnpoint + 'assessment/getAssessmentInEdit&id=' + id,\n      {},\n      { headers }\n    );\n  }\n\n  httpOptions = {\n    headers: new HttpHeaders({\n      'Content-Type': 'application/json',\n      token: this.getAuthorizationToken(),\n    }),\n  };\n\n  getAuthorizationToken() {\n    const TOKEN = localStorage.getItem('currentUser');\n    let currentUser;\n    TOKEN !== null ? (currentUser = JSON.parse(TOKEN)) : (currentUser = {});\n    return currentUser.token;\n  }\n\n  createAssessment(payload: any) {\n    return this.http.post(\n      this.env.assessmentEnpoint + 'assessment/create',\n      payload,\n      this.httpOptions\n    );\n  }\n\n  saveAssessmentDetails(id: any, payload: any) {\n    return this.http.post(\n      this.env.assessmentEnpoint + 'assessment/update&id=' + id,\n      payload,\n      this.httpOptions\n    );\n  }\n\n  downloadTemplate() {\n    return this.http.get<any>(\n      this.env.assessmentEnpoint + 'template/assessment',\n      this.httpOptions\n    );\n  }\n\n  downLoadFile(data: any, type: string, filename: string) {\n    if (window.navigator && (window.navigator as any)?.msSaveOrOpenBlob) {\n      const blob = new Blob([this.base64ToArrayBuffer(data)], { type });\n      (window.navigator as any)?.msSaveOrOpenBlob(blob, filename);\n    } else {\n      const url = 'data:' + type.toString() + ';base64,' + data;\n      const a = document.createElement('a');\n      a.setAttribute('href', url);\n      a.setAttribute('download', filename);\n      a.style.visibility = 'hidden';\n      document.body.appendChild(a);\n      a.click();\n      document.body.removeChild(a);\n    }\n    return 'DOWNLOADED';\n  }\n\n  base64ToArrayBuffer(base64: any) {\n    const binaryString = window.atob(base64);\n    const len = binaryString.length;\n    const bytes = new Uint8Array(len);\n    for (let i = 0; i < len; i++) {\n      bytes[i] = binaryString.charCodeAt(i);\n    }\n    return bytes.buffer;\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { ASSETS } from '../../constants/assets.constants';\nexport interface ListEvent {\n  searchKey?: string;\n  page?: number;\n}\nexport interface panelConfig {\n  panelTitle: '';\n  entitySingular: '';\n  entityPlural: '';\n  displayKey: '';\n  identifierKey: '';\n  parentKey: '';\n  parentDisplayKey: '';\n  searchPlaceholder: '';\n  noDataText: '';\n}\n@Component({\n  selector: 'app-radio-list-with-pagination',\n  templateUrl: './radio-list.component.html',\n  styleUrls: ['./radio-list.component.less'],\n})\nexport class RadioListWithPaginationComponent implements OnInit {\n  @Output() fetchData = new EventEmitter<ListEvent>();\n  @Output() back = new EventEmitter();\n  @Output() next = new EventEmitter();\n  @Output() cancel = new EventEmitter();\n  list = [];\n  searchKey = '';\n  selectedList: any = [];\n  ASSETS = ASSETS;\n  @Input('categoryList') set setList(value: any) {\n    this.list = value;\n  }\n  @Input() config!: panelConfig;\n  @Input() currentPage: any = 1;\n  @Input() recordStart: any = 1;\n  @Input() recordEnd: any = 1;\n  @Input() totalRecords: any = 1;\n  @Input() totalPages: any = 1;\n  @Input() loading: any = true;\n  @Input('selectedList') set setSelected(value: any) {\n    if (value) {\n      this.selectedList = [...value];\n      this.setSelectedIds();\n    }\n  }\n  animation = true;\n  selectedIds: any = [];\n  constructor() { }\n\n  ngOnInit(): void { }\n\n  //This method handles the page change\n  pageChanged(page: number) {\n    this.currentPage = page;\n    this.fetchData.emit({ page: this.currentPage, searchKey: this.searchKey });\n  }\n\n  //This method handles the search\n  search() {\n    this.currentPage = 1;\n    this.fetchData.emit({ page: this.currentPage, searchKey: this.searchKey });\n  }\n\n  itemSelected(event: any, item: any) {\n    if (event) {\n      this.selectedList.push(item);\n      this.setSelectedIds();\n    } else {\n      let index = this.selectedList.findIndex((x: any) => x?.id === item?.id);\n      if (index >= 0) {\n        this.selectedList = this.selectedList.filter(\n          (ele: any) =>\n            ele[this.config?.identifierKey] !== item[this.config?.identifierKey]\n        );\n        this.setSelectedIds();\n      }\n    }\n  }\n\n  setSelectedIds() {\n    this.selectedIds = this.selectedList.map(\n      (ele: any) => ele[this.config?.identifierKey]\n    );\n    this.selectedList = Array.from(\n      new Set(this.selectedList.map((a: any) => a.id))\n    ).map((id) => {\n      return this.selectedList.find((a: any) => a.id === id);\n    });\n  }\n  deleteItem(evt: any) {\n    this.selectedList = this.selectedList.filter(\n      (ele: any) =>\n        ele[this.config?.identifierKey] !== evt[this.config?.identifierKey]\n    );\n    this.setSelectedIds();\n  }\n\n  close() {\n    this.cancel.emit();\n  }\n  save() {\n    this.next.emit(this.selectedList);\n  }\n\n  selectAll(evt: any) {\n    if (evt) {\n      this.selectedList = [...this.selectedList, ...this.list];\n      this.setSelectedIds();\n    } else if (evt === false) {\n      const currentPageList = this.list.map((ele: any) => ele.id);\n      this.selectedList = this.selectedList.filter(\n        (ele: any) => !currentPageList.includes(ele?.id)\n      );\n      this.setSelectedIds();\n    }\n  }\n  checkSelectAll() {\n    const data = this.list.every((rc: any) =>\n      this.selectedIds.includes(rc[this.config.identifierKey])\n    );\n    return data;\n  }\n}\n","<div class=\"radio-list\" [class.animate]=\"animation\">\n  <div\n    class=\"radio-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">{{ config?.panelTitle }}</div>\n    <!-- <button class=\"radio-list-close\">\n      <i class=\"icons\" (click)=\"close()\">&#xe90d;</i>\n    </button> -->\n  </div>\n\n  <div class=\"radio-list-body\">\n    <div class=\"search-block vx-mb-2\" *ngIf=\"true\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        (keydown.enter)=\"search()\"\n        type=\"text\"\n        [placeholder]=\"config?.searchPlaceholder\"\n        [(ngModel)]=\"searchKey\"\n      />\n    </div>\n\n    <app-pagination\n      *ngIf=\"totalPages > 1\"\n      [start]=\"recordStart\"\n      [end]=\"recordEnd\"\n      [total]=\"totalRecords\"\n      [pageCount]=\"totalPages\"\n      [currentPage]=\"currentPage\"\n      (selectedPage)=\"pageChanged($event)\"\n    ></app-pagination>\n\n    <!-- it is visible when list data is available -->\n    <ng-container *ngIf=\"!loading && list?.length\">\n      <div class=\"categories vx-mb-4\" [class.mt-2]=\"totalPages === 0\">\n        <app-cs-checkbox\n          [ngValue]=\"checkSelectAll()\"\n          (ngValueChange)=\"selectAll($event)\"\n        >\n          <span class=\"vx-fw-600 vx-label-txt\">{{\n            checkSelectAll() ? \"Deselect All\" : \"Select All\"\n          }}</span>\n        </app-cs-checkbox>\n      </div>\n      <ul\n        class=\"categories-list vx-mb-4\"\n        [class.with-pagination]=\"totalPages > 1\"\n      >\n        <li *ngFor=\"let item of list; let i = index\">\n          <!-- [ngValue]=\"selectedIds.includes(category[categoryIdKey])\" -->\n          <app-cs-checkbox\n            [ngValue]=\"selectedIds?.includes(item[config?.identifierKey])\"\n            (ngValueChange)=\"itemSelected($event, item)\"\n            [appTooltip]=\"item[config.displayKey]\"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            [tooltipMandatory]=\"true\"\n          >\n            <div class=\"name\">{{ item[config.displayKey] }}</div>\n            <div\n              class=\"within vx-d-flex vx-align-center vx-justify-start vx-mt-1\"\n            >\n              <div\n                class=\"block vx-fs-9 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mr-2\"\n                *ngIf=\"item[config?.parentDisplayKey] != ''\"\n              >\n                WITHIN\n              </div>\n              <div\n                class=\"data vx-fs-11 vx-paragraph-txt vx-lh-4 vx-pr-5\"\n                [appTooltip]=\"'test > test'\"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                [tooltipMandatory]=\"false\"\n              >\n                {{ item[config?.parentDisplayKey] }}\n              </div>\n            </div>\n          </app-cs-checkbox>\n        </li>\n      </ul>\n    </ng-container>\n    <!-- It is visible when the list items are getting loaded -->\n    <app-listline-loader *ngIf=\"loading\"></app-listline-loader>\n    <ng-container *ngIf=\"!loading && list?.length === 0\">\n      <app-no-data\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"\n          config?.noDataText?.length > 0\n            ? config?.noDataText\n            : 'No data to display'\n        \"\n      ></app-no-data>\n    </ng-container>\n\n    <app-floating-bar\n      [selectedData]=\"selectedList\"\n      [displayElementKey]=\"config?.displayKey\"\n      [singularText]=\"config?.entitySingular\"\n      [pluralText]=\"\n        config?.entityPlural ? config?.entityPlural : 'Users selected'\n      \"\n      (closeEvent)=\"save()\"\n      (closeList)=\"close()\"\n      (deleteEvent)=\"deleteItem($event)\"\n      [isDisabled]=\"selectedList.length === 0 || list?.length === 0\"\n    >\n    </app-floating-bar>\n  </div>\n</div>\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Optional,\n  Output,\n} from '@angular/core';\n\nimport { EditorConfig } from 'vcomply-editor';\nimport { Configurations } from '../configurations';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\nimport { AssessmentService } from '../workflow-services/assessment.service';\nimport { AuthService } from '../workflow-services/auth.service';\nimport { UiKitService } from '../workflow-services/ui-kit.service';\nimport { IframeService } from '../services/iframe.service';\nimport { ASSETS } from '../constants/assets.constants';\n\n@Component({\n  selector: 'app-workflow-assessment',\n  templateUrl: './workflow-assessment.component.html',\n  styleUrls: ['./workflow-assessment.component.less', '../forms.less'],\n})\nexport class WorkflowAssessmentComponent implements OnInit {\n  ASSETS = ASSETS;\n  activeSelector: any = '';\n  submitted = false;\n  loader = false;\n  showSmiley = false;\n  @Input() mode = 'EDIT';\n  @Input() assessmentId = '';\n  @Input() openedFrom = '';\n  @Output() disconnectRefresh = new EventEmitter();\n  sideSelectorElements: any = ['category'];\n  actionButtons = [\n    // { buttonText: 'Add More Assessments', class: 'white-btn', id: 'addMore' },\n    {\n      buttonText: 'Go to assessment workroom',\n      class: 'blue-btn',\n      id: 'viewAssessment',\n    },\n  ];\n  assessmentTypeChangeAllowed = true;\n  timezone!: string;\n  @Output() pickerChanged = new EventEmitter();\n  @Output() closeWorkflow = new EventEmitter();\n  assessmentForm: any = {\n    assessmentType: 'compliance',\n    name: '',\n    description: '',\n    category: [],\n    customTags: [],\n  };\n  assessmentData: any;\n  organizationId = 0;\n  constructor(\n    public assessmentService: AssessmentService,\n    private authService: AuthService,\n    private uiKitService: UiKitService,\n    private snackBar: SnackBarService,\n    private iframeService: IframeService,\n    @Optional() config?: Configurations\n  ) {\n    this.timezone = this.authService.getUserTimeZone();\n  }\n  selectorConfig = {\n    ASSESSMENT_CATGORY: {\n      panelTitle: 'Select an Assessment Category',\n      entitySingular: 'Category selected.',\n      entityPlural: 'Categories selected.',\n      displayKey: 'category_name',\n      identifierKey: 'id',\n      parentKey: 'category_parents',\n      parentDisplayKey: 'parent_tree',\n      searchPlaceholder: 'Search an assessment category.',\n      noDataText: 'No assessment categories found.',\n    },\n  };\n  ngOnInit(): void {\n    //this.loader = true;\n    if (this.mode === 'CREATE') {\n      this.organizationId = this.authService.getOrganizationId();\n    }\n    //this.setCategory({ searchKey: '', page: 1 });\n    if (this.mode === 'EDIT') {\n      this.getAssessmentDetails();\n    }\n  }\n\n  getAssessmentDetails() {\n    this.loader = true;\n    this.assessmentService.getAssessmentDetails(this.assessmentId).subscribe({\n      next: (res: any) => {\n        this.assessmentForm.name = res?.assessment_name ?? '';\n        this.assessmentForm.description = res?.description ?? '';\n        this.assessmentForm.assessmentType =\n          res?.assessment_type ?? 'compliance';\n        this.assessmentForm.category = res.category_arr.map((ele: any) => {\n          return { id: ele?._id, category_name: ele?.category_name };\n        });\n        this.assessmentTypeChangeAllowed =\n          res?.assessment_type === 'compliance';\n        this.loader = false;\n      },\n      error: (err: any) => {\n        this.snackBar.show(\n          'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n          'alert'\n        );\n        this.loader = false;\n      },\n    });\n  }\n\n  //This function is responsible for fetching the list of categories\n  setCategory(evt: any) {\n    this.assessmentService.fetchCategory({\n      search_title: evt.searchKey,\n      page_no: evt.page,\n    });\n  }\n\n  activateSelector(type: any, event: boolean) {\n    if (type === 'category') {\n      this.setCategory({ searchKey: '', page: 1 });\n    }\n    this.activeSelector = event ? type : '';\n    if (this.sideSelectorElements.includes(type)) {\n      this.pickerChanged.emit(event);\n    }\n  }\n\n  activeDeselector() {\n    this.activeSelector = '';\n    this.pickerChanged.emit(false);\n  }\n\n  next(type: string, payload: any) {\n    switch (type) {\n      case 'CATEGORY': {\n        this.activeDeselector();\n        this.assessmentForm.category = payload;\n        if (this.assessmentForm.category?.length > 1) {\n          this.assessmentForm.category = this.assessmentForm.category.filter(\n            (ele: any) => ele?.category_name != 'uncategorized'\n          );\n        }\n      }\n    }\n  }\n\n  remove(type: any, event: any) {\n    switch (type) {\n      case 'category':\n        this.assessmentForm.category = this.assessmentForm.category.filter(\n          (ele: any) => ele?.id !== event?.id\n        );\n    }\n  }\n\n  description: EditorConfig = {\n    mode: 'prime',\n    colorPalette: true,\n    link: true,\n    placeholder: 'Add a description',\n  };\n\n  changeAssessment(type: string) {\n    this.assessmentForm = {\n      ...this.assessmentForm,\n      ...{ assessmentType: type?.toLocaleLowerCase() },\n    };\n    console.log('this.assessmentForm ===>', this.assessmentForm);\n  }\n  closeSmiley(evt: any) {\n    this.closeWorkflow.emit({ evt: this.assessmentId, confirm: false });\n  }\n\n  action(evt: any) {\n    if (evt === 'viewAssessment') {\n      this.disconnectRefresh.emit(false);\n      const url = `https://${window.location.hostname}/assessment/assessment-workroom/?id=${this.assessmentId}`;\n      this.iframeService.redirectIfInIframe(url, true);\n    }\n  }\n\n  checkDescription() {\n    if (this.assessmentForm.description == '<br>') {\n      this.assessmentForm.description = '';\n    }\n  }\n\n  submitAssessment() {\n    this.submitted = true;\n    const valid = this.validateAssessment();\n    if (!valid) {\n      return false;\n    } else {\n      this.createAssessment(this.assessmentForm);\n    }\n  }\n\n  validateAssessment() {\n    this.submitted = true;\n    if (\n      !this.assessmentForm.name.trim() ||\n      this.assessmentForm.category.length == 0\n    ) {\n      return false;\n    } else {\n      return true;\n    }\n  }\n\n  createAssessment(assessmentForm: any) {\n    this.loader = true;\n    this.uiKitService.isLoader = false;\n\n    const payload = {\n      assessment_name: assessmentForm.name.trim(),\n      description: assessmentForm.description,\n      assessment_type: assessmentForm.assessmentType,\n      category_arr: this.assessmentForm.category.map((ele: any) => ele.id),\n      approval_workflow_arr: {\n        test: 'test',\n      },\n      approval_required: true,\n      source_page: 'compliance',\n    };\n    if (this.mode == 'CREATE') {\n      this.assessmentService.addAssessment(payload).subscribe(\n        (res: any) => {\n          this.disconnectRefresh.emit(false);\n          this.assessmentId = res?._id;\n          const url = `https://${window.location.hostname}/assessment/create/${res?._id}`;\n          this.iframeService.redirectIfInIframe(url, true);\n          this.loader = false;\n        },\n        (err: any) => {\n          console.error(err);\n          this.loader = false;\n          this.uiKitService.isLoader = false;\n          this.snackBar.show(\n            'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n            'alert'\n          );\n        }\n      );\n    } else if (this.mode === 'EDIT') {\n      this.assessmentService\n        .updateAssessment(this.assessmentId, payload)\n        .subscribe({\n          next: (res: any) => {\n            this.loader = false;\n            this.showSmiley = true;\n          },\n          error: (err: any) => {\n            if (err?.error.message.startsWith('No changes')) {\n              this.loader = false;\n              this.showSmiley = true;\n            } else {\n              this.snackBar.show(\n                'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n                'alert'\n              );\n            }\n          },\n        });\n    }\n  }\n}\n","<div class=\"workflow-assessment\">\n  <!-- Assessment Type -->\n  <div class=\"form-group-row\" [class.active]=\"false\" [class.disabled]=\"false\">\n    <div class=\"left checked\">\n      <svg\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >ASSESSMENT TYPE <span class=\"required\">*</span></label\n        >\n        <div class=\"risk-type-field\">\n          <div\n            class=\"type-item\"\n            [class.active]=\"\n              assessmentForm?.assessmentType === 'compliance_audit'\n            \"\n          >\n            <button\n              [class.disabled]=\"!assessmentTypeChangeAllowed\"\n              (click)=\"changeAssessment('compliance_audit')\"\n            >\n              COMPLIANCE AUDIT\n            </button>\n            <i\n              class=\"icons info\"\n              appTooltip=\"This option lets you create a 'Compliance Audit Template' that can be used to conduct various site, user and department level audits. Once the assessment template is created, you can directly create the responsibility and assign it to the relevant assignee.<br><b>Note:</b> These compliance audit templates can only be linked with an audit responsibility that is created as a part of the creating such assessments.\"\n              placement=\"bottom-right\"\n              delay=\"0\"\n              type=\"white\"\n              [tooltipMandatory]=\"true\"\n              >&#xe932;</i\n            >\n          </div>\n          <div\n            class=\"type-item\"\n            [appTooltip]=\"\n              assessmentTypeChangeAllowed\n                ? ''\n                : 'You Cannot change the assessment type.'\n            \"\n            placement=\"bottom-left\"\n            delay=\"0\"\n            type=\"black\"\n            [tooltipMandatory]=\"true\"\n            [class.active]=\"assessmentForm?.assessmentType === 'compliance'\"\n          >\n            <button\n              [class.disabled]=\"!assessmentTypeChangeAllowed\"\n              (click)=\"changeAssessment('compliance')\"\n            >\n              Other\n            </button>\n            <i\n              class=\"icons info\"\n              [class.disabled]=\"!assessmentTypeChangeAllowed\"\n              [appTooltip]=\"\n                'This option can be used to create any outcome based questionnaire or self-assessment questionnaires. Once the templates are created, they can be linked with multiple responsibilities.'\n              \"\n              placement=\"bottom-right\"\n              delay=\"0\"\n              type=\"white\"\n              [tooltipMandatory]=\"true\"\n              >&#xe932;</i\n            >\n          </div>\n          <span class=\"background-glider\"></span>\n        </div>\n        <p *ngIf=\"false\" class=\"error-message\">Add an assessment type</p>\n      </div>\n    </div>\n  </div>\n\n  <!-- Assessment Name -->\n  <div\n    class=\"form-group-row\"\n    [class.active]=\"false\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'name' &&\n      sideSelectorElements.includes(activeSelector)\n    \"\n  >\n    <div class=\"left\" [class.checked]=\"false\">\n      <img\n        [src]=\"ASSETS.what\"\n        alt=\"im\"\n        *ngIf=\"!assessmentForm.name.trim() || activeSelector === 'name'\"\n      />\n\n      <svg\n        *ngIf=\"assessmentForm.name.trim() && activeSelector !== 'name'\"\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >Assessment Name <span class=\"required\">*</span></label\n        >\n        <input\n          type=\"text\"\n          (keydown)=\"activeSelector = 'name'\"\n          (focusin)=\"activateSelector('name', true)\"\n          (focusout)=\"activateSelector('name', false)\"\n          [(ngModel)]=\"assessmentForm.name\"\n          placeholder=\"Add an assessment name\"\n          *ngIf=\"assessmentForm.name == '' || activeSelector === 'name'\"\n        />\n        <div\n          class=\"selected\"\n          *ngIf=\"assessmentForm.name.length && activeSelector !== 'name'\"\n        >\n          <div class=\"chip-container\">\n            <span class=\"value\">{{ assessmentForm.name }}</span>\n          </div>\n          <button\n            class=\"edit\"\n            (click)=\"activateSelector('name', true)\"\n            type=\"button\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <p\n          *ngIf=\"submitted && !assessmentForm.name.trim()\"\n          class=\"error-message\"\n        >\n          Enter a name for this Assessment.\n        </p>\n        <vcomply-editor\n          [(ngModel)]=\"assessmentForm.description\"\n          [editorConfig]=\"description\"\n          (clickOutside)=\"checkDescription()\"\n        ></vcomply-editor>\n        <!-- <p *ngIf=\"submitted && (assessmentForm.assessmentType ==='COMPLIANCE' && !assessmentForm?.description?.trim()?.length)\" class=\"error-message\">Add an assessment description</p> -->\n      </div>\n    </div>\n  </div>\n\n  <!-- Assessment Category -->\n  <div\n    class=\"form-group-row\"\n    [class.active]=\"activeSelector === 'category'\"\n    [class.disabled]=\"\n      activeSelector &&\n      activeSelector !== 'category' &&\n      sideSelectorElements.includes(activeSelector)\n    \"\n  >\n    <div class=\"left\" [class.checked]=\"assessmentForm?.category?.length\">\n      <img\n        *ngIf=\"\n          !assessmentForm?.category?.length || activeSelector === 'category'\n        \"\n        [src]=\"ASSETS.case_category\"\n        alt=\"\"\n      />\n\n      <svg\n        class=\"checkIcon\"\n        *ngIf=\"\n          assessmentForm?.category?.length && activeSelector !== 'category'\n        \"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group\">\n        <label class=\"vx-control-panel\"\n          >ASSESSMENT CATEGORY <span class=\"required\">*</span></label\n        >\n        <div class=\"select\" *ngIf=\"!assessmentForm?.category?.length\">\n          <input\n            type=\"text\"\n            (click)=\"activateSelector('category', true)\"\n            placeholder=\"Select category for this assessment\"\n            readonly\n          />\n        </div>\n        <div class=\"selected\" *ngIf=\"assessmentForm?.category?.length\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i\n              class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              *ngIf=\"\n                assessmentForm?.category[0]?.category_name !== 'uncategorized'\n              \"\n              (click)=\"remove('category', assessmentForm.category[0])\"\n              >&#xe9ae;</i\n            >\n            <span\n              class=\"chipName vx-fs-11 vx-label-txt\"\n              [appTooltip]=\"assessmentForm?.category[0]?.category_name\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n              >{{ assessmentForm?.category[0]?.category_name }}</span\n            >\n            <button\n              class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover\n              (click)=\"category.popover()\"\n              placement=\"right\"\n              *ngIf=\"assessmentForm?.category?.length > 1\"\n            >\n              +{{ assessmentForm?.category?.length - 1 }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                        <span class=\"chip\"><i *ngIf=\"assessmentForm?.category[0]?.category_name !== 'uncategorized'\" class=\"icons\" (click)=\"remove('category',assessmentForm.category[0])\">&#xe90d;</i>{{assessmentForm?.category[0]?.category_name}}</span>\n                        <button class=\"count\" *ngIf=\"assessmentForm?.category?.length > 1\" appPopover (click)=\"category.popover()\" placement=\"right\">+{{assessmentForm?.category?.length -1}}</button>\n                    </div> -->\n          <button\n            *ngIf=\"activeSelector !== 'category'\"\n            class=\"edit\"\n            type=\"button\"\n            (click)=\"activateSelector('category', true)\"\n          >\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n        <p\n          *ngIf=\"submitted && !assessmentForm?.category?.length\"\n          class=\"error-message\"\n        >\n          Select the Assessment Category.\n        </p>\n        <app-popover #category [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li\n                *ngFor=\"\n                  let category of assessmentForm?.category | slice : 1;\n                  let j = index\n                \"\n              >\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove('category', category)\"\n                      >&#xe90d;</i\n                    >\n                    {{ category?.category_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </div>\n      <ng-container *ngIf=\"assessmentForm?.customTags?.length > 0\">\n        <div\n          class=\"vx-form-group\"\n          *ngFor=\"let tag of assessmentForm.customTags\"\n        >\n          <label class=\"vx-control-panel\">{{ tag.custom_tag_name }}</label>\n          <input\n            type=\"text\"\n            [(ngModel)]=\"tag.custom_tag_value\"\n            [placeholder]=\"tag.custom_tag_name\"\n          />\n        </div>\n      </ng-container>\n    </div>\n  </div>\n\n  <!-- Assessment Approval Workflow -->\n  <div\n    *ngIf=\"false\"\n    class=\"form-group-row\"\n    [class.active]=\"false\"\n    [class.disabled]=\"false\"\n  >\n    <div class=\"left\" [class.checked]=\"false\">\n      <img *ngIf=\"true\" [src]=\"ASSETS.approval\" alt=\"im\" />\n\n      <svg\n        *ngIf=\"false\"\n        class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 52 52\"\n      >\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path\n          class=\"checkIcon__check\"\n          fill=\"none\"\n          d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n        />\n      </svg>\n    </div>\n    <div class=\"right\">\n      <div class=\"vx-form-group approval-workflow\" [class.disabled]=\"false\">\n        <label class=\"vx-control-panel\">\n          Approval workflow <span class=\"required\">*</span>\n          <button class=\"button\">CREATE A NEW APPROVAL WORKFLOW</button>\n        </label>\n        <div class=\"select\" [class.disabled]=\"false\" *ngIf=\"true\">\n          <cs-select [placeholder]=\"'Select approvers for this assessment'\">\n            <cs-option>test</cs-option>\n            <cs-option>Create a new approval workflow</cs-option>\n          </cs-select>\n        </div>\n        <app-cs-switch\n          >APPROVAL NOT REQUIRED\n          <i\n            class=\"icons\"\n            [appTooltip]=\"'Approval workflow info text here...'\"\n            placement=\"bottom-right\"\n            type=\"white\"\n            delay=\"0\"\n            [tooltipMandatory]=\"true\"\n            >&#xe932;</i\n          ></app-cs-switch\n        >\n        <ng-container *ngIf=\"true\">\n          <div class=\"selected\">\n            <div class=\"workflow-label\">\n              <p class=\"title\">Level 1</p>\n              <p class=\"description\">lavel name</p>\n            </div>\n            <div class=\"vx-d-flex vx-align-center\">\n              <div class=\"chip-container\">\n                <span class=\"chip\">\n                  <i class=\"icons\">&#xe90d;</i>\n                  <span class=\"step\" *ngIf=\"true\">1</span>approval name\n                </span>\n\n                <button\n                  class=\"count\"\n                  *ngIf=\"true\"\n                  type=\"button\"\n                  appPopover\n                  (click)=\"labelName.popover()\"\n                  placement=\"right\"\n                >\n                  +8\n                </button>\n                <app-popover #labelName [dontCloseonClick]=\"true\">\n                  <div class=\"wf-action-list\">\n                    <ul class=\"action-item\">\n                      <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n                        <div class=\"avatar-card\">\n                          <span class=\"value\">\n                            <i class=\"icons\">&#xe90d;</i>\n                            <span class=\"step\">2</span>approval name\n                          </span>\n                        </div>\n                      </li>\n                    </ul>\n                  </div>\n                </app-popover>\n              </div>\n              <button class=\"edit\" type=\"button\">\n                <i class=\"icons\">&#xe9ba;</i>Edit\n              </button>\n              <button class=\"close-btn\"><i class=\"icons\">&#xe90d;</i></button>\n            </div>\n          </div>\n        </ng-container>\n\n        <p *ngIf=\"true\" class=\"error-message\">\n          Select or create an approval workflow for this assessment.\n        </p>\n\n        <label class=\"vx-control-panel\" *ngIf=\"true\">\n          <button class=\"button\">+ Add More Levels</button>\n        </label>\n      </div>\n    </div>\n  </div>\n</div>\n<ng-container\n  *ngIf=\"assessmentService?.categoriesListData$ | async as categories\"\n>\n  <app-radio-list-with-pagination\n    *ngIf=\"activeSelector === 'category'\"\n    [categoryList]=\"categories?.data\"\n    [config]=\"selectorConfig?.ASSESSMENT_CATGORY\"\n    [currentPage]=\"categories?.currentPage\"\n    [recordStart]=\"categories?.start_value\"\n    [recordEnd]=\"categories?.end_value\"\n    [totalRecords]=\"categories?.totalRecords\"\n    [totalPages]=\"categories?.totalPage\"\n    [loading]=\"assessmentService?.categoriesLoading$ | async\"\n    (fetchData)=\"setCategory($event)\"\n    (next)=\"next('CATEGORY', $event)\"\n    [selectedList]=\"assessmentForm?.category | uncategorizedFilter\"\n    (cancel)=\"activeDeselector()\"\n    (back)=\"activeDeselector()\"\n  ></app-radio-list-with-pagination>\n</ng-container>\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n<app-smiley-dialog-inline\n  *ngIf=\"showSmiley\"\n  [message]=\"smileyMessage\"\n  [actionButtons]=\"actionButtons\"\n  (action)=\"action($event)\"\n  (closeSmiley)=\"closeSmiley($event)\"\n>\n</app-smiley-dialog-inline>\n<!-- <app-create-assessment-container></app-create-assessment-container> -->\n","import { Component, Output, EventEmitter, ViewChild } from '@angular/core';\nimport * as XLSX from 'xlsx';\nimport { AuthService } from '../../workflow-services/auth.service';\nimport { AssessmentService } from '../../workflow-services/assessment.service';\nimport { CreateAssessmentContainerComponent } from '../../sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component';\nimport { UiKitService } from '../../workflow-services/ui-kit.service';\nimport { IframeService } from '../../services/iframe.service';\nimport { ASSETS } from '../../constants/assets.constants';\n\ntype AOA = any[][];\nconst smileyActions = {\n  IMPORT_MORE: 'IMPORT_MORE',\n  VIEW_ASSESSMENTS: 'VIEW_ASSESSMENTS',\n};\n\n@Component({\n  selector: 'app-import-an-assessment',\n  templateUrl: './import-an-assessment.component.html',\n  styleUrls: ['./import-an-assessment.component.less', '../../forms.less'],\n})\nexport class ImportAnAssessmentComponent {\n  ASSETS = ASSETS;\n  @ViewChild('editor', { static: false })\n  editorCont!: CreateAssessmentContainerComponent;\n  @Output() closeWorkflow = new EventEmitter();\n  @Output() disconnectRefresh = new EventEmitter();\n  isShowLoader: boolean = false;\n  isWrongFormat = false;\n  fileName: any;\n  data: any;\n  uploadedFiles: any = [];\n  fileResponse: any = [];\n  fileValue: any;\n  organizationId = 0;\n  errorMessage = 'invalid file error';\n  downloadStatus: string = 'NOT_DOWNLOADING';\n  downloadPercent = 0;\n  smileyMessageAction = `You're All Set!`;\n  actionButtons = [\n    {\n      buttonText: 'Import More Assessments',\n      class: 'white-btn',\n      id: smileyActions.IMPORT_MORE,\n    },\n    {\n      buttonText: 'View Assessments',\n      class: 'blue-btn',\n      id: smileyActions.VIEW_ASSESSMENTS,\n    },\n  ];\n  showSmiley = false;\n  assessmentData!: any;\n  sheetData!: any;\n  convertedData: any;\n  isUploaded: boolean = false;\n  categoryData!: any;\n\n  setIsUploaded(isUploaded: boolean) {\n    this.isUploaded = isUploaded;\n    this.auth.previewPanel.next(isUploaded);\n    if (!isUploaded) {\n      const closeBtn = document.getElementById('close-workflow-engine-btn');\n      if (closeBtn) closeBtn.style.display = 'block';\n      this.convertedData = {};\n    }\n  }\n\n  constructor(\n    private auth: AuthService,\n    public assessmentService: AssessmentService,\n    private iframeService: IframeService\n  ) {\n    this.organizationId = this.auth.getOrganizationId();\n  }\n\n  closeSmiley(event: any) {\n    this.showSmiley = false;\n    this.closeWorkflow.emit({ evt: this.assessmentData, confirm: false });\n  }\n\n  downloadTemplate() {\n    this.downloadStatus = 'DOWNLOADING';\n    this.downloadPercent = 0;\n    const downloadDate = new Date().toDateString().split(' ');\n    const fileName = `Import an Assessment-${downloadDate[2]}-${downloadDate[1]}-${downloadDate[3]}.xlsx`;\n\n    this.assessmentService.downloadTemplate().subscribe({\n      next: (data: any) => {\n        setTimeout(() => {\n          this.downloadStatus = this.assessmentService.downLoadFile(\n            data,\n            'application/xlsx',\n            fileName\n          );\n        }, 1500);\n      },\n      error: () => {\n        this.downloadStatus = 'DOWNLOADED';\n      },\n    });\n  }\n\n  triggerBrowseFile() {\n    const getFile = document.getElementById('iaa-file-input');\n    if (getFile) {\n      getFile.click();\n    }\n  }\n\n  //  handle upload file area\n  uploadFile(evt: any) {\n    const target: DataTransfer = evt.target as DataTransfer;\n    const reader: FileReader = new FileReader();\n    reader.onload = (e: any) => {\n      const bstr: string = e.target.result;\n      const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\n      const wsname: string = wb.SheetNames[0];\n      const wsname1: string = wb.SheetNames[1];\n      const ws: XLSX.WorkSheet = wb.Sheets[wsname];\n      const tempData: XLSX.WorkSheet = wb.Sheets[wsname1];\n      this.categoryData = XLSX.utils.sheet_to_json(tempData, {\n        header: 1,\n      }) as AOA;\n      this.sheetData = XLSX.utils.sheet_to_json(ws, {\n        header: 1,\n      }) as AOA;\n\n      this.generateCategoryList(this.categoryData);\n\n      this.assessmentData = this.sheetData.filter(\n        (dataElement: any) => dataElement.length > 0\n      );\n\n      this.isWrongFormat = false;\n      this.errorMessage = '';\n      if (!this.checkFormat(this.assessmentData)) {\n        const closeBtn = document.getElementById('close-workflow-engine-btn');\n        if (closeBtn) closeBtn.style.display = 'none';\n\n        this.generateEditorPayload(this.assessmentData);\n        this.auth.previewPanel.next(true);\n        this.isUploaded = true;\n        setTimeout(() => {\n          this.editorCont.triggerPreviewWithValidation();\n        }, 100);\n      }\n    };\n    reader.readAsBinaryString(target.files[0]);\n  }\n\n  categoryList!: any;\n  generateCategoryList(categoryData: any) {\n    const catList: any = {};\n    if (categoryData) {\n      categoryData.forEach((ele: any) => {\n        catList[ele[0]] = ele[1];\n      });\n      this.categoryList = catList;\n    }\n  }\n\n  categoryNametoId(categoryName: string) {\n    if (this.categoryList[categoryName]) {\n      return this.categoryList[categoryName];\n    } else {\n      return null;\n    }\n  }\n  generateEditorPayload(data: any) {\n    //check format\n\n    const payload: any = {\n      metadata: {\n        assessment_name: '',\n        description: '',\n        assessment_type: 'compliance',\n        category_arr: [],\n        approval_workflow_arr: {\n          test: 'test',\n        },\n        approval_required: true,\n        source_page: 'compliance',\n      },\n      assessmentData: {\n        version: 2,\n        questionRandomize: false,\n        anonymousResponse: false,\n        hasWelcome: false,\n        hasWelcomeDescription: false,\n        welcomeText: '',\n        hasWelcomeImage: false,\n        welcomeImage: '',\n        welcomeDescription: '',\n        hasThanks: false,\n        hasThankyouImage: false,\n        thankyouText: '',\n        thankyouImage: '',\n        hasThankyouDescription: false,\n        thankyouDescription: '',\n        elements: [],\n        pageDetailsList: [],\n        customResponseSet: [],\n        settings: this.settings,\n        responseSegment: this.initializeEmptyResponseSegment(),\n      },\n    };\n\n    this.convertedData = payload;\n    this.convertedData.metadata.assessment_name = this.assessmentData[2][1];\n    this.convertedData.metadata.description = this.assessmentData[3][1];\n    // this.convertedData.metadata.category_arr[0] = this.assessmentData[4][1];\n    this.convertedData.metadata.category_arr = [\n      this.categoryNametoId(this.assessmentData[4][1]),\n    ];\n\n    //TODO: create a function to convert from categories names to categories id.\n    //TODO: check the api for sub-flow like assessment-setting.\n    // this.convertedData.metadata.category_arr[0] = \"61cc27c5b3e8642b333f3591\";\n    this.generateQuestionsList(data.slice(6), payload.assessmentData.elements);\n  }\n\n  generateQuestionsList(questionsList: any, questionsArray: any) {\n    questionsArray = [];\n    if (questionsList?.length) {\n      questionsList.forEach((question: any, index: number) => {\n        questionsArray.push();\n        switch (question[0]) {\n          case 'Single Textbox':\n            questionsArray.push(\n              this.generateSingleTextbox('single-textbox', question, index)\n            );\n            break;\n          case 'Multiple Choice':\n            questionsArray.push(\n              this.generateMultipleChoice('multiple-choice', question, index)\n            );\n            break;\n          case 'Checkbox':\n            questionsArray.push(\n              this.generateMultipleChoice('checkbox', question, index)\n            );\n            break;\n          case 'Dropdown':\n            questionsArray.push(\n              this.generateMultipleChoice('dropdown', question, index)\n            );\n            break;\n          case 'Date & Time':\n            questionsArray.push(\n              this.generateDateTime('date-time', question, index)\n            );\n            break;\n          case 'File Upload':\n            questionsArray.push(this.generateFileUpload(question, index));\n            break;\n          default:\n          // No need to do anything for default\n        }\n      });\n    }\n    this.convertedData.assessmentData.elements = questionsArray;\n  }\n  colMap: any = {\n    type: 0,\n    title: 1,\n    score: 2,\n    opt1: 3,\n    opt2: 4,\n    opt3: 5,\n    opt4: 6,\n    opt5: 7,\n    opt6: 8,\n    required: 9,\n    failed: 10,\n    description: 11,\n    placeholder: 12,\n    comment: 13,\n    other: 14,\n    randomize: 15,\n    alignment: 16,\n    userattachment: 17,\n    usercomment: 18,\n  };\n  generateSingleTextbox(type: string, question: any, index: any) {\n    return {\n      type: 'single-textbox',\n      name: `Question_${index}`,\n      page: 1,\n      hasValidation: false,\n      validationType: '',\n      isRequired: question[this.colMap?.required] === 'Yes' ? true : false,\n      hasCharacterLength: false,\n      minCharacterLength: 0,\n      maxCharacterLength: 100,\n      title: question[this.colMap?.title]?.toString()?.trim() ?? '',\n      hasDescription: question[this.colMap?.description]?.toString()?.trim()\n        ?.length\n        ? true\n        : false,\n      description: question[this.colMap?.description]?.toString()?.trim() ?? '',\n      hasComments: question[this.colMap?.usercomment]?.toString()?.trim()\n        ?.length\n        ? true\n        : false,\n      comments: question[this.colMap?.comment]?.toString()?.trim(),\n      randomize: question[this.colMap?.randomize] === 'Yes' ? true : false,\n      hasOther: question[this.colMap?.other] === 'Yes' ? true : false,\n      otherValue: 'Other',\n      alignment: question[this.colMap?.alignment] === 'Yes' ? true : false,\n      reverse: false,\n      isRespondentAttachment:\n        question[this.colMap?.userattachment] === 'Yes' ? true : false,\n      userAttachedFiles: [],\n      isRespondentComment:\n        question[this.colMap?.usercomment] === 'Yes' ? true : false,\n      visibilityLogic: [],\n      otherConfig: {\n        color: '#000000',\n        isFailed: false,\n        score: question[this.colMap?.score] ?? 1,\n      },\n      choices: [\n        {\n          title: '',\n          value: 1,\n          isSelected: false,\n          required: 0,\n          hasHelpingLabel: false,\n          helpingLabel: '',\n          isFailed: false,\n          score: question[this.colMap?.score] ?? 1,\n          color: '#000000',\n        },\n      ],\n    };\n  }\n\n  generateMultipleChoice(type: string, question: any, index: any) {\n    return {\n      type: type,\n      name: `Question_${index}`,\n      page: 1,\n      hasValidation: false,\n      validationType: '',\n      isRequired: question[this.colMap?.required] === 'Yes' ? true : false,\n      hasCharacterLength: false,\n      minCharacterLength: 0,\n      maxCharacterLength: 100,\n      title: question[this.colMap?.title]?.toString()?.trim() ?? '',\n      hasDescription: question[this.colMap?.description]?.toString()?.trim()\n        ?.length\n        ? true\n        : false,\n      description: question[this.colMap?.description]?.toString().trim() ?? '',\n      hasComments: question[this.colMap?.comment]?.toString()?.trim()?.length\n        ? true\n        : false,\n      comments: question[this.colMap?.comment]?.toString().trim(),\n      randomize: question[this.colMap?.randomize] === 'Yes' ? true : false,\n      hasOther: question[this.colMap?.other] === 'Yes' ? true : false,\n      otherValue: 'Other',\n      alignment: question[this.colMap?.alignment] === 'Yes' ? true : false,\n      reverse: false,\n      isRespondentAttachment:\n        question[this.colMap?.userattachment] === 'Yes' ? true : false,\n      userAttachedFiles: [],\n      visibilityLogic: [],\n      isRespondentComment:\n        question[this.colMap?.usercomment] === 'Yes' ? true : false,\n      otherConfig: {\n        color: '#000000',\n        isFailed: false,\n        score: question[this.colMap?.score] ?? 1,\n      },\n      choices: this.generateChoices(question),\n    };\n  }\n\n  generateDateTime(type: string, question: any, index: any) {\n    return {\n      type: type,\n      name: `Question_${index}`,\n      page: 1,\n      hasValidation: false,\n      validationType: '',\n      isRequired: question[this.colMap?.required] === 'Yes' ? true : false,\n      hasCharacterLength: false,\n      minCharacterLength: 0,\n      maxCharacterLength: 100,\n      title: question[this.colMap?.title]?.toString()?.trim() ?? '',\n      hasDescription: question[this.colMap?.description]?.toString()?.trim()\n        ?.length\n        ? true\n        : false,\n      description: question[this.colMap?.description]?.toString()?.trim() ?? '',\n      hasComments: question[this.colMap?.comment]?.toString()?.trim()?.length\n        ? true\n        : false,\n      comments: question[this.colMap?.comment]?.toString().trim(),\n      randomize: question[this.colMap?.randomize] === 'Yes' ? true : false,\n      hasOther: question[this.colMap?.other] === 'Yes' ? true : false,\n      otherValue: 'Other',\n      alignment: question[this.colMap?.alignment] === 'Yes' ? true : false,\n      reverse: false,\n      isRespondentAttachment:\n        question[this.colMap?.userattachment] === 'Yes' ? true : false,\n      userAttachedFiles: [],\n      visibilityLogic: [],\n      isRespondentComment:\n        question[this.colMap?.usercomment] === 'Yes' ? true : false,\n      otherConfig: {\n        color: '#000000',\n        isFailed: false,\n        score: question[this.colMap?.score] ?? 1,\n      },\n      choices: [\n        {\n          title: '',\n          value: 1,\n          isSelected: false,\n          required: 0,\n          hasHelpingLabel: false,\n          helpingLabel: '',\n          isFailed: false,\n          score: question[this.colMap?.score] ?? 1,\n          color: '#000000',\n        },\n      ],\n      hasDate: true,\n      hasTime: false,\n      dateFormat: 'DD/MM/YYYY',\n      timeFormat: 24,\n      date: {\n        title: question[this.colMap?.placeholder] ?? 'Select Date',\n        value: '',\n      },\n      time: {\n        title: question[this.colMap?.placeholder] ?? 'Select Time',\n        value: '',\n      },\n    };\n  }\n  generateFileUpload(question: any, index: any) {\n    return {\n      type: 'file-upload',\n      name: `Question_${index}`,\n      page: 1,\n      hasValidation: false,\n      validationType: '',\n      isRequired: question[this.colMap?.required] === 'Yes' ? true : false,\n      hasCharacterLength: false,\n      minCharacterLength: 0,\n      maxCharacterLength: 100,\n      title: question[this.colMap?.title]?.toString()?.trim() ?? '',\n      hasDescription: question[this.colMap?.description]?.toString()?.trim()\n        ?.length\n        ? true\n        : false,\n      description: question[this.colMap?.description]?.toString()?.trim() ?? '',\n      hasComments: question[this.colMap?.usercomment]?.toString()?.trim()\n        ?.length\n        ? true\n        : false,\n      comments: question[this.colMap?.comment]?.toString()?.trim(),\n      randomize: question[this.colMap?.randomize] === 'Yes' ? true : false,\n      hasOther: question[this.colMap?.other] === 'Yes' ? true : false,\n      otherValue: 'Other',\n      alignment: question[this.colMap?.alignment] === 'Yes' ? true : false,\n      reverse: false,\n      isRespondentAttachment:\n        question[this.colMap?.userattachment] === 'Yes' ? true : false,\n      userAttachedFiles: [],\n      visibilityLogic: [],\n      isRespondentComment:\n        question[this.colMap?.usercomment] === 'Yes' ? true : false,\n      otherConfig: {\n        color: '#000000',\n        isFailed: false,\n        score: question[this.colMap?.score] ?? 1,\n      },\n      choices: [\n        {\n          title: '',\n          value: 1,\n          isSelected: false,\n          required: 0,\n          hasHelpingLabel: false,\n          helpingLabel: '',\n          isFailed: false,\n          score: question[this.colMap?.score] ?? 1,\n          color: '#000000',\n        },\n      ],\n      allowedFileTypes: {\n        pdf: true,\n        doc: true,\n        png: true,\n        jpg: true,\n        gif: true,\n      },\n    };\n  }\n\n  generateChoices(question: any) {\n    const options = [\n      question[this.colMap?.opt1],\n      question[this.colMap?.opt2],\n      question[this.colMap?.opt3],\n      question[this.colMap?.opt4],\n      question[this.colMap?.opt5],\n      question[this.colMap?.opt6],\n    ].filter((ele: any) => ele);\n    options.forEach((ele: any) => {\n      if (ele) {\n        ele.toString()?.trim();\n      }\n    });\n    if (options?.length === 0) {\n      options.push('');\n    }\n    const optionMap: any = {\n      'Option 1': 3,\n      'Option 2': 4,\n      'Option 3': 5,\n      'Option 4': 6,\n      'Option 5': 7,\n      'Option 6': 8,\n    };\n    options.forEach((choice: any, index: any) => {\n      options[index] = {\n        title:\n          choice && typeof choice == 'string'\n            ? choice\n            : choice.toString() ?? '',\n        value: 1,\n        isSelected: false,\n        required: 0,\n        hasHelpingLabel: false,\n        helpingLabel: '',\n        isFailed:\n          choice?.toString()?.trim() ==\n            question[optionMap[question[this.colMap?.failed]]]\n            ? true\n            : false,\n        score: question[this.colMap?.score] ?? 1,\n        color: '#000000',\n      };\n    });\n\n    return options;\n  }\n\n  public settings: any = {\n    assessmentMode: false,\n    defaultScore: 1,\n    negativeScoreCriteria: 'FAILED',\n    negativeScore: 0,\n    weightageEnabled: false,\n    settingsEnabled: false,\n  };\n\n  checkFormat(assessmentData: any): boolean {\n    const orgInTemplate = this.categoryData[0][5];\n    //Completly blank excel sheet\n    if (assessmentData.length === 0 || orgInTemplate !== this.organizationId) {\n      this.errorMessage =\n        'You have uploaded the wrong template. Please download the template again to proceed.';\n      this.isWrongFormat = true;\n      return true;\n    }\n\n    //Invalid Tempalte\n    try {\n      if (\n        assessmentData[2][0] !== 'Assessment Name*' ||\n        assessmentData[3][0] !== 'Description' ||\n        assessmentData[4][0] !== 'Assessment Category*' ||\n        assessmentData[5][0] !== 'Question Type*'\n      ) {\n        this.errorMessage =\n          'You have uploaded the wrong template. Please download the template again to proceed.';\n        this.isWrongFormat = true;\n        return true;\n      }\n    } catch {\n      this.errorMessage =\n        'You have uploaded the wrong template. Please download the template again to proceed.';\n      this.isWrongFormat = true;\n      return true;\n    }\n\n    //Check Assessment name\n    try {\n      if (\n        !assessmentData[2][1] ||\n        assessmentData[2][1] === '' ||\n        assessmentData[2][1] === undefined\n      ) {\n        this.errorMessage = 'Enter a name for this Assessment.';\n        this.isWrongFormat = true;\n        return true;\n      }\n    } catch {\n      this.errorMessage = 'Enter a name for this Assessment.';\n      this.isWrongFormat = true;\n      return true;\n    }\n\n    //category not selected\n    try {\n      if (\n        !assessmentData[4][1] ||\n        assessmentData[4][1] === '' ||\n        assessmentData[4][1] === undefined\n      ) {\n        this.errorMessage = 'Select the Assessment Category.';\n        this.isWrongFormat = true;\n        return true;\n      }\n    } catch {\n      this.errorMessage = 'Select the Assessment Category.';\n      this.isWrongFormat = true;\n      return true;\n    }\n\n    //Does not contains any questions\n    try {\n      if (assessmentData.slice(7)?.length === 0) {\n        this.errorMessage =\n          'You have uploaded a blank template. Please add questions to this template and upload it again.';\n        this.isWrongFormat = true;\n        return true;\n      }\n    } catch {\n      this.errorMessage =\n        'You have uploaded a blank template. Please add questions to this template and upload it again.';\n      this.isWrongFormat = true;\n      return true;\n    }\n\n    //handle type of question and options count\n    for (let i = 7; i <= assessmentData.length - 1; i++) {\n      if (\n        assessmentData[i][0] !== 'Multiple Choice' &&\n        assessmentData[i][0] !== 'Checkbox' &&\n        assessmentData[i][0] !== 'Dropdown' &&\n        assessmentData[i][0] !== 'Single Textbox' &&\n        assessmentData[i][0] !== 'Date & Time' &&\n        assessmentData[i][0] !== 'File Upload'\n      ) {\n        this.errorMessage =\n          'You have uploaded the wrong template. Please download the template again to proceed.';\n        this.isWrongFormat = true;\n        return true;\n      }\n      // if (assessmentData[i][1] === '') {\n      //   this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';\n      //   this.isWrongFormat = true;\n      //   return true;\n      // }\n    }\n\n    this.errorMessage = '';\n    return false;\n  }\n\n  initializeEmptyResponseSegment() {\n    return {\n      title: '',\n      description: '',\n      maxScore: 10,\n      segments: [],\n    };\n  }\n\n  postAssessment(data: any) {\n    this.isShowLoader = true;\n    this.assessmentService\n      .createAssessment(this.convertedData.metadata)\n      .subscribe({\n        next: (response: any) => {\n          this.postAssessmentDetails(\n            response._id,\n            data.mode,\n            data.assessmentDetails\n          );\n        },\n        error: (err: any) => {\n          this.isShowLoader = false;\n        },\n      });\n  }\n\n  postAssessmentDetails(id: any, mode: any, assessmentDetails: any) {\n    this.isUploaded = false;\n    this.auth.previewPanel.next(false);\n    const payload = {\n      question: assessmentDetails,\n      action: 'questions_save',\n      state: mode,\n    };\n\n    this.assessmentService.saveAssessmentDetails(id, payload).subscribe({\n      next: (response: any) => {\n        this.assessmentData = {};\n        this.isShowLoader = false;\n        this.showSmiley = true;\n        this.submitWorkflow();\n      },\n      error: (err: any) => {\n        this.isShowLoader = false;\n      },\n    });\n  }\n\n  submitWorkflow() {\n    const message = { type: 'submit' };\n    const targetOrigin = this.getOrigin();\n    window.parent.postMessage(message, targetOrigin);\n  }\n\n  private getOrigin(): string {\n    return window.location.origin;\n  }\n\n  smileyAction(id: any) {\n    if (id === smileyActions.VIEW_ASSESSMENTS) {\n      this.disconnectRefresh.emit(false);\n      // TODO: Navigate to '/manage-assessment'\n      let url: string;\n      if (window.location.host.startsWith('localhost')) {\n        url = 'http://' + window.location.host + '/manage-assessment';\n      } else {\n        url =\n          'https://' + window.location.host + '/assessment/manage-assessment';\n      }\n      this.iframeService.redirectIfInIframe(url, true);\n    } else {\n      this.showSmiley = false;\n      this.auth.previewPanel.next(false);\n      const closeBtn = document.getElementById('close-workflow-engine-btn');\n      if (closeBtn) closeBtn.style.display = 'block';\n    }\n  }\n}\n","<div class=\"import-an-assessment\" [attr.id]=\"'scrollReference'\">\n  <!-- main container starts here -->\n  <div class=\"import-an-assessment-body\">\n    <div class=\"import-an-assessment-container\">\n      <div class=\"image\">\n        <img [src]=\"ASSETS.spreadsheet_multiple_category\" alt=\"\" />\n      </div>\n\n      <h4>You can import an assessment in just two easy steps:</h4>\n      <ul class=\"list\">\n        <li>Download the template and fill in the details.</li>\n        <li>Upload the .xlsx file and you’re good to go!</li>\n      </ul>\n\n      <button\n        class=\"download\"\n        *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\"\n        (click)=\"downloadTemplate()\"\n        type=\"button\"\n      >\n        <i class=\"icons\">&#xe91b;</i> Download Template\n      </button>\n      <div class=\"bulk-btn-progress\" *ngIf=\"downloadStatus === 'DOWNLOADING'\">\n        Download in Progress\n        <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\n      </div>\n      <ng-container *ngIf=\"downloadStatus === 'DOWNLOADED'\">\n        <div class=\"bulk-btn-progress\">\n          <i class=\"icons\">&#xe91c;</i>Download Complete\n        </div>\n        <div class=\"bulk-btn-again\">\n          Is the file not downloaded?\n          <button (click)=\"downloadTemplate()\">Retry Download</button>\n        </div>\n      </ng-container>\n      <p class=\"error-message\" *ngIf=\"isWrongFormat\">{{ errorMessage }}</p>\n    </div>\n  </div>\n</div>\n\n<app-loader-inline *ngIf=\"isShowLoader\"></app-loader-inline>\n\n<input\n  type=\"file\"\n  [(ngModel)]=\"fileValue\"\n  id=\"iaa-file-input\"\n  accept=\".xlsx\"\n  class=\"hidden-input\"\n  onclick=\"this.value = null\"\n  (change)=\"uploadFile($event)\"\n/>\n\n<app-smiley-dialog-inline\n  *ngIf=\"showSmiley\"\n  [message]=\"smileyMessageAction\"\n  [actionButtons]=\"actionButtons\"\n  (action)=\"smileyAction($event)\"\n  (closeSmiley)=\"closeSmiley($event)\"\n></app-smiley-dialog-inline>\n\n<div class=\"import\" *ngIf=\"isUploaded\">\n  <app-create-assessment-container\n    #editor\n    [openPortal]=\"'ASSESSMENT_IMPORT'\"\n    (postAssessment)=\"postAssessment($event)\"\n    (setIsUploaded)=\"setIsUploaded($event)\"\n    [assessmentJSON]=\"convertedData\"\n  >\n  </app-create-assessment-container>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'tick-mark',\n  templateUrl: './tick-mark.component.html',\n  styleUrls: ['./tick-mark.component.less']\n})\nexport class TickMarkComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","\n    <svg *ngIf=\"true\" class=\"checkIcon\"\n        xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n        <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n        <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n    </svg>\n","import { Component, OnInit } from '@angular/core';\n\n\n@Component({\n  selector: 'form-field',\n  templateUrl: './form-field.component.html',\n  styleUrls: ['./form-field.component.less','../../../forms.less'],\n  inputs:['active','disabled','checked','img']\n})\nexport class FormFieldComponent implements OnInit {\nactive!:any;\ndisabled!:any;\nchecked!:any;\nimg !:any;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div *ngIf=\"true\" class=\"form-group-row\"   [ngClass]=\"{'disabled': disabled, 'active': active}\" >\n    <div class=\"left\" [class.checked]=\"checked\">\n        <img [src]=\"img\"  alt=\"im\" *ngIf=\"!checked\">\n        <tick-mark *ngIf=\"checked\"></tick-mark>\n    </div>\n    <div class=\"right\">\n        <div class=\"vx-form-group\">\n            <ng-content></ng-content>\n        </div>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'input-with-pill',\n  templateUrl: './input-with-pill.component.html',\n  styleUrls: ['./input-with-pill.component.less','../../../forms.less']\n})\nexport class InputWithPillComponent implements OnInit {\n@Input() placeholder !:any;\n@Input() disabled= false;\n@Output() select = new EventEmitter();\n@Input() selectDiv !:any;\n@Input() line = 2;\n   constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","\n <div class=\"select\" [class.disabled]=\"disabled\"  *ngIf=\"!content.children.length\" (click)=\"select.emit()\">\n    <input *ngIf=\"!selectDiv\" type=\"text\" [placeholder]=\"placeholder\" readonly [class.disabled]=\"disabled\">\n    <div *ngIf=\"selectDiv\" attr.aria-placeholder = \"{{placeholder}}\"  class=\"custom-input\" [class.three]=\"line === 3\" [appTooltip]=\"placeholder\" placement=\"bottom\"\n    delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\"></div>\n</div>\n<div #content [class.disabled]=\"disabled\">\n    <ng-content></ng-content>\n</div>\n","import { Directive, HostListener,ElementRef } from '@angular/core';\n\n@Directive({\n  selector: '[InputTrim]'\n})\nexport class InputTrimDirective {\n\n  @HostListener('blur', ['$event'])\n  onKeyDown(event: any) {\n    const input = event.target as HTMLInputElement;\n    let trimmed = input.value.trim();\n    input.value = trimmed;\n\n  }\n\n}\n","import { Component, ElementRef, forwardRef, Input, Provider, QueryList, ViewChildren } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nconst CUSTOM_TAG_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => CustomFieldComponent),\n  multi: true,\n};\n@Component({\n  selector: 'custom-field',\n  templateUrl: './custom-field.component.html',\n  styleUrls: ['./custom-field.component.less'],\n  providers: [CUSTOM_TAG_VALUE_ACCESSOR],\n\n})\nexport class CustomFieldComponent implements ControlValueAccessor {\n\n\n  @ViewChildren('custom_fields', { read: ElementRef }) fields !: QueryList<ElementRef>\n  @Input() disabled !: boolean;\n  constructor() { }\n  onChanged = (value: any) => { };\n  onTouched = () => { };\n\n  writeValue(value: any): void {\n    this.setField(value);\n  }\n  registerOnChange(fn: any): void {\n    this.onChanged = fn;\n  }\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n\n\n  valChange() {\n    const field = this.customFields.map((ele: any) => ele?.name)\n    this.onChanged(field);\n    this.onTouched();\n  }\n\n  setField(arrayOfFields: any) {\n    if (arrayOfFields?.length) {\n      this.customFields = arrayOfFields.map((ele: any) => { return { name: ele } })\n    } else {\n      this.customFields = [{ name: '' }]\n    }\n    this.focus()\n  }\n\n  customFields: any = []\n  addCustomField() {\n    this.customFields.push({ name: '', isEditing: true })\n  }\n  manipulateCustomField(type: any, index?: any) {\n    switch (type) {\n      case 'ADD': {\n        this.customFields.push({ name: '', isEditing: true });\n        this.valChange();\n        this.focus()\n\n        break;\n      }\n      case 'DELETE': {\n        if(  this.customFields?.length > 1){\n          this.customFields.splice(index, 1);\n          this.valChange();\n          this.focus()\n        }\n       \n        break;\n      }\n    }\n  }\n  focus() {\n    setTimeout(() => {\n      this.fields['_results'][this.fields.length - 1].nativeElement.focus();\n      this.fields['_results'][this.fields.length - 1].nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n    }, 100)\n  }\n}\n","\n <ng-container *ngFor=\"let field of customFields; let i = index\">\n                <!-- <div class=\"selected\" *ngIf=\"field?.name && !field?.isEditing \">\n                    <div (click)=\"manipulateCustomField('ACTIVATE')\" class=\"custom-text vx-fs-13 vx-paragraph-txt\">CUSTOM TAG TEXT HERE</div>\n                    <button *ngIf=\"customFields?.length > 1\" (click)=\"manipulateCustomField('DELETE',i)\" class=\"cross-btn vx-fs-12 vx-txt-red vx-p-0 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe9ae;</i></button>\n                </div> -->\n\n                <div class=\"custom-input vx-mt-2\" >\n                    <input #custom_fields (keyup.enter)=\"manipulateCustomField('ADD')\" (keyup.backspace)=\"field?.name?.length ? null : manipulateCustomField('DELETE',i)\" [(ngModel)]=\"field.name\" (ngModelChange)=\"valChange()\"  type=\"text\" placeholder=\"Add a field name\" [ngModelOptions]=\"{standalone: true}\">\n                    <button *ngIf=\"customFields?.length > 1\" (click)=\"manipulateCustomField('DELETE',i)\" class=\"cross-btn vx-fs-12 vx-txt-red vx-p-0 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe9ae;</i></button>\n                </div>\n            </ng-container>\n\n            <div class=\"vx-d-flex vx-align-center vx-justify-end vx-mt-2\">\n                <button (click)=\"manipulateCustomField('ADD')\" class=\"add-more-btn vx-fs-11 vx-fw-600 vx-txt-blue vx-tt-uppercase vx-p-0 vx-m-0\">+ ADD MORE\n                    FIELDS</button>\n            </div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'listToId'\n})\nexport class ListToIdPipe implements PipeTransform {\n\n  transform(value: any, arg:any): any {\n    return value.map((ele:any) => ele[arg]);\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'assessmentResolver',\n})\nexport class AssessmentResolverPipe implements PipeTransform {\n  transform(value: any, ...args: any[]): any {\n    if (value && value?.length) {\n      value = value.filter((ele: any) => ele?.assessmentIds?.length);\n      const val = Object.assign(\n        JSON.parse(\n          JSON.stringify(\n            value\n              .map((category: any) =>\n                category.assessmentIds.map((assessment: any) => {\n                  return { ...assessment, category_id: category.category_id };\n                })\n              )\n              ?.flat()\n          )\n        )\n      );\n      return val;\n    } else {\n      return [];\n    }\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport {\n  UntypedFormBuilder,\n  UntypedFormControl,\n  Validators,\n} from '@angular/forms';\nimport { cloneDeep, isEqual } from 'lodash';\nimport { DatePickerComponent } from 'ng2-date-picker';\nimport { distinctUntilChanged, take } from 'rxjs';\nimport { AuthService } from '../workflow-services/auth.service';\nimport { ProgramsService } from '../workflow-services/programs.service';\nimport { UiKitService } from '../workflow-services/ui-kit.service';\nimport { COLLABORATOR_TOOLTIP, CONSTANTS, PROGRAM_NAME_ERROR_MESSAGE } from './constants';\nimport { IframeService } from '../services/iframe.service';\nimport { ASSETS } from '../constants/assets.constants';\nimport { PostMessageEvent } from '../interfaces/iframe-type';\nimport { PROGRAM_OBJECT } from '../sharedComponents/program-list/constant';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\n\n@Component({\n  selector: 'app-workflow-program',\n  templateUrl: './workflow-program.component.html',\n  styleUrls: ['./workflow-program.component.less', '../forms.less'],\n})\nexport class WorkflowProgramComponent implements OnInit {\n  ASSETS = ASSETS;\n  constants = CONSTANTS;\n  showConfirmation: any;\n  isAscentAllowed: boolean = false;\n  ff_rc_listing: boolean = false;\n  @ViewChild('form', { read: ElementRef }) form!: ElementRef;\n  datePickerOverlay = false;\n  @ViewChild('datePicker') datePicker!: DatePickerComponent;\n  @Output() pickerChanged = new EventEmitter();\n  @Output() populateOption = new EventEmitter();\n  @Output() closeWorkflow = new EventEmitter();\n  @Output() showConfirmationAlert = new EventEmitter();\n  @Output() disconnectRefresh = new EventEmitter();\n  @Output() refreshForm = new EventEmitter();\n  @Output() hideElementsFromMoreOptions = new EventEmitter();\n  @Output() onRemovingRole: EventEmitter<any> = new EventEmitter();\n  @Output() disableElementsFromMoreOptions = new EventEmitter();\n  scrollToBottom!: boolean;\n  @Input() canFrameworkChange: boolean = true;\n  programSimplifyFlag: boolean = false;\n\n  // All Input fields\n  @Input() mode: string = '';\n  @Input() programId: string = '';\n  @Input() programType: number = 1;\n  @Input() allowedFeature!: any;\n  @Input() addToProgramDetails: any;\n  @Input() orgDetails: any;\n  @Input() programDetails: any;\n\n  panelTitleDefaultReviewer = 'Select Default Reviewer(s)';\n  panelTitleOwner = 'Select Owner(s)';\n  panelTitleReviewer = 'Select Reviewer(s)';\n  panelTitleAssignee = 'Select Collaborator(s)';\n  panelTitleApprover = 'Select  Approver';\n  isApproverDisabled: boolean = false;\n  isProgramScope: boolean = false;\n  toolTipData: any = {\n    owner:\n      'Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>The <strong>Key Admin</strong> and all <b>Admin</b> users will be selected as the Owners of a Program by default.',\n    programScope: `A Program Scope can be used as follows:\n  <li>To specify the duration of the Program.</li>\n  <li>To pre-select certain options that are available when creating a responsibility, thereby decreasing the time required to create a responsibility.</li>\n  <li>To limit the options available for selection when creating a responsibility, thereby making it easier to create a responsibility and reducing the likelihood of an incorrect option being selected.</li>\n    `,\n    collaborators: COLLABORATOR_TOOLTIP,\n  };\n  businessCycle: any;\n  featureflagrole: boolean = false;\n  featureflagGroups: boolean = false;\n  disabledAssigneeIds: any[] = [];\n  selectedReviewerIds: any[] = [];\n  selectedAssigneeIds: any[] = [];\n  selectedOverseerIds: any[] = [];\n  assignorId: number[] = [];\n  disableReviewerIds: any[] = [];\n  disableOverseerIds: any[] = [];\n\n  constructor(\n    private fb: UntypedFormBuilder,\n    private programService: ProgramsService,\n    private authService: AuthService,\n    private uiKitService: UiKitService,\n    private changeRef: ChangeDetectorRef,\n    private iframeService: IframeService,\n    private snackBar: SnackBarService,\n  ) {\n    this.businessCycle = JSON.parse(\n      localStorage.getItem('businessCycle') ?? '{}'\n    );\n  }\n  public noWhitespaceValidator(control: UntypedFormControl) {\n    const isWhitespace = (control.value || '').trim().length === 0;\n    const isValid = !isWhitespace;\n    return isValid ? null : { whitespace: true };\n  }\n  public blankArrayValidator(control: UntypedFormControl) {\n    const isBlank = control.value?.filter((ele: any) => ele)?.length === 0;\n    const isValid = !isBlank;\n    return isValid ? null : { blank: true };\n  }\n  loader = false;\n  showSmiley = false;\n  actionButtons = [\n    { buttonText: 'Add More Programs', class: 'white-btn', id: 'addMore' },\n    { buttonText: 'View Program', class: 'blue-btn', id: 'viewProgram' },\n  ];\n  smileyMessage = `You're All Set!`;\n  createdProgramId = '';\n  isObjectiveValid: boolean = true;\n  isNameExists: boolean = false;\n  //form body for program meta data\n  programForm = this.fb.group({\n    program_type: [\n      this.programType ?? 1,\n      [Validators.required, Validators.min(0), Validators.max(3)],\n    ],\n    program_name: ['', [Validators.required, this.noWhitespaceValidator]],\n    program_description: [''],\n    program_description_attachments: [[]],\n    program_objective: [''],\n    // program_objective: ['', [Validators.required, this.noWhitespaceValidator]],\n    program_objective_attachments: [[]],\n    all_user_in_role: [false],\n    program_owners: [[]],\n    program_owners_group: [[]],\n    program_approver: [[]],\n    framework: [],\n    rc: [[]],\n    program_assignee: [[]],\n    program_assignee_group: [[]],\n    program_default_assignee: [[]],\n    program_default_assignee_group: [[]],\n    assignee_completion_criteria: ['ALL'],\n    program_reviewer: [[]],\n    program_reviewer_group: [[]],\n    program_default_reviewer: [[]],\n    program_default_reviewer_group: [[]],\n    reviewer_completion_criteria: ['SEQUENTIAL'],\n    program_overseer: [[]],\n    program_overseer_group: [[]],\n    program_default_overseer: [[]],\n    program_default_overseer_group: [[]],\n    program_default_failed_overseer: [[]],\n    program_default_failed_overseer_group: [[]],\n    program_assessments: [[]],\n    evidence_required: [false],\n    allow_any_file_key_evidence: [false],\n    custom_fields: [[]],\n    program_state: 0,\n    collaborators: [[]],\n    collaborators_group: [[]],\n  });\n\n  //exceptional handling of custom fields\n\n  showAddCustomField = true;\n  //Program objective and descripion are explectly declared as they are using marx editor which does not supports Reactive forms binding\n  editorData = {\n    programObjective: '',\n    programDescription: '',\n  };\n\n  selectedAssessment!: any;\n  programNameError = PROGRAM_NAME_ERROR_MESSAGE;\n\n  currentUser() {\n    const user = this.authService.tokenInfo();\n    return {\n      member_email: user?.email,\n      member_id: user?.id,\n      member_name: user?.name,\n      user_role: 'LOGGED_IN',\n      _id: '',\n    };\n  }\n  //Sets the value of a form control\n  setFormField(controlName: string, value: any, isFromForm?: boolean) {\n    let patch: any = {};\n    patch[controlName] = value;\n    this.programForm.patchValue(patch);\n    this.controls[controlName]?.markAsTouched();\n    if (\n      isFromForm &&\n      controlName === 'program_objective' &&\n      !value.replace(/&nbsp;/g, ' ').trim()\n    )\n      this.isObjectiveValid = false;\n    else this.isObjectiveValid = true;\n  }\n\n  //Returns weather the form is valid or not\n  get formValid() {\n    if (\n      this.programForm.valid &&\n      this.editorData?.programObjective?.replace(/&nbsp;/g, ' ')?.trim()?.length\n    ) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  controls: any = {\n    program_name: this.programForm.get('program_name'),\n    program_type: this.programForm.get('program_type'),\n    program_objective: this.programForm.get('program_objective'),\n    program_roles: this.programForm.get('program_roles'),\n    program_owners: this.programForm.get('program_owners'),\n    program_owners_group: this.programForm.get('program_owners_group'),\n    all_user_in_role: this.programForm.get('all_user_in_role'),\n    program_approver: this.programForm.get('program_approver'),\n    description_attachment: this.programForm.get(\n      'program_description_attachments'\n    ),\n    objective_attachments: this.programForm.get(\n      'program_objective_attachments'\n    ),\n    performance_calculation: this.programForm.get('performance_calculation'),\n    recurring_frequency: this.programForm.get('recurring_frequency'),\n    lock_scope_change: this.programForm.get('lock_scope_change'),\n    rc: this.programForm.get('rc'),\n    evidence_required: this.programForm.get('evidence_required'),\n    framework: this.programForm.get('framework'),\n    allow_any_file_key_evidence: this.programForm.get(\n      'allow_any_file_key_evidence'\n    ),\n    program_assignee: this.programForm.get('program_assignee'),\n    program_assignee_group: this.programForm.get('program_assignee_group'),\n    program_default_assignee: this.programForm.get('program_default_assignee'),\n    program_default_assignee_group: this.programForm.get(\n      'program_default_assignee_group'\n    ),\n    assignee_completion_criteria: this.programForm.get(\n      'assignee_completion_criteria'\n    ),\n    program_default_reviewer: this.programForm.get('program_default_reviewer'),\n    program_default_reviewer_group: this.programForm.get(\n      'program_default_reviewer_group'\n    ),\n    program_reviewer: this.programForm.get('program_reviewer'),\n    program_reviewer_group: this.programForm.get('program_reviewer_group'),\n    program_overseer: this.programForm.get('program_overseer'),\n    program_overseer_group: this.programForm.get('program_overseer_group'),\n    program_default_overseer: this.programForm.get('program_default_overseer'),\n    program_default_overseer_group: this.programForm.get(\n      'program_default_overseer_group'\n    ),\n    program_default_failed_overseer: this.programForm.get(\n      'program_default_failed_overseer'\n    ),\n    program_default_failed_overseer_group: this.programForm.get(\n      'program_default_failed_overseer_group'\n    ),\n    reviewer_completion_criteria: this.programForm.get(\n      'reviewer_completion_criteria'\n    ),\n    program_assessments: this.programForm.get('program_assessments'),\n    custom_fields: this.programForm.get('custom_fields'),\n    isApproverDisabled: this.programForm.get('isApproverDisabled'),\n    collaborators: this.programForm.get('collaborators'),\n    collaborators_group: this.programForm.get('collaborators_group'),\n  };\n\n  lists: any = {\n    ROLES: [],\n    OWNERS: [],\n    OWNERS_GROUPS: [],\n    APPROVERS: [],\n    REVIEWERS: [],\n    REVIEWERS_GROUP: [],\n    ASSIGNEES: [],\n    ASSIGNEES_GROUP: [],\n    DEFAULT_ASSIGNEES: [],\n    DEFAULT_ASSIGNEES_GROUP: [],\n    DEFAULT_REVIEWERS: [],\n    DEFAULT_REVIEWERS_GROUP: [],\n    OVERSEERS: [],\n    OVERSEERS_GROUP: [],\n    DEFAULT_OVERSEERS: [],\n    DEFAULT_OVERSEERS_GROUP: [],\n    RC: [],\n    NON_REMOVABLE_OWNERS: [],\n    ALL_USER: [],\n    ALL_GROUP: [],\n    SYSTEM_ROLE_IDS: [],\n  };\n\n  listLoadingState = {\n    ROLES: false,\n    USERS: false,\n    GROUP: false,\n    RC: false,\n  };\n  sideElements = [\n    'ROLE',\n    'RC',\n    'OWNER',\n    'ASSIGNEE',\n    'APPROVER',\n    'DEFAULT_ASSIGNEE',\n    'REVIEWER',\n    'DEFAULT_REVIEWER',\n    'ASSESSMENT',\n    'FRAMEWORK',\n    'OVERSEER',\n    'DEFAULT_FAILED_OVERSEER',\n    'DEFAULT_OVERSEER',\n    'OVERSEER',\n  ];\n\n  ngOnInit(): void {\n    this.setFormField('program_type', this.programType ?? 1);\n    this.fetchOrganizationUsers();\n    this.fetchOrganizationGroup();\n    if (this.mode !== 'EDIT') {\n    this.fetchRoles();\n    }\n    this.fetchRC();\n\n    this.handleDataPopulation();\n    if (this.addToProgramDetails?._id) {\n      this.listAction(this.addToProgramDetails, 'FRAMEWORK');\n    }\n    this.enablefeature();\n    this.handleDataPopulation();\n    this.changeRef.detectChanges();\n  }\n  get valid() {\n    return this.programForm.valid;\n  }\n\n  additionalOption: any = { ...CONSTANTS.additionalOption };\n  activeList = '';\n  manageProgramsRoleId: string[]= [];\n\n  /**\n   * #### Description\n   * Populates optional fields status for the optional fields\n   */\n  populateOptionalFields() {\n    const activatedOptions = [];\n    for (const key of Object.keys(this.additionalOption)) {\n      if (this.additionalOption[key] === true) {\n        activatedOptions.push(key);\n      }\n    }\n    this.populateOption.emit(activatedOptions);\n  }\n  addMoreInfo(event: any) {\n    this.additionalOption[event.code] = event.checked;\n    this.scrollToBottom = true;\n    this.checkProgramOptionField();\n  }\n\n  // function to automate form value change handng\n  formChangeListner() {\n    const fields = Object.keys(this.controls);\n    fields.forEach((ele: any) => {\n      this.controls[ele]?.valueChanges.pipe(distinctUntilChanged()).subscribe({\n        next: (res: any) => {\n          this.handleFormFieldChange(ele, res);\n        },\n      });\n    });\n  }\n\n  handleFormFieldChange(control: string, payload?: any) {\n    switch (control) {\n      case 'program_roles': {\n        this.fetchUsersAssociatedWithRoles();\n      }\n    }\n  }\n\n  activateList(evt: string) {\n    if (evt === 'FRAMEWORK' && !this.canFrameworkChange) return;\n    this.activeList = evt;\n    this.pickerChanged.emit(true);\n  }\n\n  listAction(evt: any, type: any) {\n    switch (type) {\n      case 'ROLE': {\n        this.showConfirmation = true;\n        const systemRoles = evt?.filter(\n          (ele: any) =>\n            ele?.roleName?.toLowerCase() === 'key admin' ||\n            ele?.roleName?.toLowerCase() === 'admin'\n        );\n        const patchVal = this.uniqueByProp([...systemRoles, ...evt], '_id');\n        if (\n          !isEqual(this.controls.program_roles.value.sort(), patchVal.sort())\n        ) {\n          this.setFormField('program_roles', patchVal);\n          this.fetchUsersAssociatedWithRoles();\n          this.fetchGroupsAssociatedWithRoles();\n        }\n        this.fieldDeselector(type);\n        break;\n      }\n      case 'RC': {\n        const rc = this.setList(this.lists.RC, evt, 'item_id');\n        this.setFormField('rc', this.uniqueByProp(rc, 'item_id'));\n        this.fieldDeselector(type);\n        break;\n      }\n      case 'OWNER': {\n        this.setFormField(\n          'program_owners',\n          this.uniqueByProp(evt?.users, 'uid')\n        );\n        this.setFormField(\n          'program_owners_group',\n          this.uniqueByProp(evt?.groups, 'ugid')\n        );\n        this.fieldDeselector(type);\n        break;\n      }\n      case 'APPROVER': {\n        this.setFormField(\n          'program_approver',\n          this.uniqueByProp(evt?.users, 'member_id')\n        );\n        this.fieldDeselector(type);\n        break;\n      }\n      case 'COLLABORATORS': {\n        this.setFormField(\n          'collaborators',\n          this.uniqueByProp(evt?.users, 'uid')\n        );\n        this.setFormField(\n          'collaborators_group',\n          this.uniqueByProp(evt?.groups, 'ugid')\n        );\n        this.fieldDeselector(type);\n        break;\n      }\n      case 'DEFAULT_ASSIGNEE': {\n        this.setFormField(\n          'program_default_assignee',\n          this.uniqueByProp(evt?.users, 'member_id')\n        );\n        this.setFormField(\n          'program_default_assignee_group',\n          this.uniqueByProp(evt?.groups, 'group_id')\n        );\n        this.fieldDeselector(type);\n        this.refreshList();\n        break;\n      }\n      case 'REVIEWER': {\n        this.setFormField(\n          'program_reviewer',\n          this.uniqueByProp(evt?.users, 'member_id')\n        );\n        this.setFormField(\n          'program_reviewer_group',\n          this.uniqueByProp(evt?.groups, 'group_id')\n        );\n        this.fieldDeselector(type);\n        this.setDefaultReviewer(evt);\n        break;\n      }\n      case 'DEFAULT_REVIEWER': {\n        this.setFormField(\n          'program_default_reviewer',\n          this.uniqueByProp(evt?.users, 'member_id')\n        );\n        this.setFormField(\n          'program_default_reviewer_group',\n          this.uniqueByProp(evt?.groups, 'group_id')\n        );\n        this.fieldDeselector(type);\n        this.controls.reviewer_completion_criteria.value =\n          this.controls?.program_default_reviewer_group?.value?.length > 0\n            ? 'ANYONE'\n            : this.controls?.reviewer_completion_criteria?.value;\n        this.refreshList();\n        break;\n      }\n      case 'OVERSEER': {\n        this.setFormField(\n          'program_overseer',\n          this.uniqueByProp(evt?.users, 'member_id')\n        );\n        this.setFormField(\n          'program_overseer_group',\n          this.uniqueByProp(evt?.groups, 'group_id')\n        );\n        this.fieldDeselector(type);\n        this.setDefaultOverseer(evt);\n        break;\n      }\n      case 'DEFAULT_OVERSEER': {\n        this.setFormField(\n          'program_default_overseer',\n          this.uniqueByProp(evt?.users, 'member_id')\n        );\n        this.setFormField(\n          'program_default_overseer_group',\n          this.uniqueByProp(evt?.groups, 'group_id')\n        );\n        this.fieldDeselector(type);\n        this.refreshList();\n        break;\n      }\n      case 'DEFAULT_FAILED_OVERSEER': {\n        this.setFormField(\n          'program_default_failed_overseer',\n          this.uniqueByProp(evt?.users, 'member_id')\n        );\n        this.setFormField(\n          'program_default_failed_overseer_group',\n          this.uniqueByProp(evt?.groups, 'group_id')\n        );\n        this.fieldDeselector(type);\n        this.refreshList();\n        break;\n      }\n      case 'ASSESSMENT': {\n        this.setFormField('program_assessments', evt);\n        this.fieldDeselector(type);\n        break;\n      }\n      case 'FRAMEWORK': {\n        this.setFormField('framework', evt);\n        this.setFormField('program_name', evt?.name);\n        this.setFormField('program_description', evt?.description);\n        this.editorData.programDescription = evt?.description;\n        this.fieldDeselector(type);\n        break;\n      }\n    }\n  }\n\n  remove(evt: any, type: any) {\n    switch (type) {\n      case 'ROLE': {\n        let msg = '';\n        msg = 'If you change the roles, any unsaved changes would be lost.';\n        const roles = this.controls?.program_roles?.value?.filter(\n          (ele: any) => ele?._id !== evt?._id\n        );\n        this.listAction(roles, 'ROLE');\n        this.setFormField('program_roles', roles);\n        break;\n      }\n      case 'RC': {\n        const rcs = this.controls?.rc?.value?.filter(\n          (ele: any) => ele?.item_id !== evt?.item_id\n        );\n        this.setFormField('rc', rcs);\n        break;\n      }\n      case 'OWNER': {\n        const owners = this.controls?.program_owners?.value?.filter(\n          (ele: any) => ele?.uid !== evt?.uid\n        );\n        this.setFormField('program_owners', owners);\n        break;\n      }\n      case 'OWNER_GROUP': {\n        const owners_group = this.controls?.program_owners_group?.value?.filter(\n          (ele: any) => ele?.group_id !== evt?.group_id\n        );\n        this.setFormField('program_owners_group', owners_group);\n        break;\n      }\n      case 'APPROVER': {\n        const approver = this.controls?.program_approver?.value?.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        this.setFormField('program_approver', approver);\n        break;\n      }\n      case 'ASSIGNEE': {\n        const assignee = this.controls?.program_assignee?.value?.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        this.setFormField('program_assignee', assignee);\n        this.setDefaultAssigneeOnRemove(evt, type);\n        break;\n      }\n      case 'ASSIGNEE_GROUP': {\n        const assignee_group =\n          this.controls?.program_assignee_group?.value?.filter(\n            (ele: any) => ele?.group_id !== evt?.group_id\n          );\n        this.setFormField('program_assignee_group', assignee_group);\n        this.setDefaultAssigneeOnRemove(evt, type);\n        break;\n      }\n      case 'DEFAULT_ASSIGNEE': {\n        const assignee = this.controls?.program_default_assignee?.value?.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        this.setFormField('program_default_assignee', assignee);\n        this.refreshList();\n        break;\n      }\n      case 'DEFAULT_ASSIGNEE_GROUP': {\n        const assignee_group =\n          this.controls?.program_default_assignee_group?.value?.filter(\n            (ele: any) => ele?.group_id !== evt?.group_id\n          );\n        this.setFormField('program_default_assignee_group', assignee_group);\n        break;\n      }\n      case 'REVIEWER': {\n        const reviewer = this.controls?.program_reviewer?.value?.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        this.setFormField('program_reviewer', reviewer);\n        this.setDefaultReviewerOnRemove(evt, type);\n        break;\n      }\n      case 'REVIEWER_GROUP': {\n        const reviewer_group =\n          this.controls?.program_reviewer_group?.value?.filter(\n            (ele: any) => ele?.group_id !== evt?.group_id\n          );\n        this.setFormField('program_reviewer_group', reviewer_group);\n        this.setDefaultReviewerOnRemove(evt, type);\n        break;\n      }\n      case 'DEFAULT_REVIEWER': {\n        const reviewer = this.controls?.program_default_reviewer?.value?.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        this.setFormField('program_default_reviewer', reviewer);\n        this.refreshList();\n        break;\n      }\n      case 'DEFAULT_REVIEWER_GROUP': {\n        const reviewer_group =\n          this.controls?.program_default_reviewer_group?.value?.filter(\n            (ele: any) => ele?.group_id !== evt?.group_id\n          );\n        this.setFormField('program_default_reviewer_group', reviewer_group);\n        this.controls.reviewer_completion_criteria.value =\n          this.controls?.program_default_reviewer_group?.value?.length > 0\n            ? 'ANYONE'\n            : this.controls?.reviewer_completion_criteria?.value;\n        break;\n      }\n      case 'OVERSEER': {\n        const overseer = this.controls?.program_overseer?.value?.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        this.setFormField('program_overseer', overseer);\n        this.setDefaultOverseerOnRemove(evt, type);\n        break;\n      }\n      case 'OVERSEER_GROUP': {\n        const overseer_group =\n          this.controls?.program_overseer_group?.value?.filter(\n            (ele: any) => ele?.group_id !== evt?.group_id\n          );\n        this.setFormField('program_overseer_group', overseer_group);\n        this.setDefaultOverseerOnRemove(evt, type);\n        break;\n      }\n      case 'DEFAULT_OVERSEER': {\n        const overseer = this.controls?.program_default_overseer?.value?.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        this.setFormField('program_default_overseer', overseer);\n        this.refreshList();\n        break;\n      }\n      case 'DEFAULT_OVERSEER_GROUP': {\n        const overseer_group =\n          this.controls?.program_default_overseer_group?.value?.filter(\n            (ele: any) => ele?.group_id !== evt?.group_id\n          );\n        this.setFormField('program_default_overseer_group', overseer_group);\n        break;\n      }\n      case 'DEFAULT_FAILED_OVERSEER': {\n        const overseer =\n          this.controls?.program_default_failed_overseer?.value?.filter(\n            (ele: any) => ele?.member_id !== evt?.member_id\n          );\n        this.setFormField('program_default_failed_overseer', overseer);\n        this.refreshList();\n        break;\n      }\n      case 'DEFAULT_FAILED_OVERSEER_GROUP': {\n        const overseer_group =\n          this.controls?.program_default_failed_overseer_group?.value?.filter(\n            (ele: any) => ele?.group_id !== evt?.group_id\n          );\n        this.setFormField(\n          'program_default_failed_overseer_group',\n          overseer_group\n        );\n        break;\n      }\n      case 'ASSESSMENT': {\n        let current = cloneDeep(this.controls.program_assessments?.value);\n        const index = current.findIndex(\n          (ele: any) => ele.category_id == evt.category_id\n        );\n        current[index].assessmentIds = current[index].assessmentIds.filter(\n          (assessment: any) => assessment.id !== evt.id\n        );\n        if (current[index].assessmentIds.length === 0) current.splice(index, 1);\n        this.listAction(current, 'ASSESSMENT');\n        break;\n      }\n      case 'FRAMEWORK': {\n        this.setFormField('framework', null);\n        break;\n      }\n    }\n  }\n\n  returnIds(list: any[], key: string) {\n    return list\n      ?.map((ele) => {\n        if (ele[key]) {\n          return ele[key];\n        }\n      })\n      .filter((ele) => ele);\n  }\n\n  refreshList() {\n    this.selectedAssigneeIds = [];\n    this.selectedReviewerIds = [];\n    this.selectedOverseerIds = [];\n    let assignorAndAssigneesIds: any = [];\n    this.assignorId = [];\n    let selectedAssignee = this.controls?.program_default_assignee?.value;\n    let selectedReviewer = this.controls?.program_default_reviewer?.value;\n    let selectedOverseerList = this.controls?.program_default_overseer?.value;\n    let selectedOverseerFailureList =\n      this.controls?.program_default_failed_overseer?.value;\n    let assignor = this.currentUser();\n    this.assignorId.push(assignor?.member_id);\n    assignorAndAssigneesIds.push(assignor?.member_id);\n    selectedAssignee?.forEach((user: any) => {\n      this.selectedAssigneeIds.push(user?.member_id);\n      assignorAndAssigneesIds.push(user?.member_id);\n    });\n    selectedReviewer?.forEach((user: any) => {\n      this.selectedReviewerIds.push(user?.member_id);\n    });\n    selectedOverseerList?.forEach((user: any) => {\n      this.selectedOverseerIds.push(user?.member_id);\n    });\n    selectedOverseerFailureList?.forEach((user: any) => {\n      this.selectedOverseerIds.push(user?.member_id);\n    });\n    this.selectedReviewerIds = [...new Set(this.selectedReviewerIds)];\n    this.selectedAssigneeIds = [...new Set(this.selectedAssigneeIds)];\n    this.selectedOverseerIds = [...new Set(this.selectedOverseerIds)];\n    let disableAssigneeList = this.lists?.ALL_USER?.filter(\n      (user: any) =>\n        this.selectedReviewerIds?.includes(user?.member_id) ||\n        this.selectedOverseerIds?.includes(user?.member_id)\n    );\n    this.disabledAssigneeIds = this.returnIds(disableAssigneeList, 'member_id');\n    let disableReviewerList = this.lists?.ALL_USER?.filter(\n      (user: any) =>\n        this.selectedOverseerIds?.includes(user?.member_id) ||\n        this.selectedAssigneeIds?.includes(user?.member_id)\n    );\n    this.disableReviewerIds = this.returnIds(disableReviewerList, 'member_id');\n    let disableOverseerList = this.lists?.ALL_USER?.filter(\n      (user: any) =>\n        assignorAndAssigneesIds?.includes(user?.member_id) ||\n        this.selectedReviewerIds?.includes(user?.member_id)\n    );\n    this.disableOverseerIds = this.returnIds(disableOverseerList, 'member_id');\n  }\n\n  removeRole(evt: any) {\n    this.onRemovingRole.emit(evt);\n  }  \n\n  setDefaultAssigneeOnRemove(evt: any, type: any) {\n    switch (type) {\n      case 'ASSIGNEE': {\n        this.lists.DEFAULT_ASSIGNEES = this.lists.DEFAULT_ASSIGNEES.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        const defaultAssignee = this.controls.program_default_assignee?.value;\n        const assignee = defaultAssignee.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        if (!assignee?.length) {\n          this.lists.DEFAULT_ASSIGNEES = this.lists.ALL_USER;\n        }\n        this.setFormField('program_default_assignee', assignee);\n\n        break;\n      }\n      case 'ASSIGNEE_GROUP': {\n        this.lists.DEFAULT_ASSIGNEES_GROUP =\n          this.lists.DEFAULT_ASSIGNEES_GROUP.filter(\n            (ele: any) => ele?.group_id !== evt?.group_id\n          );\n        const defaultAssigneeGroup =\n          this.controls.program_default_assignee_group?.value;\n        const assigneeGroup = defaultAssigneeGroup.filter(\n          (ele: any) => ele?.group_id !== evt?.group_id\n        );\n        if (!assigneeGroup?.length) {\n          this.lists.DEFAULT_ASSIGNEES_GROUP = this.lists.ALL_GROUP;\n        }\n        this.setFormField('program_default_assignee_group', assigneeGroup);\n      }\n    }\n  }\n\n  setDefaultReviewer(evt: any) {\n    if (evt?.users?.length || evt?.groups?.length) {\n      this.lists.DEFAULT_REVIEWERS = this.uniqueByProp(evt?.users, 'member_id');\n      this.lists.DEFAULT_REVIEWERS_GROUP = this.uniqueByProp(\n        evt?.groups,\n        'group_id'\n      );\n    } else {\n      this.lists.DEFAULT_REVIEWERS = this.lists.ALL_USER;\n      this.lists.DEFAULT_REVIEWERS_GROUP = this.lists.ALL_GROUP;\n    }\n    const reviewerMap = evt?.users?.map((ele: any) => ele?.member_id);\n    let currentDefaultReviewer = this.controls.program_default_reviewer?.value;\n    currentDefaultReviewer = currentDefaultReviewer.filter((ele: any) =>\n      reviewerMap.includes(ele?.member_id)\n    );\n    this.setFormField('program_default_reviewer', currentDefaultReviewer);\n  }\n\n  setDefaultOverseer(evt: any) {\n    if (evt?.users?.length || evt?.groups?.length) {\n      this.lists.DEFAULT_OVERSEERS = this.uniqueByProp(evt?.users, 'member_id');\n      this.lists.DEFAULT_OVERSEERS_GROUP = this.uniqueByProp(\n        evt?.groups,\n        'group_id'\n      );\n    } else {\n      this.lists.DEFAULT_OVERSEERS = this.lists.ALL_USER;\n      this.lists.DEFAULT_OVERSEERS_GROUP = this.lists.ALL_GROUP;\n    }\n    const overseerMap = evt?.users?.map((ele: any) => ele?.member_id);\n    let currentDefaultReviewer = this.controls.program_default_overseer?.value;\n    let currentDefaultFailReviewer =\n      this.controls.program_default_failed_overseer?.value;\n    currentDefaultReviewer = currentDefaultReviewer.filter((ele: any) =>\n      overseerMap.includes(ele?.member_id)\n    );\n    currentDefaultFailReviewer = currentDefaultReviewer.filter((ele: any) =>\n      overseerMap.includes(ele?.member_id)\n    );\n    this.setFormField('program_default_overseer', currentDefaultReviewer);\n    this.setFormField(\n      'program_default_failed_overseer',\n      currentDefaultFailReviewer\n    );\n  }\n\n  setDefaultReviewerOnRemove(evt: any, type: any) {\n    switch (type) {\n      case 'REVIEWER': {\n        this.lists.DEFAULT_REVIEWERS = this.lists.DEFAULT_REVIEWERS.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        const defaultReviewer = this.controls.program_default_reviewer?.value;\n        const reviewer = defaultReviewer.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        this.setFormField('program_default_reviewer', reviewer);\n\n        break;\n      }\n      case 'REVIEWER_GROUP': {\n        this.lists.DEFAULT_REVIEWERS_GROUP =\n          this.lists.DEFAULT_REVIEWERS_GROUP.filter(\n            (ele: any) => ele?.group_id !== evt?.group_id\n          );\n        const defaultReviewerGroup =\n          this.controls.program_default_reviewer_group?.value;\n        const reviewerGroup = defaultReviewerGroup.filter(\n          (ele: any) => ele?.group_id !== evt?.group_id\n        );\n        this.setFormField('program_default_reviewer_group', reviewerGroup);\n      }\n    }\n  }\n\n  setDefaultOverseerOnRemove(evt: any, type: any) {\n    switch (type) {\n      case 'OVERSEER': {\n        this.lists.DEFAULT_OVERSEERS = this.lists.DEFAULT_OVERSEERS.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        const defaultOverseer = this.controls.program_default_overseer?.value;\n        const overseer = defaultOverseer.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        this.setFormField('program_default_overseer', overseer);\n\n        const defaultFailOverseer =\n          this.controls.program_default_failed_overseer?.value;\n        const overseerFail = defaultFailOverseer.filter(\n          (ele: any) => ele?.member_id !== evt?.member_id\n        );\n        this.setFormField('program_default_failed_overseer', overseerFail);\n\n        break;\n      }\n      case 'OVERSEER_GROUP': {\n        this.lists.DEFAULT_OVERSEERS_GROUP =\n          this.lists.DEFAULT_OVERSEERS_GROUP.filter(\n            (ele: any) => ele?.group_id !== evt?.group_id\n          );\n        const defaultOverseerGroup =\n          this.controls.program_default_overseer_group?.value;\n        const overseerGroup = defaultOverseerGroup.filter(\n          (ele: any) => ele?.group_id !== evt?.group_id\n        );\n        this.setFormField('program_default_overseer_group', overseerGroup);\n\n        const defaultOverseerFailedGroup =\n          this.controls.program_default_failed_overseer_group?.value;\n        const overseerFailedGroup = defaultOverseerFailedGroup.filter(\n          (ele: any) => ele?.group_id !== evt?.group_id\n        );\n        this.setFormField(\n          'program_default_failed_overseer_group',\n          overseerFailedGroup\n        );\n      }\n    }\n  }\n\n  fieldDeselector(type: any) {\n    this.activeList = '';\n    this.pickerChanged.emit(false);\n    this.markasTouchedSelector(type);\n  }\n\n  markasTouchedSelector(fieldName: any) {\n    const typeField: any = {\n      ROLE: 'program_roles',\n      APPROVER: 'program_approver',\n      OWNER: 'program_owners',\n      OWNER_GROUP: 'program_owners_group',\n    };\n    this.controls[typeField[fieldName]]?.markAsTouched();\n  }\n\n  fetchRoles() {\n    this.programService.getRoles().subscribe({\n      next: (res: any) => {\n        this.lists.ROLES = res;\n        const defaultSystemVal = this.lists?.ROLES?.data\n          ?.filter(\n            (ele: any) =>\n              ele?.roleName?.toLowerCase() === 'key admin' ||\n              ele?.roleName?.toLowerCase() === 'admin'\n          )\n          ?.map((ele: any) => ele?._id);\n        const defaultVal = this.lists?.ROLES?.data?.filter(\n          (ele: any) =>\n            ele?.roleName?.toLowerCase() === 'key admin' ||\n            ele?.roleName?.toLowerCase() === 'admin'\n        );\n        this.lists.SYSTEM_ROLE_IDS = defaultSystemVal;\n        this.manageProgramsRoleId = this.getManageProgramsRoleId();\n        this.setFormField('program_roles', defaultVal);\n        this.fetchUsersAssociatedWithRoles();\n        this.fetchGroupsAssociatedWithRoles();\n      \n\n      },\n      error: (err: any) => { },\n    });\n  }\n\n  getManageProgramsRoleId() {\n    return this.lists?.ROLES?.data?.filter(\n      (ele: any) =>\n      !['key admin', 'admin'].includes(ele?.roleName?.toLowerCase())\n    ).map((ele: any) => ele?._id) ?? []\n   }\n\n  //fetch the list of responsibilities center\n  fetchRC() {\n    this.programService.getResponsibilityCenterList().subscribe({\n      next: (res: any) => {\n        this.lists.RC = res;\n      },\n      error: (err: any) => { },\n    });\n  }\n\n  fetchUsersAssociatedWithRoles(calledFrom?: any) {\n    const loggedInUser = this.currentUser();\n    const roleIds = this.lists.ROLES?.data?.map((ele: any) => ele?._id);\n    // if (fetchAll) {\n    this.programService.fetchAllRoleUsers(roleIds).subscribe({\n      next: (res: any) => {\n        const isUserFind = res?.data?.some(\n          (res: any) => res?.member_id === loggedInUser?.member_id\n        );\n        if (!isUserFind) {\n          res?.data?.push(loggedInUser);\n          res.total_items = res?.total_items + 1;\n        }\n        this.lists.OWNERS = res;\n        if (this.controls?.all_user_in_role?.value) {\n          this.setFormField('program_owners', res?.data);\n        } \n      },\n      error: (err: any) => { },\n    });\n  }\n\n  fetchGroupsAssociatedWithRoles() {\n    const roleIds = this.controls.program_roles?.value?.map(\n      (ele: any) => ele?._id\n    );\n    this.programService.fetchAllRoleGroups(this.manageProgramsRoleId).subscribe({\n      next: (res: any) => {\n        this.lists.OWNERS_GROUPS = res;\n        const roleIds: Array<string> = this.controls.program_roles?.value.map(\n          (ele: any) => ele._id\n        );\n        const groupDetails = this.controls.program_owners_group?.value.filter(\n          (roleId: any) => {\n            if (roleId.roles.length) {\n              let isSameRole = false;\n              roleId.roles.forEach((role: any) => {\n                if (roleIds.includes(role.roleId)) {\n                  isSameRole = true;\n                }\n              });\n\n              if (isSameRole) {\n                return roleId;\n              }\n            }\n          }\n        );\n        this.setFormField('program_owners_group', groupDetails);\n      },\n    });\n  }\n\n  setDefaultOwners(userList: any, calledFrom?: any) {\n    const loggedInuser = this.currentUser();\n    const defaultOwner = userList.filter(\n      (ele: any) =>\n        ['ADMIN', 'KEY_ADMIN'].includes(ele?.user_role) &&\n        ele?.member_id != loggedInuser?.member_id\n    );\n    this.lists.NON_REMOVABLE_OWNERS = this.uniqueByProp(\n      [...[loggedInuser], ...defaultOwner],\n      'member_id'\n    );\n    // this.setFormField('program_owners', this.lists.NON_REMOVABLE_OWNERS);\n    const preSelectedUsers = this.getPreSelectedOwners(\n      this.controls?.program_owners?.value,\n      userList\n    );\n    if (calledFrom !== 'getProgramDetails') {\n      this.setFormField(\n        'program_owners',\n        preSelectedUsers?.length\n          ? preSelectedUsers\n          : this.lists.NON_REMOVABLE_OWNERS\n      );\n    }\n  }\n\n  getPreSelectedOwners(previousSelectedUsers: any, currentUsers: any) {\n    let finalUsers = [];\n    finalUsers = previousSelectedUsers?.filter((previous: any) =>\n      currentUsers?.some(\n        (current: any) => previous?.member_id === current?.member_id\n      )\n    );\n    return finalUsers;\n  }\n\n  fetchOrganizationUsers(data?: any) {\n    this.listLoadingState.USERS = true;\n    this.programService.fetchAllOrgUser().subscribe({\n      next: (res: any) => {\n        this.lists.ALL_USER = res;\n        this.lists.ASSIGNEES = res;\n\n        this.listLoadingState.USERS = false;\n        this.refreshList();\n      },\n      error: () => {\n        this.listLoadingState.USERS = false;\n      },\n    });\n  }\n\n  fetchOrganizationGroup(data?: any) {\n    this.programService.fetchComplianceGroups().subscribe({\n      next: (res: any) => {\n        this.lists.ALL_GROUP = res;\n\n        this.lists.ASSIGNEES_GROUP = res;\n        if(data) {\n\n        this.populateGroupsByGID(data, 'owners');\n        this.populateGroupsByGID(data, 'collaborators');\n        }\n      },\n      error: (err: any) => { },\n    });\n  }\n\n  fileUploadTracker = {\n    description: [],\n    objective: [],\n  };\n\n  selectFile(type: any, files: any) {\n    for (let i = 0; i <= files.length - 1; i++) {\n      const name = files[i].file.name ?? '';\n      this.uploadFiles(type, files[i].file);\n    }\n  }\n\n  uploadFiles(type: 'DESCRIPTION' | 'OBJECTIVE', file: any) {\n    const formData = new FormData();\n    formData.append('file', file);\n    const destinationString = this.authService.getOrganizationId().toString();\n    const dummyFile = {\n      file_url_path: `${file?.name}`,\n      name: `${file?.name}`,\n      uploading: true,\n      org_file: `${file?.name}`,\n    };\n    if (type === 'DESCRIPTION') {\n      let description = this.controls?.description_attachment?.value ?? [];\n      this.setFormField('program_description_attachments', [\n        ...description,\n        ...[dummyFile],\n      ]);\n      this.programService.uploadFiles(formData, destinationString).subscribe({\n        next: (res: any) => {\n          description = this.controls?.description_attachment?.value ?? [];\n          let descriptionIndex = description.findIndex(\n            (ele: any) => ele?.org_file === res?.org_file\n          );\n          description[descriptionIndex] = res;\n          this.setFormField(\n            'program_description_attachments',\n            this.uniqueByProp(description, 'org_file')\n          );\n        },\n        error: (err: any) => {\n          description = this.controls?.description_attachment?.value ?? [];\n          description = description.filter(\n            (ele: any) => ele?.org_file !== file?.name\n          );\n          this.setFormField(\n            'program_description_attachments',\n            this.uniqueByProp(description, 'org_file')\n          );\n        },\n      });\n    } else if (type === 'OBJECTIVE') {\n      let description = this.controls?.description_attachment?.value ?? [];\n      this.setFormField('program_description_attachments', [\n        ...description,\n        ...[dummyFile],\n      ]);\n      this.programService.uploadFiles(formData, destinationString).subscribe({\n        next: (res: any) => {\n          description = this.controls?.description_attachment?.value ?? [];\n          let descriptionIndex = description.findIndex(\n            (ele: any) => ele?.org_file === res?.org_file\n          );\n          description[descriptionIndex] = res;\n          this.setFormField(\n            'program_description_attachments',\n            this.uniqueByProp(description, 'org_file')\n          );\n        },\n        error: (err: any) => {\n          description = this.controls?.description_attachment?.value ?? [];\n          description = description.filter(\n            (ele: any) => ele?.org_file !== file?.name\n          );\n          this.setFormField(\n            'program_description_attachments',\n            this.uniqueByProp(description, 'org_file')\n          );\n        },\n      });\n    }\n  }\n\n  deleteAttachment(type: 'DESCRIPTION' | 'OBJECTIVE', file: any) {\n    if (type === 'DESCRIPTION') {\n      let description = this.controls?.description_attachment?.value ?? [];\n      if (description) {\n        description = description.filter(\n          (ele: any) => ele?.org_file !== file?.org_file\n        );\n        this.setFormField('program_description_attachments', description);\n      }\n    } else if (type === 'OBJECTIVE') {\n      let objective = this.controls?.objective_attachments?.value ?? [];\n      if (objective) {\n        objective = objective.filter(\n          (ele: any) => ele?.org_file !== file?.org_file\n        );\n        this.setFormField('program_description_attachments', objective);\n      }\n    }\n  }\n\n  selectAllRoleOwner(evt: any) {\n    //need to fetch all the users for all the selected roles\n    const loggedInUser = this.currentUser();\n    let roleId = [];\n    let user: any;\n    if (evt?.target?.checked) {\n      roleId = this.controls.program_roles?.value?.map((ele: any) => ele?._id);\n      if (this.featureflagGroups) {\n        user = this.controls.program_roles?.value?.map((ele: any) => ele?._id);\n        this.controls.program_owners_group.value = user;\n      }\n    } else {\n      roleId = this.controls.program_roles?.value?.map((ele: any) => {\n        if (['key admin', 'admin'].includes(ele.roleName.toLowerCase())) {\n          return ele?._id;\n        }\n      });\n    }\n    this.programService.fetchAllRoleUsers(roleId).subscribe({\n      next: (res: any) => {\n        const user = this.uniqueByProp(\n          [...[loggedInUser], ...res?.data],\n          'member_id'\n        );\n        this.setFormField('program_owners', user);\n      },\n      error: (err: any) => { },\n    });\n    this.programService.fetchAllRoleGroups(user).subscribe({\n      next: (res: any) => {\n        const user = this.uniqueByProp([...res?.data], 'group_id');\n        this.setFormField('program_owners_group', user);\n      },\n    });\n  }\n\n  /**\n   * #### Description\n   *\n   * Returns the unique array of object based on unique key\n   * @param array\n   * @param key\n   * @returns\n   */\n  uniqueByProp(array: any, key: string) {\n    return Array.from(\n      array\n        .reduce(\n          (acc: any, item: any) => (\n            item && item[key] && acc.set(item[key], item), acc\n          ),\n          new Map()\n        )\n        .values()\n    );\n  }\n\n  setList(list: any[], ids: any[], key: string) {\n    const data: any = [];\n    ids.forEach((element: any) => {\n      const index = list.findIndex(\n        (listElement: any) => listElement[key] == element\n      );\n      if (index !== -1) {\n        data.push(list[index]);\n      }\n    });\n    return data;\n  }\n\n  saveProgram() {\n    this.loader = true;\n    let payload = this.programService.buildPayload(this.programForm, this);\n    if (payload && this.mode === 'CREATE') {\n      this.programService.saveProgram(payload).subscribe({\n        next: (res: any) => {\n          this.loader = false;\n          this.showSmiley = true;\n          this.uiKitService.isSmileyOn = true;\n          this.createdProgramId = res?.data?.program?.id;\n          this.postIframeMessage(PostMessageEvent.PROGRAM_CREATED, res);\n        },\n        error: (err: any) => {\n          this.loader = false;\n          this.uiKitService.isSmileyOn = false;\n          const errorMessage = err.error?.message.split(':')[1];\n          if (err.error?.message?.includes(PROGRAM_NAME_ERROR_MESSAGE)) {\n            this.isNameExists = true;\n            this.programNameError = errorMessage;\n          } else {\n            this.snackBar.show(errorMessage, 'error');\n          }\n          this.postIframeMessage(PostMessageEvent.PROGRAM_CREATED, err);\n        },\n      });\n    }\n    if (payload && this.mode === 'EDIT') {\n      this.programService.updateProgram(payload, this.programId).subscribe({\n        next: (res: any) => {\n          this.loader = false;\n          this.showSmiley = true;\n          this.uiKitService.isSmileyOn = true;\n          this.createdProgramId = res?.data?.program?.id;\n         // this.postIframeMessage(PostMessageEvent.PROGRAM_UPDATED, res);\n\n        },\n        error: (err: any) => {\n          this.loader = false;\n          this.uiKitService.isSmileyOn = false;\n          if (err?.error?.message?.includes('Category already exist')) {\n            this.isNameExists = true;\n          }\n         // this.postIframeMessage(PostMessageEvent.PROGRAM_UPDATED, err);\n        },\n      });\n    }\n  }\n\n  postIframeMessage(event: string, data: any) {\n    const message = this.iframeService.getCloseWebviewMessage(event, data);\n    this.iframeService.postMessage(message);\n  }\n\n  action(event: string) {\n    switch (event) {\n      case 'addMore':\n        this.resetForm();\n        this.populateOptionalFields();\n        break;\n      case 'viewProgram':\n        this.viewPrograms();\n        break;\n    }\n  }\n\n  viewPrograms(): void {\n    this.disconnectRefresh.emit(false);\n    let url: string;\n    if (window.location.host.startsWith('localhost')) {\n      url = 'http://' + window.location.host;\n    } else {\n      url = 'https://' + window.location.host;\n    }\n\n    if (window.location.host.startsWith('localhost')) {\n      url += '/programs/' + this.createdProgramId;\n    } else {\n      url += '/compliance/programs/' + this.createdProgramId;\n    }\n\n    this.iframeService.redirectIfInIframe(url, true);\n\n  }\n\n  resetForm() {\n    this.uiKitService.isSmileyOn = false;\n    this.scrollToBottom = false;\n    this.showSmiley = false;\n    this.loader = true;\n    const DEFAULT_VALUES = {\n      program_type: 1,\n      program_name: '',\n      program_description: '',\n      program_description_attachments: [],\n      program_objective: '',\n      program_objective_attachments: [],\n      program_roles: [],\n      all_user_in_role: false,\n      program_owners: [],\n      program_owners_group: [],\n      program_approver: [],\n      performance_calculation: 'PAST_EVENT',\n      recurring_frequency: false,\n      lock_scope_change: false,\n      framework: [],\n      rc: [],\n      program_assignee: [],\n      program_assignee_group: [],\n      program_default_assignee: [],\n      program_default_assignee_group: [],\n      assignee_completion_criteria: 'ALL',\n      program_reviewer: [],\n      program_reviewer_group: [],\n      program_default_reviewer: [],\n      program_default_reviewer_group: [],\n      reviewer_completion_criteria: 'SEQUENTIAL',\n      program_overseer: [],\n      program_overseer_group: [],\n      program_default_overseer: [],\n      program_default_overseer_group: [],\n      program_default_failed_overseer: [],\n      program_default_failed_overseer_group: [],\n      program_assessments: [],\n      evidence_required: false,\n      allow_any_file_key_evidence: false,\n      custom_fields: [],\n      program_state: 0,\n    };\n    this.resetAdditionalOption();\n    this.programForm.reset();\n    this.programForm.patchValue(DEFAULT_VALUES);\n    this.editorData = {\n      programObjective: '',\n      programDescription: '',\n    };\n    this.loader = false;\n    this.isNameExists = false;\n    this.fetchRoles();\n    this.refreshForm.emit(true);\n    this.form.nativeElement.scrollIntoView({\n      behavior: 'smooth',\n      block: 'start',\n    });\n  }\n\n  closeSmiley(event: any) {\n    this.showSmiley = false;\n    this.uiKitService.isSmileyOn = false;\n    this.closeWorkflow.emit({ evt: '', confirm: false });\n  }\n\n  /**\n   * Get program details when user is trying to edit program\n   */\n  getProgramDetails() {\n    this.programService\n      .getProgram(this.programId)\n      .pipe(take(1))\n      .subscribe((res: any) => {\n       \n      });\n  }\n\n  populateProgramDetails(res: any) {\n    this.programId = res?.id;\n    const programType = PROGRAM_OBJECT[res?.type as keyof typeof PROGRAM_OBJECT] ?? PROGRAM_OBJECT.others;\n    this.setFormField('program_name', res?.name);\n    this.setFormField('program_type', programType);\n    this.setFormField('program_objective', res?.description);\n    this.editorData.programObjective = res?.description;\n    \n\n    if (res.customFields.length) {\n      this.setFormField('custom_fields', res.customFields);\n      this.additionalOption.CUSTOM_FIELDS = true;\n      this.populateOptionalFields();\n    }\n    this.fetchRoles();\n    this.populateMembers(res);\n    this.populateGroups(res);\n    this.fetchOrganizationGroup(res);\n    this.fetchOrganizationUsers();\n  }\n\n\n  populateMembers(res: any) {\n    const ids = [\n      ...new Set([\n        ...(res?.owners?.admins?.users ?? []),\n        ...(res?.owners?.managers?.users ?? []),\n      ]),\n    ];\n    this.programService.getMemeberByUIds(ids).subscribe({\n      next: (response: any) => {\n        this.loader = false;\n        const selectedOwners = res.owners?.admins\n        const selectedCollaborators = res.owners?.managers\n\n        if (selectedOwners?.users?.length) {\n          const owners = response.filter((ele: any) =>\n            selectedOwners?.users.includes(ele?.uid)\n          );\n          this.setFormField('program_owners', owners);\n          if (this.mode === 'EDIT') {\n            this.additionalOption.OWNERS = true;\n            this.populateOptionalFields();\n          }\n        }\n        if (selectedCollaborators?.users?.length) {\n          const collaborators = response.filter((ele: any) =>\n            selectedCollaborators?.users?.includes(ele?.uid)\n          );\n          this.setFormField('collaborators', collaborators);\n          this.additionalOption.COLLABORATORS = true;\n          this.populateOptionalFields();\n        }\n        if (res?.default_assignee_ids && res?.default_assignee_ids?.length) {\n          const assignee = response.filter((ele: any) =>\n            res?.default_assignee_ids.includes(ele?.member_id)\n          );\n          this.setFormField('program_default_assignee', assignee);\n          if (\n            this.orgDetails?.hasProgramFullPermission ||\n            !this.programSimplifyFlag\n          ) {\n            this.additionalOption.ASSIGNEES = true;\n            this.populateOptionalFields();\n          }\n        }\n      },\n    });\n    this.checkProgramOptionField();\n  }\n\n  populateGroups(res: any) {\n    const ids = [\n      ...new Set([\n        ...(res?.owners_group ?? []),\n        ...(res?.assignee_group_ids ?? []),\n        ...(res?.default_assignee_group_ids ?? []),\n        ...(res?.overseers?.cc_email_groups ?? []),\n        ...(res?.reviewer_group_ids ?? []),\n        ...(res?.default_reviewer_group_ids ?? []),\n        ...(res?.default_overseers?.cc_email_groups ?? []),\n        ...(res?.default_overseers?.failure_cc_email_groups ?? []),\n      ]),\n    ];\n    this.programService.getMemberByGroups(ids).subscribe({\n      next: (resp: any) => {\n        const response = resp?.data;\n        if ( res?.owners?.userGroups?.length) {\n          const owners = response.filter((ele: any) =>\n            res?.owners?.userGroups?.includes(ele?.ugid)\n          );\n          this.additionalOption.OWNERS = true;\n          this.populateOptionalFields();\n          this.setFormField('program_owners_group', owners);\n        }\n        if (res?.managers?.userGroups?.length) {\n          const collaborators = response.filter((ele: any) =>\n            res?.managers?.userGroups?.includes(ele?.ugid)\n          );\n          this.setFormField('collaborators_group', collaborators);\n          this.additionalOption.COLLABORATORS = true;\n          this.populateOptionalFields();\n          this.lists.ASSIGNEES_GROUP = collaborators;\n         \n        }\n      },\n      // As of now groups has been removed from reviewer and overseeer if this group feature gets incoperated in\n      //future need to add group condition here to prepopulate the data while editing.\n    });\n    this.checkProgramOptionField();\n  }\n\n  populateGroupsByGID(programDetails: any, type: string) {\n    \n    switch(type) {\n      case 'owners':\n        const owner_ugid = programDetails?.owners?.admins?.userGroups;\n        const ownersGroup = this.lists.ASSIGNEES_GROUP.filter((ele: any) => owner_ugid.includes(ele?.ugid));\n        const ownersGroupIds = ownersGroup.map((ele: any) => ele?.group_id);\n\n        this.setFormField('program_owners_group', ownersGroup);\n        this.additionalOption.OWNERS = true;\n        this.populateOptionalFields();\n        break;\n      case 'collaborators':\n        const collaborator_ugid = programDetails?.owners?.managers?.userGroups;\n\n        const groupList = this.lists.ASSIGNEES_GROUP.filter((ele: any) => collaborator_ugid.includes(ele?.ugid));\n        this.setFormField('collaborators_group', groupList);\n        this.additionalOption.COLLABORATORS = true;\n        this.populateOptionalFields();\n        break;\n      default:\n        break;\n    }\n\n  }\n\n  resetAdditionalOption() {\n    this.additionalOption.ROLES = false;\n    this.additionalOption.OWNERS = false;\n    this.additionalOption.APPROVER = false;\n    this.additionalOption.PROGRAM_FREQUENCY = false;\n    this.additionalOption.SCOPE_CHANGES = false;\n    this.additionalOption.RC = false;\n    this.additionalOption.ASSIGNEES = false;\n    this.additionalOption.REVIEWER = false;\n    this.additionalOption.OVERSEER = false;\n    this.additionalOption.ASSESSMENT = false;\n    this.additionalOption.FORMATE_EVIDENCE = false;\n    this.additionalOption.CUSTOM_FIELDS = false;\n  }\n\n  checkProgramOptionField(): any {\n    const code = [\n      'PROGRAM_FREQUENCY',\n      'SCOPE_CHANGES',\n      'RC',\n      'ASSIGNEES',\n      'REVIEWER',\n      'OVERSEER',\n      'ASSESSMENT',\n      'FORMATE_EVIDENCE',\n      'CUSTOM_FIELDS',\n    ];\n    let isMoreOption = false;\n    code.forEach((key: string) => {\n      if (this.additionalOption[key]) {\n        isMoreOption = true;\n      }\n    });\n    this.isProgramScope = isMoreOption;\n  }\n\n  enablefeature() {\n    this.featureflagrole = this.allowedFeature.isFeatureEnabled(\n      'ff_role_improvements'\n    );\n    this.isAscentAllowed = this.allowedFeature.isFeatureEnabled(\n      'ff_compliance_framework'\n    );\n    this.programSimplifyFlag = this.allowedFeature.isFeatureEnabled(\n      'ff_program_simplify'\n    );\n    this.featureflagGroups =\n      this.allowedFeature.isFeatureEnabled('ff_program_groups');\n    this.toolTipData.owner = this.featureflagrole\n      ? 'Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>The <strong>Key Power User</strong> and all <b>Power Users</b> will be selected as the Owners of a Program by default.'\n      : 'Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>The <strong>Key Admin</strong> and all <b>Admin</b> users will be selected as the Owners of a Program by default.';\n    this.ff_rc_listing = this.allowedFeature.isFeatureEnabled('ff_rc_listing');\n  }\n\n  handleDataPopulation() {\n    if (this.mode === 'EDIT') {\n       this.populateProgramDetails(this.programDetails)\n    }\n  }\n}","<app-loader-inline *ngIf=\"listLoadingState.USERS\"></app-loader-inline>\n<div class=\"workflow-program\" #form>\n  <form novalidate [formGroup]=\"programForm\">\n    <!-- Program Category Type -->\n    <form-field [checked]=\"controls?.program_type?.value > -1\" [active]=\"false\"\n      [disabled]=\"sideElements.includes(activeList)\" [img]=\"ASSETS.issue_type\">\n      <label class=\"vx-control-panel\">PROGRAM TYPE <span class=\"required\">*</span></label>\n      <tab-selector formControlName=\"program_type\" [displayArray]=\"constants?.categoryType\"></tab-selector>\n      <!-- <p *ngIf=\"program_name?.invalid\" class=\"error-message\">Add a program type</p> -->\n    </form-field>\n\n    <!-- Framework -->\n    <form-field *ngIf=\"isAscentAllowed\" [checked]=\"false\" [active]=\"false\" [disabled]=\"false\"\n      [img]=\"ASSETS.case_category\">\n      <label class=\"vx-control-panel\">FRAMEWORK</label>\n      <!-- [selectDiv]=\"true\" -->\n      <input-with-pill [placeholder]=\"'Select a framework that this Program relates to'\"\n        (select)=\"activateList('FRAMEWORK')\">\n        <div class=\"selected\" *ngIf=\"controls?.framework.value?.name\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" *ngIf=\"canFrameworkChange\"\n              (click)=\"remove('', 'FRAMEWORK')\">&#xe9ae;</i>\n            <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"controls?.framework.value?.name\"\n              placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n              controls?.framework.value?.name }}</span>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                        <div class=\"chip-inner\">\n                            <span class=\"chip\"><i (click)=\"remove('', 'FRAMEWORK')\" *ngIf=\"canFrameworkChange\" class=\"icons\" >&#xe90d;</i> {{controls?.framework.value?.name}}</span>\n                        </div>\n                    </div> -->\n          <button *ngIf=\"canFrameworkChange\" class=\"edit\" type=\"button\" (click)=\"activateList('FRAMEWORK')\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </input-with-pill>\n    </form-field>\n\n    <!-- Program Category Name -->\n    <form-field [checked]=\"controls?.program_name?.value?.trim()?.length\" [active]=\"false\"\n      [disabled]=\"sideElements.includes(activeList)\" [img]=\"ASSETS.what\">\n      <label class=\"vx-control-panel\">PROGRAM NAME <span class=\"required\">*</span></label>\n      <input InputTrim formControlName=\"program_name\" type=\"text\" placeholder=\"What is the Program name?\" />\n\n      <p *ngIf=\"\n          controls?.program_name?.errors && controls?.program_name?.touched\n        \" class=\"error-message\">\n        Enter a name for this Program.\n      </p>\n      <p *ngIf=\"isNameExists\" class=\"error-message\">\n        {{programNameError}}\n      </p>\n      <vcomply-editor [(ngModel)]=\"editorData.programObjective\" [ngModelOptions]=\"{ standalone: true }\"\n        (sendSavedFiles)=\"selectFile('OBJECTIVE', $event)\"\n        (ngModelChange)=\"setFormField('program_objective', $event, true)\" [editorConfig]=\"constants?.description\">\n      </vcomply-editor>\n    </form-field>\n\n\n\n    <!-- Owners -->\n    <form-field *ngIf=\"additionalOption?.OWNERS\" [checked]=\"\n        controls?.program_owners?.value?.length > 0 ||\n        controls?.program_owners_group?.value?.length > 0\n      \" [active]=\"activeList === 'OWNER'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'OWNER'\"\n      [img]=\"ASSETS.case_owners\">\n      <label class=\"vx-control-panel\">OWNER(S)\n        <span class=\"icon\" *ngIf=\"toolTipData.owner !== ''\" libPopoverHover (mouseover)=\"dataTooltip.popover()\"\n          (mouseleave)=\"dataTooltip.closePopover()\" placement=\"right\"><i class=\"icons\">&#xe91f;</i></span>\n        <popover-hover #dataTooltip>\n          <div class=\"vx-info-card\">\n            <div class=\"vx-info-card-body\" [innerHTML]=\"toolTipData.owner\" id=\"OwnerHelpText\"></div>\n          </div>\n        </popover-hover>\n      </label>\n      <input-with-pill [placeholder]=\"'Who is responsible for managing this program?'\" (select)=\"activateList('OWNER')\">\n        <div class=\"selected\" *ngIf=\"controls?.program_owners?.value[0]\">\n          <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n              <span class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"controls?.program_owners?.value[0]?.member_name\" placement=\"bottom-left\" delay=\"0\"\n                type=\"black\" [tooltipMandatory]=\"false\">{{ controls?.program_owners?.value[0]?.member_name }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                appPopover (click)=\"owner.popover()\" placement=\"right\"\n                *ngIf=\"controls?.program_owners?.value?.length > 1\">\n                +{{ controls?.program_owners?.value?.length - 1 }}\n              </button>\n            </div>\n            <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"\n                controls?.program_owners_group?.value?.length &&\n                controls?.program_owners?.value?.length\n              \">&</span>\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.program_owners_group?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" *ngIf=\"\n                  !['ADMIN', 'KEY_ADMIN', 'LOGGED_IN'].includes(\n                    owner?.user_role\n                  )\n                \" (click)=\"\n                  remove(\n                    controls?.program_owners_group?.value[0],\n                    'OWNER_GROUP'\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  controls?.program_owners_group?.value[0]?.group_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                controls?.program_owners_group?.value[0]?.group_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"group.popover()\" placement=\"right\"\n                *ngIf=\"controls?.program_owners_group?.value?.length > 1\">\n                +{{ controls?.program_owners_group?.value?.length - 1 }}\n              </button>\n            </div>\n          </div>\n          <button *ngIf=\"activeList !== 'OWNER'\" [class.disabled]=\"controls?.all_user_in_role?.value\"\n            (click)=\"activateList('OWNER')\" class=\"edit\" type=\"button\">\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n      </input-with-pill>\n      <app-popover #owner [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"let owner of controls?.program_owners?.value | slice : 1\">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i *ngIf=\"\n                      !(\n                        lists.NON_REMOVABLE_OWNERS | listToId : 'member_id'\n                      ).includes(owner?.member_id)\n                    \" class=\"icons\" (click)=\"remove(owner, 'OWNER')\">&#xe90d;</i>\n                  {{ owner?.member_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <app-popover #group [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let owner of controls?.program_owners_group?.value | slice : 1\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i *ngIf=\"\n                      !['ADMIN', 'KEY_ADMIN', 'LOGGED_IN'].includes(\n                        owner?.user_role\n                      )\n                    \" class=\"icons\" (click)=\"remove(owner, 'OWNER_GROUP')\">&#xe90d;</i>\n                  {{ owner?.group_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </form-field>\n\n    <!-- Collaborators   -->\n    <form-field *ngIf=\"additionalOption?.COLLABORATORS\" [checked]=\"\n      controls?.collaborators?.value?.length > 0 ||\n      controls?.collaborators_group?.value?.length > 0\n    \" [active]=\"activeList === 'COLLABORATORS'\"\n      [disabled]=\"sideElements.includes(activeList) && activeList !== 'COLLABORATORS'\" [img]=\"\n      'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/owner.svg'\n    \">\n      <label class=\"vx-control-panel\">COLLABORATORS\n        <span class=\"icon\" *ngIf=\"toolTipData.collaborators !== ''\" libPopoverHover (mouseover)=\"dataTooltip.popover()\"\n          (mouseleave)=\"dataTooltip.closePopover()\" placement=\"right\"><i class=\"icons\">&#xe91f;</i></span>\n        <popover-hover #dataTooltip>\n          <div class=\"vx-info-card\">\n            <div class=\"vx-info-card-body\" [innerHTML]=\"toolTipData.collaborators\" id=\"CollaboratorsHelpText\"></div>\n          </div>\n        </popover-hover>\n      </label>\n      <input-with-pill [placeholder]=\"'Who is responsible for managing this program?'\"\n        (select)=\"activateList('COLLABORATORS')\">\n        <div class=\"selected\" *ngIf=\"controls?.collaborators?.value[0] || controls?.collaborators_group?.value[0]\">\n          <div class=\"vx-d-flex vx-align-center\">\n            <!-- Users -->\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.collaborators?.value[0]\">\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"controls?.collaborators?.value[0]?.member_name\"\n                placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                controls?.collaborators?.value[0]?.member_name }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4 greenBg\"\n                appPopover (click)=\"owner.popover()\" placement=\"right\"\n                *ngIf=\"controls?.collaborators?.value?.length > 1\">\n                +{{ controls?.collaborators?.value?.length - 1 }}\n              </button>\n            </div>\n            <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\" \n              controls?.collaborators_group?.value?.length &&\n              controls?.collaborators?.value?.length\n            \">&</span>\n            <!-- Groups -->\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.collaborators_group?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" *ngIf=\"\n                !['ADMIN', 'KEY_ADMIN', 'LOGGED_IN'].includes(\n                  owner?.user_role\n                )\n              \" (click)=\"\n                remove(\n                  controls?.collaborators_group?.value[0],\n                  'COLLABORATORS_GROUP'\n                )\n              \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                controls?.collaborators_group?.value[0]?.group_name\n              \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                controls?.collaborators_group?.value[0]?.group_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"group.popover()\" placement=\"right\"\n                *ngIf=\"controls?.program_owners_group?.value?.length > 1\">\n                +{{ controls?.collaborators_group?.value?.length - 1 }}\n              </button>\n            </div>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                      <div class=\"chip-inner\">\n                          <span class=\"chip\" [appTooltip]=\"controls?.program_owners?.value[0]?.member_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                            <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\" >{{controls?.program_owners?.value[0]?.member_name}}</span></span>\n                          <button *ngIf=\"controls?.program_owners?.value?.length > 1\" class=\"count user\" appPopover (click)=\"owner.popover()\" placement=\"right\">+{{controls?.program_owners?.value?.length -1}}</button>\n                      </div>\n                      <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_owners_group?.value?.length && controls?.program_owners?.value?.length\">&</span>\n                      <div class=\"chip-inner\" *ngIf=\"controls?.program_owners_group?.value?.length\">\n                        <i class=\"icons cross vx-mr-1\" *ngIf=\"!['ADMIN','KEY_ADMIN','LOGGED_IN'].includes(owner?.user_role)\" (click)=\"remove(owner,'OWNER_GROUP')\">&#xe90d;</i>\n                          <span class=\"chip\" [appTooltip]=\"controls?.program_owners_group?.value[0]?.group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                            <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_owners_group?.value[0]?.group_name}}</span></span>\n                          <button *ngIf=\"controls?.program_owners_group?.value?.length > 1\" class=\"count\" appPopover (click)=\"group.popover()\" placement=\"right\">+{{controls?.program_owners_group?.value?.length -1}}</button>\n                      </div>\n                  </div> -->\n          <button *ngIf=\"activeList !== 'COLLABORATORS'\" [class.disabled]=\"controls?.all_user_in_role?.value\"\n            (click)=\"activateList('COLLABORATORS')\" class=\"edit\" type=\"button\">\n            <i class=\"icons\">&#xe9ba;</i>Edit\n          </button>\n        </div>\n      </input-with-pill>\n      <app-popover #owner [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"let owner of controls?.collaborators?.value | slice : 1\">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i class=\"icons\" (click)=\"remove(owner, 'COLLABORATORS')\">&#xe90d;</i>\n                  {{ owner?.member_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <app-popover #group [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n              let owner of controls?.collaborators_group?.value | slice : 1\n            \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i *ngIf=\"\n                    !['ADMIN', 'KEY_ADMIN', 'LOGGED_IN'].includes(\n                      owner?.user_role\n                    )\n                  \" class=\"icons\" (click)=\"remove(owner, 'COLLABORATORS_GROUP')\">&#xe90d;</i>\n                  {{ owner?.group_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </form-field>\n\n    <!-- Performance Calculated -->\n    <!-- <form-field [checked]=\"controls?.performance_calculation?.value\" [active]=\"activeList === 'PERFORMANCE'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'PERFORMANCE'\"\n            [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/performance-calc.svg'\">\n            <label class=\"vx-control-panel\">HOW SHOULD THE PERFORMANCE OF THIS PROGRAM BE CALCULATED?</label>\n            <tab-selector formControlName=\"performance_calculation\" [displayArray]=\"constants?.performanceCalculation\">\n            </tab-selector>\n        </form-field> -->\n    <ng-container *ngIf=\"isProgramScope && false\">\n      <div class=\"scope-label vx-fs-10 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1 vx-mb-5 vx-lh-4 vx-d-inline-block\">\n        PROGRAM SCOPE\n      </div>\n      <!-- <i  class=\"icons info-icon vx-fs-12 vx-txt-blue vx-ml-1\" [appTooltip]=\"tooltip.programScope\" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i> -->\n      <span class=\"icon info-icon vx-fs-12 vx-txt-blue vx-ml-1\" *ngIf=\"toolTipData.programScop !== ''\" libPopoverHover\n        (mouseover)=\"dataTooltip.popover()\" (mouseleave)=\"dataTooltip.closePopover()\" placement=\"right\"><i\n          class=\"icons\">&#xe91f;</i></span>\n      <popover-hover #dataTooltip>\n        <div class=\"vx-info-card\">\n          <div class=\"vx-info-card-body\" [innerHTML]=\"toolTipData.programScope\" id=\"PSHelpText\"></div>\n        </div>\n      </popover-hover>\n    </ng-container>\n\n    <!-- Program Frequency -->\n    <form-field *ngIf=\"additionalOption?.PROGRAM_FREQUENCY\"\n      [checked]=\"[true, false].includes(controls?.recurring_frequency?.value)\" [active]=\"activeList === 'FREQUENCY'\"\n      [disabled]=\"\n        sideElements.includes(activeList) && activeList !== 'FREQUENCY'\n      \" [img]=\"ASSETS.recurring\">\n      <label class=\"vx-control-panel\" id=\"PDChange\">PROGRAM DURATION\n        <i class=\"icons\" [appTooltip]=\"\n            'Program Duration refers to the duration of the Program. A Program can occur in perpetuity, or it can occur until the end of the current business cycle that has been specified in ' +\n            businessCycle.selectedCycle.business_cycle +\n            '.  All responsibilities linked with that Program will also have the same Program Duration.'\n          \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"\n          id=\"ProgramDurationHelpText\">&#xeb16;</i></label>\n      <div class=\"upload-format\">\n        <div class=\"vx-d-flex vx-align-center vx-justify-between\">\n          <span class=\"text vx-mb-0\">Is this program recurring?</span>\n          <div class=\"radio-group program\">\n            <app-cs-radio [name]=\"'recurring_frequency'\" [checked]=\"controls?.recurring_frequency?.value\"\n              (checkedEvent)=\"setFormField('recurring_frequency', true)\">YES</app-cs-radio>\n            <app-cs-radio [name]=\"'recurring_frequency'\" [checked]=\"!controls?.recurring_frequency?.value\"\n              (checkedEvent)=\"setFormField('recurring_frequency', false)\">NO</app-cs-radio>\n          </div>\n        </div>\n      </div>\n    </form-field>\n\n    <!-- Scope Changes -->\n    <form-field *ngIf=\"additionalOption?.SCOPE_CHANGES\"\n      [checked]=\"[true, false].includes(controls?.lock_scope_change?.value)\" [active]=\"activeList === 'SCOPE'\"\n      [disabled]=\"sideElements.includes(activeList) && activeList !== 'SCOPE'\" [img]=\"ASSETS.lock_scope\">\n      <label class=\"vx-control-panel\">Lock the Program Scope\n        <i class=\"icons\" [appTooltip]=\"\n            'If the Program Scope is locked, neither the Program nor the responsibilities linked with the Program can be edited once the Program begins. In order to edit the Program or the linked responsibilities, the Program details will need to be edited.'\n          \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"\n          id=\"ScopeChangesHelpText\">&#xeb16;</i></label>\n      <div class=\"upload-format\">\n        <span class=\"text\">Would you like to\n          <span class=\"vx-label-txt vx-fw-500\">lock changes</span> to the\n          program scope?</span>\n        <div class=\"radio-group program\">\n          <app-cs-radio [name]=\"'lock_scope_change'\" [checked]=\"controls?.lock_scope_change?.value\"\n            (checkedEvent)=\"setFormField('lock_scope_change', true)\">YES</app-cs-radio>\n          <app-cs-radio [name]=\"'lock_scope_change'\" [checked]=\"!controls?.lock_scope_change?.value\"\n            (checkedEvent)=\"setFormField('lock_scope_change', false)\">NO</app-cs-radio>\n        </div>\n      </div>\n    </form-field>\n\n    <!-- Framework -->\n    <!-- <form-field [checked]=\"false\" [active]=\"activeList === 'FRAMEWORK'\" [disabled]=\"sideElements.includes(activeList) && activeList !== 'FRAMEWORK'\"\n            [img]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg'\">\n            <label class=\"vx-control-panel\">FRAMEWORK</label>\n            <input-with-pill [placeholder]=\"'Select a framework that this Program relates to'\" (select)=\"activateList('FRAMEWORK')\">\n                <div class=\"selected\" *ngIf=\"controls?.framework?.value?.framework_name\">\n                    <div class=\"chip-container\">\n                        <div class=\"chip-inner\">\n                            <span class=\"chip\"><i (click)=\"remove(controls?.framework.value,'FRAMEWORK')\" class=\"icons\">&#xe90d;</i>{{controls?.framework?.value?.framework_name}}</span>\n                            <button class=\"count\" appPopover (click)=\"framework.popover()\" placement=\"right\">+5</button>\n                        </div>\n                    </div>\n                    <button *ngIf=\"activeList!=='FRAMEWORK'\" (click)=\"activateList('FRAMEWORK')\" class=\"edit\" type=\"button\"><i class=\"icons\">&#xe9ba;</i> Edit</button>\n                </div>\n            </input-with-pill>\n            <app-popover #framework [dontCloseonClick]=\"true\">\n                <div class=\"wf-action-list\">\n                    <ul class=\"action-item\">\n                        <li *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n                            <div class=\"avatar-card\">\n                                <span class=\"value\">\n                                    <i class=\"icons\">&#xe90d;</i>\n                                    Manage framework name\n                                </span>\n                            </div>\n                        </li>\n                    </ul>\n                </div>\n            </app-popover>\n        </form-field> -->\n\n    <!-- Responsibility Center -->\n    <form-field *ngIf=\"additionalOption?.RC\" [checked]=\"controls?.rc?.value?.length\" [active]=\"activeList === 'RC'\"\n      [disabled]=\"sideElements.includes(activeList) && activeList !== 'RC'\" [img]=\"ASSETS.responsibility_center\">\n      <label class=\"vx-control-panel\">RESPONSIBILITY CENTER\n        <i class=\"icons\" [appTooltip]=\"\n            'Responsibility Centers represent your organizational and operational infrastructure. Where Responsibility Centers are selected when creating a Program, only those Responsibilities Centers will be available for selection when creating a responsibility linked with the Program.'\n          \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\" id=\"RCHelpText\">&#xeb16;</i></label>\n      <input-with-pill [selectDiv]=\"true\" (select)=\"activateList('RC')\" [placeholder]=\"\n          'Which Responsibility Center(s) can be linked to the responsibilities associated with this Program?'\n        \">\n        <div class=\"selected\" *ngIf=\"controls?.rc?.value && controls?.rc?.value?.length\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\n            <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"remove(controls?.rc?.value[0], 'RC')\">&#xe9ae;</i>\n            <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"controls?.rc?.value[0]?.item_name\"\n              placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n              controls?.rc?.value[0]?.item_name }}</span>\n            <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover (click)=\"rc.popover()\" placement=\"right\" *ngIf=\"controls?.rc?.value?.length > 1\">\n              +{{ controls?.rc?.value?.length - 1 }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                        <div class=\"chip-inner\">\n                            <span class=\"chip\"><i class=\"icons\" (click)=\"remove(controls?.rc?.value[0],'RC')\">&#xe90d;</i>{{controls?.rc?.value[0]?.item_name}}</span>\n                            <button *ngIf=\"controls?.rc?.value?.length  > 1\" class=\"count\" appPopover (click)=\"rc.popover()\" placement=\"right\">+{{controls?.rc?.value?.length -1 }}</button>\n                        </div>\n                    </div> -->\n          <button *ngIf=\"activeList !== 'RC'\" class=\"edit\" type=\"button\" (click)=\"activateList('RC')\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </input-with-pill>\n      <app-popover #rc [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"let rc of controls?.rc?.value | slice : 1\">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i class=\"icons\" (click)=\"remove(rc, 'RC')\">&#xe90d;</i>\n                  {{ rc?.item_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </form-field>\n\n    <!-- Assignee -->\n    <form-field *ngIf=\"additionalOption?.ASSIGNEES\" [checked]=\"\n        controls?.program_assignee?.value?.length ||\n        controls?.program_default_assignee?.value?.length ||\n        controls?.program_default_assignee?.value?.length ||\n        controls?.program_default_assignee_group?.value?.length\n      \" [active]=\"['ASSIGNEE', 'DEFAULT_ASSIGNEE']?.includes(activeList)\" [disabled]=\"\n        sideElements?.includes(activeList) &&\n        !['ASSIGNEE', 'DEFAULT_ASSIGNEE'].includes(activeList)\n      \" [img]=\"ASSETS.case_assignees\">\n      <label class=\"vx-control-panel\" [class.disabled]=\"activeList === 'DEFAULT_ASSIGNEE'\">ASSIGNEES\n        <i class=\"icons\" [appTooltip]=\"\n            'Assignees are required to complete the responsibilities that have been assigned to them. Where Assignees are selected when creating a Program, only those Assignees will be available for selection when creating a responsibility linked with the Program.'\n          \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\" id=\"AssigneeHelpText\">&#xeb16;</i>\n      </label>\n      <input-with-pill [selectDiv]=\"true\" [disabled]=\"activeList === 'DEFAULT_ASSIGNEE'\" [placeholder]=\"\n          'Who is responsible for completing the responsibilities within this Program?'\n        \" (select)=\"activateList('ASSIGNEE')\">\n        <div class=\"selected\" *ngIf=\"\n            controls?.program_assignee?.value?.length ||\n            controls?.program_assignee_group?.value?.length\n          \">\n          <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.program_assignee?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(controls?.program_assignee?.value[0], 'ASSIGNEE')\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"controls?.program_assignee?.value[0]?.member_name\" placement=\"bottom-left\" delay=\"0\"\n                type=\"black\" [tooltipMandatory]=\"false\">{{ controls?.program_assignee?.value[0]?.member_name }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"assignee.popover()\" placement=\"right\"\n                *ngIf=\"controls?.program_assignee?.value?.length > 1\">\n                +{{ controls?.program_assignee?.value?.length - 1 }}\n              </button>\n            </div>\n            <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"\n                controls?.program_assignee_group?.value?.length &&\n                controls?.program_assignee?.value?.length\n              \">&</span>\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.program_assignee_group?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    controls?.program_assignee_group?.value[0],\n                    'ASSIGNEE_GROUP'\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  controls?.program_assignee_group?.value[0]?.group_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                controls?.program_assignee_group?.value[0]?.group_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"assignee_group.popover()\" placement=\"right\"\n                *ngIf=\"controls?.program_assignee_group?.value?.length > 1\">\n                +{{ controls?.program_assignee_group?.value?.length - 1 }}\n              </button>\n            </div>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                        <div class=\"chip-inner\" *ngIf=\"controls?.program_assignee?.value?.length\">\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_assignee?.value[0],'ASSIGNEE')\" >&#xe90d;</i>\n                            <span class=\"chip\" [appTooltip]=\"controls?.program_assignee?.value[0]?.member_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                              <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_assignee?.value[0]?.member_name}}</span>\n                            </span>\n                            <button *ngIf=\"controls?.program_assignee?.value?.length > 1\" class=\"count user\" appPopover (click)=\"assignee.popover()\" placement=\"right\">+{{controls?.program_assignee?.value?.length -1}}</button>\n                        </div>\n                        <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_assignee_group?.value?.length && controls?.program_assignee?.value?.length\">&</span>\n                        <div class=\"chip-inner\" *ngIf=\"controls?.program_assignee_group?.value?.length\">\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_assignee_group?.value[0],'ASSIGNEE_GROUP')\" >&#xe90d;</i>\n                            <span class=\"chip\" [appTooltip]=\"controls?.program_assignee_group?.value[0]?.group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                              <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_assignee_group?.value[0]?.group_name}}</span>\n                            </span>\n                            <button *ngIf=\"controls?.program_assignee_group?.value?.length > 1\" class=\"count\" appPopover (click)=\"assignee_group.popover()\" placement=\"right\">+{{controls?.program_assignee_group?.value?.length -1 }}</button>\n                        </div>\n                    </div> -->\n          <button *ngIf=\"activeList !== 'ASSIGNEE'\" class=\"edit\" type=\"button\" (click)=\"activateList('ASSIGNEE')\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </input-with-pill>\n      <app-popover #assignee [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let assignee of controls?.program_assignee?.value | slice : 1\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i (click)=\"remove(assignee, 'ASSIGNEE')\" class=\"icons\">&#xe90d;</i>\n                  {{ assignee?.member_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <app-popover #assignee_group [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let group of controls?.program_assignee_group?.value | slice : 1\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i (click)=\"remove(group, 'ASSIGNEE_GROUP')\" class=\"icons\">&#xe90d;</i>\n                  {{ group?.group_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <label class=\"vx-control-panel\" [class.disabled]=\"activeList === 'ASSIGNEE'\">DEFAULT ASSIGNEE\n        <i class=\"icons\" [appTooltip]=\"\n            'This option lets you specify the Default Assignees for all new responsibilities linked with a Program. If a Default Assignees is selected, the user will automatically be selected the Assignee when creating a responsibility linked with the Program. An Assignor, being the person who creates the responsibility, can override this option when creating a responsibility. '\n          \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\" id=\"DAHelpText\">&#xeb16;</i></label>\n      <input-with-pill [selectDiv]=\"true\" [disabled]=\"activeList === 'ASSIGNEE'\" [placeholder]=\"\n          'Which persons will be selected as the default assignees for the responsibilities within this Program?'\n        \" (select)=\"activateList('DEFAULT_ASSIGNEE')\">\n        <div class=\"selected\" *ngIf=\"\n            controls?.program_default_assignee?.value?.length ||\n            controls?.program_default_assignee_group?.value?.length\n          \">\n          <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.program_default_assignee?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    controls?.program_default_assignee?.value[0],\n                    'DEFAULT_ASSIGNEE'\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  controls?.program_default_assignee?.value[0]?.member_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                controls?.program_default_assignee?.value[0]?.member_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"defaultAssignee.popover()\" placement=\"right\"\n                *ngIf=\"controls?.program_default_assignee?.value?.length > 1\">\n                +{{ controls?.program_default_assignee?.value?.length - 1 }}\n              </button>\n            </div>\n            <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"\n                controls?.program_default_assignee_group?.value?.length &&\n                controls?.program_default_assignee?.value?.length\n              \">&</span>\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.program_default_assignee_group?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    controls?.program_default_assignee_group?.value[0],\n                    'DEFAULT_ASSIGNEE_GROUP'\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  controls?.program_default_assignee_group?.value[0]?.group_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                controls?.program_default_assignee_group?.value[0]?.group_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"defaultAssigneeGroup.popover()\" placement=\"right\" *ngIf=\"\n                  controls?.program_default_assignee_group?.value?.length > 1\n                \">\n                +{{\n                controls?.program_default_assignee_group?.value?.length - 1\n                }}\n              </button>\n            </div>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                        <div class=\"chip-inner\" *ngIf=\"controls?.program_default_assignee?.value?.length\">\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_default_assignee?.value[0],'DEFAULT_ASSIGNEE')\" >&#xe90d;</i>\n                            <span class=\"chip\" [appTooltip]=\"controls?.program_default_assignee?.value[0]?.member_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                              <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{ controls?.program_default_assignee?.value[0]?.member_name}}</span>\n                            </span>\n                            <button *ngIf=\"controls?.program_default_assignee?.value?.length > 1\" class=\"count user\" appPopover (click)=\"defaultAssignee.popover()\" placement=\"right\">+{{controls?.program_default_assignee?.value?.length - 1}}</button>\n                        </div>\n                        <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_default_assignee_group?.value?.length && controls?.program_default_assignee?.value?.length\">&</span>\n                        <div class=\"chip-inner\" *ngIf=\"controls?.program_default_assignee_group?.value?.length\">\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_default_assignee_group?.value[0],'DEFAULT_ASSIGNEE_GROUP')\" >&#xe90d;</i>\n                            <span class=\"chip\">\n                              <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_default_assignee_group?.value[0]?.group_name }}</span>\n                            </span>\n                            <button *ngIf=\"controls?.program_default_assignee_group?.value?.length > 1\" class=\"count\" appPopover (click)=\"defaultAssigneeGroup.popover()\" placement=\"right\">+{{controls?.program_default_assignee_group?.value?.length -1 }}</button>\n                        </div>\n                    </div> -->\n          <button *ngIf=\"activeList !== 'DEFAULT_ASSIGNEE'\" (click)=\"activateList('DEFAULT_ASSIGNEE')\" class=\"edit\"\n            type=\"button\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </input-with-pill>\n      <app-popover #defaultAssignee [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let assignee of controls?.program_default_assignee?.value\n                  | slice : 1\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i (click)=\"remove(assignee, 'DEFAULT_ASSIGNEE')\" class=\"icons\">&#xe90d;</i>\n                  {{ assignee?.member_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <app-popover #defaultAssigneeGroup [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let group of controls?.program_default_assignee_group?.value\n                  | slice : 1\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i (click)=\"remove(assignee, 'DEFAULT_ASSIGNEE_GROUP')\" class=\"icons\">&#xe90d;</i>\n                  {{ group?.group_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <div class=\"radio-group-selector\" [class.disabled]=\"activeList === 'ASSIGNEE'\">\n        <app-cs-radio [name]=\"'assignee'\" [checked]=\"controls?.assignee_completion_criteria?.value === 'ALL'\"\n          (checkedEvent)=\"setFormField('assignee_completion_criteria', 'ALL')\">\n          ALL SELECTED PERSONS NEED TO COMPLETE THIS\n          <i class=\"icons\" [appTooltip]=\"\n              'If selected, separate responsibilities will be created for each person.'\n            \" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n        </app-cs-radio>\n        <app-cs-radio [name]=\"'assignee'\" [checked]=\"controls?.assignee_completion_criteria?.value === 'ANYONE'\"\n          (checkedEvent)=\"\n            setFormField('assignee_completion_criteria', 'ANYONE')\n          \">\n          ANY SELECTED PERSON CAN COMPLETE THIS\n          <i class=\"icons\" [appTooltip]=\"\n              'If selected, only one responsibility will be created.'\n            \" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n        </app-cs-radio>\n      </div>\n    </form-field>\n\n    <!-- Reviewer -->\n    <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.REVIEWER\" [checked]=\"\n        controls?.program_reviewer?.value?.length ||\n        controls?.program_default_reviewer?.value?.length ||\n        controls?.program_default_reviewer?.value?.length ||\n        controls?.program_default_reviewer_group?.value?.length\n      \" [active]=\"['REVIEWER', 'DEFAULT_REVIEWER']?.includes(activeList)\" [disabled]=\"\n        sideElements?.includes(activeList) &&\n        !['REVIEWER', 'DEFAULT_REVIEWER'].includes(activeList)\n      \" [img]=\"ASSETS.reviewer\">\n      <label [class.disabled]=\"activeList === 'DEFAULT_REVIEWER'\" class=\"vx-control-panel\">Reviewers\n        <i class=\"icons\" [appTooltip]=\"\n            'Reviewers are required to review responsibilities after they have been completed. Where Reviewers are selected when creating a Program, only those Reviewers will be available for selection when creating a responsibility linked with the Program.'\n          \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"\n          id=\"ReviewerHelpText\">&#xeb16;</i></label>\n      <input-with-pill [selectDiv]=\"true\" [disabled]=\"activeList === 'DEFAULT_REVIEWER'\" [placeholder]=\"\n          'Who is responsible for reviewing the responsibilities within this Program?'\n        \" (select)=\"activateList('REVIEWER')\">\n        <div class=\"selected\" *ngIf=\"\n            controls?.program_reviewer?.value?.length ||\n            controls?.program_reviewer_group?.value?.length\n          \">\n          <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.program_reviewer?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(controls?.program_reviewer?.value[0], 'REVIEWER')\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"controls?.program_reviewer?.value[0]?.member_name\" placement=\"bottom-left\" delay=\"0\"\n                type=\"black\" [tooltipMandatory]=\"false\">{{ controls?.program_reviewer?.value[0]?.member_name }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"reviewer.popover()\" placement=\"right\"\n                *ngIf=\"controls?.program_reviewer?.value?.length > 1\">\n                +{{ controls?.program_reviewer?.value?.length - 1 }}\n              </button>\n            </div>\n            <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"\n                controls?.program_reviewer_group?.value?.length &&\n                controls?.program_reviewer?.value?.length\n              \">&</span>\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.program_reviewer_group?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    controls?.program_reviewer_group?.value[0],\n                    'REVIEWER_GROUP'\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  controls?.program_reviewer_group?.value[0]?.group_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                controls?.program_reviewer_group?.value[0]?.group_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"reviewerGroup.popover()\" placement=\"right\"\n                *ngIf=\"controls?.program_reviewer_group?.value?.length > 1\">\n                +{{ controls?.program_reviewer_group?.value?.length - 1 }}\n              </button>\n            </div>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                        <div class=\"chip-inner\" *ngIf=\"controls?.program_reviewer?.value?.length\">\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_reviewer?.value[0],'REVIEWER')\" >&#xe90d;</i>\n                            <span class=\"chip\" [appTooltip]=\"controls?.program_reviewer?.value[0]?.member_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                              <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_reviewer?.value[0]?.member_name}}</span>\n                            </span>\n                            <button *ngIf=\"controls?.program_reviewer?.value?.length > 1\" class=\"count user\" appPopover (click)=\"reviewer.popover()\" placement=\"right\">+{{controls?.program_reviewer?.value?.length -1}}</button>\n                        </div>\n                        <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_reviewer_group?.value?.length && controls?.program_reviewer?.value?.length\">&</span>\n                        <div class=\"chip-inner\" *ngIf=\"controls?.program_reviewer_group?.value?.length\">\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_reviewer_group?.value[0],'REVIEWER_GROUP')\" >&#xe90d;</i>\n                            <span class=\"chip\" [appTooltip]=\"controls?.program_reviewer_group?.value[0]?.group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                              <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_reviewer_group?.value[0]?.group_name}}\n                              </span>\n                            </span>\n                            <button *ngIf=\"controls?.program_reviewer_group?.value?.length > 1\" class=\"count\" appPopover (click)=\"reviewerGroup.popover()\" placement=\"right\">+{{controls?.program_reviewer_group?.value?.length - 1}}</button>\n                        </div>\n                    </div> -->\n          <button *ngIf=\"activeList !== 'REVIEWER'\" (click)=\"activateList('REVIEWER')\" class=\"edit\" type=\"button\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </input-with-pill>\n      <app-popover #reviewer [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let reviewer of controls?.program_reviewer?.value | slice : 1\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i (click)=\"remove(reviewer, 'REVIEWER')\" class=\"icons\">&#xe90d;</i>\n                  {{ reviewer?.member_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <app-popover #reviewerGroup [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let group of controls?.program_reviewer_group?.value | slice : 1\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i (click)=\"remove(group, 'REVIEWER_GROUP')\" class=\"icons\">&#xe90d;</i>\n                  {{ group?.group_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <label [class.disabled]=\"activeList === 'REVIEWER'\" class=\"vx-control-panel\">DEFAULT Reviewer\n        <i class=\"icons\" [appTooltip]=\"\n            'This option lets you specify the Default Reviewers for responsibilities linked with a Program. Where a user has been specified as a Default Reviewer, that user will automatically be selected as the Reviewer when creating a responsibility linked with the Program. An Assignor, being the person who creates the responsibility, can override this option when creating a responsibility.'\n          \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\" id=\"DRHelpText\">&#xeb16;</i></label>\n      <input-with-pill [selectDiv]=\"true\" [disabled]=\"activeList === 'REVIEWER'\" [placeholder]=\"\n          'Which persons will be selected as the default reviewers for the responsibilities within this Program?'\n        \" (select)=\"activateList('DEFAULT_REVIEWER')\">\n        <div class=\"selected\" *ngIf=\"\n            controls?.program_default_reviewer?.value?.length ||\n            controls?.program_default_reviewer_group?.value?.length\n          \">\n          <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.program_default_reviewer?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    controls?.program_default_reviewer?.value[0],\n                    'DEFAULT_REVIEWER'\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  controls?.program_default_reviewer?.value[0]?.member_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                controls?.program_default_reviewer?.value[0]?.member_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"defaultReviewer.popover()\" placement=\"right\"\n                *ngIf=\"controls?.program_default_reviewer?.value?.length > 1\">\n                +{{ controls?.program_default_reviewer?.value?.length - 1 }}\n              </button>\n            </div>\n            <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"\n                controls?.program_default_reviewer_group?.value?.length &&\n                controls?.program_default_reviewer?.value?.length\n              \">&</span>\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.program_default_reviewer_group?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    controls?.program_default_reviewer_group?.value[0],\n                    'DEFAULT_REVIEWER_GROUP'\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  controls?.program_default_reviewer_group?.value[0]?.group_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                controls?.program_default_reviewer_group?.value[0]?.group_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"defaultReviewerGroup.popover()\" placement=\"right\" *ngIf=\"\n                  controls?.program_default_reviewer_group?.value?.length > 1\n                \">\n                +{{\n                controls?.program_default_reviewer_group?.value?.length - 1\n                }}\n              </button>\n            </div>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                        <div class=\"chip-inner\" *ngIf=\"controls?.program_default_reviewer?.value?.length\">\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_default_reviewer?.value[0],'DEFAULT_REVIEWER')\" >&#xe90d;</i>\n                            <span class=\"chip\" [appTooltip]=\"controls?.program_default_reviewer?.value[0]?.member_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                              <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_default_reviewer?.value[0]?.member_name}}</span>\n                            </span>\n                            <button *ngIf=\"controls?.program_default_reviewer?.value?.length > 1\" class=\"count user\" appPopover (click)=\"defaultReviewer.popover()\" placement=\"right\">+{{controls?.program_default_reviewer?.value?.length - 1}}</button>\n                        </div>\n                        <span class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\" *ngIf=\"controls?.program_default_reviewer_group?.value?.length && controls?.program_default_reviewer?.value?.length\">&</span>\n                        <div class=\"chip-inner\" *ngIf=\"controls?.program_default_reviewer_group?.value?.length\">\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_default_reviewer_group?.value[0],'DEFAULT_REVIEWER_GROUP')\" >&#xe90d;</i>\n                            <span class=\"chip\" [appTooltip]=\"controls?.program_default_reviewer_group?.value[0]?.group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                              <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_default_reviewer_group?.value[0]?.group_name}}\n                              </span>\n                            </span>\n                            <button *ngIf=\"controls?.program_default_reviewer_group?.value?.length > 1\" class=\"count\" appPopover (click)=\"defaultReviewerGroup.popover()\" placement=\"right\">+{{controls?.program_default_reviewer_group?.value?.length -1}}</button>\n                        </div>\n                    </div> -->\n          <button *ngIf=\"activeList !== 'DEFAULT_REVIEWER'\" (click)=\"activateList('DEFAULT_REVIEWER')\" class=\"edit\"\n            type=\"button\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </input-with-pill>\n      <app-popover #defaultReviewer [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let reviewer of controls?.program_default_reviewer?.value\n                  | slice : 1\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i (click)=\"remove(reviewer, 'DEFAULT_REVIEWER')\" class=\"icons\">&#xe90d;</i>\n                  {{ reviewer?.member_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <app-popover #defaultReviewerGroup [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let group of controls?.program_default_reviewer_group?.value\n                  | slice : 1\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i (click)=\"remove(group, 'DEFAULT_REVIEWER_GROUP')\" class=\"icons\">&#xe90d;</i>\n                  {{ group?.group_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <div class=\"radio-group-selector\" [class.disabled]=\"activeList === 'REVIEWER'\">\n        <app-cs-radio [name]=\"'reviewer'\" [checked]=\"\n            controls?.reviewer_completion_criteria?.value === 'SEQUENTIAL'\n          \" (checkedEvent)=\"\n            setFormField('reviewer_completion_criteria', 'SEQUENTIAL')\n          \" [class.disabled]=\"\n            controls?.program_default_reviewer_group?.value?.length > 0\n          \">\n          SEQUENTIAL\n          <i class=\"icons\" [appTooltip]=\"\n              'The responsibility will be sent for review one at a time in the sequence defined by you.'\n            \" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n        </app-cs-radio>\n        <app-cs-radio [name]=\"'reviewer'\" [checked]=\"\n            controls?.reviewer_completion_criteria?.value === 'ANYONE' ||\n            controls?.program_default_reviewer_group?.value?.length > 0\n          \" (checkedEvent)=\"\n            setFormField('reviewer_completion_criteria', 'ANYONE')\n          \">\n          ANY REVIEWER CAN MARK THIS AS REVIEWED\n          <i class=\"icons\" [appTooltip]=\"\n              'The responsibility will be sent for review to all reviewers at the same time. If anyone of the reviewer reviews the responsibility, it will be considered as reviewed.'\n            \" placement=\"bottom-right\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\">&#xe91f;</i>\n        </app-cs-radio>\n      </div>\n    </form-field>\n\n    <!-- Overseer -->\n    <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.OVERSEER\" [checked]=\"\n        controls?.program_overseer?.value?.length ||\n        controls?.program_default_overseer?.value?.length ||\n        controls?.program_default_overseer?.value?.length ||\n        controls?.program_default_overseer_group?.value?.length\n      \" [active]=\"activeList === 'OVERSEER'\" [disabled]=\"\n        sideElements?.includes(activeList) &&\n        !['OVERSEER', 'DEFAULT_OVERSEER', 'DEFAULT_FAILED_OVERSEER'].includes(\n          activeList\n        )\n      \" [img]=\"ASSETS.oversight\">\n      <label class=\"vx-control-panel\" [class.disabled]=\"\n          ['DEFAULT_OVERSEER', 'DEFAULT_FAILED_OVERSEER'].includes(activeList)\n        \">Oversights\n        <i class=\"icons\" [appTooltip]=\"\n            'Oversights receive updates when a responsibility is completed, completed with delay or not completed. Where Oversights are selected when creating a Program, only those Oversights will be available for selection when creating a responsibility linked with the Program.'\n          \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"\n          id=\"overseerHelpText\">&#xeb16;</i></label>\n      <input-with-pill [selectDiv]=\"true\" [disabled]=\"\n          ['DEFAULT_OVERSEER', 'DEFAULT_FAILED_OVERSEER'].includes(activeList)\n        \" [placeholder]=\"\n          'Who is responsible for overseeing the responsibilities within this Program?'\n        \" (select)=\"activateList('OVERSEER')\">\n        <div class=\"selected\" *ngIf=\"\n            controls?.program_overseer?.value?.length ||\n            controls?.program_overseer_group?.value?.length\n          \">\n          <div class=\"vx-d-flex vx-align-center\">\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.program_overseer?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(controls?.program_overseer?.value[0], 'OVERSEER')\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\"\n                [appTooltip]=\"controls?.program_overseer?.value[0]?.member_name\" placement=\"bottom-left\" delay=\"0\"\n                type=\"black\" [tooltipMandatory]=\"false\">{{ controls?.program_overseer?.value[0]?.member_name }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"overseers.popover()\" placement=\"right\"\n                *ngIf=\"controls?.program_overseer?.value?.length > 1\">\n                +{{ controls?.program_overseer?.value?.length - 1 }}\n              </button>\n            </div>\n            <span *ngIf=\"\n                controls?.program_overseer_group?.value?.length &&\n                controls?.program_overseer?.value?.length\n              \" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\n            <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n              *ngIf=\"controls?.program_overseer_group?.value?.length\">\n              <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                  remove(\n                    controls?.program_overseer_group?.value[0],\n                    'OVERSEER_GROUP'\n                  )\n                \">&#xe9ae;</i>\n              <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                  controls?.program_overseer_group?.value[0]?.group_name\n                \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                controls?.program_overseer_group?.value[0]?.group_name\n                }}</span>\n              <button\n                class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                appPopover (click)=\"overseerGroup.popover()\" placement=\"right\"\n                *ngIf=\"controls?.program_overseer_group?.value?.length > 1\">\n                +{{ controls?.program_overseer_group?.value?.length - 1 }}\n              </button>\n            </div>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                        <div class=\"chip-inner\" *ngIf=\"controls?.program_overseer?.value?.length\">\n                          <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_overseer?.value[0],'OVERSEER')\" >&#xe90d;</i>\n                            <span class=\"chip\" [appTooltip]=\"controls?.program_overseer?.value[0]?.member_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                              <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">\n                                {{controls?.program_overseer?.value[0]?.member_name}}\n                              </span>\n                            </span>\n                            <button *ngIf=\"controls?.program_overseer?.value?.length > 1\" class=\"count user\" appPopover (click)=\"overseers.popover()\" placement=\"right\">+{{controls?.program_overseer?.value?.length -1}}</button>\n                        </div>\n                        <span *ngIf=\"controls?.program_overseer_group?.value?.length && controls?.program_overseer?.value?.length \" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\n                        <div class=\"chip-inner\" *ngIf=\"controls?.program_overseer_group?.value?.length \">\n                            <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_overseer_group?.value[0],'OVERSEER_GROUP')\" >&#xe90d;</i>\n                            <span class=\"chip\" [appTooltip]=\"controls?.program_overseer_group?.value[0]?.group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                                <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_overseer_group?.value[0]?.group_name}}</span></span>\n                            <button *ngIf=\"controls?.program_overseer_group?.value?.length> 1\" class=\"count\" appPopover (click)=\"overseerGroup.popover()\" placement=\"right\">+{{controls?.program_overseer_group?.value?.length -1}}</button>\n                        </div>\n                    </div> -->\n\n          <button *ngIf=\"activeList !== 'OVERSEER'\" (click)=\"activateList('OVERSEER')\" class=\"edit\" type=\"button\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </input-with-pill>\n      <app-popover #overseers [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let overseer of controls?.program_overseer?.value | slice : 1\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i class=\"icons\" (click)=\"remove(overseer, 'OVERSEER')\">&#xe90d;</i>\n                  {{ overseer?.member_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <app-popover #overseerGroup [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"\n                let group of controls?.program_overseer_group?.value | slice : 1\n              \">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i (click)=\"remove(group, 'OVERSEER_GROUP')\" class=\"icons\">&#xe90d;</i>\n                  {{ group?.group_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n      <ng-container [class.disabled]=\"activeList === 'OVERSEER'\">\n        <label class=\"vx-control-panel\" [class.disabled]=\"['OVERSEER'].includes(activeList)\">DEFAULT Oversight\n          <i class=\"icons\" [appTooltip]=\"\n              'This option lets you specify the Default Oversight for responsibilities linked with a Program. Where a user has been specified as a Default Oversight, that user will automatically be selected as the Oversight when creating a responsibility linked with the Program.'\n            \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\" id=\"DOHelpText\">&#xeb16;</i></label>\n        <input-with-pill [disabled]=\"\n            ['OVERSEER', 'DEFAULT_FAILED_OVERSEER'].includes(activeList)\n          \" [selectDiv]=\"true\" [placeholder]=\"\n            'Which persons will be selected as the default overseers for the responsibilities within this Program?'\n          \" (select)=\"activateList('DEFAULT_OVERSEER')\">\n          <div class=\"selected\" *ngIf=\"\n              controls?.program_default_overseer?.value?.length ||\n              controls?.program_default_overseer_group?.value?.length\n            \">\n            <div class=\"vx-d-flex vx-align-center\">\n              <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                *ngIf=\"controls?.program_default_overseer?.value?.length\">\n                <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                    remove(\n                      controls?.program_default_overseer?.value[0],\n                      'DEFAULT_OVERSEER'\n                    )\n                  \">&#xe9ae;</i>\n                <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                    controls?.program_default_overseer?.value[0]?.member_name\n                  \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                  controls?.program_default_overseer?.value[0]?.member_name\n                  }}</span>\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover (click)=\"overseersDefault.popover()\" placement=\"right\"\n                  *ngIf=\"controls?.program_default_overseer?.value?.length > 1\">\n                  +{{ controls?.program_default_overseer?.value?.length - 1 }}\n                </button>\n              </div>\n              <span *ngIf=\"\n                  controls?.program_default_overseer_group?.value?.length &&\n                  controls?.program_default_overseer?.value?.length\n                \" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\n              <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                *ngIf=\"controls?.program_default_overseer_group?.value?.length\">\n                <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                    remove(\n                      controls?.program_default_overseer_group?.value[0],\n                      'DEFAULT_OVERSEER_GROUP'\n                    )\n                  \">&#xe9ae;</i>\n                <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                    controls?.program_default_overseer_group?.value[0]\n                      ?.group_name\n                  \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                  controls?.program_default_overseer_group?.value[0]\n                  ?.group_name\n                  }}</span>\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover (click)=\"overseerDefaultGroup.popover()\" placement=\"right\" *ngIf=\"\n                    controls?.program_default_overseer_group?.value?.length > 1\n                  \">\n                  +{{\n                  controls?.program_default_overseer_group?.value?.length - 1\n                  }}\n                </button>\n              </div>\n            </div>\n\n            <!-- <div class=\"chip-container\">\n                    <div class=\"chip-inner\" *ngIf=\"controls?.program_default_overseer?.value?.length\">\n                      <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_default_overseer?.value[0],'DEFAULT_OVERSEER')\" >&#xe90d;</i>\n                        <span class=\"chip\" [appTooltip]=\"controls?.program_default_overseer?.value[0]?.member_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                          <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_default_overseer?.value[0]?.member_name}}</span></span>\n                        <button *ngIf=\"controls?.program_default_overseer?.value?.length > 1\" class=\"count user\" appPopover (click)=\"overseersDefault.popover()\" placement=\"right\">+{{controls?.program_default_overseer?.value?.length -1}}</button>\n                    </div>\n                    <span *ngIf=\"controls?.program_default_overseer_group?.value?.length && controls?.program_default_overseer?.value?.length\" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\n                    <div class=\"chip-inner\" *ngIf=\"controls?.program_default_overseer_group?.value?.length \">\n                        <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_default_overseer_group?.value[0],'DEFAULT_OVERSEER_GROUP')\" >&#xe90d;</i>\n                        <span class=\"chip\"  [appTooltip]=\"controls?.program_default_overseer_group?.value[0]?.group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                            <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_default_overseer_group?.value[0]?.group_name}}</span>\n                        </span>\n                        <button *ngIf=\"controls?.program_default_overseer_group?.value?.length >1\" class=\"count\" appPopover (click)=\"overseerDefaultGroup.popover()\" placement=\"right\">+{{controls?.program_default_overseer_group?.value?.length -1}}</button>\n                    </div>\n                </div> -->\n            <button *ngIf=\"activeList !== 'DEFAULT_OVERSEER'\" (click)=\"activateList('DEFAULT_OVERSEER')\" class=\"edit\"\n              type=\"button\">\n              <i class=\"icons\">&#xe9ba;</i> Edit\n            </button>\n          </div>\n        </input-with-pill>\n        <app-popover #overseersDefault [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let overseer of controls?.program_default_overseer?.value\n                    | slice : 1\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove(overseer, 'DEFAULT_OVERSEER')\">&#xe90d;</i>\n                    {{ overseer?.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #overseerDefaultGroup [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let group of controls?.program_default_overseer_group?.value\n                    | slice : 1\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i (click)=\"remove(group, 'DEFAULT_OVERSEER_GROUP')\" class=\"icons\">&#xe90d;</i>\n                    {{ group?.group_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <label class=\"vx-control-panel\"> </label>\n        <input-with-pill class=\"vx-mt-2\" [selectDiv]=\"true\" [line]=\"3\"\n          [disabled]=\"['OVERSEER', 'DEFAULT_OVERSEER'].includes(activeList)\" [placeholder]=\"\n            'Which persons will be selected as the default overseers for responsibilities that are not completed within this Program?'\n          \" (select)=\"activateList('DEFAULT_FAILED_OVERSEER')\">\n          <div class=\"selected\" *ngIf=\"\n              controls?.program_default_failed_overseer?.value?.length ||\n              controls?.program_default_failed_overseer_group?.value?.length\n            \">\n            <div class=\"vx-d-flex vx-align-center\">\n              <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\n                *ngIf=\"controls?.program_default_failed_overseer?.value?.length\">\n                <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                    remove(\n                      controls?.program_default_failed_overseer?.value[0],\n                      'DEFAULT_FAILED_OVERSEER'\n                    )\n                  \">&#xe9ae;</i>\n                <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                    controls?.program_default_failed_overseer?.value[0]\n                      ?.member_name\n                  \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                  controls?.program_default_failed_overseer?.value[0]\n                  ?.member_name\n                  }}</span>\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover (click)=\"overseersDefaultFail.popover()\" placement=\"right\" *ngIf=\"\n                    controls?.program_default_failed_overseer?.value?.length > 1\n                  \">\n                  +{{\n                  controls?.program_default_failed_overseer?.value?.length - 1\n                  }}\n                </button>\n              </div>\n              <span *ngIf=\"\n                  controls?.program_default_failed_overseer_group?.value\n                    ?.length &&\n                  controls?.program_default_failed_overseer?.value?.length\n                \" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\n              <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngIf=\"\n                  controls?.program_default_failed_overseer_group?.value?.length\n                \">\n                <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"\n                    remove(\n                      controls?.program_default_failed_overseer_group?.value[0],\n                      'DEFAULT_FAILED_OVERSEER_GROUP'\n                    )\n                  \">&#xe9ae;</i>\n                <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"\n                    controls?.program_default_failed_overseer_group?.value[0]\n                      ?.group_name\n                  \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n                  controls?.program_default_failed_overseer_group?.value[0]\n                  ?.group_name\n                  }}</span>\n                <button\n                  class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n                  appPopover (click)=\"overseerDefaultFailGroup.popover()\" placement=\"right\" *ngIf=\"\n                    controls?.program_default_failed_overseer_group?.value\n                      ?.length > 1\n                  \">\n                  +{{\n                  controls?.program_default_failed_overseer_group?.value\n                  ?.length - 1\n                  }}\n                </button>\n              </div>\n            </div>\n\n            <!-- <div class=\"chip-container\">\n                <div class=\"chip-inner\" *ngIf=\"controls?.program_default_failed_overseer?.value?.length\">\n                  <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_default_failed_overseer?.value[0],'DEFAULT_FAILED_OVERSEER')\" >&#xe90d;</i>\n                    <span class=\"chip\">\n                      <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_default_failed_overseer?.value[0]?.member_name}}</span>\n                    </span>\n                    <button *ngIf=\"controls?.program_default_failed_overseer?.value?.length > 1\" class=\"count user\" appPopover (click)=\"overseersDefaultFail.popover()\" placement=\"right\">+{{controls?.program_default_failed_overseer?.value?.length -1}}</button>\n                </div>\n                <span *ngIf=\"controls?.program_default_failed_overseer_group?.value?.length && controls?.program_default_failed_overseer?.value?.length\" class=\"vx-fs-12 vx-paragraph-txt vx-ml-2 vx-mr-2\">&</span>\n                <div class=\"chip-inner\" *ngIf=\"controls?.program_default_failed_overseer_group?.value?.length \">\n                    <i class=\"icons cross vx-mr-1\" (click)=\"remove(controls?.program_default_failed_overseer_group?.value[0],'DEFAULT_FAILED_OVERSEER_GROUP')\" >&#xe90d;</i>\n                    <span class=\"chip\" [appTooltip]=\"controls?.program_default_failed_overseer_group?.value[0]?.group_name\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"false\">\n                        <span class=\"vx-fs-11 vx-paragraph-txt vx-fw-500 vx-tt-uppercase\">{{controls?.program_default_failed_overseer_group?.value[0]?.group_name}}</span>\n                    </span>\n                    <button *ngIf=\"controls?.program_default_failed_overseer_group?.value?.length > 1\" class=\"count\" appPopover (click)=\"overseerDefaultFailGroup.popover()\" placement=\"right\">+{{controls?.program_default_failed_overseer_group?.value?.length -1}}</button>\n                </div>\n            </div> -->\n            <button *ngIf=\"activeList !== 'DEFAULT_FAILED_OVERSEER'\" (click)=\"activateList('DEFAULT_FAILED_OVERSEER')\"\n              class=\"edit\" type=\"button\">\n              <i class=\"icons\">&#xe9ba;</i> Edit\n            </button>\n          </div>\n        </input-with-pill>\n        <app-popover #overseersDefaultFail [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let overseer of controls?.program_default_failed_overseer\n                    ?.value | slice : 1\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i class=\"icons\" (click)=\"remove(overseer, 'DEFAULT_FAILED_OVERSEER')\">&#xe90d;</i>\n                    {{ overseer?.member_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n        <app-popover #overseerDefaultFailGroup [dontCloseonClick]=\"true\">\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let group of controls?.program_default_failed_overseer_group\n                    ?.value | slice : 1\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i (click)=\"remove(group, 'DEFAULT_FAILED_OVERSEER_GROUP')\" class=\"icons\">&#xe90d;</i>\n                    {{ group?.group_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </app-popover>\n      </ng-container>\n    </form-field>\n\n    <!-- Assessment -->\n    <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.ASSESSMENT\"\n      [checked]=\"controls?.program_assessments?.value?.length\" [active]=\"activeList === 'ASSESSMENT'\" [disabled]=\"\n        sideElements.includes(activeList) && activeList !== 'ASSESSMENT'\n      \" [img]=\"ASSETS.assessments\">\n      <label class=\"vx-control-panel\">ASSESSMENTS\n        <i class=\"icons\" [appTooltip]=\"\n            'Assessments are a digital form that are created in “Assessment” within the Compliance Module. Where Assessments are selected when creating a Program, only those Assessments will be available for selection when creating a responsibility linked with the Program.'\n          \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"\n          id=\"AssessmentHelpText\">&#xeb16;</i></label>\n      <input-with-pill [selectDiv]=\"true\" [placeholder]=\"\n          'Which assessments can be linked to the responsibilities within this Program?'\n        \" (select)=\"activateList('ASSESSMENT')\">\n        <div class=\"selected\" *ngIf=\"controls?.program_assessments?.value?.length\">\n          <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\" *ngIf=\"\n              controls?.program_assessments?.value\n                | assessmentResolver as assessments\n            \">\n            <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n              (click)=\"remove(assessments[0], 'ASSESSMENT')\">&#xe9ae;</i>\n            <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"assessments[0]?.assessment_name\"\n              placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{\n              assessments[0]?.assessment_name }}</span>\n            <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n              appPopover (click)=\"program_assessments.popover()\" placement=\"right\" *ngIf=\"assessments?.length > 1\">\n              +{{ assessments?.length - 1 }}\n            </button>\n          </div>\n\n          <!-- <div class=\"chip-container\">\n                        <ng-container *ngIf=\"(controls?.program_assessments?.value | assessmentResolver) as assessments\">\n                            <div class=\"chip-inner\">\n                                <span class=\"chip\"><i class=\"icons\" (click)=\"remove(assessments[0],'ASSESSMENT')\">&#xe90d;</i>{{assessments[0]?.assessment_name}} </span>\n                                <button *ngIf=\"assessments?.length > 1\" class=\"count\" appPopover (click)=\"program_assessments.popover()\" placement=\"right\">+{{assessments?.length -1 }}</button>\n                            </div>\n                        </ng-container>\n                    </div> -->\n          <button *ngIf=\"activeList !== 'ASSESSMENT'\" class=\"edit\" type=\"button\" (click)=\"activateList('ASSESSMENT')\">\n            <i class=\"icons\">&#xe9ba;</i> Edit\n          </button>\n        </div>\n      </input-with-pill>\n      <app-popover #program_assessments [dontCloseonClick]=\"true\">\n        <ng-container>\n          <div class=\"wf-action-list\">\n            <ul class=\"action-item\">\n              <li *ngFor=\"\n                  let assessment of controls?.program_assessments?.value\n                    | assessmentResolver\n                    | slice : 1\n                \">\n                <div class=\"avatar-card\">\n                  <span class=\"value\">\n                    <i (click)=\"remove(assessment, 'ASSESSMENT')\" class=\"icons\">&#xe90d;</i>\n                    {{ assessment?.assessment_name }}\n                  </span>\n                </div>\n              </li>\n            </ul>\n          </div>\n        </ng-container>\n      </app-popover>\n    </form-field>\n\n    <!-- Format & Evidence -->\n    <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.FORMATE_EVIDENCE\"\n      [checked]=\"[true, false].includes(controls?.evidence_required?.value)\" [active]=\"false\"\n      [disabled]=\"sideElements.includes(activeList)\" [img]=\"ASSETS.format_evidence\">\n      <label class=\"vx-control-panel\">Evidence\n        <i class=\"icons\" [appTooltip]=\"\n            'If selected, evidence of completion of a responsibility will be required for all responsibilities that are linked with the Program. An Assignor, being the person who creates the responsibility, can override this option when creating a responsibility.'\n          \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\"\n          id=\"EvidenceHelpText\">&#xeb16;</i></label>\n      <div class=\"upload-format\">\n        <span class=\"text\">Do all responsibilities within this program require evidence?</span>\n        <div class=\"radio-group program\">\n          <app-cs-radio [name]=\"'evidence_required'\" [checked]=\"controls?.evidence_required?.value\"\n            (checkedEvent)=\"setFormField('evidence_required', true)\">YES</app-cs-radio>\n          <app-cs-radio [name]=\"'evidence_required'\" [checked]=\"!controls?.evidence_required?.value\"\n            (checkedEvent)=\"setFormField('evidence_required', false)\">NO</app-cs-radio>\n        </div>\n      </div>\n      <!-- <div class=\"vx-d-flex vx-align-center vx-justify-end vx-mt-2\">\n                <div class=\"vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-mr-2\">Allow any file to be marked as\n                    key\n                    evidence</div>\n                <switch formControlName=\"allow_any_file_key_evidence\"\n                    (change)=\"setFormField('allow_any_file_key_evidence',$event?.target?.checked)\"></switch>\n            </div> -->\n    </form-field>\n\n    <!-- Custom Field -->\n    <form-field [appScrollInView]=\"scrollToBottom\" *ngIf=\"additionalOption?.CUSTOM_FIELDS\"\n      [checked]=\"controls?.custom_fields?.value?.length\" [active]=\"false\" [disabled]=\"sideElements.includes(activeList)\"\n      [img]=\"ASSETS.custom_fields\">\n      <label class=\"vx-control-panel\">CUSTOM FIELD\n        <i class=\"icons\" [appTooltip]=\"\n            'When a custom field is specified, all responsibilities linked with a Program will contain that custom field. Custom fields enable the collection of additional meta data.'\n          \" placement=\"bottom\" delay=\"0\" type=\"white\" [tooltipMandatory]=\"true\" id=\"CFHelpText\">&#xeb16;</i></label>\n      <custom-field formControlName=\"custom_fields\"></custom-field>\n    </form-field>\n  </form>\n</div>\n\n\n<!-- render userlist with group -->\n<user-group-list *ngIf=\"activeList === 'OWNER'\" [groupEnabled]=\"true\" [singleSelect]=\"false\"\n  [loading]=\"listLoadingState.USERS\" [userlist]=\"lists?.OWNERS?.data ?? []\"\n  [selectedUsers]=\"controls?.program_owners?.value | refDisconnect\"\n  (fetchUserData)=\"fetchUsersAssociatedWithRoles(false, $event)\" [userListInfo]=\"lists?.OWNERS\"\n  [groupListInfo]=\"lists?.OWNERS_GROUPS\" [groupList]=\"lists?.OWNERS_GROUPS?.data ?? []\"\n  [selectedGroups]=\"controls?.program_owners_group?.value | refDisconnect\" (save)=\"listAction($event, 'OWNER')\"\n  (cancel)=\"fieldDeselector('OWNER')\" [panelTitle]=\"panelTitleOwner\"\n  [featureflag]=\"featureflagGroups\"></user-group-list>\n<user-group-list *ngIf=\"activeList === 'COLLABORATORS'\" [groupEnabled]=\"true\" [singleSelect]=\"false\"\n  [loading]=\"listLoadingState.USERS\" [userlist]=\"lists?.OWNERS?.data ?? []\"\n  [selectedUsers]=\"controls?.collaborators?.value | refDisconnect\" [groupListInfo]=\"lists?.OWNERS_GROUPS\"\n  [groupList]=\"lists?.OWNERS_GROUPS?.data ?? []\" [FromProgram]=\"true\"\n  [selectedGroups]=\"controls?.collaborators_group?.value | refDisconnect\" [assignorId]=\"assignorId\"\n  [userListInfo]=\"lists?.ASSIGNEES\" (save)=\"listAction($event, 'COLLABORATORS')\"\n  (cancel)=\"fieldDeselector('COLLABORATORS')\" [panelTitle]=\"panelTitleAssignee\" [defaultSelectedUsers]=\"\n    controls?.collaborators?.value | refDisconnect\n  \" [userType]=\"'assignees'\" [featureflag]=\"featureflagGroups\">\n</user-group-list>\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\"\n  (action)=\"action($event)\" (closeSmiley)=\" ($event)\">\n</app-smiley-dialog-inline>\n\n<!-- Framework selector  -->\n<app-framework-list *ngIf=\"activeList === 'FRAMEWORK'\" [workflowPage]=\"['FRAMEWORK']\"\n  (assignControl)=\"listAction($event, 'FRAMEWORK')\" (closeFramework)=\"fieldDeselector('FRAMEWORK')\"\n  [previousSelectedValues]=\"{ framework: controls?.framework.value }\" (entrustFramework)=\"entrustFramework($event)\"\n  [headerText]=\"'Select a framework'\"></app-framework-list>","export const RESPONSIBILITY = {\n    // XLSX sheet tab index\n    sheetIndex: {\n        frequencyResponsibility: 1,\n        onGoingResponsibility: 2,\n        data: 3\n    },\n\n    // XLSX Logged in user index\n    userIndex: {\n        currentUser: 18,\n\n    },\n\n    // XLSX Program index\n    programIndex: {\n        regulations: {\n            id: 26,\n            name: 22\n        },\n        standards: {\n            id: 27,\n            name: 23\n        },\n        internalControls: {\n            id: 28,\n            name: 24\n        },\n        others: {\n            id: 29,\n            name: 25\n        }\n    },\n\n    // XLSX RC index\n    rcIndex: {\n        id: 10,\n        name: 9,\n    },\n\n    // XLSX Assignee index\n    assigneeIndex: {\n        id: 20,\n        name: 19,\n        email: 19,\n    },\n\n    // XLSX Reviewer index\n    reviewerIndex: {\n        id: 20,\n        name: 19,\n        email: 19,\n    },\n\n    // XLSX Assignor index\n    assignorIndex: {\n        id: 4,\n        name: 0,\n        email: 1,\n        member_id: 4\n    },\n\n    // XLSX Parent Responsibility index\n    parentResponsibilityIndex: {\n        id: 17,\n        name: 16\n    }\n}","import { Injectable } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport * as XLSX from 'xlsx';\ntype AOA = any[][];\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BulkUploadService {\n\n  constructor() { }\n\n  hasDataInList(data: any, dataStartIndex: number) {\n    const listData = XLSX.utils.sheet_to_json(data, {\n      header: 1, raw: false,\n    }) as AOA;\n    let finalData = listData.slice(0, dataStartIndex);\n    return this.checkEmptyFile(finalData);\n  }\n\n  checkEmptyFile(data: any) {\n    let isEmpty = false;\n    data = data.filter((dataElement: any) => dataElement.length > 0);\n    if (data.length < 1) {\n      isEmpty = true;\n    }\n    return isEmpty;\n  }\n\n  checkCorrectFile(data: any, headerIndex: number): boolean {\n    const listData = XLSX.utils.sheet_to_json(data, {\n      header: 1, raw: false,\n    }) as AOA;\n    const header = cloneDeep(listData[headerIndex]);\n    if(headerIndex === 2) {\n      return header[0] === 'Responsibility Name*' ? true: false;\n    } else if(headerIndex === 0) {\n      return header[0] === 'Enter Responsibility Name*' ? true: false;\n    } \n    return false;\n  }\n}\n","export const RISK_CLASS_LIST = ['high', 'low-medium', 'low', 'medium-high'];\n\nexport const VALIDATION_MESSAGES = {\n  RISK_CLASS:\n    'Invalid risk class. Select a valid option from the drop-down list.',\n  DAY: 'Invalid day selection. Select a valid day from the drop-down list in the template.',\n  DATE_FORMAT:\n    'Invalid date format. Select a valid date from the drop-down list in the template.',\n  DUE_DATE: 'Invalid Due Date.',\n};\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { VALIDATION_MESSAGES } from '../../constants/responsibility';\n@Component({\n  selector: 'app-bulk-responsibility-view',\n  templateUrl: './bulk-responsibility-view.component.html',\n  styleUrls: ['./bulk-responsibility-view.component.less'],\n})\nexport class BulkResponsibilityViewComponent {\n\n  VALIDATION_MESSAGES = VALIDATION_MESSAGES;\n\n  @Input() responsibilityBulkUpload!: any;\n  @Input() fileName!: any;\n  @Input() defaultOwner!: any;\n  @Input() loader = false;\n  @Input() tabType: 'frequency' | 'ongoing' | 'onCompletion' = 'frequency';\n  @Input() bulkUpload: any;\n\n  @Output() submitResponsibilityBulkUpload = new EventEmitter();\n  @Output() cancel = new EventEmitter();\n  @Output() selectedTab = new EventEmitter();\n  @Input() responsibilityType = 'singleTab';\n  finalResponsibilities = 0;\n  isConfirmClickable: boolean = false;\n  responsibilityMultiTabBulkUpload: any = [];\n\n  ngOnChanges() {\n    if (this.responsibilityBulkUpload) {\n      this.finalResponsibilities = 0;\n      this.responsibilityBulkUpload?.reports.forEach((risk: any) => {\n        if (risk.isValid) {\n          this.finalResponsibilities += 1;\n        }\n      });\n    }\n    if (this.responsibilityType === 'multiTab') {\n      this.responsibilityMultiTabBulkUpload =\n        this.bulkUpload?.frequency?.reports?.concat(\n          this.bulkUpload?.ongoing?.reports,\n          this.bulkUpload?.onCompletion?.reports\n        );\n      this.isConfirmClickable = this.responsibilityMultiTabBulkUpload?.some(\n        (responsibility: any) => responsibility.isValid\n      );\n      this.finalResponsibilities = 0;\n      this.responsibilityMultiTabBulkUpload?.forEach((risk: any) => {\n        if (risk.isValid) {\n          this.finalResponsibilities += 1;\n        }\n      });\n    }\n  }\n\n  submit() {\n    this.submitResponsibilityBulkUpload.emit();\n  }\n\n  close() {\n    this.cancel.emit();\n  }\n}\n","<!-- --------------------------------------------------------------------upward is new one-------------------- -->\n<app-loader *ngIf=\"loader\"></app-loader>\n\n\n\n\n\n\n<!-- HTML for multiple tabs -->\n<ng-container *ngIf=\"responsibilityType === 'multiTab'\">\n    <div class=\"bulk-view\">\n        <div class=\"bulk-view-head\">\n            <h2 class=\"bulk-view-title\">\n                {{fileName}}\n            </h2>\n        </div>\n        <div class=\"bulk-view-body bulk\">\n            <div class=\"exel-view\">\n                <div class=\"exel-view-row head\">\n                    <div class=\"exel-view-column sl-no\">#</div>\n                    <div class=\"exel-view-column\">Responsibility Name <span class=\"required\">*</span></div>\n                    <div class=\"exel-view-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\"\n                        [class.three-column]=\"true\">\n                        <div class=\"exel-view-row\">\n                            <div class=\"exel-view-column large\">Program</div>\n                        </div>\n                        <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n                            <div class=\"exel-view-column\">Program Type</div>\n                            <div class=\"exel-view-column\">Program</div>\n                            <div class=\"exel-view-column\">Program Category</div>\n                        </div>\n                    </div>\n                    <div class=\"exel-view-column\">Entrusted By</div>\n                    <div class=\"exel-view-column\" [class.two-column]=\"true\">\n                        <div class=\"exel-view-row\">\n                            <div class=\"exel-view-column large\">Entrust To <span class=\"required\">*</span></div>\n                        </div>\n                        <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n                            <div class=\"exel-view-column\">Person or Group<span class=\"required\">*</span></div>\n                            <div class=\"exel-view-column\">All or Any Persons</div>\n                        </div>\n                    </div>\n                    <div class=\"exel-view-column\">Key Responsibility?</div>\n                    <div class=\"exel-view-column\" *ngIf=\"tabType === 'frequency'\"\n                        [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\"\n                        [class.three-column]=\"tabType === 'ongoing'\">\n                        <div class=\"exel-view-row\">\n                            <!-- <div class=\"exel-view-column large\">Frequency of Occurrence and Completion Window <span class=\"required\">*</span></div> -->\n                            <div class=\"exel-view-column large\">{{responsibilityBulkUpload?.header.includes('Program') ?\n                                responsibilityBulkUpload?.header[8]?.slice(0, -1) :\n                                responsibilityBulkUpload?.header[5]?.slice(0, -1)}}<span class=\"required\">*</span></div>\n                        </div>\n                        <div class=\"exel-view-row multi-column\"\n                            [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\"\n                            [class.three-column]=\"tabType === 'ongoing'\">\n                            <ng-container *ngIf=\"tabType === 'frequency'\">\n                                <div class=\"exel-view-column\">Frequency <span class=\"required\">*</span></div>\n                                <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Day)</span></div>\n                                <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Month)</span></div>\n                                <div class=\"exel-view-column\">Start <span class=\"info-text\">(No. of days before the due\n                                        date)</span></div>\n                                <div class=\"exel-view-column\">Fail <span class=\"info-text\"\n                                        appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\"\n                                        placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of\n                                        days after the due date. Select \"0\" if the responsibility must be completed on\n                                        the due date)</span></div>\n                            </ng-container>\n                        </div>\n                    </div>\n                    <div class=\"exel-view-column two-column\">\n                        <div class=\"exel-view-row\">\n                            <div class=\"exel-view-column large\">Responsibility Centre</div>\n                        </div>\n                        <div class=\"exel-view-row multi-column two-column\">\n                            <div class=\"exel-view-column\">Responsibility Centre Name</div>\n                            <div class=\"exel-view-column\">Responsibility Centre Type</div>\n                        </div>\n                    </div>\n                    <div class=\"exel-view-column\">Risk Class</div>\n                    <div class=\"exel-view-column\">Objective</div>\n                    <div class=\"exel-view-column\">Notes</div>\n                    <div class=\"exel-view-column\" [class.two-column]=\"true\">\n                        <div class=\"exel-view-row\">\n                            <div class=\"exel-view-column large\">Format & Evidence</div>\n                        </div>\n                        <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\" [class.three-column]=\"false\">\n                            <div class=\"exel-view-column\" [class.small-column]=\"true\">Format</div>\n                            <div class=\"exel-view-column\">Format For Responsibility (link)</div>\n                            <div class=\"exel-view-column\" [class.small-column]=\"true\">Evidence</div>\n                        </div>\n                    </div>\n                    <!-- <div class=\"exel-view-column\">Assessments or Checkpoints</div> -->\n                    <div class=\"exel-view-column four-column\">\n                        <div class=\"exel-view-row\">\n                            <div class=\"exel-view-column large\">Review of Responsibility</div>\n                        </div>\n                        <div class=\"exel-view-row multi-column\" [class.four-column]=\"true\">\n                            <div class=\"exel-view-column\">Reviewer</div>\n                            <div class=\"exel-view-column\">Reviewer Type\n                                <span class=\"info-text\">(Specify the type of reviewer flow)</span>\n\n                            </div>\n\n                            <div class=\"exel-view-column\">Review Start <span class=\"info-text\">(No. of days before the\n                                    due date)</span></div>\n                            <div class=\"exel-view-column\">Review Fail <span class=\"info-text\"\n                                    appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be reviewed on the due date)\"\n                                    placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days\n                                    after the due date. Select \"0\" if the responsibility must be reviewed on the due\n                                    date)</span></div>\n                        </div>\n                    </div>\n                    <div class=\"exel-view-column\" [class.two-column]=\"true\">\n                        <div class=\"exel-view-row\">\n                            <div class=\"exel-view-column large\">Overseer</div>\n                        </div>\n                        <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n                            <div class=\"exel-view-column\">Always Notify</div>\n                            <div class=\"exel-view-column\">Notify on Failure</div>\n                        </div>\n                    </div>\n                    <!-- <div class=\"exel-view-column\">Overseer</div> -->\n\n                </div>\n                <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\n                    <div class=\"exel-view-column sl-no\" [class.error]=\"!report?.isValid\">{{i+1}}</div>\n                    <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">\n                        {{report?.responsibilityName}} <i *ngIf=\"!report.responsibilityName\" class=\"icons\"\n                            [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\"\n                            delay=\"0\" [tooltipMandatory]=true>&#xe932;</i></div>\n                    <div class=\"exel-view-column multi-column\"\n                        *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.error]=\"false\"\n                        [class.three-column]=\"true\">\n                        <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\n                            <div class=\"exel-view-column\">{{report?.programType}}</div>\n                            <div class=\"exel-view-column\">{{report?.program}}</div>\n                            <div class=\"exel-view-column\">{{report?.programCategory}}</div>\n                        </div>\n                    </div>\n                    <div class=\"exel-view-column\">{{report?.assignor}}\n                        <!-- <i *ngIf=\"((report?.assignor) && (report?.reviewer === report?.assignor))\"\n                            class=\"icons\"\n                            [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\n                            placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\n                        </i> -->\n                    </div>\n                    <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n                        <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n                            <div class=\"exel-view-column\"\n                                [class.error]=\"!report?.assignee || !report?.userValidateWithProgram?.isValidAssignee || (!report?.isValidUser)\">\n                                {{report?.assignee}}\n                                <!-- || (!report?.isValidUser) -->\n                                <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\" class=\"icons\"\n                                    [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\n                                    placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\n                                </i>\n                                <i *ngIf=\"(report?.assignee) && !report?.userValidateWithProgram?.isValidAssignee\"\n                                    class=\"icons\"\n                                    [appTooltip]=\"'This user is not associated with the selected Program.'\"\n                                    placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\n                                </i>\n                            </div>\n                            <div class=\"exel-view-column\">{{report?.assigneeType}}</div>\n                        </div>\n                    </div>\n                    <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\n                    <div class=\"exel-view-column multi-column five-column\" *ngIf=\"tabType === 'frequency'\">\n\n                        <div class=\"exel-view-row multi-column five-column\">\n                            <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\n                                <i *ngIf=\"!report?.frequency\" class=\"icons\"\n                                    [appTooltip]=\"'Select a frequency for this responsibility.'\"\n                                    placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n                            </div>\n                            <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">\n                                {{report?.day}}\n                                <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n                                    placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n                                <i *ngIf=\"report?.isPastDate\" class=\"icons\"\n                                    [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n                                    placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n                            </div>\n                            <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">\n                                {{report?.month}}\n                                <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\n                                    placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n                                <i *ngIf=\"report?.isPastDate\" class=\"icons\"\n                                    [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\n                                    placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\n                            </div>\n                            <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\n                            <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\n                        </div>\n\n                    </div>\n                    <div class=\"exel-view-column multi-column two-column\">\n                        <div class=\"exel-view-row multi-column two-column\">\n                            <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\n                            <div class=\"exel-view-column\">{{report?.responsibilityCenterType}}</div>\n                        </div>\n                    </div>\n                    <div class=\"exel-view-column\">{{report?.reportClass}}</div>\n                    <div class=\"exel-view-column\">{{report?.objective}}</div>\n                    <div class=\"exel-view-column\">{{report?.notes}}</div>\n                    <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n                        <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n                            <div class=\"exel-view-column multi-column\">\n                                <div class=\"exel-view-row multi-column\">\n                                    <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.isFormat}}</div>\n                                    <a class=\"exel-view-column external-link\" [href]=\"report?.formatForResponsibility\"\n                                        target=\"_blank\">{{report?.formatForResponsibility}}</a>\n                                </div>\n                            </div>\n                            <div class=\"exel-view-column\" [class.small-column]=\"true\">\n                                {{report?.documentEvidenceRequired}}</div>\n                        </div>\n                    </div>\n                    <!-- <div class=\"exel-view-column\">{{report?.assessments}}</div> -->\n                    <div class=\"exel-view-column multi-column\" [class.four-column]=\"true\">\n                        <div class=\"exel-view-row multi-column\" [class.four-column]=\"true\">\n                            <div class=\"exel-view-column\" [class.error]=\"report?.reviewer && (\n                              !report?.userValidateWithProgram?.isValidReviewer )\">{{report?.reviewer}}\n\n                                <!-- <i *ngIf=\"(report?.reviewer && report?.reviewer === report?.assignor)\"\n                            class=\"icons\"\n                            [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\n                            placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\n                        </i> -->\n                                <i *ngIf=\"report?.reviewer && !report?.userValidateWithProgram?.isValidReviewer\"\n                                    class=\"icons\"\n                                    [appTooltip]=\"'This user is not associated with the selected Program.'\"\n                                    placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\n                                </i>\n                            </div>\n                            <div class=\"exel-view-column\">{{report?.reviewerType}}</div>\n                            <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\n                            <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\n                        </div>\n                    </div>\n\n                    <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\n                        <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\n                            <div class=\"exel-view-column\" [class.error]=\"report?.overseer && (\n                              !report?.userValidateWithProgram?.isValidOverseer )\">\n                                {{report?.overseer}}\n\n                                <i *ngIf=\"(report?.overseer) && !report?.userValidateWithProgram?.isValidOverseer\"\n                                    class=\"icons\"\n                                    [appTooltip]=\"'This user is not associated with the selected Program.'\"\n                                    placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\n                                </i>\n                            </div>\n                            <div class=\"exel-view-column\" [class.error]=\"report?.notifyOnFailure && (\n                            !report?.userValidateWithProgram?.isValidNotifyOnFailure )\">\n                                {{report?.notifyOnFailure}}\n\n                                <i *ngIf=\"(report?.notifyOnFailure) && !report?.userValidateWithProgram?.isValidNotifyOnFailure\"\n                                    class=\"icons\"\n                                    [appTooltip]=\"'This user is not associated with the selected Program.'\"\n                                    placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\n                                </i>\n                            </div>\n                        </div>\n                    </div>\n\n                    <!-- <div class=\"exel-view-column\" [class.error]=\"(report?.overseer) && ((report?.overseer === report?.assignee) ||(report?.reviewer === report?.overseer) || (report?.overseer == report?.assignor) || (!report?.userValidateWithProgram?.isValidOverseer))\">\n                        {{report?.overseer}}\n                        <i *ngIf=\"(report?.overseer) && ((report?.reviewer === report?.overseer))\"\n                            class=\"icons\"\n                            [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\n                            placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\n                        </i>\n\n                        <i *ngIf=\"report?.overseer && (report?.overseer === report?.assignee)\" class=\"icons\"\n                            [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\n                            placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\n                        </i>\n                        <i *ngIf=\"((report?.overseer) && (report?.overseer == report?.assignor))\"\n                            class=\"icons\"\n                            [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\n                            placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\n                        </i>\n                        <i *ngIf=\"!report?.userValidateWithProgram?.isValidOverseer\"\n                            class=\"icons\"\n                            [appTooltip]=\"'Selected user is not a valid overseer for selected program.'\"\n                            placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\n                        </i>\n                    </div> -->\n                </div>\n\n\n\n\n\n\n                <!-- ------------------------------------------------old code dynamic------------------------------------------------- -->\n\n                <!-- *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\" -->\n            </div>\n        </div>\n        <div class=\"bulk-view-option\">\n            <button *ngIf=\"bulkUpload?.frequency?.reports?.length\" [class.active]=\"tabType === 'frequency'\"\n                (click)=\"selectedTab.emit('frequency')\">Frequency Responsibilities</button>\n            <button *ngIf=\"bulkUpload?.ongoing?.reports?.length\" [class.active]=\"tabType === 'ongoing'\"\n                (click)=\"selectedTab.emit('ongoing')\">Ongoing Responsibilities</button>\n            <button *ngIf=\"bulkUpload?.onCompletion?.reports?.length\" [class.active]=\"tabType === 'onCompletion'\"\n                (click)=\"selectedTab.emit('onCompletion')\">On Completion Responsibilities</button>\n        </div>\n        <div class=\"bulk-view-footer\">\n            <!-- <div class=\"left\">\n                <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\n                    uploaded.</p>\n            </div> -->\n            <div class=\"left\">\n                <p>{{finalResponsibilities}} out of {{responsibilityMultiTabBulkUpload?.length}}\n                    {{responsibilityMultiTabBulkUpload?.length > 1 ? 'responsibilities' : 'responsibility'}} will be\n                    uploaded.</p>\n            </div>\n            <div class=\"right\">\n                <button (click)=\"close()\" id=\"bulk-resp-cancel\">Cancel</button>\n                <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"!isConfirmClickable\"\n                    class=\"blue\">Confirm</button>\n                <!-- finalResponsibilities < 1 -->\n            </div>\n        </div>\n    </div>\n    <app-loader *ngIf=\"loader\"></app-loader>\n\n</ng-container>\n\n<!-- --------------------------------------------------------------------upward is new one-------------------- -->","import { DatePipe } from '@angular/common';\nimport {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  SimpleChanges,\n  OnChanges,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport moment from 'moment/moment';\nimport * as XLSX from 'xlsx';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\nimport { AddRiskService } from '../workflow-services/add-risk.service';\nimport { AuthService } from '../workflow-services/auth.service';\nimport { FrequencyBulkService } from '../workflow-services/frequency.service';\nimport { ResponsibilityService } from '../workflow-services/responsibility.service';\nimport { IframeService } from '../services/iframe.service';\n\ntype AOA = any[][];\n\n@Component({\n  selector: 'app-add-multiple-responsibility',\n  templateUrl: './add-multiple-responsibility.component.html',\n  styleUrls: ['./add-multiple-responsibility.component.less', '../forms.less'],\n})\nexport class AddMultipleResponsibilityComponent implements OnChanges {\n  @Output() pickerChanged = new EventEmitter();\n  @Output() populateOption = new EventEmitter();\n  @Output() closeWorkflow = new EventEmitter();\n  @Output() disconnectRefresh = new EventEmitter();\n  @Input() featureflag: any;\n  url =\n    'q={\"byResponsibilities\":{\"type\":[\"responsibilities_in_queue\"],\"subType\":[\"CC\"]},\"byStatus\":{\"type\":[\"responsibilities_in_queue\"],\"subType\":[]},\"filterObject\":{\"responsibilityCenter\":[],\"entrustedBy\":[],\"entrustedTo\":[],\"riskIds\":[],\"responsibilityCategory\":[]},\"timePeriodDetails\":{\"type\":\"\",\"selectedPeriod\":\"\",\"selectedYear\":\"\"},\"status\":\"\"}';\n  isNotificationPending = 0;\n  @Output() closeAddMultipleResponsibility = new EventEmitter();\n  queryParam: string = '';\n  recentResponsibilityUrl: any = {\n    byResponsibilities: { type: ['recent_responsibilities'], subType: ['CC'] },\n    byStatus: { type: [], subType: [] },\n    filterObject: {\n      responsibilityCenter: [],\n      entrustedBy: [],\n      entrustedTo: [],\n      riskIds: [],\n      responsibilityCategory: [],\n    },\n    timePeriodDetails: { type: '', selectedPeriod: '', selectedYear: '' },\n    status: '',\n  };\n\n  @Input('uploadedFile') set uploadedFileData(data: any) {\n    this.uploadedFile(data);\n  }\n  @Input() feature!: any;\n\n  responsibilityBulkUpload: any = {\n    header: [],\n    reports: [],\n  };\n\n  templateInfo: any = {\n    categoryList: [],\n    rcList: [],\n    assignorsList: [],\n    assigneesList: [],\n    memberId: '',\n  };\n  isLoader = false;\n  showCategoryList = false;\n  templateDownloaded = false;\n  downloadInProgress = false;\n  loader = false;\n  isFileEmpty = false;\n  isWrongFile = false;\n  isWrongFormat = false;\n  fileName: any;\n  data: any;\n  showExcel = false;\n  uploadedFiles: any = [];\n  fileResponse: any = [];\n  fileValue: any;\n  memberId = 0;\n  organizationId = 0;\n  errorMessage = ' invalid file error';\n  downloadStatus: string = 'NOT_DOWNLOADING';\n  downloadPercent = 0;\n  defaultOwner = '';\n  smileyMessage = `You're All Set! We're processing your request and you will be notified via email upon completion.`;\n  actionButtons = [\n    {\n      buttonText: 'Entrust More Responsibilities',\n      class: 'white-btn',\n      id: 'addMore',\n    },\n    {\n      buttonText: this.isNotificationPending\n        ? 'View Responsibilities In Queue'\n        : 'View Responsibilities',\n      class: 'blue-btn',\n      id: 'view',\n    },\n  ];\n  showSmiley = false;\n  member_obj_id = '';\n  riskClassEnabled: any;\n  userInfo!: any;\n  responsibilityData!: any;\n  ffBulkUploadOptimization: boolean = false;\n\n  constructor(\n    private riskService: AddRiskService,\n    private responsibilityService: ResponsibilityService,\n    private authService: AuthService,\n    private frequencyService: FrequencyBulkService,\n    private snackBar: SnackBarService,\n    private iframeService: IframeService\n  ) {}\n\n  ngOnChanges(changes: SimpleChanges) {}\n  ngOnInit() {\n    this.pickerChanged.emit(false);\n\n    this.organizationId = this.authService.getOrganizationId();\n    this.memberId = this.authService.getMemberId();\n    this.member_obj_id = this.authService.getUserDetails()._id;\n    this.userInfo = this.authService.getUserDetails().user;\n    this.defaultOwner = this.userInfo\n      ? this.userInfo.name + ' (' + this.userInfo.email + ')'\n      : '';\n    this.getUserDetails();\n    this.authService.getOrganizationDetails().subscribe((res: any) => {\n      this.riskClassEnabled = res.enable_riskclass;\n    });\n    this.ffBulkUploadOptimization = this.feature.isFeatureEnabled(\n      'ff_bulk_upload_optimization'\n    );\n  }\n\n  triggerBrowseFile() {\n    const getFile = document.getElementById('fileInput');\n    if (getFile) {\n      getFile.click();\n    }\n  }\n  getUserDetails() {\n    this.authService.getUserInfo().subscribe((res: any) => {\n      this.isNotificationPending = res.notification_pending_flag;\n    });\n  }\n\n  uploadedFile(event: any) {\n    // this.testarray=[];\n    try {\n      this.responsibilityBulkUpload = {\n        header: [],\n        reports: [],\n      };\n\n      this.templateInfo = {\n        categoryList: [],\n        rcList: [],\n        assignorsList: [],\n        assigneesList: [],\n        memberId: '',\n      };\n      this.uploadedFiles = [];\n      const reference = document.querySelector('#scrollReference');\n      if (reference) {\n        reference.scrollIntoView({ behavior: 'smooth', block: 'center' });\n      }\n      this.isFileEmpty = false;\n      this.isWrongFile = false;\n      this.isWrongFormat = false;\n      this.fileName = event.target.files[0].name;\n      this.uploadedFiles.push(event.target.files);\n      const target: DataTransfer = event.target as DataTransfer;\n      // tslint:disable-next-line: curly\n      if (target.files.length !== 1)\n        throw new Error('Cannot use multiple files');\n      const reader: FileReader = new FileReader();\n      reader.onload = (e: any) => {\n        const bstr: string = e.target.result;\n        const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\n        const wsname: string = wb.SheetNames[0];\n        const wsname1: string = wb.SheetNames[1];\n        const ws: XLSX.WorkSheet = wb.Sheets[wsname];\n        const tempData: XLSX.WorkSheet = wb.Sheets[wsname1];\n\n        this.data = XLSX.utils.sheet_to_json(ws, {\n          header: 1,\n          raw: false,\n        }) as AOA;\n\n        const tData = XLSX.utils.sheet_to_json(tempData, { header: 1 }) as AOA;\n        const tempList = tData.filter(\n          (dataElement: any) => dataElement.length > 0\n        );\n        if (this.fileName.substr(-5) !== '.xlsx') {\n          this.errorMessage =\n            'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' +\n            ' RETRY';\n          this.isWrongFile = true;\n          return;\n        }\n\n        this.responsibilityBulkUpload.header = cloneDeep(\n          this.data[0].filter((dataElement: any) => dataElement.length > 0)\n        );\n        this.responsibilityBulkUpload.header.splice(\n          this.responsibilityBulkUpload.header.length - 1,\n          1\n        );\n\n        this.data = this.data.slice(2);\n        if (\n          this.responsibilityBulkUpload.header[0] !==\n          'Enter Responsibility Name*'\n        ) {\n          this.errorMessage =\n            'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' +\n            ' RETRY';\n          this.isWrongFile = false;\n          this.isWrongFormat = true;\n\n          return;\n        }\n        this.templateInfo.memberId = tempList[0][25];\n\n        if (this.member_obj_id != this.templateInfo.memberId) {\n          this.errorMessage =\n            'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' +\n            ' RETRY';\n          this.isWrongFile = true;\n          return;\n        }\n        tempList.forEach((element) => {\n          if (element[2] && element[2] != ' ') {\n            const category = {\n              name: element[2],\n              category_id: element[3],\n            };\n            this.templateInfo.categoryList.push(category);\n          }\n          if (element[9] && element[9] != ' ') {\n            const rc = {\n              name: element[9],\n              rc_id: element[10],\n              parentIds: JSON.parse(element[13]),\n            };\n            this.templateInfo.rcList.push(rc);\n          }\n          if (element[11] && element[11] != ' ') {\n            const assignee = {\n              nameAndEmail: element[11],\n              name: element[11].split(' (')[0],\n              email: element[11].split(' (')[1].replace(')', ''),\n              employee_id: element[12],\n              my_member_id: element[16],\n            };\n            this.templateInfo.assigneesList.push(assignee);\n          }\n          if (element[14] && element[14] != ' ') {\n            const assignor = {\n              nameAndEmail: element[14],\n              name: element[14].split(' (')[0],\n              email: element[14].split(' (')[1].replace(')', ''),\n              member_id: element[15],\n            };\n            this.templateInfo.assignorsList.push(assignor);\n          }\n        });\n        const isEmpty = this.checkEmptyFile();\n        if (isEmpty) {\n          this.errorMessage =\n            'You have uploaded a blank template. Please add details for all mandatory fields. RETRY';\n          this.isFileEmpty = true;\n          this.isWrongFile = false;\n          this.isWrongFormat = false;\n          return;\n        } else {\n          this.isFileEmpty = false;\n          this.isWrongFile = false;\n          this.isWrongFormat = false;\n          this.fileUpload();\n        }\n        const responsibilityData = this.data.filter(\n          (dataElement: any) => dataElement.length > 0\n        );\n        responsibilityData.forEach((report: any) => {\n          let validDate;\n          const validFields = this.checkValidity(report);\n          const validUser = this.returnIds(report[2], 'entrusted_to')\n            ? true\n            : false;\n          let obj: any;\n          if (this.responsibilityBulkUpload.header[3] !== 'Select a Program') {\n            validDate = this.compareWithCurrentDate(report[4], report[5]);\n            obj = {\n              responsibilityName: report[0] ?? '',\n              assignor: report[1] ?? '',\n              assignee: report[2] ?? '',\n              responsibilityCategory: null,\n              frequency: report[3] ?? '',\n              day: report[4] ?? '',\n              month: report[5] ?? '',\n              responsibilityWindow: report[6] ?? '',\n              failedAfter: report[7] ?? '',\n              reportClass: report[8] ?? '',\n              responsibilityCenter: report[9] ?? '',\n              reviewer: report[10] ?? '',\n              reviewToBeCompletedWithin: report[11] ?? '',\n              reviewWillBeFailedAfter: report[12] ?? '',\n              formatForResponsibility: report[13] ?? '',\n              notes: report[14]?.toString() ?? '',\n              documentEvidenceRequired: report[15] ?? '',\n              alwaysNotify: report[16] ?? '',\n              notifyOnFailure: report[17] ?? '',\n              keyResponsibility: report[18] ?? '',\n              objective: report[19]?.toString() ?? '',\n\n              isValidDueDate: validDate,\n              isPastDate: this.isPastDate(report[4], report[5]),\n              checkValidity: validFields,\n              isValid: validDate && validFields,\n              isValidUser: true,\n            };\n          } else {\n            validDate = this.compareWithCurrentDate(report[5], report[6]);\n            obj = {\n              responsibilityName: report[0] ?? '',\n              assignor: report[1] ?? '',\n              assignee: report[2] ?? '',\n              responsibilityCategory: report[3] ?? '',\n              frequency: report[4] ?? '',\n              day: report[5] ?? '',\n              month: report[6] ?? '',\n              responsibilityWindow: report[7] ?? '',\n              failedAfter: report[8] ?? '',\n              reportClass: report[9] ?? '',\n              responsibilityCenter: report[10] ?? '',\n              reviewer: report[11] ?? '',\n              reviewToBeCompletedWithin: report[12] ?? '',\n              reviewWillBeFailedAfter: report[13] ?? '',\n              formatForResponsibility: report[14] ?? '',\n              notes: report[15]?.toString() ?? '',\n              documentEvidenceRequired: report[16] ?? '',\n              alwaysNotify: report[17] ?? '',\n              notifyOnFailure: report[18] ?? '',\n              keyResponsibility: report[19] ?? '',\n              objective: report[20]?.toString() ?? '',\n\n              isValidDueDate: validDate,\n              isPastDate: this.isPastDate(report[5], report[6]),\n              checkValidity: validFields,\n              isValid: validDate && validFields,\n              isValidUser: true,\n            };\n          }\n          this.responsibilityBulkUpload.reports.push(obj);\n        });\n        this.isFileEmpty = false;\n        this.isWrongFile = false;\n        this.isWrongFormat = false;\n        this.showExcel = true;\n        this.fileValue = '';\n      };\n      reader.readAsBinaryString(target.files[0]);\n    } catch (e) {\n      // tslint:disable-next-line: no-console\n      console.error(e);\n    }\n  }\n  checkEmptyFile() {\n    let isEmpty = false;\n    this.data = this.data.filter((dataElement: any) => dataElement.length > 0);\n    if (this.data.length < 1) {\n      isEmpty = true;\n    }\n    return isEmpty;\n  }\n\n  // testarray:any[]=[]\n\n  checkValidity(report: any) {\n    const re = /&nbsp;|<br>/g;\n    if (report[0]) {\n      var trimmedName = report[0].toString().replace(re, '').trim();\n      trimmedName = trimmedName.replace(/  +/g, ' ');\n    }\n\n    /**\n     *  index           key for               condition\n     *\n     *  report[1]       On Behalf of user\n     *  report[11]      Reviewer              when responsibilityBulkUpload.header[3] is 'Select a Program'\n     *  report[10]      Reviewer              when responsibilityBulkUpload.header[3] is not 'Select a Program'(disabled for users without program permission)\n     *  report[17]      Always Notify         when responsibilityBulkUpload.header[3] is 'Select a Program'\n     *  report[16]      Always Notify         when responsibilityBulkUpload.header[3] is not 'Select a Program'(disabled for users without program permission)\n     *  report[18]      Notify On Failure     when responsibilityBulkUpload.header[3] is 'Select a Program'\n     *  report[17]      Notify On Failure     when responsibilityBulkUpload.header[3] is not 'Select a Program'(disabled for users without program permission)\n     *  report[17]      Always Notify\n     *  report[18]      Notify On Failure\n     *  report[2]       Assignee\n     *  report[4]       frequency             when responsibilityBulkUpload.header[3] is 'Select a Program'\n     *  report[3]       frequency             when responsibilityBulkUpload.header[3] is not 'Select a Program'(disabled for users without program permission)\n     *  trimmedName     Report name\n     *  defaultOwner    Default Assignor\n     */\n    const frequency =\n      this.responsibilityBulkUpload.header[3].toLowerCase() ==\n      'select a program'\n        ? report[4]\n        : report[3];\n    const reviewer =\n      this.responsibilityBulkUpload.header[3].toLowerCase() ==\n      'select a program'\n        ? report[11]\n        : report[10];\n    const NotifyAlways =\n      this.responsibilityBulkUpload.header[3].toLowerCase() ==\n      'select a program'\n        ? report[17]\n        : report[16];\n    const NotifyOnFailure =\n      this.responsibilityBulkUpload.header[3].toLowerCase() ==\n      'select a program'\n        ? report[18]\n        : report[17];\n\n    if (\n      !frequency ||\n      !trimmedName ||\n      (report[1] &&\n        (report[1] == NotifyAlways || report[1] == NotifyOnFailure)) ||\n      (!report[1] &&\n        (this.defaultOwner == NotifyAlways ||\n          this.defaultOwner == NotifyOnFailure)) ||\n      (report[2] &&\n        (report[2] == reviewer ||\n          report[2] == NotifyAlways ||\n          report[2] == NotifyOnFailure)) ||\n      (!report[2] &&\n        (this.defaultOwner == NotifyAlways ||\n          this.defaultOwner == NotifyOnFailure)) ||\n      (reviewer && (reviewer == NotifyAlways || reviewer == NotifyOnFailure)) ||\n      !report[2]\n    ) {\n      return false;\n    } else {\n      return true;\n    }\n  }\n  compareWithCurrentDate(day: any, month: any) {\n    const currentDate = new Date();\n    const monthNames = [\n      { value: 1, month: 'Jan' },\n      { value: 2, month: 'Feb' },\n      { value: 3, month: 'Mar' },\n      { value: 4, month: 'Apr' },\n      { value: 5, month: 'May' },\n      { value: 6, month: 'Jun' },\n      { value: 7, month: 'Jul' },\n      { value: 8, month: 'Aug' },\n      { value: 9, month: 'Sep' },\n      { value: 10, month: 'Oct' },\n      { value: 11, month: 'Nov' },\n      { value: 12, month: 'Dec' },\n    ];\n\n    if (!(day || month)) {\n      return true;\n    } else if (!(day && month)) {\n      return false;\n    } else {\n      const monthAndYear = month.split(\"'\");\n\n      const startDate = moment(\n        day + '-' + monthAndYear[0] + '-' + 20 + monthAndYear[1] + ' 00:00:00',\n        'DD-MMMM-YYYY HH:mm:ss'\n      ).format('YYYY-MM-DD HH:mm:ss');\n      if (startDate == 'Invalid date') {\n        return false;\n      }\n\n      setTimeout(() => {}, 5);\n      const date_value = new Date();\n\n      date_value.setMonth(\n        typeof month !== 'number'\n          ? monthNames.filter((x) => x.month === month?.substring(0, 3))[0]\n              ?.value - 1\n          : month\n      );\n      date_value.setFullYear(Number(20 + month.split(\"'\")[1]));\n      date_value.setDate(Number(day));\n      if (\n        currentDate.toJSON().split('T')[0] !=\n          date_value.toJSON().split('T')[0] &&\n        currentDate > date_value\n      ) {\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }\n  isPastDate(day: any, month: any) {\n    const currentDate = new Date();\n\n    const monthNames = [\n      { value: 1, month: 'Jan' },\n      { value: 2, month: 'Feb' },\n      { value: 3, month: 'Mar' },\n      { value: 4, month: 'Apr' },\n      { value: 5, month: 'May' },\n      { value: 6, month: 'Jun' },\n      { value: 7, month: 'Jul' },\n      { value: 8, month: 'Aug' },\n      { value: 9, month: 'Sep' },\n      { value: 10, month: 'Oct' },\n      { value: 11, month: 'Nov' },\n      { value: 12, month: 'Dec' },\n    ];\n\n    if (!(day || month)) {\n      return false;\n    } else if (!(day && month)) {\n      return false;\n    } else {\n      // const reportDate = new Date(day + month.split(\"'\"));\n      const date_value = new Date();\n      date_value.setMonth(\n        typeof month !== 'number'\n          ? monthNames.filter((x) => x.month === month?.substring(0, 3))[0]\n              ?.value - 1\n          : month\n      );\n      date_value.setFullYear(Number(20 + month.split(\"'\")[1]));\n      date_value.setDate(Number(day));\n      if (currentDate > date_value) {\n        return true;\n      } else {\n        return false;\n      }\n    }\n  }\n\n  downloadTemplate() {\n    this.downloadStatus = 'DOWNLOADING';\n    this.downloadPercent = 0;\n    const downloadDate = new Date().toDateString().split(' ');\n    const fileName = `Entrust Responsibilities-${downloadDate[2]}-${downloadDate[1]}-${downloadDate[3]}.xlsx`;\n\n    this.riskService.downloadResponsibilityTemplate().subscribe(\n      (data: any) => {\n        if (data.loaded) {\n          this.downloadPercent = 100 * (data.loaded / data.total);\n        }\n        if (data.body) {\n          setTimeout(() => {\n            this.downloadStatus = this.riskService.downLoadFile(\n              data.body,\n              'application/xlsx',\n              fileName\n            );\n          }, 1500);\n        }\n      },\n      (error) => {\n        console.error(error);\n        this.downloadStatus = 'DOWNLOADED';\n      }\n    );\n  }\n\n  submitResponsibilityBulkUpload() {\n    this.loader = true;\n    let payload: any = [];\n    let validResponsibilities = 0;\n    this.responsibilityBulkUpload?.reports.forEach((report: any) => {\n      if (report?.isValid) {\n        validResponsibilities += 1;\n      }\n    });\n    payload = {\n      originalFilename: this.fileResponse[0]?.original_filename,\n      fileName: this.fileResponse[0]?.filename,\n      filePath: this.fileResponse[0]?.filepath,\n      totalResponsibilityCount:\n        this.responsibilityBulkUpload?.reports?.length,\n      validResponsibilityCount: validResponsibilities,\n    };\n    this.responsibilityService.addBulkResponsibility(payload).subscribe(\n      (res: any) => {\n        this.loader = false;\n        this.showExcel = false;\n        this.showSmiley = true;\n        this.submitWorkflow();\n        this.responsibilityData = res;\n      },\n      (err) => {\n        console.error(err);\n        this.loader = false;\n        this.showExcel = false;\n        this.snackBar.show(\n          'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n          'alert'\n        );\n      }\n    );\n  }\n\n  submitWorkflow() {\n    const message = { type: 'submit' };\n    const targetOrigin = this.getOrigin();\n    window.parent.postMessage(message, targetOrigin);\n  }\n\n  private getOrigin(): string {\n    return window.location.origin;\n  }\n\n  returnIds(item: any, key: string) {\n    switch (key) {\n      case 'rc_id':\n        let rcObj = { name: '', rcId: 0, parentIds: [] };\n        this.templateInfo.rcList.forEach((rc_element: any) => {\n          if (rc_element.name == item) {\n            let name;\n            if (rc_element.name.includes('[WITHIN]')) {\n              name = rc_element.name.split(' [WITHIN] ')[0];\n            } else {\n              name = rc_element.name;\n            }\n            rcObj = {\n              name,\n              rcId: rc_element.rc_id,\n              parentIds: rc_element.parentIds,\n            };\n          }\n        });\n        return rcObj;\n        break;\n      case 'reviewer':\n        let reviewerObj = { name: '', employeeId: 0, email: '' };\n        this.templateInfo.assigneesList.forEach((reviewerElement: any) => {\n          if (reviewerElement.nameAndEmail == item) {\n            reviewerObj = {\n              name: reviewerElement.name,\n              employeeId: reviewerElement.my_member_id,\n              email: reviewerElement.email,\n            };\n          }\n        });\n        return reviewerObj;\n\n        break;\n      case 'assignor':\n        let assignorObj = { name: '', memberId: 0, email: '' };\n        this.templateInfo.assignorsList.forEach((assignorElement: any) => {\n          if (assignorElement.nameAndEmail == item) {\n            assignorObj = {\n              name: assignorElement.name,\n              email: assignorElement.email,\n              memberId: assignorElement.member_id,\n            };\n          }\n        });\n        return assignorObj;\n\n        break;\n      case 'cc':\n        let ccObj = { name: '', employeeId: 0, email: '' };\n        this.templateInfo.assigneesList.forEach((ccElement: any) => {\n          if (ccElement.nameAndEmail == item) {\n            ccObj = {\n              name: ccElement.name,\n              employeeId: ccElement.employee_id,\n              email: ccElement.email,\n            };\n          }\n        });\n        return ccObj;\n        break;\n      case 'ccFailure':\n        let ccfObj = { name: '', employeeId: 0, email: '' };\n        this.templateInfo.assigneesList.forEach((ccfElement: any) => {\n          if (ccfElement.nameAndEmail == item) {\n            ccfObj = {\n              name: ccfElement.name,\n              employeeId: ccfElement.employee_id,\n              email: ccfElement.email,\n            };\n          }\n        });\n        return ccfObj;\n        break;\n\n      case 'entrusted_to':\n        let empId = 0;\n        this.templateInfo.assigneesList.forEach((enElement: any) => {\n          if (enElement.nameAndEmail == item) {\n            empId = enElement.employee_id;\n          }\n        });\n        return empId;\n        break;\n      case 'category_id':\n        let catId = 0;\n        this.templateInfo.categoryList.forEach((category: any) => {\n          if (category.name == item) {\n            catId = category.category_id;\n          }\n        });\n        return catId;\n        break;\n\n      case 'risk_class':\n        if (item == 'Low') {\n          return 1;\n        } else if (item == 'Low-Medium') {\n          return 2;\n        } else if (item == 'Medium-High') {\n          return 3;\n        } else if (item == 'High') {\n          return 4;\n        } else {\n          return 0;\n        }\n        break;\n    }\n  }\n\n  reset() {\n    this.responsibilityBulkUpload = {\n      header: [],\n      reports: [],\n    };\n\n    this.templateInfo = {\n      categoryList: [],\n      rcList: [],\n      assignorsList: [],\n      assigneesList: [],\n      memberId: '',\n    };\n\n    this.isFileEmpty = false;\n    this.isWrongFile = false;\n    this.isWrongFormat = false;\n    this.fileName = undefined;\n    this.data = undefined;\n    this.showExcel = false;\n    this.showSmiley = false;\n    this.closeAddMultipleResponsibility.emit();\n  }\n  action(event: string) {\n    switch (event) {\n      case 'addMore':\n        this.reset();\n        break;\n      case 'view':\n        this.viewResponsibilities();\n        break;\n    }\n  }\n\n  closeSmiley(event: any) {\n    this.showSmiley = false;\n    this.closeWorkflow.emit({ evt: this.responsibilityData, confirm: false });\n  }\n\n  viewResponsibilities(): void {\n    let url: string;\n    let urlSubstring = '';\n    this.disconnectRefresh.emit(false);\n    if (this.isNotificationPending) {\n      if (this.featureflag) {\n        urlSubstring = 'compliance/manage-responsibility?' + this.url;\n      } else {\n        urlSubstring =\n          'compliance/manage-responsibilities/responsibilities-queue';\n      }\n    } else {\n      if (this.featureflag) {\n        this.queryParam = JSON?.stringify(this.recentResponsibilityUrl);\n        urlSubstring = 'compliance/manage-responsibility?q=' + this.queryParam;\n      } else {\n        urlSubstring = 'compliance/manage-responsibilities';\n      }\n    }\n    if (window.location.host.startsWith('localhost')) {\n      url = 'http://' + window.location.host + '/compliance/#/' + urlSubstring;\n    } else {\n      url = 'https://' + window.location.host + '/compliance/#/' + urlSubstring;\n    }\n\n    urlSubstring = '/compliance/responsibilities/';\n    this.iframeService.redirectIfInIframe(url, false);\n  }\n\n  // Upload File to the server\n  fileUpload() {\n    this.fileResponse = [];\n    this.loader = true;\n    const formData = new FormData();\n    const file = this.uploadedFiles[0][0];\n    formData.append('sourcefile', file);\n    formData.append('destination', 'bulkupload/entrust/' + this.userInfo.email);\n    this.responsibilityService.fileUpload(formData).subscribe(\n      (res: any) => {\n        if (res?.filename) {\n          this.fileResponse.push(res);\n        }\n        this.loader = false;\n      },\n      (err) => {\n        console.error(err);\n        this.loader = false;\n        this.snackBar.show(\n          'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n          'alert'\n        );\n      }\n    );\n  }\n}\n","<!-- <div class=\"add-multiple-risk\" [attr.id]=\"'scrollReference'\" >\n    <!- - main container starts here - ->\n    <div class=\"add-multiple-risk-body\">\n        <div class=\"add-multiple-risk-container\">\n            <div class=\"image\">\n                <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/spreadsheet-multiple-category.svg\" alt=\"\" />\n            </div>\n            <h4>You can entrust multiple responsibilities in just two easy steps:</h4>\n            <ul class=\"list\">\n                <li>Download the template and fill in the details.</li>\n                <li>Upload the .xlsx file and you’re good to go!</li>\n            </ul>\n\n            <button class=\"download\" *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\"\n            (click)=\"downloadTemplate()\" type=\"button\"><i class=\"icons\">&#xe91b;</i> Download Template</button>\n            <div class=\"bulk-btn-progress\" *ngIf=\"downloadStatus === 'DOWNLOADING'\">\n                Download in Progress\n                <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\n            </div>\n            <ng-container *ngIf=\"downloadStatus === 'DOWNLOADED'\">\n                <div class=\"bulk-btn-progress\"><i class=\"icons\">&#xe91c;</i>Download Complete</div>\n                <div class=\"bulk-btn-again\">\n                    Is the file not downloaded?\n                    <button (click)=\"downloadTemplate()\">Retry Download</button>\n                </div>\n            </ng-container>\n            <p class=\"error-message\" *ngIf=\"isWrongFile || isWrongFormat|| isFileEmpty\"\n            >{{errorMessage}}</p>  \n        </div>\n    </div>\n</div> -->\n<app-bulk-responsibility-view *ngIf=\"showExcel\"\n[responsibilityBulkUpload]=\"responsibilityBulkUpload\"\n[fileName]=\"fileName\"\n[loader]=\"loader\"\n[defaultOwner]=\"defaultOwner\"\n(submitResponsibilityBulkUpload)=\"submitResponsibilityBulkUpload()\"\n(cancel)=\"reset()\"\n[responsibilityType]=\"'singleTab'\"></app-bulk-responsibility-view>\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n<input type=\"file\" [(ngModel)]=\"fileValue\" id=\"fileInput\" class=\"hidden-input\" accept=\".xlsx\" (change)=\"uploadedFile($event)\" multiple />\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\" (action)=\"action($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\n","export const REGEX = {\n    MONTH: /^[A-Za-z]+'\\d{2}$/,\n}","import { DatePipe } from '@angular/common';\nimport {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  SimpleChanges,\n  OnChanges,\n  OnInit,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport moment from 'moment/moment';\nimport * as XLSX from 'xlsx';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\nimport { AddRiskService } from '../workflow-services/add-risk.service';\nimport { AuthService } from '../workflow-services/auth.service';\nimport { FrequencyBulkService } from '../workflow-services/frequency.service';\nimport { ResponsibilityService } from '../workflow-services/responsibility.service';\nimport { IframeService } from '../services/iframe.service';\nimport { RESPONSIBILITY } from '../constants/xlsx.constant';\nimport { RISK_CLASS_LIST } from '../constants/responsibility';\nimport { REGEX } from '../constants/regix.constants';\n\ntype AOA = any[][];\n\n@Component({\n  selector: 'lib-add-multiple-responsibility-with-tab',\n  templateUrl: './add-multiple-responsibility-with-tab.component.html',\n  styleUrls: [\n    './add-multiple-responsibility-with-tab.component.less',\n    '../forms.less',\n  ],\n})\nexport class AddMultipleResponsibilityWithTabComponent implements OnInit {\n  @Output() pickerChanged = new EventEmitter();\n  @Output() populateOption = new EventEmitter();\n  @Output() closeWorkflow = new EventEmitter();\n  @Output() disconnectRefresh = new EventEmitter();\n  isNotificationPending = 0;\n  @Output() closeAddMultipleResponsibility = new EventEmitter();\n  queryParam: string = '';\n  recentResponsibilityUrl: any = {\n    byResponsibilities: { type: ['recent_responsibilities'], subType: ['CC'] },\n    byStatus: { type: [], subType: [] },\n    filterObject: {\n      responsibilityCenter: [],\n      entrustedBy: [],\n      entrustedTo: [],\n      riskIds: [],\n      responsibilityCategory: [],\n    },\n    timePeriodDetails: { type: '', selectedPeriod: '', selectedYear: '' },\n    status: '',\n  };\n\n  @Input('uploadedFile') set uploadedFileData(data: any) {\n    this.uploadedFile(data);\n  }\n  @Input() orgDetails!: any;\n  @Input() feature!: any;\n\n  url =\n    'q={\"byResponsibilities\":{\"type\":[\"responsibilities_in_queue\"],\"subType\":[\"CC\"]},\"byStatus\":{\"type\":[\"responsibilities_in_queue\"],\"subType\":[]},\"filterObject\":{\"responsibilityCenter\":[],\"entrustedBy\":[],\"entrustedTo\":[],\"riskIds\":[],\"responsibilityCategory\":[]},\"timePeriodDetails\":{\"type\":\"\",\"selectedPeriod\":\"\",\"selectedYear\":\"\"},\"status\":\"\"}';\n  responsibilityBulkUpload: any = {\n    header: [],\n    reports: [],\n  };\n  tabType: 'frequency' | 'ongoing' | 'onCompletion' = 'frequency';\n  tabIndex: any = {\n    frequency: 0,\n    ongoing: 1,\n    onCompletion: 2,\n  };\n\n  bulkUpload: any = {\n    frequency: {\n      header: [],\n      subHeading: [],\n      reports: [],\n    },\n    ongoing: {\n      header: [],\n      subHeading: [],\n      reports: [],\n    },\n    onCompletion: {\n      header: [],\n      subHeading: [],\n      reports: [],\n    },\n  };\n\n  templateInfo: any = {\n    categoryList: [],\n    rcList: [],\n    assignorsList: [],\n    assigneesList: [],\n    reviewerList: [],\n    parentResponsibility: [],\n    memberId: '',\n  };\n  isLoader = false;\n  showCategoryList = false;\n  templateDownloaded = false;\n  downloadInProgress = false;\n  loader = false;\n  isFileEmpty = false;\n  isWrongFile = false;\n  isWrongFormat = false;\n  fileName: any;\n  data: any;\n  showExcel = false;\n  uploadedFiles: any = [];\n  fileResponse: any = [];\n  fileValue: any;\n  memberId = 0;\n  organizationId = 0;\n  errorMessage = ' invalid file error';\n  downloadStatus: string = 'NOT_DOWNLOADING';\n  downloadPercent = 0;\n  defaultOwner = '';\n  smileyMessage = `You're All Set! We're processing your request and you will be notified via email upon completion.`;\n  actionButtons = [\n    {\n      buttonText: 'Entrust More Responsibilities',\n      class: 'white-btn',\n      id: 'addMore',\n    },\n    {\n      buttonText: this.isNotificationPending\n        ? 'View Responsibilities In Queue'\n        : 'View Responsibilities',\n      class: 'blue-btn',\n      id: 'view',\n    },\n  ];\n  showSmiley = false;\n  member_obj_id = '';\n  riskClassEnabled: any;\n  userInfo!: any;\n  responsibilityData!: any;\n  @Input() featureflag: any;\n  ffBulkUploadOptimization: boolean = false;\n  RESPONSIBILITY = RESPONSIBILITY;\n\n  isDayInvalid = false;\n  isDateFormatInvalid = false;\n  constructor(\n    private riskService: AddRiskService,\n    private responsibilityService: ResponsibilityService,\n    private authService: AuthService,\n    private frequencyService: FrequencyBulkService,\n    private snackBar: SnackBarService,\n    private iframeService: IframeService\n  ) {}\n\n  ngOnChanges(changes: SimpleChanges) {}\n  ngOnInit() {\n    this.pickerChanged.emit(false);\n    this.organizationId = this.authService.getOrganizationId();\n    this.member_obj_id = this.authService.getUserDetails().user.uid;\n    this.userInfo = this.authService.getUserDetails().user;\n    this.defaultOwner = this.userInfo\n      ? this.userInfo.name + ' (' + this.userInfo.email + ')'\n      : '';\n    this.getUserDetails();\n    this.authService.getOrganizationDetails().subscribe((res: any) => {\n      this.riskClassEnabled = res.enable_riskclass;\n    });\n    this.ffBulkUploadOptimization = this.feature.isFeatureEnabled(\n      'ff_bulk_upload_optimization'\n    );\n  }\n\n  triggerBrowseFile() {\n    const getFile = document.getElementById('fileInput');\n    if (getFile) {\n      getFile.click();\n    }\n  }\n  getUserDetails() {\n    this.authService.getUserInfo().subscribe((res: any) => {\n      this.isNotificationPending = res.notification_pending_flag;\n    });\n  }\n\n  uploadedFile(event: any, tabType?: any) {\n    try {\n      this.responsibilityBulkUpload = {\n        header: [],\n        reports: [],\n      };\n\n      this.templateInfo = {\n        categoryList: [],\n        rcList: [],\n        assignorsList: [],\n        assigneesList: [],\n        reviewerList: [],\n        parentResponsibility: [],\n        memberId: '',\n      };\n      this.uploadedFiles = [];\n      const reference = document.querySelector('#scrollReference');\n      if (reference) {\n        reference.scrollIntoView({ behavior: 'smooth', block: 'center' });\n      }\n      this.isFileEmpty = false;\n      this.isWrongFile = false;\n      this.isWrongFormat = false;\n      this.fileName = event.target.files[0].name;\n      this.uploadedFiles.push(event.target.files);\n      const target: DataTransfer = event.target as DataTransfer;\n      // tslint:disable-next-line: curly\n      if (target.files.length !== 1)\n        throw new Error('Cannot use multiple files');\n      const reader: FileReader = new FileReader();\n      reader.onload = (e: any) => {\n        const bstr: string = e.target.result;\n        const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\n        const wsname: string = wb.SheetNames[RESPONSIBILITY.sheetIndex.frequencyResponsibility];\n        const sheet2: string = wb.SheetNames[RESPONSIBILITY.sheetIndex.onGoingResponsibility];\n        const wsname1: string = wb.SheetNames[RESPONSIBILITY.sheetIndex.data];\n        const ws: XLSX.WorkSheet = wb.Sheets[wsname];\n        const sheetReport2: XLSX.WorkSheet = wb.Sheets[sheet2];\n        const tempData: XLSX.WorkSheet = wb.Sheets[wsname1];\n        const tData = XLSX.utils.sheet_to_json(tempData, { header: 1 }) as AOA;\n        const tempList = tData.filter(\n          (dataElement: any) => dataElement.length > 0\n        );\n        this.setOrganizationDetails(tempList);\n        wb.SheetNames.forEach((sheet: any) => {\n          switch (sheet?.toLowerCase()) {\n            case 'frequency responsibilities':\n              this.setDataForDifferentTabs(ws, sheet);\n              break;\n            case 'ongoing responsibilities':\n              this.setDataForDifferentTabs(sheetReport2, sheet);\n              break;\n            default:\n              break;\n          }\n        });\n      };\n      reader.readAsBinaryString(target.files[0]);\n    } catch (e) {\n      console.error(e);\n    }\n  }\n\n  /**\n   * It takes a worksheet and a sheet name, and then it sets the data for different tabs.\n   * @param ws - XLSX.WorkSheet, sheet: string\n   * @param {string} sheet - string - the name of the sheet in the excel file\n   * @returns the value of the variable \"responsibilityBulkUpload\" which is an object.\n   */\n  setDataForDifferentTabs(ws: XLSX.WorkSheet, sheet: string) {\n    let responsibilityBulkUpload: any = {\n      header: [],\n      reports: [],\n      subHeading: [],\n    };\n    let sheetValue = XLSX.utils.sheet_to_json(ws, {\n      header: 1,\n      raw: false,\n    }) as AOA;\n    let data = sheetValue.filter((res: any) => {\n      let isUndefined = '';\n      res.forEach((el: any) => {\n        isUndefined = isUndefined + el;\n      });\n      if (sheetValue[2] && sheetValue[2][1] === 'Program') {\n        return !(res?.length === 9 && res[8] === '' && !isUndefined.length);\n      } else {\n        return !(res?.length === 6 && res[5] === '' && !isUndefined.length);\n      }\n    });\n\n    if (this.fileName.substr(-5) !== '.xlsx') {\n      this.errorMessage =\n        'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' +\n        ' RETRY';\n      this.isWrongFile = true;\n      return;\n    }\n\n    responsibilityBulkUpload.header = cloneDeep(data[2]);\n    responsibilityBulkUpload.subHeading = cloneDeep(data[3]);\n    data = data.slice(5);\n    if (this.member_obj_id != this.templateInfo.memberId) {\n      this.errorMessage =\n        'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' +\n        ' RETRY';\n      this.isWrongFile = true;\n      return;\n    }\n\n    const responsibilityData = data.filter(\n      (dataElement: any) => dataElement.length > 0\n    );\n    responsibilityData.forEach((report: any) => {\n      let validDate;\n      const validUser = this.returnIds(report[2], 'entrusted_to')\n        ? true\n        : false;\n      if (responsibilityBulkUpload.header[1] === 'Program') {\n        validDate = this.compareWithCurrentDate(report[4], report[5]);\n      } else {\n        validDate = this.compareWithCurrentDate(report[5], report[6]);\n      }\n      /* Pushing the report details into the bulkUpload object as per tab tabs */\n      if (sheet?.toLowerCase() === 'frequency responsibilities') {\n        responsibilityBulkUpload.reports.push(\n          this.setReportDetails(\n            report,\n            'frequency',\n            responsibilityBulkUpload.header[1] === 'Program' ? true : false\n          )\n        );\n        this.bulkUpload.frequency.header = responsibilityBulkUpload?.header;\n        this.bulkUpload.frequency.subHeading =\n          responsibilityBulkUpload?.subHeading;\n        this.bulkUpload.frequency.reports = responsibilityBulkUpload?.reports;\n      }\n      if (sheet?.toLowerCase() === 'ongoing responsibilities') {\n        responsibilityBulkUpload.reports.push(\n          this.setReportDetails(\n            report,\n            'ongoing',\n            responsibilityBulkUpload.header[1] === 'Program' ? true : false\n          )\n        );\n        this.bulkUpload.ongoing.header = responsibilityBulkUpload?.header;\n        this.bulkUpload.ongoing.subHeading =\n          responsibilityBulkUpload?.subHeading;\n        this.bulkUpload.ongoing.reports = responsibilityBulkUpload?.reports;\n      }\n      if (sheet?.toLowerCase() === 'on completion responsibilities') {\n        responsibilityBulkUpload.reports.push(\n          this.setReportDetails(\n            report,\n            'onCompletion',\n            responsibilityBulkUpload.header[1] === 'Program' ? true : false\n          )\n        );\n        this.bulkUpload.onCompletion.header = responsibilityBulkUpload?.header;\n        this.bulkUpload.onCompletion.subHeading =\n          responsibilityBulkUpload?.subHeading;\n        this.bulkUpload.onCompletion.reports =\n          responsibilityBulkUpload?.reports;\n      }\n    });\n\n    const isEmpty = this.checkEmptyFile(data);\n    /* Checking if the file is empty, if it is empty it will return an error message. If it is not\n    empty it will check if the file is the correct file, if it is not the correct file it will\n    return an error message. If it is the correct file it will call the fileUpload() function. */\n    if (isEmpty) {\n      this.errorMessage =\n        'You have uploaded a blank template. Please add details for all mandatory fields. RETRY';\n      this.isFileEmpty = true;\n      this.isWrongFile = false;\n      this.isWrongFormat = false;\n      return;\n    } else if (\n      this.bulkUpload?.frequency?.header[0] !== 'Responsibility Name*' &&\n      this.bulkUpload?.ongoing?.header[0] !== 'Responsibility Name*' &&\n      this.bulkUpload?.onCompletion?.header[0] !== 'Responsibility Name*'\n    ) {\n      this.errorMessage =\n        'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' +\n        ' RETRY';\n      this.isWrongFile = false;\n      this.isWrongFormat = true;\n      return;\n    } else {\n      this.isFileEmpty = false;\n      this.isWrongFile = false;\n      this.isWrongFormat = false;\n      this.fileUpload();\n    }\n\n    this.isFileEmpty = false;\n    this.isWrongFile = false;\n    this.isWrongFormat = false;\n    this.showExcel = true;\n    this.fileValue = '';\n  }\n\n  /**\n   * If the bulkUpload object has a frequency object with a reports array, set the\n   * responsibilityBulkUpload to the frequency object and set the tabType to frequency. If not, check\n   * if the bulkUpload object has an ongoing object with a reports array, set the\n   * responsibilityBulkUpload to the ongoing object and set the tabType to ongoing. If not, check if\n   * the bulkUpload object has an onCompletion object with a reports array, set the\n   * responsibilityBulkUpload to the onCompletion object and set the tabType to onCompletion. If not,\n   * return true.\n   * </code>\n   * @param {any} data - any = {\n   * @returns a boolean value.\n   */\n  checkEmptyFile(data?: any) {\n    let isEmpty = false;\n    if (this.bulkUpload?.frequency?.reports?.length) {\n      this.responsibilityBulkUpload = this.bulkUpload?.frequency;\n      this.tabType = 'frequency';\n    } else if (this.bulkUpload?.ongoing?.reports?.length) {\n      this.responsibilityBulkUpload = this.bulkUpload?.ongoing;\n      this.tabType = 'ongoing';\n    } else if (this.bulkUpload?.onCompletion?.reports?.length) {\n      this.responsibilityBulkUpload = this.bulkUpload?.onCompletion;\n      this.tabType = 'onCompletion';\n    } else {\n      isEmpty = true;\n    }\n    return isEmpty;\n  }\n\n  compareWithCurrentDate(day: any, month: any) {\n    const currentDate = new Date();\n    const monthNames = [\n      { value: 1, month: 'Jan' },\n      { value: 2, month: 'Feb' },\n      { value: 3, month: 'Mar' },\n      { value: 4, month: 'Apr' },\n      { value: 5, month: 'May' },\n      { value: 6, month: 'Jun' },\n      { value: 7, month: 'Jul' },\n      { value: 8, month: 'Aug' },\n      { value: 9, month: 'Sep' },\n      { value: 10, month: 'Oct' },\n      { value: 11, month: 'Nov' },\n      { value: 12, month: 'Dec' },\n    ];\n\n    if (!(day || month)) {\n      return true;\n    } else if (!(day && month)) {\n      return false;\n    } else {\n      const monthFormatRegex = REGEX.MONTH;\n      if (!monthFormatRegex.test(month)) {\n        this.isDateFormatInvalid = true;\n        return false;\n      }\n      if(!(day > 0 && day < 32)) {\n        this.isDayInvalid = true;\n        return false;\n      }\n\n      const monthAndYear = month.split(\"'\");\n\n      const startDate = moment(\n        day + '-' + monthAndYear[0] + '-' + 20 + monthAndYear[1] + ' 00:00:00',\n        'DD-MMMM-YYYY HH:mm:ss'\n      ).format('YYYY-MM-DD HH:mm:ss');\n      if (startDate == 'Invalid date') {\n        this.isDayInvalid = true;\n        return false;\n      }\n\n      setTimeout(() => {}, 5);\n      const date_value = new Date();\n\n      date_value.setMonth(\n        typeof month !== 'number'\n          ? monthNames.filter((x) => x.month === month?.substring(0, 3))[0]\n              ?.value - 1\n          : month\n      );\n      date_value.setFullYear(Number(20 + month.split(\"'\")[1]));\n      date_value.setDate(Number(day));\n      if (\n        currentDate?.toJSON()?.split('T')[0] !=\n          date_value?.toJSON()?.split('T')[0] &&\n        currentDate > date_value\n      ) {\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }\n  isPastDate(day: any, month: any) {\n    const currentDate = new Date();\n\n    const monthNames = [\n      { value: 1, month: 'Jan' },\n      { value: 2, month: 'Feb' },\n      { value: 3, month: 'Mar' },\n      { value: 4, month: 'Apr' },\n      { value: 5, month: 'May' },\n      { value: 6, month: 'Jun' },\n      { value: 7, month: 'Jul' },\n      { value: 8, month: 'Aug' },\n      { value: 9, month: 'Sep' },\n      { value: 10, month: 'Oct' },\n      { value: 11, month: 'Nov' },\n      { value: 12, month: 'Dec' },\n    ];\n\n    if (!(day || month)) {\n      return false;\n    } else if (!(day && month)) {\n      return false;\n    } else {\n      // const reportDate = new Date(day + month.split(\"'\"));\n      const date_value = new Date();\n      date_value.setMonth(\n        typeof month !== 'number'\n          ? monthNames.filter((x) => x.month === month?.substring(0, 3))[0]\n              ?.value - 1\n          : month\n      );\n      date_value.setFullYear(Number(20 + month.split(\"'\")[1]));\n      date_value.setDate(Number(day));\n      if (currentDate > date_value) {\n        return true;\n      } else {\n        return false;\n      }\n    }\n  }\n\n  downloadTemplate() {\n    this.downloadStatus = 'DOWNLOADING';\n    this.downloadPercent = 0;\n    const downloadDate = new Date().toDateString().split(' ');\n    const fileName = `Entrust Responsibilities-${downloadDate[2]}-${downloadDate[1]}-${downloadDate[3]}.xlsx`;\n\n    this.riskService.downloadResponsibilityTemplate().subscribe(\n      (data: any) => {\n        if (data.loaded) {\n          this.downloadPercent = 100 * (data.loaded / data.total);\n        }\n        if (data.body) {\n          setTimeout(() => {\n            this.downloadStatus = this.riskService.downLoadFile(\n              data.body,\n              'application/xlsx',\n              fileName\n            );\n          }, 1500);\n        }\n      },\n      (error) => {\n        console.error(error);\n        this.downloadStatus = 'DOWNLOADED';\n      }\n    );\n  }\n\n  submitResponsibilityBulkUpload() {\n    this.loader = true;\n    let payload: any = [];\n    let responsibilityMultiTabBulkUpload: any = [];\n    let validResponsibilities = 0;\n    responsibilityMultiTabBulkUpload =\n      this.bulkUpload?.frequency?.reports?.concat(\n        this.bulkUpload?.ongoing?.reports,\n        this.bulkUpload?.onCompletion?.reports\n      );\n      responsibilityMultiTabBulkUpload?.forEach((report: any) => {\n        if (report?.isValid) {\n          validResponsibilities += 1;\n        }\n      });\n      payload = {\n        originalFilename: this.fileResponse[0]?.original_filename,\n        fileName: this.fileResponse[0]?.filename,\n        filePath: this.fileResponse[0]?.filepath,\n        totalResponsibilityCount: responsibilityMultiTabBulkUpload?.length,\n        validResponsibilityCount: validResponsibilities,\n      };\n    this.responsibilityService.addBulkResponsibility(payload).subscribe(\n      (res: any) => {\n        this.loader = false;\n        this.showExcel = false;\n        this.showSmiley = true;\n        this.submitWorkflow();\n        this.responsibilityData = res;\n      },\n      (err) => {\n        console.log(err);\n        this.loader = false;\n        this.showExcel = false;\n        this.snackBar.show(\n          'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n          'alert'\n        );\n      }\n    );\n  }\n\n  submitWorkflow() {\n    const message = { type: 'submit' };\n    const targetOrigin = this.getOrigin();\n    window.parent.postMessage(message, targetOrigin);\n  }\n\n  private getOrigin(): string {\n    return window.location.origin;\n  }\n\n  returnIds(item: any, key: string): any {\n    switch (key) {\n      case 'rc_id':\n        let rcObj = { name: '', rcId: 0, parentIds: [] };\n        this.templateInfo.rcList.forEach((rc_element: any) => {\n          if (rc_element.name == item) {\n            let name;\n            if (rc_element.name.includes('[WITHIN]')) {\n              name = rc_element.name.split(' [WITHIN] ')[0];\n            } else {\n              name = rc_element.name;\n            }\n            rcObj = {\n              name,\n              rcId: rc_element.rc_id,\n              parentIds: rc_element.parentIds,\n            };\n          }\n        });\n        return rcObj;\n        break;\n      case 'reviewer':\n        let reviewerObj = { name: '', employeeId: 0, email: '' };\n        this.templateInfo?.reviewerList.forEach((reviewerElement: any) => {\n          if (reviewerElement.nameAndEmail == item) {\n            reviewerObj = {\n              name: reviewerElement.name,\n              employeeId: reviewerElement.my_member_id,\n              email: reviewerElement.email,\n            };\n          }\n        });\n        return reviewerObj;\n\n        break;\n      case 'assignor':\n        let assignorObj = { name: '', memberId: 0, email: '' };\n        this.templateInfo.assignorsList.forEach((assignorElement: any) => {\n          if (assignorElement.nameAndEmail == item) {\n            assignorObj = {\n              name: assignorElement.name,\n              email: assignorElement.email,\n              memberId: assignorElement.member_id,\n            };\n          }\n        });\n        return assignorObj;\n\n        break;\n      case 'cc':\n        let ccObj = { name: '', employeeId: 0, email: '' };\n        this.templateInfo?.reviewerList.forEach((ccElement: any) => {\n          if (ccElement.nameAndEmail == item) {\n            ccObj = {\n              name: ccElement.name,\n              employeeId: ccElement.employee_id,\n              email: ccElement.email,\n            };\n          }\n        });\n        return ccObj;\n        break;\n      case 'ccFailure':\n        let ccfObj = { name: '', employeeId: 0, email: '' };\n        this.templateInfo?.reviewerList.forEach((ccfElement: any) => {\n          if (ccfElement.nameAndEmail == item) {\n            ccfObj = {\n              name: ccfElement.name,\n              employeeId: ccfElement.employee_id,\n              email: ccfElement.email,\n            };\n          }\n        });\n        return ccfObj;\n        break;\n\n      case 'entrusted_to':\n        let empId = 0;\n        this.templateInfo.assigneesList.forEach((enElement: any) => {\n          if (enElement.nameAndEmail == item) {\n            empId = enElement.member_id;\n          }\n        });\n        return empId;\n        break;\n\n      case 'parentResponsibility':\n        let id = 0;\n        this.templateInfo.parentResponsibility.forEach(\n          (responsibility: any) => {\n            if (responsibility?.name === item) {\n              id = responsibility.id;\n            }\n          }\n        );\n        return id;\n        break;\n\n      case 'risk_class':\n        if (item == 'Low') {\n          return 1;\n        } else if (item == 'Low-Medium') {\n          return 2;\n        } else if (item == 'Medium-High') {\n          return 3;\n        } else if (item == 'High') {\n          return 4;\n        } else {\n          return 0;\n        }\n        break;\n    }\n  }\n\n  reset() {\n    this.responsibilityBulkUpload = {\n      header: [],\n      reports: [],\n    };\n    this.bulkUpload = {\n      frequency: {\n        header: [],\n        subHeading: [],\n        reports: [],\n      },\n      ongoing: {\n        header: [],\n        subHeading: [],\n        reports: [],\n      },\n      onCompletion: {\n        header: [],\n        subHeading: [],\n        reports: [],\n      },\n    };\n\n    this.templateInfo = {\n      categoryList: [],\n      rcList: [],\n      assignorsList: [],\n      assigneesList: [],\n      reviewerList: [],\n      memberId: '',\n    };\n\n    this.isFileEmpty = false;\n    this.isWrongFile = false;\n    this.isWrongFormat = false;\n    this.fileName = undefined;\n    this.data = undefined;\n    this.showExcel = false;\n    this.showSmiley = false;\n\n    this.closeAddMultipleResponsibility.emit();\n  }\n  action(event: string) {\n    switch (event) {\n      case 'addMore':\n        this.reset();\n        break;\n      case 'view':\n        this.viewResponsibilities();\n        break;\n    }\n  }\n\n  closeSmiley(event: any) {\n    this.showSmiley = false;\n    this.closeWorkflow.emit({ evt: this.responsibilityData, confirm: false });\n  }\n\n  viewResponsibilities(): void {\n    let url: string;\n    let urlSubstring = '/compliance/responsibilities/';\n    this.disconnectRefresh.emit(false);\n    if (window.location.host.startsWith('localhost')) {\n      url = 'http://' + window.location.host + urlSubstring;\n    } else {\n      url = 'https://' + window.location.host + urlSubstring;\n    }\n    this.iframeService.redirectIfInIframe(url, true);\n  }\n\n  // Upload File to the server\n  fileUpload() {\n    this.fileResponse = [];\n    this.loader = true;\n    const formData = new FormData();\n    const file = this.uploadedFiles[0][0];\n    formData.append('sourcefile', file);\n    formData.append('destination', 'bulkupload/entrust/' + this.userInfo.email);\n    this.responsibilityService.fileUpload(formData).subscribe(\n      (res: any) => {\n        if (res?.filename) {\n          this.fileResponse.push(res);\n        }\n        this.loader = false;\n      },\n      (err) => {\n        console.error(err);\n        this.loader = false;\n        this.snackBar.show(\n          'OOPS! Something went wrong and the page could not be loaded. Could you please try one more time?',\n          'alert'\n        );\n      }\n    );\n  }\n\n  setOrganizationDetails(tempList: any) {\n    if (tempList[0] !== undefined && tempList[0][RESPONSIBILITY.userIndex.currentUser]) {\n      this.templateInfo.memberId = tempList[0][RESPONSIBILITY.userIndex.currentUser];\n    } else {\n      this.errorMessage =\n        'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' +\n        ' RETRY';\n      this.isWrongFile = true;\n      return;\n    }\n    tempList.forEach((element: any) => {\n\n      const regulations = this.getProgramDetails(element, RESPONSIBILITY.programIndex.regulations, 1);\n      const standards = this.getProgramDetails(element, RESPONSIBILITY.programIndex.standards, 2);\n      const internalControls = this.getProgramDetails(element, RESPONSIBILITY.programIndex.internalControls, 3);\n      const others = this.getProgramDetails(element, RESPONSIBILITY.programIndex.others, 0);\n\n      if(regulations) {\n        this.templateInfo.categoryList.push(regulations);\n      }\n\n      if(standards) {\n        this.templateInfo.categoryList.push(standards);\n      }\n\n      if(internalControls) {\n        this.templateInfo.categoryList.push(internalControls);\n      }\n\n      if(others) {\n        this.templateInfo.categoryList.push(others);\n      }\n\n\n      /* Checking if the element[9] is not null and not empty. If it is not null and not empty, it is\n      pushing the element[9] (RC) to the array (rcList). */\n      if (element[RESPONSIBILITY.rcIndex.id] ) {\n        const rc = {\n          name: element[RESPONSIBILITY.rcIndex.name],\n          rc_id: element[RESPONSIBILITY.rcIndex.id],\n        };\n        this.templateInfo.rcList.push(rc);\n      }\n\n      // Assignee\n      if (element[RESPONSIBILITY.assigneeIndex.id] ) {\n        const assignee = {\n          nameAndEmail: element[RESPONSIBILITY.assigneeIndex.name],\n          // name: element[11].split(' (')[0],\n          name: element[RESPONSIBILITY.assigneeIndex.name].split(' (')[0],\n          email: element[RESPONSIBILITY.assigneeIndex.email].split(' (')[1].replace(')', ''),\n          member_id: element[RESPONSIBILITY.assigneeIndex.id],\n        };\n        this.templateInfo.assigneesList.push(assignee);\n      }\n\n      // Reviewer\n      if (element[RESPONSIBILITY.reviewerIndex.id] ) {\n        const reviewer = {\n          nameAndEmail: element[RESPONSIBILITY.reviewerIndex.name],\n          // name: element[11].split(' (')[0],\n          name: element[RESPONSIBILITY.reviewerIndex.name].split(' (')[0],\n          email: element[RESPONSIBILITY.reviewerIndex.email].split(' (')[1].replace(')', ''),\n          employee_id: element[RESPONSIBILITY.reviewerIndex.id],\n          my_member_id: element[RESPONSIBILITY.reviewerIndex.id],\n        };\n        this.templateInfo.reviewerList.push(reviewer);\n      }\n      /* Checking if the element[2] is not empty and not equal to space. If it is not empty and not\n      equal to space, it will create an object and push it to the assignorsList array. */\n      if (element[RESPONSIBILITY.assignorIndex.id] ) {\n        const assignor = {\n          nameAndEmail: element[RESPONSIBILITY.assignorIndex.name],\n          name: element[RESPONSIBILITY.assignorIndex.name],\n          email: element[RESPONSIBILITY.assignorIndex.email],\n          // name: element[14].split(' (')[0],\n          // email: element[14].split(' (')[1].replace(')', ''),\n          member_id: element[RESPONSIBILITY.assignorIndex.member_id],\n        };\n        this.templateInfo.assignorsList.push(assignor);\n      }\n\n    });\n\n    // /* Creating a list of child categories. and push the child categories to their parent program */\n    // if (this.templateInfo.categoryList?.length) {\n    //   this.templateInfo.categoryList?.forEach((category: any, i: number) => {\n    //     let index = tempList[0]?.indexOf(category?.programId);\n    //     if (index !== -1) {\n    //       let childCategory = [];\n    //       /* Creating a list of child categories. */\n    //       for (let j = 1; true; j++) {\n    //         if (tempList[j] && tempList[j][index]) {\n    //           const category = {\n    //             name: tempList[j][index - 1],\n    //             id: tempList[j][index],\n    //           };\n    //           childCategory.push(category);\n    //         } else {\n    //           break;\n    //         }\n    //       }\n    //       this.templateInfo.categoryList[i]['childCategory'] = childCategory;\n    //     }\n    //   });\n    // }\n  }\n\n  getProgramDetails(element: any, index: any, type: number) {\n    if(element[index.id] && typeof element[index.id] === 'number') {\n      return {\n        programName: element[index.name],\n        programId: element[index.id],\n        programType: type\n      }\n    }\n    return null;\n  }\n\n  /**\n   * It takes an event, which is a string, and then it sets the responsibilityBulkUpload variable to\n   * the value of the bulkUpload variable, which is an object, and then it accesses the property of\n   * that object that matches the event string.\n   *\n   * So if the event string is 'frequency', then the responsibilityBulkUpload variable will be set to\n   * the value of the frequency property of the bulkUpload object.\n   *\n   * If the event string is 'ongoing', then the responsibilityBulkUpload variable will be set to the\n   * value of the ongoing property of the bulkUpload object.\n   *\n   * If the event string is 'onCompletion', then the responsibilityBulkUpload variable will be set to the\n   * value of the onCompletion property of the bulkUpload object.\n   *\n   * If the event string is anything else, then the responsibilityBulkUpload variable will be set to\n   * the value of the frequency property of the bulkUpload object.\n   * @param {string} event - string - the event that is emitted from the child component (frequency | ongoing | onCompletion)\n   */\n  selectedTab(event: 'frequency' | 'ongoing' | 'onCompletion') {\n    this.tabType = event;\n    switch (event) {\n      case 'frequency':\n        this.responsibilityBulkUpload = this.bulkUpload?.frequency;\n        break;\n      case 'ongoing':\n        this.responsibilityBulkUpload = this.bulkUpload?.ongoing;\n        break;\n      case 'onCompletion':\n        this.responsibilityBulkUpload = this.bulkUpload?.onCompletion;\n        break;\n      default:\n        this.responsibilityBulkUpload = this.bulkUpload?.frequency;\n        break;\n    }\n  }\n\n  /**\n   * It takes in a report, a tab type, and a boolean value. It then returns an object with a bunch of\n   * properties.\n   * </code>\n   * @param {any} report - any =&gt; the array of data\n   * @param {string} tabType - string - this is the type of tab that is selected.\n   * @param {boolean} isProgram - boolean\n   * @returns An object with the following properties:\n   */\n  setReportDetails(report: any, tabType: string, isProgram: boolean) {\n    let obj: any;\n    switch (tabType) {\n      case 'frequency': {\n        if (isProgram) {\n          obj = {\n            responsibilityName: report[0],\n            programType: report[1],\n            program: report[2],\n            programCategory: report[3],\n            assignor: report[4],\n            assignee: report[5],\n            assigneeType: report[6],\n            keyResponsibility: report[7],\n            responsibilityCategory: null,\n            frequency: report[8],\n            day: report[9],\n            month: report[10],\n            responsibilityWindow: report[11],\n            failedAfter: report[12],\n            responsibilityCenter: report[13],\n            responsibilityCenterType: report[14],\n            reportClass: report[15],\n            objective: report[16],\n            notes: report[17],\n            isFormat: report[18],\n            formatForResponsibility: report[19],\n            documentEvidenceRequired: report[20],\n            // evidenceNotes: report[19],\n            // assessments: report[20],\n\n            reviewer: report[21] ,\n            reviewerType: report[22],\n            reviewToBeCompletedWithin: report[23],\n            reviewWillBeFailedAfter: report[24],\n            overseer: report[25],\n            notifyOnFailure: report[26],\n          };\n          obj['isValidData'] = this.isValidData(obj);\n          obj['isValidUser'] = this.returnIds(obj?.assignee, 'entrusted_to')\n            ? true\n            : false;\n          obj['userValidateWithProgram'] = this.validateDataWithProgram(obj);\n          obj['validDate'] = this.compareWithCurrentDate(obj?.day, obj?.month);\n          obj['isDateFormatInvalid'] = this.isDateFormatInvalid;\n          obj['isDayInvalid'] = this.isDayInvalid;\n          obj['isPastDate'] = this.isPastDate(obj?.day, obj?.month);\n          obj['isValid'] =\n            obj['isValidData'] &&\n            obj['validDate'] &&\n            !obj['isPastDate'] &&\n            obj?.frequency?.length &&\n            !Object.values(obj['userValidateWithProgram']).includes(false) &&\n            obj['isValidUser'] &&\n            this.isValidRiskClass(obj?.reportClass) \n          return obj;\n        } else {\n          obj = {\n            responsibilityName: report[0],\n            assignor: report[1],\n            assignee: report[2],\n            assigneeType: report[3],\n            keyResponsibility: report[4],\n            responsibilityCategory: null,\n            frequency: report[5],\n            day: report[6],\n            month: report[7],\n            responsibilityWindow: report[8],\n            failedAfter: report[9],\n            responsibilityCenter: report[10],\n            reportClass: report[11],\n            objective: report[12],\n            notes: report[13],\n            isFormat: report[14],\n            formatForResponsibility: report[15],\n            documentEvidenceRequired: report[16],\n            // evidenceNotes: report[16],\n            // assessments: report[17],\n            reviewer: report[17],\n            reviewToBeCompletedWithin: report[18],\n            reviewWillBeFailedAfter: report[19],\n            overseer: report[20],\n            notifyOnFailure: report[21],\n          };\n          obj['isValidData'] = this.isValidData(obj);\n          obj['userValidateWithProgram'] = this.validateDataWithProgram(obj);\n          obj['isValidUser'] = this.returnIds(obj?.assignee, 'entrusted_to')\n            ? true\n            : false;\n          obj['validDate'] = this.compareWithCurrentDate(obj?.day, obj?.month);\n          obj['isPastDate'] = this.isPastDate(obj?.day, obj?.month);\n          obj['isValid'] =\n            obj['isValidData'] &&\n            obj['validDate'] &&\n            !obj['isPastDate'] &&\n            obj?.frequency?.length &&\n            obj['isValidUser'] &&\n            this.isValidRiskClass(obj?.reportClass) \n          return obj;\n        }\n        break;\n      }\n      case 'ongoing': {\n        if (isProgram) {\n          obj = {\n            responsibilityName: report[0],\n            programType: report[1],\n            program: report[2],\n            programCategory: report[3],\n            assignor: report[4],\n            assignee: report[5],\n            assigneeType: report[6],\n            keyResponsibility: report[7],\n            responsibilityCenter: report[8],\n            responsibilityCenterType: report[9],\n            reportClass: report[10],\n            objective: report[11],\n            notes: report[12],\n            isFormat: report[13],\n            formatForResponsibility: report[14],\n            documentEvidenceRequired: report[15],\n            reviewer: report[16],\n            reviewerType: report[17], \n            reviewToBeCompletedWithin: report[18],\n            reviewWillBeFailedAfter: report[19],\n            overseer: report[20],\n            notifyOnFailure: report[21],\n            frequency: 'Ongoing',\n          };\n          obj['isValidData'] = this.isValidData(obj);\n          obj['userValidateWithProgram'] = this.validateDataWithProgram(obj);\n          obj['isValidUser'] = this.returnIds(obj?.assignee, 'entrusted_to')\n            ? true\n            : false;\n          obj['isValid'] =\n            obj['isValidData'] &&\n            !Object.values(obj['userValidateWithProgram']).includes(false) &&\n            obj['isValidUser'];\n\n            obj['isValidUser'] &&\n            this.isValidRiskClass(obj?.reportClass) \n          return obj;\n        } else {\n          obj = {\n            responsibilityName: report[0],\n            assignor: report[1],\n            assignee: report[2],\n            assigneeType: report[3],\n            keyResponsibility: report[4],\n            responsibilityCategory: null,\n            frequency: report[5],\n            setReminder: report[6],\n            frequencyReminder: report[7],\n            responsibilityCenter: report[8],\n            reportClass: report[9],\n            objective: report[10],\n            notes: report[11],\n            isFormat: report[12],\n            formatForResponsibility: report[13],\n            documentEvidenceRequired: report[14],\n            // evidenceNotes: report[14],\n            // assessments: report[15],\n            reviewer: report[15],\n            reviewToBeCompletedWithin: report[16],\n            reviewWillBeFailedAfter: report[17],\n            overseer: report[18],\n            notifyOnFailure: report[19],\n          };\n          obj['isValidData'] = this.isValidData(obj);\n          obj['userValidateWithProgram'] = this.validateDataWithProgram(obj);\n          obj['isValidUser'] = this.returnIds(obj?.assignee, 'entrusted_to')\n            ? true\n            : false;\n          obj['isValid'] = obj['isValidData'] && obj['isValidUser'] &&\n          this.isValidRiskClass(obj?.reportClass) \n          return obj;\n        }\n      }\n      case 'onCompletion': {\n        if (isProgram) {\n          obj = {\n            responsibilityName: report[0],\n            programType: report[1],\n            program: report[2],\n            programCategory: report[3],\n            assignor: report[4],\n            assignee: report[5],\n            assigneeType: report[6],\n            keyResponsibility: report[7],\n            responsibilityCategory: null,\n            frequency: report[8],\n            parentResponsibility: report[9],\n            dueDate: report[10],\n            responsibilityWindow: report[11],\n            failedAfter: report[12],\n            responsibilityCenter: report[13],\n            responsibilityCenterType: report[14],\n            reportClass: report[15],\n            objective: report[16],\n            notes: report[17],\n            isFormat: report[18],\n            formatForResponsibility: report[19],\n            documentEvidenceRequired: report[20],\n            // evidenceNotes: report[19],\n            // assessments: report[20],\n            reviewer: report[21],\n            reviewToBeCompletedWithin: report[22],\n            reviewWillBeFailedAfter: report[23],\n            overseer: report[24],\n            notifyOnFailure: report[25],\n          };\n          obj['isValidData'] = this.isValidData(obj);\n          obj['userValidateWithProgram'] = this.validateDataWithProgram(obj);\n          obj['isValidUser'] = this.returnIds(obj?.assignee, 'entrusted_to')\n            ? true\n            : false;\n          obj['isValid'] =\n            obj['isValidData'] &&\n            !Object.values(obj['userValidateWithProgram']).includes(false) &&\n            obj?.parentResponsibility?.length &&\n            obj['isValidUser'] &&\n            this.isValidRiskClass(obj?.reportClass) \n          return obj;\n        } else {\n          obj = {\n            responsibilityName: report[0],\n            assignor: report[1],\n            assignee: report[2],\n            assigneeType: report[3],\n            keyResponsibility: report[4],\n            responsibilityCategory: null,\n            frequency: report[5],\n            parentResponsibility: report[6],\n            dueDate: report[7],\n            responsibilityWindow: report[8],\n            failedAfter: report[9],\n            responsibilityCenter: report[10],\n            reportClass: report[11],\n            objective: report[12],\n            notes: report[13],\n            isFormat: report[14],\n            formatForResponsibility: report[15],\n            documentEvidenceRequired: report[16],\n            // evidenceNotes: report[16],\n            // assessments: report[17],\n            reviewer: report[17],\n            reviewToBeCompletedWithin: report[18],\n            reviewWillBeFailedAfter: report[19],\n            overseer: report[20],\n            notifyOnFailure: report[21],\n          };\n          obj['isValidData'] = this.isValidData(obj);\n          obj['userValidateWithProgram'] = this.validateDataWithProgram(obj);\n          obj['isValidUser'] = this.returnIds(obj?.assignee, 'entrusted_to')\n            ? true\n            : false;\n          obj['isValid'] =\n            obj['isValidData'] &&\n            obj?.parentResponsibility?.length &&\n            obj['isValidUser'] &&\n            this.isValidRiskClass(obj?.reportClass) \n          return obj;\n        }\n      }\n      default: {\n      }\n    }\n  }\n\n  isValidRiskClass(riskClass: any) {\n    if(!riskClass) return true;\n    return RISK_CLASS_LIST.includes(riskClass?.toLowerCase());\n  }\n\n\n  /**\n   * It takes a string, removes all whitespace, and returns the string\n   * @param {any} name - the name of the responsibility\n   * @returns the trimmedName variable.\n   */\n  checkValidResponsibilityName(name: any) {\n    const re = /&nbsp;|<br>/g;\n    if (name) {\n      var trimmedName = name.toString().replace(re, '').trim();\n      trimmedName = trimmedName.replace(/  +/g, ' ');\n    }\n    return trimmedName;\n  }\n\n  /**\n   * If the responsibility name is valid, and the assignee and assignor are not empty, then return\n   * true. Otherwise, return false\n   * @param {any} data - any - the data that is being passed in\n   * @returns A boolean value.\n   */\n  isValidData(data: any) {\n    const responsibility = this.checkValidResponsibilityName(\n      data?.responsibilityName\n    )?.length\n      ? true\n      : false;\n    const assignee = data?.assignee?.length ? true : false;\n    const frequency = data?.frequency?.length ? true : false;\n    if (assignee && responsibility && frequency) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  /**\n   * If the assignor is the same as the overseer or the NotifyOnFailure, or if the assignor is not set\n   * and the defaultOwner is the same as the overseer or the NotifyOnFailure, or if the assignee is the\n   * same as the reviewer, overseer, or NotifyOnFailure, or if the assignee is not set and the\n   * defaultOwner is the same as the overseer or the NotifyOnFailure, or if the reviewer is the same as\n   * the overseer or the NotifyOnFailure, or if the assignee is not set, then return false. Otherwise,\n   * return true\n   * @param {any} data - any - this is the data that is passed in from the form.\n   * @returns A boolean value.\n   */\n  isValidUsers(data: any): boolean {\n    if (\n      (data?.assignor &&\n        (data?.assignor == data?.overseer ||\n          data?.assignor == data?.notifyOnFailure)) ||\n      (!data?.assignor &&\n        (this.defaultOwner == data?.overseer ||\n          this.defaultOwner == data?.notifyOnFailure)) ||\n      (data?.assignee &&\n        (data?.assignee == data?.reviewer ||\n          data?.assignee == data?.overseer ||\n          data?.assignee == data?.notifyOnFailure)) ||\n      (!data?.assignee &&\n        (this.defaultOwner == data?.overseer ||\n          this.defaultOwner == data?.notifyOnFailure)) ||\n      (data?.reviewer &&\n        (data?.reviewer == data?.overseer ||\n          data?.reviewer == data?.notifyOnFailure)) ||\n      !data?.assignee\n    ) {\n      return false;\n    } else {\n      return true;\n    }\n  }\n\n  /**\n   * It takes in a data object and returns an object with 4 boolean properties.\n   * The boolean properties are determined by the values of the data object.\n   * @param {any} data - any = {\n   * @returns {\n   *   isValidAssignee: true,\n   *   isValidAssignor: true,\n   *   isValidReviewer: true,\n   *   isValidOverseer: true\n   * }\n   */\n  validateDataWithProgram(data: any): any {\n    const program = this.templateInfo?.categoryList?.filter(\n      (program: any) => program?.programName === data?.program\n    );\n    const selectedAssignee = this.templateInfo?.assigneesList?.filter(\n      (assignee: any) => assignee?.nameAndEmail === data?.assignee\n    );\n    const selectedAssignor = this.templateInfo?.assignorsList?.filter(\n      (assignor: any) => assignor?.nameAndEmail === data?.assignor\n    );\n    const selectedReviewer = this.templateInfo?.reviewerList?.filter(\n      (reviewer: any) => reviewer?.nameAndEmail === data?.reviewer\n    );\n    const selectedOverseer = this.templateInfo?.reviewerList?.filter(\n      (overseer: any) => overseer?.nameAndEmail === data?.overseer\n    );\n    const selectedNotifyOnFailure = this.templateInfo?.reviewerList?.filter(\n      (notifyOnFailure: any) =>\n        notifyOnFailure?.nameAndEmail === data?.notifyOnFailure\n    );\n    let isValidAssignee = true;\n    let isValidAssignor = true;\n    let isValidReviewer = true;\n    let isValidOverseer = true;\n    let isValidNotifyOnFailure = true;\n    if (program && this.orgDetails?.hasProgramFullPermission) {\n      if (program[0]?.assignee?.length && selectedAssignee?.length) {\n        isValidAssignee = program[0]?.assignee?.includes(\n          selectedAssignee[0]?.my_member_id\n        )\n          ? true\n          : false;\n      }\n      if (program[0]?.reviewer?.length && selectedReviewer?.length) {\n        isValidReviewer = program[0]?.reviewer?.includes(\n          selectedReviewer[0]?.my_member_id\n        )\n          ? true\n          : false;\n      }\n      if (program[0]?.overseer?.length && selectedOverseer?.length) {\n        isValidOverseer = program[0]?.overseer?.includes(\n          selectedOverseer[0]?.my_member_id\n        )\n          ? true\n          : false;\n      }\n      if (program[0]?.overseer?.length && selectedNotifyOnFailure?.length) {\n        isValidNotifyOnFailure = program[0]?.overseer?.includes(\n          selectedNotifyOnFailure[0]?.my_member_id\n        )\n          ? true\n          : false;\n      }\n    }\n    return {\n      isValidAssignee: isValidAssignee,\n      isValidAssignor: isValidAssignor,\n      isValidReviewer: isValidReviewer,\n      isValidOverseer: isValidOverseer,\n      isValidNotifyOnFailure: isValidNotifyOnFailure,\n    };\n  }\n\n  /**\n   * It takes two strings as arguments, and returns an object with three properties\n   * @param {string} programName - string -&gt; Name of the program\n   * @param {string} [chileProgram] - string =&gt; this is the name of the sub-program\n   * @returns {\n   *   programId: 1,\n   *   childProgramId: 2,\n   *   categoryId: '1,2'\n   * }\n   */\n  getProgramId(programName: string, chileProgram?: string): any {\n    const program = this.templateInfo?.categoryList?.filter(\n      (program: any) => program?.programName === programName\n    );\n    let subProgram;\n    let subProgramId;\n    let categoryId;\n    if (chileProgram?.length && program?.length) {\n      subProgram = program[0]?.childCategory?.filter(\n        (subProgram: any) => subProgram?.name === chileProgram\n      );\n      subProgramId = subProgram?.length ? subProgram[0]?.id : undefined;\n    }\n\n    if (subProgramId && program?.length) {\n      categoryId =\n        program[0]?.programId?.toString() + ',' + subProgramId?.toString();\n    } else if (program?.length) {\n      categoryId = program[0]?.programId?.toString();\n    }\n    return {\n      programId: program?.length ? program[0]?.programId : undefined,\n      childProgramId: subProgramId,\n      categoryId: categoryId,\n    };\n  }\n\n  /**\n   * It takes a string as an argument and returns a string.\n   * @param {any} item - this is the name of the group that is selected from the dropdown.\n   * it will return employee id in this form '1234,2345'.\n   */\n  getEmployeeIdFromGroup(item: any) {\n    let empId: any = [];\n    let employee_id: any = [];\n    this.templateInfo?.assigneesList?.forEach((enElement: any) => {\n      if (enElement?.nameAndEmail == item) {\n        empId = enElement?.my_member_id;\n      }\n    });\n    if (empId?.length) {\n      empId?.forEach((id: any) => {\n        this.templateInfo?.reviewerList.forEach((user: any) => {\n          if (user?.my_member_id == id) {\n            employee_id?.push(user?.employee_id);\n          }\n        });\n      });\n    }\n    return employee_id?.toString();\n  }\n\n  /**\n   * If the item is a group, return true, otherwise return false.\n   * @param {any} item - any - the item that is being checked\n   */\n  isGroupSelected(item: any) {\n    let isGroup = false;\n    this.templateInfo.assigneesList.forEach((enElement: any): any => {\n      if (\n        enElement.nameAndEmail == item &&\n        (item?.includes('Users)') || item?.includes('User)')) &&\n        typeof enElement?.my_member_id == 'object'\n      ) {\n        isGroup = true;\n      }\n    });\n    return isGroup;\n  }\n}\n","<!-- <div class=\"add-multiple-risk\" [attr.id]=\"'scrollReference'\" >\n    <!- - main container starts here - ->\n    <div class=\"add-multiple-risk-body\">\n        <div class=\"add-multiple-risk-container\">\n            <div class=\"image\">\n                <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/spreadsheet-multiple-category.svg\" alt=\"\" />\n            </div>\n            <h4>You can entrust multiple responsibilities in just two easy steps:</h4>\n            <ul class=\"list\">\n                <li>Download the template and fill in the details.</li>\n                <li>Upload the .xlsx file and you’re good to go!</li>\n            </ul>\n\n            <button class=\"download\" *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\"\n            (click)=\"downloadTemplate()\" type=\"button\"><i class=\"icons\">&#xe91b;</i> Download Template</button>\n            <div class=\"bulk-btn-progress\" *ngIf=\"downloadStatus === 'DOWNLOADING'\">\n                Download in Progress\n                <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\n            </div>\n            <ng-container *ngIf=\"downloadStatus === 'DOWNLOADED'\">\n                <div class=\"bulk-btn-progress\"><i class=\"icons\">&#xe91c;</i>Download Complete</div>\n                <div class=\"bulk-btn-again\">\n                    Is the file not downloaded?\n                    <button (click)=\"downloadTemplate()\">Retry Download</button>\n                </div>\n            </ng-container>\n            <p class=\"error-message\" *ngIf=\"isWrongFile || isWrongFormat|| isFileEmpty\"\n            >{{errorMessage}}</p>  \n        </div>\n    </div>\n</div> -->\n<app-bulk-responsibility-view *ngIf=\"showExcel\"\n    [responsibilityBulkUpload]=\"responsibilityBulkUpload\"\n    [bulkUpload]=\"bulkUpload\"\n    [fileName]=\"fileName\"\n    [loader]=\"loader\"\n    [defaultOwner]=\"defaultOwner\"\n    [tabType]=\"tabType\"\n    [bulkUpload]=\"bulkUpload\"\n    (submitResponsibilityBulkUpload)=\"submitResponsibilityBulkUpload()\"\n    (selectedTab)=\"selectedTab($event)\"\n    (cancel)=\"reset()\"\n    [responsibilityType]=\"'multiTab'\">\n</app-bulk-responsibility-view>\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\n\n<input type=\"file\" [(ngModel)]=\"fileValue\" id=\"fileInput\" class=\"hidden-input\" accept=\".xlsx\" (change)=\"uploadedFile($event)\" multiple />\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\" (action)=\"action($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AddRiskService } from '../workflow-services/add-risk.service';\nimport * as XLSX from 'xlsx';\nimport { cloneDeep } from 'lodash-es';\nimport { AuthService } from '../workflow-services/auth.service';\nimport { BulkUploadService } from '../services/bulk-upload.service';\nimport { ASSETS } from '../constants/assets.constants';\nimport { RESPONSIBILITY } from '../constants/xlsx.constant';\ntype AOA = any[][];\n\n@Component({\n  selector: 'lib-add-multiple-responsibility-container',\n  templateUrl: './add-multiple-responsibility-container.component.html',\n  styleUrls: [\n    './add-multiple-responsibility-container.component.less',\n    '../forms.less',\n  ],\n})\nexport class AddMultipleResponsibilityContainerComponent implements OnInit {\n  ASSETS = ASSETS;\n  downloadStatus: string = 'NOT_DOWNLOADING';\n  downloadStatusV2: string = 'NOT_DOWNLOADING';\n  downloadPercent = 0;\n  fileValue: any;\n  showSmiley = false;\n  responsibilityData!: any;\n  fileName = '';\n  singleTabResponsibility: boolean = false;\n  multiTabResponsibility: boolean = false;\n  isFileEmpty = false;\n  isWrongFile = false;\n  isWrongFormat = false;\n  errorMessage = ' invalid file error';\n  member_obj_id = '';\n  bulkUploadFlag!: boolean;\n  deployedDate: number = 1677150875;\n  memberId: any = '';\n  RESPONSIBILITY = RESPONSIBILITY;\n\n  @Output() closeWorkflow = new EventEmitter();\n  @Input() feature!: any;\n  @Input() orgDetails!: any;\n  isResponsibilitySimplified: boolean = false;\n\n  constructor(\n    private riskService: AddRiskService,\n    private authService: AuthService,\n    private bulkUploadService: BulkUploadService\n  ) { }\n\n  ngOnInit(): void {\n    this.member_obj_id = this.authService.getUserDetails().user?.uid;\n    this.bulkUploadFlag = this.feature.isFeatureEnabled(\n      'ff_bulk_responsibility'\n    );\n    this.isResponsibilitySimplified = this.feature.isFeatureEnabled(\n      'ff_responsibility_simplification'\n    );\n  }\n\n  downloadTemplate(version?: any) {\n    version !== 'v2'\n      ? (this.downloadStatus = 'DOWNLOADING')\n      : (this.downloadStatusV2 = 'DOWNLOADING');\n    this.downloadPercent = 0;\n    const downloadDate = new Date().toDateString().split(' ');\n    const fileName = `Entrust Responsibilities-${downloadDate[2]}-${downloadDate[1]}-${downloadDate[3]}.xlsx`;\n\n    this.riskService.downloadResponsibilityTemplate(version).subscribe(\n      (data: any) => {\n        if (data.loaded) {\n          this.downloadPercent = 100 * (data.loaded / data.total);\n        }\n        if (data.body) {\n          setTimeout(() => {\n            const downloadStatus = this.riskService.downLoadFile(\n              data.body,\n              'application/xlsx',\n              fileName\n            );\n            version !== 'v2'\n              ? (this.downloadStatus = downloadStatus)\n              : (this.downloadStatusV2 = downloadStatus);\n          }, 1500);\n        }\n      },\n      (error) => {\n        console.error(error);\n        version !== 'v2'\n          ? (this.downloadStatus = 'DOWNLOADED')\n          : (this.downloadStatusV2 = 'DOWNLOADED');\n      }\n    );\n  }\n\n  uploadedFileData!: any;\n\n  uploadedFile(event: any) {\n    try {\n      this.isFileEmpty = false;\n      this.isWrongFile = false;\n      this.isWrongFormat = false;\n      let isEmpty = false;\n      let isCorrectFile = true;\n      let responsibilityBulkUpload = {\n        header: [],\n        reports: [],\n      };\n      let templateInfo = {\n        categoryList: [],\n        rcList: [],\n        assignorsList: [],\n        assigneesList: [],\n        memberId: '',\n      };\n      this.fileName = event.target.files[0].name;\n      // this.uploadedFiles.push(event.target.files);\n      this.uploadedFileData = event;\n      const target: DataTransfer = event.target as DataTransfer;\n      // tslint:disable-next-line: curly\n      if (target.files.length !== 1)\n        throw new Error('Cannot use multiple files');\n      const reader: FileReader = new FileReader();\n      reader.onload = (e: any) => {\n        const bstr: string = e.target.result;\n        const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\n        let sheetData = '';\n        let memberArray: any[] = [];\n        if (wb?.SheetNames?.length > 2) {\n          const sheetData = wb.SheetNames[RESPONSIBILITY.sheetIndex.data]; // get hidden Data sheet\n          const tempData: XLSX.WorkSheet = wb.Sheets[sheetData];\n          const tData = XLSX.utils.sheet_to_json(tempData, {\n            header: 1,\n          }) as AOA;\n          const tempList = tData.filter(\n            (dataElement: any) => dataElement.length > 0\n          );\n          for (let i = 0; i < tempList.length; i++) {\n            if (!tempList[i][3]) {\n              break;\n            }\n            memberArray.push(tempList[i][3]);\n          }\n\n          const excelSheetName1 = wb.SheetNames[RESPONSIBILITY.sheetIndex.frequencyResponsibility];\n          const excelData1: XLSX.WorkSheet = wb.Sheets[excelSheetName1];\n          const excelSheetName2 = wb.SheetNames[RESPONSIBILITY.sheetIndex.onGoingResponsibility];\n          const excelData2: XLSX.WorkSheet = wb.Sheets[excelSheetName2];\n          isEmpty =\n            this.bulkUploadService.hasDataInList(excelData1, 7) &&\n            this.bulkUploadService.hasDataInList(excelData2, 7) \n          isCorrectFile =\n            this.bulkUploadService.checkCorrectFile(excelData1, 2) ||\n            this.bulkUploadService.checkCorrectFile(excelData2, 2) \n          templateInfo.memberId = tempList[0][RESPONSIBILITY.userIndex.currentUser];\n\n        } else {\n          const sheetData = wb.SheetNames[1];\n          const tempData: XLSX.WorkSheet = wb.Sheets[sheetData];\n          const tData = XLSX.utils.sheet_to_json(tempData, {\n            header: 1,\n          }) as AOA;\n          const tempList = tData.filter(\n            (dataElement: any) => dataElement.length > 0\n          );\n\n          const excelSheetName = wb.SheetNames[0];\n          const excelData: XLSX.WorkSheet = wb.Sheets[excelSheetName];\n          isEmpty = this.bulkUploadService.hasDataInList(excelData, 2);\n          isCorrectFile = this.bulkUploadService.checkCorrectFile(excelData, 0);\n          templateInfo.memberId = tempList[0][25];\n        }\n\n        if (this.fileName.substr(-5) !== '.xlsx') {\n          this.errorMessage =\n            'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' +\n            ' RETRY';\n          this.isWrongFile = true;\n          return;\n        }\n        if (\n          this.member_obj_id != templateInfo.memberId ||\n          !memberArray.includes(this.member_obj_id)\n        ) {\n          this.errorMessage =\n            'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' +\n            ' RETRY';\n          this.isWrongFile = true;\n          return;\n        }\n\n        if (isEmpty) {\n          this.errorMessage =\n            'You have uploaded a blank template. Please add details for all mandatory fields. RETRY';\n          this.isFileEmpty = true;\n          this.isWrongFile = false;\n          this.isWrongFormat = false;\n          this.fileValue = '';\n          return;\n        }\n        if (!isCorrectFile) {\n          this.errorMessage =\n            'The incorrect file has been uploaded. Please upload the template which you downloaded from here.' +\n            ' RETRY';\n          this.isWrongFile = false;\n          this.isWrongFormat = true;\n          return;\n        }\n        if (wb?.SheetNames?.length > 2) {\n          this.multiTabResponsibility = true;\n        } else {\n          this.singleTabResponsibility = true;\n        }\n      };\n      reader.readAsBinaryString(target.files[0]);\n    } catch (e: any) {\n      console.error(e);\n    }\n  }\n\n  closeSmiley(event: any) {\n    this.showSmiley = false;\n    this.closeWorkflow.emit({ evt: this.responsibilityData, confirm: false });\n  }\n\n  triggerBrowseFile() {\n    const getFile = document.getElementById('fileInput');\n    if (getFile) {\n      getFile.click();\n    }\n  }\n\n  closeAddMultipleResponsibility(event: any) {\n    this.singleTabResponsibility = false;\n    this.multiTabResponsibility = false;\n    this.fileValue = '';\n  }\n}\n","<div class=\"add-multiple-risk\" [attr.id]=\"'scrollReference'\">\n  <!-- main container starts here -->\n  <div class=\"add-multiple-risk-body\">\n    <div class=\"add-multiple-risk-container\">\n      <div class=\"image\">\n        <img [src]=\"ASSETS.spreadsheet_multiple_category\" alt=\"\" />\n      </div>\n      <h4>You can entrust multiple responsibilities in just two easy steps:</h4>\n      <ul class=\"list\">\n        <li>Download the template and fill in the details.</li>\n        <li>Upload the .xlsx file and you’re good to go!</li>\n      </ul>\n\n      <!-- both old and new template -->\n      <div class=\"download-btn\" *ngIf=\"\n          feature.isFeatureEnabled('ff_both_bulk_responsibility') &&\n          !feature.isFeatureEnabled('ff_bulk_responsibility') &&\n          orgDetails?.doc_utc < deployedDate\n        \">\n        <button class=\"download\" *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\" (click)=\"downloadTemplate()\"\n          type=\"button\">\n          <i class=\"icons\">&#xe91b;</i> Download Existing Template\n        </button>\n        <div *ngIf=\"downloadStatus === 'DOWNLOADING'\" class=\"bulk-btn-progress\">\n          Download in Progress\n          <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\n        </div>\n        <!-- <div *ngIf=\"downloadStatus === 'DOWNLOADED'\" class=\"bulk-btn-progress complete\"><i class=\"icons\">&#xe91c;</i>Download Complete -&nbsp;<button (click)=\"downloadTemplate()\">Retry Download</button></div> -->\n        <ng-container *ngIf=\"downloadStatus === 'DOWNLOADED'\">\n          <div class=\"bulk-btn-progress\">\n            <i class=\"icons\">&#xe91c;</i>Download Complete\n          </div>\n          <div class=\"bulk-btn-again\">\n            Is the file not downloaded?\n            <button (click)=\"downloadTemplate()\">Retry Download</button>\n          </div>\n        </ng-container>\n\n        <div class=\"orDiv\">OR</div>\n\n        <button class=\"download\" *ngIf=\"downloadStatusV2 === 'NOT_DOWNLOADING'\" (click)=\"downloadTemplate('v2')\"\n          type=\"button\">\n          <i class=\"icons\">&#xe91b;</i> Download New Template\n        </button>\n        <div *ngIf=\"downloadStatusV2 === 'DOWNLOADING'\" class=\"bulk-btn-progress\">\n          Download in Progress\n          <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\n        </div>\n        <!-- <div *ngIf=\"downloadStatusV2 === 'DOWNLOADED'\" class=\"bulk-btn-progress complete\"><i class=\"icons\">&#xe91c;</i>Download Complete -&nbsp;<button (click)=\"downloadTemplate('v2')\">Retry Download</button></div> -->\n        <ng-container *ngIf=\"downloadStatusV2 === 'DOWNLOADED'\">\n          <div class=\"bulk-btn-progress\">\n            <i class=\"icons\">&#xe91c;</i>Download Complete\n          </div>\n          <div class=\"bulk-btn-again\">\n            Is the file not downloaded?\n            <button (click)=\"downloadTemplate('v2')\">Retry Download</button>\n          </div>\n        </ng-container>\n      </div>\n\n      <!-- only for new template -->\n      <div class=\"download-btn\" *ngIf=\"\n          (feature.isFeatureEnabled('ff_bulk_responsibility') &&\n            !feature.isFeatureEnabled('ff_both_bulk_responsibility')) ||\n          (feature.isFeatureEnabled('ff_bulk_responsibility') &&\n            feature.isFeatureEnabled('ff_both_bulk_responsibility')) ||\n          orgDetails?.doc_utc > deployedDate\n        \">\n        <button class=\"download\" *ngIf=\"downloadStatusV2 === 'NOT_DOWNLOADING'\" (click)=\"downloadTemplate('v2')\"\n          type=\"button\">\n          <i class=\"icons\">&#xe91b;</i> Download Template\n        </button>\n        <div *ngIf=\"downloadStatusV2 === 'DOWNLOADING'\" class=\"bulk-btn-progress\">\n          Download in Progress\n          <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\n        </div>\n        <!-- <div *ngIf=\"downloadStatusV2 === 'DOWNLOADED'\" class=\"bulk-btn-progress complete\"><i class=\"icons\">&#xe91c;</i>Download Complete -&nbsp;<button (click)=\"downloadTemplate('v2')\">Retry Download</button></div> -->\n        <ng-container *ngIf=\"downloadStatusV2 === 'DOWNLOADED'\">\n          <div class=\"bulk-btn-progress\">\n            <i class=\"icons\">&#xe91c;</i>Download Complete\n          </div>\n          <div class=\"bulk-btn-again\">\n            Is the file not downloaded?\n            <button (click)=\"downloadTemplate('v2')\">Retry Download</button>\n          </div>\n        </ng-container>\n      </div>\n\n      <!-- only for old template -->\n      <div class=\"download-btn\" *ngIf=\"\n          !feature.isFeatureEnabled('ff_bulk_responsibility') &&\n          !feature.isFeatureEnabled('ff_both_bulk_responsibility')\n        \">\n        <button class=\"download\" *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\" (click)=\"downloadTemplate()\"\n          type=\"button\">\n          <i class=\"icons\">&#xe91b;</i> Download Template\n        </button>\n        <div class=\"bulk-btn-progress\" *ngIf=\"downloadStatus === 'DOWNLOADING'\">\n          Download in Progress\n          <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\n        </div>\n        <ng-container *ngIf=\"downloadStatus === 'DOWNLOADED'\">\n          <div class=\"bulk-btn-progress\">\n            <i class=\"icons\">&#xe91c;</i>Download Complete\n          </div>\n          <div class=\"bulk-btn-again\">\n            Is the file not downloaded?\n            <button (click)=\"downloadTemplate()\">Retry Download</button>\n          </div>\n        </ng-container>\n      </div>\n      <p class=\"error-message\" *ngIf=\"isWrongFile || isWrongFormat || isFileEmpty\">\n        {{ errorMessage }}\n      </p>\n    </div>\n  </div>\n</div>\n<input type=\"file\" [(ngModel)]=\"fileValue\" id=\"fileInput\" class=\"hidden-input\" accept=\".xlsx\"\n  (change)=\"uploadedFile($event)\" multiple />\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\"\n  (action)=\"action($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\n\n<app-add-multiple-responsibility *ngIf=\"singleTabResponsibility\" [uploadedFile]=\"uploadedFileData\"\n  (closeAddMultipleResponsibility)=\"closeAddMultipleResponsibility($event)\" [featureflag]=\"isResponsibilitySimplified\"\n  [feature]=\"feature\"></app-add-multiple-responsibility>\n\n<lib-add-multiple-responsibility-with-tab *ngIf=\"multiTabResponsibility\" [orgDetails]=\"orgDetails\"\n  [uploadedFile]=\"uploadedFileData\" (closeAddMultipleResponsibility)=\"closeAddMultipleResponsibility($event)\"\n  [featureflag]=\"isResponsibilitySimplified\" [feature]=\"feature\"></lib-add-multiple-responsibility-with-tab>","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnInit,\n  Output,\n  Signal,\n  ViewChild,\n  effect,\n} from '@angular/core';\nimport { AddMultipleRiskComponent } from '../add-multiple-risk/add-multiple-risk.component';\nimport { ConfirmationAlert } from '../interfaces/confirmation-alert';\nimport { IssueConfiguration } from '../interfaces/issue-data';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\nimport { WorkflowAssessmentComponent } from '../workflow-assessment/workflow-assessment.component';\nimport { ImportAnAssessmentComponent } from '../workflow-assessment/import-an-assessment/import-an-assessment.component';\nimport { WorkflowComplianceComponent } from '../workflow-compliance/workflow-compliance.component';\nimport { WorkflowPolicyComponent } from '../workflow-policy/workflow-policy.component';\nimport { WorkflowRiskComponent } from '../workflow-risk/workflow-risk.component';\nimport { AuthService } from '../workflow-services/auth.service';\nimport { UiKitService } from '../workflow-services/ui-kit.service';\nimport { LogAnIssueComponent } from './../log-an-issue/log-an-issue.component';\nimport { MoreOptionComponent } from './../more-option/more-option.component';\nimport { WorkflowProgramComponent } from '../workflow-program/workflow-program.component';\nimport { GrcObjectContainerComponent } from '../workflow/grc-object/grc-object-container/grc-object-container.component';\nimport { OrganizationCommonService } from '../workflow-services/common-workflow-services/organization-common.service';\nimport { Observable, Subscription } from 'rxjs';\nimport { ReportACaseService } from '../report-a-case/services/report-a-case.service';\nimport { WorkflowCaseComponent } from '../report-a-case/workflow-case/workflow-case.component';\nimport { ReportCasePermissionService } from '../services/report-case-permission.service';\nimport { IframeService } from '../services/iframe.service';\nimport { PostMessageEvent } from '../interfaces/iframe-type';\nimport { ResponsibilityService } from '../workflow-services/responsibility.service';\n@Component({\n  selector: 'app-vcomply-workflow-engine-container',\n  templateUrl: './workflow-engine-container.component.html',\n  styleUrls: ['./workflow-engine-container.component.less', '../forms.less'],\n})\nexport class WorkflowEngineContainerComponent implements OnInit, AfterViewInit {\n  isHostRefreshActive = true;\n  isRCSelected = false;\n  featureFlag_groups: boolean = false;\n  addToCaseMode = '';\n\n  permissionSubscription: Subscription = new Subscription();\n\n  constructor(\n    public uiKitService: UiKitService,\n    private snackBar: SnackBarService,\n    public auth: AuthService,\n    private orgCommonService: OrganizationCommonService,\n    private reportACaseService: ReportACaseService,\n    private reportCasePermissionService: ReportCasePermissionService,\n    private iframeService: IframeService,\n    private responsibilityService: ResponsibilityService\n  ) {\n    this.checkCurrentWorkflow();\n    this.reportACaseService.caseTypeLoader.next(true);\n    this.checkPermission();\n  }\n  @Input() workflowType = '';\n  @Input() mode = 'CREATE';\n  @Input() id = '';\n  @Input() openedFrom = 'GLOBAL';\n  @Input() source: 'SAP' | 'WORKROOM' | '' = '';\n  @Output() closeWorkflow = new EventEmitter();\n  @Input() allowedWorkflows: any = [];\n  @Input() frameworkDetails: Array<any> = []; // only for compliance part for framework\n  @Input() selectedRC = '';\n  @Input() secondaryOpenPortal = '';\n  @Input() defaultRiskType = 'NORMAL';\n  @Input() moveToRegisterMode = '';\n  @Input() workflowDetails: any;\n  @Input() reponsibilityData = {\n    // only used by log an issue\n    rid: null,\n    responsibilityName: '',\n    rcId: null,\n    dueDateId: '',\n  };\n  @Input() assessmentQuestion: any = {\n    questionName: '',\n    questionNumber: '',\n    questionId: '',\n    assessmentId: '',\n    auditeeId: null,\n  };\n  @Input() pid = '';\n  @Input() programType: number = 1;\n  @Input() issueData = {\n    auditPlanId: null,\n    auditPlanName: '',\n    rcId: null,\n  };\n  @Input() entrustButtonName = 'Entrust';\n  @Input() config!: IssueConfiguration;\n  @Input() convertFileData = {};\n  @Input() selectedCategory = '';\n\n  @Input() selectedProgram: any = null;\n  @Input() canFrameworkChange: boolean = true; // if framework can Edited or not; For Create a program\n  @Input() /*  */\n  /*  */\n  @Input()\n  addToProgramDetails: {\n    _id: string;\n    framework_name: string;\n    id?: number;\n    type: string;\n    description: string;\n  } = {\n    _id: '',\n    framework_name: '',\n    id: 0,\n    type: '',\n    description: '',\n  };\n  @Input() grcType: 0 | 1 | 2 | 3 = 0;\n  @Input() isSendForAttestation: boolean = false;\n  @Input() assessmentDetails: any;\n  @Input() templateId: string = '';\n  @Input() customFields: any[] = [];\n\n  orgDetails: any;\n  programSimplifyFlag: boolean = false;\n  isResponsibilitySimplifyFlag: boolean = false;\n  caseFeatureFlag: boolean = false;\n\n  animation = true;\n  workflowList = false;\n  showMoreOption = true;\n  isWorkflowSelectorEnabled = true;\n  disableWorkflowChange!: boolean;\n  checkpointCount: number = 0;\n  reportBy: string = '';\n  currentBusinessCycle: any = '';\n  caseTypePermission: boolean = false;\n  @ViewChild('risk', { static: false }) riskComponent!: WorkflowRiskComponent;\n  @ViewChild('multipleRisk', { static: false })\n  riskBulkUpload!: AddMultipleRiskComponent;\n  @ViewChild('multipleResponsibility', { static: false })\n  responsibilityBulkUpload!: AddMultipleRiskComponent;\n  @ViewChild('responsibility', { static: false })\n  compliance!: WorkflowComplianceComponent;\n  @ViewChild('moreOption', { static: false }) moreOption!: MoreOptionComponent;\n  @ViewChild('dropdown') dropdown!: ElementRef;\n  @ViewChild('dropdownRow', { static: false }) dropdownRow!: ElementRef;\n  @ViewChild('policy') policy!: WorkflowPolicyComponent;\n  @ViewChild('logAnIssue') logIssueComponent!: LogAnIssueComponent;\n  @ViewChild('assessment')\n  workflowAssessmentComponent!: WorkflowAssessmentComponent;\n  @ViewChild('importAssessment', { static: false })\n  importAnAssessment!: ImportAnAssessmentComponent;\n  @ViewChild('program', { static: false }) program!: WorkflowProgramComponent;\n  @ViewChild('grcObject', { static: false })\n  grcObject!: GrcObjectContainerComponent;\n  @ViewChild('reportCase') reportCase!: WorkflowCaseComponent;\n\n  dropdownLeft!: any;\n  dropdownTop!: any;\n  dropdownWidth!: any;\n  closeOnEsc: boolean = false;\n  // feature flag\n  @Input() feature: any;\n  organizationDetails: any;\n  selectedAssessment: any;\n\n  @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(\n    event: KeyboardEvent\n  ) {\n    if (\n      [\n        this.riskComponent?.showSmiley,\n        this.riskBulkUpload?.showSmiley,\n        this.responsibilityBulkUpload?.showSmiley,\n        this.compliance?.showSmiley,\n        this.importAnAssessment?.showSmiley,\n        this.logIssueComponent?.showSmiley,\n      ].includes(true) ||\n      this.program?.activeList ||\n      this.compliance?.activeSelector ||\n      this.grcObject?.openedPopup\n    ) {\n      //Do Nothing\n    } else {\n      this.closeWorkflowEngine();\n    }\n  }\n\n  userList: any = [];\n  currentWorkflow!: any;\n  workflowTypeList: any = [\n    {\n      workflowName: 'Create a Responsibility',\n      code: 'CAR',\n      permissionIdentifier: 'RESPONSIBILITY',\n    },\n    {\n      workflowName: 'Create Multiple Responsibilities',\n      code: 'CMR',\n      permissionIdentifier: 'MULTIPLE_RESPONSIBILITY',\n    },\n    { workflowName: 'Add a Risk', code: 'AAR', permissionIdentifier: 'RISK' },\n    {\n      workflowName: 'Add Multiple Risks',\n      code: 'AMR',\n      permissionIdentifier: 'MULTIPLE_RISK',\n    },\n    {\n      workflowName: 'Create a Policy',\n      code: 'CAP',\n      permissionIdentifier: 'POLICY',\n    },\n    {\n      workflowName: 'Create a Survey',\n      code: 'CAS',\n      permissionIdentifier: 'SURVEY',\n    },\n    {\n      workflowName: 'Create a Form',\n      code: 'CAF',\n      permissionIdentifier: 'FORM',\n    },\n    {\n      workflowName: 'Log an Issue',\n      code: 'LAI',\n      permissionIdentifier: 'ISSUE',\n    },\n    {\n      workflowName: 'Create an Assessment',\n      code: 'AAA',\n      permissionIdentifier: 'ASSESSMENT',\n    },\n    {\n      workflowName: 'Import an Assessment',\n      code: 'IAA',\n      permissionIdentifier: 'IMPORT_ASSESSMENT',\n    },\n    {\n      workflowName: 'Add a Program',\n      code: 'CAPR',\n      permissionIdentifier: 'PROGRAM',\n    },\n    {\n      workflowName: 'Add a GRC Object',\n      code: 'GRC',\n      permissionIdentifier: 'GRC_OBJECTS',\n    },\n    {\n      workflowName: 'Report a Case',\n      code: 'RAC',\n      permissionIdentifier: 'REPORT_A_CASE',\n    },\n    {\n      workflowName: 'Assign case to workflow',\n      code: 'ACTW',\n      permissionIdentifier: 'REPORT_A_CASE',\n    },\n  ];\n  additionalInformationList = [\n    'Objective',\n    'Responsibility Center',\n    'Responsibility Category',\n  ];\n  confirmationAlertConfig: ConfirmationAlert = { isVisible: false };\n\n  checkCurrentWorkflow() {\n    this.reportACaseService.workflowCode.subscribe((code) => {\n      if (code === 'ACW' || code === 'ACTW') {\n        this.showMoreOption = true;\n        this.addToCaseMode = code;\n      } else {\n        this.showMoreOption = false;\n        this.addToCaseMode = '';\n      }\n    });\n  }\n  closeWorkflowEngine(evt?: any) {\n    if (evt?.confirm === false) {\n      this.closeWorkflow.emit(evt ? evt.evt : evt);\n    } else {\n      this.closeConfirm(evt);\n    }\n  }\n\n  closeConfirm(evt: any) {\n    this.confirmationAlertConfig = {\n      isVisible: true,\n      message: 'If you navigate away, any unsaved changes will be lost.',\n      action: 'WORKFLOW_CLOSE',\n      data: evt,\n    };\n  }\n  executeClose(evt: any) {\n    if (evt.action === 'YES') {\n      this.closeWorkflow.emit();\n    }\n  }\n  ngOnInit(): void {\n    this.setNetworkListner();\n    this.setWorkflow(this.workflowType, this.workflowTypeList);\n    setTimeout(() => {\n      this.animation = false;\n    }, 500);\n    this.setWorkflow(this.workflowType, this.workflowTypeList);\n    this.decideViewMoreOption();\n    this.fetchOrganizationDetails();\n    this.getUserDetails();\n    this.programSimplifyFlag = this.feature.isFeatureEnabled(\n      'ff_program_simplify'\n    );\n    this.featureFlag_groups = this.feature.isFeatureEnabled(\n      'ff_responsibility_groups'\n    );\n    this.caseFeatureFlag = this.feature.isFeatureEnabled('ff_cases_enabled');\n    this.isResponsibilitySimplify();\n    this.getAssessmentDetails();\n  }\n\n  ngOnDestroy() {\n    this.permissionSubscription.unsubscribe();\n  }\n\n  checkPermission() {\n    this.permissionSubscription =\n      this.reportCasePermissionService.hasPermission.subscribe(\n        (hasPermission) => {\n          this.caseTypePermission = hasPermission;\n          if (hasPermission) {\n            this.checkReportCasePermission();\n          }\n          this.reportACaseService.caseTypeLoader.next(false);\n        }\n      );\n  }\n\n  setNetworkListner() {\n    addEventListener('offline', (e) => {\n      this.snackBar.show(\n        'Connection lost!<br>Check your network connectivity.',\n        'alert'\n      );\n    });\n    addEventListener('online', (e) => {\n      this.snackBar.show(\"You're back online!\", 'success');\n    });\n  }\n  ngAfterViewInit() {\n    this.workflowTypeList = this.workflowTypeList.filter((workflow: any) => {\n      if (this.allowedWorkflows.includes(workflow.permissionIdentifier)) {\n        return workflow;\n      }\n    });\n    if (this.openedFrom === 'RISK_TREATMENT') {\n      this.isWorkflowSelectorEnabled = true;\n      this.disableWorkflowChange = true;\n    }\n  }\n\n  checkReportCasePermission() {\n    const hasPermission =\n      this.reportCasePermissionService.checkReportACasePermission();\n    if (hasPermission && this.caseFeatureFlag) {\n      this.allowedWorkflows.push('REPORT_A_CASE');\n      this.allowedWorkflows = this.allowedWorkflows.filter(\n        (workflow: any) => workflow !== 'ISSUE'\n      );\n    } else {\n      this.allowedWorkflows = this.allowedWorkflows.filter(\n        (workflow: any) => workflow !== 'REPORT_A_CASE'\n      );\n    }\n  }\n\n  userListEmitter(event: any) {\n    this.userList = event;\n  }\n\n  decideViewMoreOption(type?: boolean) {\n    if (type) {\n      this.closeOnEsc = false;\n    }\n    if (['CMR', 'AMR', 'AAA', 'IAA'].includes(this.currentWorkflow?.code)) {\n      this.showMoreOption = false;\n      if (type === true) {\n        this.isWorkflowSelectorEnabled = false;\n      } else {\n        this.isWorkflowSelectorEnabled = true;\n      }\n    } else if (this.addToCaseMode === 'ACW') {\n      this.showMoreOption = true;\n      this.setWorkflowSelector(type);\n    } else if (this.currentWorkflow?.code === 'RAC') {\n      this.showMoreOption = false;\n      this.setWorkflowSelector(type);\n    } else {\n      if (type === true) {\n        this.showMoreOption = false;\n        this.isWorkflowSelectorEnabled = false;\n      }\n      if (type === false) {\n        this.showMoreOption = true;\n        this.isWorkflowSelectorEnabled = true;\n      }\n      if (type === undefined) {\n        this.showMoreOption = true;\n        this.isWorkflowSelectorEnabled = true;\n      }\n    }\n  }\n  \n  setWorkflowSelector(type?: boolean){\n    if (type === true) {\n      this.isWorkflowSelectorEnabled = false;\n    } else {\n      this.isWorkflowSelectorEnabled = true;\n    }\n  }\n\n  caseReportedBy(event: any) {\n    this.reportBy = event;\n  }\n\n  submit() {\n    if(this.addToCaseMode === 'ACW' || this.addToCaseMode === 'ACTW') {\n      this.reportCase.addToCase();\n      this.submitWorkflow();\n      return;\n    }\n    switch (this.currentWorkflow?.code) {\n      case 'AAR':\n        this.riskComponent.submitRisk();\n        break;\n      case 'LAI':\n        this.logIssueComponent.addIssue();\n        break;\n      case 'CAR':\n        this.compliance.submitResponsibility();\n        break;\n      case 'CAP':\n        this.policy.submitPolicy();\n        break;\n      case 'AAA':\n        this.workflowAssessmentComponent.submitAssessment();\n        break;\n      case 'CAPR': {\n        this.program.saveProgram();\n        break;\n      }\n      case 'GRC': {\n        console.log('this.grcObject', this.grcObject);\n        this.grcObject.saveGRCObject();\n        break;\n      }\n      case 'RAC': {\n        this.reportCase.reportCase();\n        break;\n      }\n      // case 'IAA':\n      //   this.importAnAssessment.submitAssessment();\n    }\n    this.submitWorkflow();\n  }\n\n  submitWorkflow() { \n    const message = {type:'submit'}\n    const targetOrigin = this.getOrigin();\n    window.parent.postMessage(message, targetOrigin);\n  } \n  \n  private getOrigin(): string {\n    return window.location.origin;\n  }\n\n  editWorkflow() {\n    this.workflowList = !this.workflowList;\n    const dropdown = this.dropdown.nativeElement.getBoundingClientRect();\n    this.dropdownLeft = dropdown.left;\n    this.dropdownTop = dropdown.top + dropdown.height;\n    this.dropdownWidth = dropdown.width;\n  }\n  closeWorkflowList() {\n    this.workflowList = false;\n  }\n  @HostListener('window:resize', ['$event'])\n  sizeChange(event: any) {\n    this.workflowList = false;\n  }\n  changeWorkflow(evt: any, selectedWorkflow: any) {\n    if (selectedWorkflow?.code === this.currentWorkflow?.code) {\n      return;\n    }\n    this.confirmationAlertConfig = {\n      isVisible: true,\n      message: 'If you change the workflow, any unsaved changes would be lost.',\n      action: 'WORKFLOW_CHANGE',\n      data: selectedWorkflow,\n    };\n  }\n\n  confirmWorkflowChange(evt: any) {\n    if (evt.action === 'YES') {\n      this.closeOnEsc = true;\n      switch (evt.payload.action) {\n        case 'WORKFLOW_CHANGE':\n          this.currentWorkflow = evt?.payload?.data ?? null;\n          if (this.currentWorkflow?.code) {\n            if (this.moreOption) {\n              this.moreOption.resetAll(this.currentWorkflow?.code);\n            }\n            this.decideViewMoreOption();\n          }\n\n          break;\n        case 'EDIT_RISK':\n          this.riskComponent.createRisk(this.riskComponent.riskForm);\n          break;\n        case 'POLICY_PORTAL':\n          this.policy.confirmPolicyPortal(evt.action);\n          break;\n        case 'WORKFLOW_CLOSE':\n          this.closeWorkflow.emit(evt?.payload?.data);\n          const message = this.iframeService.getCloseWebviewMessage(PostMessageEvent.CLOSE_WEBVIEW, '');\n          this.iframeService.postMessage(message);\n          break;\n        case 'checkpoint':\n          this.moreOption.moreOptionsList.CAR.forEach((option: any) => {\n            if (\n              option?.code === 'ASSESSMENT' ||\n              option?.code === 'CHECKPOINTS_NEW'\n            ) {\n              option.isDisabled = false;\n            }\n\n            if (option?.code === 'CHECKPOINTS') {\n              option.isDisabled = true;\n            }\n          });\n\n          this.compliance.removeCheckpoint();\n          break;\n\n        case 'ROLE':\n          this.program.remove(evt.payload.data, 'ROLE');\n          break;\n\n        case 'new-checkpoints':\n          this.moreOption.moreOptionsList.CAR.forEach((option: any) => {\n            if (option?.code === 'ASSESSMENT' && !evt.payload.isDataRemoved) {\n              option.isDisabled = false;\n            }\n\n            if (option?.code === 'CHECKPOINTS' && !evt.payload.isDataRemoved) {\n              option.isDisabled = true;\n            }\n            if (\n              evt.payload.isCheckpointChecked &&\n              option?.code === 'CHECKPOINTS_NEW'\n            ) {\n              option.checked = false;\n              this.compliance.moreOptions.CHECKPOINTS_NEW = false;\n            }\n          });\n\n          this.compliance.remove('new-checkpoints');\n          break;\n        case 'assigneeTypeChange':\n          this.compliance.responsibilityForm.assignees.whoCanComplete = 'ALL';\n          this.compliance.responsibilityForm.assignees.list =\n            this.compliance.setList(\n              this.compliance.assigneesList,\n              this.compliance.originalAssignee,\n              'employee_id'\n            );\n          if (this.featureFlag_groups) {\n            this.compliance['responsibilityForm']['assigneeGroups']['list'] =\n              [];\n          }\n\n          break;\n        case 'sequential':\n          this.compliance['responsibilityForm']['reviewers'][\n            'sequentialWorkflow'\n          ] = true;\n          break;\n        case 'anyReviewer':\n          this.compliance['responsibilityForm']['reviewers'][\n            'sequentialWorkflow'\n          ] = false;\n          break;\n      }\n    } else {\n      switch (evt.payload.action) {\n        case 'POLICY_PORTAL':\n          this.policy.confirmPolicyPortal(evt.action);\n          break;\n        case 'assigneeTypeChange':\n          this.compliance.responsibilityForm.assignees.whoCanComplete =\n            'ANY_ONE';\n          break;\n\n        case 'sequential':\n          this.compliance['responsibilityForm']['reviewers'][\n            'sequentialWorkflow'\n          ] = false;\n          break;\n        case 'anyReviewer':\n          this.compliance['responsibilityForm']['reviewers'][\n            'sequentialWorkflow'\n          ] = true;\n          break;\n      }\n    }\n    this.confirmationAlertConfig = {\n      isVisible: false,\n      message: '',\n      action: '',\n      data: null,\n    };\n    return evt;\n  }\n\n  setWorkflow(workFlowCode: any, workFlowList: any) {\n    const selectedWorkflow = workFlowList.find(\n      (element: any) => element?.code === workFlowCode\n    );\n    selectedWorkflow\n      ? (this.currentWorkflow = selectedWorkflow)\n      : (this.currentWorkflow = null);\n    return selectedWorkflow;\n  }\n\n  addMoreInfo(event: any) {\n    switch (this.currentWorkflow?.code) {\n      case 'AAR':\n        this.riskComponent?.addMoreInfo(event);\n        break;\n      case 'LAI':\n        this.logIssueComponent?.addMoreInfo(event);\n        break;\n      case 'RAC':\n      case 'ACTW':\n        this.reportCase.addMoreInfo(event);\n        break;\n      case 'CAR':\n\n        if (\n          this.assessmentDetails?.assessment_type?.toLowerCase() ===\n          'compliance_audit'\n        ) {\n          const index = this.moreOption?.moreOptionsList?.CAR?.findIndex(\n            (ele: any) => ele?.code === 'ASSESSMENT'\n          );\n          if (index > -1) {\n            this.moreOption.moreOptionsList.CAR[index].isDisabled = true;\n            this.moreOption.moreOptionsList.CAR[index].checked = true;\n\n            this.compliance?.addMoreInfo(\n              this.moreOption.moreOptionsList.CAR[index]\n            );\n          }\n        }\n\n        this.compliance?.addMoreInfo(event);\n        break;\n      case 'CAP':\n        this.policy?.addMoreInfo(event);\n        break;\n      case 'CAPR':\n        this.program?.addMoreInfo(event);\n        break;\n      case 'GRC':\n        this.grcObject?.addMoreInfo(event);\n        break;\n    }\n  }\n\n  populateMoreOption(event: any) {\n    if (this.moreOption) {\n      this.moreOption.populate(event);\n    }\n  }\n  hideElementsFromMoreOptions(event: any) {\n    this.moreOption?.hideElements(event);\n  }\n\n  showConfirmationPopup(config: ConfirmationAlert) {\n    this.confirmationAlertConfig = config;\n  }\n\n  bulkUploadBrowse(event: any) {\n    switch (event) {\n      case 'AMR':\n        this.riskBulkUpload.triggerBrowseFile();\n        break;\n      case 'CMR':\n        this.responsibilityBulkUpload.triggerBrowseFile();\n        break;\n      case 'IAA':\n        this.importAnAssessment.triggerBrowseFile();\n\n        break;\n      default:\n        break;\n    }\n  }\n\n  onResetForm() {\n    this.mode = 'CREATE';\n    this.entrustButtonName = 'Entrust';\n  }\n\n  onResetGRCForm() {\n    this.mode = 'CREATE';\n  }\n  shiftToEditMode() {\n    this.mode = 'EDIT';\n  }\n  scrollForm() {\n    if (this.dropdownRow?.nativeElement?.getBoundingClientRect()?.top < 38) {\n      this.dropdownRow?.nativeElement?.classList?.add('hide');\n    } else {\n      this.dropdownRow?.nativeElement?.classList?.remove('hide');\n    }\n  }\n\n  /**\n   *\n   * @param event which more options we are removing.\n   * @param isCheckpointChecked  is true if value checkpoints is removed by clicking on more options\n   */\n  onRemovingCheckpoint(\n    event: string,\n    isCheckpointChecked?: boolean,\n    isDataRemoved?: boolean\n  ): void {\n    let msg = '';\n    if (event === 'new-checkpoints') {\n      msg =\n        'If you choose to remove these Checkpoints, they will be deleted and cannot be restored. However, you will still be able to create new Checkpoints or link an Assessment.';\n    } else {\n      msg =\n        'If you choose to remove these checkpoints, they will be deleted and cannot be restored.';\n    }\n    this.confirmationAlertConfig = {\n      isVisible: true,\n      message: msg,\n      action: event,\n      data: { type: 'responsibilityCheckpoint' },\n      isCheckpointChecked: isCheckpointChecked ?? false,\n      isDataRemoved: isDataRemoved ?? false,\n    };\n  }\n\n  onRemovingRole(event: string): void {\n    let msg = '';\n    if (event) {\n      msg = 'If you change the roles, any unsaved changes would be lost.';\n    }\n    this.confirmationAlertConfig = {\n      isVisible: true,\n      message: msg,\n      action: 'ROLE',\n      data: event,\n    };\n  }\n\n  isAssessmentDisabled(isDisabled: boolean) {\n    this.moreOption.moreOptionsList.CAR.forEach((option: any) => {\n      if (option?.code === 'ASSESSMENT' || option?.code === 'CHECKPOINTS_NEW') {\n        option.isDisabled = true;\n      }\n    });\n  }\n\n  disableMoreOptions(workflowCode: any, disabledElementsCode: any) {\n    if (Object.keys(this.moreOption.moreOptionsList).includes(workflowCode)) {\n      this.moreOption.moreOptionsList[workflowCode].forEach((option: any) => {\n        if (disabledElementsCode.includes(option?.code)) {\n          option.isDisabled = true;\n        }\n      });\n    }\n  }\n\n  onCheckpointSelection(event: number) {\n    this.checkpointCount = event;\n  }\n\n  onRcSelected(isRcSelected: boolean): void {\n    this.isRCSelected = isRcSelected;\n  }\n\n  fetchOrganizationDetails() {\n    this.orgCommonService?.getOrgDetailsInfo()?.subscribe({\n      next: (res: any) => {\n        this.orgDetails = res;\n        if (res?.business_cycles_arr && res?.business_cycles_arr?.length) {\n          const selected = res?.business_cycles_arr.filter(\n            (ele: any) => ele?.selected\n          );\n          const splitted = selected[0].business_cycle?.split('-');\n          this.currentBusinessCycle = `${splitted[0]?.slice(\n            2\n          )} - ${splitted[1]?.slice(4)}`;\n        }\n      },\n    });\n  }\n  getUserDetails() {\n    this.orgCommonService?.getOrgUserInfo()?.subscribe({\n      next: (res: any) => {\n        this.auth.userDetails = res;\n      },\n      error: (err: Error) => {\n        console.error('Error fetching organization users', err);\n      },\n    });\n  }\n\n  assigneeTypeChange() {\n    this.confirmationAlertConfig = {\n      isVisible: true,\n      message:\n        'This action will reset the changes and assign the responsibility back to the original assignee.',\n      action: 'assigneeTypeChange',\n      data: {},\n      isRedAlert: true,\n    };\n  }\n\n  // event => 'sequential' || 'anyReviewer'\n  onReviewerChange(event: string) {\n    const commonText: string =\n      'Once confirmed, the new review workflow will be applicable for all current and future review due dates.';\n    const msg =\n      commonText +\n      (event === 'anyReviewer'\n        ? `If any reviewer had completed the review, the current review due date will be closed and the review status will be updated to 'Completed'.`\n        : '');\n    this.confirmationAlertConfig = {\n      isVisible: true,\n      message: msg,\n      action: event,\n    };\n  }\n\n  isResponsibilitySimplify() {\n    if (this.feature.isFeatureEnabled('ff_responsibility_simplification')) {\n      this.workflowTypeList[0].workflowName = 'Add a Responsibility';\n      this.workflowTypeList[1].workflowName = 'Add Multiple Responsibilities';\n    }\n  }\n\n   // TODO: Populate assessment data from already selected data\n  /**\n   *\n   * @param assessmentDetails : selected assessment details like it's object id and category_id\n   */\n  getAssessmentDetails() {\n    const id = this.workflowDetails?.assessment?.assessment_id; \n    if(id && this.workflowType === 'ASSESSMENT') {\n    this.responsibilityService\n      .getAssessmentDetailsByID(id)\n      .subscribe((res: any) => {\n        this.setAssessmentData(res);\n      });\n  }\n}\n\n  setAssessmentData(res: any) {\n        const categoryDetails = res[0].category[0]\n        const assessmentData = {\n          category_id: res[0].category[0]._id,\n          assessment_id: res[0].assessment_id,\n          assessmentDetails: {\n            id: res[0].assessment_id,\n            assessment_name: res[0].assessment_name,\n            questions: res[0].questionsCount,\n          },\n          category_details: categoryDetails,\n        };\n        this.selectedAssessment = assessmentData;\n  \n}\n}\n","<app-snack-bar></app-snack-bar>\n<div class=\"workflow-engine-overlay\"></div>\n\n<app-assessment-list *ngIf=\"workflowType === 'ASSESSMENT'\" (cancelAssessment)=\"closeWorkflowEngine()\" [isEdit]=\"true\"\n  [isFullScreen]=\"true\" [selectedAssessment]=\"selectedAssessment\"\n  (onAssessmentSelect)=\"closeWorkflowEngine({ evt: $event, confirm: false })\"></app-assessment-list>\n<div *ngIf=\"workflowType !== 'ASSESSMENT'\" class=\"workflow-engine\" [class.animate]=\"animation\" [class.bg]=\"\n    (!isWorkflowSelectorEnabled || riskBulkUpload?.showCategoryList) &&\n    !policy?.showCreateDocuments\n  \">\n  <div class=\"workflow-engine-container\" [ngSwitch]=\"currentWorkflow?.code\"\n    [class.with-preview-assessment]=\"(auth?.previewPanel | async) === true\" [class.with-frequency]=\"\n      compliance?.activeSelector === 'frequency' ||\n      compliance?.activeSelector === 'reviewerFrequency' ||\n      riskComponent?.activeSelector === 'frequency' ||\n      policy?.activeSelector === 'frequency' ||\n      policy?.activeSelector === 'reviewerFrequency'\n    \">\n    <button (click)=\"closeWorkflowEngine()\" id=\"close-workflow-engine-btn\" class=\"close\" [appTooltip]=\"'[Esc] to close'\"\n      placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" [class.disabled]=\"\n        confirmationAlertConfig?.isVisible || !isWorkflowSelectorEnabled\n      \" [class.smiley-opened]=\"\n        riskComponent?.showSmiley ||\n        logIssueComponent?.showSmiley ||\n        compliance?.showSmiley ||\n        policy?.showCreateDocuments ||\n        responsibilityBulkUpload?.showSmiley ||\n        responsibilityBulkUpload?.showExcel ||\n        riskBulkUpload?.showSmiley ||\n        riskBulkUpload?.showExcel ||\n        program?.showSmiley ||\n        importAnAssessment?.showSmiley\n      \">\n      <i class=\"icons\">&#xe93f;</i>\n    </button>\n    <div *ngIf=\"!uiKitService.isSmileyOn\" class=\"workflow-engine-more\"\n      [hidden]=\"showMoreOption === false || policy?.showCreateDocuments\"\n      [class.disabled]=\"confirmationAlertConfig?.isVisible\" [class.read-only]=\"uiKitService?.isLoader\">\n      <app-more-option #moreOption [currentWorkflow]=\"currentWorkflow?.code\" [isEditMode]=\"mode === 'EDIT'\"\n        [isRCSelected]=\"\n          isRCSelected ||\n          (currentWorkflow?.code === 'GRC' &&\n            grcObject?.listObject.RC.selectedData?.length > 0)\n        \" [openedFrom]=\"openedFrom\" (selectedOption)=\"addMoreInfo($event)\" [isProgramSelected]=\"selectedProgram\"\n        [allowedFeature]=\"feature\" [orgDetailsData]=\"orgDetails\" [isAttributesAvailable]=\"\n          currentWorkflow?.code === 'GRC' &&\n          grcObject?.selectedAttributes?.attributes?.length > 0\n        \">\n      </app-more-option>\n    </div>\n    <div class=\"workflow-engine-form\" [class.disabled]=\"confirmationAlertConfig?.isVisible\" [class.no-shadow]=\"\n        currentWorkflow?.code == 'AMR' ||\n        currentWorkflow?.code == 'CMR' ||\n        currentWorkflow?.code == 'AAA' ||\n        uiKitService.isSmileyOn ||\n        policy?.showCreateDocuments\n      \">\n      <div class=\"container\" (scroll)=\"scrollForm()\">\n        <ng-container *ngIf=\"\n            !['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\n              openedFrom\n            )\n          \">\n          <div *ngIf=\"!(uiKitService.isSmileyOn || policy?.showCreateDocuments)\" class=\"form-group-row\" #dropdownRow\n            [class.disabled]=\"\n              (mode === 'EDIT' ||\n                !isWorkflowSelectorEnabled ||\n                disableWorkflowChange ||\n                selectedProgram) &&\n              currentWorkflow?.code !== 'ACTW'\n            \">\n            <div class=\"left\" [class.checked]=\"currentWorkflow\">\n              <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n              </svg>\n            </div>\n            <div class=\"right\">\n              <div class=\"vx-form-group\" #dropdown>\n                <label *ngIf=\"currentWorkflow?.code !== 'ACTW'\" class=\"vx-control-panel\">Select a Workflow<span\n                    class=\"required\">*</span></label>\n                <label *ngIf=\"currentWorkflow?.code === 'ACTW'\" class=\"vx-control-panel\">Assign a Case to Workflow<span\n                    class=\"required\">*</span></label>\n                <div class=\"select\" *ngIf=\"!currentWorkflow && currentWorkflow?.code !== 'ACTW'\"\n                  (click)=\"editWorkflow()\">\n                  <input type=\"text\" placeholder=\"Select a Workflow\" readonly />\n                </div>\n                <div class=\"selected first-field\" *ngIf=\"currentWorkflow\">\n                  <!-- {{currentWorkflow | json}} -->\n                  <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\">\n                    <span class=\"chipName vx-fs-11 vx-label-txt no-width\" [appTooltip]=\"currentWorkflow?.workflowName\"\n                      placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [innerHTML]=\"\n                        workflowType === 'ACTW'\n                          ? '<strong>Case Reported By: </strong>' +\n                            (reportBy | userPipe : userList)?.member_name\n                          : currentWorkflow?.workflowName\n                      \">\n                    </span>\n                  </div>\n                  <!-- <div class=\"chip-container\">\n                                    <span class=\"chip\" [class.disabled]=\"false\">{{currentWorkflow?.workflowName}}</span>\n                                </div> -->\n                  <button class=\"edit\" type=\"button\" (click)=\"editWorkflow()\" *ngIf=\"\n                      !workflowList &&\n                      openedFrom != 'ASSESSMENT' &&\n                      currentWorkflow?.code !== 'ACTW'\n                    \">\n                    <i class=\"icons\">&#xe9ba;</i> Edit\n                  </button>\n                </div>\n                <div *ngIf=\"\n                    currentWorkflow?.code === 'CAPR' &&\n                    currentBusinessCycle &&\n                    !programSimplifyFlag\n                  \"\n                  class=\"program-business-cycle vx-fs-11 vx-txt-white vx-d-flex vx-align-center vx-pt-2 vx-pb-1 vx-pl-2 vx-pr-1\">\n                  <i class=\"icons vx-fs-12 vx-mr-1\">&#xe963;</i> This program is\n                  being set-up for the business cycle:\n                  <span class=\"vx-fw-600 vx-ml-1\">{{\n                    currentBusinessCycle\n                    }}</span>\n                </div>\n              </div>\n            </div>\n          </div>\n        </ng-container>\n        <!-- <app-create-documents></app-create-documents> -->\n        <!-- <app-bulk-view></app-bulk-view> -->\n        <!-- <app-bulk-responsibility-view></app-bulk-responsibility-view> -->\n        <app-workflow-compliance (disconnectRefresh)=\"isHostRefreshActive = $event\" [orgDetails]=\"orgDetails\"\n          [isEntrust]=\"entrustButtonName.toLowerCase() == 'entrust'\" [responsibilityId]=\"id\" [mode]=\"mode\"\n          [frameworkDetails]=\"frameworkDetails\" [assessmentDetails]=\"assessmentDetails\"\n          (closeWorkflow)=\"closeWorkflowEngine($event)\" *ngSwitchCase=\"'CAR'\" #responsibility\n          (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n          (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\" [selectedRC]=\"selectedRC\"\n          [closeOnEsc]=\"closeOnEsc\" (assigneeTypeChange)=\"assigneeTypeChange($event)\"\n          (onReviewerTypeChange)=\"onReviewerChange($event)\" [feature]=\"feature\" [openedFrom]=\"openedFrom\"\n          (rcSelected)=\"onRcSelected($event)\" (resetForm)=\"onResetForm()\"\n          (onRemovingCheckpoint)=\"onRemovingCheckpoint($event, false, true)\"\n          (isAssessmentDisabled)=\"isAssessmentDisabled($event)\" (checkpointCountUpdated)=\"checkpointCount = $event\"\n          [selectedProgram]=\"selectedProgram\" [responsibilityDetails]=\"workflowDetails\"\n          [customFields]=\"customFields\"></app-workflow-compliance>\n        <app-workflow-risk [secondaryOpenPortal]=\"secondaryOpenPortal\" [openedFrom]=\"openedFrom\"\n          (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'AAR'\" #risk\n          (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n          (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"\n          (closeWorkflow)=\"closeWorkflowEngine($event)\" (pickerChanged)=\"decideViewMoreOption($event)\"\n          (populateOption)=\"populateMoreOption($event)\" (refreshForm)=\"onResetForm()\"\n          (rcSelected)=\"onRcSelected($event)\" [mode]=\"mode\" [riskId]=\"id\" [feature]=\"feature\"></app-workflow-risk>\n        <app-workflow-policy (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'CAP'\" #policy\n          (showConfirmationAlert)=\"showConfirmationPopup($event)\" (shiftToEditMode)=\"shiftToEditMode()\"\n          [feature]=\"feature\" [policyId]=\"id\" [mode]=\"mode\" [templateId]=\"templateId\"\n          [convertFileData]=\"convertFileData\" [selectedCategory]=\"selectedCategory\"\n          [isSendForAttestation]=\"isSendForAttestation\" (populateOption)=\"populateMoreOption($event)\"\n          (pickerChanged)=\"decideViewMoreOption($event)\"></app-workflow-policy>\n        <app-workflow-survey-form *ngSwitchCase=\"'CAS'\" #surveyForm></app-workflow-survey-form>\n        <app-add-multiple-risk (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'AMR'\" #multipleRisk\n          (pickerChanged)=\"decideViewMoreOption($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n          [feature]=\"feature\"></app-add-multiple-risk>\n        <!-- <app-add-multiple-responsibility  (disconnectRefresh)=\"isHostRefreshActive = $event\"    (closeWorkflow)=\"closeWorkflowEngine($event)\" *ngSwitchCase=\"'CMR'\" #multipleResponsibility>\n                </app-add-multiple-responsibility> -->\n\n        <lib-add-multiple-responsibility-container [orgDetails]=\"orgDetails\"\n          (disconnectRefresh)=\"isHostRefreshActive = $event\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n          *ngSwitchCase=\"'CMR'\" [feature]=\"feature\" #multipleResponsibility></lib-add-multiple-responsibility-container>\n        <!-- New Log an Issue -->\n        <app-log-an-issue [issueDetails]=\"issueData\" *ngSwitchCase=\"'LAI'\" [reponsibilityData]=\"reponsibilityData\"\n          [assessmentQuestion]=\"assessmentQuestion\" [openedFrom]=\"openedFrom\" [source]=\"source\" [issueId]=\"id\"\n          #logAnIssue (disconnectRefresh)=\"isHostRefreshActive = $event\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n          (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\" [(mode)]=\"mode\">\n        </app-log-an-issue>\n        <!-- Old Log an issue -->\n        <!-- <app-log-an-issue *ngSwitchCase=\"'LAI'\" [responsibilitiesData]=\"reponsibiltyData\" [openedFrom]=\"openedFrom\"\n                #logAnIssue (closeWorkflow)=\"closeWorkflowEngine($event)\"\n                (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\">\n            </app-log-an-issue> -->\n\n        <app-workflow-assessment [assessmentId]=\"id\" (pickerChanged)=\"decideViewMoreOption($event)\"\n          [openedFrom]=\"openedFrom\" (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'AAA'\"\n          (showConfirmationAlert)=\"showConfirmationPopup($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n          (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n          (refreshForm)=\"onResetForm()\" [mode]=\"mode\" #assessment></app-workflow-assessment>\n        <app-import-an-assessment (pickerChanged)=\"decideViewMoreOption($event)\"\n          (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'IAA'\"\n          (showConfirmationAlert)=\"showConfirmationPopup($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n          (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n          (refreshForm)=\"onResetForm()\" #importAssessment></app-import-an-assessment>\n        <!-- <app-workflow-program #program *ngSwitchCase=\"'CAPR'\" (pickerChanged)=\"decideViewMoreOption($event)\" (disconnectRefresh)=\"isHostRefreshActive = $event\"></app-workflow-program> -->\n        <app-workflow-program #program *ngSwitchCase=\"'CAPR'\" [orgDetails]=\"orgDetails\" [allowedFeature]=\"feature\"\n          (disableElementsFromMoreOptions)=\"disableMoreOptions('CAPR', $event)\" [programType]=\"programType\"\n          (pickerChanged)=\"decideViewMoreOption($event)\" (disconnectRefresh)=\"isHostRefreshActive = $event\"\n          (showConfirmationAlert)=\"showConfirmationPopup($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n          (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n          (refreshForm)=\"onResetForm()\" [mode]=\"mode\" [programId]=\"id\" [programDetails]=\"workflowDetails\"\n          (onRemovingRole)=\"onRemovingRole($event)\" [canFrameworkChange]=\"canFrameworkChange\"\n          [addToProgramDetails]=\"addToProgramDetails\"></app-workflow-program>\n\n        <!-- GRC Object -->\n        <lib-grc-object-container #grcObject *ngSwitchCase=\"'GRC'\" [grcType]=\"grcType\" [MODE]=\"mode\" [ID]=\"id\"\n          (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n          (closeWorkflow)=\"closeWorkflowEngine($event)\" (resetForm)=\"onResetGRCForm()\"\n          (disconnectRefresh)=\"isHostRefreshActive = $event\"\n          (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"></lib-grc-object-container>\n\n        <!-- Report a Case -->\n        <app-workflow-case *ngSwitchCase=\"'RAC'\" #reportCase [openedFrom]=\"openedFrom\" [source]=\"source\" [caseId]=\"id\"\n          [mode]=\"mode\" [responsibilityData]=\"reponsibilityData\" [assessmentQuestion]=\"assessmentQuestion\"\n          [caseTypePermission]=\"caseTypePermission\" [workflowType]=\"'RAC'\"\n          (disconnectRefresh)=\"isHostRefreshActive = $event\" (populateOption)=\"populateMoreOption($event)\"\n          (closeWorkflow)=\"closeWorkflowEngine($event)\"\n          (pickerChanged)=\"decideViewMoreOption($event)\"></app-workflow-case>\n        <!-- Assign case to workflow -->\n        <app-workflow-case *ngSwitchCase=\"'ACTW'\" #reportCase [openedFrom]=\"openedFrom\" [source]=\"source\" [caseId]=\"id\"\n          [mode]=\"mode\" [workflowType]=\"'ACTW'\" [responsibilityData]=\"reponsibilityData\"\n          [assessmentQuestion]=\"assessmentQuestion\" [caseTypePermission]=\"caseTypePermission\"\n          (disconnectRefresh)=\"isHostRefreshActive = $event\" (populateOption)=\"populateMoreOption($event)\"\n          (caseReportedBy)=\"caseReportedBy($event)\" (userListEmitter)=\"userListEmitter($event)\"\n          (closeWorkflow)=\"closeWorkflowEngine($event)\"\n          (pickerChanged)=\"decideViewMoreOption($event)\"></app-workflow-case>\n      </div>\n      <div *ngIf=\"['RAC', 'ACTW'].includes(currentWorkflow?.code)\" class=\"vx-d-flex\">\n        <button class=\"cancel\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"closeWorkflowEngine()\">\n          CANCEL\n        </button>\n        <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"submit()\">\n          {{\n          mode === \"EDIT\" && currentWorkflow?.code === \"RAC\"\n          ? \"Update\"\n          : \"Report\"\n          }}\n        </button>\n      </div>\n      <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'AAR'\" (click)=\"submit()\">\n        {{\n        mode === \"EDIT\" && openedFrom !== \"MOVE_TO_REGISTER\"\n        ? \"Update\"\n        : \"Add\"\n        }}\n      </button>\n      <button class=\"submit\" [class.disabled]=\"\n          !isWorkflowSelectorEnabled ||\n          !riskBulkUpload?.category?.selectedCategory\n        \" (click)=\"bulkUploadBrowse('AMR')\" *ngSwitchCase=\"'AMR'\">\n        Browse\n      </button>\n      <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"bulkUploadBrowse('CMR')\"\n        *ngSwitchCase=\"'CMR'\">\n        Browse\n      </button>\n\n      <!-- This has ternary operation to handle the both scenarios of how it works with compliance and program module, please don't change this. -->\n      <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"submit()\" *ngSwitchCase=\"'CAR'\">\n        {{\n        entrustButtonName !== \"\" && mode !== \"EDIT\"\n        ? entrustButtonName\n        : mode === \"EDIT\" && !workflowDetails?.duplicate\n        ? \"UPDATE\"\n        : \"Entrust\"\n        }}\n      </button>\n      <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"submit()\" *ngSwitchCase=\"'CAP'\">\n        {{\n        mode == \"EDIT\"\n        ? isSendForAttestation\n        ? \"Send for attestation\"\n        : \"Update\"\n        : \"Continue to draft\"\n        }}\n      </button>\n      <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'CAS'\">\n        Continue to draft\n      </button>\n      <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'LAI'\" (click)=\"submit()\">\n        {{ mode === \"EDIT\" ? \"Update\" : \"Add\" }}\n      </button>\n      <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'AAA'\" (click)=\"submit()\">\n        {{ mode === \"EDIT\" ? \"Update\" : \"Continue to draft\" }}\n      </button>\n      <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"bulkUploadBrowse('IAA')\"\n        *ngSwitchCase=\"'IAA'\">\n        Browse\n      </button>\n      <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled || !program?.valid\" (click)=\"submit('CAPR')\"\n        *ngSwitchCase=\"'CAPR'\">\n        {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n      </button>\n      <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled || !program?.valid\" (click)=\"submit('CAPR')\"\n        *ngSwitchCase=\"'CAPR'\">\n        {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n      </button>\n      <button class=\"submit\" (click)=\"submit()\" *ngSwitchCase=\"'GRC'\">\n        {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n      </button>\n      <div class=\"dropdown\" *ngIf=\"workflowList\" (click)=\"closeWorkflowList()\" [style.top.px]=\"dropdownTop\"\n        [style.left.px]=\"dropdownLeft\" [style.width.px]=\"dropdownWidth\">\n        <ul class=\"dropdown-list\">\n          <li *ngFor=\"let workflow of workflowTypeList\" (click)=\"changeWorkflow($event, workflow)\">\n            <app-cs-radio *ngIf=\"workflow?.code !== 'ACTW'\" [value]=\"workflow?.code\"\n              [checked]=\"currentWorkflow?.code === workflow?.code\">\n              {{ workflow?.workflowName }}</app-cs-radio>\n          </li>\n        </ul>\n      </div>\n      <div class=\"dropdown-overlay\" *ngIf=\"workflowList\" (click)=\"closeWorkflowList()\"></div>\n    </div>\n    <app-confirmation-alert id=\"confirmation-dialogue\" (action)=\"confirmWorkflowChange($event)\"\n      *ngIf=\"confirmationAlertConfig?.isVisible\" [message]=\"confirmationAlertConfig?.message\"\n      [config]=\"confirmationAlertConfig\"></app-confirmation-alert>\n  </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LineLoaderComponent } from './line-loader.component';\n\n@NgModule({\n  declarations: [LineLoaderComponent],\n  imports: [CommonModule],\n  exports: [LineLoaderComponent],\n})\nexport class LineLoaderModule {}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-checkpoints-policy-list',\n  templateUrl: './checkpoints-policy-list.component.html',\n  styleUrls: ['./checkpoints-policy-list.component.less']\n})\nexport class CheckpointsPolicyListComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<!-- <p>checkpoints-list works!</p> -->\n<div class=\"checkpoints-list\">\n    <ul class=\"list-of-type\">\n        <li>\n            <button>\n                <i class=\"icons\">&#xeace;</i>\n                <span class=\"value\">\n                    <span class=\"title\">Text</span>\n                    <span class=\"description\">Select a text area.</span>\n                </span>\n            </button>\n        </li>\n        <li>\n            <button>\n                <i class=\"icons\">&#xeab9;</i>\n                <span class=\"value\">\n                    <span class=\"title\">Dropdown</span>\n                    <span class=\"description\">Choose an option from a multiple select box.</span>\n                </span>\n            </button>\n        </li>\n        <li>\n            <button>\n                <i class=\"icons\">&#xeab5;</i>\n                <span class=\"value\">\n                    <span class=\"title\">Single selection</span>\n                    <span class=\"description\">Select only one option with a radio button.</span>\n                </span>\n            </button>\n        </li>\n        <li>\n            <button>\n                <i class=\"icons\">&#xeab4;</i>\n                <span class=\"value\">\n                    <span class=\"title\">Multiple selection</span>\n                    <span class=\"description\">Select multiple options using a checkbox.</span>\n                </span>\n            </button>\n        </li>\n        <li>\n            <button>\n                <i class=\"icons\">&#xeaba;</i>\n                <span class=\"value\">\n                    <span class=\"title\">Date</span>\n                    <span class=\"description\">Select date from a date picker.</span>\n                </span>\n            </button>\n        </li>\n        <li>\n            <button>\n                <i class=\"icons\">&#xea97;</i>\n                <span class=\"value\">\n                    <span class=\"title\">Upload File</span>\n                    <span class=\"description\">Upload documents & files.</span>\n                </span>\n            </button>\n        </li>\n    </ul>\n</div>","import { Component, Input, OnInit, EventEmitter, Output, HostListener } from '@angular/core';\n\n@Component({\n  selector: 'app-smiley-dialog',\n  templateUrl: './smiley-dialog.component.html',\n  styleUrls: ['./smiley-dialog.component.less'],\n})\nexport class SmileyDialogComponent implements OnInit {\n  @Input() message!: string;\n  @Input() actionButtons!: any[];\n  @Output() action: EventEmitter<string> = new EventEmitter();\n  @Output() closeSmiley: EventEmitter<any> = new EventEmitter();\n\n  @HostListener('window:keyup', ['$event']) handleKeyboardEvent(event: KeyboardEvent) {\n    if (event.key === 'Escape') {\n      this.smileyCloseEmitter({});\n    }\n  }\n  constructor() {}\n\n  ngOnInit(): void {\n    setTimeout(()=>{\n      this.smileyCloseEmitter();\n    },3000)\n  }\n\n  actionEmitter(event: any) {\n    this.action.emit(event?.id);\n  }\n\n  smileyCloseEmitter(event?: any) {\n    this.closeSmiley.emit();\n  }\n\n\n}\n","<div class=\"vx-smiley-popup vx-d-flex vx-justify-center vx-align-center active\">\n  <button class=\"close\" (click)=\"smileyCloseEmitter($event)\">\n    <i class=\"icons\">&#xe93f;</i>\n  </button>\n  <div class=\"vx-smiley-container vx-text-center\">\n      <div class=\"vx-smiley\">\n          <div class=\"vx-smiley-circle happy\">\n              <div class=\"vx-smiley-circle-inner\">\n                  <div class=\"eyes\">\n                      <div class=\"eye\"></div>\n                      <div class=\"eye\"></div>\n                  </div>\n                  <div class=\"mouth\"></div>\n              </div>\n          </div>\n      </div>\n      <h3>{{ message }}</h3>\n      <div class=\"successSmilyButton vx-d-flex vx-justify-center vx-align-center\">\n        <button *ngFor=\"let button of actionButtons\" (click)=\"actionEmitter(button)\" [class]=\"button?.class\">\n          {{ button?.buttonText }}\n        </button>\n      </div>\n  </div>\n</div>\n<!-- active -->\n<!-- <div class=\"workflow-smiley-popup active\">\n  <button class=\"close\" (click)=\"smileyCloseEmitter($event)\">\n    <i class=\"icons\">&#xe93f;</i>\n  </button>\n  <div class=\"workflow-smiley-container\">\n    <div class=\"smiley-inner\">\n      <div class=\"smiley-circle active\">\n        <div class=\"smiley-circle-inner\">\n          <div class=\"eyes\">\n            <div class=\"eye\"></div>\n            <div class=\"eye\"></div>\n          </div>\n          <div class=\"mouth\"></div>\n        </div>\n      </div>\n    </div>\n    <h3>{{ message }}</h3>\n    <div class=\"successSmileyButton\">\n      <button *ngFor=\"let button of actionButtons\" (click)=\"actionEmitter(button)\" [class]=\"button?.class\">\n        {{ button?.buttonText }}\n      </button>\n    </div>\n  </div>\n</div> -->\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SmileyDialogComponent } from './smiley-dialog.component';\n\n@NgModule({\n  declarations: [SmileyDialogComponent],\n  imports: [CommonModule],\n\n  exports: [SmileyDialogComponent],\n})\nexport class SmileyDialogModule {}\n","import { PlatformLocation } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';\nimport { PolicyService } from '../workflow-services/policy.service';\nimport { IframeService } from '../services/iframe.service';\n\n@Component({\n  selector: 'app-create-documents',\n  templateUrl: './create-documents.component.html',\n  styleUrls: ['./create-documents.component.less']\n})\nexport class CreateDocumentsComponent implements OnInit {\n  private fileToUpload: any;\n  filename = '';\n  fileType = '';\n  pdf = false;\n  draft = false;\n  doc = false;\n  isUploading = false;\n  isLoader = false;\n  selectedDocumentType = ''\n  @Input() policyId: any = ''\n  @Input() policyName: any = ''\n  @Input() organization_id: any = '';\n  @Input() member_obj_id: any;\n  @Input() userInfo: any;\n  @Output() disconnectRefresh = new EventEmitter();\n  @Output() editPolicy = new EventEmitter();\n\n\n  baseURL = ''\n\n\n  constructor(private snackBar: SnackBarService,\n    private policyService: PolicyService,\n    private router: Router,\n    private route: ActivatedRoute,\n    platformLocation: PlatformLocation,\n    private iframeService: IframeService\n\n  ) {\n    this.baseURL = location?.origin;\n    if (this.baseURL == \"http://localhost:4200\") {\n      this.baseURL = 'https://dev.v-comply.com'\n    }\n\n  }\n\n  ngOnInit(): void {\n   const  data= JSON.parse(localStorage.getItem('lastFileNameAndType') ?? '\"{}\"');\n   if((data.name!==null && data.name!==undefined)&& (data.type!==null && data.type!==undefined)\n        &&(data.policyId==this.policyId)){\n     this.selectedDocumentType = data.type;\n     this.filename = data.name;\n     localStorage.removeItem('lastFileNameAndType')\n       }\n  }\n\n  handleFileInput(files: FileList): void {\n    this.fileToUpload = files[0];\n    this.filename = this.fileToUpload.name;\n    this.fileType = this.fileToUpload.name.slice(this.fileToUpload.name.lastIndexOf('.') + 1, this.fileToUpload.name.length).toLowerCase();\n    if (this.fileType === 'pdf') {\n      this.uploadFile({ file: this.fileToUpload, fileType: this.fileType });\n    } else if (this.fileType === 'docx') {\n      this.uploadFile({ file: this.fileToUpload, fileType: this.fileType });\n    } else {\n        this.snackBar.show('Please upload a valid file', 'alert');\n    }\n  }\n\n  uploadFile(event: any) {\n    this.isUploading = true;\n    if (event.fileType === 'docx') {\n      this.changeDocType('docx');\n      this.uploadDocxfile(event);\n    } else if (event.fileType === 'pdf') {\n      this.changeDocType('pdf');\n      const uploadData = new FormData();\n      uploadData.append('file', event.file);\n      const path = 'o/' + this.organization_id + '/policy/'\n      this.policyService.uploadFile(uploadData, this.policyId, path).subscribe(res => {\n        if (res) {\n          this.isUploading = false;\n        }\n      }, err => {\n        this.isUploading = false;\n        this.snackBar.show('Oops! Something went wrong and we were unable to complete this action. Let\\'s give it another try, shall we?', 'alert');\n      });\n    }\n  }\n\n  uploadDocxfile(event: any) {\n    const uploadData = new FormData();\n    uploadData.append('file', event.file);\n    const path = 'o/' + this.organization_id + '/policy/'\n    this.policyService.uploadDocxFile(uploadData, this.policyId, path).subscribe(res => {\n      if (res) {\n        this.isUploading = false;\n\n      }\n    }, err => {\n      this.isUploading = false;\n\n      this.snackBar.show('Oops! Something went wrong and we were unable to complete this action. Let\\'s give it another try, shall we?', 'alert');\n    });\n  }\n\n  changeDocType(event:any){\n   this.selectedDocumentType = event;\n  }\n\n  editor(event: string) {\n    this.disconnectRefresh.emit(false);\n\n    if (event === 'draft') {\n      // If it is a draft go directly to the editor\n      const uname = this.userInfo ? this.userInfo.name : '';\n      const uid = this.member_obj_id;\n      const name = this.policyName.trim();\n      const id = this.policyId;\n      this.isLoader = true;\n      this.policyService.savePolicyDetails(uname, uid, id, name, '', 0).subscribe(res => {\n        if (res) {\n          this.isLoader = false;\n          const url = this.baseURL + '/all/policy/edit-policy?id=' + this.policyId\n          this.iframeService.redirectIfInIframe(url, true);\n\n        }\n      }, err => {\n        this.isLoader = false;\n        this.snackBar.show('Oops! Something went wrong and we were unable to complete this action. Let\\'s give it another try, shall we?', 'alert');\n      });\n\n    } else if (event === 'docx') {\n\n      const url = this.baseURL + '/all/policy/edit-policy?id=' + this.policyId\n      this.iframeService.redirectIfInIframe(url, true);\n    } else if (event === 'pdf') {\n      // If it is a pdf send to the workroom\n      const url = this.baseURL + '/all/policy/workroom?id=' + this.policyId\n      this.iframeService.redirectIfInIframe(url, true);\n    }\n    localStorage.setItem('_dId', this.policyId);\n  }\n  editPolicyEmit(){\n    localStorage.setItem('lastFileNameAndType', JSON.stringify({type:this.selectedDocumentType,name:this.filename, policyId: this.policyId}));\n    this.editPolicy.emit()\n  }\n}\n","<!-- <p>create-documents works!</p> -->\n<div class=\"create-documents\">\n    <div class=\"create-documents-container\">\n        <div class=\"message-box\">\n            <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/bulb.svg\" alt=\"\"> -->\n            <svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 480.8 480.8\" style=\"enable-background:new 0 0 480.8 480.8;\" xml:space=\"preserve\">\n                <path style=\"fill:#FFD517;\" d=\"M317.112,314.4c-22.4,22.4-19.6,67.6-19.6,67.6h-113.6c0,0,2.4-45.2-19.6-67.6\n                                        c-24.4-21.6-40-52.8-40-87.6c0-64,52-116,116-116s116,52,116,116C356.312,261.6,341.112,292.8,317.112,314.4L317.112,314.4z\" />\n                <g>\n                    <path style=\"fill:#E5E5E5;\" d=\"M300.712,417.6c0,6-4.8,10.8-10.8,10.8h-98.8c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n                                            h98.4C295.512,406.8,300.712,411.6,300.712,417.6L300.712,417.6z\" />\n                    <path style=\"fill:#E5E5E5;\" d=\"M285.912,462.4c0,6-4.8,10.8-10.8,10.8h-69.2c-6,0-10.8-4.8-10.8-10.8l0,0c0-6,4.8-10.8,10.8-10.8\n                                            h69.2C281.112,451.6,285.912,456.4,285.912,462.4L285.912,462.4z\" />\n                </g>\n                <g>\n                    <path style=\"fill:#210B20;\" d=\"M323.112,318.4c26-23.6,40.8-56.8,40.8-91.6c0-68-55.6-123.6-123.6-123.6s-123.6,55.6-123.6,123.6\n                                            c0,35.6,15.6,69.6,42,92.8c19.6,19.6,17.6,61.2,17.6,61.6c0,2,0.8,4,2,5.6c1.6,1.6,3.6,2.4,5.6,2.4h113.2c2,0,4-0.8,5.6-2.4\n                                            s2-3.6,2-5.6c0-0.4-2-42,17.6-61.6C322.712,319.2,323.112,318.8,323.112,318.4z M311.912,308.4c-0.8,0.4-1.2,1.2-1.6,2\n                                            c-17.6,18.8-20.4,49.6-20.8,64h-98c-0.4-14.8-3.6-46.8-22.4-65.6c-23.6-20.8-37.2-50.4-37.2-81.6c0-60,48.8-108.4,108.4-108.4\n                                            c60,0,108.4,48.8,108.4,108.4C348.712,258,335.512,288,311.912,308.4z\" />\n                    <path style=\"fill:#210B20;\" d=\"M240.312,135.2c-4,0-7.6,3.2-7.6,7.6c0,4,3.2,7.6,7.6,7.6c44.8,0,81.2,36.4,81.2,81.2\n                                            c0,4,3.2,7.6,7.6,7.6c4,0,7.6-3.2,7.6-7.6C336.712,178.4,293.512,135.2,240.312,135.2z\" />\n                    <path style=\"fill:#210B20;\" d=\"M308.312,417.6c0-10.4-8.4-18.4-18.4-18.4h-98.8c-10.4,0-18.4,8.4-18.4,18.4\n                                            c0,10.4,8.4,18.4,18.4,18.4h98.4C299.912,436,308.312,428,308.312,417.6z M289.512,420.8h-98.4c-2,0-3.2-1.6-3.2-3.2\n                                            c0-2,1.6-3.2,3.2-3.2h98.4c2,0,3.2,1.6,3.2,3.2C293.112,419.6,291.512,420.8,289.512,420.8z\" />\n                    <path style=\"fill:#210B20;\" d=\"M275.112,444h-69.2c-10.4,0-18.4,8.4-18.4,18.4c0,10.4,8.4,18.4,18.4,18.4h69.2\n                                            c10.4,0,18.4-8.4,18.4-18.4C293.512,452.4,285.112,444,275.112,444z M275.112,465.6h-69.2c-2,0-3.2-1.6-3.2-3.2\n                                            c0-2,1.6-3.2,3.2-3.2h69.2c2,0,3.2,1.6,3.2,3.2C278.312,464.4,277.112,465.6,275.112,465.6z\" />\n                    <path style=\"fill:#210B20;\" d=\"M247.912,58.8V7.6c0-4-3.2-7.6-7.6-7.6c-4,0-7.6,3.2-7.6,7.6v51.6c0,4,3.2,7.6,7.6,7.6\n                                            C244.712,66.4,247.912,63.2,247.912,58.8z\" />\n                    <path style=\"fill:#210B20;\" d=\"M366.312,38c-3.6-2.4-8-1.2-10.4,2l-28.4,42.8c-2.4,3.6-1.2,8,2,10.4c1.2,0.8,2.8,1.2,4,1.2\n                                            c2.4,0,4.8-1.2,6.4-3.2l28.4-42.8C370.712,45.2,369.512,40.4,366.312,38z\" />\n                    <path style=\"fill:#210B20;\" d=\"M149.912,92.8c1.2,0,2.8-0.4,4-1.2c3.6-2.4,4.4-6.8,2.4-10.4l-27.6-43.2c-2.4-3.6-6.8-4.4-10.4-2.4\n                                            c-3.6,2.4-4.4,6.8-2.4,10.4l27.6,43.2C145.112,91.6,147.512,92.8,149.912,92.8z\" />\n                    <path style=\"fill:#210B20;\" d=\"M43.912,128.8l45.2,24.4c1.2,0.8,2.4,0.8,3.6,0.8c2.8,0,5.2-1.6,6.8-4c2-3.6,0.8-8.4-3.2-10.4\n                                            l-45.2-24.4c-3.6-2-8.4-0.8-10.4,3.2C39.112,122.4,40.312,126.8,43.912,128.8z\" />\n                    <path style=\"fill:#210B20;\" d=\"M387.912,154.4c1.2,0,2.4-0.4,3.6-0.8l45.2-24.4c3.6-2,5.2-6.4,3.2-10.4c-2-3.6-6.4-5.2-10.4-3.2\n                                            l-45.2,24.4c-3.6,2-5.2,6.4-3.2,10.4C382.312,152.8,385.112,154.4,387.912,154.4z\" />\n                </g>\n            </svg>\n            <p>There are multiple ways to create a policy on VComply. You can either draft it from scratch using\n                VComply’s online editor or upload an existing DOCX or PDF file.</p>\n        </div>\n        <ul>\n            <li>\n                <label [class.active]=\"selectedDocumentType=='draft'\">\n                    <input type=\"radio\" name=\"docType\" (change)=\"changeDocType('draft')\" [checked]=\"selectedDocumentType==='draft'\" >\n                    <div class=\"wrapper\" style=\"font-family: unset !important;\">\n                        <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/draft.svg\" alt=\"\"> -->\n                        <svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 64 64\" style=\"enable-background:new 0 0 64 64;\" xml:space=\"preserve\">\n                            <style type=\"text/css\">\n                                .p1{fill:#F8F8F8;}\n                                .p2{fill:#747576;}\n                                .p3{fill:#BDBDBD;}\n                                .p4{fill:#DBDBDB;}\n                                .p5{fill:#1E5DD3;}\n                                .p6{fill:#FFFFFF;}\n                            </style>\n                            <path class=\"p1\" d=\"M52,16.2V58c0,1.1-0.9,2-2,2H14c-1.1,0-2-0.9-2-2V6c0-1.1,0.9-2,2-2h25.9\" />\n                            <image style=\"overflow:visible;\" width=\"1920\" height=\"1080\" xlink:href=\"94778146.jpg\" transform=\"matrix(1 0 0 1 -8160 -8160)\">\n                            </image>\n                            <path class=\"p2\" d=\"M52,12v12H12V6c0-1.1,0.9-2,2-2h30\" />\n                            <path class=\"p3\" d=\"M44,4v6.7c0,0.7,0.6,1.3,1.3,1.3H52\" />\n                            <g>\n                                <path class=\"p4\" d=\"M46.2,30.1H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,30.1,46.2,30.1z\" />\n                            </g>\n                            <g>\n                                <path class=\"p4\" d=\"M46.2,34.5H17.9c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1h28.3c0.6,0,1,0.4,1,1C47.2,34.1,46.8,34.5,46.2,34.5z\" />\n                            </g>\n                            <g>\n                                <path class=\"p4\" d=\"M46.2,39H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,39,46.2,39z\" />\n                            </g>\n                            <g>\n                                <path class=\"p4\" d=\"M46.2,43.4H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,43.4,46.2,43.4z\" />\n                            </g>\n                            <g>\n                                <path class=\"p4\" d=\"M46.2,47.8H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,47.8,46.2,47.8z\" />\n                            </g>\n                            <g>\n                                <path class=\"p4\" d=\"M46.2,52.2H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,52.2,46.2,52.2z\" />\n                            </g>\n                            <g>\n                                <path class=\"p4\" d=\"M46.2,56.6H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,56.6,46.2,56.6z\" />\n                            </g>\n                            <g>\n                                <path class=\"p6\" d=\"M24.6,16.9c-0.2,0.4-0.6,0.8-1,1s-1,0.4-1.6,0.4h-2v-5.6h2c0.6,0,1.1,0.1,1.6,0.3c0.4,0.2,0.8,0.6,1,1\n                                c0.2,0.4,0.4,0.9,0.4,1.5C24.9,16,24.8,16.5,24.6,16.9z M23.3,16.8c0.3-0.3,0.5-0.8,0.5-1.3c0-0.6-0.2-1-0.5-1.4\n                                c-0.3-0.3-0.8-0.5-1.4-0.5h-0.8v3.7h0.8C22.5,17.2,23,17.1,23.3,16.8z\" />\n                                <path class=\"p6\" d=\"M28.7,18.2L27.4,16h-0.5v2.2h-1.1v-5.6h2.2c0.7,0,1.2,0.2,1.5,0.5s0.5,0.7,0.5,1.3c0,0.4-0.1,0.8-0.4,1.1\n                                s-0.6,0.5-1,0.6l1.4,2.3H28.7z M26.9,15.3h0.9c0.6,0,1-0.3,1-0.9c0-0.3-0.1-0.5-0.2-0.6c-0.2-0.2-0.4-0.2-0.7-0.2h-0.9V15.3z\" />\n                                <path class=\"p6\" d=\"M34.1,17.1h-2.3l-0.4,1.1h-1.2l2.1-5.6h1.3l2.1,5.6h-1.2L34.1,17.1z M33.8,16.3L33,13.9l-0.8,2.4H33.8z\" />\n                                <path class=\"p6\" d=\"M39.8,12.6v0.9h-2.4V15h1.9v0.9h-1.9v2.4h-1.1v-5.6H39.8z\" />\n                                <path class=\"p6\" d=\"M44.4,12.6v0.9h-1.6v4.8h-1.1v-4.8h-1.6v-0.9H44.4z\" />\n                            </g>\n                            <path class=\"p5\" d=\"M32,33.1c-5.2,0-9.4,4.2-9.4,9.4s4.2,9.4,9.4,9.4s9.4-4.2,9.4-9.4C41.4,37.3,37.2,33.2,32,33.1z\" />\n                            <g>\n                                <path class=\"p6\" d=\"M36.1,40.8l-5.8,5.8L28,44.4l5.8-5.8c0.2-0.2,0.4-0.2,0.6,0l1.7,1.7C36.2,40.4,36.2,40.7,36.1,40.8z\" />\n                                <path class=\"p6\" d=\"M36.8,38c-0.5-0.5-1.3-0.5-1.7,0l-0.4,0.3c0,0,0.1,0,0.1,0.1l1.7,1.7c0,0,0,0.1,0.1,0.1l0.4-0.4\n                                c0.2-0.2,0.4-0.5,0.4-0.9C37.1,38.5,37,38.2,36.8,38L36.8,38z\" />\n                                <path class=\"p6\" d=\"M27.9,44.9l-1,2.6c-0.1,0.1,0,0.2,0.1,0.4c0.1,0.1,0.1,0.1,0.2,0.1c0.1,0,0.1,0,0.1,0l2.6-1L27.9,44.9z\" />\n                                <path class=\"p6\" d=\"M30.2,41.3c0.1,0,0.2-0.1,0.2-0.1l2.2-2.2c0.1-0.1,0.3-0.1,0.4-0.1l0.5-0.5c-0.4-0.3-0.9-0.3-1.3,0.1L30,40.7\n                                c-0.1,0.1-0.1,0.4,0,0.5C30,41.2,30,41.3,30.2,41.3L30.2,41.3z\" />\n                            </g>\n                        </svg>\n                        <div class=\"label-right\">\n                            <div class=\"text\"><strong>Create</strong> a Policy</div>\n                            <div class=\"check\">\n                                <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                                    <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                                    <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n                                </svg>\n                            </div>\n                        </div>\n                    </div>\n                </label>\n            </li>\n            <li>\n                <label [class.active]=\"selectedDocumentType=='docx'\">\n                    <!-- <input type=\"radio\" name=\"docType\"> -->\n                    <div class=\"wrapper\" style=\"font-family: unset !important;\">\n                        <div class=\"line-progress\" *ngIf=\"selectedDocumentType=='docx' && isUploading\">\n                            <div class=\"line-progress-bar\"></div>\n                        </div>\n                        <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/docx.svg\" alt=\"\"> -->\n                        <!-- <span class=\"text\"  *ngIf=\"!(selectedDocumentType=='docx' && filename)\">Upload a <strong>DOCX</strong></span>\n                        <span class=\"text\" *ngIf=\"(selectedDocumentType=='docx') && filename\">\n                            {{filename}}\n                        </span> -->\n                        <svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 64 64\" style=\"enable-background:new 0 0 64 64;\" xml:space=\"preserve\">\n                            <style type=\"text/css\">\n                                .d1{fill:#F8F8F8;}\n                                .d2{fill:#337DBE;}\n                                .d3{fill:#3C92DF;}\n                                .d4{fill:#DBDBDB;}\n                                .d5{fill:#F2BF19;}\n                                .d6{fill:#FAFAFA;}\n                            </style>\n                            <path class=\"d1\" d=\"M52,16.2V58c0,1.1-0.9,2-2,2H14c-1.1,0-2-0.9-2-2V6c0-1.1,0.9-2,2-2h25.9\" />\n                            <path class=\"d2\" d=\"M52,12v12H12V6c0-1.1,0.9-2,2-2h30\" />\n                            <path class=\"d3\" d=\"M44,4v6.7c0,0.7,0.6,1.3,1.3,1.3H52\" />\n                            <g>\n                                <path class=\"d4\" d=\"M46.2,30.1H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,30.1,46.2,30.1z\" />\n                            </g>\n                            <g>\n                                <path class=\"d4\" d=\"M46.2,34.5H17.9c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1h28.3c0.6,0,1,0.4,1,1C47.2,34.1,46.8,34.5,46.2,34.5z\" />\n                            </g>\n                            <g>\n                                <path class=\"d4\" d=\"M46.2,39H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,39,46.2,39z\" />\n                            </g>\n                            <g>\n                                <path class=\"d4\" d=\"M46.2,43.4H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,43.4,46.2,43.4z\" />\n                            </g>\n                            <g>\n                                <path class=\"d4\" d=\"M46.2,47.8H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,47.8,46.2,47.8z\" />\n                            </g>\n                            <g>\n                                <path class=\"d4\" d=\"M46.2,52.2H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,52.2,46.2,52.2z\" />\n                            </g>\n                            <g>\n                                <path class=\"d4\" d=\"M46.2,56.6H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,56.6,46.2,56.6z\" />\n                            </g>\n                            <g>\n                                <path class=\"d1\" d=\"M25.4,16.9c-0.2,0.4-0.6,0.8-1,1s-1,0.4-1.6,0.4h-2v-5.6h2c0.6,0,1.1,0.1,1.6,0.3c0.4,0.2,0.8,0.6,1,1\n                                c0.2,0.4,0.4,0.9,0.4,1.5C25.7,16,25.6,16.5,25.4,16.9z M24.1,16.8c0.3-0.3,0.5-0.8,0.5-1.3c0-0.6-0.2-1-0.5-1.4\n                                c-0.3-0.3-0.8-0.5-1.4-0.5h-0.8v3.7h0.8C23.3,17.2,23.8,17.1,24.1,16.8z\" />\n                                <path class=\"d1\" d=\"M30.7,12.9c0.4,0.2,0.8,0.6,1,1s0.4,0.9,0.4,1.5s-0.1,1.1-0.4,1.5c-0.2,0.4-0.6,0.8-1,1\n                                c-0.4,0.2-0.9,0.4-1.4,0.4c-0.5,0-1-0.1-1.4-0.4c-0.4-0.2-0.8-0.6-1-1c-0.2-0.4-0.4-0.9-0.4-1.5s0.1-1.1,0.4-1.5s0.6-0.8,1-1\n                                c0.4-0.2,0.9-0.4,1.4-0.4C29.8,12.5,30.2,12.6,30.7,12.9z M28.4,13.8c-0.3,0.1-0.4,0.4-0.6,0.6c-0.1,0.3-0.2,0.6-0.2,1\n                                c0,0.4,0.1,0.7,0.2,1c0.1,0.3,0.3,0.5,0.6,0.6c0.3,0.1,0.5,0.2,0.9,0.2c0.3,0,0.6-0.1,0.9-0.2c0.3-0.1,0.4-0.4,0.6-0.6\n                                c0.1-0.3,0.2-0.6,0.2-1c0-0.4-0.1-0.7-0.2-1c-0.1-0.3-0.3-0.5-0.6-0.6c-0.3-0.1-0.5-0.2-0.9-0.2C28.9,13.6,28.6,13.6,28.4,13.8z\" />\n                                <path class=\"d1\" d=\"M37.2,13.1c0.5,0.4,0.8,0.9,0.9,1.5H37c-0.1-0.3-0.3-0.5-0.6-0.7c-0.3-0.2-0.6-0.3-0.9-0.3\n                                c-0.3,0-0.6,0.1-0.8,0.2s-0.4,0.4-0.6,0.6c-0.1,0.3-0.2,0.6-0.2,1c0,0.4,0.1,0.7,0.2,1c0.1,0.3,0.3,0.5,0.6,0.6s0.5,0.2,0.8,0.2\n                                c0.4,0,0.7-0.1,0.9-0.3c0.3-0.2,0.4-0.4,0.6-0.7h1.2c-0.1,0.6-0.5,1.1-0.9,1.5c-0.5,0.4-1,0.5-1.8,0.5c-0.5,0-1-0.1-1.4-0.4\n                                c-0.4-0.2-0.7-0.6-1-1c-0.2-0.4-0.3-0.9-0.3-1.5c0-0.6,0.1-1.1,0.3-1.5c0.2-0.4,0.5-0.8,1-1c0.4-0.2,0.9-0.4,1.4-0.4\n                                C36.2,12.5,36.8,12.7,37.2,13.1z\" />\n                                <path class=\"d1\" d=\"M42.3,18.2L41,16.3l-1.1,1.9h-1.3l1.8-2.9l-1.8-2.8h1.3l1.2,1.9l1.1-1.9h1.3l-1.8,2.8l1.9,2.8H42.3z\" />\n                            </g>\n                            <path class=\"d5\" d=\"M32,33.1c-5.2,0-9.4,4.2-9.4,9.4s4.2,9.4,9.4,9.4s9.4-4.2,9.4-9.4C41.4,37.3,37.2,33.2,32,33.1z\" />\n                            <path class=\"d6\" d=\"M38,41.8l-5.7-5.7c-0.2-0.2-0.4-0.2-0.6,0L26,41.8c-0.1,0.1-0.1,0.2-0.1,0.3c0,0.2,0.2,0.4,0.4,0.4h2.9v6.1\n                            c0,0.2,0.2,0.4,0.4,0.4h4.9c0.2,0,0.4-0.2,0.4-0.4v-6.1h2.9c0.2,0,0.3-0.1,0.4-0.3C38.1,42.1,38.1,42,38,41.8z\" />\n                        </svg>\n                        <div class=\"label-right\">\n                            <div class=\"text\">\n                                <ng-container *ngIf=\"!(selectedDocumentType=='docx' && filename)\">Upload a <strong>DOCX</strong></ng-container>\n                                <ng-container *ngIf=\"(selectedDocumentType=='docx') && filename\">{{filename}}</ng-container>\n                            </div>\n                            <div class=\"check\">\n                                <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                                    <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                                    <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n                                </svg>\n                            </div>\n                        </div>\n                    </div>\n                    <input type=\"file\" accept=\".docx\" id=\"DOCfile\" hidden\n                    (change)=\"handleFileInput($event.target.files)\" onclick=\"event.stopPropagation();\" #docxUploadButton>\n                </label>\n            </li>\n            <li>\n                <label [class.active]=\"selectedDocumentType=='pdf'\">\n                    <!-- <input type=\"radio\" name=\"docType\"> -->\n                    <input type=\"file\" accept=\".pdf\" id=\"PDFfile\" hidden\n                    (change)=\"handleFileInput($event.target.files)\" onclick=\"event.stopPropagation();\" #pdfUploadButton>\n                    <div class=\"wrapper\" style=\"font-family: unset !important;\">\n                        <div class=\"line-progress\" *ngIf=\"selectedDocumentType=='pdf' && isUploading\">\n                            <div class=\"line-progress-bar\"></div>\n                        </div>\n                        <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/pdf.svg\" alt=\"\">\n                        <div class=\"text\" *ngIf=\"!(selectedDocumentType=='pdf' && filename)\">Upload a\n                            <strong>PDF</strong>\n                        </div>\n                        <div class=\"text\" *ngIf=\"(selectedDocumentType=='pdf') && filename\">\n                            {{filename}}\n                        </div> -->\n                        <svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 64 64\" style=\"enable-background:new 0 0 64 64;\" xml:space=\"preserve\">\n                            <style type=\"text/css\">\n                                .pd1{fill:#F8F8F8;}\n                                .pd2{fill:#EE3939;}\n                                .pd3{fill:#F95858;}\n                                .pd4{fill:#DBDBDB;}\n                                .pd5{fill:#34AA44;}\n                                .pd6{fill:#FAFAFA;}\n                            </style>\n                            <path class=\"pd1\" d=\"M52,16.2V58c0,1.1-0.9,2-2,2H14c-1.1,0-2-0.9-2-2V6c0-1.1,0.9-2,2-2h25.9\" />\n                            <path class=\"pd2\" d=\"M52,12v12H12V6c0-1.1,0.9-2,2-2h30\" />\n                            <path class=\"pd3\" d=\"M44,4v6.7c0,0.7,0.6,1.3,1.3,1.3H52\" />\n                            <g>\n                                <path class=\"pd4\" d=\"M46.2,30.1H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,30.1,46.2,30.1z\" />\n                            </g>\n                            <g>\n                                <path class=\"pd4\" d=\"M46.2,34.5H17.9c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1h28.3c0.6,0,1,0.4,1,1C47.2,34.1,46.8,34.5,46.2,34.5z\" />\n                            </g>\n                            <g>\n                                <path class=\"pd4\" d=\"M46.2,39H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,39,46.2,39z\" />\n                            </g>\n                            <g>\n                                <path class=\"pd4\" d=\"M46.2,43.4H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,43.4,46.2,43.4z\" />\n                            </g>\n                            <g>\n                                <path class=\"pd4\" d=\"M46.2,47.8H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,47.8,46.2,47.8z\" />\n                            </g>\n                            <g>\n                                <path class=\"pd4\" d=\"M46.2,52.2H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,52.2,46.2,52.2z\" />\n                            </g>\n                            <g>\n                                <path class=\"pd4\" d=\"M46.2,56.6H17.9c-0.6,0-1-0.4-1-1s0.4-1,1-1h28.3c0.6,0,1,0.4,1,1S46.8,56.6,46.2,56.6z\" />\n                            </g>\n                            <g>\n                                <path class=\"pd1\" d=\"M26.2,16.2v2.1h-1.1v-5.6h2.1c0.7,0,1.2,0.2,1.5,0.5c0.3,0.3,0.5,0.8,0.5,1.3c0,0.5-0.2,1-0.5,1.3\n                                c-0.3,0.3-0.8,0.5-1.5,0.5H26.2z M28,14.4c0-0.3-0.1-0.5-0.2-0.6c-0.2-0.1-0.4-0.2-0.8-0.2h-0.8v1.7H27C27.7,15.2,28,15,28,14.4z\" />\n                                <path class=\"pd1\" d=\"M34.5,16.9c-0.2,0.4-0.6,0.8-1,1s-1,0.4-1.6,0.4h-2v-5.6h2c0.6,0,1.1,0.1,1.6,0.3c0.4,0.2,0.8,0.6,1,1\n                                c0.2,0.4,0.4,0.9,0.4,1.5C34.8,16,34.7,16.5,34.5,16.9z M33.2,16.8c0.3-0.3,0.5-0.8,0.5-1.3c0-0.6-0.2-1-0.5-1.4\n                                c-0.3-0.3-0.8-0.5-1.4-0.5H31v3.7h0.8C32.4,17.2,32.9,17.1,33.2,16.8z\" />\n                                <path class=\"pd1\" d=\"M39.2,12.6v0.9h-2.4V15h1.9v0.9h-1.9v2.4h-1.1v-5.6H39.2z\" />\n                            </g>\n                            <path class=\"pd5\" d=\"M32,33.1c-5.2,0-9.4,4.2-9.4,9.4s4.2,9.4,9.4,9.4s9.4-4.2,9.4-9.4C41.4,37.3,37.2,33.2,32,33.1z\" />\n                            <path class=\"pd6\" d=\"M38,41.8l-5.7-5.7c-0.2-0.2-0.4-0.2-0.6,0L26,41.8c-0.1,0.1-0.1,0.2-0.1,0.3c0,0.2,0.2,0.4,0.4,0.4h2.9v6.1\n                            c0,0.2,0.2,0.4,0.4,0.4h4.9c0.2,0,0.4-0.2,0.4-0.4v-6.1h2.9c0.2,0,0.3-0.1,0.4-0.3C38.1,42.1,38.1,42,38,41.8z\" />\n                        </svg>\n                        <div class=\"label-right\">\n                            <div class=\"text\">\n                                <ng-container *ngIf=\"!(selectedDocumentType=='pdf' && filename)\">Upload a <strong>PDF</strong></ng-container>\n                                <ng-container *ngIf=\"(selectedDocumentType=='pdf') && filename\">{{filename}}</ng-container>\n                            </div>\n                            <div class=\"check\">\n                                <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n                                    <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n                                    <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n                                </svg>\n                            </div>\n                        </div>\n                    </div>\n                </label>\n            </li>\n        </ul>\n    </div>\n</div>\n<div class=\"bottom-button\">\n    <button type=\"button\" class=\"back\" (click)=\"editPolicyEmit()\"><i class=\"icons\">&#xe91d;</i> Back</button>\n    <button type=\"button\" class=\"next\" (click)=\"editor(selectedDocumentType)\" [class.disabled]=\"!selectedDocumentType\">Next <i class=\"icons\">&#xe91e;</i></button>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'withinData'\n})\nexport class WithinDataPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    if(value.parent_items_name) {\n      return `<br><span class='within-row'><span class='within'>WITHIN</span> <span class='within-value'>${value.parent_items_name}</span></span>`\n    } else {\n      return ''\n    }\n  }\n\n}","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  Optional,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { Configurations } from '../../../configurations';\nimport { ResponsibilityService } from '../../../workflow-services/responsibility.service';\n\n@Component({\n  selector: 'app-parent-table',\n  templateUrl: './parent-table.component.html',\n  styleUrls: ['./parent-table.component.less'],\n})\nexport class ParentTableComponent implements OnInit {\n  @Input() tableList: any[] = [];\n  @Input() search = '';\n\n  @Output() closeParent = new EventEmitter();\n  @Output() expandCategory = new EventEmitter();\n  @Output() entrustFramework = new EventEmitter();\n\n  parentViewData: Array<any> = [];\n  libraryReport = [];\n  entities = [];\n  currentCategory: any;\n  loader = false;\n  currentEntity: any;\n  searchText = '';\n  env: any;\n  picUrl: string = '';\n  constructor(\n    private responsibilityService: ResponsibilityService,\n    @Optional() config?: Configurations\n  ) {\n    this.env = config?.envConfig;\n    this.picUrl = this.env.s3Url + this.env.s3Bucket + this.env.profile;\n  }\n\n  ngOnChanges() {\n    this.searchText = this.search;\n  }\n\n  ngOnInit(): void {\n    this.parentViewData = [...new Set(this.tableList)];\n  }\n\n  getCategoryDetailsById(id: any) {\n    if (!id || id == null) {\n      this.tableList = [...new Set(this.parentViewData)];\n      return;\n    }\n    this.loader = true;\n    this.search = '';\n    this.responsibilityService.getCategoryDetailsById(id).subscribe(\n      (res: any) => {\n        this.expandCategory.emit(cloneDeep(res[0]));\n        this.currentCategory = cloneDeep(res[0]);\n        this.libraryReport = cloneDeep(res[0].libraryReport);\n        this.entities = cloneDeep(res[0].all_entities_name);\n        this.tableList = cloneDeep(res).slice(1);\n        this.currentEntity = undefined;\n        this.loader = false;\n      },\n      (err) => {\n        console.error(err);\n        this.loader = false;\n      }\n    );\n  }\n\n  entrustFrameworkDetails(report: any) {\n    this.entrustFramework.emit(report);\n  }\n  entity_open(data: any) {\n    this.loader = true;\n    this.responsibilityService\n      .getRCDetailsOfFramework(data._id, this.currentCategory._id)\n      .subscribe(\n        (res: any) => {\n          this.expandCategory.emit(cloneDeep(res[0]));\n          this.currentEntity = cloneDeep(res[0].all_entities_name[0].rc_name);\n          this.libraryReport = cloneDeep(res[0].libraryReport);\n          this.entities = cloneDeep(res[0].all_entities_name);\n          this.entities = this.entities.filter(\n            (rc: any) => rc._id !== data._id\n          );\n          this.tableList = cloneDeep(res).slice(1);\n          this.loader = false;\n        },\n        (err) => {\n          console.error(err);\n          this.loader = false;\n        }\n      );\n  }\n}\n","<!-- <p>parent-table works!</p> -->\n<table class=\"framework-table\">\n    <thead>\n        <tr>\n            <th class=\"sl-number\">#</th>\n            <th>Name</th>\n            <th>Total</th>\n            <th>Assigned</th>\n            <th>UnAssigned</th>\n            <th></th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr *ngFor=\"let report of libraryReport | filter: search\" class=\"library\">\n            <td class=\"sl-number icon\">\n                <span></span>\n            </td>\n            <td class=\"name\">\n                <div class=\"vx-d-flex vx-align-center\">\n                    <div *ngIf=\"report?.is_assigned\" class=\"vx-avatar-group\">\n                        <div *ngIf=\"report?.assigned_by_pic != '' || report?.assigned_by_short != ''\" class=\"vx-avatar md\" #entrustedBy appTooltip=\"Entrusted by: {{report?.assigned_by_name}}\"\n                            placement=\"bottom-left\" delay=\"0\" [tooltipMandatory]=\"true\"> \n                            <img [src]=\"report.assigned_by_pic\" alt=\"\" *ngIf=\"report?.assigned_by_pic\">\n                            <span class=\"green\" *ngIf=\"!report?.assigned_by_pic\">{{report?.assigned_by_short}}</span> \n                        </div>\n                        <div *ngIf=\"report?.employee_name != ''\" class=\"vx-avatar md\" #entrustedTo appTooltip=\"Entrusted to: {{report?.employee_name}}\"\n                            placement=\"bottom-left\" delay=\"0\" [tooltipMandatory]=\"true\">\n                            <img *ngIf=\"report?.employee_pic\" [src]=\"report.employee_pic\" alt=\"\">\n                            <span class=\"green\" *ngIf=\"!report?.employee_pic\">\n                                {{report?.employee_short}}\n                            </span>\n                        </div>\n                        <div *ngIf=\"report?.employee_name === '' && report?.multipleAssigneeArr?.length > 0\" class=\"vx-avatar md\">\n                            <span class=\"green\" appPopover (click)=\"multipleUsers.popover()\" placement=\"left\">+{{report?.multipleAssigneeArr?.length}}</span>\n                        </div>\n                        \n                    </div>\n                    <span class=\"title\" appTooltip=\"{{report.report_name}}\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\"> <span class=\"id\">{{ report?.is_assigned == 1 ? '[ ' + report?.cid + '] ' : ' ' }}</span>{{report.report_name}}</span>\n                </div>\n                <app-popover #multipleUsers>\n                    <div class=\"wf-action-list\">\n                        <ul class=\"action-item\">\n                            <li>\n                                <div class=\"avatar-card\" *ngFor=\" let assignee of report?.multipleAssigneeArr\">\n                                    <div class=\"avatar\" >\n                                        <span *ngIf=\"assignee?.profile_pic === ''\">{{assignee?.member_short_name}}</span>\n                                        <img *ngIf=\"assignee?.profile_pic !== ''\" [src]=\"assignee.employee_pic\" alt=\"\">\n                                    </div>\n                                    \n                                    <span class=\"value\">{{assignee?.member_name}}</span>\n                                </div>\n                            </li>\n                        </ul>\n                    </div>\n                </app-popover>\n            </td>\n            <td class=\"total\"></td>\n            <td class=\"assigned\"></td>\n            <td class=\"unassigned\">\n                <button type=\"button\" [disabled]=\"report?.is_assigned == 1 && currentCategory?.visibility == 2\" (click)=\"entrustFrameworkDetails(report)\" class=\"entrust\">Entrust</button>\n            </td>\n            <td class=\"action\">\n            </td>\n        </tr>\n        <tr *ngFor=\"let entity of entities  | filter: search\" class=\"library\">\n            <td class=\"sl-number icon\">\n                <i class=\"icons\">&#xe99f;</i>\n            </td>\n            <td class=\"name\" appTooltip=\"{{entity?.rc_name}} <br><span class='within-row'><span class='within'>WITHIN</span><span class='within-value'>{{entity?.parent_rc}}</span></span>\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\">\n                <span class=\"title\">{{entity?.rc_name}}</span>\n                <span class=\"within-row\" *ngIf=\"entity?.parent_rc?.length > 0\">\n                    <span class=\"within\">WITHIN</span>\n                    <span class=\"text\" *ngFor=\"let parent of entity?.parent_rc;let rc = index\">\n                        <ng-container *ngIf=\"rc>0\"> > </ng-container> {{parent}}\n                    </span>\n                </span>\n            </td>\n            <td class=\"total\">\n                <span class=\"text\">{{entity?.total_control}}</span>\n            </td>\n            <td class=\"assigned\">\n                <span class=\"text\">{{ entity?.mapped_control }}</span>\n                <span class=\"text\">{{ entity?.total_control == 0 ? 0 : ((entity?.mapped_control / entity?.total_control) * 100 | number: '1.0-0') }}%</span>\n            </td>\n            <td class=\"unassigned\">\n\n                <span class=\"text\">{{  entity?.total_control - entity?.mapped_control }}</span>\n                <span class=\"text\">{{ entity?.total_control == 0 ? 0 : (100 - (entity?.mapped_control / entity?.total_control) * 100 | number: '1.0-0') }}%</span>\n            </td>\n            <td class=\"action\">\n                <button type=\"button\"\n                    [disabled]=\"(entity?.all_entities_name?.length == 0 && entity?.libraryReport?.length == 0) || entity?.total_control < 1\"\n                    (click)=\"entity_open(entity)\"><i class=\"icons\">&#xe910;</i></button>\n            </td>\n        </tr>\n\n        <tr *ngFor=\"let data of tableList  | filter: search; let i = index\">\n            <td class=\"serial-number\">\n                <span>{{i+1}}</span>\n            </td>\n            <td class=\"name\" appTooltip=\"{{data?.item_name}} {{data|withinData}}\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\">\n                <span class=\"title\">{{data?.item_name}}</span>\n                <span class=\"within-row\" *ngIf=\"data?.parent_items_name\">\n                    <span class=\"within\">WITHIN</span>\n                    <span class=\"text\">{{data?.parent_items_name}}</span>\n                </span>\n                <!-- <span>{{data?.item_name}}</span>\n                <span *ngIf=\"data?.parent_items_name\">WITHIN {{data.parent_items_name}}</span> -->\n            </td>\n            <td class=\"total\">\n                <span class=\"text\">{{data?.total_control}}</span>\n            </td>\n            <td class=\"assigned\">\n                <span class=\"text\">{{ data?.mapped_control }}</span>\n                <span class=\"text\">{{ data?.total_control == 0 ? 0 : ((data?.mapped_control / data?.total_control) * 100 | number: '1.0-0') }}%</span>\n            </td>\n            <td class=\"unassigned\">\n                <span class=\"text\">{{data?.total_control - data?.mapped_control }}</span>\n                <span class=\"text\">{{ +data?.total_control == 0 ? 0 : (100 - (data?.mapped_control / data?.total_control) * 100 | number: '1.0-0') }}%</span>\n            </td>\n            <td class=\"action\">\n                <button type=\"button\"\n                    [disabled]=\"(data?.all_entities_name?.length < 1 && data?.libraryReport?.length < 1) && (data?.total_control < 1)\"\n                    (click)=\"getCategoryDetailsById(data?._id)\"><i class=\"icons\">&#xe910;</i></button>\n            </td>\n        </tr>\n    </tbody>\n</table>\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SnackBarComponent } from './snack-bar.component';\n\n@NgModule({\n  declarations: [SnackBarComponent],\n  imports: [CommonModule],\n  exports: [SnackBarComponent],\n})\nexport class SnackBarModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SmileyDialogInlineComponent } from './smiley-dialog-inline.component';\n\n@NgModule({\n  declarations: [SmileyDialogInlineComponent],\n  imports: [CommonModule],\n\n  exports: [SmileyDialogInlineComponent],\n})\nexport class SmileyDialogInlineModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { cloneDeep } from 'lodash';\n\n@Pipe({\n  name: 'rcTreeToolTip'\n})\nexport class rcTreeToolTipPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    let data = cloneDeep(value);\n    if(args[0]) {\n      data = data?.reverse();\n    }\n    if(value?.length) {\n        return data?.join(' < ');\n    } else {\n        return '';\n    }\n  }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PopoverHoverComponent } from './popover-hover.component';\nimport { PopoverHoverDirective } from './popover-hover.directive';\nimport { PopoverHoverService } from './popover-hover.service';\n\n\n\n@NgModule({\n  declarations: [\n    PopoverHoverComponent,\n    PopoverHoverDirective\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    PopoverHoverComponent,\n    PopoverHoverDirective\n  ],\n  providers: [PopoverHoverService],\n})\nexport class PopoverHoverModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-preview-container',\n  templateUrl: './preview-container.component.html',\n  styleUrls: ['./preview-container.component.less']\n})\nexport class PreviewContainerComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"preview-body\">\n    <div class=\"preview-heading vx-bg-white vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\">\n        <div class=\"vx-avatar-group vx-align-center vx-mr-2\">\n            <div class=\"vx-avatar md\">\n                <span class=\"blue\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">Hk</span>\n                <img *ngIf=\"false\" src=\"https://s3-eu-west-1.amazonaws.com/eu.v-comply.com/profile_pic/thumb/1591875227667_vcomply.png\" alt=\"\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n            </div>\n            <div class=\"vx-avatar md\">\n                <span class=\"green\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">Hk</span>\n                <img *ngIf=\"false\" src=\"https://s3-eu-west-1.amazonaws.com/eu.v-comply.com/profile_pic/thumb/1591875227667_vcomply.png\" alt=\"\" [appTooltip]=\"'Harshvardhan Kariwala'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n            </div>\n        </div>\n        <i class=\"icons star vx-fs-12 vx-mr-2\" [class.active]=\"false\">&#xea70;</i>\n        <div class=\"name\">\n            <div class=\"id vx-fs-11 vx-fw-500 vx-paragraph-txt vx-tt-uppercase vx-lh-4\">[CID-19110027]</div>\n            <div class=\"value vx-fs-14 vx-labl-txt vx-pr-5 vx-lh-5\" [appTooltip]=\"'Data Protection Impact Assessment (DPIA) (RSK-10)'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Data Protection Impact Assessment (DPIA) (RSK-10)</div>\n        </div>\n    </div>\n    <!-- <app-preview-details></app-preview-details> -->\n    <div class=\"preview-inner vx-mt-1 vx-mb-5 vx-pt-5\">\n        <div class=\"inside vx-pt-5\">\n            <!-- <app-question-welcome></app-question-welcome> -->\n            <app-radio-question></app-radio-question>\n            <app-checkbox-question></app-checkbox-question>\n            <!-- <app-image-radio-question></app-image-radio-question>\n            <app-star-rating></app-star-rating> -->\n            <app-single-textbox></app-single-textbox>\n            <!-- <app-comment-question></app-comment-question>\n            <app-rating-table></app-rating-table> -->\n            <app-select-question></app-select-question>\n            <!-- <app-select-option-rating></app-select-option-rating>\n            <app-ranking></app-ranking>\n            <app-slider-question></app-slider-question>\n            <app-multiple-textbox></app-multiple-textbox> -->\n            <app-date-time></app-date-time>\n            <app-file-upload></app-file-upload>\n        </div>\n        <div *ngIf=\"false\" class=\"inside vx-pt-5\">\n            <!-- <app-question-loader></app-question-loader> -->\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { ASSETS } from '../../../../../../lib/constants/assets.constants';\n@Component({\n  selector: 'app-thank-you',\n  templateUrl: './thank-you.component.html',\n  styleUrls: ['./thank-you.component.less'],\n})\nexport class ThankYouComponent implements OnInit {\n  ASSETS = ASSETS;\n\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"thank-you-preview vx-text-center vx-mt-5\">\n  <div class=\"image\"><img [src]=\"ASSETS.thank_you_image\" /></div>\n  <div class=\"heading vx-fs-16 vx-paragraph-txt vx-lih-6 vx-mb-5\">\n    Thank you heading\n  </div>\n  <div class=\"details vx-fs-14 vx-label-txt vx-pb-3 vx-mb-5\">\n    In publishing and graphic design, Lorem ipsum is a placeholder text commonly\n    used to demonstrate the visual form of a document or a typeface without\n    relying on meaningful content. Lorem ipsum may be used as a placeholder\n    before the final copy is available.\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PreviewWrapperComponent } from './preview-wrapper/preview-wrapper.component';\nimport { PreviewMultipleChoiceComponent } from './preview-multiple-choice/preview-multiple-choice.component';\nimport { PreviewCheckboxComponent } from './preview-checkbox/preview-checkbox.component';\nimport { PreviewImageChoiceComponent } from './preview-image-choice/preview-image-choice.component';\nimport { PreviewStarRatingComponent } from './preview-star-rating/preview-star-rating.component';\nimport { PreviewSingleTextboxComponent } from './preview-single-textbox/preview-single-textbox.component';\nimport { PreviewCommentBoxComponent } from './preview-comment-box/preview-comment-box.component';\nimport { PreviewMatrixDropdownComponent } from './preview-matrix-dropdown/preview-matrix-dropdown.component';\nimport { PreviewDropdownComponent } from './preview-dropdown/preview-dropdown.component';\nimport { PreviewMatrixRatingScaleComponent } from './preview-matrix-rating-scale/preview-matrix-rating-scale.component';\nimport { PreviewRankingComponent } from './preview-ranking/preview-ranking.component';\nimport { PreviewSliderComponent } from './preview-slider/preview-slider.component';\nimport { PreviewMultipleTextboxComponent } from './preview-multiple-textbox/preview-multiple-textbox.component';\nimport { PreviewDateTimeComponent } from './preview-date-time/preview-date-time.component';\nimport { PreviewFileUploadComponent } from './preview-file-upload/preview-file-upload.component';\n// import { TooltipModule } from 'projects/ui-components/src/lib/ui-utility/tooltip/tooltip.module';\n// import { PopoverModule } from 'projects/ui-components/src/lib/ui-utility/popover/popover.module';\n// import { FormgroupModule, UiDialogModule } from 'projects/ui-components/src';\nimport { VcomplyEditorModule } from '@vcomply/editor';\n// import { NoDataModule } from 'src/app/ui-kit/no-data/no-data.module';\nimport { DpDatePickerModule } from 'ng2-date-picker';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\nimport { WelcomeComponent } from './welcome/welcome.component';\nimport { ThankYouComponent } from './thank-you/thank-you.component';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { DialogModule } from '../../../../ui-kit/dialog/dialog.module';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\nimport { NoDataModule } from '../../../no-data/no-data.module';\nimport { SelectModule } from '../../../../formgroup/select/select.module';\nimport { QuickSettingsComponent } from '../../../assessment-preview/quick-settings/quick-settings.component';\n// import { SelectModule } from 'src/app/ui-kit/select/select.module';\n\n@NgModule({\n  declarations: [\n    PreviewWrapperComponent,\n    PreviewMultipleChoiceComponent,\n    PreviewCheckboxComponent,\n    PreviewImageChoiceComponent,\n    PreviewStarRatingComponent,\n    PreviewSingleTextboxComponent,\n    PreviewCommentBoxComponent,\n    PreviewMatrixDropdownComponent,\n    PreviewDropdownComponent,\n    PreviewMatrixRatingScaleComponent,\n    PreviewRankingComponent,\n    PreviewSliderComponent,\n    PreviewMultipleTextboxComponent,\n    PreviewDateTimeComponent,\n    PreviewFileUploadComponent,\n    WelcomeComponent,\n    ThankYouComponent,\n  ],\n  imports: [\n    CommonModule,\n    TooltipModule,\n    PopoverModule,\n    DialogModule,\n    // MarxEditorModule,\n    VcomplyEditorModule,\n    FormgroupModule,\n    NoDataModule,\n    DpDatePickerModule,\n    NgxMaterialTimepickerModule,\n    SelectModule,\n    QuickSettingsComponent,\n  ],\n  exports: [\n    PreviewWrapperComponent,\n    PreviewMultipleChoiceComponent,\n    PreviewCheckboxComponent,\n    PreviewImageChoiceComponent,\n    PreviewStarRatingComponent,\n    PreviewSingleTextboxComponent,\n    PreviewCommentBoxComponent,\n    PreviewMatrixDropdownComponent,\n    PreviewDropdownComponent,\n    PreviewMatrixRatingScaleComponent,\n    PreviewRankingComponent,\n    PreviewSliderComponent,\n    PreviewMultipleTextboxComponent,\n    PreviewDateTimeComponent,\n    PreviewFileUploadComponent,\n    WelcomeComponent,\n    ThankYouComponent,\n  ],\n})\nexport class PreviewModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CheckboxQuestionComponent } from './checkbox-question/checkbox-question.component';\nimport { DateTimeComponent } from './date-time/date-time.component';\nimport { DeviceComponent } from './device/device.component';\nimport { FileUploadComponent } from './file-upload/file-upload.component';\nimport { PreviewComponent } from './preview/preview.component';\nimport { PreviewContainerComponent } from './preview-container/preview-container.component';\nimport { QuickSettingsComponent } from './quick-settings/quick-settings.component';\nimport { RadioQuestionComponent } from './radio-question/radio-question.component';\nimport { SelectQuestionComponent } from './select-question/select-question.component';\nimport { SingleTextboxComponent } from './single-textbox/single-textbox.component';\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\nimport { DpDatePickerModule } from 'ng2-date-picker';\nimport { PageAssessmentHeaderComponent } from './page-header/page-header.component';\nimport { WelcomeComponent } from './welcome/welcome.component';\nimport { PreviewModule } from '../assessment-editor/components/preview/preview.module';\nimport { SectionDetailsComponent } from './section-details/section-details.component';\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { GetSectionOrderPipe } from './pipes/get-section-order.pipe';\nimport { DescriptionPreviewComponent } from './description-preview/description-preview.component';\n\n@NgModule({\n  declarations: [\n    CheckboxQuestionComponent,\n    DateTimeComponent,\n    DeviceComponent,\n    FileUploadComponent,\n    PreviewComponent,\n    PreviewContainerComponent,\n    RadioQuestionComponent,\n    SelectQuestionComponent,\n    SingleTextboxComponent,\n    PageAssessmentHeaderComponent,\n    WelcomeComponent,\n    SectionDetailsComponent,\n    GetSectionOrderPipe,\n    DescriptionPreviewComponent,\n  ],\n  imports: [\n    CommonModule,\n    TooltipModule,\n    FormgroupModule,\n    PopoverModule,\n    NgxMaterialTimepickerModule,\n    DpDatePickerModule,\n    PreviewModule,\n    QuickSettingsComponent,\n    PipesModule,\n  ],\n  exports: [\n    CheckboxQuestionComponent,\n    DateTimeComponent,\n    DeviceComponent,\n    FileUploadComponent,\n    PreviewComponent,\n    PreviewContainerComponent,\n    RadioQuestionComponent,\n    SelectQuestionComponent,\n    SingleTextboxComponent,\n    WelcomeComponent,\n  ],\n})\nexport class AssessmentPreviewModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { ASSETS } from '../../../../../../lib/constants/assets.constants';\n\n@Component({\n  selector: 'app-welcome',\n  templateUrl: './welcome.component.html',\n  styleUrls: ['./welcome.component.less'],\n})\nexport class WelcomeComponent implements OnInit {\n  ASSETS = ASSETS;\n\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div class=\"build-welcome vx-d-flex vx-align-center vx-justify-center vx-mb-5\">\n  <div class=\"build-welcome-inner\">\n    <div class=\"image vx-mb-5\">\n      <img [src]=\"ASSETS.placeholder\" alt=\"\" />\n    </div>\n    <div\n      class=\"upload-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\"\n    >\n      <input type=\"file\" /> Upload Image\n    </div>\n  </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { ASSETS } from '../../../../../../lib/constants/assets.constants';\n@Component({\n  selector: 'app-thank-you',\n  templateUrl: './thank-you.component.html',\n  styleUrls: ['./thank-you.component.less'],\n})\nexport class ThankYouComponent implements OnInit {\n  ASSETS = ASSETS;\n\n  constructor() {}\n\n  ngOnInit(): void {}\n}\n","<div\n  class=\"build-thank-you vx-d-flex vx-align-center vx-justify-center vx-mb-5\"\n>\n  <div class=\"build-thank-you-inner\">\n    <div class=\"image vx-mb-5\">\n      <img [src]=\"ASSETS.placeholder\" alt=\"\" />\n    </div>\n    <div\n      class=\"upload-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center\"\n    >\n      <input type=\"file\" /> Upload Image\n    </div>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MultipleChoiceComponent } from './multiple-choice/multiple-choice.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { ImageChoiceComponent } from './image-choice/image-choice.component';\nimport { StarRatingComponent } from './star-rating/star-rating.component';\nimport { MatrixDropdownComponent } from './matrix-dropdown/matrix-dropdown.component';\nimport { DropdownComponent } from './dropdown/dropdown.component';\nimport { MatrixRatingScaleComponent } from './matrix-rating-scale/matrix-rating-scale.component';\nimport { RankingComponent } from './ranking/ranking.component';\nimport { SliderComponent } from './slider/slider.component';\nimport { MultipleTextboxComponent } from './multiple-textbox/multiple-textbox.component';\nimport { DateTimeComponent } from './date-time/date-time.component';\n// import { TooltipModule } from 'projects/ui-components/src/lib/ui-utility/tooltip/tooltip.module';\n// import { FormgroupModule } from 'projects/ui-components/src/lib/ui-utility/formgroup/formgroup.module';\n// import { PopoverModule } from 'projects/ui-components/src/lib/ui-utility/popover/popover.module';\nimport { FormsModule } from '@angular/forms';\nimport { ChoiceSettingsPanelComponent } from './choice-settings-panel/choice-settings-panel.component';\nimport { WelcomeComponent } from './welcome/welcome.component';\nimport { ThankYouComponent } from './thank-you/thank-you.component';\nimport { WeightageSelectorComponent } from './weightage-selector/weightage-selector.component';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\n\n\n\n@NgModule({\n  declarations: [\n    MultipleChoiceComponent,\n    CheckboxComponent,\n    ImageChoiceComponent,\n    StarRatingComponent,\n    MatrixDropdownComponent,\n    DropdownComponent,\n    MatrixRatingScaleComponent,\n    RankingComponent,\n    SliderComponent,\n    MultipleTextboxComponent,\n    DateTimeComponent,\n    ChoiceSettingsPanelComponent,\n    WelcomeComponent,\n    ThankYouComponent,\n    WeightageSelectorComponent\n  ],\n  imports: [\n    CommonModule,\n    TooltipModule,\n    PopoverModule,\n    FormgroupModule,\n    FormsModule\n  ],\n  exports: [\n    MultipleChoiceComponent,\n    CheckboxComponent,\n    ImageChoiceComponent,\n    StarRatingComponent,\n    MatrixDropdownComponent,\n    DropdownComponent,\n    MatrixRatingScaleComponent,\n    RankingComponent,\n    SliderComponent,\n    MultipleTextboxComponent,\n    DateTimeComponent,\n    WelcomeComponent,\n    ThankYouComponent,\n    WeightageSelectorComponent\n  ]\n})\nexport class BuildModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LogicMultipleChoiceComponent } from './logic-multiple-choice/logic-multiple-choice.component';\nimport { LogicCheckboxComponent } from './logic-checkbox/logic-checkbox.component';\nimport { LogicImageChoiceComponent } from './logic-image-choice/logic-image-choice.component';\nimport { LogicStarRatingComponent } from './logic-star-rating/logic-star-rating.component';\nimport { LogicSingleTextboxComponent } from './logic-single-textbox/logic-single-textbox.component';\nimport { LogicCommentBoxComponent } from './logic-comment-box/logic-comment-box.component';\nimport { LogicDropdownComponent } from './logic-dropdown/logic-dropdown.component';\nimport { LogicRankingComponent } from './logic-ranking/logic-ranking.component';\nimport { LogicSliderComponent } from './logic-slider/logic-slider.component';\nimport { LogicMultipleTextboxComponent } from './logic-multiple-textbox/logic-multiple-textbox.component';\nimport { LogicDateTimeComponent } from './logic-date-time/logic-date-time.component';\n// import { TooltipModule } from 'projects/ui-components/src/lib/ui-utility/tooltip/tooltip.module';\n// import { PopoverModule } from 'projects/ui-components/src/lib/ui-utility/popover/popover.module';\n// import { FormgroupModule } from 'projects/ui-components/src';\nimport { DpDatePickerModule } from 'ng2-date-picker';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\nimport { FormsModule } from '@angular/forms';\nimport { TooltipModule } from '../../../../ui-kit/tooltip/tooltip.module';\nimport { PopoverModule } from '../../../../ui-kit/popover/popover.module';\nimport { FormgroupModule } from '../../../../ui-kit/formgroup/formgroup.module';\n\n\n\n@NgModule({\n  declarations: [\n    LogicMultipleChoiceComponent,\n    LogicCheckboxComponent,\n    LogicImageChoiceComponent,\n    LogicStarRatingComponent,\n    LogicSingleTextboxComponent,\n    LogicCommentBoxComponent,\n    LogicDropdownComponent,\n    LogicRankingComponent,\n    LogicSliderComponent,\n    LogicMultipleTextboxComponent,\n    LogicDateTimeComponent\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n    TooltipModule,\n    PopoverModule,\n    FormgroupModule,\n    DpDatePickerModule,\n    NgxMaterialTimepickerModule,\n  ],\n  exports: [\n    LogicMultipleChoiceComponent,\n    LogicCheckboxComponent,\n    LogicImageChoiceComponent,\n    LogicStarRatingComponent,\n    LogicSingleTextboxComponent,\n    LogicCommentBoxComponent,\n    LogicDropdownComponent,\n    LogicRankingComponent,\n    LogicSliderComponent,\n    LogicMultipleTextboxComponent,\n    LogicDateTimeComponent\n  ]\n})\nexport class LogicQuestionsModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'formatter'\n})\nexport class FormatterPipe implements PipeTransform {\n\n  transform(value: any, ...args: unknown[]): any {\n      const action = [];\n      const data = value.split(',');\n      for (let i = 1; i < data.length; i++) {\n        action.push({ icon: '', name: data[i], identifier: '' })\n      }\n      return action;\n  }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-editor-loader',\n  templateUrl: './editor-loader.component.html',\n  styleUrls: ['./editor-loader.component.less']\n})\nexport class EditorLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"loader-wrapper\">\n    <div class=\"loader-panel\">\n        <div class=\"loader-panel-head\">\n            <span class=\"title\"></span>\n            <span class=\"ddl\"></span>\n        </div>\n        <div class=\"loader-panel-body\">\n            <div class=\"left\">\n                <div class=\"label\"></div>\n                <div class=\"toolkit\" *ngFor=\"let data of [1,1,1,1,1,1,1]\">\n                    <span><span></span></span>\n                </div>\n            </div>\n            <div class=\"right\">\n                <div class=\"button\"></div>\n                <div class=\"question-block\">\n                    <div class=\"head\">\n                        <div class=\"nav\">\n                            <div class=\"button\" *ngFor=\"let data of [1,1,1]\">\n                                <span></span>\n                            </div>\n                        </div>\n                        <div class=\"action\">\n                            <div class=\"button\" *ngFor=\"let data of [1,1]\"></div>\n                        </div>\n                    </div>\n                    <div class=\"body\">\n                        <div class=\"left\">\n                            <div class=\"qusetion-number\"></div>\n                            <div class=\"qusetion-item\"></div>\n                            <div class=\"qusetion-options\">\n                                <ul>\n                                    <li *ngFor=\"let data of [1,1,1,1]\"></li>\n                                </ul>\n                            </div>\n                        </div>\n                        <div class=\"right\">\n                            <div class=\"qusetion-number\"></div>\n                            <div class=\"qusetion-item\"></div>\n                            <div class=\"qusetion-options\">\n                                <ul>\n                                    <li *ngFor=\"let data of [1,1,1,1]\"></li>\n                                </ul>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"footer\">\n                        <div class=\"left\">\n                            <div class=\"button\"></div>\n                        </div>\n                        <div class=\"right\">\n                            <div class=\"button\"></div>\n                        </div>\n                    </div>\n                </div>\n                <!-- <div class=\"button\"></div>\n                <div class=\"button\"></div> -->\n            </div>\n        </div>\n    </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EditorLoaderComponent } from './editor-loader/editor-loader.component';\n\n\n\n@NgModule({\n  declarations: [EditorLoaderComponent],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    EditorLoaderComponent\n  ]\n})\nexport class EditorLoaderModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CreateAssessmentContainerComponent } from './create-assessment-container/create-assessment-container.component';\nimport { RouterModule } from '@angular/router';\n// import { TooltipModule } from 'projects/ui-components/src/lib/ui-utility/tooltip/tooltip.module';\n// import { PopoverModule } from 'projects/ui-components/src/lib/ui-utility/popover/popover.module';\nimport { QuestionTypeComponent } from './components/question-type/question-type.component';\nimport { AddPageDetailsComponent } from './components/add-page-details/add-page-details.component';\n// import { FormgroupModule, UiDialogModule } from 'projects/ui-components/src';\nimport { VcomplyEditorModule } from '@vcomply/editor';\nimport { AssessmentSettingsComponent } from './components/assessment-settings/assessment-settings.component';\nimport { AddSegmentPopupComponent } from './components/add-segment-popup/add-segment-popup.component';\nimport { AddResponseSetPopupComponent } from './components/add-response-set-popup/add-response-set-popup.component';\nimport { EditorWrapperComponent } from './components/editor-wrapper/editor-wrapper.component';\nimport { QuickSettingsComponent } from './components/quick-settings/quick-settings.component';\nimport { SingleLineEditorComponent } from './components/single-line-editor/single-line-editor.component';\nimport { ResponseSelectorComponent } from './components/response-selector/response-selector.component';\n\nimport { BuildModule } from './components/build/build.module';\nimport { PreviewModule } from './components/preview/preview.module';\nimport { MoveComponent } from './components/move/move.component';\nimport { LogicComponent } from './components/logic/logic.component';\nimport { AddLogicComponent } from './components/add-logic/add-logic.component';\nimport { LogicQuestionsModule } from './components/logic-questions/logic-questions.module';\nimport { ToolkitComponent } from './components/toolkit/toolkit.component';\nimport { FormsModule } from '@angular/forms';\nimport { ErrorMessagePipe } from './components/pipes/error-message.pipe';\nimport { QuestionFilterPipe } from './components/pipes/question-filter.pipe';\nimport { QuestionParserPipe } from './components/pipes/question-parser.pipe';\nimport { FormatterPipe } from './components/pipes/formatter.pipe';\nimport { SettingAnonymousComponent } from './components/setting-anonymous/setting-anonymous.component';\nimport { SettingResponseSegmentComponent } from './components/setting-response-segment/setting-response-segment.component';\n// import { TokenInterceptor } from 'src/app/interceptors/token-interceptor';\nimport { PageHeaderComponent } from './components/page-header/page-header.component';\nimport { WelcomeThankyouComponent } from './components/welcome-thankyou/welcome-thankyou.component';\nimport { AssessmentPreviewModule } from '../assessment-preview/assessment-preview.module';\nimport { CurrentPageQuestionPipe } from './components/pipes/current-page-question.pipe';\nimport { QuestionPageFilterPipe } from './components/pipes/question-page-filter.pipe';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { TypeOfPipe } from './components/pipes/type-of.pipe';\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\nimport { DialogModule } from '../../ui-kit/dialog/dialog.module';\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\nimport { EditorLoaderModule } from '../../ui-kit/editor-loader/editor-loader.module';\nimport { NoDataModule } from '../no-data/no-data.module';\n\n@NgModule({\n  declarations: [\n    CreateAssessmentContainerComponent,\n    QuestionTypeComponent,\n    AddPageDetailsComponent,\n    AssessmentSettingsComponent,\n    AddSegmentPopupComponent,\n    AddResponseSetPopupComponent,\n    EditorWrapperComponent,\n    QuickSettingsComponent,\n    SingleLineEditorComponent,\n    ResponseSelectorComponent,\n    MoveComponent,\n    LogicComponent,\n    AddLogicComponent,\n    ToolkitComponent,\n    ErrorMessagePipe,\n    QuestionFilterPipe,\n    QuestionParserPipe,\n    FormatterPipe,\n    SettingAnonymousComponent,\n    SettingResponseSegmentComponent,\n    PageHeaderComponent,\n    WelcomeThankyouComponent,\n    CurrentPageQuestionPipe,\n    QuestionPageFilterPipe,\n    TypeOfPipe,\n  ],\n  imports: [\n    CommonModule,\n    TooltipModule,\n    PopoverModule,\n    DragDropModule,\n    DialogModule,\n    // MarxEditorModule,\n    VcomplyEditorModule,\n    FormgroupModule,\n    NoDataModule,\n    BuildModule,\n    PreviewModule,\n    AssessmentPreviewModule,\n    FormsModule,\n    LogicQuestionsModule,\n    EditorLoaderModule,\n  ],\n  exports: [CreateAssessmentContainerComponent],\n  // providers:[ { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true },]\n})\nexport class CreateAssessmentModule {}\n","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport { DialogConfig } from \"../../dialog/dialog-config\";\nimport { DialogRef } from \"../../dialog/dialog-ref\";\n\n@Component({\n  selector: \"app-deactivate\",\n  templateUrl: \"./deactivate.component.html\",\n  styleUrls: [\"./deactivate.component.less\"],\n})\nexport class DeactivateComponent implements OnInit {\n  animate = false;\n  @Input() itemName = 'dashboard'\n  // constructor(private dialog: DialogRef, public dialogConfig: DialogConfig\n  // ) {\n  //   this.itemName = dialogConfig.data.itemName;\n  // }\n  constructor(private dialog: DialogRef,public dialogConfig:DialogConfig) {}\n  ngOnInit(): void { }\n\n  deactivate(deleteFlag: boolean) {\n    this.animate = true;\n    setTimeout(() => {\n      this.animate = false;\n    }, 1000);\n    this.dialog.close(deleteFlag);\n  }\n}\n","<div class=\"alert-dialog\">\n  <div class=\"alert-dialog-container\">\n    <div class=\"alert-dialog-body\">\n      <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\">\n        <i class=\"icons\">&#xe9d0;</i>\n      </div>\n      <p class=\"vx-fs-15 vx-paragraph-txt vx-m-0 vx-text-center\"[innerHTML]=\"dialogConfig?.data?.message\"></p>\n    </div>\n    <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n      <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n      <div class=\"vx-d-flex vx-align-center\">\n        <button class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"deactivate(false)\">No</button>\n        <button class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"deactivate(true)\">Yes</button>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { DialogConfig } from '../../dialog/dialog-config';\nimport { DialogRef } from '../../dialog/dialog-ref';\n\n\n@Component({\n  selector: 'app-duplicate',\n  templateUrl: './duplicate.component.html',\n  styleUrls: ['./duplicate.component.less']\n})\nexport class DuplicateComponent implements OnInit {\n  animate = false;\n  itemName = ''\n  constructor(private dialog: DialogRef,public dialogConfig:DialogConfig) { }\n\n  ngOnInit(): void {\n  }\n  activate(deleteFlag: boolean) {\n    this.animate = true;\n    setTimeout(() => {\n      this.animate = false;\n    }, 5000);\n    this.dialog.close(deleteFlag);\n  }\n\n}\n","<div class=\"alert-dialog\">\n    <div class=\"alert-dialog-container\">\n      <div class=\"alert-dialog-body\">\n        <div class=\"alert-dialog-icon vx-d-flex vx-align-center vx-justify-center\">\n          <i class=\"icons\">&#xe9b6;</i>\n        </div>\n        <p class=\"vx-fs-15 vx-paragraph-txt vx-m-0 vx-text-center\" [innerHTML]=\"dialogConfig?.data?.message\">This action will <strong class=\"vx-fw-500\">active</strong> this {{itemName}}.</p>\n      </div>\n      <div class=\"alert-dialog-footer vx-d-flex vx-align-center vx-justify-between vx-p-3\">\n        <p class=\"vx-fs-12 vx-lable-txt vx-m-0\">Are you sure you would like to proceed?</p>\n        <div class=\"vx-d-flex vx-align-center\">\n          <button class=\"no-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"activate(false)\">No</button>\n          <button class=\"yes-btn vx-fs-11 vx-fw-500 vx-txt-white vx-tt-uppercase vx-p-0 vx-d-flex vx-align-center vx-justify-center\" (click)=\"activate(true)\">Yes</button>\n        </div>\n      </div>\n    </div>\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DeleteComponent } from \"./delete/delete.component\";\nimport { ActiveComponent } from \"./active/active.component\";\nimport { DeactivateComponent } from \"./deactivate/deactivate.component\";\nimport { DuplicateComponent } from './duplicate/duplicate.component';\n\n@NgModule({\n  declarations: [DeleteComponent, DeactivateComponent, ActiveComponent, DuplicateComponent],\n  exports: [DeleteComponent, ActiveComponent, DeactivateComponent, DuplicateComponent],\n  imports: [CommonModule],\n})\nexport class ActionDialogModule {}\n","import { HttpParams } from '@angular/common/http';\nimport {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { ResponsibilityService } from '../../workflow-services/responsibility.service';\nimport { categoryList, programList } from './program-list-model';\nimport { ASSETS } from '../../constants/assets.constants';\n\n@Component({\n  selector: 'app-program-listing',\n  templateUrl: './program-listing.component.html',\n  styleUrls: ['./program-listing.component.less'],\n})\nexport class ProgramListingComponent implements OnInit {\n  ASSETS = ASSETS;\n  animation = false;\n  subList = false;\n  loader = false;\n  @Input() programsList: any;\n  // @Input() allPrograms: any[] = [];\n  @Input() selectedProgram!: any;\n  @Input() openedFrom: string = '';\n  // @Input() selectedCategories: any[] = [];\n\n  viewOnlyProgramsCategoryId: any[] = [];\n  selectedCategories: any[] = [];\n  tempSelectedCategories: any = [];\n  @Input('selectedCategories') set getSelectedCategories(category: any) {\n    this.selectedCategories = category;\n    this.tempSelectedCategories = JSON.stringify(category);\n  }\n  @Input() responsibilityId = '';\n  @Input() feature!: any;\n\n  @Input() hideProgramsList!: any;\n  @Input() mode: string = 'CREATE';\n  @ViewChild('searchProgram') searchProgram!: any;\n  @ViewChild('searchCategory') searchCategory!: any;\n\n  preservedSelectedPrograms: any;\n  preservedProgramsId: any;\n  preservePrimaryProgram: any;\n\n  @Input('linkedProgram') set getLinkedProgram(program: any) {\n    this.selectedProgramsDetail = [];\n    this.selectedProgramsId = [];\n    this.viewOnlyProgramsCategoryId = [];\n    this.selectedProgramsDetail = program;\n    this.selectedProgramsDetail.forEach((ele: any) => {\n      this.selectedProgramsId.push(ele?._id);\n      this.getSelectedProgramCount(true, ele?.programType);\n      ele?.isViewOnlyProgram\n        ? this.viewOnlyProgramsCategoryId?.push(ele?.category_id)\n        : null;\n    });\n  }\n\n  previousSelectedValues: any = {\n    program: {},\n    categories: [],\n  };\n  programData: programList = {\n    data: [],\n    from: 0,\n    to: 0,\n    totalPages: 0,\n    totalRecords: 0,\n    currentPage: 1,\n    AllInternalControlsProgramsCount: 0,\n    AllOthersProgramsCount: 0,\n    AllRegulationProgramsCount: 0,\n    AllStandardProgramsCount: 0,\n    SelectedInternalControlsProgramsCount: 0,\n    SelectedOthersProgramsCount: 0,\n    SelectedRegulationProgramsCount: 0,\n    SelectedStandardProgramsCount: 0,\n    AllProgramsCount: 0,\n    AllViewOnlyProgramCount: 0,\n  };\n\n  programTabDataCount: any = {\n    allInternalControlsProgramsCount: 0,\n    allOthersProgramsCount: 0,\n    allRegulationProgramsCount: 0,\n    allStandardProgramsCount: 0,\n  };\n\n  categoryData: categoryList = {\n    data: [],\n    from: 0,\n    to: 0,\n    totalPages: 0,\n    totalRecords: 0,\n    currentPage: 1,\n    selectedCategories: [],\n  };\n\n  showCategories = false;\n  currentProgram!: any;\n  searchString: string = '';\n  categorySearchString: string = '';\n\n  activeTab: 'regulations' | 'standards' | 'internal_controls' | 'others' =\n    'regulations';\n  selectedIds: any[] = [];\n  categoryList: any[] = [];\n  blockWidth: any;\n\n  programTypeObject = {\n    regulations: 1,\n    standards: 2,\n    internal_controls: 3,\n    others: 0,\n  };\n\n  displayConfirmationMessage: boolean = false;\n  tempPrimaryProgram: any = {};\n  primaryConfirmationMessage: string = `Once confirmed, the <em>Primary Program</em> for this responsibility will be changed. Hence, all the default settings related to the new <em>Primary Program</em> will now apply to this responsibility.`;\n  isPrimaryConfirmation: boolean = false;\n  isUncheckedProgram: boolean = false;\n  isPrimaryUnchecked: boolean = false;\n  selectedProgramsDetail: any = [];\n  selectedProgramsId: any = [];\n  programCountLoader = false;\n  deprecatePrimaryProgramFlag = false;\n\n  @Output() saveSelectedProgram = new EventEmitter();\n  @Output() closeEvent = new EventEmitter();\n  allCategories: any[] = [];\n\n  constructor(private responsibilityService: ResponsibilityService) { }\n\n  ngOnInit(): void {\n    this.deprecatePrimaryProgramFlag = this.feature.isFeatureEnabled(\n      'ff_deprecate_primary_program_flag'\n    );\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    if (this.selectedProgram && this.selectedProgram[0]) {\n      this.currentProgram = this.selectedProgram[0];\n      if (this.mode === 'EDIT' || this.openedFrom === 'PROGRAM_WORKROOM') {\n        this.viewOnlyProgramsCategoryId?.push(this.currentProgram?.category_id);\n      }\n      switch (this.currentProgram?.programType) {\n        case 0:\n          this.activeTab = 'others';\n          break;\n        case 1:\n          this.activeTab = 'regulations';\n          break;\n        case 2:\n          this.activeTab = 'standards';\n          break;\n        case 3:\n          this.activeTab = 'internal_controls';\n          break;\n        default:\n          this.activeTab = 'regulations';\n          break;\n      }\n      this.getSelectedProgramCount();\n      // if (this.selectedCategories?.length && this.currentProgram) {\n      this.populateCategories();\n      // }\n    }\n\n    if (this.hideProgramsList) {\n      this.selectedProgramsId?.push(this.selectedProgram[0]?._id);\n      this.getCategoriesList();\n    } else {\n      this.getProgramsList();\n    }\n    this.getProgramsCount();\n\n    this.previousSelectedValues = {\n      programs: this.currentProgram,\n      categories: this.selectedCategories.length\n        ? [...new Set(this.selectedCategories)]\n        : [],\n    };\n\n    this.preservePreviousDetails();\n  }\n  populateCategories() {\n    this.selectedIds = [];\n    let params = new HttpParams();\n    // params = params.append('program_id', this.currentProgram._id);\n    params = params.append('isPagination', false);\n    if (this.responsibilityId) {\n      params = params.append('reportId', this.responsibilityId);\n    }\n\n    this.responsibilityService\n      .getProgramsList(params, this.selectedProgramsId)\n      .subscribe({\n        next: (res: any) => {\n          const allCategories = res.data;\n\n          this.categoryData.selectedCategories = allCategories.filter(\n            (ele: any) => this.selectedCategories.includes(ele.category_id)\n          );\n          this.categoryData.selectedCategories.forEach((element: any) => {\n            this.selectedIds.push(element.category_id);\n          });\n        },\n        error: (err) => {\n          console.error(err);\n        },\n      });\n  }\n\n  handleSearch(event: any) {\n    if (this.searchString != event) {\n      this.programData.currentPage = 1;\n      this.searchString = event;\n      this.getProgramsList({ search: true });\n      this.getProgramsCount({ search: true });\n    }\n  }\n  categorySearch(event: any) {\n    if (this.categorySearchString != event) {\n      this.categoryData.currentPage = 1;\n      this.categorySearchString = event;\n      this.getCategoriesList({ search: true });\n    }\n  }\n\n  selectProgram(event: any, program: any) {\n    this.updateSelectedPrograms(event, program);\n    // this.getSelectedProgramCount(event, program?.programType);\n    if (event) {\n      if (!this.feature.isFeatureEnabled('ff_deprecate_primary_program_flag')) {\n        Object.keys(this.currentProgram ?? {}).length\n          ? null\n          : (this.currentProgram = program);\n      }\n      // this.currentProgram = program;\n      this.selectedIds = [];\n      this.categoryList = [];\n      // this.getSelectedProgramCount();\n    }\n  }\n\n  /**\n   * If the event is true, then push the program to the selectedProgramsDetail array. If the event is\n   * false, then remove the program from the selectedProgramsDetail array.\n   * @param {any} event - boolean\n   * @param {any} program - any = {\n   */\n  updateSelectedPrograms(event: any, program: any) {\n    if (event) {\n      const indexOfProgram = this.selectedProgramsDetail?.findIndex(\n        (el: any) => el?.category_id === program?.category_id\n      );\n      if (indexOfProgram === -1 && Object.keys(program)?.length) {\n        this.selectedProgramsId?.push(program?._id);\n        this.selectedProgramsDetail?.push(program);\n        this.getSelectedProgramCount(event, program?.programType);\n      }\n    } else {\n      const indexOfProgram = this.selectedProgramsDetail?.findIndex(\n        (el: any) => el?.category_id === program?.category_id\n      );\n      if (indexOfProgram !== -1) {\n        this.selectedProgramsDetail?.splice(indexOfProgram, 1);\n      }\n      const indexOfId = this.selectedProgramsId?.findIndex(\n        (el: any) => el === program?._id\n      );\n      if (indexOfId !== -1) {\n        this.selectedProgramsId?.splice(indexOfId, 1);\n      }\n      this.isPrimaryUnchecked = false;\n\n      if (\n        this.currentProgram &&\n        this.currentProgram?.category_id === program?.category_id\n      ) {\n        // this.primaryConfirmationMessage = 'You cannot deselect this Program since this is the <em>Primary Program</em> for this responsibility. To proceed, first select another Program as the <em>Primary Program</em>.';\n        this.isPrimaryConfirmation = true;\n        this.isPrimaryUnchecked = true;\n        this.tempPrimaryProgram = JSON.stringify(program);\n        // this.currentProgram = undefined;\n      }\n\n      // }\n      this.getSelectedProgramCount(event, program?.programType);\n    }\n    if (this.selectedProgramsDetail?.length && !this.currentProgram?.length) {\n      this.currentProgram = this.selectedProgramsDetail[0];\n    } else {\n      this.currentProgram = [];\n    }\n  }\n\n  /**\n   * If the currentProgram is set, then set the currentProgram to the program passed in, and set the\n   * tempPrimaryProgram to the currentProgram.\n   * If the currentProgram is not set, then set the currentProgram to the program passed in.\n   * @param {any} event - any - the event that is triggered when the user clicks on the checkbox\n   * @param {any} program - the program that is being selected\n   */\n  setPrimaryProgram(event: any, program: any) {\n    if (this.currentProgram) {\n      const currentTemp = this.currentProgram;\n      this.tempPrimaryProgram = JSON.stringify(currentTemp);\n      this.currentProgram = program;\n      this.updateSelectedPrograms(true, program);\n      if (!event) {\n        this.currentProgram = {};\n      }\n      this.primaryConfirmationMessage =\n        'Once confirmed, the <em>Primary Program</em> for this responsibility will be changed. Hence, all the default settings related to the new <em>Primary Program</em> will now apply to this responsibility.';\n      this.isPrimaryConfirmation = true;\n    }\n    if (event && !this.currentProgram) {\n      this.currentProgram = program;\n      this.updateSelectedPrograms(true, program);\n    }\n  }\n\n  /**\n   * If the user clicks \"Yes\" on the confirmation modal, then the function will remove the program from\n   * the selectedProgramsDetail array and the selectedProgramsId array. If the user clicks \"No\" on the\n   * confirmation modal, then the function will do nothing.\n   * @param {boolean} event - boolean -&gt; this is the value of the checkbox\n   */\n  updatePrimaryProgram(event: boolean) {\n    if (event && this.isPrimaryUnchecked) {\n      const indexOfProgram = this.selectedProgramsDetail?.findIndex(\n        (el: any) =>\n          el?.category_id ===\n          JSON.parse(this.tempPrimaryProgram ?? {})?.category_id\n      );\n      if (indexOfProgram !== -1) {\n        this.selectedProgramsDetail?.splice(indexOfProgram, 1);\n      }\n      const indexOfId = this.selectedProgramsId?.findIndex(\n        (el: any) => el === JSON.parse(this.tempPrimaryProgram ?? {})?._id\n      );\n      if (indexOfId !== -1) {\n        this.selectedProgramsId?.splice(indexOfId, 1);\n      }\n      this.isPrimaryConfirmation = false;\n      this.currentProgram = {};\n    } else if (!event && this.isPrimaryUnchecked) {\n      this.updateSelectedPrograms(\n        true,\n        this.tempPrimaryProgram?.length\n          ? JSON.parse(this.tempPrimaryProgram ?? {})\n          : {}\n      );\n      this.currentProgram = this.tempPrimaryProgram?.length\n        ? JSON.parse(this.tempPrimaryProgram ?? {})\n        : {};\n      this.isPrimaryConfirmation = false;\n    } else if (event) {\n      // this.currentProgram = this.isPrimaryUnchecked ? {} : JSON.parse(this.tempPrimaryProgram);\n      this.updateSelectedPrograms(\n        this.isPrimaryUnchecked ? false : true,\n        this.tempPrimaryProgram?.length\n          ? JSON.parse(this.tempPrimaryProgram ?? {})\n          : {}\n      );\n      this.isPrimaryConfirmation = false;\n    } else {\n      let currentPrimary = JSON.stringify(this.currentProgram);\n      this.currentProgram = {};\n      // this.updateSelectedPrograms(false, JSON.parse(currentPrimary)?? {});\n      this.updateSelectedPrograms(true, JSON.parse(currentPrimary) ?? {});\n      this.currentProgram = this.tempPrimaryProgram?.length\n        ? JSON.parse(this.tempPrimaryProgram ?? {})\n        : {};\n      this.isPrimaryConfirmation = false;\n    }\n    this.isPrimaryUnchecked = false;\n  }\n\n  selectAllCategories(value: boolean) {\n    if (value) {\n      this.selectedIds = [];\n      this.categoryData.selectedCategories = [];\n      if (this.categoryData.totalPages < 2) {\n        this.categoryData.data.forEach((ele: any) => {\n          this.selectedIds.push(ele.category_id);\n          this.categoryData.selectedCategories.push(ele);\n        });\n      } else {\n        this.loader = true;\n        let params = new HttpParams();\n        // params = params.append('program_id', this.currentProgram?._id);\n        params = params.append('isPagination', false);\n        if (this.responsibilityId) {\n          params = params.append('reportId', this.responsibilityId);\n        }\n\n        this.responsibilityService\n          .getProgramsList(params, this.selectedProgramsId)\n          .subscribe({\n            next: (res: any) => {\n              const allCategories = res.data;\n\n              this.categoryData.selectedCategories = res.data;\n              allCategories.forEach((element: any) => {\n                this.selectedIds.push(element.category_id);\n              });\n              this.loader = false;\n            },\n            error: (err) => {\n              console.error(err);\n              this.loader = false;\n            },\n          });\n      }\n    } else {\n      this.categoryData.selectedCategories = [];\n      this.selectedIds = [];\n    }\n  }\n\n  checkCategoriesSelection() {\n    if (\n      this.categoryData.selectedCategories.length ==\n      this.categoryData.totalRecords\n    ) {\n      return 'checked';\n    } else if (!this.categoryData.selectedCategories.length) {\n      return 'unchecked';\n    } else {\n      return 'indeterminate';\n    }\n  }\n\n  openCategories() {\n    this.searchString = '';\n    this.categorySearchString = '';\n    const isSubProgram = this.selectedProgramsDetail?.some(\n      (el: any) => el?.child_id?.length\n    );\n\n    this.populateCategories();\n    if (this.currentProgram?.child_id?.length || isSubProgram) {\n      this.showCategories = true;\n      this.getCategoriesList();\n    } else {\n      this.selectedIds = [];\n      this.save();\n    }\n  }\n\n  backToPrograms() {\n    if (!this.hideProgramsList) {\n      this.showCategories = false;\n      if (this.previousSelectedValues?.program?._id == this.currentProgram) {\n        this.categoryData.selectedCategories = [\n          ...new Set(this.previousSelectedValues.categories),\n        ];\n        this.selectedIds = [];\n        this.categoryData.selectedCategories.forEach((element) => {\n          this.selectedIds.push(element);\n        });\n      } else {\n        this.getProgramsList();\n        this.categoryData.selectedCategories = [];\n        this.selectedIds = [];\n      }\n    } else {\n      this.categoryData.selectedCategories = [];\n      this.selectedIds = [];\n      this.close();\n    }\n  }\n\n  changeTab(\n    type: 'regulations' | 'standards' | 'internal_controls' | 'others'\n  ) {\n    this.programSubTab = 'PROGRAMS';\n    this.activeTab = type;\n    this.programData.currentPage = 1;\n    if (this.searchString?.length) {\n      this.searchString = '';\n      this.getProgramsCount();\n    }\n    // this.searchString = '';\n    this.searchProgram.nativeElement.value = '';\n    this.getProgramsList();\n  }\n\n  changePage(event: any, type: 'category' | 'program') {\n    switch (type) {\n      case 'program':\n        this.programData.currentPage = event;\n        this.getProgramsList();\n        break;\n      case 'category':\n        this.categoryData.currentPage = event;\n        this.getCategoriesList();\n        break;\n    }\n  }\n\n  getProgramsList(paramsObject?: any) {\n    this.loader = true;\n    let params = new HttpParams();\n    params = params.append(\n      'programType',\n      this.programTypeObject[this.activeTab]\n    );\n    if (paramsObject?.search || this.searchString) {\n      params = params.append('searchText', this.searchString);\n    }\n    // else {\n    params = params.append('pageNo', this.programData.currentPage);\n    // }\n    if (this.programSubTab === 'OTHER_PROGRAMS') {\n      params = params.append('isViewOnlyPrograms', true);\n    }\n\n    if (this.responsibilityId) {\n      params = params.append('reportId', this.responsibilityId);\n    }\n\n    this.responsibilityService.getProgramsList(params).subscribe({\n      next: (res: any) => {\n        this.programData.data = res.data;\n        this.programData.from = res.from;\n        this.programData.to = res.to;\n        this.programData.totalPages = res.totalPages;\n        this.programData.totalRecords = res.totalRecords;\n        this.programData.AllInternalControlsProgramsCount =\n          res.AllInternalControlsProgramsCount;\n        this.programData.AllOthersProgramsCount = res.AllOthersProgramsCount;\n        this.programData.AllRegulationProgramsCount =\n          res.AllRegulationProgramsCount;\n        this.programData.AllStandardProgramsCount =\n          res.AllStandardProgramsCount;\n        this.programData.AllProgramsCount = res?.AllProgramsCount\n          ? res?.AllProgramsCount\n          : 0;\n        this.programData.AllViewOnlyProgramCount = res?.AllViewOnlyProgramCount\n          ? res?.AllViewOnlyProgramCount\n          : 0;\n        this.loader = false;\n      },\n      error: (err) => {\n        console.error(err);\n        this.loader = false;\n      },\n    });\n  }\n\n  getProgramsCount(paramsObject?: any) {\n    this.programCountLoader = true;\n    let params = new HttpParams();\n    // params = params.append('programType', this.programTypeObject[this.activeTab]);\n    if (paramsObject?.search || this.searchString) {\n      params = params.append('searchText', this.searchString);\n    }\n    if (this.responsibilityId) {\n      params = params.append('reportId', this.responsibilityId);\n    }\n    this.responsibilityService.getProgramsListCount(params).subscribe({\n      next: (res: any) => {\n        this.programTabDataCount.allRegulationProgramsCount =\n          res?.AllRegulationProgramsCount;\n        this.programTabDataCount.allStandardProgramsCount =\n          res?.AllStandardProgramsCount;\n        this.programTabDataCount.allInternalControlsProgramsCount =\n          res?.AllInternalControlsProgramsCount;\n        this.programTabDataCount.allOthersProgramsCount =\n          res?.AllOthersProgramsCount;\n        this.programCountLoader = false;\n      },\n      error: (err) => {\n        console.error(err);\n        this.programCountLoader = false;\n      },\n    });\n  }\n\n  selectedSubCategoryIds: any[] = [];\n  getCategoriesList(queryObject?: any) {\n    this.loader = true;\n    let params = new HttpParams();\n    // params = params.append('program_id', this.currentProgram?._id);\n    params = params.append('pageNo', this.categoryData.currentPage);\n    if (queryObject?.search || this.categorySearchString) {\n      params = params.append('searchText', this.categorySearchString);\n    }\n    if (this.responsibilityId) {\n      params = params.append('reportId', this.responsibilityId);\n    }\n\n    this.responsibilityService\n      .getProgramsList(params, [...new Set(this.selectedProgramsId)])\n      .subscribe({\n        next: (res: any) => {\n          this.categoryData.data = res.data;\n          this.categoryData.from = res.from;\n          this.categoryData.to = res.to;\n          this.categoryData.totalPages = res.totalPages;\n          this.categoryData.totalRecords = res.totalRecords;\n          this.selectedSubCategoryIds = res?.selectedSubCategoryIds?.length\n            ? res?.selectedSubCategoryIds\n            : [];\n          this.loader = false;\n        },\n        error: (err) => {\n          console.error(err);\n          this.loader = false;\n        },\n      });\n    this.showCategories = true;\n  }\n\n  saveProgram() { }\n\n  selectCategory(mode: any, category: any) {\n    if (mode) {\n      this.selectedIds.push(category.category_id);\n      this.categoryData.selectedCategories.push(category);\n      this.selectedCategories.push(category.category_id);\n    } else {\n      const index = this.selectedIds.findIndex(\n        (element: any) => element == category.category_id\n      );\n      this.selectedIds.splice(index, 1);\n      const categoryIndex = this.categoryData.selectedCategories.findIndex(\n        (ele: any) => ele.category_id == category.category_id\n      );\n      this.categoryData.selectedCategories.splice(categoryIndex, 1);\n      const selectedIndex = this.selectedCategories.findIndex(\n        (ele: any) => ele == category?.category_id\n      );\n      this.selectedCategories.splice(selectedIndex, 1);\n    }\n  }\n\n  removeCategories(event: any) {\n    const categoryIndex = this.categoryData.selectedCategories.findIndex(\n      (ele: any) => ele.category_id == event.category_id\n    );\n    this.categoryData.selectedCategories.splice(categoryIndex, 1);\n    const index = this.selectedIds.findIndex(\n      (element: any) => element == event.category_id\n    );\n    this.selectedIds.splice(index, 1);\n  }\n\n  close() {\n    const currentProgram = this.preservePrimaryProgram?.length\n      ? JSON.parse(this.preservePrimaryProgram)\n      : {};\n    const selectedProgramsId = this.preservedProgramsId?.length\n      ? JSON.parse(this.preservedProgramsId)\n      : undefined;\n    const selectedProgramsDetail = this.preservedSelectedPrograms?.length\n      ? JSON.parse(this.preservedSelectedPrograms)\n      : [];\n    if (\n      this.preservePrimaryProgram?.length &&\n      this.preservedSelectedPrograms?.length\n    ) {\n      this.saveSelectedProgram.emit({\n        program: currentProgram,\n        categories: JSON.parse(this.tempSelectedCategories),\n        linkedProgram: selectedProgramsDetail,\n      });\n    }\n    // this.saveSelectedProgram.emit({program: currentProgram, categories: this.selectedIds, linkedProgram: selectedProgramsDetail  });\n    this.closeEvent.emit();\n  }\n\n  save() {\n    if (!this.hideProgramsList && false) {\n      this.displayConfirmationMessage = true;\n    } else {\n      const selectedCategoryIds = this.selectedIds.concat(\n        this.selectedSubCategoryIds\n      );\n      this.saveSelectedProgram.emit({\n        program: this.currentProgram,\n        categories: [...new Set(selectedCategoryIds)],\n        linkedProgram: this.selectedProgramsDetail,\n      });\n      // this.saveSelectedProgram.emit({ program: this.currentProgram, categories: this.selectedIds });\n    }\n  }\n\n  saveChanges(value: boolean) {\n    if (value) {\n      const selectedCategoryIds = this.selectedIds.concat(\n        this.selectedSubCategoryIds\n      );\n      this.saveSelectedProgram.emit({\n        program: this.currentProgram,\n        categories: [...new Set(selectedCategoryIds)],\n        linkedProgram: this.selectedProgramsDetail,\n      });\n      // this.saveSelectedProgram.emit({ program: this.currentProgram, categories: this.selectedIds });\n    } else {\n      this.displayConfirmationMessage = false;\n    }\n  }\n\n  deleteEvent(event: any) {\n    const indexOfProgram = this.selectedProgramsDetail?.findIndex(\n      (el: any) => el?.category_id === event?.category_id\n    );\n    if (indexOfProgram !== -1) {\n      this.selectedProgramsDetail?.splice(indexOfProgram, 1);\n    }\n    const indexOfId = this.selectedProgramsId?.findIndex(\n      (el: any) => el === event?._id\n    );\n    if (indexOfId !== -1) {\n      this.selectedProgramsId?.splice(indexOfId, 1);\n    }\n    if (this.currentProgram?._id === event?._id) {\n      if (this.selectedProgramsDetail?.length) {\n        this.currentProgram = this.selectedProgramsDetail[0];\n      } else {\n        this.currentProgram = {};\n      }\n    }\n\n    // this.currentProgram = undefined;\n    this.showCategories = false;\n    this.selectedIds = [];\n    this.categoryList = [];\n    //As this is a radio list and only one item can be selected thats why we are resetting all the counts to zero\n    this.getSelectedProgramCount(false, event?.programType);\n  }\n\n  getSelectedProgramCount(event?: boolean, programType?: number) {\n    // switch (this.currentProgram.programType) {\n    switch (programType) {\n      case 0:\n        event\n          ? this.programData.SelectedOthersProgramsCount++\n          : this.programData.SelectedOthersProgramsCount--;\n        break;\n      case 1:\n        event\n          ? this.programData.SelectedRegulationProgramsCount++\n          : this.programData.SelectedRegulationProgramsCount--;\n        break;\n      case 2:\n        event\n          ? this.programData.SelectedStandardProgramsCount++\n          : this.programData.SelectedStandardProgramsCount--;\n        break;\n      case 3:\n        event\n          ? this.programData.SelectedInternalControlsProgramsCount++\n          : this.programData.SelectedInternalControlsProgramsCount--;\n        break;\n    }\n  }\n\n  /**\n   * If the selectedProgram array has a length, then preserve the first element of the array as the\n   * preservePrimaryProgram variable. Otherwise, set the preservePrimaryProgram variable to an empty\n   * object.\n   *\n   * If the selectedProgramsId array has a length, then preserve the array as the preservedProgramsId\n   * variable. Otherwise, set the preservedProgramsId variable to an empty array.\n   *\n   * If the selectedProgramsDetail array has a length, then preserve the array as the\n   * preservedSelectedPrograms variable. Otherwise, set the preservedSelectedPrograms variable to an\n   * empty array.\n   *\n   * If the selectedProgram array does not have a length, then set the selectedProgramsDetail array to\n   * an empty array and the selectedProgramsId array to an empty array.\n   */\n  preservePreviousDetails() {\n    if (this.selectedProgram[0]?.length || this.currentProgram) {\n      this.preservePrimaryProgram = this.selectedProgram?.length\n        ? JSON.stringify(this.selectedProgram[0])\n        : {};\n      this.preservedProgramsId = this.selectedProgramsId?.length\n        ? JSON.stringify(this.selectedProgramsId)\n        : [];\n      this.preservedSelectedPrograms = this.selectedProgramsDetail\n        ? JSON.stringify(this.selectedProgramsDetail)\n        : [];\n    } else {\n      this.selectedProgramsDetail = [];\n      this.selectedProgramsId = [];\n    }\n  }\n\n  programSubTab: 'PROGRAMS' | 'OTHER_PROGRAMS' = 'PROGRAMS';\n  setProgramSubTab(tab: 'PROGRAMS' | 'OTHER_PROGRAMS') {\n    this.programSubTab = tab;\n    this.getProgramsList();\n  }\n}\n","<div\n  class=\"program-listing\"\n  [class.animate]=\"animation\"\n  *ngIf=\"!showCategories && !hideProgramsList\"\n>\n  <div\n    class=\"program-listing-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Program</div>\n  </div>\n  <div class=\"program-listing-body\">\n    <div class=\"filter-card-row\">\n      <div\n        class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n        [class.active]=\"activeTab == 'regulations'\"\n        (click)=\"changeTab('regulations')\"\n      >\n        <div class=\"left\">\n          <label\n            class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n            >REGULATIONS</label\n          >\n          <p *ngIf=\"programData?.SelectedRegulationProgramsCount > 0\">\n            {{ programData?.SelectedRegulationProgramsCount }}\n            {{\n              programData?.SelectedRegulationProgramsCount == 1\n                ? \"Program\"\n                : \"Programs\"\n            }}\n            selected\n          </p>\n        </div>\n        <!-- <span class=\"counter\">{{programData?.AllRegulationProgramsCount}}</span> -->\n        <span class=\"counter\">{{\n          programTabDataCount?.allRegulationProgramsCount\n        }}</span>\n      </div>\n      <div\n        class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n        [class.active]=\"activeTab == 'standards'\"\n        (click)=\"changeTab('standards')\"\n      >\n        <div class=\"left\">\n          <label\n            class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n            >STANDARDS</label\n          >\n          <p *ngIf=\"programData?.SelectedStandardProgramsCount > 0\">\n            {{ programData?.SelectedStandardProgramsCount }}\n            {{\n              programData?.SelectedStandardProgramsCount == 1\n                ? \"Program\"\n                : \"Programs\"\n            }}\n            selected\n          </p>\n        </div>\n        <!-- <span class=\"counter\">{{programData?.AllStandardProgramsCount}}</span> -->\n        <span class=\"counter\">{{\n          programTabDataCount?.allStandardProgramsCount\n        }}</span>\n      </div>\n      <div\n        class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n        [class.active]=\"activeTab == 'internal_controls'\"\n        (click)=\"changeTab('internal_controls')\"\n      >\n        <div class=\"left\">\n          <label\n            class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n            >INTERNAL CONTROLS</label\n          >\n          <p *ngIf=\"programData?.SelectedInternalControlsProgramsCount > 0\">\n            {{ programData?.SelectedInternalControlsProgramsCount }}\n            {{\n              programData?.SelectedInternalControlsProgramsCount == 1\n                ? \"Program\"\n                : \"Programs\"\n            }}\n            selected\n          </p>\n        </div>\n        <!-- <span class=\"counter\">{{programData?.AllInternalControlsProgramsCount}}</span> -->\n        <span class=\"counter\">{{\n          programTabDataCount?.allInternalControlsProgramsCount\n        }}</span>\n      </div>\n      <div\n        class=\"filter-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n        [class.active]=\"activeTab == 'others'\"\n        (click)=\"changeTab('others')\"\n      >\n        <div class=\"left\">\n          <label\n            class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n            >OTHERS</label\n          >\n          <p *ngIf=\"programData?.SelectedOthersProgramsCount > 0\">\n            {{ programData?.SelectedOthersProgramsCount }}\n            {{\n              programData?.SelectedOthersProgramsCount == 1\n                ? \"Program\"\n                : \"Programs\"\n            }}\n            selected\n          </p>\n        </div>\n        <!-- <span class=\"counter\">{{programData?.AllOthersProgramsCount}}</span> -->\n        <span class=\"counter\">{{\n          programTabDataCount?.allOthersProgramsCount\n        }}</span>\n      </div>\n    </div>\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        type=\"text\"\n        #searchProgram\n        (keyup.enter)=\"handleSearch($event.target.value)\"\n        placeholder=\"Search Programs\"\n      />\n    </div>\n    <!-- mode === 'EDIT' -->\n    <div\n      *ngIf=\"mode === 'EDIT' && programData?.AllViewOnlyProgramCount\"\n      class=\"program-listing-tab vx-d-flex vx-align-center\"\n    >\n      <button\n        (click)=\"setProgramSubTab('PROGRAMS')\"\n        class=\"vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n        [class.active]=\"programSubTab === 'PROGRAMS'\"\n      >\n        PROGRAMS\n        <span\n          class=\"count vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\"\n          >{{ programData?.AllProgramsCount }}</span\n        >\n      </button>\n      <button\n        (click)=\"setProgramSubTab('OTHER_PROGRAMS')\"\n        class=\"vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\"\n        [class.active]=\"programSubTab === 'OTHER_PROGRAMS'\"\n      >\n        OTHER PROGRAMS\n        <span\n          class=\"count vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\"\n          >{{ programData?.AllViewOnlyProgramCount }}</span\n        >\n      </button>\n    </div>\n    <app-pagination\n      *ngIf=\"programData.totalPages > 1\"\n      [start]=\"programData.from\"\n      [end]=\"programData.to\"\n      [total]=\"programData.totalRecords\"\n      [pageCount]=\"programData.totalPages\"\n      [currentPage]=\"programData.currentPage\"\n      (selectedPage)=\"changePage($event, 'program')\"\n    ></app-pagination>\n    <div\n      class=\"program-listing-part vx-mb-4\"\n      [class.with-category-list]=\"!showCategories && !hideProgramsList\"\n      [class.with-pagination]=\"programData.totalPages > 1\"\n    >\n      <app-no-data\n        *ngIf=\"programData?.data?.length === 0 && !loader\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No Data Found'\"\n      ></app-no-data>\n\n      <div\n        class=\"program-listing-item\"\n        [class.active]=\"showCategories && currentProgram?._id == program?._id\"\n        *ngFor=\"let program of programData.data; let i = index\"\n        [class.final-select]=\"false\"\n      >\n        <!-- after category was select & user move to back and edit then final-select class was show -->\n        <!-- [class.disabled]=\"currentProgram?._id === program?._id && (mode === 'EDIT' || openedFrom === 'PROGRAM_WORKROOM') && programSubTab !== 'OTHER_PROGRAMS'\" -->\n        <div\n          class=\"table-row main-list\"\n          [class.active]=\"selectedProgramsId?.includes(program?._id)\"\n          [class.disabled]=\"\n            feature.isFeatureEnabled('ff_deprecate_primary_program_flag')\n              ? false\n              : currentProgram?._id === program?._id &&\n                (mode === 'EDIT' || openedFrom === 'PROGRAM_WORKROOM') &&\n                programSubTab !== 'OTHER_PROGRAMS'\n          \"\n        >\n          <div class=\"table-column serial\">\n            <div\n              class=\"sr-no\"\n              [appTooltip]=\"i + programData.from\"\n              placement=\"bottom\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"true\"\n            >\n              {{ i + programData.from }}\n            </div>\n            <!-- [disabled]=\"currentProgram?._id === program?._id && (mode === 'EDIT' || openedFrom === 'PROGRAM_WORKROOM')\" -->\n            <app-cs-checkbox\n              *ngIf=\"programSubTab !== 'OTHER_PROGRAMS'\"\n              [disabled]=\"\n                feature.isFeatureEnabled('ff_deprecate_primary_program_flag')\n                  ? false\n                  : currentProgram?._id === program?._id &&\n                    (mode === 'EDIT' || openedFrom === 'PROGRAM_WORKROOM')\n              \"\n              [ngValue]=\"selectedProgramsId?.includes(program?._id)\"\n              (ngValueChange)=\"selectProgram($event, program)\"\n            ></app-cs-checkbox>\n            <!-- <app-cs-radio [name]=\"'t'\" [checked]=\"currentProgram?._id == program?._id\" (checkedEvent)=\"selectProgram($event.target.checked,program)\"></app-cs-radio> -->\n          </div>\n          <div class=\"table-column name\">\n            <div class=\"name-inner\">\n              <div class=\"name-with-count\">\n                <div\n                  class=\"value\"\n                  [appTooltip]=\"program?.item_name\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{ program?.name }}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div class=\"table-column primary-program\">\n            <ng-container\n              *ngIf=\"\n                !feature.isFeatureEnabled('ff_deprecate_primary_program_flag')\n              \"\n            >\n              <app-cs-switch\n                *ngIf=\"\n                  !(mode === 'EDIT' || openedFrom === 'PROGRAM_WORKROOM') ||\n                  currentProgram?._id === program?._id\n                \"\n                [disabled]=\"currentProgram?._id === program?._id\"\n                [ngValue]=\"currentProgram?._id === program?._id\"\n                (ngValueChange)=\"setPrimaryProgram($event, program)\"\n                >{{\n                  currentProgram?._id === program?._id\n                    ? \"PRIMARY PROGRAM\"\n                    : \"SET AS PRIMARY PROGRAM\"\n                }}</app-cs-switch\n              >\n            </ng-container>\n          </div>\n          <!-- <div class=\"table-column action\">\n                        <button class=\"arrow\" *ngIf=\"program?.child_id?.length\" [class.disabled]=\"false\"\n                            [disabled]=\"false\">\n                            <i *ngIf=\"!(showCategories && currentProgram?._id == program?._id)\"\n                                (click)=\"selectProgram($event,program)\" class=\"icons\">&#xe970;</i>\n                            <i *ngIf=\"showCategories && currentProgram?._id == program?._id\" class=\"icons\">&#xe9e8;</i>\n                        </button>\n                    </div> -->\n        </div>\n      </div>\n    </div>\n\n    <app-floating-bar\n      *ngIf=\"feature.isFeatureEnabled('ff_deprecate_primary_program_flag')\"\n      [selectedData]=\"\n        selectedProgramsDetail?.length ? selectedProgramsDetail : []\n      \"\n      [displayElementKey]=\"'name'\"\n      [singularText]=\"'Program selected'\"\n      [pluralText]=\"'Programs selected'\"\n      (closeEvent)=\"openCategories()\"\n      (deleteEvent)=\"deleteEvent($event)\"\n      [isDisabled]=\"\n        (currentProgram?.category_id ? [currentProgram] : [])?.length\n          ? false\n          : true\n      \"\n      (closeList)=\"close()\"\n      [elementId]=\"'category_id'\"\n    >\n    </app-floating-bar>\n\n    <app-floating-bar\n      *ngIf=\"!feature.isFeatureEnabled('ff_deprecate_primary_program_flag')\"\n      [selectedData]=\"\n        selectedProgramsDetail?.length ? selectedProgramsDetail : []\n      \"\n      [displayElementKey]=\"'name'\"\n      [singularText]=\"'Program selected'\"\n      [pluralText]=\"'Programs selected'\"\n      (closeEvent)=\"openCategories()\"\n      (deleteEvent)=\"deleteEvent($event)\"\n      [isDisabled]=\"\n        (currentProgram?.category_id ? [currentProgram] : [])?.length\n          ? false\n          : true\n      \"\n      (closeList)=\"close()\"\n      [defaultSelected]=\"currentProgram\"\n      [nonRemovableUsersList]=\"\n        mode === 'EDIT' || openedFrom === 'PROGRAM_WORKROOM'\n          ? viewOnlyProgramsCategoryId\n          : [currentProgram?.category_id]\n      \"\n      [elementId]=\"'category_id'\"\n    >\n    </app-floating-bar>\n  </div>\n  <ng-container\n    *ngIf=\"!feature.isFeatureEnabled('ff_deprecate_primary_program_flag')\"\n  >\n    <div\n      class=\"program-listing-confirmation\"\n      *ngIf=\"displayConfirmationMessage\"\n    >\n      <div class=\"confirmation-top\">\n        <div class=\"icon-block\"><i class=\"icons\">&#xe930;</i></div>\n        <div class=\"text\">\n          Once you select this Program, all default values associated with this\n          Program will also be updated.\n        </div>\n      </div>\n      <div class=\"confirmation-bottom\">\n        <div class=\"message\">Are you sure you would like to proceed?</div>\n        <div class=\"button-group\">\n          <button class=\"no-btn\" (click)=\"saveChanges(false)\">NO</button>\n          <button class=\"yes-btn\" (click)=\"saveChanges(true)\">YES</button>\n        </div>\n      </div>\n    </div>\n    <div\n      class=\"program-listing-confirmation\"\n      *ngIf=\"isPrimaryConfirmation && !isPrimaryUnchecked\"\n    >\n      <div class=\"confirmation-top\">\n        <div class=\"icon-block\"><i class=\"icons\">&#xe930;</i></div>\n        <div class=\"text\" [innerHTML]=\"primaryConfirmationMessage\"></div>\n      </div>\n      <div class=\"confirmation-bottom\">\n        <div class=\"message\">Are you sure you would like to proceed?</div>\n        <div class=\"button-group\">\n          <button class=\"no-btn\" (click)=\"updatePrimaryProgram(false)\">\n            NO\n          </button>\n          <button class=\"yes-btn\" (click)=\"updatePrimaryProgram(true)\">\n            YES\n          </button>\n        </div>\n      </div>\n    </div>\n\n    <div\n      class=\"program-listing-confirmation error-confirmation\"\n      *ngIf=\"isPrimaryUnchecked\"\n    >\n      <div class=\"confirmation-top\">\n        <div class=\"vx-d-flex vx-align-center\">\n          <div class=\"icon-block\"><i class=\"icons\">&#xe930;</i></div>\n          <div class=\"text vx-pr-4\">\n            You cannot deselect this Program since this is the\n            <em>Primary Program</em> for this responsibility. To proceed, first\n            select another Program as the <em>Primary Program</em>.\n          </div>\n        </div>\n        <button class=\"ok-btn\" (click)=\"updatePrimaryProgram(false)\">OK</button>\n      </div>\n    </div>\n  </ng-container>\n  <!-- <app-floating-bar [selectedData]=\"(currentProgram?.category_id)?[currentProgram]:[]\" [displayElementKey]=\"'name'\"\n        [singularText]=\"'Program selected'\" [pluralText]=\"'Programs selected'\" (closeEvent)=\"openCategories()\"\n        (deleteEvent)=\"deleteEvent($event)\" [isDisabled]=\"((currentProgram?.category_id)?[currentProgram]:[])?.length ? false :true \" (closeList)=\"close()\">\n    </app-floating-bar> -->\n\n  <!-- ((currentProgram?.category_id)?[currentProgram]:[])?.length ? false :true  -->\n\n  <app-loader *ngIf=\"loader\"></app-loader>\n</div>\n<div\n  class=\"program-listing\"\n  [class.animate]=\"animation\"\n  *ngIf=\"showCategories || hideProgramsList\"\n>\n  <div\n    class=\"program-listing-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n      <button\n        class=\"back-btn vx-fs-16 vx-p-0 vx-mr-2\"\n        (click)=\"backToPrograms()\"\n      >\n        <i class=\"icons\">&#xe91d;</i>\n      </button>\n      <!-- <span *ngIf=\"currentProgram?.name\"> {{currentProgram?.name}} > </span> -->\n      Program > Select Program Categories\n    </div>\n  </div>\n  <div class=\"program-listing-body\">\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        type=\"text\"\n        #searchCategory\n        (keyup.enter)=\"categorySearch($event.target.value)\"\n        placeholder=\"Search Categories\"\n      />\n    </div>\n    <app-pagination\n      *ngIf=\"categoryData.totalPages > 1\"\n      class=\"category-pagination\"\n      [start]=\"categoryData.from\"\n      [end]=\"categoryData.to\"\n      [total]=\"categoryData.totalRecords\"\n      [pageCount]=\"categoryData.totalPages\"\n      [currentPage]=\"categoryData.currentPage\"\n      (selectedPage)=\"changePage($event, 'category')\"\n    ></app-pagination>\n    <div\n      class=\"program-listing-part vx-mb-4\"\n      [class.with-category-pagination]=\"categoryData.totalPages > 1\"\n    >\n      <app-no-data\n        *ngIf=\"categoryData?.data?.length === 0 && !loader\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No Data Found'\"\n      ></app-no-data>\n\n      <ng-container *ngIf=\"!loader && categoryData.data?.length\">\n        <ng-container *ngIf=\"false\">\n          <div\n            class=\"selected-area\"\n            *ngIf=\"\n              !loader &&\n              (currentProgram?.name\n                ? categoryData.data?.length\n                : programData?.data?.length)\n            \"\n          >\n            <app-cs-checkbox\n              *ngIf=\"checkCategoriesSelection() == 'checked'\"\n              [ngValue]=\"true\"\n              (ngValueChange)=\"selectAllCategories(false)\"\n              >Deselect All</app-cs-checkbox\n            >\n            <app-cs-checkbox-indeterminate\n              *ngIf=\"checkCategoriesSelection() == 'indeterminate'\"\n              [ngValue]=\"true\"\n              (ngValueChange)=\"selectAllCategories(false)\"\n              >Deselect All</app-cs-checkbox-indeterminate\n            >\n            <app-cs-checkbox\n              *ngIf=\"checkCategoriesSelection() == 'unchecked'\"\n              [ngValue]=\"false\"\n              (ngValueChange)=\"selectAllCategories(true)\"\n              >Select All</app-cs-checkbox\n            >\n          </div>\n        </ng-container>\n        <div class=\"table-head\">\n          <div class=\"table-row\">\n            <div class=\"table-column serial\">#</div>\n            <div class=\"table-column category-name\">CATEGORIES</div>\n            <div class=\"table-column category-within\">WITHIN</div>\n          </div>\n        </div>\n        <div\n          class=\"program-listing-item\"\n          [class.active]=\"subList\"\n          *ngFor=\"let category of categoryData.data; let i = index\"\n          [class.active]=\"selectedIds.includes(category.category_id)\"\n        >\n          <div class=\"table-row main-list\" [class.disabled]=\"false\">\n            <div class=\"table-column serial\">\n              <div\n                class=\"sr-no\"\n                [appTooltip]=\"i + categoryData?.from\"\n                placement=\"bottom\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"true\"\n              >\n                {{ i + categoryData?.from }}\n              </div>\n              <app-cs-checkbox\n                [ngValue]=\"selectedIds.includes(category.category_id)\"\n                (ngValueChange)=\"selectCategory($event, category)\"\n              ></app-cs-checkbox>\n            </div>\n            <div class=\"table-column category-name\">\n              <div class=\"name-inner\">\n                <div class=\"name-with-count\">\n                  <div\n                    class=\"value\"\n                    [appTooltip]=\"category?.name\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                  >\n                    {{ category?.name }}\n                  </div>\n                </div>\n                <!-- <div class=\"within-part\" *ngIf=\"category?.parent_category_name?.length>0\">\n                                    <span class=\"within-box\">Within</span>\n                                    <span class=\"value\" [appTooltip]=\"'South Africa > America > India'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">\n                                        <span *ngFor=\"let parent of category?.parent_category_name;let j=index\">{{(j!=(category?.parent_category_name?.length-1))?\n                                            parent+' < ':parent}} </span>\n                                    </span>\n                                </div> -->\n              </div>\n            </div>\n            <div\n              class=\"table-column category-within\"\n              *ngIf=\"category?.parent_category_name?.length > 0\"\n            >\n              <div\n                *ngFor=\"\n                  let parent of category?.parent_category_name;\n                  let last = last\n                \"\n                class=\"within-name\"\n                [appTooltip]=\"\n                  category?.parent_category_name\n                    ?.slice()\n                    ?.reverse()\n                    ?.join(' > ')\n                \"\n                placement=\"bottom-left\"\n                delay=\"0\"\n                type=\"black\"\n                [tooltipMandatory]=\"false\"\n              >\n                {{ parent }}\n                <span *ngIf=\"!last\"> >&nbsp; </span>\n              </div>\n              <div\n                *ngIf=\"\n                  category?.parent_category_ids?.includes(\n                    currentProgram?.category_id\n                  ) &&\n                  !feature.isFeatureEnabled('ff_deprecate_primary_program_flag')\n                \"\n                class=\"primary-label\"\n              >\n                PRIMARY\n              </div>\n            </div>\n          </div>\n        </div>\n      </ng-container>\n    </div>\n\n    <app-floating-bar\n      [selectedData]=\"categoryData.selectedCategories\"\n      [displayElementKey]=\"'name'\"\n      [singularText]=\"'Program Category selected'\"\n      [pluralText]=\"'Program Categories selected'\"\n      (closeEvent)=\"save()\"\n      (deleteEvent)=\"removeCategories($event)\"\n      (closeList)=\"backToPrograms()\"\n    >\n    </app-floating-bar>\n  </div>\n  <ng-container\n    *ngIf=\"!feature.isFeatureEnabled('ff_deprecate_primary_program_flag')\"\n  >\n    <div\n      class=\"program-listing-confirmation\"\n      *ngIf=\"displayConfirmationMessage\"\n    >\n      <div class=\"confirmation-top\">\n        <div class=\"icon-block\"><i class=\"icons\">&#xe930;</i></div>\n        <div class=\"text\">\n          Once you select this Program, all default values associated with this\n          Program will also be updated.\n        </div>\n      </div>\n      <div class=\"confirmation-bottom\">\n        <div class=\"message\">Are you sure you would like to proceed?</div>\n        <div class=\"button-group\">\n          <button class=\"no-btn\" (click)=\"saveChanges(false)\">NO</button>\n          <button class=\"yes-btn\" (click)=\"saveChanges(true)\">YES</button>\n        </div>\n      </div>\n    </div>\n  </ng-container>\n  <app-loader *ngIf=\"loader\"></app-loader>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { ASSETS } from '../../constants/assets.constants';\n\n@Component({\n  selector: 'app-roles-list',\n  templateUrl: './roles-list.component.html',\n  styleUrls: ['./roles-list.component.less'],\n})\nexport class RolesListComponent implements OnInit {\n  animation = true;\n  roleList = false;\n  ASSETS = ASSETS;\n  constructor() { }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  clickRoleList() {\n    this.roleList = !this.roleList;\n  }\n}\n","<div class=\"roles-list\" [class.animate]=\"animation\">\n  <div class=\"roles-list-head\">\n    <h3 class=\"roles-list-title\">Select Roles(s)</h3>\n  </div>\n\n  <div class=\"roles-list-body\">\n    <div class=\"search-block\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input type=\"text\" placeholder=\"Search Roles\" />\n    </div>\n\n    <div *ngIf=\"true\" class=\"roles-list-mid vx-mt-2\">\n      <div class=\"role-box-select vx-pb-2\">\n        <app-cs-checkbox>\n          <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt\">\n            Select All\n          </div>\n        </app-cs-checkbox>\n        <app-cs-checkbox-indeterminate>\n          <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt\">\n            Deselect All\n          </div>\n        </app-cs-checkbox-indeterminate>\n      </div>\n\n      <div class=\"role-box vx-mb-2\" *ngFor=\"let data of [1, 1, 1]\">\n        <div\n          (click)=\"clickRoleList()\"\n          class=\"role-box-heading vx-d-flex vx-align-center vx-justify-between vx-p-3\"\n        >\n          <div class=\"left vx-d-flex vx-align-center vx-lh-4\">\n            <app-cs-checkbox></app-cs-checkbox>\n            <div\n              class=\"name vx-fs-12 vx-label-txt\"\n              [appTooltip]=\"'Role name'\"\n              placement=\"bottom-left\"\n              delay=\"0\"\n              type=\"black\"\n              [tooltipMandatory]=\"false\"\n            >\n              Role name\n            </div>\n            <span\n              class=\"count vx-fs-9 vx-fw-600 vx-lh-3 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-ml-2\"\n              >10 PERMISSIONS</span\n            >\n          </div>\n          <div class=\"right vx-d-flex vx-align-center vx-justify-between\">\n            <div\n              class=\"status-label vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1\"\n              [class.power-user]=\"true\"\n              [class.all-user]=\"false\"\n            >\n              Power User\n            </div>\n            <button\n              class=\"arrow-btn vx-fs-12 vx-paragraph-txt vx-m-0 vx-p-0 vx-d-flex vx-align-center\"\n            >\n              <i *ngIf=\"!roleList\" class=\"icons\">&#xe970;</i>\n              <i *ngIf=\"roleList\" class=\"icons\">&#xe9e8;</i>\n            </button>\n          </div>\n        </div>\n        <div class=\"role-box-list\" *ngIf=\"roleList\">\n          <ul class=\"vx-p-0 vx-m-0\">\n            <li class=\"vx-p-3 vx-lh-4\">\n              <div class=\"value vx-fs-12 vx-label-txt\">\n                Manage Roles\n                <span class=\"vx-fs-10 vx-paragraph-txt\"\n                  >(Create, Edit, Delete)</span\n                >\n              </div>\n            </li>\n            <li class=\"vx-p-3 vx-lh-4\">\n              <div class=\"value vx-fs-12 vx-label-txt\">View User List</div>\n            </li>\n            <li class=\"vx-p-3 vx-lh-4\">\n              <div class=\"value vx-fs-12 vx-label-txt\">\n                Manage Users\n                <span class=\"vx-fs-10 vx-paragraph-txt\"\n                  >(Create/Edit/Delete/Deactivate)</span\n                >\n              </div>\n            </li>\n            <li class=\"vx-p-3 vx-lh-4\">\n              <div class=\"value vx-fs-12 vx-label-txt\">Over-ride Log In</div>\n            </li>\n            <li class=\"vx-p-3 vx-lh-4\">\n              <div class=\"value vx-fs-12 vx-label-txt\">\n                View Statutory Holidays\n              </div>\n            </li>\n            <li class=\"vx-p-3 vx-lh-4\">\n              <div class=\"value vx-fs-12 vx-label-txt\">\n                Manage Statutory Holidays\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n    </div>\n\n    <app-no-data\n      *ngIf=\"false\"\n      [noDataImage]=\"ASSETS.search_data\"\n      [noDataText]=\"'No Roles Found'\"\n    ></app-no-data>\n  </div>\n\n  <div class=\"roles-list-footer\">\n    <app-floating-bar></app-floating-bar>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'file-pill',\n  templateUrl: './file-pill.component.html',\n  styleUrls: ['./file-pill.component.less','../../../forms.less']\n})\nexport class FilePillComponent implements OnInit {\n  @Output() delete : EventEmitter<any> = new EventEmitter<any>();\n  @Input() name !:string  | any;\n  @Input() extension !:string |any;\n  @Input() disabled = false;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","\n    <div class=\"file-item vx-d-flex vx-align-center vx-mr-1 vx-mt-1\">\n        <span class=\"file table\"  ngClass=\"{{extension ?? ''}}\">\n            <i class=\"icons\">&#xe92e;</i>\n            <div class=\"format\">{{extension ?? '--'}}</div>\n        </span>\n        <div class=\"file-name vx-fs-11 vx-label-txt\" [appTooltip]=\"name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{name}}</div>\n        <button [class.disabled]=\"disabled\" (click)=\"delete.emit()\" class=\"delete-btn vx-fs-12 vx-txt-red vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-2 vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons\">&#xe923;</i></button>\n    <!-- </div> -->","import { Component, EventEmitter, forwardRef, Input, OnInit, Output, Provider } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nconst SWITCH_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => SwitchComponent),\n  multi: true,\n};\n@Component({\n  selector: 'switch',\n  templateUrl: './cs-switch.component.html',\n  styleUrls: ['./cs-switch.component.less'],\n  providers: [SWITCH_VALUE_ACCESSOR],\n  inputs:['disabled','checked','tooltipMessage','value','position']\n})\nexport class SwitchComponent implements ControlValueAccessor {\n  @Output() change = new EventEmitter();\n  value !: any;\n  tooltipMessage !:any;\n  disabled !:boolean | any;\n  checked !:boolean | any;\n  position !: any;\n  onChanged = (value:any) => {};\n  onTouched = () => {};\n\n  writeValue(value: boolean): void {\n    this.checked = value ?? false\n  }\n  registerOnChange(fn: any): void {\n    this.onChanged = fn;\n  }\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n  valueChanged(){\n \n    this.checked = !this.checked;\n    this.onChanged(this.checked);\n    this.onTouched();\n   // this.change.emit(this.checked)\n  }\n}\n\n\n","<label class=\"cs-switch\" [class.top]=\"position == 'top'\">\n  <!-- [class.large]=\"large\" -->\n  <span class=\"value\">\n    <span [innerHTML]=\"value\" *ngIf=\"value != undefined\"></span>\n    <!-- <span class=\"notification\" *ngIf=\"!tooltipMessage\" [appTooltip]=\"tooltipMessage\" placement=\"bottom-right\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n        <i class=\"vc-icons\">&#xe9f3;</i>\n      </span> -->\n  </span>\n  <!-- [class.last]=\"last\" -->\n\n  <!-- if not tooltip -->\n  <span class=\"switch\" *ngIf=\"tooltipMessage === '' || tooltipMessage === undefined\">\n    <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"valueChanged()\" />\n    <span class=\"switch-box\">\n      <span class=\"switch-ball\"></span>\n    </span>\n  </span>\n\n\n  <!-- if tooltip -->\n  <span\n    class=\"switch\"\n    *ngIf=\"tooltipMessage !== '' && tooltipMessage !== undefined\"\n    [appTooltip]=\"tooltipMessage\"\n    placement=\"bottom-right\"\n    delay=\"0\"\n    type=\"black\"\n    [tooltipMandatory]=\"true\"\n  >\n    <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"valueChanged()\" />\n    <span class=\"switch-box\">\n      <span class=\"switch-ball\"></span>\n    </span>\n  </span>\n</label>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'role-loader',\n  templateUrl: './loader.component.html',\n  styleUrls: ['./loader.component.less']\n})\nexport class LoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"assessment-list-item\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n    <div class=\"table-row\">\n        <div class=\"table-column serial\">\n            <div class=\"sr-no\"></div>\n        </div>\n        <div class=\"table-column name\">\n            <div class=\"loader\"></div>\n        </div>\n        <div class=\"table-column action\">\n            <div class=\"loader\"></div>\n        </div>\n    </div>\n</div>","import { IfStmt } from '@angular/compiler';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ASSETS } from '../../../constants/assets.constants';\n\n@Component({\n  selector: 'role-list',\n  templateUrl: './role-list.component.html',\n  styleUrls: ['./role-list.component.less'],\n})\nexport class RoleListComponent implements OnInit {\n  @Output() save = new EventEmitter();\n  @Output() cancel = new EventEmitter();\n  @Input() featureflagrole!: boolean;\n  @Input() featureflagGroup!: boolean;\n  @Input() ff_rc_listing!: boolean;\n  animation = true;\n  ASSETS = ASSETS;\n  constructor() { }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n  searchKey: any = '';\n  //Used to disable items\n  systemRolesIds: any = [];\n  //used to check checkbox\n  selectedIds: any = [];\n  //complete object of selected items\n  selectedRoles: any = [];\n  //contains id's of all the expanded rows\n  expandedRows: any = [];\n\n  //list of all the available roles\n  rolesList: any = [];\n\n  initialSelected: any = null;\n  showConfirmation = false;\n  // only used in select all function\n  allListIds = [];\n  //isAllItems\n  allSelected = false;\n  @Input('list') set setList(value: any) {\n    if (value && value?.length) {\n      this.rolesList = [...value];\n      this.setSystemRole(this.rolesList);\n      this.allListIds = this.rolesList.map((ele: any) => ele?._id);\n      this.setAllSelectedStatus();\n    }\n  }\n  @Input() loading = false;\n  @Input('selected') set selectedRolesVal(value: any) {\n    this.selectedRoles = this.uniqueByProp(\n      [...this.selectedRoles, ...value],\n      '_id'\n    );\n    this.selectedIds = this.selectedRoles.map((ele: any) => ele?._id);\n    if (!this.initialSelected || !this.initialSelected?.length) {\n      this.initialSelected = this.selectedIds;\n    }\n    this.setAllSelectedStatus();\n  }\n\n  /**\n   * #### Description\n   *\n   * Expands or collapse the row\n   * @param type\n   * @param [id]\n   */\n  expandOrCollapse(type: 'EXPAND' | 'COLLAPSE' | 'COLLAPSE_ALL', id?: any) {\n    switch (type) {\n      case 'COLLAPSE': {\n        this.expandedRows = this.expandedRows.filter((ele: any) => ele !== id);\n        break;\n      }\n      case 'EXPAND': {\n        this.expandedRows = Array.from(\n          new Set<any[]>([...this.expandedRows, ...[id]])\n        );\n        break;\n      }\n      case 'COLLAPSE_ALL': {\n        this.expandedRows = [];\n        break;\n      }\n    }\n  }\n\n  selectAll(evt: any) {\n    if (evt?.target?.checked === true) {\n      this.selectedRoles = this.rolesList;\n      this.selectedIds = this.rolesList.map((ele: any) => ele?._id);\n    } else {\n      this.selectedRoles = [];\n      this.selectedIds = [];\n      this.setSystemRole(this.rolesList);\n    }\n    this.setAllSelectedStatus();\n  }\n\n  setAllSelectedStatus() {\n    this.allSelected =\n      this.allListIds.sort().toString() === this.selectedIds.sort()?.toString();\n  }\n  /**\n   * #### Description\n   *\n   * Sets system role for admins and key admins\n   * @param roles\n   */\n  setSystemRole(roles: any) {\n    const systemRoles = roles.filter(\n      (ele: any) =>\n        ele?.roleName?.toLowerCase() === 'key admin' ||\n        ele?.roleName?.toLowerCase() === 'admin'\n    );\n    this.systemRolesIds = Array.from(\n      new Set<any[]>([\n        ...this.systemRolesIds,\n        ...systemRoles.map((ele: any) => ele?._id),\n      ])\n    );\n    this.selectedIds = Array.from(\n      new Set<any[]>([...this.selectedIds, ...this.systemRolesIds])\n    );\n    this.selectedRoles = this.uniqueByProp(\n      [...systemRoles, ...this.selectedRoles],\n      '_id'\n    );\n  }\n\n  /**\n   * #### Description\n   * Selects item or deselect a itme\n   * @param evt\n   * @param payload\n   */\n  selectItem(evt: any, payload: any) {\n    evt?.target?.checked === true\n      ? this.manipulateSelectedItems('ADD', payload)\n      : this.manipulateSelectedItems('DELETE', payload);\n  }\n\n  /**\n   * #### Description\n   *\n   * Manipulates selected items in role list\n   * @param action :'ADD' | 'DELETE'\n   * @param payload\n   */\n  manipulateSelectedItems(action: 'ADD' | 'DELETE', payload: any) {\n    if (action === 'ADD') {\n      this.selectedRoles = this.uniqueByProp(\n        [...this.selectedRoles, ...[payload]],\n        '_id'\n      );\n      this.selectedIds = this.selectedRoles.map((ele: any) => ele?._id);\n    } else if (action === 'DELETE') {\n      let index = this.selectedRoles.findIndex(\n        (ele: any) => ele?._id === payload?._id\n      );\n      if (index > -1) {\n        this.selectedRoles = this.selectedRoles.filter(\n          (ele: any) => ele?._id !== payload?._id\n        );\n        this.selectedIds = this.selectedIds.filter(\n          (ele: any) => ele !== payload?._id\n        );\n      }\n    }\n    this.setAllSelectedStatus();\n  }\n\n  saveList() {\n    if (\n      this.initialSelected?.sort()?.toString() !==\n      this.selectedIds.sort()?.toString()\n    ) {\n      this.showConfirmation = true;\n    } else {\n      this.save.emit(this.selectedRoles);\n    }\n  }\n  confirmAction(evt: 'YES' | 'NO') {\n    if (evt === 'YES') {\n      this.save.emit(this.selectedRoles);\n    } else if (evt === 'NO') {\n      this.showConfirmation = false;\n    }\n  }\n\n  closeList() {\n    this.cancel.emit();\n  }\n\n  /**\n   * #### Description\n   *\n   * Returns the unique array of object based on unique key\n   * @param array\n   * @param key\n   * @returns\n   */\n  uniqueByProp(array: any, key: string) {\n    return Array.from(\n      array\n        .reduce(\n          (acc: any, item: any) => (\n            item && item[key] && acc.set(item[key], item), acc\n          ),\n          new Map()\n        )\n        .values()\n    );\n  }\n\n  //view and manage roles and groups text changed with featureflag\n  permissionText(permission: any): string {\n    if (permission == 'view roles') {\n      if (this.ff_rc_listing) {\n        return 'view permissions';\n      } else {\n        return 'view permission groups';\n      }\n    }\n    if (permission == 'manage roles') {\n      if (this.ff_rc_listing) {\n        return 'Manage permissions';\n      } else {\n        return 'Manage permission groups';\n      }\n    }\n    if (permission == 'view groups') {\n      if (this.featureflagGroup) {\n        return 'view user groups';\n      } else {\n        return permission;\n      }\n    }\n    if (permission == 'manage groups') {\n      if (this.featureflagGroup) {\n        return 'Manage user groups';\n      } else {\n        return permission;\n      }\n    }\n    return permission;\n  }\n}\n","<div class=\"roles-list\" [class.animate]=\"animation\">\n  <div\n    class=\"roles-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n  >\n    <div id=\"titlename\" class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\n      {{ ff_rc_listing ? \"Select Permissions\" : \"Select Permission Group(s)\" }}\n    </div>\n  </div>\n\n  <div class=\"roles-list-body\">\n    <div class=\"search-block vx-mb-1\" [class.disabled]=\"!rolesList?.length\">\n      <i class=\"icons\">&#xe90b;</i>\n      <input\n        type=\"text\"\n        [placeholder]=\"\n          ff_rc_listing ? 'Search Permissions' : 'Search Permission Groups'\n        \"\n        [(ngModel)]=\"searchKey\"\n      />\n    </div>\n    <div class=\"vx-mt-4\" *ngIf=\"loading\"><role-loader></role-loader></div>\n\n    <ng-container *ngIf=\"!loading\">\n      <ng-container\n        *ngIf=\"rolesList | search : searchKey : 'roleName' as roles\"\n      >\n        <div *ngIf=\"roles?.length > 0\" class=\"roles-list-mid vx-mb-4\">\n          <div class=\"role-box-select vx-pb-2\">\n            <vui-checkbox\n              [indeterminateEnabled]=\"false\"\n              #check\n              (change)=\"selectAll($event)\"\n              [(ngModel)]=\"allSelected\"\n              [checked]=\"allSelected\"\n            >\n              <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt\">\n                {{ !check.checked ? \"Select All\" : \"Deselect All\" }}\n              </div>\n            </vui-checkbox>\n          </div>\n\n          <div\n            class=\"role-box vx-mb-2\"\n            *ngFor=\"let role of roles; let i = index\"\n          >\n            <div\n              (click)=\"\n                !expandedRows.includes(role?._id)\n                  ? expandOrCollapse('EXPAND', role?._id)\n                  : expandOrCollapse('COLLAPSE', role?._id)\n              \"\n              class=\"role-box-heading vx-d-flex vx-align-center vx-justify-between vx-p-3\"\n            >\n              <div class=\"left vx-d-flex vx-align-center vx-lh-4\">\n                <vui-checkbox\n                  [disabled]=\"systemRolesIds.includes(role?._id)\"\n                  [checked]=\"selectedIds.includes(role?._id)\"\n                  (change)=\"selectItem($event, role)\"\n                >\n                </vui-checkbox>\n                <div\n                  class=\"name vx-fs-12 vx-label-txt\"\n                  [appTooltip]=\"'Role name'\"\n                  placement=\"bottom-left\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"false\"\n                >\n                  {{\n                    featureflagrole && role?.permissionGroupName\n                      ? role?.permissionGroupName\n                      : role?.roleName\n                  }}\n                </div>\n                <span\n                  *ngIf=\"role?.roleActions?.length > 0\"\n                  class=\"count vx-fs-9 vx-fw-600 vx-lh-3 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-ml-2\"\n                  >{{ role?.roleActions?.length }} PERMISSIONS</span\n                >\n              </div>\n              <div class=\"right vx-d-flex vx-align-center vx-justify-between\">\n                <div\n                  *ngIf=\"role?.licenseType === 'power users'\"\n                  class=\"status-label vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1\"\n                  [class.power-user]=\"true\"\n                  [class.all-user]=\"false\"\n                >\n                  Power User\n                </div>\n                <div\n                  *ngIf=\"role?.licenseType === 'light users'\"\n                  class=\"status-label vx-fs-9 vx-fw-500 vx-txt-white vx-tt-uppercase vx-pl-1 vx-pr-1\"\n                  [class.power-user]=\"false\"\n                  [class.all-user]=\"true\"\n                >\n                  Light User\n                </div>\n                <button\n                  class=\"arrow-btn vx-fs-12 vx-paragraph-txt vx-m-0 vx-p-0 vx-d-flex vx-align-center\"\n                >\n                  <i *ngIf=\"!expandedRows.includes(role?._id)\" class=\"icons\"\n                    >&#xe970;</i\n                  >\n                  <i *ngIf=\"expandedRows.includes(role?._id)\" class=\"icons\"\n                    >&#xe9e8;</i\n                  >\n                </button>\n              </div>\n            </div>\n            <div class=\"role-box-list\" *ngIf=\"expandedRows.includes(role?._id)\">\n              <ul class=\"vx-p-0 vx-m-0\">\n                <li\n                  class=\"vx-p-3 vx-lh-4\"\n                  *ngFor=\"let permission of role?.roleActions\"\n                >\n                  <div class=\"value vx-fs-12 vx-label-txt\">\n                    {{ permissionText(permission) }}\n                  </div>\n                </li>\n                <!-- <li class=\"vx-p-3 vx-lh-4\">\n                                <div class=\"value vx-fs-12 vx-label-txt\">View User List</div>\n                            </li>\n                            <li class=\"vx-p-3 vx-lh-4\">\n                                <div class=\"value vx-fs-12 vx-label-txt\">Manage Users <span class=\"vx-fs-10 vx-paragraph-txt\">(Create/Edit/Delete/Deactivate)</span></div>\n                            </li>\n                            <li class=\"vx-p-3 vx-lh-4\">\n                                <div class=\"value vx-fs-12 vx-label-txt\">Over-ride Log In</div>\n                            </li>\n                            <li class=\"vx-p-3 vx-lh-4\">\n                                <div class=\"value vx-fs-12 vx-label-txt\">View Statutory Holidays</div>\n                            </li>\n                            <li class=\"vx-p-3 vx-lh-4\">\n                                <div class=\"value vx-fs-12 vx-label-txt\">Manage Statutory Holidays</div>\n                            </li> -->\n              </ul>\n            </div>\n          </div>\n        </div>\n\n        <app-no-data\n          *ngIf=\"roles?.length === 0\"\n          [noDataImage]=\"ASSETS.search_data\"\n          [noDataText]=\"\n            searchKey?.length > 0 ? 'No match found.' : 'No Roles Found'\n          \"\n        ></app-no-data>\n      </ng-container>\n    </ng-container>\n\n    <div class=\"roles-list-footer\" *ngIf=\"!showConfirmation\">\n      <vui-floating-bar (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\n        <!-- <div class=\"counter\" *ngIf=\"selectedRoles?.length\"\n                placement=\"left\">{{selectedRoles?.length}}</div> -->\n        <button\n          *ngIf=\"selectedRoles?.length\"\n          class=\"counter role-list-counter\"\n          appPopover\n          (click)=\"role.popover()\"\n          placement=\"left\"\n        >\n          {{ selectedRoles?.length }}\n        </button>\n        <div\n          class=\"name\"\n          *ngIf=\"selectedRoles?.length > 1\"\n          id=\"permissionselected\"\n        >\n          <span *ngIf=\"selectedRoles?.length === 1\">{{\n            featureflagrole ? \"Permission selected\" : \"Role selected\"\n          }}</span>\n          <span *ngIf=\"selectedRoles?.length > 1\">{{\n            featureflagrole ? \"Permissions selected\" : \"Roles selected\"\n          }}</span>\n        </div>\n      </vui-floating-bar>\n\n      <app-popover #role [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"let data of selectedRoles\">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <i\n                    *ngIf=\"!systemRolesIds.includes(data?._id)\"\n                    class=\"icons\"\n                    (click)=\"selectItem({ target: { checked: false } }, data)\"\n                    >&#xe90d;</i\n                  >\n                  {{\n                    featureflagrole && data?.permissionGroupName\n                      ? data?.permissionGroupName\n                      : data?.roleName\n                  }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </div>\n  </div>\n\n  <div class=\"roles-list-confirmation\" *ngIf=\"showConfirmation\">\n    <div class=\"confirmation-top\">\n      <div class=\"icon-block\"><i class=\"icons\">&#xe930;</i></div>\n      <div class=\"text\" id=\"confirmationmessage\">\n        {{\n          featureflagrole\n            ? \"This action will update the Permission settings and impact the owners selected for the Program.\"\n            : \"This action will update the Role settings and impact the owners selected for the Program.\"\n        }}\n      </div>\n    </div>\n    <div class=\"confirmation-bottom\">\n      <div class=\"message\">Are you sure you would like to proceed?</div>\n      <div class=\"button-group\">\n        <button class=\"no-btn\" (click)=\"confirmAction('NO')\">NO</button>\n        <button class=\"yes-btn\" (click)=\"confirmAction('YES')\">YES</button>\n      </div>\n    </div>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PaginationComponent } from './pagination/pagination.component';\nimport { FormsModule } from '@angular/forms';\n\n\n\n@NgModule({\n  declarations: [\n    PaginationComponent\n  ],\n  imports: [\n    CommonModule,\n    FormsModule\n  ],\n  exports: [\n    PaginationComponent\n  ]\n})\nexport class PaginationModule { }\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { retry } from 'rxjs/operators';\nimport { Configurations } from '../../../configurations';\nimport { AuthService } from '../../../workflow-services/auth.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AssessmentService {\n\n  env !: any;\n  constructor(private http: HttpClient, private authService: AuthService, @Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.envConfig;\n\n    }\n  }\n\n  getAssessmentQuestions(id:string){\n    const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n    return this.http.get(this.env.assessmentEnpoint+'assessment/fetchQuestionsByAssessmentId&id='+id,{headers}).pipe(retry(2));\n  }\n  getAssessmentCategory(payload: any) {\n    const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n    return this.http.post(this.env.assessmentEnpoint + 'category/list&isCreateResponsibility=true&bypass-businessCycle=true', payload,  {headers}).pipe(retry(2));\n  }\n\n  getAssessmentList(payload: any, id: string) {\n    const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n    return this.http.post<any>(this.env.assessmentEnpoint + 'assessment/selectAssessment&isCreateResponsibility=true&catid='+id, payload,  {headers}).pipe(retry(2));\n  }\n\n  getAssessmentDetailsByID(id: string) {\n    const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n    return this.http.post<any>(this.env.assessmentEnpoint + 'assessment/getAssessmentById&id='+id, {}, {headers}).pipe(retry(2));\n  }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'assessment-loader',\n  templateUrl: './assessment-loader.component.html',\n  styleUrls: ['./assessment-loader.component.less']\n})\nexport class AssessmentLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"assessment-list-item\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n    <div class=\"table-row\">\n        <div class=\"table-column serial\">\n            <div class=\"sr-no\"></div>\n        </div>\n        <div class=\"table-column name\">\n            <div class=\"loader\"></div>\n        </div>\n        <div class=\"table-column action\">\n            <div class=\"loader\"></div>\n        </div>\n    </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'assessment-sub-loader',\n  templateUrl: './assessment-sub-loader.component.html',\n  styleUrls: ['./assessment-sub-loader.component.less']\n})\nexport class AssessmentSubLoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"assessment-list-item\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n    <div class=\"sub-list\">\n        <div class=\"table-row\">\n            <div class=\"table-column serial\">\n                <div class=\"sr-no\"></div>\n            </div>\n            <div class=\"table-column sub-name\">\n                <div class=\"loader\"></div>\n            </div>\n            <div class=\"table-column question\">\n                <div class=\"loader\"></div>\n            </div>\n        </div>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\n\n@Component({\n  selector: 'pagination',\n  templateUrl: './workflow-pagination.component.html',\n  styleUrls: ['./workflow-pagination.component.less']\n})\nexport class Pagination implements OnInit {\n  alphabetsArray!: any;\n  @Input() activeAlphabet = '';\n  @Input() pageCount!: number;\n  @Input() start !:number;\n  @Input() end !:number;\n  @Input() total !:number;\n  @Input() noFilter!: boolean;\n  public pageArray: Array<number> = [];\n  @Input() currentPage = 1;\n  public enterPageNumber!: any;\n  public isInvalidInput = false;\n\n  @Output() selectedPage: EventEmitter<any> = new EventEmitter();\n  @Output() selectedAlphabet: EventEmitter<any> = new EventEmitter();\n\n  pageList!: any;\n  constructor() {\n    this.alphabetsArray = 'abcdefghijklmnopqrstuvwxyz'.split('');\n  }\n\n  ngOnInit(): void {}\n\n  alphabetChange(alphabet: string) {\n    this.activeAlphabet = alphabet;\n    this.selectedAlphabet.emit(alphabet);\n    this.goToPageArrayGenerate(1, false)\n  }\n\n  ngOnChanges(event: SimpleChanges) {\n    this.pageArray = [];\n    if (this.pageCount > 0) {\n      if (this.pageCount < 5) {\n        for (let i = 1; i <= this.pageCount; i++) {\n          this.pageArray.push(i);\n        }\n        return;\n      }\n      this.goToPageArrayGenerate(this.currentPage,false);\n    }\n  }\n\n\n  increaseOrDecrease(value: number) {\n    this.currentPage += value;\n    if (this.currentPage > 3 && this.currentPage <= this.pageCount && this.pageArray[this.pageArray.length - 1] < this.pageCount) {\n      if (value > 0) {\n        this.pageArray.shift();\n        this.pageArray.push(this.pageArray[this.pageArray.length - 1] + 1);\n      }\n    }\n\n    if (this.currentPage > 2 && value < 0 && this.pageArray[0] > 1 && this.currentPage < this.pageCount - 2) {\n      this.pageArray.pop();\n      this.pageArray.unshift(this.pageArray[0] - 1);\n    }\n    this.selectedPage.emit(this.currentPage);\n  }\n  onEnterPress(event: any) {\n    if (event.key.toLowerCase() === 'enter') {\n      if (!this.enterPageNumber || this.enterPageNumber > this.pageCount || this.enterPageNumber < 1) {\n        this.isInvalidInput = true;\n        return;\n      } else {\n        this.isInvalidInput = false;\n        this.goToPageArrayGenerate(this.enterPageNumber,true);\n      }\n    }\n  }\n\n\n  goToPageArrayGenerate(page: any,shouldEmit:boolean) {\n    this.isInvalidInput = false;\n    this.currentPage = page;\n    this.pageArray = [];\n    if (this.currentPage > 3 && this.currentPage < this.pageCount - 2) {\n      for (let i = this.currentPage - 2; i < this.currentPage + 3; i++) {\n        this.pageArray.push(i);\n      }\n    } else if (this.currentPage <= 3) {\n      if (this.pageCount > 4) {\n        this.pageArray = [1, 2, 3, 4, 5];\n      } else {\n        for (let i = 1; i <= this.pageCount; i++) {\n          this.pageArray.push(i);\n        }\n      }\n    } else if (this.currentPage > this.pageCount - 3) {\n      for (let i = this.pageCount - 4; i < this.pageCount + 1; i++) {\n        this.pageArray.push(i);\n      }\n    } else {\n      for (let i = this.currentPage - 2; i < this.currentPage + 2; i++) {\n        this.pageArray.push(i);\n      }\n    }\n\n    if(shouldEmit){\n      this.selectedPage.emit(this.currentPage);\n    }\n    \n  }\n\n\n}\n","<!-- <p>workflow-pagination works!</p> -->\n<div class=\"pagination-sec\" [class.right-align]=\"noFilter\">\n    <div class=\"left\" *ngIf=\"!noFilter\">\n        <div class=\"pagination-box\">\n            <ul>\n                <li><button (click)=\"alphabetChange('')\" [class.active]=\"!activeAlphabet\">All</button></li>\n                <li *ngFor=\"let data of alphabetsArray\" (click)=\"alphabetChange(data)\">\n                    <button [class.active]=\"activeAlphabet === data\" >{{data}}</button>\n                </li>\n            </ul>\n        </div>\n    </div>\n\n    <div *ngIf=\"pageCount > 1\" class=\"right\">\n        <div class=\"pagination-box\">\n            <ul>\n                <li>\n                    <button [disabled]=\"currentPage === 1\" [class.disabled]=\"currentPage === 1\" (click)=\"increaseOrDecrease(-1)\">\n                        <\n                    </button>\n                </li>\n\n                <li *ngFor=\"let page of pageArray; let i = index\">\n                    <button [disabled]=\"page === currentPage\" (click)=\"goToPageArrayGenerate(page,true)\" [class.active]=\"page === currentPage\">\n                        {{page}}\n                    </button>\n                </li>\n\n                <li>\n                    <button (click)=\"increaseOrDecrease(1)\" [disabled]=\"currentPage === pageCount\" [class.disabled]=\"currentPage === pageCount\">\n                        >\n                    </button>\n                </li>\n            </ul>\n        </div>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { AuthService } from '../../../workflow-services/auth.service';\nimport { AssessmentService } from './assessment.service';\nimport { ASSETS } from '../../../constants/assets.constants';\n\n@Component({\n  selector: 'assessment-picker',\n  templateUrl: './assessment-picker.component.html',\n  styleUrls: ['./assessment-picker.component.less'],\n})\nexport class AssessmentPickerComponent implements OnInit {\n  ASSETS = ASSETS;\n  animation = false;\n  selectedData: any;\n  subList = false;\n  @Input() isEdit = false;\n  openedCategory: Array<number> = [];\n  assessmentPayload = {\n    search_title: '',\n    page_no: '1',\n    state: 'ACTIVE',\n    search_text: '',\n    alphabet_filter: '',\n  };\n\n  dataPerPage = 0;\n\n  assessmentCategory: any = {\n    data: [],\n    totalPage: 0,\n    totalRecords: 0,\n    start_value: 0,\n    end_value: 0,\n    currentPage: 0,\n  };\n  isLoader = false;\n\n  @Input('selectedAssessment') set setSelected(value: any) {\n    if (value && value?.length) {\n      this.selectedAssessmentArr = [...value];\n      //this.setCategoryAndAssessment();\n      this.selectedAssessmentArr.forEach((ele: any, index: any) => {\n        this.openedCategory.push(ele?.category_id);\n        //   this.showSubList(index,ele?.category_id);\n      });\n    }\n  }\n\n  isDeleted = false;\n\n  searchAssessments = '';\n  previewQuestionData!: any;\n  isPreview = false;\n  @Input() selectedAssessmentData: any = [];\n\n  @Output() onAssessmentSelect = new EventEmitter();\n\n  @Output() cancelAssessment = new EventEmitter();\n\n  selectedAssessmentArr: any = [];\n\n  constructor(\n    private assessmentService: AssessmentService,\n    private auth: AuthService\n  ) {\n    this.dataPerPage = 30;\n  }\n\n  ngOnInit(): void {\n    this.animation = true;\n    this.getAssessmentCategoryList();\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n  }\n\n  onAssessmentSelected(event: any) {\n    this.selectedData = event;\n  }\n\n  preview(evt: any) {\n    this.assessmentService.getAssessmentQuestions(evt?.id).subscribe({\n      next: (res: any) => {\n        this.auth.previewPanel.next(true);\n        this.isPreview = true;\n        this.previewQuestionData = res;\n      },\n    });\n  }\n\n  previewBack() {\n    this.isPreview = false;\n    this.previewQuestionData = {};\n    this.auth.previewPanel.next(false);\n  }\n\n  /**\n   *\n   * @param index : Accept index of elementPosition\n   *\n   */\n  showSubList(index: number, id: any) {\n    if (this.openedCategory.includes(id)) {\n      this.openedCategory = this.openedCategory.filter((ele) => ele !== id);\n    } else {\n      this.openedCategory.push(id);\n      this.getAssessmentList(id);\n    }\n    return this.openedCategory;\n  }\n\n  expandCategory(categoryId: any) {\n    const index = this.assessmentCategory?.data?.findIndex(\n      (ele: any) => ele.id === categoryId\n    );\n    if (\n      this.openedCategory.includes(categoryId) &&\n      this.assessmentCategory.data[index].assessmentData\n    ) {\n      this.openedCategory = this.openedCategory.filter(\n        (ele) => ele !== categoryId\n      );\n    } else {\n      this.openedCategory.push(categoryId);\n      this.getAssessmentList(categoryId);\n    }\n  }\n  // TODO: Pagination\n  /**\n   *\n   * @param event : page number that has been selected\n   */\n  onPageSelection(event: number) {\n    this.openedCategory = [];\n    this.assessmentPayload.page_no = event.toString();\n    this.getAssessmentCategoryList();\n  }\n\n  // TODO: Search\n  /**\n   *\n   * @param search : search text\n   */\n  onAssessmentSearch(search: string) {\n    this.openedCategory = [];\n    this.assessmentPayload.page_no = '1';\n    this.assessmentPayload.search_title = search;\n    this.assessmentPayload.search_text = search;\n    this.getAssessmentCategoryList();\n  }\n\n  // TODO: Filter by alphabet\n  /**\n   *\n   * @param event : Assessment category filter of Alphabet\n   */\n  onAlphabetSelected(event: string) {\n    this.openedCategory = [];\n    this.assessmentPayload.page_no = '1';\n    this.assessmentPayload.alphabet_filter = event;\n    this.assessmentPayload.search_text = '';\n    this.getAssessmentCategoryList();\n  }\n\n  // TODO: Call API method\n  getAssessmentCategoryList() {\n    this.isLoader = true;\n    this.assessmentService\n      .getAssessmentCategory(this.assessmentPayload)\n      .subscribe((res: any) => {\n        this.assessmentCategory = res;\n\n        if (this.selectedAssessmentArr?.length) {\n          // this.selectedAssessmentArr =  [... new Set(this.selectedAssessmentArr)]\n          this.selectedAssessmentArr.forEach((ele: any) => {\n            const index = res.data.findIndex(\n              (assessment: any) => assessment.id === ele.category_id\n            );\n            this.expandCategory(ele.category_id);\n          });\n          // this.selectedAssessmentArr.forEach((ele:any,index:any) => {\n          //   this.openedCategory.push(ele?.category_id);\n          //   this.showSubList(index,ele?.category_id);\n          // })\n        }\n\n        this.isLoader = false;\n      });\n  }\n\n  // TODO: Call Sub data API method\n\n  /**\n   *\n   * @param id : Assessment category id\n   */\n  getAssessmentList(id: string) {\n    const payload = {\n      search_title: '',\n    };\n    this.assessmentService\n      .getAssessmentList(payload, id)\n      .subscribe((res: Array<any>) => {\n        const index = this.assessmentCategory?.data?.findIndex(\n          (ele: any) => ele.id === id\n        );\n        if (index > -1) {\n          this.assessmentCategory.data[index].assessmentData = [\n            ...new Set(res),\n          ];\n        }\n\n        if (this.selectedAssessmentArr?.length) {\n          this.setCategoryAndAssessment();\n          const index = this.selectedAssessmentArr.findIndex(\n            (ele: any) => ele.category_id === id\n          );\n          // if(index !== -1) {\n          //   this.selectedAssessmentArr[index].assessmentIds  = this.selectedAssessmentArr[index].assessmentIds.map((ele: any) => {\n          //     ele = res.find((data: any) => data.id === ele);\n          //     return ele;\n          //   });\n          // }\n        }\n      });\n  }\n\n  selectedAssessmentCategoriesIds: any = [];\n  selectedAssessmentIds: any = [];\n  selectedAssessment: any = [];\n\n  /**\n   * #### Description\n   * Selects item or deselect a itme\n   * @param evt\n   * @param payload\n   */\n  selectAssessment(evt: any, payload: any, category: any) {\n    if (evt?.target?.checked) {\n      const index = this.selectedAssessmentArr.findIndex(\n        (ele: any) => ele.category_id === category.id\n      );\n      if (index > -1) {\n        const currentCategoryAssessment =\n          this.selectedAssessmentArr[index].assessmentIds;\n        currentCategoryAssessment.push(payload);\n        this.selectedAssessmentArr[index].assessmentIds = this.uniqueByProp(\n          currentCategoryAssessment,\n          'id'\n        );\n        this.selectedAssessmentArr = cloneDeep(this.selectedAssessmentArr);\n        this.setCategoryAndAssessment();\n      } else {\n        this.selectedAssessmentArr.push({\n          category_id: category.id,\n          assessmentIds: [payload],\n        });\n\n        this.selectedAssessmentArr = cloneDeep(this.selectedAssessmentArr);\n        this.setCategoryAndAssessment();\n      }\n    } else {\n      const index = this.selectedAssessmentArr.findIndex(\n        (ele: any) => ele.category_id === category.id\n      );\n      if (index > -1) {\n        this.selectedAssessmentArr[index].assessmentIds =\n          this.selectedAssessmentArr[index].assessmentIds.filter(\n            (assessment: any) => assessment.id !== payload.id\n          );\n        this.selectedAssessmentArr = cloneDeep(this.selectedAssessmentArr);\n        this.setCategoryAndAssessment();\n        if (this.selectedAssessmentArr[index].assessmentIds?.length === 0) {\n          this.selectedAssessmentArr.splice(index, 1);\n          this.selectedAssessmentArr = cloneDeep(this.selectedAssessmentArr);\n          this.setCategoryAndAssessment();\n        }\n      }\n    }\n  }\n\n  setCategoryAndAssessment() {\n    this.selectedAssessmentCategoriesIds = this.selectedAssessmentArr\n      .filter((cat: any) => cat?.assessmentIds?.length > 0)\n      ?.map((ele: any) => ele?.category_id)\n      .flat();\n    this.selectedAssessmentIds = this.selectedAssessmentArr\n      .map((cat: any) => cat?.assessmentIds.map((ele: any) => ele?.id))\n      .flat();\n    this.selectedAssessment = this.selectedAssessmentArr\n      .map((cat: any) => cat?.assessmentIds.map((ele: any) => ele))\n      .flat();\n  }\n\n  // TODO: Display selected data in bottom floating bar with next enabled button having\n\n  // TODO: Send data in payload of create Responsibility form\n\n  save() {\n    this.onAssessmentSelect.emit(this.selectedAssessmentArr);\n  }\n\n  close() {\n    this.cancelAssessment.emit();\n  }\n\n  /**\n   * #### Description\n   *\n   * Returns the unique array of object based on unique key\n   * @param array\n   * @param key\n   * @returns\n   */\n  uniqueByProp(array: any, key: string) {\n    return Array.from(\n      array\n        .reduce(\n          (acc: any, item: any) => (\n            item && item[key] && acc.set(item[key], item), acc\n          ),\n          new Map()\n        )\n        .values()\n    );\n  }\n}\n","<app-preview\n  *ngIf=\"isPreview\"\n  [questionData]=\"previewQuestionData\"\n  (previewBack)=\"previewBack()\"\n></app-preview>\n<div class=\"assessment-list\" [class.animate]=\"animation\">\n  <ng-container>\n    <div class=\"assessment-list-head\">\n      <button class=\"back-btn\">\n        <!-- <i class=\"icons\">&#xe91d;</i> -->\n      </button>\n      <h3 class=\"assessment-list-title\">Select Assessment(s)</h3>\n    </div>\n    <div class=\"assessment-list-body\">\n      <div class=\"search-block\">\n        <i class=\"icons\">&#xe90b;</i>\n        <input\n          type=\"text\"\n          [(ngModel)]=\"searchAssessments\"\n          (change)=\"onAssessmentSearch($event.target.value)\"\n          placeholder=\"Search Assessment Category\"\n        />\n      </div>\n      <pagination\n        [pageCount]=\"assessmentCategory?.totalPage\"\n        [total]=\"assessmentCategory?.totalRecords\"\n        [start]=\"assessmentCategory?.start_value\"\n        [end]=\"assessmentCategory?.end_value\"\n        [activeAlphabet]=\"''\"\n        (selectedAlphabet)=\"onAlphabetSelected($event)\"\n        (selectedPage)=\"onPageSelection($event)\"\n      ></pagination>\n      <div\n        *ngIf=\"assessmentCategory.data.length === 0 && !isLoader\"\n        class=\"assessment-list-part\"\n      >\n        <app-no-data\n          [noDataImage]=\"ASSETS.search_data\"\n          [noDataText]=\"'No Assessments Found.'\"\n        ></app-no-data>\n      </div>\n      <div\n        *ngIf=\"assessmentCategory.data.length || isLoader\"\n        class=\"assessment-list-part\"\n      >\n        <div\n          *ngIf=\"\n            isEdit && selectedAssessment?.assessmentDetails?.assessment_name\n          \"\n          class=\"assessment-list-selected\"\n        >\n          <div class=\"assessment-list-heading\">\n            Assessment already selected for this responsibility\n          </div>\n          <div class=\"assessment-list-item\">\n            <div class=\"table-row\">\n              <div class=\"table-column serial disabled\">\n                <app-cs-radio\n                  [disabled]=\"true\"\n                  class=\"disabled\"\n                  [checked]=\"true\"\n                  [readonly]=\"true\"\n                ></app-cs-radio>\n              </div>\n              <div class=\"table-column sub-name\">\n                <div class=\"name-inner\">\n                  <div\n                    class=\"value\"\n                    [appTooltip]=\"\n                      selectedAssessment?.assessmentDetails?.assessment_name\n                    \"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                  >\n                    {{ selectedAssessment?.assessmentDetails?.assessment_name }}\n                  </div>\n                  <div class=\"within-part\">\n                    <span class=\"within-box\">Within</span>\n                    <span\n                      class=\"value\"\n                      [appTooltip]=\"\n                        selectedAssessment?.category_details?.category_name +\n                        (selectedAssessment?.category_details?.parent_tree\n                          ? ' > ' +\n                            selectedAssessment?.category_details?.parent_tree\n                          : '')\n                      \"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"false\"\n                      >{{\n                        selectedAssessment?.category_details?.category_name +\n                          (selectedAssessment?.category_details?.parent_tree\n                            ? \" > \" +\n                              selectedAssessment?.category_details?.parent_tree\n                            : \"\")\n                      }}</span\n                    >\n                  </div>\n                </div>\n              </div>\n              <div class=\"table-column question\">\n                <div class=\"label\">\n                  {{ selectedAssessment?.assessmentDetails?.questions }}\n                  {{\n                    selectedAssessment?.assessmentDetails?.questions > 1\n                      ? \"Questions\"\n                      : \"Question\"\n                  }}\n                </div>\n                <div class=\"buttons\">\n                  <button\n                    class=\"action-btn\"\n                    (click)=\"preview(selectedAssessment?.assessmentDetails)\"\n                  >\n                    <i class=\"icons\">&#xeae5;</i> Preview\n                  </button>\n                  <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe90c;</i> Edit</button> -->\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"assessment-list-heading\">\n          Select an Assessment for this responsibility\n        </div>\n\n        <!--\n                     Assessment category list\n                     active class is used for highlighting opened element\n                -->\n        <ng-container *ngIf=\"!isLoader\">\n          <div\n            *ngFor=\"let data of assessmentCategory.data; let i = index\"\n            class=\"assessment-list-item\"\n            [class.active]=\"\n              openedCategory.includes(data?.id) ||\n              data.id === selectedAssessment?.category_id\n            \"\n          >\n            <div\n              class=\"table-row main-list\"\n              (click)=\"expandCategory(data?.id)\"\n              [class.disabled]=\"data?.assessmentcount < 1\"\n            >\n              <div class=\"table-column serial\">\n                <div\n                  [id]=\"'sr-no' + i\"\n                  class=\"sr-no\"\n                  [appTooltip]=\"i + 1\"\n                  placement=\"bottom\"\n                  delay=\"0\"\n                  type=\"black\"\n                  [tooltipMandatory]=\"true\"\n                >\n                  {{ dataPerPage * (assessmentPayload.page_no - 1) + (i + 1) }}\n                </div>\n              </div>\n              <div class=\"table-column name\">\n                <div class=\"name-inner\">\n                  <div\n                    class=\"value\"\n                    [appTooltip]=\"data.category_name\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                  >\n                    {{ data?.category_name }}\n                  </div>\n                  <div class=\"within-part\" *ngIf=\"data?.parent_tree\">\n                    <span class=\"within-box\">Within</span>\n                    <span\n                      class=\"value\"\n                      [appTooltip]=\"data.parent_tree\"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"false\"\n                      >{{ data?.parent_tree }}</span\n                    >\n                  </div>\n                </div>\n              </div>\n              <div class=\"table-column action\">\n                <button\n                  [id]=\"'arrow' + i\"\n                  class=\"arrow\"\n                  [class.disabled]=\"data?.assessmentcount < 1\"\n                  [disabled]=\"data?.assessmentcount < 1\"\n                >\n                  <i *ngIf=\"!openedCategory.includes(data?.id)\" class=\"icons\"\n                    >&#xe970;</i\n                  >\n                  <i *ngIf=\"openedCategory.includes(data?.id)\" class=\"icons\"\n                    >&#xe9e8;</i\n                  >\n                </button>\n              </div>\n            </div>\n\n            <!-- Assessment list start from here -->\n            <div *ngIf=\"openedCategory.includes(data?.id)\" class=\"sub-list\">\n              <ng-container *ngIf=\"data.assessmentData?.length > 0\">\n                <div\n                  class=\"table-row\"\n                  *ngFor=\"let assessment of data.assessmentData; let j = index\"\n                  [class.active]=\"selectedAssessmentIds.includes(assessment.id)\"\n                >\n                  <div class=\"table-column serial\">\n                    <div\n                      [id]=\"'sub-sr-no' + i + j\"\n                      class=\"sr-no active\"\n                      appTooltip=\"{{\n                        dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n                      }}.{{ j + 1 }}\"\n                      placement=\"bottom\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"true\"\n                    >\n                      {{\n                        dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n                      }}.{{ j + 1 }}\n                      <!-- <app-cs-radio name=\"assessment\" [value]=\"assessment.id\" [checked]=\"assessment?.id === selectedAssessment?.assessment_id && data?.id === selectedAssessment?.category_id\"\n                                            (checkedEvent)=\"setAssessment(data, assessment)\"></app-cs-radio> -->\n                      <!-- (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds.includes(group?.group_id)\" -->\n\n                      <vui-checkbox\n                        [checked]=\"\n                          selectedAssessmentIds.includes(assessment.id)\n                        \"\n                        (change)=\"selectAssessment($event, assessment, data)\"\n                      ></vui-checkbox>\n                    </div>\n                  </div>\n                  <div class=\"table-column sub-name\">\n                    <div\n                      class=\"value\"\n                      [appTooltip]=\"\n                        'Mission and message, communications to external audiences'\n                      \"\n                      placement=\"bottom-left\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"false\"\n                    >\n                      {{ assessment?.assessment_name }}\n                    </div>\n                  </div>\n                  <div class=\"table-column question\">\n                    <div class=\"label\">\n                      {{ assessment?.questions }}\n                      {{ assessment?.questions > 1 ? \"Questions\" : \"Question\" }}\n                    </div>\n                    <div class=\"buttons\">\n                      <button class=\"action-btn\" (click)=\"preview(assessment)\">\n                        <i class=\"icons\">&#xeae5;</i> Preview\n                      </button>\n                      <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe9ba;</i> Edit</button> -->\n                    </div>\n                  </div>\n                </div>\n              </ng-container>\n              <!-- Loader loading isLoader  -->\n              <assessment-sub-loader\n                *ngIf=\"!data.assessmentData?.length\"\n              ></assessment-sub-loader>\n              <!-- <app-line-loader *ngIf=\"!data.assessmentData?.length\" [loaderHeight]=\"'5'\"></app-line-loader> -->\n            </div>\n          </div>\n        </ng-container>\n        <!-- Loader loading isLoader  -->\n        <assessment-loader *ngIf=\"isLoader\"></assessment-loader>\n      </div>\n      <!-- No data image  -->\n      <app-no-data\n        *ngIf=\"!assessmentCategory.data.length && !isLoader\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No Data to Display'\"\n      ></app-no-data>\n    </div>\n    <!--\n            bottom floating bar which includes cancel, next button\n            closing tab\n         -->\n\n    <vui-floating-bar (closeEvent)=\"save()\" (closeList)=\"close()\">\n      <div\n        class=\"counter\"\n        *ngIf=\"selectedAssessment?.length\"\n        appPopover\n        (click)=\"assessmentCount.popover()\"\n        placement=\"left\"\n      >\n        {{ selectedAssessment?.length }}\n      </div>\n      <div class=\"name\">\n        <span *ngIf=\"selectedAssessment?.length === 1\"\n          >Assessment selected</span\n        >\n        <span *ngIf=\"selectedAssessment?.length > 1\">Assessments selected</span>\n      </div>\n      <app-popover #assessmentCount [dontCloseonClick]=\"true\">\n        <div class=\"wf-action-list\">\n          <ul class=\"action-item\">\n            <li *ngFor=\"let element of selectedAssessment; let i = index\">\n              <div class=\"avatar-card\">\n                <span class=\"value\">\n                  <!-- <i class=\"icons\"\n                            (click)=\"selectAssessment({target:{checked:false}},element)\">&#xe90d;</i> -->\n                  {{ element?.assessment_name }}\n                </span>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </app-popover>\n    </vui-floating-bar>\n  </ng-container>\n</div>\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { retry } from 'rxjs';\nimport { Configurations } from '../../../configurations';\nimport { AuthService } from '../../../workflow-services/auth.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FrameworkService {\n\n  env !: any;\n  constructor(private http: HttpClient, private authService: AuthService, @Optional() config?: Configurations) {\n    if (config) {\n      this.env = config.envConfig;\n    }\n  }\n\n\n  fetchFrameworkCount(){\n    const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n    return this.http.get<any>(this.env.programEndpoint + '/frameworkcount',{headers}).pipe(retry(2));\n  }\n  fetchFrameworkInCategory(payload:any){\n    const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n    let queryParams = `?type=${payload?.type}&limit=30&page=${payload?.page}`\n    if(payload.search){queryParams += `&name=${payload.search}`}\n    return this.http.get<any>(this.env.programEndpoint + '/framework'+queryParams,{headers}).pipe(retry(2));\n  }\n  \n  fetchCategoryForFramework(id:string){\n   // https://devapi.v-comply.com/program/framework/627a2d09c97c58536c9872f4\n    const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());\n    return this.http.get<any>(this.env.programEndpoint + '/framework/'+id,{headers}).pipe(retry(2));\n  }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'framework-loader',\n  templateUrl: './loader.component.html',\n  styleUrls: ['./loader.component.less']\n})\nexport class LoaderFrameworkComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"assessment-list-item\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\n    <div class=\"table-row\">\n        <div class=\"table-column serial\">\n            <div class=\"sr-no\"></div>\n        </div>\n        <div class=\"table-column name\">\n            <div class=\"loader\"></div>\n        </div>\n        <div class=\"table-column action\">\n            <div class=\"loader\"></div>\n        </div>\n    </div>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'pager',\n})\nexport class PagerPipe implements PipeTransform {\n  transform(value: any, ...args: any[]): any {\n    if (value === 1) {\n      return args[0] + 1;\n    } else {\n      return (value - 1) * 30 + args[0] + 1;\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'categoryAllSelect',\n})\nexport class CategoryAllSelectPipe implements PipeTransform {\n  transform(value: any, ...args: any[]): any {\n    const allElements = value.map((el: any) => el?._id);\n    const inScope = args[0].map((el: any) => el?._id);\n    for (let i = 0; i < allElements.length; i++) {\n      if (!inScope.includes(allElements[i])) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'subCatIndeter',\n  pure: false,\n})\nexport class SubCatIndeterPipe implements PipeTransform {\n  transform(value: any, ...args: any[]): any {\n    const allElements = value.map((el: any) => el?._id);\n    const inScope = args[0].map((el: any) => el?._id);\n    const filtredIds = inScope.filter((ele: any) => allElements.includes(ele));\n    if (\n      filtredIds?.length &&\n      allElements?.sort()?.toString() !== filtredIds?.sort()?.toString()\n    ) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'searchPipe'\n})\nexport class SearchNewPipe implements PipeTransform {\n\n \n  transform(value: any, args?: any): any   {\n    if(!value)return null;\n    if(!args)return value;\n\n    args = args.toLowerCase();\n\n    return value.filter((item:any)=>{\n        return JSON.stringify(item).toLowerCase().includes(args);\n    });\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FrameworkService } from './framework.service';\nimport { ASSETS } from '../../../constants/assets.constants';\n\n@Component({\n  selector: 'app-define-framework-listing',\n  templateUrl: './define-framework-listing.component.html',\n  styleUrls: ['./define-framework-listing.component.less'],\n})\nexport class DefineFrameworkListingComponent implements OnInit {\n  @Output() cancel = new EventEmitter();\n  @Output() next = new EventEmitter();\n  @Input() mode = 'CREATE';\n  @Input('selectedFramework') set setFramework(value: any) {\n    if (value && value?._id) {\n      this.selectedFramework = value;\n      this.activeFrameworkType =\n        ['OTHERS', 'REGULATIONS', 'STANDARDS', 'INTERNAL_CONTROLS'][\n        value?.type\n        ] ?? 1;\n      this.currentView = 'FRAMEWORK';\n      this.inScope = value?.in_scope;\n      this.inScopeIds = this.inScope.map((ele: any) => ele?._id);\n      this.loadFrameworkData();\n    }\n  }\n  ASSETS = ASSETS;\n  animation = true;\n  frameworkListSubscription!: Subscription;\n  constructor(private frameworkService: FrameworkService) { }\n\n  ngOnInit(): void {\n    this.animation = true;\n    setTimeout(() => {\n      this.animation = false;\n    }, 300);\n    this.fetchFrameworkCount();\n    this.fetchFrameworkCategoryList();\n  }\n\n  isMainLoader = true;\n  frameworkCount: any = null;\n  fetchFrameworkCount() {\n    this.frameworkService.fetchFrameworkCount().subscribe({\n      next: (res: any) => {\n        this.frameworkCount = res;\n      },\n      error: (err: any) => {\n        //handle error here\n      },\n    });\n  }\n  searchKey = '';\n  apiFrameworkPayload = {\n    page: 1,\n    search: '',\n    type: 1,\n  };\n  currentView: 'FRAMEWORK_CATEGORY' | 'FRAMEWORK' = 'FRAMEWORK_CATEGORY';\n  activeFrameworkType:\n    | 'REGULATIONS'\n    | 'STANDARDS'\n    | 'INTERNAL_CONTROLS'\n    | 'OTHERS'\n    | any = 'REGULATIONS';\n\n  frameworkTypes = {\n    REGULATIONS: 1,\n    STANDARDS: 2,\n    INTERNAL_CONTROLS: 3,\n    OTHERS: 0,\n  };\n\n  frameworkData: any = [];\n  changeType(\n    type: 'REGULATIONS' | 'STANDARDS' | 'INTERNAL_CONTROLS' | 'OTHERS'\n  ) {\n    this.activeFrameworkType = type;\n    this.apiFrameworkPayload.page = 1;\n    this.apiFrameworkPayload.type = this.frameworkTypes[type];\n    this.frameworkListSubscription\n      ? this.frameworkListSubscription.unsubscribe()\n      : null;\n    this.fetchFrameworkCategoryList();\n  }\n\n  executeSearch() {\n    this.apiFrameworkPayload.page = 1;\n    this.apiFrameworkPayload.search = this.searchKey;\n    this.fetchFrameworkCategoryList();\n  }\n\n  pageChanged(evt: any) {\n    this.apiFrameworkPayload.page = evt;\n    this.fetchFrameworkCategoryList();\n  }\n\n  fetchFrameworkCategoryList() {\n    this.isMainLoader = true;\n    this.frameworkListSubscription = this.frameworkService\n      .fetchFrameworkInCategory(this.apiFrameworkPayload)\n      .subscribe({\n        next: (res: any) => {\n          this.frameworkData = res;\n          this.isMainLoader = false;\n        },\n        error: () => {\n          this.isMainLoader = false;\n        },\n      });\n  }\n  selectedFramework!: any;\n  selectFramework(evt: any, framework: any) {\n    if (evt?.target?.checked) {\n      this.selectedFramework = framework;\n    }\n  }\n\n  expandedFrameworkId: any = '';\n  expandCollapseFramework(framework: any) {\n    if (this.expandedFrameworkId === framework?._id) {\n      this.expandedFrameworkId = '';\n    } else {\n      this.expandedFrameworkId = framework?._id;\n    }\n  }\n\n  removeSelectedFramework() {\n    this.selectedFramework = null;\n    this.selectedFrameworkData = null;\n  }\n\n  //////////////////\n\n  searchKeyforFramework = '';\n  selectedFrameworkData: any = null;\n  allControls: any = [];\n  inScope: any = [];\n  outScope: any = [];\n  inScopeIds: any = [];\n  allControlsSelected = false;\n  issubLoading = true;\n  loadFrameworkData() {\n    this.issubLoading = true;\n    this.frameworkService\n      .fetchCategoryForFramework(this.selectedFramework?._id)\n      .subscribe({\n        next: (res: any) => {\n          this.selectedFrameworkData = res;\n          this.checkAllElements(this.mode === 'EDIT' ? false : true);\n          this.issubLoading = false;\n        },\n        error: () => {\n          this.issubLoading = false;\n        },\n      });\n  }\n\n  checkAllElements(populateInScope: any) {\n    let allElement: any = [];\n    this.selectedFrameworkData.data?.child_list_details?.forEach(\n      (element: any) => {\n        element?.controlsData.forEach((el: any) => {\n          allElement.push(el);\n        });\n      }\n    );\n    this.allControls = this.uniqueByProp(allElement, '_id');\n    if (populateInScope) {\n      this.inScope = this.uniqueByProp(allElement, '_id');\n    }\n\n    this.checkSelectAll();\n    this.setInscopeIds();\n  }\n\n  checkSelectAll() {\n    const allIds = this.allControls.map((ele: any) => ele?._id);\n    const inScopeIds = this.inScope.map((ele: any) => ele?._id);\n    this.allControlsSelected =\n      allIds.sort()?.toString() === inScopeIds.sort()?.toString();\n  }\n  selectAll(evt: any) {\n    if (evt?.target?.checked) {\n      this.checkAllElements(true);\n    } else {\n      this.inScope = [];\n      this.inScopeIds = [];\n    }\n    this.checkSelectAll();\n  }\n  setInscopeIds() {\n    this.inScopeIds = this.inScope.map((el: any) => el?._id);\n  }\n\n  selectItem(evt: any, payload: any) {\n    evt?.target?.checked === true\n      ? this.manipulateItem('ADD', payload)\n      : this.manipulateItem('DELETE', payload);\n  }\n  manipulateItem(action: 'ADD' | 'DELETE', payload: any) {\n    if (action === 'ADD') {\n      this.inScope = this.uniqueByProp([...this.inScope, ...[payload]], '_id');\n      this.inScopeIds = this.inScope.map((ele: any) => ele?._id);\n    } else if (action === 'DELETE') {\n      let index = this.inScope.findIndex(\n        (ele: any) => ele?._id === payload?._id\n      );\n      if (index > -1) {\n        this.inScope = this.inScope.filter(\n          (ele: any) => ele?._id !== payload?._id\n        );\n        this.inScopeIds = this.inScope.map((ele: any) => ele?._id);\n      }\n    }\n    this.checkSelectAll();\n  }\n\n  selectCategory(evt: any, payload: any) {\n    evt?.target?.checked === true\n      ? this.manipulateCategory('ADD', payload)\n      : this.manipulateCategory('DELETE', payload);\n  }\n  manipulateCategory(action: 'ADD' | 'DELETE', payload: any) {\n    if (action === 'ADD') {\n      const itemsTobeAdded = payload?.controlsData;\n      this.inScope = this.uniqueByProp(\n        [...this.inScope, ...itemsTobeAdded],\n        '_id'\n      );\n      this.inScopeIds = this.inScope.map((ele: any) => ele?._id);\n    } else if (action === 'DELETE') {\n      const itemsTobeRemoved = payload?.controlsData.map((el: any) => el._id);\n      this.inScope = this.inScope.filter(\n        (ele: any) => !itemsTobeRemoved.includes(ele._id)\n      );\n      this.inScopeIds = this.inScope.map((ele: any) => ele?._id);\n    }\n    this.checkSelectAll();\n  }\n\n  nextHandler() {\n    if (this.currentView === 'FRAMEWORK_CATEGORY') {\n      this.currentView = 'FRAMEWORK';\n      this.loadFrameworkData();\n    } else {\n      this.next.emit({\n        ...this.selectedFramework,\n        in_scope: this.inScope,\n        out_scope: this.allControls.filter(\n          (ele: any) => !this.inScopeIds.includes(ele?._id)\n        ),\n      });\n    }\n  }\n\n  cancelHandler() {\n    if (this.currentView === 'FRAMEWORK') {\n      this.currentView = 'FRAMEWORK_CATEGORY';\n    } else {\n      this.cancel.emit();\n    }\n  }\n  expandedSubCategoryIds: any = [];\n  subCategoryExpandCollapse(category: any) {\n    const index = this.expandedSubCategoryIds.indexOf(category?._id);\n    if (index < 0 && category?.controlsData?.length) {\n      this.expandedSubCategoryIds.push(category?._id);\n    } else {\n      this.expandedSubCategoryIds.splice(index, 1);\n    }\n  }\n  uniqueByProp(array: any, key: string) {\n    return Array.from(\n      array\n        .reduce(\n          (acc: any, item: any) => (\n            item && item[key] && acc.set(item[key], item), acc\n          ),\n          new Map()\n        )\n        .values()\n    );\n  }\n}\n","<div class=\"define-framework-listing\" [class.animate]=\"animation\">\n  <ng-container *ngIf=\"currentView === 'FRAMEWORK_CATEGORY'\">\n    <div class=\"define-framework-listing-head\">\n      <h3 class=\"define-framework-listing-title\">Select a Framework</h3>\n    </div>\n\n    <div *ngIf=\"true\" class=\"define-framework-listing-body\">\n      <div class=\"vx-d-flex vx-align-center vx-mb-2\">\n        <div\n          (click)=\"changeType('REGULATIONS')\"\n          class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"activeFrameworkType === 'REGULATIONS'\"\n        >\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <label\n                class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n                >REGULATIONS</label\n              >\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span\n              class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\"\n              >{{ frameworkCount?.regulations ?? \"--\" }}</span\n            >\n          </div>\n        </div>\n        <div\n          (click)=\"changeType('STANDARDS')\"\n          class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"activeFrameworkType === 'STANDARDS'\"\n        >\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <label\n                class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n                >STANDARDS</label\n              >\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span\n              class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\"\n              >{{ frameworkCount?.standards ?? \"--\" }}</span\n            >\n          </div>\n        </div>\n        <div\n          (click)=\"changeType('INTERNAL_CONTROLS')\"\n          class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"activeFrameworkType === 'INTERNAL_CONTROLS'\"\n        >\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <label\n                class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n                >INTERNAL CONTROLS</label\n              >\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span\n              class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\"\n              >{{ frameworkCount?.internalControls ?? \"--\" }}</span\n            >\n          </div>\n        </div>\n        <div\n          (click)=\"changeType('OTHERS')\"\n          class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"activeFrameworkType === 'OTHERS'\"\n        >\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <label\n                class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n                >OTHERS</label\n              >\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span\n              class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\"\n              >{{ frameworkCount?.others ?? \"--\" }}</span\n            >\n          </div>\n        </div>\n      </div>\n\n      <div class=\"search-block\">\n        <i class=\"icons\">&#xe90b;</i>\n        <input\n          type=\"text\"\n          placeholder=\"Search Frameworks\"\n          [(ngModel)]=\"searchKey\"\n          (keyup.enter)=\"executeSearch()\"\n        />\n      </div>\n      <div class=\"vx-mt-2\" *ngIf=\"isMainLoader\">\n        <framework-loader></framework-loader>\n      </div>\n\n      <ng-container *ngIf=\"!isMainLoader && frameworkData?.total_items > 0\">\n        <div class=\"vx-mt-2\">\n          <vui-pagination\n            (pageChanged)=\"pageChanged($event)\"\n            [from]=\"frameworkData?.items_from\"\n            [to]=\"frameworkData?.items_to\"\n            [total]=\"frameworkData?.total_items\"\n            [totalPage]=\"frameworkData?.total_pages\"\n            [currentPage]=\"apiFrameworkPayload?.page\"\n          ></vui-pagination>\n        </div>\n        <div\n          class=\"define-framework-listing-table vx-mt-1\"\n          [class.with-pagination]=\"true\"\n        >\n          <div class=\"table-header\">\n            <!-- when checkbox was checked then show \"active\" class in table-row -->\n            <div class=\"table-row\" [class.active]=\"false\">\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n              >\n                #\n                <!-- <app-cs-checkbox *ngIf=\"true\"></app-cs-checkbox>\n                                <app-cs-checkbox-indeterminate *ngIf=\"false\"></app-cs-checkbox-indeterminate> -->\n              </div>\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n              >\n                FRAMEWORKS\n              </div>\n              <div\n                class=\"table-column vx-fs-10 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n              ></div>\n            </div>\n          </div>\n          <div class=\"table-body\">\n            <div\n              class=\"table-item\"\n              [class.open]=\"hideCategoryList\"\n              *ngFor=\"let framework of frameworkData?.data; let i = index\"\n            >\n              <!-- when checkbox was checked then show \"active\" class in table-row -->\n              <div\n                class=\"table-row main\"\n                (click)=\"expandCollapseFramework(framework)\"\n                [class.active]=\"\n                  selectedFramework?.framework_id === framework?.framework_id\n                \"\n                [class.disabled]=\"!framework?.child_list_details?.length\"\n              >\n                <div\n                  class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n                >\n                  <div class=\"sr-no\">\n                    {{ apiFrameworkPayload?.page | pager : i }}\n                  </div>\n                  <app-cs-radio\n                    [checked]=\"\n                      selectedFramework?.framework_id ===\n                      framework?.framework_id\n                    \"\n                    (checkedEvent)=\"selectFramework($event, framework)\"\n                  ></app-cs-radio>\n                </div>\n                <div\n                  class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n                >\n                  <div\n                    class=\"category-name vx-fs-13 vx-label-txt\"\n                    [appTooltip]=\"framework?.framework_name\"\n                    placement=\"bottom-left\"\n                    delay=\"0\"\n                    type=\"black\"\n                    [tooltipMandatory]=\"false\"\n                  >\n                    {{ framework?.framework_name }}\n                  </div>\n                </div>\n                <div\n                  class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center action\"\n                >\n                  <button\n                    class=\"arrow-btn vx-fs-14 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\"\n                  >\n                    <i\n                      class=\"icons vx-d-flex\"\n                      (click)=\"expandCollapseFramework(framework)\"\n                    >\n                      <ng-container\n                        *ngIf=\"expandedFrameworkId !== framework?.framework_id\"\n                        >&#xe970;</ng-container\n                      >\n                      <ng-container\n                        *ngIf=\"expandedFrameworkId === framework?.framework_id\"\n                        >&#xe9e8;</ng-container\n                      >\n                    </i>\n                  </button>\n                </div>\n              </div>\n              <!-- sub table -->\n              <ng-container *ngIf=\"expandedFrameworkId === framework?._id\">\n                <div\n                  class=\"table-row child\"\n                  *ngFor=\"\n                    let subCat of framework?.child_list_details;\n                    let x = index\n                  \"\n                >\n                  <div\n                    class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\n                  >\n                    <div\n                      class=\"sr-no\"\n                      [appTooltip]=\"\"\n                      placement=\"bottom\"\n                      delay=\"0\"\n                      type=\"black\"\n                      [tooltipMandatory]=\"true\"\n                    >\n                      {{\n                        (apiFrameworkPayload?.page | pager : i) + \".\" + (x + 1)\n                      }}\n                    </div>\n                  </div>\n                  <div\n                    class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\"\n                  >\n                    <div class=\"vx-d-block vx-w-100\">\n                      <div\n                        class=\"category-name vx-fs-12 vx-paragraph-txt\"\n                        [appTooltip]=\"subCat?.name\"\n                        placement=\"bottom-left\"\n                        delay=\"0\"\n                        type=\"black\"\n                        [tooltipMandatory]=\"false\"\n                      >\n                        {{ subCat?.name }}\n                      </div>\n                      <div class=\"within\" *ngIf=\"false\">\n                        <div class=\"block\">WITHIN</div>\n                        <div\n                          class=\"data\"\n                          [appTooltip]=\"'Kolkata > America > South Africa'\"\n                          placement=\"bottom-left\"\n                          delay=\"0\"\n                          type=\"black\"\n                          [tooltipMandatory]=\"false\"\n                        >\n                          Kolkata > America > South Africa\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                  <div\n                    class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center action\"\n                  ></div>\n                </div>\n              </ng-container>\n            </div>\n          </div>\n        </div>\n      </ng-container>\n      <app-no-data\n        *ngIf=\"!isMainLoader && frameworkData?.total_items <= 0\"\n        [noDataImage]=\"ASSETS.search_data\"\n        [noDataText]=\"'No Frameworks Found'\"\n      ></app-no-data>\n    </div>\n  </ng-container>\n  <ng-container *ngIf=\"currentView === 'FRAMEWORK'\">\n    <div class=\"define-framework-listing-head\">\n      <h3 class=\"define-framework-listing-title\">\n        Framework: {{ selectedFramework?.framework_name }}\n      </h3>\n    </div>\n\n    <div\n      *ngIf=\"true\"\n      class=\"define-framework-listing-body after-framework-listing\"\n    >\n      <div class=\"vx-d-flex vx-align-center vx-mb-2\">\n        <div\n          class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"true\"\n        >\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <label\n                class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n                >TOTAL RESPONSIBILITIES</label\n              >\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span\n              class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\"\n              >{{ allControls?.length }}</span\n            >\n          </div>\n        </div>\n        <div\n          class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"false\"\n        >\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <label\n                class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n                >RESPONSIBILITIES IN SCOPE</label\n              >\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span\n              class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\"\n              >{{ inScope.length }}</span\n            >\n          </div>\n        </div>\n        <div\n          class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\"\n          [class.active]=\"false\"\n        >\n          <div class=\"left vx-d-block vx-w-100\">\n            <div class=\"label vx-d-flex vx-align-center\">\n              <label\n                class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\"\n                >RESPONSIBILITIES NOT IN SCOPE</label\n              >\n            </div>\n          </div>\n          <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\n            <span\n              class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\"\n              >{{ allControls?.length - inScope?.length }}</span\n            >\n          </div>\n        </div>\n      </div>\n\n      <div class=\"search-block\">\n        <i class=\"icons\">&#xe90b;</i>\n        <input\n          [(ngModel)]=\"searchKeyforFramework\"\n          type=\"text\"\n          placeholder=\"Search\"\n        />\n      </div>\n      <!-- <div class=\"vx-mt-2\">\n                <vui-pagination></vui-pagination>\n            </div> -->\n      <div\n        class=\"define-framework-listing-table vx-mt-1\"\n        [class.with-pagination]=\"true\"\n      >\n        <div class=\"vx-mt-2\" *ngIf=\"issubLoading\">\n          <framework-loader></framework-loader>\n        </div>\n        <ng-container *ngIf=\"!issubLoading\">\n          <ng-container\n            *ngIf=\"\n              selectedFrameworkData?.data?.child_list_details\n                | searchPipe : searchKeyforFramework as frameworkCat\n            \"\n          >\n            <ng-container *ngIf=\"frameworkCat?.length\">\n              <div class=\"selected-area\">\n                <vui-checkbox\n                  #check\n                  (change)=\"selectAll($event)\"\n                  [disabled]=\"allControls?.length < 1\"\n                  [checked]=\"\n                    (allControlsSelected && isScope?.length > 0) ||\n                    inScope?.length > 0\n                  \"\n                  [indeterminateEnabled]=\"\n                    inScope?.length > 0 && !allControlsSelected\n                  \"\n                >\n                  {{ check?.checked ? \"Deselect All\" : \"Select All\" }}\n                </vui-checkbox>\n              </div>\n\n              <div\n                class=\"program-listing-item\"\n                [class.active]=\"subList\"\n                *ngFor=\"let subCat of frameworkCat; let k = index\"\n              >\n                <div\n                  class=\"table-row main-list\"\n                  [class.active]=\"false\"\n                  [class.disabled]=\"!subCat?.controlsData?.length\"\n                  (click)=\"subCategoryExpandCollapse(subCat)\"\n                >\n                  <div class=\"table-column serial\">\n                    <div class=\"sr-no\">{{ k + 1 }}</div>\n\n                    <vui-checkbox\n                      [indeterminateEnabled]=\"\n                        subCat?.controlsData | subCatIndeter : inScope\n                      \"\n                      [checked]=\"\n                        ((subCat?.controlsData | categoryAllSelect : inScope) ||\n                          (subCat?.controlsData | subCatIndeter : inScope)) &&\n                        subCat?.controlsData?.length\n                      \"\n                      (change)=\"selectCategory($event, subCat)\"\n                    ></vui-checkbox>\n                  </div>\n                  <div class=\"table-column name\">\n                    <div class=\"name-inner\">\n                      <div class=\"name-with-count\">\n                        <div\n                          class=\"value\"\n                          [appTooltip]=\"subCat?.name\"\n                          placement=\"bottom-left\"\n                          delay=\"0\"\n                          type=\"black\"\n                          [tooltipMandatory]=\"false\"\n                        >\n                          {{ subCat?.name }}\n                        </div>\n                        <span class=\"count\">{{\n                          subCat?.controlsData?.length\n                        }}</span>\n                      </div>\n                      <div class=\"within-part\" *ngIf=\"false\">\n                        <span class=\"within-box\">Within</span>\n                        <span\n                          class=\"value\"\n                          [appTooltip]=\"'South Africa > America > India'\"\n                          placement=\"bottom-left\"\n                          delay=\"0\"\n                          type=\"black\"\n                          [tooltipMandatory]=\"false\"\n                          >South Africa > America > India</span\n                        >\n                      </div>\n                    </div>\n                  </div>\n                  <div class=\"table-column action\">\n                    <button\n                      class=\"arrow\"\n                      [class.disabled]=\"!subCat?.controlsData?.length\"\n                    >\n                      <i\n                        *ngIf=\"!expandedSubCategoryIds.includes(subCat?._id)\"\n                        class=\"icons\"\n                        >&#xe970;</i\n                      >\n                      <i\n                        *ngIf=\"expandedSubCategoryIds.includes(subCat?._id)\"\n                        class=\"icons\"\n                        >&#xe9e8;</i\n                      >\n                    </button>\n                  </div>\n                </div>\n                <div\n                  class=\"sub-list\"\n                  *ngIf=\"expandedSubCategoryIds.includes(subCat?._id)\"\n                >\n                  <div\n                    class=\"table-row\"\n                    [class.disabled]=\"false\"\n                    *ngFor=\"let control of subCat?.controlsData; let c = index\"\n                  >\n                    <div class=\"table-column serial\">\n                      <div class=\"sr-no\">{{ k + 1 + \".\" + (c + 1) }}</div>\n                      <vui-checkbox\n                        [checked]=\"inScopeIds.includes(control?._id)\"\n                        (change)=\"selectItem($event, control)\"\n                      ></vui-checkbox>\n                    </div>\n                    <div class=\"table-column name\">\n                      <div class=\"name-inner\">\n                        <div\n                          class=\"value\"\n                          [appTooltip]=\"control?.name\"\n                          placement=\"bottom-left\"\n                          delay=\"0\"\n                          type=\"black\"\n                          [tooltipMandatory]=\"false\"\n                        >\n                          {{ control?.name }}\n                        </div>\n                      </div>\n                    </div>\n                    <div class=\"table-column action\"></div>\n                  </div>\n                </div>\n              </div>\n            </ng-container>\n            <app-no-data\n              *ngIf=\"!frameworkCat?.length\"\n              [noDataImage]=\"ASSETS.search_data\"\n              [noDataText]=\"'No Frameworks Found'\"\n            ></app-no-data>\n          </ng-container>\n        </ng-container>\n      </div>\n    </div>\n  </ng-container>\n  <div class=\"define-framework-listing-footer\">\n    <vui-floating-bar\n      (closeEvent)=\"nextHandler()\"\n      (closeList)=\"cancelHandler()\"\n      *ngIf=\"currentView === 'FRAMEWORK_CATEGORY'\"\n      [nextDisabled]=\"!selectedFramework?._id\"\n    >\n      <div class=\"chip\" *ngIf=\"selectedFramework\">\n        <ng-container>\n          <i class=\"icons\" (click)=\"removeSelectedFramework()\">&#xe90d;</i>\n          <span class=\"value\"> {{ selectedFramework?.framework_name }}</span>\n        </ng-container>\n      </div>\n    </vui-floating-bar>\n    <vui-floating-bar\n      (closeEvent)=\"nextHandler()\"\n      (closeList)=\"cancelHandler()\"\n      *ngIf=\"currentView === 'FRAMEWORK'\"\n      [nextDisabled]=\"inScope?.length < 1\"\n    ></vui-floating-bar>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'selectedAssessment'\n})\nexport class SelectedAssessmentPipe implements PipeTransform {\n\n  transform(selectedData: Array<any>, category_id: string): any {\n    if(selectedData?.length) {\n      const index = selectedData.findIndex((ele: any) => ele.category_id === category_id);\n      if(index > -1) {\n        return selectedData[index].assessmentIds\n      }\n    }\n\n    return  []\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({\n  name: 'filter',\n})\nexport class FilterPipe implements PipeTransform {\n  transform(items: any[], searchText: string): any[] {\n    if (!items) {\n      return [];\n    }\n    if (!searchText) {\n      return items;\n    }\n    searchText = searchText.toLowerCase();\n    if(items?.length){\n    return items.filter((it: any) => {\n      return JSON.stringify(it).toLowerCase().includes(searchText);\n    });\n  }else{\n     return [];\n  }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabSelector } from './tab-selector/tab-selector.component';\nimport { TickMarkComponent } from './tick-mark/tick-mark.component';\nimport { FormFieldComponent } from './form-field/form-field.component';\nimport { FilePillComponent } from './file-pill/file-pill.component';\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\nimport { InputWithPillComponent } from './input-with-pill/input-with-pill.component';\nimport { SwitchComponent } from './cs-switch/cs-switch.component';\nimport { InputTrimDirective } from './directives/input-trim.directive';\nimport { RoleListComponent } from './role-list/role-list.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { PaginationModule } from './pagination/pagination.module';\nimport { VuiFloatingBarComponent } from './floating-bar/floating-bar.component';\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\nimport { SearchPipe } from './pipes/search.pipe';\nimport { FormsModule } from '@angular/forms';\nimport { NoDataModule } from '../../ui-kit/no-data/no-data.module';\nimport { UserGroupListComponent } from './user-group-list/user-group-list.component';\nimport { ListToIdPipe } from './pipes/list-to-id.pipe';\nimport { RefDisconnectPipe } from './pipes/ref-disconnect.pipe';\nimport { FormgroupModule } from '../../ui-kit/formgroup/formgroup.module';\nimport { AssessmentPickerComponent } from './assessment-picker/assessment-picker.component';\nimport { AssessmentLoaderComponent } from './assessment-picker/assessment-loader/assessment-loader.component';\nimport { AssessmentSubLoaderComponent } from './assessment-picker/assessment-sub-loader/assessment-sub-loader.component';\nimport { Pagination } from './assessment-picker/workflow-pagination/workflow-pagination.component';\nimport { AssessmentPreviewModule } from '../../sharedComponents/assessment-preview/assessment-preview.module';\nimport { DefineFrameworkListingComponent } from './define-framework-listing/define-framework-listing.component';\nimport { CustomFieldComponent } from './custom-field/custom-field.component';\nimport { LoaderComponent } from './role-list/loader/loader.component';\nimport { VLoaderModule } from '../../sharedComponents/v-loader/v-loader.module';\nimport { PagerPipe } from './pipes/pager.pipe';\nimport { LoaderFrameworkComponent } from './define-framework-listing/loader/loader.component';\nimport { CategoryAllSelectPipe } from './define-framework-listing/pipes/category-all-select.pipe';\nimport { SubCatIndeterPipe } from './define-framework-listing/pipes/sub-cat-indeter.pipe';\nimport { SearchNewPipe } from './define-framework-listing/pipes/search.pipe';\nimport { SelectedAssessmentPipe } from './assessment-picker/selected-assessment.pipe';\nimport { AssessmentResolverPipe } from './pipes/assessment-resolver.pipe';\nimport { SelectModule } from '../../formgroup/select/select.module';\nimport { FilterPipe } from './pipes/filter.pipe';\nimport { TooltipMessagePipe } from './define-framework-listing/pipes/tooltip-message.pipe';\nimport { PipesModule } from '../../pipes/pipes.module';\n// import { AssessmentListModule } from './assessment-list/assessment-list.module';\n// import { AssessmentPreviewModule } from '../../sharedComponents/assessment-preview/assessment-preview.module';\n\n@NgModule({\n  declarations: [\n    // TabSelector,\n    TickMarkComponent,\n    FormFieldComponent,\n    FilePillComponent,\n    InputWithPillComponent,\n    SwitchComponent,\n    InputTrimDirective,\n    RoleListComponent,\n    CheckboxComponent,\n    VuiFloatingBarComponent,\n    SearchPipe,\n    UserGroupListComponent,\n    ListToIdPipe,\n    RefDisconnectPipe,\n    AssessmentPickerComponent,\n    AssessmentLoaderComponent,\n    AssessmentSubLoaderComponent,\n    Pagination,\n    DefineFrameworkListingComponent,\n    CustomFieldComponent,\n    LoaderComponent,\n    LoaderFrameworkComponent,\n    PagerPipe,\n    CategoryAllSelectPipe,\n    SubCatIndeterPipe,\n    SearchNewPipe,\n    SelectedAssessmentPipe,\n    AssessmentResolverPipe,\n    FilterPipe,\n    //TooltipMessagePipe,\n  ],\n  imports: [\n    CommonModule,\n    TooltipModule,\n    PaginationModule,\n    PopoverModule,\n    FormsModule,\n    NoDataModule,\n    FormgroupModule,\n    AssessmentPreviewModule,\n    VLoaderModule,\n    SelectModule,\n    TabSelector,\n    PipesModule,\n    // AssessmentListModule,\n  ],\n  exports: [\n    TabSelector,\n    TickMarkComponent,\n    FormFieldComponent,\n    FilePillComponent,\n    InputWithPillComponent,\n    SwitchComponent,\n    InputTrimDirective,\n    CheckboxComponent,\n    RoleListComponent,\n    PaginationModule,\n    VuiFloatingBarComponent,\n    UserGroupListComponent,\n    ListToIdPipe,\n    RefDisconnectPipe,\n    AssessmentPickerComponent,\n    Pagination,\n    DefineFrameworkListingComponent,\n    CustomFieldComponent,\n    AssessmentResolverPipe,\n    // TooltipMessagePipe,\n    // AssessmentListModule\n  ],\n})\nexport class CreateProgramUiModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'arrayConcat'\n})\nexport class ArrayConcatPipe implements PipeTransform {\n\n  transform(value: any, ...args: any[]): any {\n    return [...value, ...args[0]];\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StopPropagationDirective } from './stop-propagation.directive';\n\n\n@NgModule({\n  declarations: [\n    StopPropagationDirective,\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    StopPropagationDirective,\n  ]\n})\nexport class DirectiveModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GrcObjectContainerComponent } from './grc-object-container/grc-object-container.component';\nimport { TextFieldComponent } from '../shared/components/text-field/text-field.component';\nimport { TextFieldIconComponent } from '../shared/components/text-field-icon/text-field-icon.component';\nimport { VcomplyEditorModule } from '@vcomply/editor';\nimport { ListPopupComponent } from '../shared/components/list-popup/list-popup.component';\nimport { TabSelector } from '../../workflow-program/create-program-ui/tab-selector/tab-selector.component';\nimport { EditModeComponent } from '../shared/components/edit-mode/edit-mode.component';\nimport { AttributesComponent } from '../shared/components/attributes/attributes.component';\nimport { FormsModule } from '@angular/forms';\nimport { SmileyDialogInlineModule } from '../../ui-kit/smiley-dialog-inline/smiley-dialog-inline.module';\nimport { VLoaderModule } from '../../sharedComponents/v-loader/v-loader.module';\nimport { WorkflowPipesModule } from '../shared/workflow-pipes/workflow-pipes.module';\n\n@NgModule({\n  declarations: [GrcObjectContainerComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    TextFieldComponent,\n    TextFieldIconComponent,\n    VcomplyEditorModule,\n    ListPopupComponent,\n    TabSelector,\n    EditModeComponent,\n    AttributesComponent,\n    SmileyDialogInlineModule,\n    VLoaderModule,\n    WorkflowPipesModule,\n  ],\n  exports: [GrcObjectContainerComponent],\n})\nexport class GrcObjectModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TimePickerComponent } from './time-picker/time-picker.component';\n\n\n\n@NgModule({\n  declarations: [\n    TimePickerComponent\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    TimePickerComponent\n  ]\n})\nexport class TimePickerModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AvatarComponent } from './avatar.component';\nimport { TooltipModule } from '../tooltip/tooltip.module';\nimport { PopoverModule } from '../popover/popover.module';\n\n@NgModule({\n  declarations: [AvatarComponent],\n  imports: [CommonModule, TooltipModule, PopoverModule],\n  exports: [AvatarComponent],\n})\nexport class AvatarModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GetUserDetailsPipe } from './userDetails.pipe';\nimport { GetRCListPipe } from './getRCList.pipe';\nimport { ParentResponsibilitySelectionPipe } from './parentResponsibilitySelection.pipe';\n\n@NgModule({\n  declarations: [GetUserDetailsPipe, GetRCListPipe, ParentResponsibilitySelectionPipe],\n  imports: [CommonModule],\n  exports: [GetUserDetailsPipe, GetRCListPipe, ParentResponsibilitySelectionPipe],\n})\nexport class SharedPipesModule {}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { FloatingBarModule } from '../floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\nimport { NoDataModule } from '../no-data/no-data.module';\nimport { VLoaderModule } from '../v-loader/v-loader.module';\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\nimport { PaginationModule } from '../../ui-kit/pagination/pagination.module';\nimport { LinkResponsibilityListComponent } from './link-responsibility.component';\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\nimport { AvatarModule } from '../../ui-kit/avatar/avatar.module';\nimport { SharedPipesModule } from '../pipes/pipe.module';\n\n@NgModule({\n  declarations: [LinkResponsibilityListComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    PipesModule,\n    FloatingBarModule,\n    FormgroupModule,\n    NoDataModule,\n    VLoaderModule,\n    PopoverModule,\n    PaginationModule,\n    TooltipModule,\n    AvatarModule,\n    SharedPipesModule,\n  ],\n  exports: [LinkResponsibilityListComponent],\n})\nexport class LinkResponsibilityModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CsMultiselectComponent } from './cs-multiselect/cs-multiselect.component';\nimport { CsMultiselectOptionComponent } from './cs-multiselect-option/cs-multiselect-option.component';\nimport { FormsModule } from '@angular/forms';\nimport { PopoverModule } from '../popover/popover.module';\n\n\n@NgModule({\n  declarations: [\n    CsMultiselectComponent,\n    CsMultiselectOptionComponent\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n    PopoverModule\n  ],\n  exports: [\n    CsMultiselectComponent,\n    CsMultiselectOptionComponent\n  ]\n})\nexport class MultiSelectModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'getTemplateCategory',\n})\nexport class GetTemplateCategoryPipe implements PipeTransform {\n  transform(value: number[], list: any[]): any {\n    if (value.length === 0 || list.length === 0) {\n      return [];\n    }\n    return list.filter((item) => value.includes(item.item_id));\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GetTemplateCategoryPipe } from './get-template-category.pipe';\nimport { SearchByKeysPipe } from './search-template.pipe';\n\n@NgModule({\n  declarations: [GetTemplateCategoryPipe, SearchByKeysPipe],\n  imports: [CommonModule],\n  exports: [GetTemplateCategoryPipe, SearchByKeysPipe],\n})\nexport class TemplatePipesModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TemplateListTableComponent } from './template-list-table/template-list-table.component';\nimport { SelectTemplateListComponent } from './select-template-list/select-template-list.component';\nimport { TooltipModule } from '../../ui-kit/tooltip/tooltip.module';\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\nimport { NoDataModule } from '../no-data/no-data.module';\nimport { VLoaderModule } from '../v-loader/v-loader.module';\nimport { MultiSelectModule } from '../../ui-kit/multi-select/multi-select.module';\nimport { FloatingBarModule } from '../floating-bar/floating-bar.module';\nimport { TemplatePipesModule } from './template-pipes/template-pipes.module';\nimport { FormsModule } from '@angular/forms';\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\nimport { NgxDocViewerModule } from 'ngx-doc-viewer';\n\n@NgModule({\n  declarations: [TemplateListTableComponent, SelectTemplateListComponent],\n  imports: [\n    CommonModule,\n    TooltipModule,\n    PopoverModule,\n    NoDataModule,\n    VLoaderModule,\n    MultiSelectModule,\n    FloatingBarModule,\n    TemplatePipesModule,\n    FormsModule,\n    PipesModule,\n    FormgroupModule,\n    NgxDocViewerModule,\n  ],\n  exports: [TemplateListTableComponent, SelectTemplateListComponent],\n})\nexport class PolicyTemplateModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { DropdownComponent } from './vc-dropdown.component';\nimport { FormgroupModule } from '../../../formgroup/formgroup.module';\nimport { TooltipModule } from '../../../ui-kit/tooltip/tooltip.module';\n\n@NgModule({\n  declarations: [DropdownComponent],\n  imports: [CommonModule, NgOptimizedImage, FormgroupModule, TooltipModule],\n  exports: [DropdownComponent],\n})\nexport class VcDropdownModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\n\nimport { FormSelectBoxComponent } from './form-selectBox.component';\nimport { FormgroupModule } from '../../../formgroup/formgroup.module';\nimport { TooltipModule } from '../../../ui-kit/tooltip/tooltip.module';\nimport { PopoverModule } from '../../../ui-kit/popover/popover.module';\nimport { VcDropdownModule } from '../vc-dropdown/vc-dropdown.module';\nimport { VLoaderModule } from '../../../sharedComponents/v-loader/v-loader.module';\nimport { ChipCapsuleComponent } from '../chip-capsule/chip-capsule.component';\n\n@NgModule({\n  declarations: [FormSelectBoxComponent, ChipCapsuleComponent],\n  imports: [\n    CommonModule,\n    NgOptimizedImage,\n    FormgroupModule,\n    VcDropdownModule,\n    TooltipModule,\n    PopoverModule,\n    VLoaderModule\n],\n  exports: [FormSelectBoxComponent],\n})\nexport class FormSelectBoxModule {}\n","import { NgModule } from '@angular/core';\nimport { CheckboxListComponent } from './checkbox-list.component';\nimport { FormsModule } from '@angular/forms';\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { FloatingBarModule } from '../floating-bar/floating-bar.module';\nimport { VLoaderModule } from '../v-loader/v-loader.module';\nimport { CommonModule } from '@angular/common';\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\n\n@NgModule({\n  declarations: [CheckboxListComponent],\n  exports: [CheckboxListComponent],\n  imports: [\n    FormsModule,\n    PipesModule,\n    FloatingBarModule,\n    VLoaderModule,\n    CommonModule,\n    FormgroupModule,\n  ],\n})\nexport class CheckboxListModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { FloatingBarModule } from '../floating-bar/floating-bar.module';\nimport { FormatAndEvidenceComponent } from './format-and-evidence.component';\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\nimport { LineLoaderModule } from '../../ui-kit/line-loader/line-loader.module';\nimport { NoDataModule } from '../no-data/no-data.module';\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { SelectModule } from '../../formgroup/select/select.module';\nimport { VLoaderModule } from '../v-loader/v-loader.module';\n\n@NgModule({\n  declarations: [FormatAndEvidenceComponent],\n  imports: [\n    CommonModule,\n    FloatingBarModule,\n    FormgroupModule,\n    FormsModule,\n    LineLoaderModule,\n    NoDataModule,\n    PipesModule,\n    SelectModule,\n    VLoaderModule,\n  ],\n  exports: [FormatAndEvidenceComponent],\n})\nexport class FormatAndEvidenceModule {}\n    ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RadioListWithPaginationComponent } from './radio-list.component';\nimport { FloatingBarModule } from '../floating-bar/floating-bar.module';\nimport { NoDataModule } from '../no-data/no-data.module';\nimport { LinkTreatmentLoaderComponent } from './link-treatment-loader/link-treatment-loader.component';\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\nimport { PaginationModule } from '../../ui-kit/pagination/pagination.module';\nimport { PipesModule } from '../../pipes/pipes.module';\n\n@NgModule({\n  declarations: [RadioListWithPaginationComponent, LinkTreatmentLoaderComponent],\n  exports: [RadioListWithPaginationComponent, LinkTreatmentLoaderComponent\n\n  ],\n  imports: [CommonModule, FormsModule, FloatingBarModule, NoDataModule, FormgroupModule, PaginationModule, PipesModule],\n})\nexport class RadioListWithPaginationModule {}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FloatingBarModule } from '../floating-bar/floating-bar.module';\nimport { NoDataModule } from '../no-data/no-data.module';\nimport { CategoryListSelectionComponent } from './category-list-selection/category-list-selection.component';\nimport { FormsModule } from '@angular/forms';\nimport { FormgroupModule } from '../../formgroup/formgroup.module';\nimport { PaginationModule } from '../../ui-kit/pagination/pagination.module';\nimport { RadioListWithPaginationModule } from '../radio-list-with-pagination/radio-list-with-pagination.module';\nimport { PipesModule } from '../../pipes/pipes.module';\n\n@NgModule({\n  declarations: [CategoryListSelectionComponent],\n  imports: [\n    CommonModule,\n    FloatingBarModule,\n    FormgroupModule,\n    FormsModule,\n    NoDataModule,\n    PaginationModule,\n    PipesModule,\n    RadioListWithPaginationModule,\n  ],\n  exports: [CategoryListSelectionComponent],\n})\nexport class CategoryListSelectionModule {}\n","\nimport { AfterViewInit, Directive, ElementRef, Input, OnInit } from '@angular/core';\n\n@Directive({\n    selector: '[appAutofocus]'\n})\n\nexport class AutofocusDirective implements AfterViewInit {\n\n    constructor(private el: ElementRef) {\n    }\n\n    ngAfterViewInit() {\n        // Otherwise Angular throws error: Expression has changed after it was checked.\n        window.setTimeout(() => {\n            this.el.nativeElement.focus();\n        });\n    }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\n\n@Directive({\n  selector: '[appConditionalFocus]'\n})\nexport class ConditionalFocusDirective implements OnChanges {\n  @Input() appConditionalFocus = false;\n  constructor(private el: ElementRef) { }\n  ngOnChanges(change:SimpleChanges){\n    if(change?.appConditionalFocus && change?.appConditionalFocus?.currentValue === true){\n         this.focus();\n    }\n  }\n  ngAfterViewInit() {\n    // Otherwise Angular throws error: Expression has changed after it was checked.\n    this.focus();\n\n}\n\nfocus(){\n  if(this.appConditionalFocus){\n    window.setTimeout(() => {\n      this.el.nativeElement.focus();\n  });\n  }\n  }\n\n\n}\n\n\n\n\n","import {\n  Directive,\n  Output,\n  Input,\n  EventEmitter,\n  HostBinding,\n  HostListener\n} from '@angular/core';\n\n@Directive({\n  selector: '[appDragDrop]'\n})\nexport class DragDropDirective {\n  @HostBinding('class.active') fileOver !: boolean;\n  @Output() fileDropped = new EventEmitter<any>();\n\n  // Dragover listener\n  @HostListener('dragover', ['$event']) onDragOver(evt:any) {\n    evt.preventDefault();\n    evt.stopPropagation();\n    this.fileOver = true;\n  }\n\n  // Dragleave listener\n  @HostListener('dragleave', ['$event']) public onDragLeave(evt:any) {\n    evt.preventDefault();\n    evt.stopPropagation();\n    this.fileOver = false;\n  }\n\n  // Drop listener\n  @HostListener('drop', ['$event']) public ondrop(evt:any) {\n    evt.preventDefault();\n    evt.stopPropagation();\n    this.fileOver = false;\n    let files = evt.dataTransfer.files;\n    if (files.length > 0) {\n      this.fileDropped.emit(files);\n    }\n  }\n}\n\n","import { Directive, HostListener,ElementRef } from '@angular/core';\n\n@Directive({\n  selector: '[spaceTrim]'\n})\nexport class spaceTrimDirective {\n\n  @HostListener('blur', ['$event'])\n  onKeyDown(event: any) {\n    const input = event.target as HTMLInputElement;\n    let trimmed = input.value.trim();\n    input.value = trimmed;\n\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScrollInViewDirective } from './scroll-in-view.directive';\nimport { AutofocusDirective } from './autofocus.directive';\nimport { ConditionalFocusDirective } from './conditional-focus.directive';\nimport { DragDropDirective } from './drag-drop.directive';\nimport { spaceTrimDirective } from './input-trim.directive';\n\n@NgModule({\n  declarations: [\n    ScrollInViewDirective,\n    AutofocusDirective,\n    ConditionalFocusDirective,\n    DragDropDirective,\n    spaceTrimDirective,\n  ],\n  imports: [CommonModule],\n  exports: [\n    ScrollInViewDirective,\n    AutofocusDirective,\n    ConditionalFocusDirective,\n    DragDropDirective,\n    spaceTrimDirective,\n  ],\n  providers: [],\n})\nexport class SharedDirectiveModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { TooltipModule } from '../ui-kit/tooltip/tooltip.module';\nimport { FloatingBarModule } from '../sharedComponents/floating-bar/floating-bar.module';\nimport { FormgroupModule } from '../formgroup/formgroup.module';\nimport { DpDatePickerModule } from 'ng2-date-picker';\nimport { VcomplyEditorModule } from '@vcomply/editor';\nimport { PopoverModule } from '../ui-kit/popover/popover.module';\nimport { VcDropdownModule } from './components/vc-dropdown/vc-dropdown.module';\nimport { FormSelectBoxModule } from './components/form-selectBox/form-selectBox.module';\nimport { RcListModule } from '../sharedComponents/responsibility-centers-list/rc-list.module';\nimport { VLoaderModule } from '../sharedComponents/v-loader/v-loader.module';\nimport { SmileyDialogInlineModule } from '../ui-kit/smiley-dialog-inline/smiley-dialog-inline.module';\nimport { CheckboxListModule } from '../sharedComponents/checkbox-list/checkbox-list.module';\nimport { FormatAndEvidenceModule } from '../sharedComponents/format-and-evidence/format-and-evidence.module';\nimport { CategoryListSelectionModule } from '../sharedComponents/category-list-selection/category-list-selection.module';\nimport { LinkResponsibilityModule } from '../sharedComponents/link-responsibility/link-responsibility.module';\nimport { PipesModule } from '../pipes/pipes.module';\nimport { NoDataModule } from '../ui-kit/no-data/no-data.module';\n\nimport { SharedDirectiveModule } from '../sharedComponents/directive/directive.module';\n\nimport { CaseTypeComponent } from './components/case-type-slider/case-type.component';\nimport { WorkflowCaseComponent } from './workflow-case/workflow-case.component';\nimport { AssigneeComponent } from './components/assignee/assignee.component';\nimport { DueDateComponent } from './components/due-date/due-date.component';\nimport { InformationBlockComponent } from './components/information-block/information-block.component';\nimport { CaseDetailsComponent } from './components/case-details/case-details.component';\nimport { VCInputComponent } from './components/vc-input/vc-input.component';\nimport { VCFormLabelComponent } from './components/vc-label/vc-label.component';\nimport { FieldHolderComponent } from './components/field-holder/field-holder.component';\nimport { RcDetailsComponent } from './components/rc-details/rc-details.component';\nimport { CaseDropdownComponent } from './components/case-type-dropdown/case-dropdown.component';\nimport { ReportDateComponent } from './components/report-date/report-date.component';\nimport { ChipCapsuleComponent } from './components/chip-capsule/chip-capsule.component';\nimport { CasePriorityComponent } from './components/case-priority/case-priority.component';\nimport { CaseCategoryComponent } from './components/case-category/case-category.component';\nimport { CaseResolutionDeadlineComponent } from './components/case-resolution-deadline/case-resolution-deadline.component';\nimport { CaseAssigneesComponent } from './components/case-assignees/case-assignees.component';\nimport { GroupUsersListComponent } from '../sharedComponents/group-users-list/group-users-list.component';\nimport { CaseOwnersComponent } from './components/case-owners/case-owners.component';\nimport { LinkedAssessmentComponent } from './components/linked assessment/linked-assessment.component';\nimport { LinkedResponsibilitiesComponent } from './components/linked-responsibilities/linked-responsibilities.component';\nimport { BannerComponent } from '../ui-kit/banner/banner.component';\n\n@NgModule({\n  declarations: [\n    CaseTypeComponent,\n    WorkflowCaseComponent,\n    AssigneeComponent,\n    DueDateComponent,\n    InformationBlockComponent,\n    CaseDetailsComponent,\n    VCInputComponent,\n    VCFormLabelComponent,\n    FieldHolderComponent,\n    RcDetailsComponent,\n    CaseDropdownComponent,\n    ReportDateComponent,\n    CasePriorityComponent,\n    CaseCategoryComponent,\n    CaseResolutionDeadlineComponent,\n    CaseAssigneesComponent,\n    CaseOwnersComponent,\n    LinkedAssessmentComponent,\n    LinkedResponsibilitiesComponent,\n    BannerComponent,\n  ],\n  imports: [\n    CommonModule,\n    TooltipModule,\n    FloatingBarModule,\n    FormgroupModule,\n    DpDatePickerModule,\n    VcomplyEditorModule,\n    PopoverModule,\n    VcDropdownModule,\n    FormSelectBoxModule,\n    FormsModule,\n    RcListModule,\n    FormatAndEvidenceModule,\n    VLoaderModule,\n    SmileyDialogInlineModule,\n    CategoryListSelectionModule,\n    SharedDirectiveModule,\n    CheckboxListModule,\n    PipesModule,\n    GroupUsersListComponent,\n    LinkResponsibilityModule,\n    NoDataModule,\n  ],\n  exports: [WorkflowCaseComponent],\n})\nexport class ReportCaseModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableLoaderComponent } from './table-loader/table-loader.component';\n\n\n\n@NgModule({\n  declarations: [\n    TableLoaderComponent\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    TableLoaderComponent\n  ]\n})\nexport class LoadersModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { ProgramListComponent } from './program-list/program-list.component';\nimport { FormgroupModule } from \"../../formgroup/formgroup.module\";\nimport { NoDataModule } from '../../ui-kit/no-data/no-data.module';\nimport { PopoverModule } from '../../ui-kit/popover/popover.module';\nimport { CheckSelectedItemsPipe } from './pipes/check-selected-items.pipes';\nimport { LoadersModule } from '../../ui-kit/loaders/loaders.module';\nimport { PipesModule } from '../../pipes/pipes.module';\n@NgModule({\n  declarations: [\n    ProgramListComponent,\n    CheckSelectedItemsPipe\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n    FormgroupModule,\n    NoDataModule,\n    PopoverModule,\n    LoadersModule,\n    PipesModule\n],\n  exports: [\n    ProgramListComponent\n  ]\n})\nexport class ProgramListModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'assignee'\n})\n\nexport class ResponsibilityDetailsPipe implements PipeTransform {\n  transform(responsibility: any, ...otherDetails: any[]): any {\n    return {\n        assigneeType: responsibility,\n        rcType: responsibility\n    }\n  }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { RISK_CLASS_LIST } from '../../constants/responsibility';\n\n@Pipe({\n  name: 'riskClass',\n})\nexport class RiskClassPipe implements PipeTransform {\n  transform(value: string): boolean {\n    if(!value) return true;\n    return RISK_CLASS_LIST.includes(value?.toLowerCase());\n  }\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { WorkflowEngineContainerComponent } from './workflow-engine-container/workflow-engine-container.component';\nimport { WorkflowRiskComponent } from './workflow-risk/workflow-risk.component';\nimport { WorkflowComplianceComponent } from './workflow-compliance/workflow-compliance.component';\nimport { WorkflowPolicyComponent } from './workflow-policy/workflow-policy.component';\nimport { CommonModule } from '@angular/common';\nimport { MoreOptionComponent } from './more-option/more-option.component';\nimport { Configurations } from './configurations';\nimport { OwnerListComponent } from './sharedComponents/owner-list/owner-list.component';\nimport { CategoryListComponent } from './sharedComponents/category-list/category-list.component';\nimport { FormgroupModule } from './formgroup/formgroup.module';\nimport { TooltipModule } from './ui-kit/tooltip/tooltip.module';\nimport { VcomplyEditorModule } from '@vcomply/editor';\nimport { WorkflowPaginationComponent } from './workflow-pagination/workflow-pagination.component';\nimport { LineLoaderModule } from './ui-kit/line-loader/line-loader.module';\nimport { AddMultipleRiskComponent } from './add-multiple-risk/add-multiple-risk.component';\nimport { BulkViewComponent } from './sharedComponents/bulk-view/bulk-view.component';\nimport { CheckpointsComponent } from './sharedComponents/checkpoint/checkpoints/checkpoints.component';\nimport { ConfirmationAlertComponent } from './confirmation-alert/confirmation-alert.component';\nimport { CheckpointsQuestionsComponent } from './sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CheckpointsListComponent } from './sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component';\nimport { SelectModule } from './formgroup/select/select.module';\nimport { FrequencyContainerComponent } from './sharedComponents/frequency/frequency-container/frequency-container.component';\nimport { FrequencyDailyComponent } from './sharedComponents/frequency/frequency-daily/frequency-daily.component';\nimport { FrequencyWeeklyComponent } from './sharedComponents/frequency/frequency-weekly/frequency-weekly.component';\nimport { FrequencyMonthlyComponent } from './sharedComponents/frequency/frequency-monthly/frequency-monthly.component';\nimport { FrequencyQuarterlyComponent } from './sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component';\nimport { FrequencyBiannualComponent } from './sharedComponents/frequency/frequency-biannual/frequency-biannual.component';\nimport { FrequencyAnnualComponent } from './sharedComponents/frequency/frequency-annual/frequency-annual.component';\nimport { FrequencyOneTimeComponent } from './sharedComponents/frequency/frequency-one-time/frequency-one-time.component';\nimport { FrequencyRandomComponent } from './sharedComponents/frequency/frequency-random/frequency-random.component';\nimport { FrequencyOnCompletionOfComponent } from './sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component';\nimport { FrequencyOngoingComponent } from './sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\nimport { FrequencyTopComponent } from './sharedComponents/frequency/frequency-top/frequency-top.component';\nimport { FrequencyLifecycleComponent } from './sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component';\nimport { DpDatePickerModule } from 'ng2-date-picker';\nimport { FrequencyDueDateComponent } from './sharedComponents/frequency/frequency-due-date/frequency-due-date.component';\nimport { FrequencyCheckboxListComponent } from './sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component';\nimport { FrequencyRadioListComponent } from './sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component';\nimport { AddMultipleResponsibilityComponent } from './add-multiple-responsibility/add-multiple-responsibility.component';\nimport { BulkResponsibilityViewComponent } from './sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component';\nimport { NoDataModule } from './sharedComponents/no-data/no-data.module';\nimport { VLoaderModule } from './sharedComponents/v-loader/v-loader.module';\nimport { PopoverModule } from './ui-kit/popover/popover.module';\nimport { CheckpointsPolicyContainerComponent } from './sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component';\nimport { CheckpointsPolicyListComponent } from './sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component';\nimport { CheckpointsPolicyQuestionsComponent } from './sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component';\nimport { WorkflowSurveyFormComponent } from './workflow-survey-form/workflow-survey-form.component';\nimport { LogAnIssueComponent } from './log-an-issue/log-an-issue.component';\nimport { FilterPipe } from './sharedComponents/pipes/filterPipe';\nimport { SmileyDialogModule } from './ui-kit/smiley-dialog/smiley-dialog.module';\nimport { RadioListComponent } from './sharedComponents/radio-list/radio-list.component';\n\nimport { CreateDocumentsComponent } from './create-documents/create-documents.component';\nimport { GroupUsersListComponent } from './sharedComponents/group-users-list/group-users-list.component';\nimport { CategoryMultiSelectComponent } from './sharedComponents/category-multiselect/category-multi-select.component';\nimport { FrameworkListComponent } from './sharedComponents/framework-list/framework-list.component';\nimport { ParentTableComponent } from './sharedComponents/framework-list/parent-table/parent-table.component';\nimport { UserRadioListComponent } from './sharedComponents/users-radio-list/users-radio-list.component';\nimport { CheckpointFloatingBarComponent } from './sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component';\nimport { SnackBarModule } from './ui-kit/snack-bar/snack-bar.module';\nimport { RiskClassificationComponent } from './sharedComponents/risk-classification/risk-classification.component';\n\nimport { ReviewFrequencyComponent } from './sharedComponents/review-frequency/review-frequency.component';\nimport { SmileyDialogInlineModule } from './ui-kit/smiley-dialog-inline/smiley-dialog-inline.module';\nimport { ClickOutsideModule } from './ui-kit/click-outside/click-outside.module';\nimport { ShortMergePipe } from './sharedComponents/pipes/short-merge.pipe';\n\nimport { FormatHtmlPipe } from './ui-kit/format-html.pipe';\nimport { WithinDataPipe } from './sharedComponents/pipes/within-data.pipe';\nimport { rcTreeToolTipPipe } from './sharedComponents/pipes/rcTreeToolTip.pipe';\nimport { PopoverHoverModule } from './ui-kit/popover-hover/popover-hover.module';\nimport { ResponsibilityRiskSelectorComponent } from './sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component';\nimport { ArrayFilterPipe } from './sharedComponents/pipes/array-filter.pipe';\nimport { AuditCategoryListComponent } from './sharedComponents/audit-category-list/audit-category-list.component';\nimport { DocumentSectionComponent } from './sharedComponents/document-section/document-section.component';\nimport { WorkflowAssessmentComponent } from './workflow-assessment/workflow-assessment.component';\nimport { ImportAnAssessmentComponent } from './workflow-assessment/import-an-assessment/import-an-assessment.component';\nimport { AssessmentListComponent } from './sharedComponents/assessment-list/assessment-list.component';\nimport { PaginationModule } from './ui-kit/pagination/pagination.module';\nimport { AssessmentListLoaderComponent } from './sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component';\nimport { AssessmentListSubLoaderComponent } from './sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component';\nimport { AssessmentPreviewModule } from './sharedComponents/assessment-preview/assessment-preview.module';\nimport { CreateAssessmentModule } from './sharedComponents/assessment-editor/create-assessment.module';\nimport { ActionDialogModule } from './ui-kit/action-dialog/action-dialog.module';\nimport { ProgramListingComponent } from './sharedComponents/program-listing/program-listing.component';\nimport { WorkflowProgramComponent } from './workflow-program/workflow-program.component';\nimport { RolesListComponent } from './sharedComponents/roles-list/roles-list.component';\nimport { CreateProgramUiModule } from './workflow-program/create-program-ui/create-program-ui.module';\nimport { ArrayConcatPipe } from './workflow-program/create-program-ui/pipes/array-concat.pipe';\nimport { FrameworkListTableComponent } from './sharedComponents/framework-list/framework-list-table/framework-list-table.component';\nimport { FrameworkResponsibilityTableComponent } from './sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component';\nimport { FrameworkTableLoaderComponent } from './sharedComponents/framework-list/framework-table-loader/framework-table-loader.component';\nimport { SpaceTrimPipe } from './sharedComponents/pipes/spaceTrim.pipe';\nimport { FrequencyDialogContainerComponent } from './sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component';\nimport { FrequencyDialogWeeklyComponent } from './sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component';\nimport { FrequencyDialogTopComponent } from './sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component';\nimport { FrequencyDialogDueDateComponent } from './sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component';\nimport { FrequencyDialogCheckboxListComponent } from './sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component';\nimport { FrequencyDialogMonthlyComponent } from './sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component';\nimport { FrequencyDialogQuarterlyComponent } from './sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component';\nimport { FrequencyDialogRadioListComponent } from './sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component';\nimport { FrequencyDialogBiannualComponent } from './sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component';\nimport { FrequencyDialogAnnualComponent } from './sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component';\nimport { FrequencyDialogOneTimeComponent } from './sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component';\nimport { AddMultipleResponsibilityContainerComponent } from './add-multiple-responsibility-container/add-multiple-responsibility-container.component';\nimport { AddMultipleResponsibilityWithTabComponent } from './add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component';\nimport { FrequencyResponsibilityListComponent } from './sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component';\nimport { ApprovalWorkflowComponent } from './sharedComponents/approval-workflow/approval-workflow.component';\nimport { SelectApproversComponent } from './sharedComponents/select-approvers/select-approvers.component';\nimport { PolicyAccessComponent } from './sharedComponents/policy-access/policy-access.component';\nimport { ApprovalWorkflowListComponent } from './sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component';\nimport { ApprovalCreateFormComponent } from './sharedComponents/approval-workflow/approval-create-form/approval-create-form.component';\n// import { LinkProgramModule } from './sharedComponents/link-program/link-program.module';\nimport { LinkProgramComponent } from './sharedComponents/link-program/link-program/link-program.component';\nimport { TooltipValidationPipe } from './sharedComponents/link-program/tooltip-validation.pipe';\nimport { DirectiveModule } from './ui-kit/directive/directive.module';\nimport { GrcObjectModule } from './workflow/grc-object/grc-object.module';\nimport { RcListModule } from './sharedComponents/responsibility-centers-list/rc-list.module';\nimport { PipesModule } from './pipes/pipes.module';\nimport { FloatingBarModule } from './sharedComponents/floating-bar/floating-bar.module';\nimport { ListLoaderModule } from './sharedComponents/list-loader/list-loader.module';\nimport { GrcObjectListComponent } from './workflow/shared/components/grc-object-list/grc-object-list.component';\nimport { TimePickerModule } from './ui-kit/time-picker/time-picker.module';\nimport { LinkResponsibilityModule } from './sharedComponents/link-responsibility/link-responsibility.module';\nimport { LinkRelatedPoliciesComponent } from './link-related-policies/link-related-policies.component';\nimport { MultiSelectModule } from './ui-kit/multi-select/multi-select.module';\nimport { PolicyTemplateModule } from './sharedComponents/policy-template/policy-template.module';\nimport { ReportCaseModule } from './report-a-case/report-case.module';\nimport { FormatAndEvidenceModule } from './sharedComponents/format-and-evidence/format-and-evidence.module';\nimport { CheckboxListModule } from './sharedComponents/checkbox-list/checkbox-list.module';\nimport { RadioListWithPaginationModule } from './sharedComponents/radio-list-with-pagination/radio-list-with-pagination.module';\nimport { ProgramListModule } from './sharedComponents/program-list/program-list.module';\nimport { ListContainerComponent } from './sharedComponents/list-container/list-container.component';\nimport { SubResponsibilityComponent } from './sharedComponents/frequency/frequency-responsibility-list/sub-responsibility/sub-responsibility.component';\nimport { ResponsibilityDetailsPipe } from './sharedComponents/pipes/assignee.pipe';\nimport { AvatarV2Component } from './ui-kit/avatar-v2/avatar-v2.component';\nimport { RiskClassPipe } from './sharedComponents/pipes/risk-class.pipe';\n\n@NgModule({\n  declarations: [\n    WorkflowEngineContainerComponent,\n    WorkflowRiskComponent,\n    WorkflowComplianceComponent,\n    WorkflowPolicyComponent,\n    MoreOptionComponent,\n    OwnerListComponent,\n    UserRadioListComponent,\n    CategoryListComponent,\n    CategoryMultiSelectComponent,\n    WorkflowPaginationComponent,\n    AddMultipleRiskComponent,\n    BulkViewComponent,\n    CheckpointsComponent,\n    ConfirmationAlertComponent,\n    CheckpointsQuestionsComponent,\n    CheckpointsListComponent,\n    ReviewFrequencyComponent,\n    FrequencyContainerComponent,\n    FrequencyDailyComponent,\n    FrequencyWeeklyComponent,\n    FrequencyMonthlyComponent,\n    FrequencyQuarterlyComponent,\n    FrequencyBiannualComponent,\n    FrequencyAnnualComponent,\n    FrequencyOneTimeComponent,\n    FrequencyRandomComponent,\n    FrequencyOnCompletionOfComponent,\n    FrequencyOngoingComponent,\n    FrequencyTopComponent,\n    FrequencyLifecycleComponent,\n    FrequencyDueDateComponent,\n    FrequencyCheckboxListComponent,\n    FrequencyRadioListComponent,\n    AddMultipleResponsibilityComponent,\n    BulkResponsibilityViewComponent,\n    CheckpointsPolicyContainerComponent,\n    CheckpointsPolicyListComponent,\n    CheckpointsPolicyQuestionsComponent,\n    WorkflowSurveyFormComponent,\n    LogAnIssueComponent,\n    FilterPipe,\n    RadioListComponent,\n    CreateDocumentsComponent,\n    FrameworkListComponent,\n    ParentTableComponent,\n    CheckpointFloatingBarComponent,\n    RiskClassificationComponent,\n    ShortMergePipe,\n    FormatHtmlPipe,\n    WithinDataPipe,\n    rcTreeToolTipPipe,\n    ResponsibilityRiskSelectorComponent,\n    ArrayFilterPipe,\n    AuditCategoryListComponent,\n    DocumentSectionComponent,\n    DocumentSectionComponent,\n    WorkflowAssessmentComponent,\n    ImportAnAssessmentComponent,\n    AssessmentListComponent,\n    AssessmentListLoaderComponent,\n    AssessmentListSubLoaderComponent,\n    ProgramListingComponent,\n    WorkflowProgramComponent,\n    RolesListComponent,\n    FrameworkListTableComponent,\n    FrameworkResponsibilityTableComponent,\n    FrameworkTableLoaderComponent,\n    ArrayConcatPipe,\n    SpaceTrimPipe,\n    FrequencyDialogContainerComponent,\n    FrequencyDialogWeeklyComponent,\n    FrequencyDialogTopComponent,\n    FrequencyDialogDueDateComponent,\n    FrequencyDialogCheckboxListComponent,\n    FrequencyDialogMonthlyComponent,\n    FrequencyDialogQuarterlyComponent,\n    FrequencyDialogRadioListComponent,\n    FrequencyDialogBiannualComponent,\n    FrequencyDialogAnnualComponent,\n    FrequencyDialogOneTimeComponent,\n    AddMultipleResponsibilityContainerComponent,\n    AddMultipleResponsibilityWithTabComponent,\n    FrequencyResponsibilityListComponent,\n    ApprovalWorkflowComponent,\n    SelectApproversComponent,\n    PolicyAccessComponent,\n    ApprovalWorkflowListComponent,\n    ApprovalCreateFormComponent,\n    LinkProgramComponent,\n    TooltipValidationPipe,\n    LinkRelatedPoliciesComponent,\n    ListContainerComponent,\n    ResponsibilityDetailsPipe,\n    RiskClassPipe\n  ],\n  imports: [\n    ReactiveFormsModule,\n    CreateAssessmentModule,\n    VcomplyEditorModule,\n    CommonModule,\n    FormgroupModule,\n    TooltipModule,\n    PopoverModule,\n    LineLoaderModule,\n    FormsModule,\n    SelectModule,\n    NgxMaterialTimepickerModule,\n    DpDatePickerModule,\n    NoDataModule,\n    VLoaderModule,\n    SmileyDialogModule,\n    SnackBarModule,\n    HttpClientModule,\n    SmileyDialogInlineModule,\n    ClickOutsideModule,\n    PopoverHoverModule,\n    PaginationModule,\n    CreateAssessmentModule,\n    ActionDialogModule,\n    AssessmentPreviewModule,\n    CreateProgramUiModule,\n    DirectiveModule,\n    GrcObjectModule,\n    RcListModule,\n    PipesModule,\n    FloatingBarModule,\n    GroupUsersListComponent,\n    ListLoaderModule,\n    GrcObjectListComponent,\n    TimePickerModule,\n    MultiSelectModule,\n    PolicyTemplateModule,\n    ReportCaseModule,\n    FormatAndEvidenceModule,\n    CheckboxListModule,\n    RadioListWithPaginationModule,\n    LinkResponsibilityModule,\n    ProgramListModule,\n    SubResponsibilityComponent,\n    AvatarV2Component\n  ],\n  exports: [WorkflowEngineContainerComponent],\n})\nexport class VComplyWorkflowEngineModule {\n  public static forRoot(\n    environmentConfig: Configurations\n  ): ModuleWithProviders<VComplyWorkflowEngineModule> {\n    return {\n      ngModule: VComplyWorkflowEngineModule,\n      providers: [{ provide: Configurations, useValue: environmentConfig }],\n    };\n  }\n}\n","/*\n * Public API Surface of workflow-engine\n */\n\nexport * from './lib/workflow-engine.service';\n// export * from './lib/workflow-engine.component';\nexport * from './lib/workflow-engine.module';\nexport * from './lib/workflow-engine-container/workflow-engine-container.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.TokenDecoderService","i3.Configurations","AuthService","i2.AuthService","API_URLS","SelectionState","MONTH_NAMES","map","catchError","i1.AuthService","i2.Configurations","i1.ApiService","retry","i3.OrganizationCommonService","i4.Configurations","i1.RbacService","i3.GrcService","i4.BizCycleService","i5.Configurations","i1","i1.SnackBarService","i2","ClickOutsideDirective","FilterPipe","SearchPipe","CONSTANTS","i4.DomSanitizerPipe","i1.PopoverService","i2.PopoverComponent","i3.PopoverDirective","i4.ToolTipDirective","i5.DataTypePipe","i1.Configurations","i3.FloatingBarComponent","i4.CsCheckboxComponent","i5.CsRadioComponent","i6.NoDataComponent","i7.LoaderInlineComponent","i8.SearchPipe","i1.CsRadioComponent","PascalPipe","i2.PascalPipe","CsSelectComponent","FormgroupModule","NoDataModule","LoaderComponent","i3.ToolTipDirective","i1.CsRadioComponentUI","i2.ClickOutsideDirective","i3.PascalPipe","PaginationModule","i4.CsCheckboxComponentUI","i6.FloatingBarComponent","i7.PaginationComponentUI","i8.NoDataComponentUI","i9.ListLoaderComponent","i7.SearchPipe","i8.TooltipMessagePipe","i9.ToolTipDirective","i1.ResponsibilityService","i3.CsCheckboxComponentUI","i4.CsCheckboxIndeterminateComponentUI","i5.ToolTipDirective","i6.PaginationComponentUI","i3.PopoverComponent","i4.PopoverDirective","i5.CsCheckboxComponentUI","i6.CsCheckboxIndeterminateComponentUI","i7.ToolTipDirective","i8.PaginationComponentUI","i1.GrcService","i4.ListLoaderComponent","i5.NoDataComponentUI","GetUserDetailsPipe","i10.SearchPipe","i2.ToolTipDirective","i3.PaginationComponentUI","i2.ResponsibilityService","i3.GetUserDetailsPipe","i4","i5.FloatingBarComponent","i6.ListLoaderComponent","i7.NoDataComponentUI","i8.FilterResponsibilityPipe","i2.ResponsibilityCentersListComponent","i1.CommonService","i3","i1.SelectService","i1.CsSelectComponent","i2.SelectService","i2.CsSelectComponent","i3.CsOptionComponent","i2.FloatingBarComponent","i3.CsCheckboxComponent","i3.GetSelectedValuePipe","i4.IsAttributesValidPipe","i3.AuthService","i4.UiKitService","i5.ComplianceCommonService","i6.OrganizationCommonService","i7.IframeService","i8.CommonService","i9","i10","i11.TextFieldComponent","i12.TextFieldIconComponent","i13","i14.ListPopupComponent","i15.TabSelector","i16.EditModeComponent","i17.AttributesComponent","i18.SmileyDialogInlineComponent","i19.LoaderInlineComponent","i1.ToolTipDirective","i2.PolicyService","i4.SnackBarService","i5","i6.CsRadioComponent","i7","i8.LineLoaderComponent","i9.CsSelectComponent","i10.CsOptionComponent","i3.LoaderInlineComponent","i5.CsCheckboxComponent","i6.ListMapperPipe","i1.ReportACaseService","i2.ScrollInViewDirective","i3.CsSwitchComponent","i6.VCInputComponent","i7.VCFormLabelComponent","i8.FieldHolderComponent","i2.CsCheckboxComponent","i3.CsCheckboxIndeterminateComponent","DropdownComponent","i2.DropdownComponent","i4.PopoverComponent","i5.PopoverDirective","i6.LoaderComponent","i7.ChipCapsuleComponent","i1.ComplianceCommonService","i4.FormSelectBoxComponent","i5.ResponsibilityCentersListComponent","i6.VCFormLabelComponent","i7.FieldHolderComponent","i3.DateUtilityService","i6","i2.FormSelectBoxComponent","i3.VCFormLabelComponent","i4.FieldHolderComponent","i4.CsRadioComponent","i8.LinkTreatmentLoaderComponent","i9.SearchPipe","i10.WithinStructurePipe","i6.CategoryListSelectionComponent","i9.GetEditorConfigPipe","NO_DATA_FOUND_IMAGE","moment","i5.PopoverComponent","i6.PopoverDirective","i8.LoaderInlineComponent","i9.NoDataComponentUI","i2.FrequencyService","i8","i9.LoaderInlineComponent","i10.NoDataComponentUI","i11.AssigneeComponent","i12.BannerComponent","i3.FormSelectBoxComponent","i4.DueDateComponent","i5.VCFormLabelComponent","i6.FieldHolderComponent","i3.GroupUsersListComponent","i4.VCFormLabelComponent","i5.FieldHolderComponent","i4.GroupUsersListComponent","i3.FieldHolderComponent","i1.FrequencyService","i2.ComplianceCommonService","i6.CsCheckboxComponent","i7.NoDataComponent","i9.PopoverComponent","i10.PopoverDirective","i11.PaginationComponentUI","i12.ToolTipDirective","i13.AvatarComponent","i14.GetUserDetailsPipe","i15.GetRCListPipe","i16.ParentResponsibilitySelectionPipe","i5.LinkResponsibilityListComponent","i2.UiKitService","i3.OrganizationUserService","i4.ResponsibilityService","i6.IframeService","i7.DateUtilityService","i10.CsRadioComponent","i11","i12.PopoverComponent","i13.PopoverDirective","i14","i15.FormatAndEvidenceComponent","i16.LoaderInlineComponent","i17.SmileyDialogInlineComponent","i18.ScrollInViewDirective","i19.CheckboxListComponent","i20.CaseTypeComponent","i21.InformationBlockComponent","i22.CaseDetailsComponent","i23.VCFormLabelComponent","i24.FieldHolderComponent","i25.RcDetailsComponent","i26.CaseDropdownComponent","i27.ReportDateComponent","i28.CasePriorityComponent","i29.CaseCategoryComponent","i30.CaseResolutionDeadlineComponent","i31.CaseAssigneesComponent","i32.CaseOwnersComponent","i33.LinkedAssessmentComponent","i34.LinkedResponsibilitiesComponent","i35.SpaceBreakerPipe","i3.RiskCommonService","CheckboxComponent","i3.CsSelectComponent","i4.CsOptionComponent","i3.PaginationComponent","i8.CsRadioComponentUI","i9.CsSwitchComponentUI","i10.LoaderInlineComponent","i11.CheckboxComponent","i12.VuiFloatingBarComponent","i13.TooltipMessagePipe","i14.SearchPipe","i5.NoDataComponent","i7.TooltipMessagePipe","i8.FilterPipe","i9.ShortMergePipe","cloneDeep","i3.CsRadioComponent","i6.LoaderInlineComponent","i7.FloatingBarComponent","i5.TimePickerComponent","i2.FrequencyDialogTopComponent","i3.FrequencyDialogDueDateComponent","i4.FrequencyDialogCheckboxListComponent","i2.CsRadioComponent","i4.FrequencyDialogRadioListComponent","i2.CommonService","i8.TimePickerComponent","i9.FrequencyDialogDueDateComponent","i2.SnackBarService","i4.FrequencyDialogWeeklyComponent","i5.FrequencyDialogMonthlyComponent","i6.FrequencyDialogQuarterlyComponent","i7.FrequencyDialogBiannualComponent","i8.FrequencyDialogAnnualComponent","i9.FrequencyDialogOneTimeComponent","i1.AddRiskService","i3.UiKitService","i5.FrequencyService","i6.GrcService","i7.OrganizationCommonService","i8.IframeService","i9.Configurations","i12","i13.CsSwitchComponent","i14.ToolTipDirective","i15.PopoverComponent","i16.PopoverDirective","i17.CsSelectComponent","i18.CsOptionComponent","i20.SmileyDialogInlineComponent","i21.ClickOutsideDirective","i22.UserGroupListComponent","i23.ResponsibilityCentersListComponent","i24.GrcObjectListComponent","i25.OwnerListComponent","i26.CategoryListComponent","i27.FrequencyDialogContainerComponent","i28.RefDisconnectPipe","i29.ShortMergePipe","i30.SpaceTrimPipe","i1.DialogConfig","i2.DialogRef","i5.SingleLineEditorComponent","i1.ResultCriteriaService","i6.AddSegmentPopupComponent","i3.ResultCriteriaService","i6.ToolTipDirective","i7.SettingAnonymousComponent","i8.SettingResponseSegmentComponent","i1.DialogRef","i2.DialogConfig","i5.InsertionDirective","i2.CsRadioComponentUI","i2.CsCheckboxComponentUI","i3.CsRadioComponentUI","QuickSettingsComponent","i3.CsSelectComponentUI","i4.QuickSettingsComponent","i1.CsSelectComponentUI","i1.EditorService","i2.ValidatorService","i5.PreviewMultipleChoiceComponent","i6.PreviewCheckboxComponent","i7.PreviewImageChoiceComponent","i8.PreviewStarRatingComponent","i9.PreviewSingleTextboxComponent","i10.PreviewCommentBoxComponent","i11.PreviewMatrixDropdownComponent","i12.PreviewDropdownComponent","i13.PreviewMatrixRatingScaleComponent","i14.PreviewRankingComponent","i15.PreviewSliderComponent","i16.PreviewMultipleTextboxComponent","i17.PreviewDateTimeComponent","i18.PreviewFileUploadComponent","i2.CsSwitchComponentUI","i3.ChoiceSettingsPanelComponent","DateTimeComponent","i6.CsSwitchComponent","i7.CsSwitchComponent","i1.DialogService","i4.NoDataComponent","i6.QuestionPageFilterPipe","i7.CsRadioComponent","i8.LogicMultipleChoiceComponent","i9.LogicCheckboxComponent","i10.LogicImageChoiceComponent","i11.LogicStarRatingComponent","i12.LogicSingleTextboxComponent","i13.LogicCommentBoxComponent","i14.LogicDropdownComponent","i15.LogicRankingComponent","i16.LogicSliderComponent","i17.LogicMultipleTextboxComponent","i18.LogicDateTimeComponent","i19.QuestionFilterPipe","i20.QuestionParserPipe","i6.TypeOfPipe","i1.ValidatorService","i4.MultipleChoiceComponent","i5.CheckboxComponent","i6.ImageChoiceComponent","i7.StarRatingComponent","i8.MatrixDropdownComponent","i9.DropdownComponent","i10.MatrixRatingScaleComponent","i11.RankingComponent","i12.SliderComponent","i13.MultipleTextboxComponent","i14.DateTimeComponent","i15.WeightageSelectorComponent","i16","i17.QuestionTypeComponent","i18.QuickSettingsComponent","i19.SingleLineEditorComponent","i20.ResponseSelectorComponent","i21.MoveComponent","i22.LogicComponent","i23.ErrorMessagePipe","i24.CurrentPageQuestionPipe","i2.EditorService","i7.PopoverComponent","i8.PopoverDirective","i9.PreviewWrapperComponent","i10.QuestionTypeComponent","i11.EditorWrapperComponent","i12.ToolkitComponent","i13.PageHeaderComponent","i14.WelcomeThankyouComponent","i1.ListUtilsService","i2.ProgramListApiService","i6.NoDataComponentUI","i9.TableLoaderComponent","i11.CheckSelectedItemsPipe","i9.FilterPipe","i7.FilterPipe","i8.ToolTipDirective","i10.FormatHtmlPipe","i3.CheckpointsQuestionsComponent","i4.CheckpointsListComponent","i5.CheckpointFloatingBarComponent","i3.SnackBarComponent","i4.FloatingBarComponent","i2.FrequencyTopComponent","i3.FrequencyLifecycleComponent","i4.FrequencyDueDateComponent","i5.FrequencyCheckboxListComponent","i5.FrequencyRadioListComponent","i9.FrequencyDueDateComponent","i4.FrequencyLifecycleComponent","i5.FrequencyDueDateComponent","i6.FrequencyRadioListComponent","i6.ResponsibilityCheckedPipe","i9.NoDataComponent","i12.FloatingBarComponent","i13.SubResponsibilityComponent","i14.AvatarV2Component","i7.TimePickerComponent","i8.FrequencyDueDateComponent","i9.FrequencyResponsibilityListComponent","i5.FrequencyDailyComponent","i6.FrequencyWeeklyComponent","i7.FrequencyMonthlyComponent","i8.FrequencyQuarterlyComponent","i9.FrequencyBiannualComponent","i10.FrequencyAnnualComponent","i11.FrequencyOneTimeComponent","i12.FrequencyRandomComponent","i13.FrequencyOnCompletionOfComponent","i14.FrequencyOngoingComponent","i4.FrameworkTableLoaderComponent","i6.FrameworkTableLoaderComponent","takeUntil","i3.NoDataComponent","i4.LoaderInlineComponent","i5.PaginationComponentUI","i7.FrameworkListTableComponent","i8.FrameworkResponsibilityTableComponent","AssessmentService","WelcomeComponent","i2.IsReadMorePipe","i5.DescriptionPreviewComponent","i6.QuickSettingsComponent","i7.DescriptionPreviewComponent","i3.QuickSettingsComponent","i4.DescriptionPreviewComponent","i2.QuickSettingsComponent","i3.DescriptionPreviewComponent","i3.IsReadMorePipe","i3.PreviewMatrixDropdownComponent","i4.WelcomeComponent","i5.CheckboxQuestionComponent","i6.DateTimeComponent","i7.DeviceComponent","i8.FileUploadComponent","i9.RadioQuestionComponent","i10.SelectQuestionComponent","i11.SingleTextboxComponent","i12.PageAssessmentHeaderComponent","i13.WelcomeComponent","i14.SectionDetailsComponent","i15.GetSectionOrderPipe","i2.AssessmentService","i4.CommonService","i10.PreviewComponent","i11.FloatingBarComponent","i12.WorkflowPaginationComponent","i13.AssessmentListLoaderComponent","i14.AssessmentListSubLoaderComponent","i3.FrequencyService","i5.SnackBarService","i6.ProgramsService","i7.GrcService","i8.OrganizationUserService","i9.ComplianceCommonService","i10.OrganizationCommonService","i11.IframeService","i13.CreateAssessmentContainerComponent","i15","i16.CsRadioComponent","i17.CsSwitchComponent","i18.CsSelectComponent","i19.ToolTipDirective","i20.PopoverComponent","i21.PopoverDirective","i22","i23.LoaderInlineComponent","i24.SmileyDialogInlineComponent","i25.ClickOutsideDirective","i26.UserGroupListComponent","i27.ResponsibilityCentersListComponent","i28.GroupUsersListComponent","i29.GrcObjectListComponent","i30.FormatAndEvidenceComponent","i31.ProgramListComponent","i32.OwnerListComponent","i33.UserRadioListComponent","i34.CategoryMultiSelectComponent","i35.CheckpointsComponent","i36.ReviewFrequencyComponent","i37.FrequencyContainerComponent","i38.FrameworkListComponent","i39.RiskClassificationComponent","i40.AuditCategoryListComponent","i41.AssessmentListComponent","i42.ListContainerComponent","i43.RefDisconnectPipe","i1.MultiSelectService","i1.CsMultiselectComponent","i1.TemplateService","i8.CsMultiselectComponent","i9.CsMultiselectOptionComponent","i10.FloatingBarComponent","i13.TemplateListTableComponent","i14.SearchByKeysPipe","i2.CheckpointsPolicyQuestionsComponent","i3.CheckpointFloatingBarComponent","i3.PolicyAPIService","i6.VuiFloatingBarComponent","i7.StopPropagationDirective","i4.UserGroupListComponent","i10.VuiFloatingBarComponent","i11.CheckboxListComponent","i12.SelectApproversComponent","i2.ApprovalWorkflowListComponent","i3.ApprovalCreateFormComponent","i1.RestApiService","i6.PopoverComponent","i7.PopoverDirective","i8.NoDataComponent","i10.CheckboxComponent","i11.PaginationComponent","i12.TooltipValidationPipe","i1.PolicyService","i9.PaginationComponent","i4.AuthService","i5.ResponsibilityService","i7.FrequencyService","i9.RestApiService","i10.CommonService","i11.OrganizationUserService","i12.OrganizationCommonService","i13.ComplianceCommonService","i14.IframeService","i17.CsRadioComponent","i18.CsSwitchComponent","i22.CsSelectComponent","i23.CsOptionComponent","i24","i25.LoaderInlineComponent","i29.SelectTemplateListComponent","i31.CheckboxListComponent","i32.ProgramListComponent","i33.OwnerListComponent","i34.UserRadioListComponent","i35.FrequencyContainerComponent","i36.CheckpointsPolicyContainerComponent","i37.DocumentSectionComponent","i38.AssessmentListComponent","i39.ApprovalWorkflowComponent","i40.PolicyAccessComponent","i41.LinkProgramComponent","i42.LinkRelatedPoliciesComponent","i43.ListContainerComponent","i1.PopoverHoverService","i4.PopoverHoverComponent","i5.PopoverHoverDirective","i3.SnackBarService","i4.FrequencyBulkService","i5.IframeService","i9.LineLoaderComponent","i10.SmileyDialogInlineComponent","i11.CategoryListComponent","i12.BulkViewComponent","i4.CsSelectComponent","i5.CsOptionComponent","i8.DataTypePipe","i9.ListMapperPipe","i5.ListLoaderComponent","i7.ArrayFilterPipe","i1.LogIssueService","i5.CommonService","i6.OrganizationUserService","i8.ComplianceCommonService","i9.IframeService","i13.CsRadioComponent","i14.CsSwitchComponent","i15.ToolTipDirective","i16.PopoverComponent","i17.PopoverDirective","i18.LineLoaderComponent","i19","i20.LoaderInlineComponent","i21.SmileyDialogInlineComponent","i22.ClickOutsideDirective","i24.TimePickerComponent","i25.CheckboxListComponent","i26.LinkResponsibilityListComponent","i27.RadioListComponent","i28.ResponsibilityRiskSelectorComponent","i29.SpaceBreakerPipe","i30.UserFilterPipe","i7.LinkTreatmentLoaderComponent","i1.AssessmentService","i6.Configurations","i10.CsSwitchComponent","i11.ToolTipDirective","i14.CsSelectComponent","i15.CsOptionComponent","i18.ClickOutsideDirective","i19.RadioListWithPaginationComponent","i20.UncategorizedFilterPipe","i3.IframeService","i5.CreateAssessmentContainerComponent","i7.LineLoaderComponent","i9.SmileyDialogInlineComponent","i2.TickMarkComponent","i2.ProgramsService","i6.SnackBarService","i9.CsRadioComponent","i10.ToolTipDirective","i11.PopoverComponent","i12.PopoverDirective","i13.LoaderInlineComponent","i14.SmileyDialogInlineComponent","i15.PopoverHoverComponent","i16.PopoverHoverDirective","i17.TabSelector","i18.FormFieldComponent","i19.InputWithPillComponent","i20.InputTrimDirective","i21.UserGroupListComponent","i22.CustomFieldComponent","i23.FrameworkListComponent","i24.ListToIdPipe","i25.RefDisconnectPipe","i26.AssessmentResolverPipe","i3.LoaderComponent","i11.BulkResponsibilityViewComponent","i3.BulkUploadService","i6.LineLoaderComponent","i7.SmileyDialogInlineComponent","i8.AddMultipleResponsibilityComponent","i9.AddMultipleResponsibilityWithTabComponent","i1.UiKitService","i4.OrganizationCommonService","i5.ReportACaseService","i6.ReportCasePermissionService","i8.ResponsibilityService","i12.SnackBarComponent","i13.GrcObjectContainerComponent","i14.WorkflowCaseComponent","i15.WorkflowRiskComponent","i16.WorkflowComplianceComponent","i17.WorkflowPolicyComponent","i18.MoreOptionComponent","i19.AddMultipleRiskComponent","i20.ConfirmationAlertComponent","i21.WorkflowSurveyFormComponent","i22.LogAnIssueComponent","i23.WorkflowAssessmentComponent","i24.ImportAnAssessmentComponent","i25.AssessmentListComponent","i26.WorkflowProgramComponent","i27.AddMultipleResponsibilityContainerComponent","i28.UserPipe","i9.WithinDataPipe","i3.CheckboxQuestionComponent","i4.DateTimeComponent","i5.FileUploadComponent","i6.RadioQuestionComponent","i7.SelectQuestionComponent","i8.SingleTextboxComponent","ThankYouComponent","i4.CsSwitchComponent","i5.CsCheckboxIndeterminateComponent","i8.LoaderComponent","i9.PaginationComponentUI","i7.CheckboxComponent","i8.VuiFloatingBarComponent","i9.LoaderComponent","i9.CsRadioComponentUI","i13.AssessmentLoaderComponent","i14.AssessmentSubLoaderComponent","i15.Pagination","i1.FrameworkService","i4.PaginationComponent","i7.CsRadioComponentUI","i8.CheckboxComponent","i9.VuiFloatingBarComponent","i10.LoaderFrameworkComponent","i11.PagerPipe","i12.CategoryAllSelectPipe","i13.SubCatIndeterPipe","i14.SearchNewPipe"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAKa,qBAAqB,CAAA;AAChC,IAAA,WAAA,GAAA,GAAgB;+GADL,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACJD,IAAY,gBAIX,CAAA;AAJD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,cAA8B,CAAA;AAC9B,IAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,gBAAkC,CAAA;AAClC,IAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,gBAAkC,CAAA;AACtC,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA;;MCEY,YAAY,CAAA;AAGrB,IAAA,WAAA,GAAA;QAFO,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;KAChB;+GAHR,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAHT,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAGT,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCEY,eAAe,CAAA;AAG1B,IAAA,WAAA,GAAA;AAFO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAQ,CAAC;AACtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;KAC3C;IAEhB,IAAI,CAAC,OAAe,EAAE,IAAgD,EAAA;AACpE,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,YAAA,IAAI,EAAE,IAAI;YACV,OAAO;AACP,YAAA,IAAI,EAAC,IAAI;AACV,SAAA,CAAC,CAAC;KACJ;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,IAAI,EAAE,EAAE;AACT,SAAA,CAAC,CAAC;KACJ;+GAnBU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCCY,mBAAmB,CAAA;AAE9B,IAAA,WAAA,GAAA,GAAiB;IAEjB,uBAAuB,GAAA;AACrB,QAAA,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACvC,YAAA,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;AACtC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,IAAE,IAAI,CAAC,CAAC,KAAK,CAAC;YAC7E,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAG,SAAS,EAAE,GAAG,EAAC;gBAChB,IAAG,SAAS,CAAC,IAAI,EAAC;oBAChB,IAAG;wBACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACnC,qBAAA;oBACD,MAAK;AACF,wBAAA,OAAO,IAAI,CAAC;AACd,qBAAA;AACF,iBAAA;AACF,aAAA;AAAI,iBAAA;AACH,gBAAA,OAAO,SAAS,CAAC,IAAI,IAAE,IAAI,CAAC;AAC7B,aAAA;AACF,SAAA;AAAI,aAAA;AACH,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;+GAxBU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCLY,cAAc,CAAA;AAGzB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAEF;;0BCIY,WAAW,CAAA;AAKtB,IAAA,WAAA,CAAoB,IAAgB,EAAS,OAA2B,EAAc,MAAuB,EAAA;QAAzF,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAAS,IAAO,CAAA,OAAA,GAAP,OAAO,CAAoB;AAFjE,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAGxD,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAE7B,SAAA;KACF;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACzD,QAAA,IAAI,UAAU,CAAC;AACf,QAAA,YAAY,IAAI,UAAU,GAAG,YAAY,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,SAAS,KAAK,KAAK,EAAE;YACvB,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACjD,OAAO,SAAS,CAAC,GAAG,CAAC;AACtB,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACX;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACzD,QAAA,IAAI,UAAU,CAAC;AACf,QAAA,YAAY,IAAI,UAAU,GAAG,YAAY,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,SAAS,KAAK,KAAK,EAAE;YACvB,IAAI,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC/C,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;AAC3D,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACX;IACD,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACnE,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;AAClC,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;AAC/B,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IACD,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC;AACjC,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC;AAC9B,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,YAAY,GAAA;AACV,QAAA,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACtD,QAAA,IAAI,SAAS,EAAE;YACb,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACzD,YAAA,IAAI,UAAU,CAAC;AACf,YAAA,YAAY,IAAI,UAAU,GAAG,YAAY,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,SAAS,KAAK,IAAI,EAAE;AACtB,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YACD,IAAI,SAAS,KAAK,KAAK,EAAE;AACvB,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,SAAS,GAAA;AACP,QAAA,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACtD,QAAA,IAAI,SAAS,EAAE;YACb,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACzD,YAAA,IAAI,UAAU,CAAC;AACf,YAAA,YAAY,IAAI,UAAU,GAAG,YAAY,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACjD,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;AAC/C,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACX;IAED,qBAAqB,GAAA;QACnB,IAAI;AACF,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACvB,MAAM,EAAE,GAAkB,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC9D,gBAAA,IAAI,EAAE,EAAE;oBACN,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AACxC,oBAAA,OAAO,UAAU,CAAC;AACnB,iBAAA;AACD,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;AACD,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAAC,OAAO,GAAG,EAAE,GAAE;AAChB,QAAA,OAAO,EAAE,CAAC;KACX;IAED,eAAe,GAAA;QACb,IAAI;AACF,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,gBAAA,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACtC,MAAM,EAAE,GAAkB,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC9D,gBAAA,IAAI,EAAE,EAAE;oBACN,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;oBACxC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;oBACxD,OAAO,QAAQ,EAAE,QAAQ,CAAC;AAC3B,iBAAA;AACD,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;AACD,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAAC,OAAO,GAAG,EAAE,GAAE;AAChB,QAAA,OAAO,EAAE,CAAC;KACX;IAED,iBAAiB,GAAA;QACf,IAAI;AACF,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,gBAAA,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACtC,MAAM,EAAE,GAAkB,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC9D,gBAAA,IAAI,EAAE,EAAE;oBACN,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;oBACxC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;oBACxD,OAAO,QAAQ,CAAC,eAAe,CAAC;AACjC,iBAAA;gBACD,OAAO,CAAC,CAAC,CAAC;AACX,aAAA;YACD,OAAO,CAAC,CAAC,CAAC;AACX,SAAA;QAAC,OAAO,GAAG,EAAE,GAAE;QAChB,OAAO,CAAC,CAAC,CAAC;KACX;IAED,WAAW,GAAA;QACT,IAAI;AACF,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,gBAAA,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACtC,MAAM,EAAE,GAAkB,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC9D,gBAAA,IAAI,EAAE,EAAE;oBACN,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;oBACxC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;oBACxD,OAAO,QAAQ,EAAE,EAAE,CAAC;AACrB,iBAAA;gBACD,OAAO,CAAC,CAAC,CAAC;AACX,aAAA;YACD,OAAO,CAAC,CAAC,CAAC;AACX,SAAA;QAAC,OAAO,GAAG,EAAE,GAAE;QAChB,OAAO,CAAC,CAAC,CAAC;KACX;IAED,MAAM,GAAA;QACJ,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,YAAY,IAAI,IAAI,EAAE;AACxB,YAAA,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AAClD,YAAA,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACxC,SAAA;KACF;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,SAAS,KAAK,IAAI,EAAE;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;YAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACpD,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,UAAU,GAAA;AACR,QAAA,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACtD,QAAA,IAAI,SAAS,EAAE;YACb,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;YAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,SAAS,KAAK,KAAK,EAAE;AACvB,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;YACD,IAAI,SAAS,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,aAAA;YACD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,wBAAwB,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7G,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,wBAAwB,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7G,QAAA,OAAO,KAAK,CAAC;KACd;IAED,sBAAsB,GAAA;AACpB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC7E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1H;IAED,WAAW,GAAA;AACT,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC7E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3G;IAED,sBAAsB,GAAA;AACpB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAClG;AAED,IAAA,yBAAyB,CAAC,SAA0B,EAAA;AAClD,QAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,IAAE,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxG,YAAA,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/F,YAAA,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;AAC9D,gBAAA,OAAO,GAAG,CAAC;AACZ,aAAA;AAAM,iBAAA;gBACL,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC7C,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,MAAM,EAAE,SAAS;AAClB,iBAAA,CAAC,CAAC;AACH,gBAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;gBAE7D,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC7C,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA,CAAC,CAAC;AAEH,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5D,gBAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;AACpC,gBAAA,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACzC,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnC,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAEhC,gBAAA,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;;AAGjE,gBAAA,OAAO,QAAQ,CAAC;AACjB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACX;+GAhQU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEPC,aAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAM4E,QAAQ;;;MCPxE,yBAAyB,CAAA;AASpC,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAV1B,QAAA,IAAA,CAAA,OAAO,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,UAAU,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,gBAAgB,GAAyB,IAAI,eAAe,CAClE,IAAI,CACL,CAAC;AASA,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;AAC9B,SAAA;KACF;IAEO,WAAW,GAAA;AACjB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,CAC1C,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;cACZ,GAAG,CACH,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,EACpE,EAAE,OAAO,EAAE,CACZ;aACA,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EACnC,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;AAChE,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACjB,CAAC,CACH,CAAC;KACL;AAEO,IAAA,WAAW,CAAC,IAAS,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,OAAO,IAAI,CAAC;KACb;IAEM,cAAc,GAAA;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC9C,QAAA,IAAI,YAAY,EAAE;YAChB,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;KAC3B;IAEO,aAAa,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACd,cAAE,GAAG,CACH,IAAI,CAAC,GAAG,EAAE,eAAe;YACvB,gBAAgB;YAChB,IAAI,CAAC,WAAW,EAAE,iBAAiB,EAAE,EACvC,EAAE,OAAO,EAAE,CACZ;aACA,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EACrC,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;AAC1D,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACjB,CAAC,CACH,CAAC;KACL;AAEO,IAAA,aAAa,CAAC,IAAS,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,OAAO,IAAI,CAAC;KACb;IAEM,iBAAiB,GAAA;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;AACjD,QAAA,IAAI,YAAY,EAAE;YAChB,OAAO,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;KAC7B;IAEO,sBAAsB,GAAA;AAC5B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,CAC1C,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC;aAChE,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAC9C,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;AAC5D,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACjB,CAAC,CACH,CAAC;KACL;AAEO,IAAA,sBAAsB,CAAC,IAAS,EAAA;AACtC,QAAA,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC;KACb;IAEM,0BAA0B,GAAA;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AACvD,QAAA,IAAI,YAAY,EAAE;YAChB,OAAO,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACtC;+GAhHU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAaI,QAAQ;;;ACrBN,MAAMG,UAAQ,GAAG;AACpB,IAAA,aAAa,EAAE,CAAuB,qBAAA,CAAA;AACtC,IAAA,kBAAkB,EAAE,CAA2B,yBAAA,CAAA;AAC/C,IAAA,kBAAkB,EAAE,CAA2B,yBAAA,CAAA;AAC/C,IAAA,iBAAiB,EAAE,CAAc,YAAA,CAAA;AACjC,IAAA,eAAe,EAAE,CAAkD,gDAAA,CAAA;AACnE,IAAA,oBAAoB,EAAE,CAAkB,gBAAA,CAAA;AACxC,IAAA,sBAAsB,EAAE,CAAiB,eAAA,CAAA;CAC5C;;ACRM,MAAM,WAAW,GAAG;AACzB,IAAA,SAAS,EAAE,CAAqB,mBAAA,CAAA;AAChC,IAAA,WAAW,EAAE,CAAe,aAAA,CAAA;AAC5B,IAAA,QAAQ,EAAE,CAA+B,6BAAA,CAAA;AACzC,IAAA,YAAY,EAAE,CAA4B,0BAAA,CAAA;AAC1C,IAAA,eAAe,EAAE,CAAiD,+CAAA,CAAA;AAClE,IAAA,YAAY,EAAE;AACZ,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,CAAW,SAAA,CAAA;AAClB,YAAA,WAAW,EAAE,CAA6B,2BAAA,CAAA;AAC3C,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,KAAK,EAAE,CAAa,WAAA,CAAA;AACpB,YAAA,WAAW,EAAE,CAAkC,gCAAA,CAAA;AAChD,SAAA;AACD,QAAA,EAAE,EAAE;AACF,YAAA,KAAK,EAAE,CAAuB,qBAAA,CAAA;AAC9B,YAAA,WAAW,EAAE,CAAwD,sDAAA,CAAA;AACrE,YAAA,YAAY,EAAE,CAAgC,8BAAA,CAAA;AAC9C,YAAA,UAAU,EAAE,CAAiC,+BAAA,CAAA;AAC7C,YAAA,iBAAiB,EAAE,CAAuC,qCAAA,CAAA;AAC1D,YAAA,cAAc,EAAE,CAAsD,oDAAA,CAAA;AACtE,YAAA,iBAAiB,EAAE,CAA6E,2EAAA,CAAA;AAChG,YAAA,UAAU,EAAE,CAAuD,qDAAA,CAAA;AACnE,YAAA,aAAa,EAAE,CAA0E,wEAAA,CAAA;AAC1F,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,KAAK,EAAE,CAAW,SAAA,CAAA;AAClB,YAAA,WAAW,EAAE,CAAoB,kBAAA,CAAA;AAClC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,CAAe,aAAA,CAAA;AACtB,YAAA,WAAW,EAAE,CAAwB,sBAAA,CAAA;AACtC,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,KAAK,EAAE,CAAiD,+CAAA,CAAA;AACxD,YAAA,WAAW,EAAE,CAAwB,sBAAA,CAAA;AACtC,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,CAAsB,oBAAA,CAAA;AAC7B,YAAA,WAAW,EAAE,CAAe,aAAA,CAAA;AAC7B,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,CAAe,aAAA,CAAA;AACtB,YAAA,WAAW,EAAE,CAAwB,sBAAA,CAAA;AACtC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,KAAK,EAAE,CAA6B,2BAAA,CAAA;AACpC,YAAA,WAAW,EAAE,CAAiB,eAAA,CAAA;AAC/B,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,CAAsC,oCAAA,CAAA;AAC7C,YAAA,WAAW,EAAE,CAAW,SAAA,CAAA;AACxB,YAAA,oBAAoB,EAAE,CAAmB,iBAAA,CAAA;AACzC,YAAA,YAAY,EACV,0FAA0F;AAC5F,YAAA,QAAQ,EAAE,CAAyH,uHAAA,CAAA;AACpI,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,KAAK,EAAE,CAAkB,gBAAA,CAAA;AACzB,YAAA,WAAW,EAAE,CAAyB,uBAAA,CAAA;AACtC,YAAA,QAAQ,EAAE,CAAsJ,oJAAA,CAAA;AACjK,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,CAAe,aAAA,CAAA;AACtB,YAAA,WAAW,EAAE,CAAsB,oBAAA,CAAA;AACnC,YAAA,QAAQ,EAAE,CAAyK,uKAAA,CAAA;AACnL,YAAA,YAAY,EACV,qGAAqG;AACxG,SAAA;AACF,KAAA;AACD,IAAA,cAAc,EAAE;AACd,QAAA,WAAW,EAAE,CAAkL,gLAAA,CAAA;AAC/L,QAAA,QAAQ,EAAE,CAA2K,yKAAA,CAAA;AACrL,QAAA,eAAe,EAAE,CAA2G,yGAAA,CAAA;AAC5H,QAAA,EAAE,EAAE,CAA8O,4OAAA,CAAA;AAClP,QAAA,QAAQ,EAAE,CAA2O,yOAAA,CAAA;AACtP,KAAA;AACD,IAAA,YAAY,EAAE;AACZ,QAAA,EAAE,EAAE,CAAiC,+BAAA,CAAA;AACrC,QAAA,IAAI,EAAE,CAA6B,2BAAA,CAAA;AACnC,QAAA,WAAW,EAAE,CAAkC,gCAAA,CAAA;AAC/C,QAAA,QAAQ,EAAE,CAAuB,qBAAA,CAAA;AACjC,QAAA,UAAU,EAAE,CAA8C,4CAAA,CAAA;AAC1D,QAAA,QAAQ,EAAE,CAA4B,0BAAA,CAAA;AACtC,QAAA,MAAM,EAAE,CAAsC,oCAAA,CAAA;AAC9C,QAAA,SAAS,EAAE,CAAsB,oBAAA,CAAA;AACjC,QAAA,YAAY,EAAE,CAAyB,uBAAA,CAAA;AACvC,QAAA,OAAO,EAAE,CAAqD,mDAAA,CAAA;AAC9D,QAAA,aAAa,EAAE,CAAyC,uCAAA,CAAA;AACxD,QAAA,sBAAsB,EAAE,CAAqD,mDAAA,CAAA;AAC9E,KAAA;CACF,CAAC;AAEK,MAAM,mBAAmB,GAAG;AACjC,IAAA,WAAW,EAAE,6BAA6B;AAC1C,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,yBAAyB,EAAE,KAAK;AAChC,IAAA,0BAA0B,EAAE,EAAE;AAC9B,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,IAAYC,gBAIX,CAAA;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAJWA,gBAAc,KAAdA,gBAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,mBAGX,CAAA;AAHD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,mBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACvC,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,WAGX,CAAA;AAHD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,WAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACX,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAEM,MAAM,mBAAmB,GAAQ;AACtC,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,WAAW,EAAE,EAAE;AAChB,KAAA;AACD,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,UAAU,EAAE;AACV,QAAA,GAAG,EAAE,EAAE;AACR,KAAA;AACD,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,SAAS,EAAE;AACT,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,aAAa,EAAE,EAAE;AAClB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,aAAa,EAAE,EAAE;AAClB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,aAAa,EAAE,EAAE;AAClB,KAAA;AACD,IAAA,oBAAoB,EAAE,EAAE;AACxB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,uBAAuB,EAAE,EAAE;AAC3B,IAAA,wBAAwB,EAAE;AACxB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,UAAU,EAAE,CAAC;AACd,KAAA;AACD,IAAA,MAAM,EAAE,EAAE;CACX,CAAC;AAEK,MAAM,oBAAoB,GAAG;AAClC,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,WAAW,EAAE,EAAE;AAChB,KAAA;AACD,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,UAAU,EAAE;AACV,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,iBAAiB,EAAE,KAAK;AACxB,QAAA,UAAU,EAAE,EAAE;AACf,KAAA;AACD,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,SAAS,EAAE;AACT,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,aAAa,EAAE,EAAE;AAClB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,aAAa,EAAE,EAAE;AAClB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,aAAa,EAAE,EAAE;AAClB,KAAA;AACD,IAAA,mBAAmB,EAAE;AACnB,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,aAAa,EAAE,EAAE;AAClB,KAAA;AACD,IAAA,oBAAoB,EAAE,EAAE;AACxB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,cAAc,EAAE;AACd,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,SAAS,EAAE,EAAE;AACb,QAAA,eAAe,EAAE,EAAE;AACnB,QAAA,mBAAmB,EAAE;AACnB,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,mBAAmB,EAAE,CAAC;AACvB,SAAA;AACD,QAAA,cAAc,EAAE,EAAE;AAClB,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,WAAW,EAAE,EAAE;AAChB,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,eAAe,EAAE,EAAE;AACpB,SAAA;AACD,QAAA,gBAAgB,EAAE,KAAK;AACvB,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,WAAW,EAAE,EAAE;AAChB,SAAA;AACF,KAAA;AACD,IAAA,uBAAuB,EAAE,EAAE;AAC3B,IAAA,wBAAwB,EAAE;AACxB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,UAAU,EAAE,CAAC;AACd,KAAA;AACD,IAAA,MAAM,EAAE,EAAE;CACX,CAAC;AAEK,MAAM,uBAAuB,GAAG;AACrC,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,mBAAmB,EAAE;AACnB,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,gBAAgB,EAAE,EAAE;AACpB,QAAA,sBAAsB,EAAE,CAAC;AACzB,QAAA,mBAAmB,EAAE,CAAC;AACvB,KAAA;AACD,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,gBAAgB,EAAE;AAChB,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,WAAW,EAAE,EAAE;AAChB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,eAAe,EAAE,EAAE;AACpB,KAAA;AACD,IAAA,gBAAgB,EAAE,KAAK;AACvB,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,WAAW,EAAE,EAAE;AAChB,KAAA;CACF,CAAC;AAEK,MAAM,cAAc,GAAG;AAC5B,IAAA,gBAAgB,EAAE,kBAAkB;AACpC,IAAA,uBAAuB,EAAE,yBAAyB;CACnD,CAAC;AAEK,MAAM,eAAe,GAAG;AAC7B,IAAA,aAAa,EAAE;AACb,QAAA,UAAU,EAAE,wBAAwB;AACpC,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,YAAY,EAAE,sBAAsB;AACpC,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,iBAAiB,EAAE,yBAAyB;AAC5C,QAAA,UAAU,EAAE,2BAA2B;AACxC,KAAA;CACF,CAAC;AAEK,MAAM,yBAAyB,GAAG;AACvC,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,oBAAoB,EAAE,eAAe;AACrC,IAAA,iBAAiB,EAAE,aAAa;AAChC,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,UAAU,EAAE,gBAAgB;CAC7B,CAAC;AAEK,MAAM,WAAW,GAAG;AACzB,IAAA,iBAAiB,EAAE,CAA8G,4GAAA,CAAA;AACjI,IAAA,QAAQ,EAAE,CAAiJ,+IAAA,CAAA;AAC3J,IAAA,QAAQ,EAAE,CAAyD,uDAAA,CAAA;CACpE,CAAC;AAEK,MAAM,uBAAuB,GAAG;AACrC,IAAA,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtB,IAAA,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACrB,IAAA,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACpB,IAAA,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CACrB,CAAC;AAEK,MAAM,sBAAsB,GAAG;IACpC,eAAe;IACf,SAAS;IACT,SAAS;IACT,UAAU;CACX,CAAC;AAEK,MAAM,mBAAmB,GAAG;IACjC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;IACvC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;IAClD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;IACpD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;CAC1C,CAAC;AAEK,MAAM,wBAAwB,GAAG;AACtC,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,gBAAgB,EAAE,KAAK;AACvB,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,mBAAmB,EAAE,KAAK;AAC1B,IAAA,mBAAmB,EAAE,KAAK;CAC3B,CAAC;AAEK,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACrC,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5C,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3C,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACzC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACzC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACnC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACvC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1C,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IAC7C,sBAAsB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;CACxD,CAAC;AAEK,MAAM,cAAc,GAAG;IAC5B,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE;IACxE,EAAE,UAAU,EAAE,qBAAqB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE;CAC3E,CAAC;AAEK,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEzC,MAAM,oBAAoB,GAAG;AAClC,IAAA,WAAW,EAAE,0BAA0B;IACvC,MAAM,EAAE,CAAC,0BAA0B,CAAC;AACpC,IAAA,SAAS,EAAE;QACT,0BAA0B;QAC1B,0BAA0B;QAC1B,0BAA0B;QAC1B,0BAA0B;AAC3B,KAAA;AACD,IAAA,eAAe,EAAE;QACf,0BAA0B;QAC1B,0BAA0B;QAC1B,0BAA0B;AAC3B,KAAA;AACD,IAAA,mBAAmB,EAAE;AACnB,QAAA,QAAQ,EAAE,0BAA0B;AACpC,QAAA,gBAAgB,EAAE;AAChB,YAAA;AACE,gBAAA,QAAQ,EAAE,0BAA0B;AACpC,gBAAA,WAAW,EAAE,0BAA0B;AACvC,gBAAA,QAAQ,EAAE,0BAA0B;AACrC,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,0BAA0B;AACpC,gBAAA,WAAW,EAAE,0BAA0B;AACvC,gBAAA,QAAQ,EAAE,0BAA0B;AACrC,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,0BAA0B;AACpC,gBAAA,WAAW,EAAE,0BAA0B;AACvC,gBAAA,QAAQ,EAAE,0BAA0B;AACrC,aAAA;AACF,SAAA;AACD,QAAA,sBAAsB,EAAE,CAAC;AACzB,QAAA,mBAAmB,EAAE,EAAE;AACxB,KAAA;AACD,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,gBAAgB,EAAE;AAChB,QAAA,IAAI,EAAE,mFAAmF;AACzF,QAAA,WAAW,EAAE,EAAE;AAChB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,MAAM,EAAE,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;AAChE,QAAA,eAAe,EAAE,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;AAC1E,KAAA;AACD,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,oCAAoC;AAC1C,QAAA,WAAW,EAAE,EAAE;AAChB,KAAA;CACF,CAAC;AAEK,MAAM,eAAe,GAAG;AAC7B,IAAA,cAAc,EAAE,CAAC;AACjB,IAAA,yBAAyB,EAAE,CAAC;CAC7B,CAAC;AAEK,MAAM,cAAc,GAAG;IAC5B,UAAU;IACV,IAAI;IACJ,oBAAoB;IACpB,SAAS;IACT,UAAU;IACV,YAAY;IACZ,eAAe;IACf,0BAA0B;IAC1B,0BAA0B;CAC3B,CAAC;AAEK,MAAMC,aAAW,GAAG;IACzB,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AAEK,MAAM,uCAAuC,GAClD,wHAAwH,CAAC;AAEpH,MAAM,iBAAiB,GAAG,mBAAmB;;MCnavC,kBAAkB,CAAA;AAgB7B,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAjB1B,QAAA,IAAA,CAAA,YAAY,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AACpE,QAAA,IAAA,CAAA,iBAAiB,GAAyB,IAAI,eAAe,CACnE,IAAI,CACL,CAAC;AACM,QAAA,IAAA,CAAA,iBAAiB,GAAyB,IAAI,eAAe,CACnE,IAAI,CACL,CAAC;AACM,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AACzD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;AACzC,QAAA,IAAA,CAAA,YAAY,GAAoB,IAAI,OAAO,EAAU,CAAC;AACtD,QAAA,IAAA,CAAA,eAAe,GAAqB,IAAI,OAAO,EAAW,CAAC;AAC3D,QAAA,IAAA,CAAA,cAAc,GAA6B,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AASpF,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;KAC9B;IAEO,aAAa,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,CAC1C,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAGF,UAAQ,CAAC,aAAa,EAAE;YAC3C,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CACHG,KAAG,CAAC,CAAC,GAAQ,KAAI;AACf,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,YAAA,OAAO,GAAG,CAAC;SACZ,CAAC,CACH,CAAC;KACL;IAEO,kBAAkB,GAAA;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,CAC1C,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAGH,UAAQ,CAAC,kBAAkB,EAAE;YAChD,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CACHG,KAAG,CAAC,CAAC,GAAQ,KAAI;AACf,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,EACFC,YAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrB,YAAA,OAAO,KAAK,CAAC;SACd,CAAC,CACH,CAAC;KACL;IAEO,kBAAkB,GAAA;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,CAC1C,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAGJ,UAAQ,CAAC,kBAAkB,EAAE;YAChD,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CACHG,KAAG,CAAC,CAAC,GAAQ,KAAI;AACf,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC,YAAA,OAAO,GAAG,CAAC;SACZ,CAAC,CACH,CAAC;KACL;IAEM,gBAAgB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE;YACtC,OAAO,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAClC;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE;YACjC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;KAC7B;IAEM,gBAAgB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE;YACtC,OAAO,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAClC;AAED,IAAA,WAAW,CAAC,OAAY,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,gBAAgB,CAAC;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,YAAY,EAAE,OAAO,EAAE;YAChD,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,iBAAiB,CAAC,OAAY,EAAA;AACnC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,CAAC,IAAI,GAAGH,UAAQ,CAAC,oBAAoB,EAAE,OAAO,EAAE;YACjF,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;IAEM,UAAU,CAAC,OAAY,EAAE,MAAc,EAAA;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,EAAE,OAAO,EAAE;YAC/D,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;IAED,kBAAkB,CAAC,MAAW,EAAE,WAAoB,EAAA;AAClD,QAAA,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;AACjC,QAAA,IAAI,WAAW,EAAE;YACf,UAAU,CAAC,WAAW,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;AAC9C,SAAA;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;;AAG3C,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;aAC9B,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;AACtD,aAAA,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA,EAAGA,UAAQ,CAAC,iBAAiB,CAAG,EAAA,WAAW,GAAG,iBAAiB,GAAG,EAAE,CAAA,CAAE,CAAC;QAEnG,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,GAAG,EAAE;YACR,OAAO;SACR,CAAC;AACD,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;KACN;AAED,IAAA,aAAa,CAAC,WAAmB,EAAA;AAC/B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,eAAe,GAAGA,UAAQ,CAAC,eAAe,GAAG,WAAW,EACjE;YACE,OAAO;AACR,SAAA,CACF,CAAC;KACH;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,EAAE;YACjD,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAGA,UAAQ,CAAC,sBAAsB,GAAG,MAAM,EACxD;YACE,OAAO;AACR,SAAA,CACF,CAAC;KACH;+GA7LU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAoBI,QAAQ;;;MCnBA,UAAU,CAAA;IAOrB,WACU,CAAA,WAAwB,EACpB,MAAuB,EAAA;QAD3B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAL3B,QAAA,IAAA,CAAA,iBAAiB,GAAgC,IAAI,eAAe,CAEzE,IAAI,CAAC,CAAC;AAMN,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;;IAGM,cAAc,GAAA;QACnB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;AACrD,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;+GAtBU,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAQ,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAUI,QAAQ;;;MCdA,WAAW,CAAA;AAGtB,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAF1C,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;KAEwB;AAE9C;;;;;;;;;;;;;;AAcG;AACI,IAAA,kBAAkB,CACvB,MASU,EAAA;AAEV,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,SAAA;AACD,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CACvC,CAAC,IAAS,KAAK,IAAI,EAAE,UAAU,KAAK,MAAM,CAC3C,CAAC;QACF,MAAM,gBAAgB,GAAa,EAAE,CAAC;;QAGtC,IAAI,iBAAiB,EAAE,QAAQ,EAAE;;AAE/B,YAAA,iBAAiB,CAAC,SAAS;kBACvB,MAAM,CAAC,CAAC,SAAc,KAAK,SAAS,CAAC,QAAQ,CAAC;AAC/C,iBAAA,OAAO,CAAC,CAAC,SAAc,KAAI;;AAE1B,gBAAA,SAAS,CAAC,WAAW;sBACjB,MAAM,CAAC,CAAC,UAAe,KAAK,UAAU,CAAC,MAAM,CAAC;AAC/C,qBAAA,OAAO,CAAC,CAAC,UAAe,KAAI;AAC3B,oBAAA,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACzC,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC;AAC5C,QAAA,OAAO,gBAAgB,CAAC;KACzB;AAED,IAAA,WAAW,CACT,MASU,EAAA;AAEV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAC3C,GAAG,CAAC,CAAC,IAAI,KAAI;YACX,IAAI,IAAI,EAAE,WAAW,EAAE;AACrB,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;AAC7B,gBAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACxC,aAAA;AACD,YAAA,OAAO,EAAE,CAAC;SACX,CAAC,CACH,CAAC;KACH;+GAhFU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCGY,WAAW,CAAA;AAgBtB,IAAA,WAAA,CACU,IAAgB,EAChB,UAA6B,EAC7B,yBAAoD,EAChD,MAAuB,EAAA;QAH3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QAC7B,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA2B;AAlBvD,QAAA,IAAA,CAAA,mBAAmB,GAA2B,IAAI,eAAe,CAEtE,EAAE,CAAC,CAAC;AACC,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;QAExE,IAAW,CAAA,WAAA,GAAM,EAAE,CAAC;QAgBlB,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;KAC9B;IACD,aAAa,GAAA;AACX,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAO,KAAK,GAAG,CAAC,UAAU,KAAK,YAAY,CAAC,CAAA;AAC1G,QAAA,IAAG,oBAAoB,EAAE,MAAM,GAAG,CAAC,EAAC;AAClC,YAAA,MAAM,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,YAAY,GAAO,EAAE,CAAA;YAC3B,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAO,KAAG;gBAEtC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAa,KAAG;oBAGvC,QAAO,SAAS,EAAE,IAAI;wBACpB,KAAK,QAAS,EAAE;4BAGC,IAAG,SAAS,EAAE,iBAAiB,IAAE,CAAC,IAAI,SAAS,EAAE,MAAM,IAAE,CAAC,EAAC;AAAC,gCAAA,YAAY,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;AAAC,6BAAA;4BAAA,CAAC;4BAC1G,MAAM;AACN,yBAAA;wBACjB,KAAK,QAAS,EAAE;AACA,4BAAA,IAAI,SAAS,EAAE,iBAAiB,IAAI,SAAS,EAAE,MAAM,EAAC;AAAE,gCAAA,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;AAAC,6BAAA;4BAAA,CAAC;4BACvG,MAAM;AACN,yBAAA;wBACjB,KAAK,MAAO,EAAE;AACI,4BAAA,IAAG,SAAS,EAAE,iBAAiB,IAAI,SAAS,EAAE,MAAM,EAAC;AAAE,gCAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;AAAC,6BAAA;4BAAA,CAAC;4BAC9F,MAAM;AACN,yBAAA;wBAClB,KAAK,MAAQ,EAAC;AACE,4BAAA,IAAG,SAAS,EAAE,iBAAiB,IAAI,SAAS,EAAE,MAAM,EAAC;AAAE,gCAAA,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;AAAC,6BAAA;4BAAA,CAAC;4BAChG,MAAM;AACN,yBAAA;AAEjB,qBAAA;AACH,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAC,CAAA;AAEF,YAAA,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;AACjC,SAAA;KACF;AAED;;;AAGE;IACF,QAAQ,GAAA;QACN,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACrC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;gBACpC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED;;;AAGE;IACF,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;AACxG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAO,KAAI;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAU,CAAC,CAAC;AAElC,YAAA,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE,WAAW,CAAE;YAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CACjB,CAAC,IAAI,CAACC,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACpB;IAED,sBAAsB,GAAA;QACpB,OAAO,IAAI,CAAC,yBAAyB;AACnC,cAAE,0BAA0B,EAAE;AAC9B,cAAE,SAAS,CAAC;AACV,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAU,CAAC,CAAC;aAC5C;AACD,YAAA,KAAK,EAAE,CAAC,KAAY,KAAI;AACtB,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;AACF,SAAA,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE;AAChC,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE;AACpC,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE;AACtC,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;KACF;IACD,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;KACzB;AACD,IAAA,yBAAyB,CAAC,SAA0B,EAAA;AAClD,QAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAE,EAAE,CAAC;YACrD,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxG,YAAA,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/F,YAAA,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;AAC9D,gBAAA,OAAO,GAAG,CAAC;AACZ,aAAA;AAAM,iBAAA;gBACL,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC7C,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,MAAM,EAAE,SAAS;AAClB,iBAAA,CAAC,CAAC;AACH,gBAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;gBAE7D,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC7C,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA,CAAC,CAAC;AAEH,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5D,gBAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;AACpC,gBAAA,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACzC,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnC,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAEhC,gBAAA,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;;AAGjE,gBAAA,OAAO,QAAQ,CAAC;AACjB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACX;IACD,sBAAsB,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAS,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,2CAA2C,CAAC,CAAC,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnH;IAEA,MAAM,GAAA;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAE,EAAE,CAAC;KACvC;IAED,iBAAiB,GAAA;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACpG;IAED,QAAQ,GAAA;QACN,MAAM,QAAQ,GAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC5C,QAAA,OAAO,QAAQ,EAAE,eAAe,GAAG,QAAQ,CAAC,eAAe,GAAE,IAAI,CAAC;KACnE;IAED,kBAAkB,GAAA;AAChB,QAAA,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;KAC1C;+GA3KU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAqBI,QAAQ;;;MCrBA,2BAA2B,CAAA;IAKtC,WACU,CAAA,WAAwB,EACxB,WAAwB,EAAA;QADxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAL3B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAOzD,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE,CAAC;KACtC;IAED,0BAA0B,GAAA;AACxB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACjD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjD,OAAO,eAAe,IAAI,aAAa,CAAC;KACzC;IAED,iBAAiB,GAAA;QACf,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACtD,YAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAC5B,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAW,KAAI;;AAE7D,YAAA,IAAG,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,aAAA;AACI,iBAAA;AACH,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,aAAA;AACD,YAAA,OAAO,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,KAAK,CAAC;KACd;IAED,mBAAmB,GAAA;;AAEjB,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAW,KAAI;YAC7D,MAAM,aAAa,GAAG,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;KACJ;+GAjDU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAZ,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCFY,aAAa,CAAA;AACxB,IAAA,kBAAkB,CAAC,SAAiB,EAAE,IAAA,GAAgB,KAAK,EAAA;;AAEzD,QAAA,MAAM,UAAU,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;AAE5C,QAAA,IAAI,UAAU,EAAE;YACd,IAAI;;gBAEF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC;AACzC,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;;AAEV,gBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAClC,aAAA;AACD,YAAA,OAAO;AACR,SAAA;AAED,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC;AAClC,SAAA;KACF;AAEM,IAAA,WAAW,CAAC,OAAY,EAAA;AAC7B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;KAClD;IAEO,SAAS,GAAA;AACf,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC/B;IAEM,sBAAsB,CAAC,KAAa,EAAE,IAAS,EAAA;QACpD,OAAO;AACL,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE;SAClB,CAAC;KACH;+GAnCU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCOY,UAAU,CAAA;AAEE,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG;AACrC,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,EAAE,EAAE,iBAAiB;AACrB,QAAA,WAAW,EAAE,uCAAuC;KACrD,CAAC,EAAA;AA6CF,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AA9ClB,QAAA,IAAA,CAAA,WAAW,GAAW;AACpC,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,6BAA6B,EAAE,EAAE;AACjC,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,oBAAoB,EAAE,EAAE;AACxB,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,cAAc,EAAE,EAAE;SACnB,CAAC;AAEc,QAAA,IAAA,CAAA,WAAW,GAAe;AACxC,YAAA,EAAE,EAAE;AACF,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,WAAW,EAAE,EAAE;AAChB,aAAA;AACD,YAAA,iBAAiB,EAAE;AACjB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;AACD,YAAA,sBAAsB,EAAE;AACtB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;SACF,CAAC;AAMA,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;IAED,sBAAsB,CAAC,MAAc,EAAE,KAAa,EAAA;AAClD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC9C,QAAA,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc;AACjD,cAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBACtE,GAAG;AACH,gBAAA,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;cACtE,EAAE,CAAC;AAEP,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;aAC9B,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;AACtD,aAAA,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAA,wCAAA,EAA2C,KAAK,CAAE,CAAA,EAC3E,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAED,IAAA,UAAU,CAAC,KAAW,EAAA;AACpB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;AACnD,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;AACpD,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;AACnD,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,GAAG,KAAK,EAAE,YAAY;AAC1B,cAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC;cAChD,MAAM,CAAC;QACX,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,EAAE;YAChD,MAAM;YACN,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CAACS,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,eAAe,CAAC,KAAW,EAAA;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,KAAK,EAAE,YAAY;AAC1B,cAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC;cAChD,MAAM,CAAC;QACX,IAAI,KAAK,EAAE,MAAM,EAAE;YACjB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAChD,SAAA;QACD,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,EAAE;YACjD,MAAM;YACN,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAEM,eAAe,CAAC,UAAkB,EAAE,oBAA6B,EAAA;QACtE,MAAM,WAAW,GACf,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;AAC7B,YAAA,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;YACpB,UAAU,CAAC,MAAM,CAAC,MAAM;AACxB,YAAA,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAC3B,QAAA,QACE,WAAW;AACX,aAAC,CAAC,oBAAoB;gBACpB,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EACvD;KACH;AAED,IAAA,wBAAwB,CAAC,UAA+B,EAAA;AACtD,QAAA,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;YAC5B,IAAI,GAAG,CAAC,UAAU,EAAE;gBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE;oBAC7D,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,oBAAA,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAClE,wBAAA,OAAO,KAAK,CAAC;AACd,qBAAA;AACF,iBAAA;qBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;oBAC7D,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAC7B,oBAAA,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,EAAE,iBAAiB,EAAE;wBAC1C,gBAAgB,GAAG,IAAI,CAAC;AACzB,qBAAA;oBACD,IAAI,CAAC,gBAAgB,EAAE;AACrB,wBAAA,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;4BAChC,IAAI,MAAM,CAAC,WAAW,EAAE;gCACtB,gBAAgB,GAAG,IAAI,CAAC;gCACxB,MAAM;AACP,6BAAA;AACF,yBAAA;AACF,qBAAA;oBAED,IAAI,CAAC,gBAAgB,EAAE;AACrB,wBAAA,OAAO,KAAK,CAAC;AACd,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,uBAAuB,CAAC,UAA+B,EAAA;AACrD,QAAA,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;YAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE;gBAC7D,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,gBAAA,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAClE,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AACF,aAAA;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC7D,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAC7B,gBAAA,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;oBAChC,IAAI,MAAM,CAAC,WAAW,EAAE;wBACtB,gBAAgB,GAAG,IAAI,CAAC;wBACxB,MAAM;AACP,qBAAA;AACF,iBAAA;gBACD,IAAI,CAAC,gBAAgB,EAAE;AACrB,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,4BAA4B,CAAC,SAA4B,EAAA;QACvD,IAAI,SAAS,CAAC,UAAU,EAAE;AACxB,YAAA,IACE,SAAS,CAAC,IAAI,KAAK,gBAAgB;AACnC,gBAAA,SAAS,CAAC,IAAI,KAAK,WAAW,EAC9B;gBACA,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpC,gBAAA,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAClE,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AACF,aAAA;AAAM,iBAAA,IACL,SAAS,CAAC,IAAI,KAAK,UAAU;AAC7B,gBAAA,SAAS,CAAC,IAAI,KAAK,UAAU,EAC7B;gBACA,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAC7B,gBAAA,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE;oBACtC,IAAI,MAAM,CAAC,WAAW,EAAE;wBACtB,gBAAgB,GAAG,IAAI,CAAC;wBACxB,MAAM;AACP,qBAAA;AACF,iBAAA;gBACD,IAAI,CAAC,gBAAgB,EAAE;AACrB,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACD,IAAA,iBAAiB,CAAC,KAAW,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACxC,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;AACzD,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QACnD,MAAM,GAAG,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;QACnE,MAAM,GAAG,KAAK,EAAE,YAAY;AAC1B,cAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC;cAC7C,MAAM,CAAC;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,eAAe,EAAE;YAC5D,MAAM;YACN,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,sBAAsB,CAAC,KAAW,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,KAAK,EAAE,YAAY;AAC1B,cAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC;cAC7C,MAAM,CAAC;AACX,QAAA,IAAI,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;AACzB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,gBAAgB,EAAE;YAC7D,MAAM;YACN,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,QAAQ,CAAC,OAAa,EAAA;AACpB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,mBAAmB,EACpC,OAAO,EACP;YACE,OAAO;AACR,SAAA,CACF,CAAC;KACH;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,CAC9C,CAAC;AACF,QAAA,IAAI,oBAAoB,GAAG;AACzB,YAAA,cAAc,EAAE,aAAa;AAC3B,kBAAE,aAAa,EAAE,aAAa,EAAE,UAAU;oBACxC,GAAG;oBACH,aAAa,EAAE,aAAa,EAAE,QAAQ;AACxC,kBAAE,EAAE;AACN,YAAA,UAAU,EAAE,aAAa,GAAG,aAAa,EAAE,aAAa,EAAE,UAAU,GAAG,EAAE;AACzE,YAAA,QAAQ,EAAE,aAAa,GAAG,aAAa,EAAE,aAAa,EAAE,QAAQ,GAAG,EAAE;AACrE,YAAA,kBAAkB,EAAE,aAAa;AAC/B,kBAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB;AAClD,kBAAE,EAAE;SACP,CAAC;AACF,QAAA,OAAO,oBAAoB,CAAC;KAC7B;AAED,IAAA,eAAe,CAAC,GAAQ,EAAA;;QAEtB,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,IAAI,GAAG,EAAE,MAAM,EAAE;AACf,YAAA,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACjC,SAAA;QACD,IAAI,GAAG,EAAE,OAAO,EAAE;AAChB,YAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAChC,YAAA,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAClC,gBAAgB,EAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAC5B,CAAC;AACF,YAAA,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAC9C,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACH,SAAA;QAED,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CACF,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,8BAA8B,EAC1D,WAAW,CACZ;AACA,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,oBAAoB,CAAC,GAAQ,EAAA;QAC3B,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,IAAI,GAAG,EAAE,MAAM,EAAE;AACf,YAAA,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACjC,SAAA;QACD,IAAI,GAAG,EAAE,OAAO,EAAE;AAChB,YAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAChC,YAAA,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAClC,gBAAgB,EAChB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAC7B,CAAC;AACF,YAAA,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAC9C,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACH,SAAA;QACD,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,iBAAiB,EAAE,WAAW,CAAC;AACtE,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,kBAAkB,CAAC,OAAY,EAAA;AAC7B,QAAA,IAAI,OAAO,EAAE,SAAS,KAAK,eAAe,EAAE;AAC1C,YAAA,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC;AACpC,SAAA;AACD,QAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAChC,QAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CACtB,gBAAgB,EAChB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CACvC,CAAC;AACF,QAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,EAAE,eAAe;YACvB,+CAA+C;AAC/C,YAAA,OAAO,EAAE,EAAE;YACX,QAAQ;AACR,YAAA,OAAO,EAAE,SAAS;YAClB,eAAe;AACf,aAAC,OAAO,EAAE,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC;AACnE,aAAC,OAAO,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC;AACjD,aAAC,OAAO,EAAE,YAAY,GAAG,aAAa,GAAG,OAAO,EAAE,YAAY,GAAG,EAAE,CAAC;aACnE,QAAQ,GAAG,OAAO,EAAE,IAAI,CAAC,EAC5B,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,6BAA6B,CAC3B,GAAQ,EACR,OAAa,EACb,gBAAsB,EAAA;;QAGtB,IAAI,WAAW,GAAQ,EAAE,CAAC;AAC1B,QAAA,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC;AACzB,QAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;;AAEhC,QAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,QAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC5E,QAAA,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,qBAAqB,EAAE,WAAW,CAAC;AACnE,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,mBAAmB,CAAC,MAAc,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,0BAA0B,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;KACnG;+GAhYU,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAyDI,QAAQ;;;MC7DA,eAAe,CAAA;AAIxB,IAAA,WAAA,GAAA;QACI,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAED,gBAAgB,GAAA;AACZ,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC;QAChF,OAAO,aAAa,EAAE,aAAa,CAAC;KACvC;IAEA,iBAAiB,GAAA;AACd,QAAA,IAAG,CAAC,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,CAAC,EAAE;AACrE,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAChD,SAAA;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;IAEA,cAAc,GAAA;AACX,QAAA,IAAG,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,CAAC,EAAE;AAC/D,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;AACzE,YAAA,IAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,CAAC,EAAE;AAC3C,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC9C,aAAA;AACJ,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IAED,iBAAiB,GAAA;AACb,QAAA,IAAG,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;YAClE,OAAO,IAAI,CAAC,aAAa,CAAC;AAC7B,SAAA;QACD,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;QAC7C,IAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,CAAC,EAAE;AACtC,YAAA,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;QAEhC,OAAQ;YACJ,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC;YACxD,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC;SACvD,CAAC;KACL;AAED,IAAA,eAAe,CAAC,IAAY,EAAA;QACxB,OAAO,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;KACzD;IAED,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;IAED,YAAY,GAAA;AACR,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAK;YACpC,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,SAAC,CAAC,CAAC;KACN;+GA5DQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCSY,qBAAqB,CAAA;IAkBhC,WACU,CAAA,IAAgB,EAChB,WAAwB,EACxB,UAAsB,EACtB,oBAAqC,EACjC,MAAuB,EAAA;QAJ3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAiB;QApB/C,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QACV,IAAwB,CAAA,wBAAA,GAAW,CAAC,CAAC;AAE5C,QAAA,IAAA,CAAA,UAAU,GAAyB,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;AACzD,QAAA,IAAA,CAAA,MAAM,GAAyB,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;AAC5D,QAAA,IAAA,CAAA,YAAY,GAAyB,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,qBAAqB,GAAyB,IAAI,eAAe,CACtE,EAAE,CACH,CAAC;AACK,QAAA,IAAA,CAAA,SAAS,GAAyB,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,qBAAqB,GAAyB,IAAI,eAAe,CACtE,EAAE,CACH,CAAC;AACM,QAAA,IAAA,CAAA,YAAY,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AACpE,QAAA,IAAA,CAAA,YAAY,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;QAqW5E,IAAc,CAAA,cAAA,GAAU,EAAE,CAAC;QAC3B,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAyB,CAAA,yBAAA,GAAU,EAAE,CAAC;AA9VpC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;AAED,IAAA,2BAA2B,CAAC,MAAmB,EAAA;QAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;YACjC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,0BAA0B,EAAE;YAClE,MAAM;YACN,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CACHM,KAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,CACH;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,qBAAqB,CAAC,MAAmB,EAAA;QACvC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;YACpC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtC,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,qCAAqC,EAChE;YACE,MAAM;YACN,OAAO;SACR,CACF;AACA,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,CACH;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,2BAA2B,CAAC,MAAmB,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE;YACjC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,eAAe;AACxB,YAAA,mDAAmD,EACnD;YACE,MAAM;YACN,OAAO;SACR,CACF;AACA,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,EACFC,YAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,SAAC,CAAC,CACH;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,8BAA8B,CAAC,MAAmB,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE;YACjC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,2BAA2B,EAAE;YAClE,MAAM;YACN,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CACHD,KAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,EACFC,YAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,SAAC,CAAC,CACH;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,oBAAoB,GAAA;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,mBAAmB,EAAE;YAC1D,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,qBAAqB,CAAC,MAAmB,EAAA;AACvC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,EAAE;YAC/C,MAAM;YACN,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,MAAmB,EAAA;QAClC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;YACvC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CACF,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,gCAAgC,EAC5D;YACE,MAAM;YACN,OAAO;SACR,CACF;AACA,aAAA,IAAI,CACHD,KAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,CACH;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CACF,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,qCAAqC,EAC/D;YACE,OAAO;SACR,CACF;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IACD,eAAe,CAAC,MAAkB,EAAE,GAAS,EAAA;AAC3C,QAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACjC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QACrC,IAAI,GAAG,EAAE,MAAM,EAAE;AACf,YAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YAEtE,OAAO,IAAI,CAAC,IAAI;AACb,iBAAA,IAAI,CACH,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,gCAAgC,EAC3D,SAAS,EACT,EAAE,MAAM,EAAE,OAAO,EAAE,CACpB;AACA,iBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,SAAA;QAED,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,gCAAgC,EAAE;YACrE,MAAM;YACN,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,oBAAoB,CAAC,MAAkB,EAAE,GAAS,EAAA;AAChD,QAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACjC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,qCAAqC,EAC9D;YACE,MAAM;YACN,OAAO;SACR,CACF;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AACD,IAAA,yBAAyB,CAAC,MAAkB,EAAA;AAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,qCAAqC,EAC9D;YACE,MAAM;YACN,OAAO;SACR,CACF;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IACD,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;YAChD,OAAO,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClD,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,oBAAoB,EAAE;YACxD,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,CACH;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAGD,uBAAuB,CAAC,KAAU,EAAE,WAAgB,EAAA;AAClD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,aAAa;YACtB,2CAA2C;YAC3C,WAAW;YACX,SAAS;AACT,YAAA,KAAK,EACL,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAED,IAAA,aAAa,CAAC,YAAiB,EAAA;AAC7B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,4BAA4B,EACtD,YAAY,EACZ,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AACD,IAAA,aAAa,CAAC,YAAiB,EAAE,SAAc,EAAE,UAAe,EAAA;AAC9D,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,cAAc;YACvB,wBAAwB;YACxB,SAAS;AACT,YAAA,6BAA6B,EAC7B,YAAY,EACZ,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAED,IAAA,kBAAkB,CAAC,QAAa,EAAA;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,iCAAiC,GAAG,QAAQ,EACrE,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,qBAAqB,CAAC,YAAiB,EAAA;AACrC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,6BAA6B,EACvD,YAAY,EACZ,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;IAED,YAAY,CAAC,OAAY,EAAE,GAAQ,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;;AAEF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,GAAG,EAAE,OAAO,EAAE;YACrE,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,YAAY,CAAC,OAAY,EAAA;AACvB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,gBAAgB,EAAE,OAAO,EAAE;YAC9E,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,CAAC,IAAU,EAAE,GAAW,EAAA;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QAEF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE;YAC9B,OAAO;AACP,YAAA,OAAO,EAAE,UAAU;AACpB,SAAA,CAAC,CAAC;KACJ;AAMD,IAAA,sBAAsB,CAAC,EAAO,EAAA;AAC5B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,yCAAyC,GAAG,EAAE,EACvE,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,iBAAiB,CAAC,MAAmB,EAAA;QACnC,IAAI,WAAW,GAAQ,EAAE,CAAC;AAC1B,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACzC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,SAAA;QACD,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,iBAAiB,EAAE,WAAW,CAAC;AACrE,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,MAAkB,EAAA;QACjC,IAAI,WAAW,GAAQ,EAAE,CAAC;AAC1B,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACzC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,SAAA;QACD,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,YAAY,EAAE,WAAW,CAAC;AAChE,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IACD,yBAAyB,CAAC,EAAO,EAAE,MAAkB,EAAA;QACnD,IAAI,WAAW,GAAQ,EAAE,CAAC;AAC1B,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACzC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,SAAA;QACD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,aAAa,GAAG,EAAE,EAAE,WAAW,CAAC;AACtE,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,oBAAoB,CAAC,EAAO,EAAE,MAAkB,EAAA;QAC9C,IAAI,WAAW,GAAQ,EAAE,CAAC;AAC1B,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACzC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,SAAA;QACD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,YAAY,GAAG,EAAE,EAAE,WAAW,CAAC;AACrE,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,2BAA2B,EAAE,IAAI,EAAE;YACjF,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;IAED,qBAAqB,CAAC,OAAY,EAAE,WAAoB,EAAA;AACtD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAC1B,2CAA2C;AAC3C,aAAC,WAAW,GAAG,eAAe,GAAG,WAAW,GAAG,EAAE,CAAC,EAClD,OAAO,EACP,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,iBAAiB,CAAC,OAAY,EAAE,EAAU,EAAE,WAAoB,EAAA;AAC9D,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAC1B,gEAAgE;YAChE,EAAE;AACF,aAAC,WAAW,GAAG,eAAe,GAAG,WAAW,GAAG,EAAE,CAAC,EAClD,OAAO,EACP,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,wBAAwB,CAAC,EAAU,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,kCAAkC,GAAG,EAAE,GAAG,gBAAgB,EACvF,EAAE,EACF,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,eAAe,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,eAAe;AACxB,YAAA,+CAA+C,EAC/C,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;IAED,aAAa,GAAA;AACX,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,EACzD;YACE,OAAO;AACR,SAAA,CACF,CAAC;KACH;AAED,IAAA,mBAAmB,CAAC,EAAU,EAAA;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;AACnE,QAAA,MAAM,aAAa,GAAG,aAAa,EAAE,cAAc;AACjD,cAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBACxE,GAAG;AACH,gBAAA,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;cACpE,EAAE,CAAC;AACP,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;AACrF,aAAA,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6BAA6B,GAAG,EAAE,GAAG,gBAAgB,EACxE;YACE,OAAO;AACR,SAAA,CACF,CAAC;KACH;AAED,IAAA,YAAY,CAAC,OAAY,EAAA;AACvB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,2BAA2B,EAAE,OAAO,EAAE;YACpF,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;IAED,eAAe,CAAC,OAAY,EAAE,GAAW,EAAA;AACvC,QAAA,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6BAA6B,EAAE,OAAO,EAAE;YACrF,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,0BAA0B,CAAC,KAAU,EAAA;AACnC,QAAA,MAAM,OAAO,GAAmB;YAC9B,KAAK,EAAE,KAAK,CAAC,WAAW;YACxB,GAAG,EAAE,KAAK,CAAC,iBAAiB;YAC5B,SAAS,EAAE,KAAK,CAAC,UAAU;YAC3B,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS;AACzB,YAAA,QAAQ,EAAE;gBACR,IAAI,EAAE,KAAK,CAAC,eAAe,GAAG,KAAK,GAAG,KAAK;gBAC3C,MAAM,EAAE,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC;AAC5C,gBAAA,WAAW,EAAE,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,YAAY,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,EAAE,oBAAoB;AAC3H,aAAA;YACD,oBAAoB,EAAE,KAAK,CAAC,uBAAuB,EAAE,MAAM,GAAG;gBAC5D,IAAI,EAAE,KAAK,CAAC,wBAAwB,GAAG,KAAK,GAAG,KAAK;gBACpD,EAAE,EAAE,KAAK,CAAC,uBAAuB;aAClC,GAAG,SAAS;AACb,YAAA,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;gBACxD,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,QAAQ,GAAG,KAAK,GAAG,YAAY;AACzF,gBAAA,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,QAAa,KAAK,QAAQ,EAAE,SAAS,CAAC;AAC1F,gBAAA,SAAS,EAAE;oBACT,UAAU,EAAE,KAAK,EAAE,iBAAiB;oBACpC,QAAQ,EAAE,KAAK,EAAE,wBAAwB;AAC1C,iBAAA;aACF,GAAG,SAAS;AACb,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACjC,YAAA,QAAQ,EAAE;gBACR,QAAQ,EAAE,KAAK,CAAC,kBAAkB;AAClC,gBAAA,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;AAC3F,oBAAA,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,EAAE,gBAAgB;AACnF,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE;YAEpF,WAAW,EAAE,KAAK,CAAC,cAAc;AACjC,YAAA,YAAY,EAAE,KAAK,CAAC,UAAU,EAAE,aAAa;YAC7C,WAAW,EAAE,KAAK,CAAC,WAAW;SAE/B,CAAA;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,KAAK,CAAC,eAAe,EAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,MAAM,EAAE;YAC1E,OAAO;AACL,gBAAA,OAAO,EAAE;AACP,oBAAA,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;AAC1D,oBAAA,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,eAAe;AACjD,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,MAAM,EAAE,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;AAClE,oBAAA,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,sBAAsB;AACxD,iBAAA;aACF,CAAA;AACF,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AAGD,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,MAAM,GAAQ,EAAE,CAAC;AACrB,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAM,KAAI;YAClD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7D,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;KACf;IAED,sBAAsB,GAAA;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;AACzD,QAAA,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc;AACjD,cAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBACxE,GAAG;AACH,gBAAA,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;cACpE,EAAE,CAAC;AAEP,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;aAC9B,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;AACtD,aAAA,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAkC,+BAAA,EAAA,IAAI,CAAC,wBAAwB,CAAA,SAAA,CAAW,EACnG,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;+GAzoBU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAa,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAwBI,QAAQ;;;MC9BA,gBAAgB,CAAA;AAQ3B,IAAA,WAAA,GAAA;AAFU,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;KAE5B;IAEhB,QAAQ,GAAA;KAEP;AACD,IAAA,WAAW,CAAC,GAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7B;+GAfU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,6NCP7B,kyBAcA,EAAA,MAAA,EAAA,CAAA,ooEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDPa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,kyBAAA,EAAA,MAAA,EAAA,CAAA,ooEAAA,CAAA,EAAA,CAAA;0EAKf,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACE,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEAK,gBAAgB,CAAA;IAU3B,WAAoB,CAAA,EAAc,EAAU,QAAmB,EAAA;QAA3C,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QALtD,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QAG5B,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;KAEwD;AACnE,IAAA,QAAQ,MAAK;IACe,YAAY,GAAA;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAC0B,WAAW,GAAA;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAE2B,YAAY,GAAA;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IACyB,UAAU,GAAA;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IACsB,OAAO,GAAA;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IACD,IAAI,GAAA;QACF,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC3C,OAAO;AACR,SAAA;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AACtC,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AACzD,SAAA;AAAM,aAAA;AACL,YAAA,IACE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,YAAY;AAC1C,gBAAA,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,YAAY,EAC1C;gBACA,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AACzD,aAAA;AACF,SAAA;KACF;IAED,IAAI,GAAA;QACF,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CACnC,CAAC;AACH,aAAA;AACF,SAAA;KACF;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;AAC3C,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,IAAI,CAAC,SAAS,CAAA,CAAE,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC,SAAS,CAAA,CAAE,CAAC,CAAC;AACnE,SAAA;KACF;IAED,WAAW,GAAA;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AACxD,QAAA,MAAM,SAAS,GACb,MAAM,CAAC,WAAW;YAClB,QAAQ,CAAC,eAAe,CAAC,SAAS;YAClC,QAAQ,CAAC,IAAI,CAAC,SAAS;AACvB,YAAA,CAAC,CAAC;AACJ,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5B,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;AAC7B,QAAA,IAAI,GAAG,CAAC;AACR,QAAA,IAAI,IAAI,CAAC;AACT,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;AAC5B,YAAA,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACpD,YAAA,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;AAC9D,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;YAC/B,IAAI,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC;AACtC,gBAAA,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;gBAC7D,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAmB,iBAAA,CAAA,CAAC,CAAC;gBAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAgB,cAAA,CAAA,CAAC,CAAC;AACxD,aAAA;AAAM,iBAAA;gBACL,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACnC,gBAAA,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;AAC9D,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AAC7B,YAAA,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;AAC7D,YAAA,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AACtD,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;AAC9B,YAAA,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;YAC7D,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AACpC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,cAAc,EAAE;YACrC,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACnC,YAAA,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AAC/C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,EAAE;YACpC,IAAI,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE;gBAC5C,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC;AACtC,gBAAA,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAwB,sBAAA,CAAA,CAAC,CAAC;gBAClE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAqB,mBAAA,CAAA,CAAC,CAAC;AAC7D,aAAA;AAAM,iBAAA;gBACL,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACnC,gBAAA,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACrB,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAG,EAAA,GAAG,GAAG,SAAS,CAAA,EAAA,CAAI,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,CAAC,CAAC;KAC3D;+GAjIU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,CAAA,YAAA,EAAA,cAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,cAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;yHAEsB,YAAY,EAAA,CAAA;sBAAhC,KAAK;uBAAC,YAAY,CAAA;gBACV,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAMsB,YAAY,EAAA,CAAA;sBAAvC,YAAY;uBAAC,YAAY,CAAA;gBAIC,WAAW,EAAA,CAAA;sBAArC,YAAY;uBAAC,WAAW,CAAA;gBAKG,YAAY,EAAA,CAAA;sBAAvC,YAAY;uBAAC,YAAY,CAAA;gBAGA,UAAU,EAAA,CAAA;sBAAnC,YAAY;uBAAC,UAAU,CAAA;gBAGD,OAAO,EAAA,CAAA;sBAA7B,YAAY;uBAAC,OAAO,CAAA;;;MC/BV,iBAAiB,CAAA;AAa5B,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAZpD,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;QACb,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;QACf,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;QAClB,IAAI,CAAA,IAAA,GAAC,OAAO,CAAA;AACZ,QAAA,IAAA,CAAA,KAAK,GAAO;AACV,YAAA,OAAO,EAAC,UAAU;AAClB,YAAA,OAAO,EAAC,UAAU;AAClB,YAAA,IAAI,EAAC,UAAU;AACf,YAAA,KAAK,EAAC,UAAU;AAChB,YAAA,KAAK,EAAC,UAAU;SACjB,CAAA;KAEuD;IAExD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACjF,YAAA,IAAG,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,EAAC;gBAC7D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC;AACzB,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;IAED,YAAY,GAAA;QACV,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd,EAAE,IAAI,CAAC,CAAC;KACV;IACD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC7B;IACD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;KACzC;+GAvCU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,qDCV9B,wXAQM,EAAA,MAAA,EAAA,CAAA,uhEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDEO,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,wXAAA,EAAA,MAAA,EAAA,CAAA,uhEAAA,CAAA,EAAA,CAAA;;;AENpB,MAAM,UAAU,GAAG;AACxB,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,oBAAoB,EAAE,uBAAuB;AAC7C,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,oBAAoB,EAAE,oCAAoC;AAC1D,IAAA,UAAU,EAAE,+BAA+B;AAC3C,IAAA,gBAAgB,EAAE,oDAAoD;AACtE,IAAA,oBAAoB,EAAE,YAAY;AAClC,IAAA,0BAA0B,EAAE,iCAAiC;AAC7D,IAAA,oBAAoB,EAAE,wBAAwB;AAC9C,IAAA,0BAA0B,EAAE,gCAAgC;AAC5D,IAAA,cAAc,EAAE,wCAAwC;AACxD,IAAA,eAAe,EAAE,iCAAiC;AAClD,IAAA,6BAA6B,EAAE,uBAAuB;AACtD,IAAA,mCAAmC,EACjC,4CAA4C;CAC/C;;AChBD,MAAM,QAAQ,GAAG,0BAA0B,CAAC;AAC5C;AAEO,MAAM,MAAM,GAAG;IACpB,qBAAqB,EAAE,CAAG,EAAA,QAAQ,CAAsE,oEAAA,CAAA;IACxG,SAAS,EAAE,CAAG,EAAA,QAAQ,CAAsE,oEAAA,CAAA;IAC5F,aAAa,EAAE,CAAG,EAAA,QAAQ,CAAyD,uDAAA,CAAA;IACnF,IAAI,EAAE,CAAG,EAAA,QAAQ,CAAqD,mDAAA,CAAA;IACtE,IAAI,EAAE,CAAG,EAAA,QAAQ,CAAqD,mDAAA,CAAA;IACtE,wBAAwB,EAAE,CAAG,EAAA,QAAQ,CAAqD,mDAAA,CAAA;IAC1F,cAAc,EAAE,CAAG,EAAA,QAAQ,CAAoD,kDAAA,CAAA;IAC/E,eAAe,EAAE,CAAG,EAAA,QAAQ,CAAgE,8DAAA,CAAA;IAC5F,WAAW,EAAE,CAAG,EAAA,QAAQ,CAAsD,oDAAA,CAAA;IAC9E,aAAa,EAAE,CAAG,EAAA,QAAQ,CAA8D,4DAAA,CAAA;IACxF,UAAU,EAAE,CAAG,EAAA,QAAQ,CAA2D,yDAAA,CAAA;IAClF,6BAA6B,EAAE,CAAG,EAAA,QAAQ,CAA8E,4EAAA,CAAA;IACxH,kBAAkB,EAAE,CAAG,EAAA,QAAQ,CAAmE,iEAAA,CAAA;IAClG,KAAK,EAAE,CAAG,EAAA,QAAQ,CAAsD,oDAAA,CAAA;IACxE,cAAc,EAAE,CAAG,EAAA,QAAQ,CAA+D,6DAAA,CAAA;IAC1F,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAyD,uDAAA,CAAA;IAC9E,gBAAgB,EAAE,CAAG,EAAA,QAAQ,CAAiE,+DAAA,CAAA;IAC9F,SAAS,EAAE,CAAG,EAAA,QAAQ,CAA0D,wDAAA,CAAA;IAChF,oBAAoB,EAAE,CAAG,EAAA,QAAQ,CAAqE,mEAAA,CAAA;IACtG,MAAM,EAAE,CAAG,EAAA,QAAQ,CAAuD,qDAAA,CAAA;IAC1E,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAyD,uDAAA,CAAA;IAC9E,WAAW,EAAE,CAAG,EAAA,QAAQ,CAA4D,0DAAA,CAAA;IACpF,WAAW,EAAE,CAAG,EAAA,QAAQ,CAA4D,0DAAA,CAAA;IACpF,UAAU,EAAE,CAAG,EAAA,QAAQ,CAA2D,yDAAA,CAAA;IAClF,KAAK,EAAE,CAAG,EAAA,QAAQ,CAAsD,oDAAA,CAAA;IACxE,KAAK,EAAE,CAAG,EAAA,QAAQ,CAAsD,oDAAA,CAAA;IACxE,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAyD,uDAAA,CAAA;IAC9E,SAAS,EAAE,CAAG,EAAA,QAAQ,CAA0D,wDAAA,CAAA;IAChF,UAAU,EAAE,CAAG,EAAA,QAAQ,CAA2D,yDAAA,CAAA;IAClF,aAAa,EAAE,CAAG,EAAA,QAAQ,CAA8D,4DAAA,CAAA;IACxF,UAAU,EAAE,CAAG,EAAA,QAAQ,CAA2D,yDAAA,CAAA;IAClF,WAAW,EAAE,CAAG,EAAA,QAAQ,CAAqE,mEAAA,CAAA;IAC7F,SAAS,EAAE,CAAG,EAAA,QAAQ,CAAmE,iEAAA,CAAA;AACzF,IAAA,YAAY,EAAE,CAA+K,6KAAA,CAAA;AAC7L,IAAA,kBAAkB,EAAE,CAA+K,6KAAA,CAAA;AACnM,IAAA,eAAe,EAAE,CAAuJ,qJAAA,CAAA;IACxK,MAAM,EAAE,CAAG,EAAA,QAAQ,CAAuD,qDAAA,CAAA;IAC1E,YAAY,EAAE,CAAG,EAAA,QAAQ,CAA6D,2DAAA,CAAA;IACtF,wBAAwB,EAAE,CAAG,EAAA,QAAQ,CAAyE,uEAAA,CAAA;IAC9G,IAAI,EAAE,CAAG,EAAA,QAAQ,CAAqD,mDAAA,CAAA;IACtE,UAAU,EAAE,CAAG,EAAA,QAAQ,CAA2D,yDAAA,CAAA;IAClF,WAAW,EAAE,CAAG,EAAA,QAAQ,CAA4D,0DAAA,CAAA;IACpF,KAAK,EAAE,CAAG,EAAA,QAAQ,CAAsD,oDAAA,CAAA;IACxE,YAAY,EAAE,CAAG,EAAA,QAAQ,CAA6D,2DAAA,CAAA;IACtF,aAAa,EAAE,CAAG,EAAA,QAAQ,CAA8D,4DAAA,CAAA;IACxF,UAAU,EAAE,CAAG,EAAA,QAAQ,CAA2D,yDAAA,CAAA;IAClF,IAAI,EAAE,CAAG,EAAA,QAAQ,CAAqD,mDAAA,CAAA;IACtE,WAAW,EAAE,CAAG,EAAA,QAAQ,CAA4D,0DAAA,CAAA;IACpF,iBAAiB,EAAE,CAAG,EAAA,QAAQ,CAAkE,gEAAA,CAAA;IAChG,UAAU,EAAE,CAAG,EAAA,QAAQ,CAA2D,yDAAA,CAAA;IAClF,WAAW,EAAE,CAAG,EAAA,QAAQ,CAA4D,0DAAA,CAAA;IACpF,MAAM,EAAE,CAAG,EAAA,QAAQ,CAAuD,qDAAA,CAAA;IAC1E,YAAY,EAAE,CAAG,EAAA,QAAQ,CAA6D,2DAAA,CAAA;CACvF;;ACvDM,MAAM,KAAK,GAAG;IACnB,aAAa,EAAE,MAAM,CAAC,IAAI;IAC1B,SAAS,EAAE,MAAM,CAAC,WAAW;IAC7B,KAAK,EAAE,MAAM,CAAC,qBAAqB;IACnC,OAAO,EAAE,MAAM,CAAC,IAAI;IACpB,YAAY,EAAE,MAAM,CAAC,aAAa;IAClC,MAAM,EAAE,MAAM,CAAC,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC,UAAU;IAC7B,OAAO,EAAE,MAAM,CAAC,UAAU;IAC1B,qBAAqB,EAAE,MAAM,CAAC,WAAW;IACzC,iBAAiB,EAAE,MAAM,CAAC,UAAU;CACrC;;ACbM,MAAM,kBAAkB,GAAG;AAChC,IAAA,aAAa,EAAE,mCAAmC;AAClD,IAAA,SAAS,EAAE,qCAAqC;AAChD,IAAA,KAAK,EAAE,8DAA8D;AACrE,IAAA,UAAU,EAAE,6CAA6C;AACzD,IAAA,UAAU,EAAE,uCAAuC;CACpD;;ACJM,MAAM,UAAU,GAAG;AACxB,IAAA;AACE,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,GAAG,EAAE,iBAAiB;AACtB,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,UAAU,EAAE,CAAC;AACd,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,GAAG,EAAE,mBAAmB;AACxB,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,UAAU,EAAE,CAAC;AACd,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,GAAG,EAAE,kBAAkB;AACvB,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,UAAU,EAAE,CAAC;AACd,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,GAAG,EAAE,OAAO;AACZ,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,UAAU,EAAE,CAAC;AACd,KAAA;CACF,CAAC;AAEK,MAAM,cAAc,GAAa;AACtC,IAAA;AACE,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,EAAE,EAAE,SAAS;AACd,KAAA;IACD,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE;CAClE,CAAC;AAEK,MAAM,cAAc,GAAG;AAC5B,IAAA;AACE,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,GAAG,EAAE,OAAO;AACZ,QAAA,IAAI,EAAE,CAAC;AACR,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,IAAI,EAAE,CAAC;AACR,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,GAAG,EAAE,QAAQ;AACb,QAAA,IAAI,EAAE,CAAC;AACR,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,GAAG,EAAE,WAAW;AAChB,QAAA,IAAI,EAAE,CAAC;AACR,KAAA;CACF,CAAC;AAEK,MAAM,mBAAmB,GAAQ;AACtC,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,OAAO,EAAE,CAAC;AACV,IAAA,SAAS,EAAE,CAAC;CACb,CAAC;AAEK,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAEvE,MAAM,2BAA2B,GAAG;AACzC,IAAA,GAAG,EAAE,eAAe;AACpB,IAAA,aAAa,EAAE,CAAC;AAChB,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,UAAU,EAAE,IAAI;CACjB;;AC7FM,MAAM,eAAe,GAAG;AAC7B,IAAA,cAAc,EAAE,gCAAgC;AAChD,IAAA,iBAAiB,EAAE,kCAAkC;CACtD;;MCMY,uBAAuB,CAAA;AAKlC,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAN3B,QAAA,IAAA,CAAA,MAAM,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AASnE,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;AAC9B,SAAA;KACF;IAEO,SAAS,CAAC,MAAmB,EAAE,UAAoB,EAAA;AACzD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,CAC1C,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,EAAE,eAAe;YACvB,0BAA0B;aACzB,UAAU,GAAG,oBAAoB,GAAG,EAAE,CAAC,EAC1C;YACE,MAAM;YACN,OAAO;SACR,CACF;aACA,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EACjC,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;AAClE,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACjB,CAAC,CACH,CAAC;KACL;AACO,IAAA,SAAS,CAAC,IAAS,EAAA;AACzB,QAAA,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,QAAA,OAAO,IAAI,CAAC;KACb;IAEM,aAAa,CAAC,MAAmB,EAAE,UAAoB,EAAA;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9C,QAAA,IAAI,aAAa,EAAE;YACjB,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/B,SAAA;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KAC3C;AAED,IAAA,mBAAmB,CAAC,GAAW,EAAA;QAC7B,MAAM,UAAU,GAAG,4CAA4C,CAAC;AAEhE,QAAA,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YAC9B,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACzC,SAAA;QAED,OAAO,IAAI,CAAC;KACb;+GA3DU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAlB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BASI,QAAQ;;;MCZA,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;AAIE,QAAA,IAAA,CAAA,gBAAgB,GAAG;AACjB,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,KAAK;SACf,CAAC;AAyIH,KAAA;AAxIC,IAAA,mBAAmB,CAAC,gBAAqB,EAAA;AACvC,QAAA,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,gBAAgB,IAAI,EAAE,CAAC;AAClE,QAAA,MAAM,aAAa,GAAG,KAAK,EAAE,MAAiB,CAAC;AAE/C,QAAA,IAAI,CAAC,aAAa;AAAE,YAAA,OAAO,KAAK,CAAC;QAEjC,MAAM,gBAAgB,GAAG,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,2BAA2B,GAAG,QAAQ,EAAE,aAAa,CACzD,4BAA4B,CAC7B,CAAC;QACF,MAAM,gBAAgB,GAAG,QAAQ,EAAE,aAAa,CAC9C,8BAA8B,CAC/B,CAAC;QAEF,MAAM,qBAAqB,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtE,QAAA,MAAM,eAAe,GACnB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAEjE,QAAA,MAAM,qBAAqB,GAAG,aAAa,KAAK,gBAAgB,CAAC;QACjE,MAAM,mBAAmB,GACvB,CAAC,2BAA2B,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,kBAAkB,GACtB,CAAC,aAAa;AACd,YAAA,OAAO,aAAa,EAAE,SAAS,KAAK,QAAQ;YAC5C,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAE3D,QAAA,IACE,2BAA2B;YAC3B,qBAAqB;YACrB,cAAc;YACd,qBAAqB;YACrB,mBAAmB;YACnB,kBAAkB;AAClB,YAAA,eAAe,EACf;AACA,YAAA,IAAI,CAAC,qBAAqB,CACxB,aAAa,EACb,KAAK,EACL,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,SAAS,CAC5B,CAAC;AACF,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AAEO,IAAA,qBAAqB,CAC3B,MAAW,EACX,aAAyB,EACzB,iBAA0B,EAC1B,UAAe,EAAA;QAEf,IACE,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC;YAC/C,UAAU,EAAE,iBAAiB,EAC7B;AACA,YAAA,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;YACzB,iBAAiB,GAAG,KAAK,CAAC;AAC3B,SAAA;KACF;AAEA;;;;;;;;;;;;;;;;;AAiBE;AACH,IAAA,oBAAoB,CAAC,KAA6C,EAAE,gBAAA,GAA6B,EAAE,EAAA;;AAGjG,QAAA,MAAM,iBAAiB,GAAI,EAAwB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAChF,GAAG,CAAC,CAAC,OAAwB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;;AAGlD,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC5C,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;;AAG9C,QAAA,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAU,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3E,QAAA,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAU,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7E,QAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;KAC3B;AAED,IAAA,6BAA6B,CAAC,wBAAkC,EAAE,uBAAA,GAAoC,EAAE,EAAA;;AAEtG,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACnD,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,wBAAwB,CAAC,CAAC;;AAGrD,QAAA,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,QAAA,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAE1E,QAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,GAAQ,EAAA;QACpB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QACnC,MAAM,qBAAqB,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AACrD,QAAA,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,CAAC;QACzC,OAAO;YACL,qBAAqB;YACrB,mBAAmB;AACnB,YAAA,sBAAsB,EAAE,KAAK;YAC7B,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACrC,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,WAAW,EAAE,KAAK;SACnB,CAAA;KACF;AAED;;;AAGG;AACH,IAAA,mBAAmB,CAAC,OAAY,EAAA;AAC9B,QAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KACtD;IAEO,SAAS,GAAA;AACf,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC/B;+GA/IU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;oCCCY,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAClB,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;KAD/B;AAGK,IAAA,YAAY,CAAC,aAAkB,EAAA;AAChF,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,SAAA;KACF;+GATU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAArBqB,uBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;iGAGyB,YAAY,EAAA,CAAA;sBAAnC,MAAM;uBAAC,cAAc,CAAA;gBAE6B,YAAY,EAAA,CAAA;sBAA9D,YAAY;uBAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,CAAA;;;MCMtC,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EARd,YAAA,EAAA,CAAAA,uBAAqB,CAElC,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZA,uBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAN3B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMH,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAACA,uBAAqB,CAAC;AACrC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACPA,uBAAqB;AACtB,qBAAA;AACF,iBAAA,CAAA;;;MCTY,YAAY,CAAA;AAEvB,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAe,EAAA;QACtC,OAAO,OAAO,KAAK,CAAC;KACrB;+GAJU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAZ,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA,CAAA;;;yBCCY,UAAU,CAAA;AACrB,IAAA,SAAS,CAAC,KAAU,EAAE,UAAe,EAAE,WAAgB,EAAA;QACrD,MAAM,GAAG,GAAG,UAAU,CAAC;QACvB,MAAM,IAAI,GAAG,WAAW,CAAC;AACzB,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE,MAAM,EAAE;YACvB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;+GAVU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAVC,YAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA,CAAA;;;MCEY,cAAc,CAAA;AAEzB,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;QAElC,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAO,KAAK,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/D,QAAA,OAAO,CAAC,CAAC;KACV;+GATU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAA;;;yBCAY,UAAU,CAAA;AACrB,IAAA,SAAS,CAAC,KAAY,EAAE,GAAG,IAAW,EAAA;AACpC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QACD,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,UAAU,GAAG,UAAU,EAAE,WAAW,EAAE,CAAC;QACvC,IAAI,KAAK,EAAE,MAAM,EAAE;AACjB,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAO,KAAI;gBAC9B,IAAI,CAAC,SAAS,EAAE;AACd,oBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AAChE,iBAAA;AAAM,qBAAA,IAAI,SAAS,EAAE;oBACpB,QACE,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAClE;AACH,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;+GAxBU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAVC,YAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA,CAAA;;;MCCY,gBAAgB,CAAA;AAE3B,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;QAElC,IAAG,KAAK,CAAC,MAAM,EAAC;AACd,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3E,SAAA;AAAI,aAAA;AACH,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KAEF;+GAVU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA,CAAA;;;MCCY,uBAAuB,CAAA;AAElC,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,IAAG,KAAK,EAAC;AACR,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,QAAY,KAAK,QAAQ,EAAE,aAAa,IAAI,eAAe,CAAC,CAAA;AACjF,SAAA;AAAI,aAAA;AACH,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;+GARU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAvB,uBAAuB,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,qBAAqB;AAC5B,iBAAA,CAAA;;;MCEY,cAAc,CAAA;AAEzB,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAC;YACpB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC,GAAQ,KAAI;AAC5C,gBAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,aAAC,CAAC,CAAC;AAED,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAO,KAAI;gBAE9B,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,aAAC,CAAC,CAAC;AACL,SAAA;AACG,aAAA;AACF,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACN;+GAnBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA,CAAA;;;ACLM,MAAMC,WAAS,GAAG;AACvB,IAAA,YAAY,EAAE;AACZ,QAAA,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;AAClC,QAAA,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;AAChC,QAAA,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE;AACxC,QAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;AAC9B,KAAA;AACD,IAAA,sBAAsB,EAAE;AACtB,QAAA,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE;AAClD,QAAA,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,gBAAgB,EAAE;AAC7D,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,eAAe,EAAE,IAAI;AACrB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,eAAe,EAAE,IAAI;AACrB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,WAAW,EAAE,KAAK;QAClB,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;AACrC,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,EAAE,EAAE,aAAa;AACjB,QAAA,WAAW,EAAE,oCAAoC;AAClD,KAAA;AAED,IAAA,SAAS,EAAE;AACT,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,EAAE,EAAE,WAAW;AACf,QAAA,WAAW,EAAE,wCAAwC;AACtD,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,gBAAgB,EAAE,KAAK;AACvB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,iBAAiB,EAAE,KAAK;AACxB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,EAAE,EAAE,KAAK;AACT,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA;CACF,CAAC;AAGK,MAAM,0BAA0B,GAAG,yCAAyC,CAAC;AAC7E,MAAM,oBAAoB,GAAE,CAAA;;;;;kPAK+M,CAAC;AAE5O,MAAM,wBAAwB,GAAG,mDAAmD,CAAA;AAEpF,MAAM,yBAAyB,GAAG,yDAAyD;;MCzDrF,kBAAkB,CAAA;AAE7B,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,IAAI,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,WAAW,GAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAI,WAAW,GAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAI,UAAU,GAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC5C,QAAA,IAAI,WAAW,GAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC9C,QAAA,IAAI,SAAS,GAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AACrD,QAAA,IAAI,UAAU,GAAY,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACpD,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,CAAC,CAAC,GAAE,SAAS,GAAC,gBAAgB,CAAC;AACtD,QAAA,QAAO,kBAAkB;AACvB,YAAA,KAAK,UAAU;gBACb,IAAG,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,IAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAC;AACnG,oBAAA,OAAO,yDAAyD,GAAG,UAAU,GAAG,GAAG,CAAC;AACrF,iBAAA;qBAAK,IAAG,UAAU,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,IAAI,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAC;AACzG,oBAAA,OAAO,sEAAsE,GAAG,UAAU,GAAG,GAAG,CAAC;AAClG,iBAAA;gBACD,IAAG,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAC;AACjD,oBAAA,OAAO,0DAA0D,GAAG,UAAU,GAAG,GAAG,CAAC;AACtF,iBAAA;AACD,gBAAA,OAAO,WAAW,EAAE,YAAY,IAAI,WAAW,EAAE,cAAc,CAAC;AAClE,YAAA,KAAK,UAAU;gBACb,IAAG,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAC;AACpG,oBAAA,OAAO,yDAAyD,GAAG,UAAU,GAAG,GAAG,CAAC;AACrF,iBAAA;qBAAM,IAAG,UAAU,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,IAAI,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAC;AAC1G,oBAAA,OAAO,sEAAsE,GAAG,UAAU,GAAG,GAAG,CAAA;AACjG,iBAAA;gBACD,IAAG,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAC;AACjD,oBAAA,OAAO,0DAA0D,GAAG,UAAU,GAAG,GAAG,CAAC;AACtF,iBAAA;AACD,gBAAA,OAAO,WAAW,EAAE,YAAY,IAAI,WAAW,EAAE,cAAc,CAAC;AAClE,YAAA,KAAK,UAAU;gBACb,IAAG,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAC;AACpG,oBAAA,OAAO,yDAAyD,GAAG,UAAU,GAAG,GAAG,CAAC;AACrF,iBAAA;qBAAM,IAAG,UAAU,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,IAAI,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAC;AAC1G,oBAAA,OAAO,sEAAsE,GAAG,UAAU,GAAG,GAAG,CAAC;AAClG,iBAAA;gBACD,IAAG,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,IAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAC;AACnG,oBAAA,OAAO,yDAAyD,GAAG,UAAU,GAAG,GAAG,CAAC;AACrF,iBAAA;qBAAK,IAAG,UAAU,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,IAAI,WAAW,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAC;AACzG,oBAAA,OAAO,sEAAsE,GAAG,UAAU,GAAG,GAAG,CAAC;AAClG,iBAAA;gBACD,IAAG,UAAU,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,EAAC;AAChD,oBAAA,OAAO,yDAAyD,GAAG,UAAU,GAAG,GAAG,CAAC;AACrF,iBAAA;AACD,gBAAA,OAAO,WAAW,EAAE,YAAY,IAAI,WAAW,EAAE,cAAc,CAAC;AAClE,YAAA,KAAK,cAAc;AACjB,gBAAA,IAAG,UAAU,EAAC;AACZ,oBAAA,OAAO,yBAAyB,CAAA;AACjC,iBAAA;AACD,gBAAA,OAAO,WAAW,EAAE,YAAY,IAAI,WAAW,EAAE,cAAc,CAAC;AAClE,YAAA;AACE,gBAAA,OAAO,UAAU,GAAG,EAAE,GAAG,WAAW,EAAE,YAAY,IAAI,WAAW,EAAE,cAAc,CAAC;AACrF,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACX;+GAzDU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAA;;;MCCY,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;AAE/C,IAAA,SAAS,CAAC,UAAkB,EAAA;QAC1B,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;QACD,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACvD,QAAA,OAAO,WAAW,CAAC;KACpB;+GATU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA,CAAA;;;MCCY,cAAc,CAAA;IACzB,SAAS,CAAC,SAAiB,EAAE,MAAc,EAAA;AACzC,QAAA,IACE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,YAAY;AACxE,YAAA,MAAM,EACN;AACA,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;+GATU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAA;;;MCAY,mBAAmB,CAAA;AAC9B,IAAA,SAAS,CACP,QAAgB,EAChB,QAAe,EACf,OAAA,GAAkB,MAAM,EACxB,KAAgB,GAAA,KAAK,EACrB,SAAA,GAAoB,WAAW,EAAA;QAE/B,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACzC,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,SAAS,GAAG,QAAQ,CAAC;AAEzB,QAAA,OAAO,SAAS,EAAE;YAChB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC3C,YAAA,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAChC,gBAAA,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AACpC,aAAA;AAAM,iBAAA;gBACL,MAAM;AACP,aAAA;AACF,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;+GA3BU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAnB,mBAAmB,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA,CAAA;;;MCEY,QAAQ,CAAA;IAEnB,SAAS,CAAC,EAAO,EAAE,IAAS,EAAA;AAC1B,QAAA,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;KACpD;+GAJU,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAR,QAAQ,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA;;4FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA,CAAA;;;MCGY,mBAAmB,CAAA;IAC9B,SAAS,CAAC,KAAa,EAAE,eAAuB,EAAA;QAC9C,OAAS;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,WAAW;YACxB,EAAE,EAAE,eAAe,GAAG,KAAK;SAC5B,CAAC;KACL;+GATU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAnB,mBAAmB,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA,CAAA;;;MCFY,cAAc,CAAA;AAEzB,IAAA,SAAS,CAAC,KAAU,EAAE,MAAA,GAAiB,OAAO,EAAA;QAC5C,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AAED,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAE7B,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACzB,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AAED,QAAA,QAAQ,MAAM;AACZ,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACnC,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AACtC,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,GAAG,EAAE,SAAS;AACf,iBAAA,CAAC,CAAC;AACL,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACnC,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;AAC/B,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACpC,SAAA;KACF;+GAhCU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA,CAAA;;;MCCY,yBAAyB,CAAA;IAEpC,SAAS,CAAC,KAAU,EAAE,sBAA2B,EAAA;AAC/C,QAAA,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;QAC/C,QACE,cAAc,EAAE,EAAE,KAAK,sBAAsB,EAAE,cAAc,EAAE,EAAE;AACjE,YAAA,YAAY,EAAE,QAAQ,KAAK,sBAAsB,EAAE,YAAY,EAAE,QAAQ;YACzE,YAAY,EAAE,oBAAoB,KAAK,sBAAsB,EAAE,YAAY,EAAE,oBAAoB,EAClG;KACF;+GATU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAzB,yBAAyB,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,uBAAuB;AAC9B,iBAAA,CAAA;;;MCmDY,WAAW,CAAA;+GAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,iBAnCpB,YAAY;YACZI,YAAU;YACV,cAAc;YACdC,YAAU;YACV,gBAAgB;YAChB,uBAAuB;YACvB,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,cAAc;YACd,mBAAmB;YACnB,QAAQ;YACR,mBAAmB;YACnB,cAAc;YACd,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAEjB,YAAY,CAAA,EAAA,OAAA,EAAA,CAEpB,YAAY;YACZD,YAAU;YACV,cAAc;YACdC,YAAU;YACV,gBAAgB;YAChB,uBAAuB;YACvB,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,cAAc;YACd,mBAAmB;YACnB,QAAQ;YACR,mBAAmB;YACnB,cAAc;YACd,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YAnBZ,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAmBX,WAAW,EAAA,UAAA,EAAA,CAAA;kBArCvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,YAAY;wBACZD,YAAU;wBACV,cAAc;wBACdC,YAAU;wBACV,gBAAgB;wBAChB,uBAAuB;wBACvB,cAAc;wBACd,kBAAkB;wBAClB,gBAAgB;wBAChB,cAAc;wBACd,mBAAmB;wBACnB,QAAQ;wBACR,mBAAmB;wBACnB,cAAc;wBACd,yBAAyB;AAC1B,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZD,YAAU;wBACV,cAAc;wBACdC,YAAU;wBACV,gBAAgB;wBAChB,uBAAuB;wBACvB,cAAc;wBACd,kBAAkB;wBAClB,gBAAgB;wBAChB,cAAc;wBACd,mBAAmB;wBACnB,QAAQ;wBACR,mBAAmB;wBACnB,cAAc;wBACd,yBAAyB;AAC1B,qBAAA;AACF,iBAAA,CAAA;;;MCoBY,kBAAkB,CAAA;AArE/B,IAAA,WAAA,GAAA;QAsEE,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAExB,QAAA,IAAA,CAAA,eAAe,GAAyB,IAAI,YAAY,EAAE,CAAC;AAC3D,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,YAAY,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,YAAY,GAAuB,IAAI,YAAY,EAAE,CAAC;AACvD,KAAA;+GAZY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAjEnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kiBAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EArDS,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,2IAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAK,gBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAkEzD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBArE9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EACd,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,CAAC,EAC3D,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDT,EAEO,MAAA,EAAA;wBACN,WAAW;wBACX,iBAAiB;wBACjB,WAAW;wBACX,YAAY;wBACZ,YAAY;wBACZ,UAAU;wBACV,QAAQ;AACT,qBAAA,EAAA,OAAA,EACQ,CAAC,iBAAiB,EAAE,SAAS,EAAE,cAAc,CAAC,EAAA,MAAA,EAAA,CAAA,kiBAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;;;ACxElD,MAAM,SAAS,GAAG;AACvB,IAAA,OAAO,EAAE,4BAA4B;CACtC;;MC4BY,sBAAsB,CAAA;AA1BnC,IAAA,WAAA,GAAA;QA2BE,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QACrB,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QACrB,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAa,CAAA,aAAA,GAAG,SAAS,CAAC;AAC3B,KAAA;+GALY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAtBvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAnBS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAuBX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA1BlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cACnB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EACb,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,MAAA,EAEO,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;;;MCvBhC,cAAc,CAAA;AAOzB,IAAA,WAAA,GAAA;KACC;+GARU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCaY,gBAAgB,CAAA;AAQ3B,IAAA,WAAA,CAAmB,cAA8B,EAAA;QAA9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QANjD,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;AAIf,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAW,CAAC;QAG1D,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;KADiC;AAQrD,IAAA,QAAQ,MAAW;IACnB,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB,EAAE,EAAE,CAAC,CAAC;AACP,QAAA,OAAO,KAAK,CAAC;KACd;IACD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,WAAW,EAAE,CAAC;;;AAGnB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB,EAAE,EAAE,CAAC,CAAC;AACP,QAAA,OAAO,KAAK,CAAC;KACd;AACD,IAAA,YAAY,CAAC,GAAY,EAAA;QACvB,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,GAAG,KAAK,KAAK,EAAE;AAC3C,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,SAAA;QACD,IAAG,GAAG,KAAK,KAAK,EAAE;AAChB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,SAAA;KACF;IACD,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IACD,WAAW,GAAA;AACT,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC;QAC9D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC;QACpE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC;AAClE,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,MAAM,EAAE;AACnD,YAAA,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC;YACvC,IACE,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa;AACnE,gBAAA,MAAM,CAAC,WAAW,GAAG,GAAG,EACxB;gBACA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AAC3D,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAChE,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,OAAO,EAAE;AACpD,YAAA,IAAI,CAAC,SAAS;gBACZ,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;YACrE,IACE,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa;AACnE,gBAAA,MAAM,CAAC,WAAW,GAAG,GAAG,EACxB;gBACA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AAC3D,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAChE,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,KAAK,EAAE;YAClD,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC;YAChE,IACE,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa;AACnE,gBAAA,MAAM,CAAC,WAAW,GAAG,GAAG,EACxB;gBACA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AAC3D,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AAC3D,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,QAAQ,EAAE;YACrD,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC;YAChE,IACE,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa;AACnE,gBAAA,MAAM,CAAC,WAAW,GAAG,GAAG,EACxB;gBACA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AAC3D,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAChE,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,eAAe,EAAE;AAC5D,YAAA,IAAI,CAAC,SAAS;AACZ,gBAAA,gBAAgB,CAAC,IAAI;oBACrB,gBAAgB,CAAC,KAAK,GAAG,CAAC;AAC1B,oBAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAC;AAC3C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,YAAY,EAAE;AACzD,YAAA,IAAI,CAAC,SAAS;AACZ,gBAAA,gBAAgB,CAAC,IAAI;oBACrB,gBAAgB,CAAC,KAAK,GAAG,CAAC;AAC1B,oBAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACxB,IACE,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa;gBACnE,MAAM,CAAC,WAAW,EAClB;gBACA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAChE,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AAC3D,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,QAAQ,EAAE;AACrD,YAAA,IAAI,CAAC,SAAS;AACZ,gBAAA,gBAAgB,CAAC,IAAI;oBACrB,gBAAgB,CAAC,KAAK,GAAG,CAAC;AAC1B,oBAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAChE,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;KAChC;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;+GArIU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAQ,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,2aCjB7B,qYAMA,EAAA,MAAA,EAAA,CAAA,mLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDWa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,qYAAA,EAAA,MAAA,EAAA,CAAA,mLAAA,CAAA,EAAA,CAAA;kGAKd,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEqB,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc,CAAA;gBACI,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;gBAEjB,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBA4HP,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ME3I9B,gBAAgB,CAAA;IAM3B,WAAoB,CAAA,KAAiB,EAAU,cAA8B,EAAA;QAAzD,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAAU,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KAAI;IAC1D,KAAK,GAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACvF,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;;KAEvD;IAC2B,YAAY,GAAA;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACvF,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;KACvD;IAC0B,WAAW,GAAA;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACvF,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;KACvD;IAED,WAAW,GAAA;QACT,UAAU,CAAC,MAAK;;YAEd,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AAC1E,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AAC7B,gBAAA,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC;AACvC,gBAAA,IAAI,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE;AACjH,oBAAA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AAC1E,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAChE,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;AAC9B,gBAAA,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;AACnG,gBAAA,IAAI,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE;AACjH,oBAAA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AAC1E,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAChE,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;gBAC5B,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAChE,gBAAA,IAAI,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE;AACjH,oBAAA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AAC1E,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AAC1E,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;gBAC/B,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAChE,gBAAA,IAAI,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE;AACjH,oBAAA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AAC1E,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAChE,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,eAAe,EAAE;gBACtC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC;gBAC3G,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAC;AAC3C,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE;gBACnC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC;AAC3G,gBAAA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AAC1E,aAAA;YACD,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/C,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC/C,EAAE,EAAE,CAAC,CAAC;KACR;+GApEU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;;AAEzB,iBAAA,CAAA;2HAGU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAIiB,KAAK,EAAA,CAAA;sBAA3B,YAAY;uBAAC,OAAO,CAAA;gBAKO,YAAY,EAAA,CAAA;sBAAvC,YAAY;uBAAC,YAAY,CAAA;gBAIC,WAAW,EAAA,CAAA;sBAArC,YAAY;uBAAC,WAAW,CAAA;;;MCTd,oBAAoB,CAAA;IAqB/B,IAA8B,oBAAoB,CAAC,KAAU,EAAA;AAC3D,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;KAC3C;AAWD,IAAA,WAAA,GAAA;QA/BS,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QACvB,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QACpB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QACtB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AACnB,QAAA,IAAA,CAAA,YAAY,GAAG;YACtB,YAAY;YACZ,wCAAwC;SACzC,CAAC;QAGO,IAAI,CAAA,IAAA,GAAW,QAAQ,CAAC;QACjC,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAKjB,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAElC,IAAqB,CAAA,qBAAA,GAAQ,EAAE,CAAC;AAE/B,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;AACnD,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAA,CAAA,SAAS,GAAsB,IAAI,YAAY,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,gBAAgB,GAAyB,IAAI,YAAY,EAAE,CAAC;AAC5D,QAAA,IAAA,CAAA,mBAAmB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAEpE,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC1B;AAED,IAAA,WAAW,MAAK;AAEhB,IAAA,eAAe,CAAC,OAAY,EAAA;AAC1B,QAAA,OAAO,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAC1C;AAED,IAAA,OAAO,CAAC,KAAU,EAAA;AAChB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,QAAQ,MAAW;IAEnB,IAAI,GAAA;AACF,QAAA,IAAI,YAAY,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,EAAE;AACnC,YAAA,YAAY,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1E,SAAA;AAAM,aAAA;AACL,YAAA,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;AAClC,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACpC;AAED,IAAA,cAAc,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;AACD,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IACD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;AACD,IAAA,oBAAoB,CAAC,KAAU,EAAA;;KAE9B;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;+GAhFU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,69BCdjC,y0XAgVA,EAAA,MAAA,EAAA,CAAA,ouXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAY,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlUa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,y0XAAA,EAAA,MAAA,EAAA,CAAA,ouXAAA,CAAA,EAAA,CAAA;0EAKnB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAIG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEwB,oBAAoB,EAAA,CAAA;sBAAjD,KAAK;uBAAC,iBAAiB,CAAA;gBAGf,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;MExCI,mBAAmB,CAAA;AAQ9B,IAAA,WAAA,GAAA;QAJS,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAChB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;KAGlC;AAEhB,IAAA,QAAQ,MAAW;IACnB,YAAY,GAAA;QACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;+GAjBU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,oNCPhC,i2BAcA,EAAA,MAAA,EAAA,CAAA,mkEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAZ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDPa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,i2BAAA,EAAA,MAAA,EAAA,CAAA,mkEAAA,CAAA,EAAA,CAAA;0EAKlB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MENK,eAAe,CAAA;AAL5B,IAAA,WAAA,GAAA;AAYY,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AAOlD,KAAA;AAHC,IAAA,aAAa,CAAC,MAAW,EAAA;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAChC;+GAbU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,sTCP5B,2aAWA,EAAA,MAAA,EAAA,CAAA,8zCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDJa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,2aAAA,EAAA,MAAA,EAAA,CAAA,8zCAAA,CAAA,EAAA,CAAA;8BAKd,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACE,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEPK,qBAAqB,CAAA;AAKhC,IAAA,WAAA,CAAwB,MAAuB,EAAA;AAC7C,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;KACjC;AAED,IAAA,QAAQ,MAAW;+GAZR,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAa,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,yDCTlC,wKAKM,EAAA,MAAA,EAAA,CAAA,olBAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDIO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,wKAAA,EAAA,MAAA,EAAA,CAAA,olBAAA,CAAA,EAAA,CAAA;;0BAUhB,QAAQ;;;MEIV,kCAAkC,CAAA;AAgB7C,IAAA,WAAA,GAAA;QAdS,IAAyB,CAAA,yBAAA,GAAG,EAAE,CAAC;QAC/B,IAA6B,CAAA,6BAAA,GAAG,EAAE,CAAC;QACnC,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QACb,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AACtB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,IAAU,CAAA,UAAA,GAAW,iCAAiC,CAAC;QACvD,IAAY,CAAA,YAAA,GAAW,gCAAgC,CAAC;QACxD,IAAM,CAAA,MAAA,GAAY,IAAI,CAAC;QAChC,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QAEZ,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KACC;IAEjB,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AACrE,YAAA,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACrB,gBAAA,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IACD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,CAAC;SAC9D,EAAE,EAAE,CAAC,CAAC;KACR;IAED,QAAQ,CAAC,EAAO,EAAE,IAAS,EAAA;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,aAAA;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;AAChB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,OAAY,KAAK,OAAO,IAAI,EAAE,CAChC,CAAC;AACF,gBAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;oBAChB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACnC,iBAAA;AACF,aAAA;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;AAChB,SAAA;KACF;AACD,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,OAAY,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CACjD,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAED,IAAA,SAAS,CAAC,IAAS,EAAA;AACjB,QAAA,IAAI,IAAI,EAAE;YACR,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACvB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/C,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,SAAA;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAED,OAAO,GAAA;QACL,MAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChD,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;YAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEnD,YAAA,IAAI,UAAU,EAAE;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;KAC3C;IAED,cAAc,GAAA;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,EAAO,KACxD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAC5C,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,IAAI,CAAC,WAAgB,EAAA;AACnB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACzC;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;+GAzGU,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kCAAkC,uhBClB/C,g3GAsE0D,EAAA,MAAA,EAAA,CAAA,uqMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDpD7C,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAL9C,SAAS;+BACE,iCAAiC,EAAA,QAAA,EAAA,g3GAAA,EAAA,MAAA,EAAA,CAAA,uqMAAA,CAAA,EAAA,CAAA;0EAKA,SAAS,EAAA,CAAA;sBAAnD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAChC,yBAAyB,EAAA,CAAA;sBAAjC,KAAK;gBACG,6BAA6B,EAAA,CAAA;sBAArC,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACE,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEtBK,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAoB,cAA8B,EAAA;QAA9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KAAI;AACb,IAAA,WAAW,CAAC,KAAU,EAAA;AAC7D,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAC9B;AACD,IAAA,gBAAgB,CAAC,KAAU,EAAA;;QAEzB,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;KAC/C;+GATU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAX,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA,CAAA;kGAG0C,WAAW,EAAA,CAAA;sBAAnD,YAAY;uBAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCF5B,yBAAyB,CAAA;AAMpC,IAAA,WAAA,CAAoB,cAA8B,EAAA;QAA9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AADxC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KACC;AACf,IAAA,SAAS,CAAC,KAAU,EAAA;AACzD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,MAAK;YAC5B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE;AACxC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAC7B,gBAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9B,aAAA;SACF,EAAE,EAAE,CAAC,CAAC;KACR;IACwB,OAAO,GAAA;AAC9B,QAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;KAC9B;AACD,IAAA,gBAAgB,CAAC,KAAU,EAAA;QACzB,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;KAC/C;+GAxBU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,QAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AAClC,iBAAA,CAAA;kGAMW,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAEgC,SAAS,EAAA,CAAA;sBAA/C,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAUZ,OAAO,EAAA,CAAA;sBAA/B,YAAY;uBAAC,SAAS,CAAA;;;MCTZ,aAAa,CAAA;+GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBALT,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,yBAAyB,CACzF,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGnF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAFb,SAAA,EAAA,CAAC,cAAc,CAAC,YAFjB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,yBAAyB,CAAC;oBACpG,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,yBAAyB,CAAC;oBAC/F,SAAS,EAAE,CAAC,cAAc,CAAC;AAC5B,iBAAA,CAAA;;;MCJY,aAAa,CAAA;+GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAJT,YAAA,EAAA,CAAA,gBAAgB,CACrB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHd,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC5B,iBAAA,CAAA;;;MCKY,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAjB,iBAAiB,EAAA,YAAA,EAAA,CAJb,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACzB,YAAY,EAAE,WAAW,EAAC,aAAa,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CACtD,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAHlB,YAAY,EAAE,WAAW,EAAC,aAAa,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGrD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAC,aAAa,EAAE,aAAa,CAAC;oBACjE,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA,CAAA;;;MCLY,iBAAiB,CAAA;AAO5B,IAAA,WAAA,GAAA;AAHU,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;KAGlC;IAEhB,YAAY,GAAA;QACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;+GAXU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,gOCP9B,q5BAmBA,EAAA,MAAA,EAAA,CAAA,quCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDZa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,q5BAAA,EAAA,MAAA,EAAA,CAAA,quCAAA,CAAA,EAAA,CAAA;0EAKhB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MENK,qBAAqB,CAAA;AAChC,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,QAAQ,MAAW;+GAHR,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,0DCPlC,kJAIA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDGa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,kJAAA,EAAA,CAAA;;;yBEEnB,UAAU,CAAA;AACrB,IAAA,SAAS,CAAC,KAAa,EAAE,GAAG,IAAe,EAAA;AACzC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAY,CAAC;AACxC,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,OAAO,qBAAqB,CAAC;AAC9B,SAAA;AACD,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACvD;+GAVU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAVC,YAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA,CAAA;;;gCCWY,iBAAiB,CAAA;IA6B5B,IAA6B,OAAO,CAAC,OAAmB,EAAA;AACtD,QAAA,IAAI,OAAO,EAAE;;AAEX,YAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;AAC3B,SAAA;KACF;AACD,IAAA,WAAA,GAAA;QA5BS,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAG7B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;QAOnD,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAMvB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;KAUR;IAEhB,QAAQ,GAAA;AACN,QAAA,IACE,IAAI,CAAC,aAAa,KAAK,SAAS;YAChC,IAAI,CAAC,aAAa,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,aAAa,KAAK,IAAI,EAC3B;AACA,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B,SAAA;KACF;AACD,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,UAAU,CAAC,MAAK;YACd,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC;YAChE,IAAI,QAAQ,CAAC,GAAG,GAAG,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE;gBACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,GAAG,YAAY,CAAC;AAC3C,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC9C,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;AACtC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC7B,EAAE,EAAE,CAAC,CAAC;KACR;AACD,IAAA,YAAY,CAAC,YAAiB,EAAA;AAC5B,QAAA,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtC,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;IACD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;+GA1EU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,4rBCf9B,o5EAmCM,EAAA,MAAA,EAAA,CAAA,6lFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAsB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDpBOC,mBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,o5EAAA,EAAA,MAAA,EAAA,CAAA,6lFAAA,CAAA,EAAA,CAAA;0EAKhB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACe,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;gBAET,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACE,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAYuB,OAAO,EAAA,CAAA;sBAAnC,SAAS;uBAAC,YAAY,CAAA;;;MErCZ,gCAAgC,CAAA;AAM3C,IAAA,WAAA,GAAA;AAFU,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;KAEjC;IAEjB,QAAQ,GAAA;KACP;IACD,YAAY,GAAA;AACV,QAAA,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACpC;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;+GApBU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,wLCP7C,0nBAWE,EAAA,MAAA,EAAA,CAAA,gmDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvB,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDJW,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,0nBAAA,EAAA,MAAA,EAAA,CAAA,gmDAAA,CAAA,EAAA,CAAA;0EAKhC,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;8BEuBI,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBArBxB,mBAAmB;YACnB,gBAAgB;YAChB,iBAAiB;YACjB,qBAAqB;YACrBuB,mBAAiB;YACjBF,YAAU;AACV,YAAA,gCAAgC,aAGhC,YAAY;AACZ,YAAA,WAAW,aAGX,mBAAmB;YACnB,gBAAgB;YAChB,iBAAiB;YACjB,qBAAqB;YACrBE,mBAAiB;YACjB,gCAAgC,CAAA,EAAA,CAAA,CAAA,EAAA;AAGvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAZxB,YAAY;YACZ,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAWFC,iBAAe,EAAA,UAAA,EAAA,CAAA;kBAvB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,gBAAgB;wBAChB,iBAAiB;wBACjB,qBAAqB;wBACrBD,mBAAiB;wBACjBF,YAAU;wBACV,gCAAgC;AACjC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,gBAAgB;wBAChB,iBAAiB;wBACjB,qBAAqB;wBACrBE,mBAAiB;wBACjB,gCAAgC;AACjC,qBAAA;AACF,iBAAA,CAAA;;;2BCxBY,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAJR,YAAA,EAAA,CAAA,eAAe,CACpB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAEd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAHb,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGXE,cAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,CAAC;oBAC/B,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;8BCCY,eAAe,CAAA;AAK1B,IAAA,WAAA,CAAwB,MAAuB,EAAA;AAC7C,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;KACjC;AAED,IAAA,QAAQ,MAAW;+GAZR,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAZ,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,kDCT5B,sKAKM,EAAA,MAAA,EAAA,CAAA,0kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDIOa,iBAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,sKAAA,EAAA,MAAA,EAAA,CAAA,0kBAAA,CAAA,EAAA,CAAA;;0BAUT,QAAQ;;;MEJV,aAAa,CAAA;+GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAb,aAAa,EAAA,YAAA,EAAA,CAJTA,iBAAe,EAAE,qBAAqB,aAC3C,YAAY,CAAA,EAAA,OAAA,EAAA,CACZA,iBAAe,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAErC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHd,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAACA,iBAAe,EAAE,qBAAqB,CAAC;oBACtD,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAACA,iBAAe,EAAE,qBAAqB,CAAC;AAClD,iBAAA,CAAA;;;MCeY,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAZ,YAAY,EAAA,YAAA,EAAA,CAZR,kCAAkC,CAAA,EAAA,OAAA,EAAA,CAE/C,YAAY;YACZ,WAAW;YACX,WAAW;YACX,iBAAiB;YACjBF,iBAAe;YACfC,cAAY;AACZ,YAAA,aAAa,aAEL,kCAAkC,CAAA,EAAA,CAAA,CAAA,EAAA;AAEjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAVrB,YAAY;YACZ,WAAW;YACX,WAAW;YACX,iBAAiB;YACjBD,iBAAe;YACfC,cAAY;YACZ,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIJ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAbxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kCAAkC,CAAC;AAClD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,WAAW;wBACX,iBAAiB;wBACjBD,iBAAe;wBACfC,cAAY;wBACZ,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,kCAAkC,CAAC;AAC9C,iBAAA,CAAA;;;MChBY,qBAAqB,CAAA;AAKhC,IAAA,WAAA,GAAA;QAJS,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAGhB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;KAClC;AAEhB,IAAA,QAAQ,MAAW;IACnB,YAAY,GAAA;QACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;+GAdU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,0KCPlC,qoBAWA,EAAA,MAAA,EAAA,CAAA,4hDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzB,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDJa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,qoBAAA,EAAA,MAAA,EAAA,CAAA,4hDAAA,CAAA,EAAA,CAAA;0EAKlB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;MEJI,kBAAkB,CAAA;AAO7B,IAAA,WAAA,GAAA;AADU,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;KAC5B;AAEhB,IAAA,QAAQ,MAAW;AACnB,IAAA,WAAW,CAAC,GAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7B;+GAZU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,yMCP/B,qmBAWA,EAAA,MAAA,EAAA,CAAA,gnDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDJa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,qmBAAA,EAAA,MAAA,EAAA,CAAA,gnDAAA,CAAA,EAAA,CAAA;0EAKf,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MENI,mBAAmB,CAAA;AAO9B,IAAA,WAAA,GAAA;AAHU,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;KAGlC;IAEhB,YAAY,GAAA;QACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;+GAXU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,gOCPhC,8uCA8BA,EAAA,MAAA,EAAA,CAAA,s1CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDvBa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,8uCAAA,EAAA,MAAA,EAAA,CAAA,s1CAAA,CAAA,EAAA,CAAA;0EAKhB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MENK,uBAAuB,CAAA;AAClC,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,QAAQ,MAAW;+GAHR,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,0DCPpC,kJAIA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDGa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,kJAAA,EAAA,CAAA;;;MEEnB,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAClB,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;KAD/B;AAGK,IAAA,YAAY,CAAC,aAAkB,EAAA;AAChF,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,SAAA;KACF;+GATU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;iGAGyB,YAAY,EAAA,CAAA;sBAAnC,MAAM;uBAAC,cAAc,CAAA;gBAE6B,YAAY,EAAA,CAAA;sBAA9D,YAAY;uBAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,CAAA;;;MCJtC,UAAU,CAAA;AACrB,IAAA,SAAS,CAAC,KAAa,EAAE,GAAG,IAAe,EAAA;AACzC,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACvD;+GANU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA,CAAA;;;MCGY,mBAAmB,CAAA;AALhC,IAAA,WAAA,GAAA;AAeY,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;QAUnD,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAMvB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAgDzB,KAAA;IA5CC,IAA6B,OAAO,CAAC,OAAmB,EAAA;AACtD,QAAA,IAAI,OAAO,EAAE;;AAEX,YAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;AAC3B,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;AACjD,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,UAAU,CAAC,MAAK;YACd,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC;YAChE,IAAI,QAAQ,CAAC,GAAG,GAAG,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE;gBACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,GAAG,YAAY,CAAC;AAC3C,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC9C,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;SACvC,EAAE,EAAE,CAAC,CAAC;QACP,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC7B,EAAE,GAAG,CAAC,CAAC;KACT;AACD,IAAA,YAAY,CAAC,YAAiB,EAAA;AAC5B,QAAA,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACxD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACvD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;IACD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;+GA1EU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,6tBCPhC,k6GA8EA,EAAA,MAAA,EAAA,CAAA,0iIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6B,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDvEa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,k6GAAA,EAAA,MAAA,EAAA,CAAA,0iIAAA,CAAA,EAAA,CAAA;8BAKhB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACe,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;gBAET,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACE,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAauB,OAAO,EAAA,CAAA;sBAAnC,SAAS;uBAAC,YAAY,CAAA;;;MEjCZ,qBAAqB,CAAA;AAChC,IAAA,SAAS,CAAC,KAAY,EAAE,GAAW,EAAE,SAAiB,EAAA;AACpD,QAAA,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,YAAA,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;AACpC,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC3B,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC/C,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;+GAXU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAArB,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,mBAAmB;AAC1B,iBAAA,CAAA;;;MCGY,kCAAkC,CAAA;AAM7C,IAAA,WAAA,GAAA;AAFU,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;KAEjC;IAEjB,QAAQ,GAAA;KACP;IACD,YAAY,GAAA;AACV,QAAA,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACpC;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;+GApBU,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kCAAkC,wLCP/C,0nBAWE,EAAA,MAAA,EAAA,CAAA,gmDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9B,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDJW,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAL9C,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,0nBAAA,EAAA,MAAA,EAAA,CAAA,gmDAAA,CAAA,EAAA,CAAA;0EAKhC,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;ME0BI,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBArBxB,qBAAqB;YACrB,kBAAkB;YAClB,mBAAmB;YACnB,uBAAuB;YACvB,mBAAmB;YACnB,UAAU;YACV,qBAAqB;YACrB,qBAAqB;AACrB,YAAA,kCAAkC,aAE1B,YAAY,EAAE,WAAW,EAAE,aAAa,aAEhD,qBAAqB;YACrB,kBAAkB;YAClB,mBAAmB;YACnB,uBAAuB;YACvB,mBAAmB;YACnB,qBAAqB;YACrB,kCAAkC,CAAA,EAAA,CAAA,CAAA,EAAA;AAGzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAXhB,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAWvC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAvB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,qBAAqB;wBACrB,kBAAkB;wBAClB,mBAAmB;wBACnB,uBAAuB;wBACvB,mBAAmB;wBACnB,UAAU;wBACV,qBAAqB;wBACrB,qBAAqB;wBACrB,kCAAkC;AACnC,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC;AACnD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;wBACrB,kBAAkB;wBAClB,mBAAmB;wBACnB,uBAAuB;wBACvB,mBAAmB;wBACnB,qBAAqB;wBACrB,kCAAkC;AACnC,qBAAA;AACF,iBAAA,CAAA;;;MCtBY,qBAAqB,CAAA;AAiBhC,IAAA,WAAA,GAAA;QAhBA,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAEP,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;QAKtB,IAAS,CAAA,SAAA,GAAkB,EAAE,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAElB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAI,YAAY,EAAE,CAAC;QAIjE,IAAI,CAAC,cAAc,GAAG,4BAA4B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC9D;AAED,IAAA,QAAQ,MAAW;AAEnB,IAAA,cAAc,CAAC,QAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtC;AAED,IAAA,WAAW,CAAC,KAAoB,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AAEpB,QAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACtB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,iBAAA;gBACD,OAAO;AACR,aAAA;YACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACrD,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,KAAa,EAAA;;AAE9B,QAAA,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;AAC1B,QAAA,IACE,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,YAAA,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAC1D;YACA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,aAAA;AACF,SAAA;AAED,QAAA,IACE,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,YAAA,KAAK,GAAG,CAAC;AACT,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EACrC;AACA,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC1C;AACD,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;YACvC,IACE,CAAC,IAAI,CAAC,eAAe;AACrB,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS;AACrC,gBAAA,IAAI,CAAC,eAAe,GAAG,CAAC,EACxB;AACA,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,OAAO;AACR,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACxD,aAAA;AACF,SAAA;KACF;IAED,qBAAqB,CAAC,IAAS,EAAE,UAAmB,EAAA;;AAElD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACjE,YAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChE,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,aAAA;AAAM,iBAAA;AACL,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,iBAAA;AACF,aAAA;AACF,SAAA;aAAM,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AAChD,YAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5D,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChE,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,aAAA;AACF,SAAA;AAED,QAAA,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,SAAA;KACF;+GAjHU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,0SCdlC,+1GAoGA,EAAA,MAAA,EAAA,CAAA,u0JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtFa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,+1GAAA,EAAA,MAAA,EAAA,CAAA,u0JAAA,CAAA,EAAA,CAAA;0EAOjB,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAII,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;+BETI,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAhB,gBAAgB,EAAA,YAAA,EAAA,CAVzB,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAGrB,YAAY;AACZ,YAAA,WAAW,aAGX,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAPzB,YAAY;YACZ,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMF6B,kBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;AACtB,qBAAA;AACF,iBAAA,CAAA;;;MCPY,kBAAkB,CAAA;AAR/B,IAAA,WAAA,GAAA;QASE,IAAS,CAAA,SAAA,GAAe,EAAE,CAAC;QAI3B,IAAkB,CAAA,kBAAA,GAAW,cAAc,CAAC;QAC5C,IAAoB,CAAA,oBAAA,GAAW,cAAc,CAAC;QAC9C,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAEN,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAE,CAAC;AAMlE,KAAA;IAbC,IAAwB,YAAY,CAAC,GAAQ,EAAA;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;KACtB;AAOD,IAAA,SAAS,CAAC,GAAQ,EAAA;AAChB,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC/B;+GAdU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,CAAA,WAAA,EAAA,cAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX/B,0qGA6CM,EAAA,MAAA,EAAA,CAAA,6cAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvCM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EACd,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAGf,MAAA,EAAA,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,0qGAAA,EAAA,MAAA,EAAA,CAAA,6cAAA,CAAA,EAAA,CAAA;8BAI7C,YAAY,EAAA,CAAA;sBAAnC,KAAK;uBAAC,WAAW,CAAA;gBAOR,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;MEbI,iBAAiB,CAAA;AAY5B,IAAA,WAAA,GAAA;AAHU,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;AAC1C,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAU,CAAC;KAE5C;AAEjB,IAAA,QAAQ,MAAY;AAEpB,IAAA,aAAa,CAAC,MAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAChC;AAED,IAAA,sBAAsB,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACzC;+GAtBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,4ZCP9B,qoBAkBA,EAAA,MAAA,EAAA,CAAA,m2CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDXa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,qoBAAA,EAAA,MAAA,EAAA,CAAA,m2CAAA,CAAA,EAAA,CAAA;0EAKd,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBACE,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;METK,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAJR,YAAA,EAAA,CAAA,iBAAiB,CACtB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAHb,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;MCDY,mBAAmB,CAAA;AAI9B,IAAA,WAAA,GAAA;QAFS,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAEV;IAEjB,QAAQ,GAAA;KACP;+GAPU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,2FCPhC,2lCAgCM,EAAA,MAAA,EAAA,CAAA,m2DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDzBO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,2lCAAA,EAAA,MAAA,EAAA,CAAA,m2DAAA,CAAA,EAAA,CAAA;0EAMlB,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;MEAK,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAJZ,YAAA,EAAA,CAAA,mBAAmB,CACxB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAElB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAHjB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA,CAAA;;;MCEY,wBAAwB,CAAA;AACnC,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,QAAQ,MAAW;+GAHR,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVrC,4nBAWM,EAAA,MAAA,EAAA,CAAA,uiDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDLM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EACrB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,4nBAAA,EAAA,MAAA,EAAA,CAAA,uiDAAA,CAAA,EAAA,CAAA;;;MEqCZ,sBAAsB,CAAA;IAiBjC,IAA0B,cAAc,CAAC,WAAgB,EAAA;AACvD,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/B,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;KAC/D;AAMD,IAAA,WAAA,GAAA;QA1BA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAS,CAAA,SAAA,GAAG,cAAc,CAAC;QAC3B,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAE5B,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;QACtB,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAe,CAAA,eAAA,GAAkC,YAAY,CAAC;QAC9D,IAAW,CAAA,WAAA,GAAkB,CAAC,CAAC;QAC/B,IAAI,CAAA,IAAA,GAAsB,QAAQ,CAAC;QACnC,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AASzB,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;AACtD,QAAA,IAAA,CAAA,kBAAkB,GAAsB,IAAI,YAAY,EAAE,CAAC;KAE3C;IAEhB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;IAED,MAAM,CAAC,YAAwB,EAAE,GAAW,EAAA;QAC1C,IAAI,GAAG,GAAe,EAAE,CAAC;QACzB,IAAI,YAAY,EAAE,MAAM,EAAE;AACxB,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;gBACpC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,aAAC,CAAC,CAAC;AACJ,SAAA;QACD,OAAO,GAAG,IAAI,EAAE,CAAC;KAClB;IAED,cAAc,CAAC,GAAQ,EAAE,KAAU,EAAA;AACjC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACvB,SAAA;KACF;AAED,IAAA,WAAW,CAAC,GAAQ,EAAA;QAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CACzC,CAAC,QAAa,KAAK,QAAQ,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,CAC9C,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAC/C,CAAC,aAAkB,KAAK,aAAa,KAAK,GAAG,EAAE,GAAG,CACnD,CAAC;QACF,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;KAC/C;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,MAAM,EAAE,IAAI,CAAC,WAAW;gBACxB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,IAAI,EAAE,IAAI,CAAC,WAAW;AACvB,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,GAAQ,KAAI;AACzC,YAAA,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;AAC3C,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9C,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACvB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,sBAAsB,CAAC,KAAc,EAAE,IAAY,EAAA;AACjD,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;AACtC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,aAAa;kBAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE;kBACpC,CAAC,CAAC;AACP,SAAA;KACF;IAED,aAAa,GAAA;QACX,IACE,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM;AAC1D,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAC9B;YACA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE;gBACtC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;AAC3C,oBAAA,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC;AACpC,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;AACtC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC;AACpC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;IACD,IAAI,GAAA;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC1C;IAED,KAAK,GAAA;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC9C;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC3B,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,IAAI,CAAC,WAAW;AACvB,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC3B,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,KAAK,EAAE,IAAI;AAClB,SAAA,CAAC,CAAC;KACJ;IAED,qBAAqB,GAAA;QACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AAClC,YAAA,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;AACxB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,mBAAmB,CAAC,IAAS,EAAA;QAC3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;YACxB,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/C,SAAC,CAAC,CAAC;KACJ;+GAlKU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,cAAA,EAAA,CAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3CnC,ykTA+OA,ED7NI,MAAA,EAAA,CAAA,m4ZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,0TACZ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsB,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,kMACb,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjBF,kBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,2KAClB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,wBAAwB,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAgBf,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA7BlC,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,aAAa;wBACb,iBAAiB;wBACjBL,kBAAgB;wBAChB,kBAAkB;wBAClB,YAAY;wBACZ,gBAAgB;wBAChB,wBAAwB;qBACzB,EAGO,MAAA,EAAA;wBACN,WAAW;wBACX,aAAa;wBACb,QAAQ;wBACR,WAAW;wBACX,aAAa;wBACb,YAAY;wBACZ,aAAa;wBACb,MAAM;AACP,qBAAA,EAAA,OAAA,EACQ,CAAC,cAAc,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAAA,ykTAAA,EAAA,MAAA,EAAA,CAAA,m4ZAAA,CAAA,EAAA,CAAA;0EAmBtC,cAAc,EAAA,CAAA;sBAAvC,KAAK;uBAAC,aAAa,CAAA;;;MEnBT,uBAAuB,CAAA;AAyBlC,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QAvBpC,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QACnB,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AACf,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QACrC,IAAc,CAAA,cAAA,GAAU,EAAE,CAAC;QAC3B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QAEvB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QAC7C,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAkM9B,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC;KAjM8B;IAElD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AACrD,YAAA,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACvB,gBAAA,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,GAAQ,KAAI;AAC5D,YAAA,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACxB,gBAAA,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7B,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IACD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;IAED,UAAU,CAAC,IAAS,EAAE,IAAS,EAAA;AAC7B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,OAAY,KAAK,OAAO,IAAI,IAAI,CAClC,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACnC,SAAA;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AACD,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,OAAY,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CACnD,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAChD,CAAC,OAAY,KAAK,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,CAC/C,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED,IAAA,SAAS,CAAC,IAAS,EAAA;AACjB,QAAA,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,IAAI,GAAG,IAAI,CAAC,MAAM,CAChB,CAAC,IAAS,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAC/D,CAAC;AACH,aAAA;AAED,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACvB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACjD,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAU,KACpD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC7B,CAAC;AACH,aAAA;AACF,SAAA;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAED,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,IAAI,IAAI,EAAE;YACR,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAC5B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACvD,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;AACjC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED,IAAA,eAAe,CAAC,SAAkB,EAAA;AAChC,QAAA,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;AACtE,SAAA;KACF;IAED,OAAO,GAAA;QACL,MAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChD,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;YAChC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE;AACjD,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;IACD,YAAY,GAAA;QACV,MAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC1D,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;YAClC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;AACvD,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;IAED,cAAc,GAAA;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAS,KAC1C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAChD,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;IAED,oBAAoB,GAAA;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,KAAU,KACpD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CACvD,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,IAAI,CAAC,WAAgB,EAAA;AACnB,QAAA,IAAI,YAAY,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;AAClC,YAAA,YAAY,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3E,SAAA;AAAM,aAAA;YACL,YAAY,GAAG,WAAW,CAAC;AAC5B,SAAA;AACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC1C;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC5B;IAED,WAAW,CAAC,QAAa,EAAE,IAAS,EAAA;AAClC,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;gBAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACtC,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;AAC/B,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,OAAY,KAAK,OAAO,IAAI,MAAM,CACpC,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACpC,aAAC,CAAC,CAAC;AACJ,SAAA;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAED,kBAAkB,CAAC,IAAS,EAAE,IAAS,EAAA;AACrC,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACnD,SAAA;AAAM,aAAA;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAC5C,CAAC,GAAyB,KACxB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CACjD,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAC7C,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CACvC,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1C,SAAA;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED,IAAA,cAAc,CAAC,QAAe,EAAA;QAC5B,OAAO,QAAQ,EAAE,MAAM;AACrB,cAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;cACnD,KAAK,CAAC;KACX;AAED,IAAA,SAAS,CAAC,QAAe,EAAA;QACvB,OAAO,QAAQ,EAAE,MAAM;cACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;cACtE,KAAK,CAAC;KACX;AAGD,IAAA,SAAS,CAAC,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;KAClB;+GA9NU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA9B,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,kqBCzCpC,0tXAmOM,EAAA,MAAA,EAAA,CAAA,+7PAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDtMF,kBAAkB,EAClB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mQACZ,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjBU,iBAAe,EACf,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,onBACXU,cAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAoB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,8BACb,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIJ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAlBnC,SAAS;+BACE,sBAAsB,EAAA,UAAA,EAGpB,IAAI,EACP,OAAA,EAAA;wBACP,kBAAkB;wBAClB,YAAY;wBACZ,iBAAiB;wBACjBf,iBAAe;wBACf,WAAW;wBACXC,cAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,aAAa;AACd,qBAAA,EAAA,QAAA,EAAA,0tXAAA,EAAA,MAAA,EAAA,CAAA,+7PAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;mGAIQ,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACE,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;;;AE3DD,MAAM,iBAAiB,GAAG;AAC/B,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,UAAU,EAAE,GAAG;CAChB;;MC4BY,2BAA2B,CAAA;IAiBtC,IAAyB,YAAY,CAAC,KAAU,EAAA;AAC9C,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;QACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,IAA0B,cAAc,CAAC,KAAU,EAAA;AACjD,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,IAAI,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;AACpD,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,WAAW,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,UAAU,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,iBAAiB,EAAE,SAAS,IAAI,EAAE,CAAC;KACxD;AAKD,IAAA,WAAA,CAAoB,qBAA4C,EAAA;QAA5C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAnChE,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QACrB,IAAS,CAAA,SAAA,GAAe,EAAE,CAAC;QAC3B,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;QAC3B,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;QAC9B,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;QAC9B,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAU,CAAA,UAAA,GAAW,YAAY,CAAC;QAClC,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;QAC7B,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;QACtB,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,YAAY,GAAW,iBAAiB,EAAE,SAAS,IAAI,EAAE,CAAC;QAC1D,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAQ,MAAM,CAAC;QAC7B,IAAY,CAAA,YAAA,GAAW,CAAC,CAAC;QACzB,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;AAiBd,QAAA,IAAA,CAAA,sBAAsB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC/D,QAAA,IAAA,CAAA,oBAAoB,GAAsB,IAAI,YAAY,EAAE,CAAC;KAEH;AAEpE,IAAA,QAAQ,MAAW;IAEnB,mBAAmB,CAAC,QAAa,EAAE,KAAU,EAAA;AAC3C,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,EAAE,WAAW,CAAC;AAC9C,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC3C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC7C,SAAA;KACF;AAED,IAAA,WAAW,CAAC,QAAa,EAAA;QACvB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CACnD,CAAC,QAAa,KAAK,QAAQ,EAAE,WAAW,KAAK,QAAQ,EAAE,WAAW,CACnE,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CACzD,CAAC,kBAAuB,KAAK,kBAAkB,KAAK,QAAQ,EAAE,WAAW,CAC1E,CAAC;KACH;IAED,eAAe,CACb,QAAa,EACb,WAA6C,EAAA;AAE7C,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AAC/B,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,IAAI,CAAC,cAAc;AAC7B,YAAA,WAAW,EAAE,WAAW;AACzB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,EAAE,WAAW,CAAC;KAC/C;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,YAAY;YACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,cAAc,IAAI,EAAE,CAAC;AAC9D,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC;AAC1E,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,aAAa;YAClD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,cAAc,CACxD,CAAC;KACH;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,WAAW;AACzB,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,GAAG,IAAI,CAAC,WAAW,CAAC;KACxE;+GAzFU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAe,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EChCxC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,CAAA,YAAA,EAAA,cAAA,CAAA,EAAA,cAAA,EAAA,CAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wkFAwBM,EDVF,MAAA,EAAA,CAAA,i6MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuC,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kCAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,8BACjBZ,kBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAaP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAtBvC,SAAS;+BACE,0BAA0B,EAAA,UAAA,EACxB,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,aAAa;wBACb,iBAAiB;wBACjBb,kBAAgB;qBACjB,EAGO,MAAA,EAAA;wBACN,WAAW;wBACX,YAAY;wBACZ,aAAa;wBACb,kBAAkB;wBAClB,oBAAoB;wBACpB,qBAAqB;AACtB,qBAAA,EAAA,QAAA,EAAA,wkFAAA,EAAA,MAAA,EAAA,CAAA,i6MAAA,CAAA,EAAA,CAAA;yGAmBwB,YAAY,EAAA,CAAA;sBAApC,KAAK;uBAAC,YAAY,CAAA;gBAMO,cAAc,EAAA,CAAA;sBAAvC,KAAK;uBAAC,aAAa,CAAA;gBAUV,sBAAsB,EAAA,CAAA;sBAA/B,MAAM;gBACG,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;;;MEvBI,uBAAuB,CAAA;IAelC,IAAuB,SAAS,CAAC,KAAU,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;IAED,IAAiC,qBAAqB,CAAC,KAAU,EAAA;AAC/D,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACnC;AAKD,IAAA,WAAA,CAAwB,MAAuB,EAAA;QA1B/C,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAEhB,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;QACnB,IAAU,CAAA,UAAA,GAAW,MAAM,CAAC;QAC5B,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;QAC3B,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;QAC9B,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;QACvB,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AAWd,QAAA,IAAA,CAAA,kBAAkB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC3D,QAAA,IAAA,CAAA,wBAAwB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAGzE,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;KACzE;AAED,IAAA,QAAQ,MAAW;IAEnB,eAAe,CAAC,cAAmB,EAAE,KAAU,EAAA;AAC7C,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AACpD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AAClC,SAAA;AACD,QAAA,IAAI,CAAC,sBAAsB,CACzB,IAAI,CAAC,cAAc,EAAE,WAAW,EAChC,IAAI,CAAC,cAAc,CACpB,CAAC;KACH;AAED,IAAA,WAAW,CAAC,cAAmB,EAAA;QAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CACnD,CAAC,QAAa,KAAK,QAAQ,EAAE,GAAG,KAAK,cAAc,EAAE,GAAG,CACzD,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CACzD,CAAC,kBAAuB,KAAK,kBAAkB,KAAK,cAAc,EAAE,GAAG,CACxE,CAAC;KACH;AAED,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AACnC,YAAA,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACjD,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC1C,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,sBAAsB,CACzB,IAAI,CAAC,cAAc,EAAE,WAAW,EAChC,IAAI,CAAC,cAAc,CACpB,CAAC;KACH;IAED,aAAa,GAAA;QACX,IACE,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM;AAChE,YAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EACnC;AACA,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;AAChD,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC3B,MAAM,EAAE,IAAI,CAAC,WAAW;AACzB,SAAA,CAAC,CAAC;KACJ;IAED,sBAAsB,CAAC,UAAkB,EAAE,QAAa,EAAA;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAChE,QAAA,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;;AAExB,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,KAAK;AAC1C,gBAAA,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;AAC9B,YAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;;gBAEtC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAClD,aAAA;AACF,SAAA;AAAM,aAAA;;AAEL,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,QAAQ,EAAE,QAAQ,IAAI,EAAE;AACxB,gBAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;AACnC,aAAA,CAAC,CAAC;AACJ,SAAA;QACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC7D;AAED,IAAA,qBAAqB,CAAC,YAAiB,EAAA;AACrC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CACjD,IAAI,CAAC,cAAc,EAAE,WAAW,CACjC,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;YACxB,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,aAAa,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;YACjE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;gBAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3C,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,wBAAwB,CAAC,UAA6B,EAAA;AACpD,QAAA,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;AACvB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;;YAExD,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAC1D,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,eAAe,CACrD,CAAC;AACF,YAAA,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;AAC7B,gBAAA,OAAO,kBAAkB,CAAC;AAC3B,aAAA;AACF,SAAA;AAAM,aAAA;YACL,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAC/C,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,EAAE,WAAW,KAAK,UAAU,CACxD,CAAC;AACH,SAAA;AACD,QAAA,OAAO,aAAa,CAAC;KACtB;IAED,kBAAkB,CAAC,UAAkB,EAAE,IAAS,EAAA;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAChE,QAAA,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;;YAExB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CACvC,aAAa,CACd,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5D,YAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACpE,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;;gBAE/D,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAClD,aAAA;AACF,SAAA;QACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC7D;+GAtKU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlB,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EC3CpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,oBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,u9LA8DM,ED1CF,MAAA,EAAA,CAAA,umWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2C,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kCAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,8BACjBlB,kBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmB,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAkBP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA3BnC,SAAS;+BACE,sBAAsB,EAAA,UAAA,EACpB,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,aAAa;wBACb,iBAAiB;wBACjBnB,kBAAgB;qBACjB,EAGO,MAAA,EAAA;wBACN,WAAW;wBACX,gBAAgB;wBAChB,YAAY;wBACZ,aAAa;wBACb,cAAc;wBACd,eAAe;wBACf,YAAY;wBACZ,kBAAkB;wBAClB,qBAAqB;wBACrB,oBAAoB;wBACpB,YAAY;AACb,qBAAA,EAAA,QAAA,EAAA,u9LAAA,EAAA,MAAA,EAAA,CAAA,umWAAA,CAAA,EAAA,CAAA;;0BA6BY,QAAQ;4CAZE,SAAS,EAAA,CAAA;sBAA/B,KAAK;uBAAC,UAAU,CAAA;gBAIgB,qBAAqB,EAAA,CAAA;sBAArD,KAAK;uBAAC,oBAAoB,CAAA;gBAKjB,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,wBAAwB,EAAA,CAAA;sBAAjC,MAAM;;;MExBI,gCAAgC,CAAA;IAwB3C,IAAiC,sBAAsB,CAAC,KAAU,EAAA;AAChE,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;KACpC;AAQD,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QApC1C,IAAS,CAAA,SAAA,GAAG,UAAU,CAAC;QACvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAKjB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAErB,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAC;QAChC,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QACpB,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;QAC5B,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;QAC7B,IAAqB,CAAA,qBAAA,GAAQ,EAAE,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;QAC9B,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QAQf,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;AAEhC,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAE,CAAC;KAKT;IAE9C,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,iBAAiB,GAAA;QACf,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,UAAU,GAAG;AACf,YAAA,MAAM,EAAE,IAAI,CAAC,mBAAmB,IAAI,CAAC;AACrC,YAAA,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;AACrC,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC;SAC5B,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU;aACxC,iBAAiB,CAAC,UAAU,CAAC;AAC7B,aAAA,SAAS,CACR,CAAC,GAAQ,KAAI;YACX,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,QAAa,KAAI;gBAC/C,OAAO;AACL,oBAAA,GAAG,QAAQ;oBACX,IAAI,EAAE,QAAQ,EAAE,aAAa;iBAC9B,CAAC;AACJ,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM;AAC/C,kBAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;kBACtB,EAAE,CAAC;AACP,YAAA,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;AACxD,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAChC,SAAC,EACD,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAChC,SAAC,CACF,CAAC;KACL;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,UAAU,GAAG;AACf,YAAA,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;AACrC,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE;SAC3D,CAAC;AACF,QAAA,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,SAAS,CAC1D,CAAC,GAAQ,KAAI;YACX,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;gBACrC,OAAO;oBACL,KAAK,EAAE,IAAI,EAAE,gBAAgB;oBAC7B,KAAK,EAAE,IAAI,EAAE,aAAa;oBAC1B,IAAI,EAAE,IAAI,EAAE,YAAY;iBACzB,CAAC;AACJ,aAAC,CAAC,CAAC;SACJ,EACD,CAAC,GAAQ,KAAM,GAAC,CACjB,CAAC;KACH;AAED,IAAA,WAAW,CAAC,WAAiB,EAAA;QAC3B,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,OAAO,GAAG;AACZ,YAAA,CAAC,EAAE,IAAI,CAAC,eAAe,IAAI,CAAC;AAC5B,YAAA,CAAC,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;AAC1B,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC;AAC3B,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,IAAI,EAAE;YACnD,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;SAClE,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CACjE,CAAC,GAAQ,KAAI;YACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC5B,SAAC,EACD,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC5B,SAAC,CACF,CAAC;KACH;AAED,IAAA,oBAAoB,CAAC,GAAQ,EAAA;QAC3B,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,IAAS,KAAI;YAClC,OAAO;AACL,gBAAA,GAAG,IAAI;gBACP,IAAI,EAAE,IAAI,EAAE,QAAQ;gBACpB,SAAS,EAAE,IAAI,EAAE,aAAa;gBAC9B,GAAG,EAAE,IAAI,EAAE,eAAe;AAC1B,gBAAA,WAAW,EAAE;oBACX,IAAI,EAAE,IAAI,EAAE,UAAU;oBACtB,KAAK,EAAE,IAAI,EAAE,WAAW;AACxB,oBAAA,UAAU,EAAE,IAAI,EAAE,gBAAgB,IAAI,EAAE;oBACxC,SAAS,EAAE,IAAI,EAAE,cAAc;AAChC,iBAAA;AACD,gBAAA,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,MAAW,KAAI;oBAC5C,OAAO;wBACL,IAAI,EAAE,MAAM,EAAE,OAAO;qBACtB,CAAC;AACJ,iBAAC,CAAC;aACH,CAAC;AACJ,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,EAAE,QAAQ,CAAC;AACtC,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;KACtC;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,EAAE,MAAM,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,gBAAgB,GAAA;AACd,QAAA,MAAM,SAAS,GACb,IAAI,CAAC,cAAc,EAAE,iBAAiB;AACtC,YAAA,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;KACvC;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,SAAA;KACF;IAED,KAAK,GAAA;QACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KACtD;IAED,IAAI,GAAA;QACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACnD;AAED,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,EAAE,MAAM,CAAC;QACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,wBAAwB,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACvD;AAED,IAAA,uBAAuB,CAAC,YAAiB,EAAA;AACvC,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC9B,QAAA,YAAY,EAAE,OAAO,CAAC,CAAC,QAAa,KAAI;AACtC,YAAA,IAAI,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,eAAe,EAAE;AAC/C,gBAAA,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACjD,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AACjE,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,sBAAsB,CAAC,YAAiB,EAAA;AACtC,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAC7B,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;YACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/C,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,WAAW,IAAI,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE;YAC7D,IAAI,CAAC,8BAA8B,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,8BAA8B,EAAE,kBAAkB,CACrD,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EACrB,KAAK,CACN,CAAC;AACH,SAAA;KACF;+GArOU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,CAAA,oBAAA,EAAA,wBAAA,CAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gCAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5C7C,imGAyBM,EDEF,MAAA,EAAA,CAAA,mtDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,oIACZ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,iBAAiB,EACjB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAAiB,kBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,2BAA2B,oRAC3B,uBAAuB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACvB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqB,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAOH,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBArB5C,SAAS;+BACE,gCAAgC,EAAA,UAAA,EAC9B,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,aAAa;wBACb,iBAAiB;wBACjBtB,kBAAgB;wBAChB,kBAAkB;wBAClB,2BAA2B;wBAC3B,uBAAuB;wBACvB,gBAAgB;wBAChB,YAAY;AACb,qBAAA,EAAA,MAAA,EAGO,CAAC,aAAa,CAAC,EACd,OAAA,EAAA,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,imGAAA,EAAA,MAAA,EAAA,CAAA,mtDAAA,CAAA,EAAA,CAAA;8FA0BM,sBAAsB,EAAA,CAAA;sBAAtD,KAAK;uBAAC,oBAAoB,CAAA;gBAMlB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAKN,8BAA8B,EAAA,CAAA;sBAD7B,SAAS;uBAAC,aAAa,CAAA;;;MExEb,oBAAoB,CAAA;AAC/B,IAAA,SAAS,CAAC,KAAU,EAAA;AAClB,QAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,QAAA,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO;aAC9B,MAAM,CAAC,CAAC,UAAe,KAAK,UAAU,CAAC,aAAa,CAAC,CAAC;AACtD,aAAA,GAAG,CAAC,CAAC,UAAe,KAAI;YACvB,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;AAC9C,YAAA,OAAO,UAAU,CAAC;AACpB,SAAC,CAAC,CAAC;AACL,QAAA,IAAI,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,iBAAiB,EAAE;YAC/C,aAAa,CAAC,IAAI,CAAC;gBACjB,SAAS,EAAE,KAAK,EAAE,UAAU;AAC5B,gBAAA,WAAW,EAAE,IAAI;AAClB,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,OAAO,aAAa,CAAC;KACtB;+GAhBU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAApB,oBAAoB,EAAA,IAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,kBAAkB;AACxB,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAA;;;iCCAa,kBAAkB,CAAA;IAC9B,SAAS,CAAC,GAAa,EAAE,IAAW,EAAA;QAClC,MAAM,WAAW,GAAG,IAAI;AACrB,aAAA,MAAM,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,aAAA,GAAG,CAAC,CAAC,IAAI,KAAI;YACZ,OAAO;gBACL,IAAI,EAAE,IAAI,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI,EAAE,KAAK;AAClB,gBAAA,MAAM,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;aAC9B,CAAC;AACJ,SAAC,CAAC,CAAC;AACL,QAAA,OAAO,WAAW,CAAC;KACpB;+GAZW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlBuB,oBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAA;;;MCGY,qBAAqB,CAAA;AAChC,IAAA,SAAS,CAAC,SAAc,EAAA;QACtB,IAAI,OAAO,GAAY,IAAI,CAAC;QAC5B,IAAI,SAAS,EAAE,UAAU,EAAE;AACzB,YAAA,IACE,SAAS,CAAC,IAAI,KAAK,gBAAgB;AACnC,gBAAA,SAAS,CAAC,IAAI,KAAK,WAAW,EAC9B;gBACA,MAAM,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACrC,gBAAA,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAClE,OAAO,GAAG,KAAK,CAAC;AACjB,iBAAA;AACF,aAAA;AAAM,iBAAA,IACL,SAAS,CAAC,IAAI,KAAK,UAAU;AAC7B,gBAAA,SAAS,CAAC,IAAI,KAAK,UAAU,EAC7B;gBACA,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAC7B,gBAAA,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,EAAE,iBAAiB,EAAE;oBACtD,gBAAgB,GAAG,IAAI,CAAC;AACzB,iBAAA;gBACD,IAAI,CAAC,gBAAgB,EAAE;AACrB,oBAAA,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE;wBACtC,IAAI,MAAM,CAAC,WAAW,EAAE;4BACtB,gBAAgB,GAAG,IAAI,CAAC;4BACxB,MAAM;AACP,yBAAA;AACF,qBAAA;AACF,iBAAA;gBAED,IAAI,CAAC,gBAAgB,EAAE;oBACrB,OAAO,GAAG,KAAK,CAAC;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;;AAEN,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;+GAtCU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAArB,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,mBAAmB;AACzB,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAA;;;MCAY,0BAA0B,CAAA;AACrC,IAAA,SAAS,CAAC,KAAS,EAAE,GAAG,IAAW,EAAA;AACjC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,UAAU,KAAK,cAAc,EAAE;AACjC,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAC9B,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAC7D,CAAC;AACF,YAAA,OAAO,aAAa,CAAC;AACtB,SAAA;AAAM,aAAA;YACL,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnE,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;KACF;+GAZU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAA1B,0BAA0B,EAAA,IAAA,EAAA,wBAAA,EAAA,CAAA,CAAA,EAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,wBAAwB;AAC/B,iBAAA,CAAA;;;MCCY,oBAAoB,CAAA;AAC/B,IAAA,SAAS,CAAC,QAAgB,EAAA;QACxB,MAAM,WAAW,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC;QAEpD,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,MAAM,KAAK,GAAG,WAAW,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAErD,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,SAAA;KACF;+GAhBU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAApB,oBAAoB,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,eAAe;AACtB,iBAAA,CAAA;;;MCAY,wBAAwB,CAAA;IACnC,SAAS,CAAC,GAAU,EAAE,IAAW,EAAA;AAC/B,QAAA,OAAO,IAAI;aACR,MAAM,CAAC,CAAC,IAAS,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;AACvE,aAAA,GAAG,CAAC,CAAC,IAAS,KAAI;YACjB,OAAO;AACL,gBAAA,GAAG,IAAI;gBACP,GAAG,EAAE,IAAI,EAAE,GAAG;aACf,CAAC;AACJ,SAAC,CAAC,CAAC;KACN;+GAVU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAxB,wBAAwB,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,sBAAsB;AAC7B,iBAAA,CAAA;;;MC0BY,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,iBAjB5B,oBAAoB;YACpBA,oBAAkB;YAClB,oBAAoB;YACpB,qBAAqB;YACrB,0BAA0B;YAC1B,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAEhB,YAAY,CAAA,EAAA,OAAA,EAAA,CAEpB,oBAAoB;YACpBA,oBAAkB;YAClB,oBAAoB;YACpB,qBAAqB;YACrB,0BAA0B;YAC1B,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAVpB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAUX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAnB/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;wBACpBA,oBAAkB;wBAClB,oBAAoB;wBACpB,qBAAqB;wBACrB,0BAA0B;wBAC1B,wBAAwB;AACzB,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpBA,oBAAkB;wBAClB,oBAAoB;wBACpB,qBAAqB;wBACrB,0BAA0B;wBAC1B,wBAAwB;AACzB,qBAAA;AACF,iBAAA,CAAA;;;MCmBY,iCAAiC,CAAA;IAkB5C,IAAiC,qBAAqB,CAAC,KAAU,EAAA;AAC/D,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;AASD,IAAA,WAAA,CAAwB,MAAuB,EAAA;QA5B/C,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAGhB,IAAU,CAAA,UAAA,GAAW,MAAM,CAAC;QAC5B,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;QAC3B,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;QAC9B,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;QACvB,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;;QAE1B,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;QACxB,IAAI,CAAA,IAAA,GAAsB,QAAQ,CAAC;QAE1B,IAA4B,CAAA,4BAAA,GAAQ,EAAE,CAAC;QAMvC,IAAsB,CAAA,sBAAA,GAAQ,EAAE,CAAC;QACjC,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAEzB,QAAA,IAAA,CAAA,kBAAkB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC3D,QAAA,IAAA,CAAA,4BAA4B,GACpC,IAAI,YAAY,EAAE,CAAC;AAGnB,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;KACzE;AAED,IAAA,QAAQ,MAAW;IAEnB,eAAe,CAAC,cAAmB,EAAE,KAAU,EAAA;AAC7C,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AACjD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AAClC,SAAA;KACF;AAED,IAAA,WAAW,CAAC,cAAmB,EAAA;QAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CACnD,CAAC,QAAa,KAAK,QAAQ,EAAE,GAAG,KAAK,cAAc,EAAE,GAAG,CACzD,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CACzD,CAAC,kBAAuB,KAAK,kBAAkB,KAAK,cAAc,EAAE,GAAG,CACxE,CAAC;QACF,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,4BAA4B,EAAE,MAAM,CAC3E,CAAC,QAAa,KAAK,QAAQ,KAAK,cAAc,EAAE,GAAG,CACpD,CAAC;QACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAC/D,CAAC,QAAa,KAAK,QAAQ,EAAE,GAAG,KAAK,cAAc,EAAE,GAAG,CACzD,CAAC;QACF,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACrE;AAED,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AACzC,YAAA,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACjD,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC1C,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,sBAAsB,CACzB,IAAI,CAAC,aAAa,EAAE,SAAS,EAC7B,IAAI,CAAC,aAAa,CACnB,CAAC;KACH;IAED,aAAa,GAAA;QACX,IACE,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM;AAChE,YAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EACnC;YACA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;gBACrC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;AAChD,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC3B,MAAM,EAAE,IAAI,CAAC,WAAW;AACzB,SAAA,CAAC,CAAC;KACJ;IAED,sBAAsB,CAAC,SAAiB,EAAE,OAAY,EAAA;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC7D,QAAA,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;;AAEvB,YAAA,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,cAAc;AACtD,gBAAA,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,QAAQ;gBAChD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;AACtD,YAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;;gBAEtC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACrD,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,CAAC,EAAE;;AAE5C,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBAC/B,OAAO,EAAE,OAAO,IAAI,EAAE;gBACtB,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;AAC7D,gBAAA,cAAc,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;AAC5C,aAAA,CAAC,CAAC;AACJ,SAAA;QACD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACrE;AAED,IAAA,qBAAqB,CAAC,YAAiB,EAAA;AACrC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAC/C,IAAI,CAAC,aAAa,EAAE,SAAS,CAC9B,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;YACvB,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,cAAc,IAAI,EAAE,CAAC;YACzE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;gBAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3C,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,uBAAuB,CAAC,UAA6B,EAAA;AACnD,QAAA,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;QACtB,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAClD,CAAC,GAAQ,KAAK,GAAG,EAAE,OAAO,EAAE,SAAS,KAAK,UAAU,CACrD,CAAC;AACF,QAAA,OAAO,YAAY,CAAC;KACrB;AAED,IAAA,4BAA4B,CAAC,cAAmB,EAAA;AAC9C,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAC5D,CAAC,IAAS,KAAI;YACZ,IAAI,sBAAsB,GAAG,IAAI,EAAE,cAAc,EAAE,MAAM,CACvD,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,cAAc,EAAE,GAAG,CACjD,CAAC;YACF,OAAO;AACL,gBAAA,GAAG,IAAI;AACP,gBAAA,cAAc,EAAE,sBAAsB;AACtC,gBAAA,QAAQ,EAAE;AACR,oBAAA,IAAI,IAAI,GAAG,CACT,sBAAsB;yBACnB,GAAG,CAAC,CAAC,GAAQ,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AACxC,0BAAE,IAAI,EAAE,CACX,IAAI,EAAE,CAAC;AACT,iBAAA;aACF,CAAC;AACJ,SAAC,CACF,CAAC;AAEF,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAC9D,CAAC,IAAS,KAAI;AACZ,YAAA,OAAO,IAAI,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC;AAC1C,SAAC,CACF,CAAC;QACF,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACrE;AAED,IAAA,iBAAiB,CAAC,sBAA2B,EAAA;QAC3C,IAAI,KAAK,GAAQ,IAAI,GAAG,CACtB,sBAAsB,EAAE,GAAG,CACzB,CAAC,cAAmB,KAAK,cAAc,EAAE,aAAa,IAAI,EAAE,CAC7D,CACF,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAC/C,IAAI,CAAC,aAAa,EAAE,SAAS,CAC9B,CAAC;AACF,YAAA,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;AACvB,gBAAA,MAAM,mBAAmB,GACvB,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC;AAC5D,gBAAA,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC;AACrD,aAAA;AACF,SAAA;AACD,QAAA,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KACxC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAC7C,CAAC;KACH;+GApMU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAzC,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,utBC/C9C,oxNA0FM,EAAA,MAAA,EAAA,CAAA,umWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpEF,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2C,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kCAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,kMACb,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjBjB,kBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmB,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,mGACnB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAK,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAkBF,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBA7B7C,SAAS;+BACE,gCAAgC,EAAA,UAAA,EAC9B,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,aAAa;wBACb,iBAAiB;wBACjBxB,kBAAgB;wBAChB,mBAAmB;wBACnB,WAAW;qBAEZ,EAGO,MAAA,EAAA;wBACN,WAAW;wBACX,eAAe;wBACf,YAAY;wBACZ,aAAa;wBACb,cAAc;wBACd,eAAe;wBACf,YAAY;wBACZ,kBAAkB;wBAClB,qBAAqB;wBACrB,MAAM;AACP,qBAAA,EAAA,QAAA,EAAA,oxNAAA,EAAA,MAAA,EAAA,CAAA,umWAAA,CAAA,EAAA,CAAA;;0BA+BY,QAAQ;4CAbZ,4BAA4B,EAAA,CAAA;sBAApC,KAAK;gBAE2B,qBAAqB,EAAA,CAAA;sBAArD,KAAK;uBAAC,oBAAoB,CAAA;gBAIlB,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,4BAA4B,EAAA,CAAA;sBAArC,MAAM;;;MElDI,8BAA8B,CAAA;IAUzC,IAAkC,mCAAmC,CACnE,KAAU,EAAA;AAEV,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;KAClC;IAED,IAAyB,YAAY,CAAC,KAAU,EAAA;AAC9C,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;QAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;KAElD;IAED,IAAqC,yBAAyB,CAAC,KAAU,EAAA;AACvE,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;KACpC;AAKD,IAAA,WAAA,GAAA;QA5BA,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;QAE9B,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAc,CAAA,cAAA,GAAW,MAAM,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;QAE9B,IAAsB,CAAA,sBAAA,GAAU,EAAE,CAAC;AAmBzB,QAAA,IAAA,CAAA,sBAAsB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC/D,QAAA,IAAA,CAAA,oBAAoB,GAAsB,IAAI,YAAY,EAAE,CAAC;KAEvD;AAEhB,IAAA,QAAQ,MAAW;AAEnB,IAAA,eAAe,CAAC,QAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;AACjC,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,IAAI,CAAC,gBAAgB;AAChC,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,EAAE,WAAW,CAAC;KAC/C;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,WAAW;AACzB,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,sBAAsB,CAAC,YAAiB,EAAA;AACtC,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;QACtB,YAAY,GAAG,YAAY,CAAC,SAAS,CACnC,CAAC,GAAQ,KAAK,GAAG,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC,aAAa,EAAE,SAAS,CACxE,CAAC;AACF,QAAA,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;YACvB,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;AACjE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC/B,SAAA;KACF;+GA5DU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,ECvB3C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,mCAAA,EAAA,CAAA,qBAAA,EAAA,qCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,YAAA,EAAA,cAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,wBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,w6FA+BM,EDnBF,MAAA,EAAA,CAAA,+uNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,8BACjBzB,kBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMP,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAf1C,SAAS;+BACE,8BAA8B,EAAA,UAAA,EAC5B,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,aAAa;wBACb,iBAAiB;wBACjB1B,kBAAgB;AACjB,qBAAA,EAAA,MAAA,EAGO,CAAC,aAAa,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,w6FAAA,EAAA,MAAA,EAAA,CAAA,+uNAAA,CAAA,EAAA,CAAA;0EAYxB,mCAAmC,EAAA,CAAA;sBAApE,KAAK;uBAAC,qBAAqB,CAAA;gBAMH,YAAY,EAAA,CAAA;sBAApC,KAAK;uBAAC,YAAY,CAAA;gBAOkB,yBAAyB,EAAA,CAAA;sBAA7D,KAAK;uBAAC,wBAAwB,CAAA;gBAIrB,sBAAsB,EAAA,CAAA;sBAA/B,MAAM;gBACG,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;;;AEnDF,MAAM,yBAAyB,GAAG;AACvC,IAAA;AACE,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,GAAG,EAAE,aAAa;AAClB,QAAA,IAAI,EAAE,CAAC;AACR,KAAA;AACD,IAAA,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE;AAC7E,IAAA;AACE,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,GAAG,EAAE,mBAAmB;AACxB,QAAA,IAAI,EAAE,CAAC;AACR,KAAA;AACD,IAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;CACxE;;MCoCY,qCAAqC,CAAA;IAkChD,IAAqC,yBAAyB,CAAC,IAAS,EAAA;AACtE,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,IAAI,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACzF,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KAClE;AASD,IAAA,WAAA,CAAoB,UAAsB,EAAU,qBAA4C,EAAU,cAAkC,EAAA;QAAxH,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAAU,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAAU,IAAc,CAAA,cAAA,GAAd,cAAc,CAAoB;QAhD5I,IAAY,CAAA,YAAA,GAAG,yBAAyB,CAAC;QACzC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAW,CAAA,WAAA,GAAkB,CAAC,CAAC;QAE/B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAElB,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAsB,CAAA,sBAAA,GAAU,EAAE,CAAC;QACnC,IAAyB,CAAA,yBAAA,GAAU,EAAE,CAAC;QACtC,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAI1B,IAAkB,CAAA,kBAAA,GAAW,CAAC,CAAC;QAC/B,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAC;QAChC,IAAyB,CAAA,yBAAA,GAAW,CAAC,CAAC;AAGtC,QAAA,IAAA,CAAA,kBAAkB,GAAQ;AACxB,YAAA,IAAI,EAAE,EAAE;SACT,CAAC;QACF,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAmB,CAAA,mBAAA,GAAU,EAAE,CAAC;QAChC,IAAwB,CAAA,wBAAA,GAAU,EAAE,CAAC;QACrC,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;QAapB,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAI,CAAA,IAAA,GAAsB,QAAQ,CAAC;AAE5C,QAAA,IAAA,CAAA,SAAS,GAAsB,IAAI,YAAY,EAAE,CAAC;QAMhD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;KACjE;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAED,KAAK,GAAA;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;KACrD;IAED,IAAI,GAAA;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KAClD;AAED,IAAA,eAAe,CAAC,KAAW,EAAA;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,cAAc,EAAE,OAAO;AACvB,gBAAA,CAAC,EAAE,EAAE;gBACL,UAAU,EAAE,IAAI,CAAC,YAAY;AAC7B,gBAAA,UAAU,EAAE;AACV,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,UAAU,EAAE,EAAE;oBACd,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAClE,oBAAA,WAAW,EAAE,EAAE;AACf,oBAAA,WAAW,EAAE,EAAE;AACf,oBAAA,sBAAsB,EAAE,EAAE;AAC3B,iBAAA;AACD,gBAAA,MAAM,EAAE,IAAI,CAAC,kBAAkB,IAAI,CAAC;gBACpC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;AACjC,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3B,gBAAA,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU;AACjD,gBAAA,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ;AAC7C,gBAAA,kBAAkB,EAAE,IAAI,CAAC,oBAAoB,EAAE,kBAAkB;AACjE,gBAAA,cAAc,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc;AACzD,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACd,aAAA;SACF,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AACpE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;;AAE3B,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;gBAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3C;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,mBAAmB,CAAC,KAAU,EAAA;QAC5B,IAAI,CAAC,kBAAkB,GAAG,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAED,IAAA,uBAAuB,CAAC,KAAU,EAAA;QAChC,IAAI,CAAC,mBAAmB,GAAG,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACnD;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,8BAA8B,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;KACzE;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE,IAAI,CAAC;QAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,SAAA;AAED,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAChC;AAED,IAAA,gBAAgB,CAAC,YAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,cAAc,EAAE,OAAO;AACvB,gBAAA,CAAC,EAAE,EAAE;gBACL,UAAU,EAAE,IAAI,CAAC,YAAY;AAC7B,gBAAA,UAAU,EAAE;AACV,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,UAAU,EAAE,EAAE;oBACd,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAClE,oBAAA,WAAW,EAAE,EAAE;AACf,oBAAA,WAAW,EAAE,EAAE;AACf,oBAAA,sBAAsB,EAAE,EAAE;AAC3B,iBAAA;AACD,gBAAA,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AACjC,gBAAA,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrB,gBAAA,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU;AACjD,gBAAA,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ;AAC7C,gBAAA,kBAAkB,EAAE,IAAI,CAAC,oBAAoB,EAAE,kBAAkB;AACjE,gBAAA,cAAc,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc;AACzD,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACd,aAAA;SACF,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AACtD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,gBAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK;oBACxB,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,GAAG,EAAE,eAAe,EAAE,SAAS,CAAC;AACjE,gBAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK;oBACxB,GAAG,EAAE,aAAa,EAAE,MAAM,GAAG,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC;AAC7D,gBAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK;oBACxB,GAAG,EAAE,aAAa,EAAE,MAAM,GAAG,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC;AAC7D,gBAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK;oBACxB,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC;;aAExD;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,sBAAsB,CAAC,OAAY,EAAA;QACjC,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;AAC/B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;;AAE3B,QAAA,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,OAAO,EAAE,GAAG;AAChB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,cAAc,EAAE,OAAO;YACvB,UAAU,EAAE,IAAI,CAAC,YAAY;AAC7B,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,UAAU,EAAE,EAAE;gBACd,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAClE,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,sBAAsB,EAAE,EAAE;AAC3B,aAAA;AACD,YAAA,IAAI,EAAE,IAAI,CAAC,mBAAmB,IAAI,CAAC;;AAEnC,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,aAAa,EAAE;AACb,gBAAA,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU;AACjD,gBAAA,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ;AAC7C,gBAAA,kBAAkB,EAAE,IAAI,CAAC,oBAAoB,EAAE,kBAAkB;AACjE,gBAAA,cAAc,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc;AACzD,gBAAA,gBAAgB,EAAE,EAAE;;AAEpB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,UAAU,EAAE;AACV,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,UAAU,EAAE,EAAE;oBACd,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAClE,oBAAA,WAAW,EAAE,EAAE;AACf,oBAAA,WAAW,EAAE,EAAE;AACf,oBAAA,sBAAsB,EAAE,EAAE;AAC3B,iBAAA;AACF,aAAA;SACF,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AACxE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,gBAAA,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;gBAC/B,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACrC,gBAAA,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;gBACnC,IAAI,CAAC,uBAAuB,EAAE,CAAC;aAChC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC7B;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,EAAE,QAAQ,CAAC;QACvC,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;;KAEnD;AAED,IAAA,yBAAyB,CAAC,KAAU,EAAA;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAAE,QAAQ,CAAC;QACxC,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;AAED,IAAA,uBAAuB,CAAC,KAAW,EAAA;QACjC,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;AACvC,SAAA;;AAGD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAClD,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AACtE,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;AACpE,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,yBAAyB,IAAI,CAAC,CAAC,CAAC;;;;;QAKtE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/D,QAAA,IAAI,aAAa,GAAG;AAClB,YAAA,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU;AACjD,YAAA,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ;AAC7C,YAAA,kBAAkB,EAAE,IAAI,CAAC,oBAAoB,EAAE,kBAAkB;AACjE,YAAA,cAAc,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc;AACzD,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,UAAU,EAAE,EAAE;gBACd,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAClE,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,sBAAsB,EAAE,EAAE;AAC3B,aAAA;SACF,CAAC;AAEF,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU;AACtC,aAAA,sBAAsB,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC;AAC7D,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,MAAM,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;gBACzC,MAAM,UAAU,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;gBAE5E,IAAI,CAAC,kBAAkB,GAAG;AACxB,oBAAA,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,qBAAqB,IAAI,EAAE,CAAC;AAClI,oBAAA,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;AAClC,oBAAA,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC;AAC1D,oBAAA,YAAY,EAAE,WAAW;AACzB,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,UAAU,EAAE,UAAU;AACtB,oBAAA,QAAQ,EAAE,QAAQ;iBACnB,CAAC;AACF,gBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;aACnC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;aACnC;AACF,SAAA,CAAC,CAAC;KACN;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,EAAE,MAAM,CAAC;QAC/C,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;AAED,IAAA,oBAAoB,CAAC,gBAAuB,EAAE,KAAY,EAAE,qBAA4B,EAAA;QACtF,MAAM,IAAI,GAAG,gBAAgB,EAAE,GAAG,CAAC,CAAC,cAAmB,KAAI;AACzD,YAAA,MAAM,uBAAuB,GAAG,cAAc,EAAE,sBAAsB,IAAI,EAAE,CAAC;YAE7E,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAAY,KAAI;AAC/E,gBAAA,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAW,KAAK,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC;gBAC5E,OAAO;AACL,oBAAA,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE;AACpB,oBAAA,EAAE,EAAE,IAAI;iBACT,CAAC;AACJ,aAAC,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACpG,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YAE5G,OAAO;AACL,gBAAA,GAAG,cAAc;AACjB,gBAAA,IAAI,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE;AACjC,gBAAA,SAAS,EAAC,cAAc,EAAE,SAAS,GAAG,OAAO,GAAG,cAAc,EAAE,SAAS,GAAG,IAAI,GAAE,EAAE;gBACpF,GAAG,EAAE,cAAc,EAAE,GAAG;AACxB,gBAAA,WAAW,EAAE;AACX,oBAAA,IAAI,EAAE,eAAe,EAAE,IAAI,IAAI,EAAE;AACjC,oBAAA,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,EAAE;AACnC,oBAAA,UAAU,EAAE,eAAe,EAAE,MAAM,IAAI,EAAE;AACzC,oBAAA,SAAS,EAAE,eAAe,EAAE,UAAU,IAAI,EAAE;AAC7C,iBAAA;AACD,gBAAA,WAAW,EAAE;oBACX,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE;oBACpC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;oBACtC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE;oBAC5C,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE;oBAC/C,kBAAkB,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,IAAS,MAAM;wBACvD,WAAW,EAAE,IAAI,EAAE,IAAI;wBACvB,WAAW,EAAE,IAAI,EAAE,MAAM;wBACzB,iBAAiB,EAAE,IAAI,EAAE,UAAU;qBACpC,CAAC,CAAC,IAAI,EAAE;AACV,iBAAA;AACD,gBAAA,UAAU,EAAE,2BAA2B;AACvC,gBAAA,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW;aAClD,CAAC;AACJ,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;IAED,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;KACpC;AAED,IAAA,4BAA4B,CAAC,KAAU,EAAA;AACrC,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KAC1D;AAED,IAAA,qBAAqB,CAAC,YAAiB,EAAA;AACrC,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAC7B,QAAA,YAAY,EAAE,OAAO,CAAC,CAAC,QAAa,KAAI;YACtC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC7D,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,sBAAsB,CAAC,YAAiB,EAAA;AACtC,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;QACtB,YAAY,GAAG,YAAY,CAAC,SAAS,CACnC,CAAC,GAAQ,KAAK,GAAG,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC,eAAe,EAAE,SAAS,CAC1E,CAAC;AACF,QAAA,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;YACvB,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;AACjE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC/B,SAAA;KACF;AAED,IAAA,8BAA8B,CAAC,YAAiB,EAAA;AAC9C,QAAA,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,wBAAwB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;KAC5E;AAED,IAAA,gBAAgB,CAAC,UAAiB,EAAA;QAChC,IAAI,aAAa,GAAU,EAAE,CAAC;AAC9B,QAAA,aAAa,GAAG,UAAU,EAAE,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;AAEvD,QAAA,OAAO,aAAa,CAAC;KACtB;+GAjaU,qCAAqC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,EAAA,yBAAA,EAAA,CAAA,wBAAA,EAAA,2BAAA,CAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAFrC,CAACL,oBAAkB,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gCAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnDjC,2wJAwEM,EDvCF,MAAA,EAAA,CAAA,+uDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,8BACf,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB9B,kBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAGhB,iCAAiC,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,8BAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,8BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEjC,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+B,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEZ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAOV,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAxBjD,SAAS;+BACE,oCAAoC,EAAA,UAAA,EAClC,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,aAAa;wBACb,iBAAiB;wBACjBjC,kBAAgB;wBAChB,kBAAkB;wBAClB,2BAA2B;wBAC3B,iCAAiC;wBACjC,8BAA8B;wBAC9B,gBAAgB;wBAChB,YAAY;wBACZ,wBAAwB;wBACxB,mBAAmB;AACpB,qBAAA,EAAA,OAAA,EAGQ,CAAC,WAAW,CAAC,EACX,SAAA,EAAA,CAACuB,oBAAkB,CAAC,EAAA,QAAA,EAAA,2wJAAA,EAAA,MAAA,EAAA,CAAA,+uDAAA,CAAA,EAAA,CAAA;+JAoCM,yBAAyB,EAAA,CAAA;sBAA7D,KAAK;uBAAC,wBAAwB,CAAA;gBAOtB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKN,8BAA8B,EAAA,CAAA;sBAD7B,SAAS;uBAAC,aAAa,CAAA;;;AE1F1B;MA0Ea,kBAAkB,CAAA;AAzE/B,IAAA,WAAA,GAAA;QA0EE,IAAW,CAAA,WAAA,GAAwB,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,EAAE,EAAE;AACF,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;AACD,YAAA,iBAAiB,EAAE;AACjB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;AACD,YAAA,sBAAsB,EAAE;AACtB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;SACF,CAAC;QACF,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QACpB,IAAc,CAAA,cAAA,GAAkB,CAAC,CAAC;QAClC,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAI,CAAA,IAAA,GAAsB,QAAQ,CAAC;QACnC,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAEzB,QAAA,IAAA,CAAA,kBAAkB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC3D,QAAA,IAAA,CAAA,kBAAkB,GAAsB,IAAI,YAAY,EAAE,CAAC;AA0C5D,KAAA;AAxCC,IAAA,gBAAgB,CAAC,YAAsB,EAAA;QACrC,QAAQ,IAAI,CAAC,WAAW;AAEtB,YAAA,KAAK,IAAI;gBACP,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY;oBAC5C,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAO,KACrC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAClC,CAAC;gBACJ,MAAM;AACR,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAC9D,IAAI,CAAC,WAAW,CACjB,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAS,KACpC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CACzC,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,eAAe;AAClB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;gBACpE,MAAM;AACR,YAAA,KAAK,wBAAwB;AAC3B,gBAAA,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AAC1C,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;gBACpE,MAAM;AACT,SAAA;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;AAC9D,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,mBAAmB,EAAE;YAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC;AAC/D,SAAA;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/C;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/C;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;+GA7EU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EA9DnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDT,EA1DC,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,kCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,+BAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,kQACtB,uBAAuB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,QAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,gCAAgC,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,oBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChC,qCAAqC,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAgE5B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAzE9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,sBAAsB;wBACtB,uBAAuB;wBACvB,gCAAgC;wBAChC,qCAAqC;AACtC,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDT,EAAA,CAAA;AACD,oBAAA,MAAM,EAAE;wBACN,aAAa;wBACb,YAAY;wBACZ,WAAW;wBACX,gBAAgB;wBAChB,aAAa;wBACb,MAAM;AACP,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;AACtD,iBAAA,CAAA;;;AC/ED,MAAM,uBAAuB,GAAa;AACxC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,WAAW,CAAC;AAC1C,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;MAeW,WAAW,CAAA;AAVxB,IAAA,WAAA,GAAA;QAaE,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;AAEjB,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAU,KAAI,GAAG,CAAC;AAC/B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAC;AAoBtB,KAAA;AAlBC,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,IAAI,CAAC,CAAC;KAChC;AACD,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AACD,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC7C;+GA1BU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,wMANX,CAAC,uBAAuB,CAAC,EChBtC,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0XAKM,ooFDaM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAVvB,SAAS;+BACE,cAAc,EAAA,SAAA,EAGb,CAAC,uBAAuB,CAAC,cACxB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,UACf,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,CAAC,EAAA,OAAA,EAC3C,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,0XAAA,EAAA,MAAA,EAAA,CAAA,6kFAAA,CAAA,EAAA,CAAA;;;MEoFhB,iBAAiB,CAAA;AAW5B,IAAA,WAAA,GAAA;QAVA,IAAY,CAAA,YAAA,GAAe,EAAE,CAAC;QAC9B,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAe,CAAA,eAAA,GAAkB,EAAE,CAAC;QACpC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;QACxB,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;AAE5B,QAAA,IAAA,CAAA,QAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;KAErC;AAEhB,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACnE;IAED,QAAQ,CAAC,KAAU,EAAE,IAAS,EAAA;AAC5B,QAAA,OAAO,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,IAAI,CAAC;KACtC;+GAnBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAtFlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA9FS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAgGzC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAnG7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC;AACrD,oBAAA,MAAM,EAAE;wBACN,cAAc;wBACd,MAAM;wBACN,iBAAiB;wBACjB,YAAY;wBACZ,YAAY;wBACZ,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC;AACrC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFT,EAAA,CAAA;AACF,iBAAA,CAAA;;;MC5CY,qBAAqB,CAAA;AAgBhC,IAAA,WAAA,CAAoB,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAfhD,QAAA,IAAA,CAAA,KAAK,GAAQ,IAAI,IAAI,EAAE,CAAC;QACxB,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;AAEnC,QAAA,IAAA,CAAA,UAAU,GAAqB;AAC7B,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,KAAK;SACnB,CAAC;QAUF,IAAc,CAAA,cAAA,GAAG,MAAK;AACpB,YAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAChC,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,KAAU,KAAI;AAC/B,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;AACnE,YAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AACjC,SAAC,CAAC;KAbkD;AAEpD,IAAA,QAAQ,MAAW;IAYnB,WAAW,CAAC,KAAa,EAAA,GAAI;AAG7B,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE,IAAI,CAAC,eAAe;YAC3B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAChC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D;+GA1CU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAuD,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAaC,UAAU,EAvDjC,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAvCS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA2C5C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA9CjC,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,kBAAkB,EAAE,WAAW,CAAC,EAC9C,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCT,EAEO,MAAA,EAAA,CAAC,cAAc,CAAC,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;iGAcC,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBAEvB,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAoB5D,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MClC/B,0BAA0B,CAAA;AAhDvC,IAAA,WAAA,GAAA;QAiDE,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QAEzB,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAQ,CAAA,QAAA,GAAG,UAAU,CAAC;QACtB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAkB,CAAA,kBAAA,GAAG,kBAAkB,CAAC;QACxC,IAAe,CAAA,eAAA,GAAW,mBAAmB,CAAC;AAE9C,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAO,CAAC;AAE3D,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,KAAU,KAAI;AAC5B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AAC5C,YAAA,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;AAClD,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;AACnD,aAAA;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC9C,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,KAAU,KAAI,GAAG,CAAC;AACjC,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,KAAU,KAAI;AACtB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC3B,SAAC,CAAC;AACH,KAAA;+GA5BY,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAvC3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAvCC,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5D,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,SAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,6GACtB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAyCR,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAhDtC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EACvB,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,sBAAsB;wBACtB,iBAAiB;qBAClB,EACS,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCT,EAEO,MAAA,EAAA,CAAC,eAAe,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAA,OAAA,EACnD,CAAC,eAAe,CAAC,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;;;MCpDf,aAAa,CAAA;AAExB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAED,OAAO,CAAC,IAAY,EAAE,KAAU,EAAA;AAC9B,QAAA,IAAI,GAAG,GAAG;AACR,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;QACF,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;YAC/F,MAAM,MAAM,GAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7C,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;AAC1B,oBAAA,GAAG,GAAG;AACJ,wBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;qBAC1B,CAAC;oBACF,MAAM;AACP,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;AAED,IAAA,GAAG,CAAC,MAAyE,EAAA;QAC3E,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,KAAK,EAAE;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC1B,SAAA;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AACtE,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtC,SAAA;KACF;AAED,IAAA,MAAM,CAAC,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC7B;+GAxCU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCgBrB,iBAAiB,CAAA;IAgB5B,IAAkE,OAAO,CAAC,OAAmB,EAAA;AAC3F,QAAA,IAAI,OAAO,EAAE;;AAEX,YAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;AAC3B,SAAA;KACF;AAKD,IAAA,WAAA,CAAoB,MAAqB,EAAA;QAArB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;AArB/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AA0B5C,QAAA,IAAA,CAAA,QAAQ,GAAQ,MAAK,GAAI,CAAC;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAQ,MAAK,GAAI,CAAC;AALvB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;IAKD,IAAI,QAAQ,CAAC,GAAQ,EAAA;AACnB,QAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AACzD,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;AACpC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACnB,SAAA;KACF;IAED,UAAU,CAAC,KAAU,EAAE,IAAW,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,UAAU,CAAC,MAAK;YACd,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC;YAChE,IAAI,QAAQ,CAAC,GAAG,GAAG,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE;gBACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,GAAG,YAAY,CAAC;AAC3C,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC9C,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC/B,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC;AACtC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;AAChC,aAAA;AAED,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB,EAAE,EAAE,CAAC,CAAC;KACR;IACD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;IAED,WAAW,GAAA;QACT,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;+GAvFU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoE,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EARjB,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAkBgC,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,6BClC7C,w8BAgCA,EAAA,MAAA,EAAA,CAAA,onCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDda,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;AAEE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGV,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,w8BAAA,EAAA,MAAA,EAAA,CAAA,onCAAA,CAAA,EAAA,CAAA;iGAGQ,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAUE,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAC4D,OAAO,EAAA,CAAA;sBAAxE,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;ME1BjD,iBAAiB,CAAA;IAQ5B,WAAmB,CAAA,QAA2B,EAAU,MAAqB,EAAA;QAA1D,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QAJpE,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;AAK1B,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjB;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AACd,YAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;AACxB,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS;YAChD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,CAAC,KAAU,EAAA;QACf,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAC,IAAI,CAAC,CAAC;KAC3C;+GAvBU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAmE,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAKE,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb1C,4ZAQA,EAAA,MAAA,EAAA,CAAA,wlBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3C,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDAa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,4ZAAA,EAAA,MAAA,EAAA,CAAA,wlBAAA,CAAA,EAAA,CAAA;8HAKZ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEN,MAAM,EAAA,CAAA;sBADL,SAAS;uBAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;MED9C,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAJR,YAAA,EAAA,CAAA,iBAAiB,EAAE,iBAAiB,CACzC,EAAA,OAAA,EAAA,CAAA,WAAW,EAAE,YAAY,EAAE,aAAa,CACxC,EAAA,OAAA,EAAA,CAAA,iBAAiB,EAAE,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAHb,OAAA,EAAA,CAAA,WAAW,EAAE,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGvC,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;AACpD,oBAAA,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC;AACnD,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;AAChD,iBAAA,CAAA;;;MCoCY,2BAA2B,CAAA;AAvCxC,IAAA,WAAA,GAAA;AAwCE,QAAA,IAAA,CAAA,YAAY,GAAQ;AAClB,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAkB,CAAA,kBAAA,GAAG,kBAAkB,CAAC;AACxC,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAO,CAAC;AA+B9D,KAAA;IA7BC,cAAc,CAAC,KAAU,EAAE,KAAa,EAAA;QACtC,IAAI,KAAK,KAAK,OAAO,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC3C,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAe,EAAE,SAAiB,KAAI;YACvE,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,gBAAA,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;AAC9B,gBAAA,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;AACtB,aAAA;AAAM,iBAAA;AACL,gBAAA,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC;AAC/B,gBAAA,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;AACtB,aAAA;AACH,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;KACtD;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE;AACtE,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AACrC,SAAA;AACD,QAAA,MAAM,KAAK,GAAW,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CACvD,CAAC,OAAY,KAAK,OAAO,CAAC,WAAW,CACtC,CAAC;AACF,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACd,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AAC/C,SAAA;AACD,QAAA,OAAO,4BAA4B,CAAC;KACrC;+GArCU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EA7B5B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBT,EA9BC,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mQACZ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,8BACb,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4C,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA+BH,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAvCvC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EACvB,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,eAAe;wBACf,aAAa;wBACb,aAAa;wBACb,YAAY;qBACb,EACS,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBT,EACO,MAAA,EAAA,CAAC,cAAc,EAAE,mBAAmB,CAAC,EACpC,OAAA,EAAA,CAAC,iBAAiB,CAAC,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;;;MC5BjB,2BAA2B,CAAA;AAMtC,IAAA,WAAA,GAAA;QALA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAE3B,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;AAChB,QAAA,IAAA,CAAA,oBAAoB,GAAsB,IAAI,YAAY,EAAO,CAAC;AAmBlE;AAC4B;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,KAAU,KAAI;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CACpD,CAAC,UAAe,KAAK,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CACtD,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;AAC5D,SAAC,CAAC;;AAGF,QAAA,IAAA,CAAA,KAAK,GAAG,CAAC,KAAW,KAAI;AACtB,YAAA,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACxD,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;AAClC,aAAA;AACH,SAAC,CAAC;AAEF;;;AAG8D;AAC9D,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,KAAa,EAAE,KAAU,KAAI;AAC/C,YAAA,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;AAC1D,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;AAC3D,aAAA;AACH,SAAC,CAAC;KA7Cc;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;IACH,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;AAgCD;;;AAGG;IACH,SAAS,GAAA;AACP,QAAA,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;AACzD,YAAA,UAAU,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;AAC5C,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE;AACpC,YAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAAC;AAC7D,SAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,IAAI,WAAW,GAAA;QACb,QACE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAClC,CAAC,UAAe,KAAK,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CACxD;AACD,aAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ;AAChC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;AAC3C,gBAAA,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EACpC;KACH;AAED;;;;AAIG;AACH,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAC1C,CAAC,UAAe,KAAK,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CACxD,CAAC;KACH;+GA9FU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBxC,y1FAoFA,ED1EY,MAAA,EAAA,CAAA,gvLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mQAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAEjD,iBAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkD,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAM5D,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBATvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,cACvB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAElD,iBAAe,CAAC,UAGhE,CAAC,mBAAmB,CAAC,EACpB,OAAA,EAAA,CAAC,sBAAsB,CAAC,EAAA,QAAA,EAAA,y1FAAA,EAAA,MAAA,EAAA,CAAA,gvLAAA,CAAA,EAAA,CAAA;;;ME0BtB,mBAAmB,CAAA;AAoB9B,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAnB1C,IAAkB,CAAA,kBAAA,GAAQ,kBAAkB,CAAC;AAE7C,QAAA,IAAA,CAAA,cAAc,GAAe;AAC3B,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,WAAW,EAAE,0CAA0C;AACvD,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;QACF,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QAEzB,IAAY,CAAA,YAAA,GAAW,CAAC,CAAC,CAAC;QAC1B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAoB,CAAA,oBAAA,GAAW,4BAA4B,CAAC;AAE5D,QAAA,IAAA,CAAA,qBAAqB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC9D,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAMhD,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,IAAS,EAAE,KAAa,KAAI;YAC7C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;YACrD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACvD,SAAC,CAAC;AAEF;AACuD;QACvD,IAAW,CAAA,WAAA,GAAG,CAAC,IAAY,EAAE,IAAS,EAAE,KAAa,KAAI;AACvD,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC/B,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,aAAA;AACH,SAAC,CAAC;KAlB4C;AAE9C,IAAA,QAAQ,MAAW;AAkBnB;;;;;AAKG;AACH,IAAA,KAAK,CAAC,KAAU,EAAA;AACd,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;AAC3D,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;IAED,YAAY,CAAC,WAAgB,EAAE,KAAa,EAAA;QAC1C,IACE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,QAAQ;YAC/C,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,OAAO,EACvD;YACA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAChE,OAAO;AACR,SAAA;AACD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CACnE,CAAC,MAAW,KAAK,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,CACzD,CAAC;AACF,QAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;QACzE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACtD;+GArEU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA2B,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxChC,qnIAmIA,EAAA,MAAA,EAAA,CAAA,0VAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED7GI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,sFACrB,0BAA0B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC1B,sBAAsB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,2BAA2B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3B,2BAA2B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3B,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,SAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAyE,oBAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAOR,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAtB/B,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,eAAe;wBACf,qBAAqB;wBACrB,0BAA0B;wBAC1B,sBAAsB;wBACtB,2BAA2B;wBAC3B,2BAA2B;wBAC3B,kBAAkB;wBAClB,mBAAmB;wBACnB,iBAAiB;AAClB,qBAAA,EAAA,MAAA,EAGO,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAA,OAAA,EAChD,CAAC,uBAAuB,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,qnIAAA,EAAA,MAAA,EAAA,CAAA,0VAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;;;ME/BlC,2BAA2B,CAAA;AAMI,IAAA,mBAAmB,CAAC,KAAoB,EAAA;AAChF,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC1B,YAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC7B,SAAA;KACF;AACD,IAAA,WAAA,GAAA;AARU,QAAA,IAAA,CAAA,MAAM,GAAyB,IAAI,YAAY,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;KAO9C;IAEhB,QAAQ,GAAA;QACN,UAAU,CAAC,MAAI;YACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B,EAAC,IAAI,CAAC,CAAA;KACR;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAC7B;AAED,IAAA,kBAAkB,CAAC,KAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;+GAzBU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,mQCPxC,mrDAiDA,EAAA,MAAA,EAAA,CAAA,4tNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5E,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Ca,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,mrDAAA,EAAA,MAAA,EAAA,CAAA,4tNAAA,CAAA,EAAA,CAAA;0EAK3B,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEmC,mBAAmB,EAAA,CAAA;sBAA5D,YAAY;uBAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEgC7B,2BAA2B,CAAA;AAoFtC,IAAA,WAAA,CACU,UAAsB,EACtB,UAAiC,EACjC,WAAwB,EACxB,YAA0B,EAC1B,uBAAgD,EAChD,yBAAoD,EACpD,aAA4B,EAC5B,aAA4B,EAAA;QAP5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAuB;QACjC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAChD,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA2B;QACpD,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QA3FtC,IAAI,CAAA,IAAA,GAAsB,QAAQ,CAAC;QACnC,IAAE,CAAA,EAAA,GAAW,EAAE,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,UAAU,CAAC;QACtB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAkB,CAAA,kBAAA,GAAG,kBAAkB,CAAC;QACxC,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;AAChC,QAAA,IAAA,CAAA,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;AACzC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;AAE1D,QAAA,IAAA,CAAA,UAAU,GAAkB,CAAC,IAAI,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,aAAa,GAAW,eAAe,CAAC,cAAc,CAAC;AACvD,QAAA,IAAA,CAAA,UAAU,GAAc;AACtB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,EAAE,EAAE,IAAI;AACR,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,eAAe,EAAE,mBAAmB;AACpC,YAAA,qBAAqB,EAAE,wBAAwB;SAChD,CAAC;AAEF,QAAA,IAAA,CAAA,YAAY,GAAkB;YAC5B,IAAI;YACJ,OAAO;YACP,mBAAmB;YACnB,eAAe;YACf,YAAY;YACZ,wBAAwB;SACzB,CAAC;QACF,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAO,CAAA,OAAA,GAAkB,CAAC,CAAC;QAC3B,IAAW,CAAA,WAAA,GAAkB,EAAE,CAAC;QAChC,IAAW,CAAA,WAAA,GAAwB,EAAE,CAAC;QACtC,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAC1B,QAAA,IAAA,CAAA,gBAAgB,GAAQ;AACtB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,iBAAiB,EAAE,KAAK;SACzB,CAAC;AACF,QAAA,IAAA,CAAA,OAAO,GAAQ;AACb,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,eAAe,EAAE,KAAK;SACvB,CAAC;QAIF,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAa,CAAA,aAAA,GAAa,cAAc,CAAC;AACzC,QAAA,IAAA,CAAA,gBAAgB,GAAQ;AACtB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;QACF,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC;QAC3B,IAAgB,CAAA,gBAAA,GAAG,mBAAmB,CAAC;QACvC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAsB,CAAA,sBAAA,GAAW,EAAE,CAAC;QACpC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAE1B,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAe,CAAA,eAAA,GAAU,EAAE,CAAC;QAC5B,IAAsB,CAAA,sBAAA,GAAU,EAAE,CAAC;QACnC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAsB,CAAA,sBAAA,GAAQ,EAAE,CAAC;AAEjC,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;AACtD,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;AACtD,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC1D,QAAA,IAAA,CAAA,SAAS,GAAsB,IAAI,YAAY,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,2BAA2B,GAAsB,IAAI,YAAY,EAAE,CAAC;QAGpE,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;KAWzB;IACJ,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,yBAAyB,EAAE,0BAA0B,EAAE,EAAE,SAAS,CAAC;AACtE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE;AACtB,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;oBACvD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC5D,iBAAA;aACF;AACD,YAAA,KAAK,EAAE,CAAC,GAAU,KAAI;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;AACF,SAAA,CAAC,CAAC;KACJ;IAED,sBAAsB,GAAA;QACpB,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACpD,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AACvC,gBAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC5C;;AAGD,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,QAAQ,KAAK,EAAE,IAAI;AACjB,YAAA,KAAK,YAAY;gBACf,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,EAAE,OAAO,CAAC;gBAC5C,MAAM;AACR,YAAA,KAAK,cAAc;gBACjB,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,EAAE,OAAO,CAAC;gBAC1C,MAAM;AACR,YAAA,KAAK,4BAA4B;gBAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,EAAE,OAAO,CAAC;gBACvC,MAAM;AACR,YAAA,KAAK,mBAAmB;gBACtB,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,KAAK,EAAE,OAAO,CAAC;gBAC9C,MAAM;AACT,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;AAGD,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAC9B;;AAGD,IAAA,WAAW,CAAC,IAAyB,EAAA;AACnC,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,OAAO,CAAC;AACb,YAAA,KAAK,IAAI;AACP,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM;AACR,YAAA,KAAK,mBAAmB;AACtB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxC,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM;AACR,YAAA,KAAK,eAAe;AAClB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM;AACR,YAAA,KAAK,wBAAwB;AAC3B,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM;YACR,QAAQ;AACT,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,mBAAmB,EAAE;YAC5C,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3C;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,SAAA;KACF;AAED,IAAA,cAAc,CAAC,IAAY,EAAA;QACzB,IAAI,IAAI,KAAK,OAAO,EAAE;YACpB,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAC7D,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,CAC9B,CAAC;AACH,SAAA;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAC1D,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,CACzB,CAAC;YACF,IACE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAO,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EACtE;gBACA,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,aAAA;AACF,SAAA;QACD,IAAI,IAAI,KAAK,mBAAmB,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,cAAc;AAC5B,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAChD,CAAC,IAAS,KAAK,IAAI,CAAC,GAAG,CACxB,CAAC;AACL,SAAA;QACD,IAAI,IAAI,KAAK,eAAe,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAC7D,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAC7C,CAAC;AACH,SAAA;QACD,IAAI,IAAI,KAAK,wBAAwB,EAAE;YACrC,IAAI,CAAC,UAAU,CAAC,oBAAoB;gBAClC,IAAI,CAAC,+BAA+B,CAClC,IAAI,CAAC,UAAU,EAAE,sBAAsB,EAAE,YAAY,CACtD,CAAC;AACL,SAAA;KACF;IAED,cAAc,GAAA;;KAEb;IAED,MAAM,CAAC,KAAU,EAAE,OAAe,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,KAAK,KAAK,mBAAmB,EAAE;YACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1D,YAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAE/B,SAAA;AACD,QAAA,IAAI,KAAK,KAAK,eAAe,IAAI,KAAK,KAAK,wBAAwB,EAAE;YACnE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,SAAA;KACF;IAED,YAAY,CACV,KAAU,EACV,IAK4B,EAAA;AAE5B,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI;AACP,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,MAAM;AACR,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1D,MAAM;AACR,YAAA,KAAK,mBAAmB;AACtB,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACxC,MAAM;AACR,YAAA,KAAK,eAAe;AAClB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACjE,MAAM;AACR,YAAA,KAAK,wBAAwB;AAC3B,gBAAA,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC/C,MAAM;AACT,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KAC3B;AAED,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,iBAAiB,CAAC;AACxD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;;YAExC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,SAAA;KACF;IAEO,aAAa,GAAA;QACnB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;AACvC,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC;YAC1C,IAAI,EAAE,CAAC,QAAa,KAAK,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AACnD,YAAA,KAAK,EAAE,CAAC,KAAU,QAAO;AAC1B,SAAA,CAAC,CAAC;KACJ;AAED;;;;;AAKG;AACK,IAAA,WAAW,CAAC,QAAa,EAAA;QAC/B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;;QAEtB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,GAAG,CACpE,CAAC,IAAS,KAAI;AACZ,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;AACtC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;AACnC,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAA,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtC,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CACF,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CACnE,eAAe,CAChB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAC1E,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;QACD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,0BAA0B,CAAC,sBAA4B,EAAA;QACrD,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC;AACtD,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;gBAClB,IAAI,CAAC,kBAAkB,GAAG,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC;AACvD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1C,gBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;gBAChC,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,sBAAsB,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACtH,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,YAAY,GAAE,kBAAkB,CAAC;gBACxE,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,gBAAA,EAAE,CAAC;aAEJ;AACD,YAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;AACF,SAAA,CAAC,CAAC;KACJ;AAED;;;AAGG;IACK,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE;AACjE,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CACjE,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CACjE,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,GAAG,CAChE,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,CAC9B,CAAC;KACH;IAEO,UAAU,GAAA;QAChB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,uBAAuB,EAAE,aAAa,EAAE,EAAE,SAAS,CAAC;AACvD,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;gBAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC;AACrC,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,oBAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,IAAS,KACvD,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAC7C,CAAC;AACH,iBAAA;gBACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC1B;AACD,YAAA,KAAK,EAAE,CAAC,KAAY,KAAI;AACtB,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;AACF,SAAA,CAAC,CAAC;KACJ;IAEO,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC;AACxC,YAAA,IAAI,EAAE,CAAC,IAAe,KAAI;;AAExB,gBAAA,MAAM,YAAY,GAAQ;AACxB,oBAAA,MAAM,EAAE,OAAO;AACf,oBAAA,SAAS,EAAE,SAAS;AACpB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,SAAS,EAAE,WAAW;iBACvB,CAAC;AACF,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,KAAa,KAAI;AACvD,oBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,oBAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC;AACrE,oBAAA,OAAO,IAAI,CAAC;AACd,iBAAC,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,KAAK,CACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CACjC,CAAC;AAEF,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;oBACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU;AACvC,wBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AAE7B,oBAAA,IACE,IAAI,CAAC,UAAU,CAAC,uBAAuB,CACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,CAC1C,EACD;AACA,wBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;AAClC,wBAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC;wBACxC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,qBAAA;AACF,iBAAA;gBACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC1B;AACD,YAAA,KAAK,EAAE,CAAC,KAAU,QAAO;AAC1B,SAAA,CAAC,CAAC;KACJ;IAEO,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,kBAAkB;AACrB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC;AAC/D,gBAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KACvB;IAEO,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,SAAS;AACZ,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS;AAC/B,gBAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS;AAC5B,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS;iBAC1C,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,kBAAkB,CAAC,KAAW,EAAA;QAC5B,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;AACzC,SAAA;QACD,IAAI,KAAK,EAAE,YAAY,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,YAAY,EAAE;AACtE,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACjC,SAAA;QACD,IAAI,CAAC,cAAc,GAAG,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;;;;AAInD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU;aACxC,UAAU,CAAC,KAAK,CAAC;AACjB,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;YACvB,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,GAAG,KAAK,CAAC;AACpD,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;;;;AAIxB,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE;AAC1C,oBAAA,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;AACpC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC/C,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,iBAAA;AACF,aAAA;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;KACN;AAED,IAAA,mBAAmB,CAAC,KAAW,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;;;;AAIzB,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;AAC7D,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,iBAAiB,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,oBAAoB,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,kBAAkB,CAAC;YACtD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,oBAAoB,CAAC;AAC1D,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,mBAAmB,CAAC,KAAW,EAAE,IAAU,KAAI;;AAI/C,IAAA,mBAAmB,CAAC,KAAa,EAAA;QAC/B,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AACnD,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;AAClB,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAC7C,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAE3B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,gBAAA,MAAM,sBAAsB,GAAG,IAAI,EAAE,uBAAuB,EAAE,KAAK,CAAC;gBACpE,IAAG,sBAAsB,EAAE,MAAM,EAAC;AAChC,oBAAA,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;AACzD,iBAAA;gBACD,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;aACzC;AACD,YAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aAC/B;AACF,SAAA,CAAC,CAAC;KACJ;AAEO,IAAA,eAAe,CAAC,IAAS,EAAA;QAC/B,IAAI,IAAI,EAAE,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;AACpC,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/C,YAAA,IAAI,SAAS,GAAQ;AACnB,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,SAAS,EAAE,EAAE;aACd,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,cAAc,CAAC;AAChC,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AACzB,gBAAA,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC;AACnD,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAClC,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACrC,SAAA;KACF;AACO,IAAA,eAAe,CAAC,IAAS,EAAA;QAE/B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,iBAAiB;YAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC;;;;QAIvD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,6BAA6B;YAC3C,IAAI,EAAE,6BAA6B,CAAC;KACvC;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC9B,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;AAClE,SAAA;AACD,QAAA,IACE,IAAI,CAAC,UAAU,CAAC,eAAe,CAC7B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,EAAE,aAAa,CAC5B,EACD;AACA,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;gBACxB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO;AACR,aAAA;AACD,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;AAI7D,YAAA,OAAO,CAAC,uBAAuB;AAC7B,gBAAA,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAC9C,IAAI,CAAC,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAC/E,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,IAAI,EAAE,CAC5D,CAAC;AAEF,YAAA,OAAO,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAEpC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAC9C,gBAAA,IAAI,EAAE,CAAC,IAAS,KAAI;AAClB,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtB;AACD,gBAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5C,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;oBAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;AAChD,wBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wBAC5B,IAAI,CAAC,sBAAsB,EAAE,CAAC;wBAC9B,IAAI,CAAC,WAAW,CAAC;4BACf,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa;AAC/C,yBAAA,CAAC,CAAC;AACH,wBAAA,IAAI,CAAC,sBAAsB,GAAG,kBAAkB,CAAC,UAAU,CAAC;AAC7D,qBAAA;iBACF;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,OAAO;AACR,SAAA;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,cAAc,CAAC;AACpD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;AACpC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KACtE;IAED,wBAAwB,GAAA;QACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,GAAG,EAAE,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,GAAG,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,YAAY,GAAG,EAAE,CAAC;KAC1D;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,EAAE,CAAC;AAChB,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KACjE;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;AAEnC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAED,OAAO,GAAA;AACL,QAAA,IAAI,GAAW,CAAC;AAChB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAChD,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,uBAAuB,CAAC;AAClE,SAAA;AAAM,aAAA;YACL,GAAG;gBACD,UAAU;oBACV,MAAM,CAAC,QAAQ,CAAC,IAAI;AACpB,oBAAA,oCAAoC,CAAC;AACxC,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAEjE,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KACjE;IAED,uBAAuB,GAAA;QACrB,MAAM,QAAQ,GAAG,cAAc,CAAC;QAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AACtE,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,4BAA4B,EAAE,CAAC;KACrC;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY;YAC5C,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CACnD,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,KAAK,EAAE,GAAG,CACtC,CAAC;AACJ,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa;AAChC,eAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC;cAClD,CAAC,CAAC;QACN,IAAI,CAAC,4BAA4B,EAAE,CAAC;KACrC;IAED,kBAAkB,CAAC,KAAU,EAAE,IAAY,EAAA;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,CAC/D,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,KAAK,EAAE,GAAG,CACtC,CAAC;KACH;IAED,qBAAqB,GAAA;QACnB,IAAI,CAAC,gBAAgB,GAAG;AACtB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;KACH;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACjD,YAAA,IAAI,CAAC,sBAAsB,GAAG,kBAAkB,CAAC,aAAa,CAAC;AAChE,SAAA;AACD,QAAA,QACE,IAAI,CAAC,eAAe,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,EACvE;KACH;AAED,IAAA,sBAAsB,CAAC,YAAiB,EAAA;QACtC,MAAM,mBAAmB,GAAQ,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAC7B,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;YACjC,mBAAmB,CAAC,IAAI,CAAC;gBACvB,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC;AAChD,gBAAA,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,MAAM,CAAC;AACxD,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/C,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,mBAAmB,CAAC;KAC5B;AAED,IAAA,+BAA+B,CAAC,YAAiB,EAAA;AAC/C,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAS,KACrE,YAAY,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,CAAC,CAC1D,CAAC;AACF,QAAA,OAAO,YAAY,CAAC;KACrB;IAED,eAAe,GAAA;AACb,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;AAG7D,QAAA,OAAO,CAAC,uBAAuB;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAC9C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EACpD,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,IAAI,EAAE,CAC5D,CAAC;AAEJ,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC1D,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;AAClB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACtB;AACD,YAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5C,gBAAA,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;AACxB,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,oBAAA,IAAI,CAAC,sBAAsB,GAAG,kBAAkB,CAAC,UAAU,CAAC;AAC7D,iBAAA;aACF;AACF,SAAA,CAAC,CAAC;KACJ;IACD,4BAA4B,GAAA;QAC1B,IAAI,CAAC,UAAU,CAAC,cAAc;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAChD,CAAC,IAAS,KAAK,IAAI,CAAC,GAAG,CACxB,CAAC;KACL;IAED,kBAAkB,CAAC,UAAkB,EAAE,IAAS,EAAA;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAChE,QAAA,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;;AAExB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAC5D,aAAa,CACd,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5D,YAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAC1C,aAAa,CACd,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC/B,aAAA;YAED,IACE,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,KAAK;kBAC9D,MAAM,KAAK,CAAC,EAChB;;AAEA,gBAAA,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AACvE,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAC7D,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAC7C,CAAC;KACH;AAED,IAAA,4BAA4B,CAAC,cAAmB,EAAA;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,YAAY;AACjD,YAAA,IAAI,CAAC,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAAE,GAAG,CACxD,CAAC,IAAS,KAAI;gBACZ,IAAI,sBAAsB,GAAG,IAAI,EAAE,cAAc,EAAE,MAAM,CACvD,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,cAAc,EAAE,GAAG,CACjD,CAAC;gBACF,OAAO;AACL,oBAAA,GAAG,IAAI;AACP,oBAAA,cAAc,EAAE,sBAAsB;AACtC,oBAAA,QAAQ,EAAE;wBACR,IAAI,IAAI,GAAG,CACT,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,CACjE,IAAI,EAAE,CAAC;AACT,qBAAA;iBACF,CAAC;AACJ,aAAC,CACF,CAAC;AAEJ,QAAA,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,YAAY;AACjD,YAAA,IAAI,CAAC,UAAU,EAAE,sBAAsB,EAAE,YAAY,CAAC,MAAM,CAC1D,CAAC,IAAS,KAAI;AACZ,gBAAA,OAAO,IAAI,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC;AAC1C,aAAC,CACF,CAAC;AACJ,QAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAC,+BAA+B,CACzE,IAAI,CAAC,UAAU,EAAE,sBAAsB,EAAE,YAAY,CACtD,CAAC;KACH;AAED,IAAA,wBAAwB,CAAC,UAA6B,EAAA;AACpD,QAAA,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;AACvB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,EAAE,MAAM,KAAK,CAAC,EAAE;;YAEzD,MAAM,kBAAkB,GACtB,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,SAAS,CACpD,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,eAAe,CACrD,CAAC;AACJ,YAAA,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;AAC7B,gBAAA,OAAO,kBAAkB,CAAC;AAC3B,aAAA;AACF,SAAA;AAAM,aAAA;YACL,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,SAAS,CACpE,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,EAAE,WAAW,KAAK,UAAU,CACxD,CAAC;AACH,SAAA;AACD,QAAA,OAAO,aAAa,CAAC;KACtB;AAED,IAAA,cAAc,CAAC,UAAe,EAAA;AAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,KAAa,KAAI;YAC7D,OAAO;gBACL,KAAK,EAAE,GAAG,EAAE,KAAK;AACjB,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE;AAC9B,gBAAA,IAAI,EAAE,KAAK;aACZ,CAAC;AACJ,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;KAC1C;AAED,IAAA,gBAAgB,CAAC,YAAiB,EAAA;QAChC,IAAI,WAAW,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC,IAAS,KAAI;AAChD,YAAA,IAAI,IAAI,EAAE,WAAW,IAAI,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,CAAC,EAAE;gBACtE,OAAO;AACL,oBAAA,GAAG,IAAI;AACP,oBAAA,QAAQ,EAAE,2BAA2B;iBACtC,CAAC;AACH,aAAA;YACD,OAAO;AACL,gBAAA,GAAG,IAAI;AACP,gBAAA,QAAQ,EAAE;AACR,oBAAA,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;AAClC,iBAAA;aACF,CAAC;AACJ,SAAC,CAAC,CAAC;QACH,IAAI,WAAW,CAAC,MAAM,EAAE;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,YAAA,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACxD,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,SAAA;QACD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,GAAG,WAAW,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;KACjD;AAED,IAAA,0BAA0B,CAAC,YAAiB,EAAA;;QAE1C,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,YAAY,GAAG,YAAY,CAAC;QACnE,IAAI,YAAY,EAAE,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;AAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC;YAC1C,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,SAAA;AACD,QAAA,IAAI,CAAC,sBAAsB,GAAG,YAAY,CAAC;AAC3C,QAAA,OAAO,YAAY,CAAC;KACrB;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAC1B,CAAC,IAAS,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAChD,CAAC;QACF,OAAO,OAAO,IAAI,EAAE,CAAC;KACtB;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;IAED,iBAAiB,GAAA;QACf,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AACrC,YAAA,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AACd,YAAA,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;AACxB,SAAC,CAAC,CAAC;KACJ;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,YAAY,GAAG,EAAE,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,GAAG,EAAE,CAAC;QAChD,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAChD,IAAI,CAAC,0BAA0B,EAAE,CAAC;AACnC,SAAA;KACF;IAED,0BAA0B,GAAA;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3C,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,KAAK,CAAC;QACzD,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC;AACjD,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;gBAClB,IAAI,CAAC,sBAAsB,GAAG;AAC5B,oBAAA,gBAAgB,EAAE;AAChB,wBAAA,MAAM,EAAE,IAAI,EAAE,uBAAuB,IAAI,EAAE;AAC3C,wBAAA,IAAI,EACF,IAAI,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC,IAAS,MAAM;AAC1C,4BAAA,QAAQ,EAAE,IAAI,EAAE,+BAA+B,EAAE,GAAG;4BACpD,UAAU,EAAE,IAAI,EAAE,WAAW;4BAC7B,UAAU,EAAE,IAAI,EAAE,WAAW;4BAC7B,YAAY,EAAE,IAAI,EAAE,aAAa;4BACjC,SAAS,EAAE,IAAI,EAAE,SAAS;4BAC1B,MAAM,EAAE,IAAI,EAAE,MAAM;yBACrB,CAAC,CAAC,IAAI,EAAE;AACZ,qBAAA;iBACF,CAAC;aACH;AACF,SAAA,CAAC,CAAC;KACJ;+GAt+BU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAmD,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAmB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,mWC7CxC,wzSAuKyD,EAAA,MAAA,EAAA,CAAA,uOAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,SAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1H5C,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAdvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAG3B,OAAA,EAAA;wBACP,gBAAgB;wBAChB,eAAe;wBACf,eAAe;wBACf,mBAAmB;wBACnB,WAAW;wBACX,6BAA6B;AAC9B,qBAAA,EAAA,MAAA,EACO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAA,QAAA,EAAA,wzSAAA,EAAA,MAAA,EAAA,CAAA,uOAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;;;AErCnC,IAAY,MAGX,CAAA;AAHD,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,MAAA,CAAA,sBAAA,CAAA,GAAA,mBAA0C,CAAA;AAC5C,CAAC,EAHW,MAAM,KAAN,MAAM,GAGjB,EAAA,CAAA,CAAA,CAAA;MA8EY,iBAAiB,CAAA;AAU5B,IAAA,WAAA,GAAA;QATA,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;AAClB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;QAClC,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAEtB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAE1B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAU,CAAC;KAEtC;AAEhB,IAAA,QAAQ,MAAW;AAEnB,IAAA,cAAc,CAAC,IAAY,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;+GAjBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EA1ElB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8KAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA5E7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EACf,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuET,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,8KAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;0EASQ,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;MCrFI,uBAAuB,CAAA;AAOlC,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAR1B,IAAiB,CAAA,iBAAA,GAA2B,IAAI,eAAe,CAErE,EAAE,IAAI,IAAI,CAAC,CAAC;QAEd,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;AAOpB,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;IAEO,aAAa,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,sBAAsB,EAAE;YAC7D,OAAO;SACR,CAAC;aACD,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAC5C,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;AAC3D,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACf,CAAC,CACH,CAAC;KACL;AAEO,IAAA,oBAAoB,CAAC,IAAW,EAAA;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC,QAAA,OAAO,GAAG,CAAC;KACZ;AAEO,IAAA,OAAO,CAAC,IAAW,EAAA;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACzB,YAAA,GAAG,IAAI;YACP,WAAW,EAAE,IAAI,EAAE,SAAS;YAC5B,YAAY,EAAE,IAAI,EAAE,UAAU;YAC9B,aAAa,EAAE,IAAI,EAAE,WAAW;YAChC,cAAc,EAAE,IAAI,EAAE,YAAY;YAClC,mBAAmB,EAAE,IAAI,EAAE,UAAU;YACrC,YAAY,EAAE,IAAI,EAAE,SAAS;YAC7B,OAAO,EAAE,IAAI,EAAE,SAAS;AACzB,SAAA,CAAC,CAAC,CAAC;KACL;IAEM,oBAAoB,GAAA;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;AACvD,QAAA,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE;YACvC,OAAO,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;KAC7B;+GA5DU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA9G,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAWI,QAAQ;;;MCbA,kBAAkB,CAAA;AAE7B,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;AAEhD,IAAA,YAAY,CAAC,IAAmB,EAAA;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,QAAQ;AACtB,aAAA,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC9C,OAAO,CAAC,KAAK,CAAC;AACd,aAAA,KAAK,EAAE,CAAC;AAEX,QAAA,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;+GAfU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAQ,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACNM,MAAM,QAAQ,GAAG;AACpB,IAAA,MAAM,EAAE,2BAA2B;CACtC;;ACAM,MAAM,SAAS,GAAa;AAC/B,IAAA,QAAQ,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;AAC3B,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,OAAO,EAAE,iCAAiC;CAC3C;;ACNI,MAAM,QAAQ,GAAG;AACtB,IAAA,eAAe,EAAE,wCAAwC;AACzD,IAAA,eAAe,EAAC,iCAAiC;AACjD,IAAA,eAAe,EAAC,0BAA0B;CAC3C;;MCaY,aAAa,CAAA;AAQxB,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAR3B,QAAA,IAAA,CAAA,kBAAkB,GAAyB,IAAI,eAAe,CACnE,IAAI,CACL,CAAC;AACK,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,YAAY,GAAyB,IAAI,eAAe,CAAM,KAAK,CAAC,CAAC;QACrE,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;AAMlC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,QAAQ,EAAE,EAAE;YACvC,OAAO,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AAC3C,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,qCAAqC,EAAE;YACtE,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CACHF,KAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,EACFC,YAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;AACvD,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,SAAC,CAAC,CACH;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;;AAGD,IAAA,eAAe,CAAC,OAAY,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,2BAA2B,EACjD,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,EACxD,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,aAAa,CAAC,GAAQ,EAAA;AACpB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC;QAChC,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,QAAQ,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE;AAC9B,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,IAAI;AACb,qBAAA,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACxC,qBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,YAAA;gBACE,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACpE,SAAA;KACF;AAED,IAAA,YAAY,CAAC,OAAY,EAAA;AACvB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,0BAA0B,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC;AAC5E,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,YAAY,CAAC,OAAY,EAAA;AACvB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,oBAAoB,EAC1C,EAAE,UAAU,EAAE,OAAO,EAAE,EACvB,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IACD,SAAS,GAAA;AACP,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,0BAA0B,EAAE;YACjE,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;;;;;;;;;IAUD,qBAAqB,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,EAAE;YAC/C,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,oBAAoB,CAAC,EAAO,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,wCAAwC,GAAG,EAAE,EAClE,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,kBAAkB,CAAC,OAAY,EAAE,GAAQ,EAAA;AACvC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,GAAG,EAAE,OAAO,EAAE;YACrE,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,OAAY,EAAA;AAC5B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,mBAAmB,EACzC,OAAO,EACP,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AACD,IAAA,UAAU,CAAC,IAAS,EAAE,EAAU,EAAE,IAAY,EAAA;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE;YAC/D,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,cAAc,CAAC,IAAS,EAAE,EAAU,EAAE,IAAY,EAAA;AAChD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,UAAU;YACjB,MAAM;YACN,EAAE;YACF,QAAQ;YACR,IAAI;AACJ,YAAA,oBAAoB,EACtB,IAAI,EACJ,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,iBAAiB,CACf,KAAU,EACV,GAAQ,EACR,EAAO,EACP,IAAS,EACT,IAAS,EACT,gBAAqB,EAAA;AAErB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;AAC7B,YAAA,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;AACzB,gBAAA;AACE,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,aAAa,EAAE,IAAI;AACnB,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,WAAW,EAAE,CAAC;oBACd,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAC7D,oBAAA,WAAW,EAAE,KAAK;oBAClB,WAAW,EAAE,IAAI,IAAI,EAAE;AACxB,iBAAA;aACF,CAAC;AACF,YAAA,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;AACzB,gBAAA;AACE,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,aAAa,EAAE,IAAI;AACnB,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,WAAW,EAAE,CAAC;oBACd,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAC7D,oBAAA,WAAW,EAAE,KAAK;oBAClB,WAAW,EAAE,IAAI,IAAI,EAAE;AACxB,iBAAA;aACF,CAAC;AACF,YAAA,WAAW,EAAE,gBAAgB;AAC9B,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AACxE,QAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;KACpE;AAEM,IAAA,aAAa,CAAC,IAAU,EAAA;AAC7B,QAAA,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;AACjC,QAAA,OAAO,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC;KACvC;AAED,IAAA,UAAU,CAAC,EAAO,EAAA;AAChB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,qBAAqB,GAAG,EAAE,GAAG,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC;AAC3F,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,YAAY,CAAC,OAAY,EAAE,QAAa,EAAA;AACtC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,2BAA2B,GAAG,QAAQ,GAAG,gBAAgB,EAC9E,OAAO,EACP,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAED,IAAA,WAAW,CAAC,SAAc,EAAE,IAAS,EAAE,EAAO,EAAA;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,KAAK,EAAE;YAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,EAAE,EACpD,EAAE,OAAO,EAAE,CACZ,CAAC;AACH,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,OAAO,EAChB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,EACtB,EAAE,OAAO,EAAE,CACZ,CAAC;AACH,SAAA;KACF;AAED,IAAA,sBAAsB,CAAC,OAAY,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,yBAAyB,EAC/C,OAAO,EACP,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;IACD,oBAAoB,CAAC,OAAY,EAAE,EAAU,EAAA;AAC3C,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,qCAAqC,GAAG,EAAE,EAChE,OAAO,EACP,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAED,IAAA,kBAAkB,CAAC,QAAgB,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,QAAQ,CAAC,eAAe,GAAG,QAAQ,EACzD,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAED,IAAA,iBAAiB,CAAC,QAAgB,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,QAAQ,CAAC,eAAe,GAAG,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;KAClG;+GAlUU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAYI,QAAQ;;;MCrBA,mBAAmB,CAAA;AAG9B,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,QAAQ,MAAW;+GALR,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,iGCPhC,mHAGA,EAAA,MAAA,EAAA,CAAA,wUAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDIa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,mHAAA,EAAA,MAAA,EAAA,CAAA,wUAAA,CAAA,EAAA,CAAA;0EAKlB,YAAY,EAAA,CAAA;sBAApB,KAAK;;;MEaK,0BAA0B,CAAA;IAOrC,IAAa,kBAAkB,CAAC,KAAU,EAAA;AACxC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAC9C,SAAA;KACF;AAGD,IAAA,WAAA,CACU,qBAA4C,EAC5C,aAA4B,EAC5B,WAAwB,EACxB,eAAgC,EAAA;QAHhC,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAjB1C,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;AACN,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QACV,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAC1B,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QAM9B,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAQvB,QAAA,IAAA,CAAA,OAAO,GAAQ;AACb,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,gBAAgB,EAAE,EAAE;SACrB,CAAC;AAEF,QAAA,IAAA,CAAA,OAAO,GAAG;AACR,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,aAAa,EAAE,KAAK;SACrB,CAAC;AA2QF,QAAA,IAAA,CAAA,iBAAiB,GAAG;;;;;;YAMlB,SAAS;YACT,mBAAmB;YACnB,qBAAqB;YACrB,oBAAoB;YACpB,2BAA2B;YAC3B,oBAAoB;YACpB,sBAAsB;YACtB,OAAO;SACR,CAAC;KAvSG;IAeL,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;AAC5D,SAAA;KACF;IAED,cAAc,CAAC,QAAa,EAAE,IAAY,EAAA;QACxC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,QAAQ,EAAE,cAAc,IAAI,KAAK,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,WAAW;AACtB,YAAA,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,QAAQ,EAAE,gBAAgB,IAAI,KAAK,CAAC;AACtE,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACzE,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,aAAa,EAAE;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC/B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC;AAClD,SAAA;KACF;AACD,IAAA,qBAAqB,CAAC,MAAe,EAAA;QACnC,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACtC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACvC,SAAA;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,sBAAsB,CAAC,MAAe,EAAA;QACpC,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC;AACzC,SAAA;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,oBAAoB,CAAC,IAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;AAChC,QAAA,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;;AAEvD,SAAA;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,UAAU,CAAC,IAAS,EAAE,KAAA,GAAgB,CAAC,CAAC,EAAA;;QAEtC,MAAM,QAAQ,GACZ,qNAAqN,CAAC;QACxN,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,OAAO;AACR,aAAA;AACD,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACjD,YAAA,IAAI,OAAO,EAAE;AACX,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;AACnC,aAAA;AACF,SAAA;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACpC,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,OAAO;AACR,aAAA;AACD,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,YAAA,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;AAC5C,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,aAAA;AACF,SAAA;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;AAC3C,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,YAAY,GAAA;QACV,IAAI,CAAC,OAAO,GAAG;AACb,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,aAAa,EAAE,KAAK;SACrB,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAEO,cAAc,CAAC,IAAU,EAAE,GAAW,EAAA;QAC5C,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/D,SAAA;KACF;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AACtC,YAAA,MAAM,GAAG,GAAW,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;KACJ;IAED,UAAU,CAAC,IAAS,EAAE,GAAW,EAAA;QAC/B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AAC/C,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,QAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,gBAAgB,EAAE;YAC1D,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;AACtD,YAAA,IAAI,CAAC,aAAa;AACf,iBAAA,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC;AAClC,iBAAA,SAAS,CAAC,CAAC,IAAS,KAAI;AACvB,gBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AACtB,oBAAA,QAAQ,EAAE,IAAI;oBACd,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,iBAAiB,EAAE,IAAI,CAAC,QAAQ;AAChC,oBAAA,OAAO,EAAE,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,EAAE,IAAI,EAAE,GAAG;AACf,iBAAA,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;AACnB,aAAC,CAAC,CAAC;AACN,SAAA;AAAM,aAAA;YACL,MAAM,GAAG,GAAG,CAAA,IAAA,EAAO,IAAI,CAAC,eAAe,CAAA,EAAG,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,EAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAC,EAAE,IAAI,EAAE,GAAG,CAAE,CAAC;;;;;;;;;;;;;;AAc9E,SAAA;KACF;AAED,IAAA,YAAY,CAAC,YAAgB,EAAE,IAAU,EAAE,GAAQ,EAAA;AACjD,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,GAAG,YAAY;AACf,YAAA,YAAY,EAAE;AACZ,gBAAA,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG;AACzB,gBAAA,mBAAmB,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM;AAC7C,aAAA;SAEF,CAAC;AACF,QAAA,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;YACvE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;AAC/C,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,QAAQ,CAAC,IAAS,EAAE,IAAS,EAAE,YAAiB,EAAE,GAAQ,EAAA;AACxD,QAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AAC1E,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBACxB,QAAQ,EAAC,IAAI,EAAE,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,iBAAiB,EAAE,IAAI,CAAC,IAAI;gBAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,EAAE,GAAG;AACf,aAAA,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,gBAAgB,CAAC,KAAa,EAAA;QAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,aAAa,EAAE;YAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO;AACR,SAAA;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,gBAAgB,EAAE;AAC1D,YAAA,MAAM,OAAO,GAAG;AACd,gBAAA,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB;AAChD,gBAAA,KAAK,EACH,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,MAAM;sBAC/B,IAAI,CAAC,aAAa,CAChB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAC1D;AACH,sBAAE,EAAE;AACR,gBAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;AACpE,gBAAA,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;AACrC,gBAAA,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;aACpD,CAAC;AACF,YAAA,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,KAAK,SAAS,CAAC,CAAC;AAEtE,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChC,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,OAAO,GAAG;AACd,gBAAA,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB;AAChD,gBAAA,KAAK,EACH,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,MAAM;AAClE,sBAAE,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7C,sBAAE,EAAE;AACR,gBAAA,KAAK,EACH,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,MAAM;AAClE,sBAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AACpB,sBAAE,EAAE;AACR,gBAAA,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;AACrC,gBAAA,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;aACpD,CAAC;AACF,YAAA,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,KAAK,SAAS,CAAC,CAAC;AACtE,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChC,SAAA;KACF;AACD,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,KAAI;AAChC,YAAA,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,aAAa,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE;gBAChD,OAAO,CAAC,CAAC,IAAI,CAAC;AACf,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AAC9C,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,UAAe,EAAA;AAC/B,QAAA,IAAI,UAAU,EAAE;YACd,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,KAAI;AACtC,gBAAA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC7D,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;IAED,aAAa,GAAA;QACX,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACrC,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,OAAO;AACR,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,aAAA;AACF,SAAA;KACF;IAgBD,qBAAqB,CAAC,KAAU,EAAE,KAAa,EAAA;QAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;AAC1C,QAAA,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE;AAC5D,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;AACzC,SAAA;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,uBAAuB,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC3C;AAED,IAAA,uBAAuB,CAAC,QAAa,EAAA;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;AACtD,QAAA,IAAI,CAAC,aAAa;AACf,aAAA,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC;AAClC,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;AACvB,YAAA,MAAM,OAAO,GAAG;gBACd,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,kBAAkB,EAAE,IAAI,CAAC,QAAQ;AACjC,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE;AACrD,gBAAA,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;gBACzC,WAAW,EAAE,IAAI,CAAC,UAAU;AAC5B,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,SAAS,EAAE,CAAC;aACb,CAAC;AACJ,SAAC,CAAC,CAAC;KACN;+GAxVU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA0D,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAuD,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAlB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAmB,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,oQCrBvC,y9UA4MM,EAAA,MAAA,EAAA,CAAA,0nGAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDvLO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,y9UAAA,EAAA,MAAA,EAAA,CAAA,0nGAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;sLAMzB,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACE,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACO,kBAAkB,EAAA,CAAA;sBAA9B,KAAK;;;MEvBK,qBAAqB,CAAA;AAEhC,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAD3B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;KAE9B;AACH,IAAA,WAAW,CAAC,MAAoB,EAAA;QAC9B,IAAG,MAAM,EAAE,eAAe,IAAI,MAAM,EAAE,eAAe,EAAE,YAAY,KAAK,IAAI,EAAC;YACxE,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,SAAA;KACF;IACC,eAAe,GAAA;;QAEf,IAAI,CAAC,MAAM,EAAE,CAAC;KACb;IAED,MAAM,GAAA;QACJ,IAAG,IAAI,CAAC,eAAe,EAAC;AACtB,YAAA,MAAM,CAAC,UAAU,CAAC,MAAK;AACrB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;AAChF,aAAC,CAAC,CAAC;AACF,SAAA;KACF;+GApBU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA,CAAA;iGAEQ,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;MCEO,qBAAqB,CAAA;AAchC,IAAA,WAAA,GAAA;QAbS,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QACpB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QACnB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAEhB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAM,CAAA,MAAA,GAAY,IAAI,CAAC;AACtB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KACC;IAEjB,QAAQ,GAAA;QACN,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KAC7E;IACD,UAAU,CAAC,IAAS,EAAE,OAAgB,EAAA;AACpC,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9D,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAO,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC;AACzE,YAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACzC,aAAA;AACF,SAAA;KACF;AACD,IAAA,UAAU,CAAC,IAAS,EAAA;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAC5C,CAAC,EAAO,KAAK,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAC7C,CAAC;AACF,QAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACzC,SAAA;KACF;IAED,IAAI,GAAA;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACxC;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAED,SAAS,CAAC,KAAU,EAAE,aAAkB,EAAA;AACtC,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;KAChD;AACD,IAAA,SAAS,CAAC,GAAQ,EAAA;QAChB,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAM,KAAI;AACjD,gBAAA,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/B,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACzB,SAAA;KACF;+GA7DU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,wUCRlC,+9IA8HA,EAAA,MAAA,EAAA,CAAA,khNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjG,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyE,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8B,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3C,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4C,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAApE,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtHa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,+9IAAA,EAAA,MAAA,EAAA,CAAA,khNAAA,CAAA,EAAA,CAAA;0EAKpB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MEPI,yBAAyB,CAAA;AAMpC,IAAA,WAAA,CAAoB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAL1D,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC;QACvC,IAAU,CAAA,UAAA,GAAG,WAAW,CAAA;QACxB,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;QAG5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;YACvD,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC;AACnD,YAAA,IAAG,GAAG,EAAC;gBACP,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,CAAC;AAC3D,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;+GAjBU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAqE,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,6DCXtC,4rCAuCA,EAAA,MAAA,EAAA,CAAA,o8DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD5Ba,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,4rCAAA,EAAA,MAAA,EAAA,CAAA,o8DAAA,CAAA,EAAA,CAAA;;;ME6CtB,gBAAgB,CAAA;AA/B7B,IAAA,WAAA,GAAA;QAgCW,IAAW,CAAA,WAAA,GAClB,kBAAkB,CAAC;QACZ,IAAQ,CAAA,QAAA,GAAuC,KAAK,CAAC;QACrD,IAAY,CAAA,YAAA,GACnB,4BAA4B,CAAC;QACtB,IAAQ,CAAA,QAAA,GAAuC,KAAK,CAAC;QACrD,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QACb,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QACb,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAEvB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AACzC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAU,CAAC;AAkB3D,KAAA;IAdC,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACzC;IACD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAChC;+GA9BU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EA7BjB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,oqEAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAIU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA/B5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACd,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBT,EAEgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,oqEAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;8BAGtC,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAEa,YAAY,EAAA,CAAA;sBAA/B,SAAS;uBAAC,OAAO,CAAA;;;MClCP,oBAAoB,CAAA;AA/BjC,IAAA,WAAA,GAAA;QAgCW,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QACrB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACnC,KAAA;+GANY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EA7BrB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0iDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA/BhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACd,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,0iDAAA,CAAA,EAAA,CAAA;8BAIQ,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;MCMK,oBAAoB,CAAA;AAzCjC,IAAA,WAAA,GAAA;QA0CE,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QACP,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAC1C,KAAA;+GAPY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAvCrB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2G,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAzChC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;8BAKQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;MCgBK,oBAAoB,CAAA;AAiB/B,IAAA,WAAA,GAAA;QAhBA,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAC1B,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;AAClB,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,iCAAiC;SAC/C,CAAC;QACF,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAGtB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;QAE3B,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;KAEtB;AAEjB,IAAA,QAAQ,MAAY;AAEpB,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACxC;AAED,IAAA,mBAAmB,CAAC,KAAU,EAAA;QAC5B,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;KAC/C;IAED,gBAAgB,GAAA;QACd,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC;AACpC,SAAA;KACF;+GAnCU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EA1DrB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3G,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoD,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA5DhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;0EAeQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;gCCjEK,iBAAiB,CAAA;AAc5B,IAAA,cAAc,CAAC,IAAS,EAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AACtD,SAAA;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;AAED,IAAA,WAAA,GAAA;QA3BA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QACjB,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;AAEzB,QAAA,IAAA,CAAA,MAAM,GAAQ;AACrB,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,yBAAyB,EAAE,KAAK;AAChC,YAAA,0BAA0B,EAAE,EAAE;SAC/B,CAAC;AAEQ,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAe,CAAC;KAgB5C;AAChB,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IACE,OAAO,CAAC,cAAc,CAAC;AACvB,YAAA,OAAO,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,MAAM,EAC3C;AACA,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AACtD,SAAA;KACF;IAED,cAAc,GAAA;KACb;AAED,IAAA,eAAe,CAAC,QAAiB,EAAA;QAC/B,IAAI,CAAC,aAAa,GAAG,QAAQ;AAC3B,cAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAU,KAAK,IAAI,EAAE,EAAE,CAAC;cAChD,EAAE,CAAC;QAEP,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC/C;IAED,aAAa,GAAA;QACX,QACE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAC/E;KACH;IAED,eAAe,CAAC,IAAS,EAAE,QAAiB,EAAA;AAC1C,QAAA,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;gBAC3C,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACpC,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;AAC1E,SAAA;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC/C;+GAjEU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,yLChB9B,ohEA4DA,EAAA,MAAA,EAAA,CAAA,o5EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/G,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgH,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gCAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD5CaC,mBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,ohEAAA,EAAA,MAAA,EAAA,CAAA,o5EAAA,CAAA,EAAA,CAAA;0EAOlB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAOI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MEhBI,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;QAMW,IAAK,CAAA,KAAA,GAAU,EAAE,CAAC;QAClB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AAChB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAO,CAAC;AAe5C,KAAA;IAZC,QAAQ,GAAA;KACP;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACpB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;AAC5C,SAAA;KACF;AAED,IAAA,QAAQ,CAAC,IAAS,EAAA;AAChB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxB;+GAjBU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,gKCZjC,ujDAqDA,EAAA,MAAA,EAAA,CAAA,86EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA9C,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDzCa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,ujDAAA,EAAA,MAAA,EAAA,CAAA,86EAAA,CAAA,EAAA,CAAA;8BAKnB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;;;AEAT,IAAY,cAIX,CAAA;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;MAOY,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;QAMS,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;AAGjC,QAAA,IAAA,CAAA,mBAAmB,GAC1B,mBAAmB,CAAC,SAAS,CAAC;AACvB,QAAA,IAAA,CAAA,cAAc,GAAmB,cAAc,CAAC,KAAK,CAAC;QAE/D,IAAO,CAAA,OAAA,GAAQ,mBAAmB,CAAC;QAE1B,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAG,CAAA,GAAA,GAAW,EAAE,CAAC;QACjB,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AACpB,QAAA,IAAA,CAAA,KAAK,GAAW,cAAc,CAAC,KAAK,CAAC;AACrC,QAAA,IAAA,CAAA,UAAU,GAAW,mBAAmB,CAAC,SAAS,CAAC;QACnD,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QACtB,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;QAI5B,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QACvB,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAE7B,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAO,CAAC;AACjD,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,YAAY,EAAO,CAAC;AACtD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AAgDlD,KAAA;IA5DC,IAAa,MAAM,CAAC,KAAU,EAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,KAAK,EAAE,CAAC;KACrD;AAYD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC;AAC/C,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;YACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;AACpD,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE;YAC7B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC;AAC9D,SAAA;KACF;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAChC;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG;AACf,YAAA;gBACE,KAAK,EAAE,KAAK,EAAE,IAAI;gBAClB,KAAK,EAAE,KAAK,EAAE,GAAG;AAClB,aAAA;SACF,CAAC;QACF,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClD;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CACpC,CAAC,IAAS,KAAK,IAAI,EAAE,KAAK,KAAK,KAAK,EAAE,KAAK,CAC5C,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC3D,YAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;AACnC,SAAA;QACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClD;AAED,IAAA,uBAAuB,CAAC,KAAU,EAAA;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAC/C,CAAC,IAAS,KAAK,IAAI,EAAE,KAAK,KAAK,KAAK,EAAE,KAAK,CAC5C,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AAC3D,YAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;AACnC,SAAA;QACD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC5D;+GA7EU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,8lBC1BnC,m1GAwGA,EAAA,MAAA,EAAA,CAAA,4tIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmH,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxF,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyF,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD9Ea,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,m1GAAA,EAAA,MAAA,EAAA,CAAA,4tIAAA,CAAA,EAAA,CAAA;8BAcrB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,sBAAsB,EAAA,CAAA;sBAA/B,MAAM;gBACG,2BAA2B,EAAA,CAAA;sBAApC,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;;;ME8FI,kBAAkB,CAAA;IAiC7B,IAAa,gBAAgB,CAAC,KAAU,EAAA;AACtC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,GAAG,CAAC;AAEhC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,EAAE,UAAU,CAAC;QAC7C,IAAI,KAAK,EAAE,UAAU,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,GAAGrI,gBAAc,CAAC,QAAQ,CAAC;AAC5C,SAAA;KAEF;AAQD,IAAA,WAAA,CAAoB,iBAA0C,EAAA;QAA1C,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAyB;QAhD9D,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAO,CAAA,OAAA,GAAG,WAAW,CAAC;QACtB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;QAClB,IAAyB,CAAA,yBAAA,GAAU,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,YAAY,GAAQ;AAClB,YAAA,GAAG,mBAAmB;YACtB,MAAM,EAAE,WAAW,CAAC,EAAE;YACtB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,iBAAiB;AAC3D,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;AACF,QAAA,IAAA,CAAA,MAAM,GAAQ;AACZ,YAAA,GAAG,mBAAmB;YACtB,MAAM,EAAE,WAAW,CAAC,EAAE;YACtB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW;AACrD,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;QACF,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAc,CAAA,cAAA,GAAGA,gBAAc,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;AAC1C,QAAA,IAAA,CAAA,KAAK,GAAWA,gBAAc,CAAC,KAAK,CAAC;AACrC,QAAA,IAAA,CAAA,WAAW,GAAWA,gBAAc,CAAC,KAAK,CAAC;QAC3C,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAc,CAAA,cAAA,GAAU,EAAE,CAAC;QAC3B,IAAmB,CAAA,mBAAA,GAAU,EAAE,CAAC;QAChC,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAC/B,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QAEd,IAAO,CAAA,OAAA,GAAQ,EAAE,CAAC;QAClB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,gBAAgB,GAAW,MAAM,CAAC,WAAW,CAAC;QAC9C,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAU1B,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAEzB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;AACrC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEc;IACnE,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAGA,gBAAc,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;KAC/B;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACrC,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE;AAC1C,gBAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,KAAK,CAAC;AAClC,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC1B,aAAA;AACF,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC;AACrC,SAAA;KACF;IAED,4BAA4B,GAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,KAAK,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AAChI,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,CAAC,yBAAyB,GAAG,GAAG,CAAC;AACrC,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;gBACxB,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,aAAA;AACD,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC5B,SAAC,CAAC,CAAC;KACN;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,yBAAyB;kBAC/C,MAAM,CAAC,CAAC,EAAO,KAAK,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AAChF,kBAAE,GAAG,CAAC,CAAC,EAAO,MAAM;gBAClB,KAAK,EAAE,EAAE,EAAE,SAAS;gBACpB,KAAK,EAAE,EAAE,EAAE,KAAK;AACjB,aAAA,CAAC,CAAC,CAAC;AACN,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,EAAO,KACnE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,CAAC,CACnE,CAAC;AACF,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAO,MAAM;gBAC9D,IAAI,EAAE,EAAE,EAAE,SAAS;gBACnB,GAAG,EAAE,EAAE,EAAE,GAAG;AACb,aAAA,CAAC,CAAC,CAAC;AACJ,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,yBAAyB;AACvD,kBAAE,MAAM,CAAC,CAAC,EAAO,KAAK,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAClE,kBAAE,GAAG,CAAC,CAAC,EAAO,MAAM;gBAClB,KAAK,EAAE,EAAE,EAAE,SAAS;gBACpB,KAAK,EAAE,EAAE,EAAE,GAAG;AACf,aAAA,CAAC,CAAC,CAAC;AACN,YAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACtC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,oBAAoB;mBAC/G,CAAC,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ;AACtC,qBAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC;mBACpE,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,KAAK,CAAC,CAAC;AACzC,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,yBAAyB;AAChD,aAAA,MAAM,CAAC,CAAC,EAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAA,GAAG,CAAC,CAAC,EAAO,MAAM;YACjB,KAAK,EAAE,EAAE,EAAE,SAAS;YACpB,KAAK,EAAE,EAAE,EAAE,KAAK;AACjB,SAAA,CAAC,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,yBAAyB;AACrD,aAAA,MAAM,CAAC,CAAC,EAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC9C,aAAA,GAAG,CAAC,CAAC,EAAO,MAAM;YACjB,IAAI,EAAE,EAAE,EAAE,SAAS;YACnB,GAAG,EAAE,EAAE,EAAE,GAAG;AACb,SAAA,CAAC,CAAC,CAAC;KACP;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,WAAW,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AAC3C,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACrD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;KAC1C;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,yBAAyB;AACzD,aAAA,MAAM,CAAC,CAAC,EAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;aAC9C,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,EAAO,KAClE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAC1B,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,MAAe,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;KACF;AAED,IAAA,SAAS,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,EAAO,KACnE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,CAAC,CACtD,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,CACpD,CAAC,EAAO,KAAK,EAAE,EAAE,GAAG,CACrB,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;KACtC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,KAAK,CAAC;KACnC;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;QACvB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC;KACnD;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,QACE,IAAI,CAAC,IAAI,KAAK,MAAM;AACpB,YAAA,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,oBAAoB;YAC5D,IAAI,CAAC,YAAY,KAAK,MAAM;YAC5B,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,EAC3C;KACH;+GA9NU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAsI,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EA7HnB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0HT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,EAAA,qXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtH,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0G,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,6BAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,+BAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBA/H9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAChB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0HT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,EAAA,qXAAA,CAAA,EAAA,CAAA;2GAgCQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBASG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MCvII,qBAAqB,CAAA;IA2BhC,IAAa,gBAAgB,CAAC,KAAU,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE,EAAE,CAAC;KAC9B;AAQD,IAAA,WAAA,CAAoB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QApC1D,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAC1B,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;AAChB,QAAA,IAAA,CAAA,MAAM,GAAQ;AACZ,YAAA,GAAG,mBAAmB;YACtB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW;AAChE,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;QACF,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QACtB,IAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;QACrB,IAAc,CAAA,cAAA,GAAG1I,gBAAc,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;QAC1C,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAE3B,QAAA,IAAA,CAAA,KAAK,GAAGA,gBAAc,CAAC,KAAK,CAAC;QAC7B,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;QAClB,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,WAAW;SACzB,CAAC;QAEO,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;QAM3B,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;QAC9B,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAEzB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;AAC3C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAW,CAAC;KAEK;IAE/D,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE;YAC/B,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;AAChC,gBAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,KAAK,CAAC;AACnC,aAAA;AACF,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;AAC9C,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClC,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;oBACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,iBAAA;AACD,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpC;AACF,SAAA,CAAC,CAAC;KACJ;IAED,mBAAmB,GAAA;QACjB,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACrC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ;AAC5B,kBAAE,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,WAAW,CAAC;AACvD,kBAAE,GAAG,CAAC,CAAC,IAAS,MAAM;gBACpB,KAAK,EAAE,IAAI,EAAE,IAAI;gBACjB,KAAK,EAAE,IAAI,EAAE,GAAG;AACjB,aAAA,CAAC,CAAC,CAAC;AACP,SAAA;KACF;AAED,IAAA,wBAAwB,CAAC,KAAU,EAAA;QACjC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QAC9C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AAC5C,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CACxD,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAC7C,EAAE,aAAa,CAAC;AACjB,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;KACvD;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,QACE,IAAI,CAAC,IAAI,KAAK,MAAM;AACpB,YAAA,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,oBAAoB;AAC5D,YAAA,IAAI,CAAC,YAAY,KAAK,MAAM,EAC5B;KACH;+GAxGU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwH,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAxCtB,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsD,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,6BAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxB,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA1CjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EACxB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;sGA2BQ,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MC7BI,mBAAmB,CAAA;AAmB9B,IAAA,WAAA,CACU,aAA4B,EAC5B,WAAwB,EACxB,kBAAsC,EAAA;QAFtC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QArBhD,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAE1B,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAG;AACX,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,MAAM,EAAE;SACd,CAAC;QACF,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAGtB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;KAO/B;IAML,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;AAED,IAAA,eAAe,CAAC,GAAQ,EAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;AACR,SAAA;AACD,QAAA,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACjB,YAAA,IAAI,UAAU,GAAG;gBACf,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;aACN,CAAC;AACF,YAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;AACpD,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClE,YAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,CAAG,EAAA,SAAS,IAAI,UAAU,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC;AAC3D,SAAA;AACD,QAAA,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAChF,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAED,qBAAqB,GAAA;QACnB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;KACjD;AAED,IAAA,cAAc,CAAC,OAA6B,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,QAAQ;AACtB,aAAA,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7B,OAAO,CAAC,KAAK,CAAC;aACd,OAAO,CAAC,YAAY,CAAC;aACrB,OAAO,CAAC,KAAK,CAAC,CAAC;AAElB,QAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;KACzC;AAGD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,IAAI,CAAC,eAAe;YAC3B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAChC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D;+GA7FU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA1D,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAlF,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA6I,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EA0BG,UAAU,EAxEjC,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAhD/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;wJAkBQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAQmB,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBAEvB,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBA0D5D,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCrG/B,qBAAqB,CAAA;IAsBhC,IAAa,gBAAgB,CAAC,KAAU,EAAA;AACtC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,EAAE,EAAE,CAAC;KAClC;AAOD,IAAA,WAAA,CAAoB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QA9B1D,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAC1B,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;AAClB,QAAA,IAAA,CAAA,MAAM,GAAQ;AACZ,YAAA,GAAG,mBAAmB;YACtB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW;AAC/D,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;QACF,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QACtB,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAc,CAAA,cAAA,GAAG7H,gBAAc,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;AAC1C,QAAA,IAAA,CAAA,KAAK,GAAGA,gBAAc,CAAC,KAAK,CAAC;QAC7B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAE3B,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAEtB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;QAE3B,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;QAC9B,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAI1B,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAEzB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;AAC3C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAW,CAAC;KAEM;IAE/D,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE;YAC/B,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC/B,gBAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,KAAK,CAAC;AACnC,aAAA;AACF,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC;AACnD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;AACvC,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;oBACxB,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAChC,iBAAA;AACD,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACnC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACnC;AACF,SAAA,CAAC,CAAC;KACJ;IAED,uBAAuB,GAAA;QACrB,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACrC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa;AACjC,kBAAE,MAAM,CAAC,CAAC,QAAa,KAAK,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC;AACnE,kBAAE,GAAG,CAAC,CAAC,QAAa,MAAM;gBACxB,KAAK,EAAE,QAAQ,EAAE,IAAI;gBACrB,KAAK,EAAE,QAAQ,EAAE,GAAG;AACrB,aAAA,CAAC,CAAC,CAAC;AACP,SAAA;KACF;AAED,IAAA,wBAAwB,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QAC3C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QAC9C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KACtD;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,QACE,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,oBAAoB;YAC5D,IAAI,CAAC,IAAI,KAAK,MAAM;AACpB,YAAA,IAAI,CAAC,YAAY,KAAK,MAAM,EAC5B;KACH;+GA/FU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwH,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EA7BtB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqB,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,6BAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA/BjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;sGAqBQ,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MCxEI,4BAA4B,CAAA;AACvC,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,QAAQ,MAAW;+GAHR,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,2DCPzC,4jCAiCA,EAAA,MAAA,EAAA,CAAA,gyDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Ba,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,4jCAAA,EAAA,MAAA,EAAA,CAAA,gyDAAA,CAAA,EAAA,CAAA;;;ME2BpB,8BAA8B,CAAA;IASzC,IAA2B,OAAO,CAAC,KAAU,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;IASD,IAA2B,WAAW,CAAC,KAAU,EAAA;AAC/C,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;KACF;AAGD,IAAA,WAAA,GAAA;AA3BU,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAa,CAAC;AAC1C,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QACtC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QACV,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QAKd,IAAW,CAAA,WAAA,GAAQ,CAAC,CAAC;QACrB,IAAW,CAAA,WAAA,GAAQ,CAAC,CAAC;QACrB,IAAS,CAAA,SAAA,GAAQ,CAAC,CAAC;QACnB,IAAY,CAAA,YAAA,GAAQ,CAAC,CAAC;QACtB,IAAU,CAAA,UAAA,GAAQ,CAAC,CAAC;QACpB,IAAO,CAAA,OAAA,GAAQ,IAAI,CAAC;QACpB,IAAa,CAAA,aAAA,GAA0B,UAAU,CAAC;QAO3D,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;KACL;AAEjB,IAAA,QAAQ,MAAY;;AAGpB,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KAC5E;;IAGD,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KAC5E;IAED,YAAY,CAAC,KAAU,EAAE,IAAS,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE;AACnC,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,aAAA;AAAM,iBAAA;gBACL,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CACrC,CAAC,CAAM,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,CACjC,CAAC;gBACF,IAAI,KAAK,IAAI,CAAC,EAAE;oBACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAC1C,CAAC,GAAQ,KACP,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;wBAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CACnC,CAAC;oBACF,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CACtC,CAAC,GAAQ,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAC9C,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAClD,CAAC,GAAG,CAAC,CAAC,EAAE,KAAI;AACX,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;AAC1D,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAC1C,CAAC,GAAQ,KACP,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CACtE,CAAC;QACF,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;IACD,IAAI,GAAA;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACnC;AAED,IAAA,SAAS,CAAC,GAAQ,EAAA;AAChB,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;AACxB,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAC1C,CAAC,GAAQ,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAClD,CAAC;YACF,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;KACF;IACD,cAAc,GAAA;AACZ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAO,KACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CACzD,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;+GA9GU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,ocC9B3C,qwKAgJA,EAAA,MAAA,EAAA,CAAA,4gTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyE,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhF,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiG,4BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlHa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,qwKAAA,EAAA,MAAA,EAAA,CAAA,4gTAAA,CAAA,EAAA,CAAA;0EAK7B,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAKoB,OAAO,EAAA,CAAA;sBAAjC,KAAK;uBAAC,cAAc,CAAA;gBAGZ,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACqB,WAAW,EAAA,CAAA;sBAArC,KAAK;uBAAC,cAAc,CAAA;;;MEyEV,qBAAqB,CAAA;IAmChC,IAAa,gBAAgB,CAAC,KAAU,EAAA;AACtC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,EAAE,GAAG,CAAC;KAEnC;IACD,IAAa,0BAA0B,CAAC,KAAU,EAAA;AAChD,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,EAAE,GAAG,CAAC;KAC7C;AAQD,IAAA,WAAA,CAAoB,WAA+B,EAAA;QAA/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAhDnD,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAa,CAAA,aAAA,GAAG,WAAW,CAAC;QAC5B,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,MAAM,GAAQ;YACZ,GAAG,eAAe,CAAC,aAAa;YAChC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW;SAClE,CAAC;QACF,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;QAC3C,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAc,CAAA,cAAA,GAAGnJ,gBAAc,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;AAC1C,QAAA,IAAA,CAAA,KAAK,GAAWA,gBAAc,CAAC,KAAK,CAAC;AACrC,QAAA,IAAA,CAAA,uBAAuB,GAAWA,gBAAc,CAAC,KAAK,CAAC;QACvD,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAuB,CAAA,uBAAA,GAAU,EAAE,CAAC;QACpC,IAAoB,CAAA,oBAAA,GAAU,EAAE,CAAC;QACjC,IAA8B,CAAA,8BAAA,GAAU,EAAE,CAAC;QAE3C,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;QAClB,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,EAAE,EAAE,aAAa;SAClB,CAAC;QAEF,IAAwB,CAAA,wBAAA,GAAU,EAAE,CAAC;QAE5B,IAAO,CAAA,OAAA,GAAQ,EAAE,CAAC;QAClB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;QAS3B,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAEzB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;AAC3C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AACvC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEG;IAExD,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAED,IAAA,YAAY,CAAC,KAAa,EAAA;AACxB,QAAA,OAAO,KAAK,CAAC;KACd;IAED,iBAAiB,CAAC,KAAU,EAAE,KAAa,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AACpE,YAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;AACtG,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE;AACxC,gBAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,KAAK,CAAC;AAClC,gBAAA,IAAI,CAAC,uBAAuB,GAAGA,gBAAc,CAAC,KAAK,CAAC;AACpD,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC/B,gBAAA,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;AAClC,gBAAA,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC;AAC1C,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAEnC,aAAA;YACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAChC,SAAA;QACD,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,4BAA4B,CAAC,EAAE;YACxE,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAChC,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACzD,YAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,IAAI,CAAC;AAClC,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;gBACxB,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,IAAI,CAAC,0BAA0B,EAAE,CAAC;AACnC,aAAA;AACD,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAClC,SAAC,CAAC,CAAC;KACJ;IAED,uBAAuB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;AACR,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO;AACR,SAAA;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAEO,cAAc,GAAA;AACpB,QAAA,QACE,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,IAAI,CAAC,yBAAyB,EAAE,MAAM;AACvE,YAAA,IAAI,CAAC,YAAY,KAAK,MAAM,EAC5B;KACH;IAEO,aAAa,GAAA;AACnB,QAAA,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,IAAI,CAAC,yBAAyB,EAAE,MAAM,KAAK,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC;KAChH;IAEO,iBAAiB,GAAA;AACvB,QAAA,MAAM,0BAA0B,GAC9B,IAAI,CAAC,IAAI,KAAK,MAAM;YACpB,IAAI,CAAC,YAAY,KAAK,MAAM;YAC5B,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAE/D,IAAI,CAAC,KAAK,GAAG,0BAA0B;cACnCA,gBAAc,CAAC,QAAQ;AACzB,cAAEA,gBAAc,CAAC,KAAK,CAAC;AAEzB,QAAA,IAAI,0BAA0B,EAAE;AAC9B,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;AACjF,SAAA;KAEF;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACrC,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CACvD,CAAC,QAAa,KACZ,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,EAAO,KAAK,EAAE,KAAK,QAAQ,EAAE,GAAG,CAAC,CAChE,CAAC;AACF,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB;iBACvC,MAAM,CAAC,CAAC,QAAa,KACpB,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,EAAO,KAAK,EAAE,KAAK,QAAQ,EAAE,GAAG,CAAC,CAC9D;AACA,iBAAA,GAAG,CAAC,CAAC,QAAa,MAAM;gBACvB,KAAK,EAAE,QAAQ,EAAE,IAAI;gBACrB,KAAK,EAAE,QAAQ,EAAE,GAAG;AACrB,aAAA,CAAC,CAAC,CAAC;AACP,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE,MAAM,EAAE;AAE1C,YAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CACjE,CAAC,QAAa,KACZ,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAClC,CAAC,EAAO,KAAK,EAAE,KAAK,QAAQ,EAAE,GAAG,CAClC,IAAI,IAAI,CAAC,yBAAyB,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAC/D,CAAC;AACF,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,8BAA8B;AAC/D,iBAAA,GAAG,CAAC,CAAC,QAAa,MAAM;gBACvB,KAAK,EAAE,QAAQ,EAAE,IAAI;gBACrB,KAAK,EAAE,QAAQ,EAAE,GAAG;AACrB,aAAA,CAAC,CAAC,CAAC;AACN,YAAA,IAAI,CAAC,uBAAuB,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AAEvD,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE;gBACjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAE1B,aAAA;AACF,SAAA;KACF;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,uBAAuB,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACvD,QAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CACjE,CAAC,QAAa,KACZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAO,KAAK,EAAE,KAAK,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CACzH,CAAC;AACF,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC,QAAa,MAAM;YACzF,KAAK,EAAE,QAAQ,EAAE,IAAI;YACrB,KAAK,EAAE,QAAQ,EAAE,GAAG;AACrB,SAAA,CAAC,CAAC,CAAC;KACL;AAED,IAAA,wBAAwB,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB;aACvC,MAAM,CAAC,CAAC,QAAa,KACpB,KAAK,CAAC,IAAI,CAAC,CAAC,SAAc,KAAK,SAAS,EAAE,GAAG,KAAK,QAAQ,EAAE,GAAG,CAAC,CACjE;AACA,aAAA,GAAG,CAAC,CAAC,QAAa,MAAM;YACvB,KAAK,EAAE,QAAQ,EAAE,IAAI;YACrB,KAAK,EAAE,QAAQ,EAAE,GAAG;AACrB,SAAA,CAAC,CAAC,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CACjD,CAAC,IAAS,KAAK,IAAI,EAAE,aAAa,CACnC,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IAED,0BAA0B,GAAA;QACxB,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;AAChE,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAC1D,CAAC,QAAa,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CACrE,CAAC;AACH,SAAA;KACF;AAED,IAAA,kCAAkC,CAAC,KAAU,EAAA;AAC3C,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,gBAAgB;aACjD,MAAM,CAAC,CAAC,QAAa,KACpB,KAAK,CAAC,IAAI,CAAC,CAAC,SAAc,KAAK,SAAS,EAAE,GAAG,KAAK,QAAQ,EAAE,GAAG,CAAC,CACjE;AACA,aAAA,GAAG,CAAC,CAAC,QAAa,MAAM;YACvB,KAAK,EAAE,QAAQ,EAAE,IAAI;YACrB,KAAK,EAAE,QAAQ,EAAE,GAAG;AACrB,SAAA,CAAC,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC;AAC1C,SAAA;QACD,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,OAAO,CAClE,CAAC,IAAS,KAAK,IAAI,EAAE,aAAa,CACnC,CAAC;AACF,QAAA,IAAI,CAAC,uBAAuB,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACvD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;AAED,IAAA,iCAAiC,CAAC,KAAY,EAAA;AAC5C,QAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAChE,CAAC,QAAa,KACZ,KAAK,CAAC,IAAI,CAAC,CAAC,SAAc,KAAK,SAAS,EAAE,GAAG,KAAK,QAAQ,EAAE,GAAG,CAAC,CACnE,CAAC;KACH;AAED,IAAA,uBAAuB,CAAC,KAAY,EAAA;AAClC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,QAAa,KACrE,KAAK,CAAC,IAAI,CAAC,CAAC,SAAc,KAAK,SAAS,EAAE,GAAG,KAAK,QAAQ,EAAE,GAAG,CAAC,CACjE,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,MAAe,EAAA;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;AAC9B,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;KACF;AAED,IAAA,kCAAkC,CAAC,MAAe,EAAA;AAChD,QAAA,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC;AACxC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;KACF;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,QAAa,KACrE,KAAK,CAAC,IAAI,CAAC,CAAC,SAAc,KAAK,SAAS,EAAE,KAAK,KAAK,QAAQ,EAAE,GAAG,CAAC,CACnE,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,CACxD,CAAC,QAAa,KAAK,QAAQ,EAAE,GAAG,CACjC,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KACvD;AAED,IAAA,yBAAyB,CAAC,KAAY,EAAA;AACpC,QAAA,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;YAClB,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAChE,CAAC,QAAa,KACZ,KAAK,CAAC,IAAI,CAAC,CAAC,SAAc,KAAK,SAAS,EAAE,KAAK,KAAK,QAAQ,EAAE,GAAG,CAAC,CACrE,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG;AAClC,YAAA,IAAI,CAAC,8BAA8B,EAAE,GAAG,CACtC,CAAC,QAAa,KAAK,QAAQ,EAAE,GAAG,CACjC,CAAC;KACL;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,QACE,IAAI,CAAC,IAAI,KAAK,MAAM;AACpB,YAAA,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,oBAAoB;AAC5D,YAAA,IAAI,CAAC,YAAY,KAAK,MAAM,EAC5B;KACH;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,wBAAwB,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC5D;IAED,2BAA2B,GAAA;AACzB,QAAA,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,GAAG,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,uBAAuB,GAAGA,gBAAc,CAAC,KAAK,CAAC;KACrD;+GArUU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwH,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAlGtB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+FT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsD,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,6BAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxB,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqC,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxB,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAwB,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBApGjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+FT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;sGAmCQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBAIO,0BAA0B,EAAA,CAAA;sBAAtC,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;AC1KF,MAAM,YAAY,GAAW,UAAU,CAAC;AACxC,MAAM,YAAY,GAAW,UAAU;;ACDvC,MAAM,GAAG,GAAG;AACjB,IAAA,gBAAgB,EAAE,CAAkB,gBAAA,CAAA;AACpC,IAAA,kBAAkB,EAAE,CAA0B,wBAAA,CAAA;AAC9C,IAAA,UAAU,EAAE,CAA6B,2BAAA,CAAA;AACzC,IAAA,kBAAkB,EAAE,CAA2B,yBAAA,CAAA;CAChD,CAAC;AAGK,MAAM,gBAAgB,GAAG;AAC9B,IAAA,WAAW,EAAE,kBAAkB;AAC/B,IAAA,YAAY,EAAE,wBAAwB;CACvC;;ACXM,MAAM,WAAW,GAAG;AACzB,IAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;CAC3B;;ACVM,MAAMC,qBAAmB,GAAG,0CAA0C,CAAC;AAEvE,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,iBAAiB,GAAG,+PAA+P;;MCanR,gBAAgB,CAAA;AAqE3B,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACxB,UAAsB,EAClB,MAAuB,EAAA;QAH3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAvEzB,QAAA,IAAA,CAAA,UAAU,GAAkB;YACjC,SAAS;YACT,UAAU;YACV,OAAO;YACP,OAAO;YACP,KAAK;YACL,MAAM;YACN,MAAM;YACN,QAAQ;YACR,WAAW;YACX,SAAS;YACT,UAAU;YACV,UAAU;SACX,CAAC;AAEK,QAAA,IAAA,CAAA,OAAO,GAAkB;YAC9B,QAAQ;YACR,SAAS;YACT,WAAW;YACX,UAAU;YACV,QAAQ;YACR,UAAU;YACV,QAAQ;AACT,SAAA,CAAC;AAEK,QAAA,IAAA,CAAA,cAAc,GAAkB;YACrC,+BAA+B;YAC/B,iCAAiC;YACjC,kCAAkC;SACnC,CAAC;AAEK,QAAA,IAAA,CAAA,UAAU,GAAG;AAClB,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,eAAe,EAAE,KAAK;SACvB,CAAC;AAEK,QAAA,IAAA,CAAA,aAAa,GAAG;AACrB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,gBAAgB,EAAE,eAAe;YACjC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACxC,YAAA,QAAQ,EAAE,CAAC;YACX,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC9C,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;AAEK,QAAA,IAAA,CAAA,gBAAgB,GAAW;AAChC,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,mBAAmB,EAAE,CAAC;AACtB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,SAAS,EAAE,eAAe;AAC1B,YAAA,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AAClD,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AACtD,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,IAAI,EAAE,YAAY;SACnB,CAAC;AASA,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,KAAa,EAAA;QAC5B,IAAI,KAAK,IAAI,SAAS,EAAE;YACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClC,YAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClD,YAAA,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACzC,IAAI,WAAW,GAAG,EAAE,CAAC;AAErB,YAAA,IAAI,QAAQ,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE;gBACnC,IAAI,EAAE,IAAI,EAAE,EAAE;oBACZ,WAAW,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AACtC,iBAAA;qBAAM,IAAI,EAAE,GAAG,EAAE,EAAE;oBAClB,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AAC5C,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI,EAAE,IAAI,EAAE,EAAE;AACZ,oBAAA,WAAW,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC;AACnC,iBAAA;qBAAM,IAAI,EAAE,GAAG,EAAE,EAAE;oBAClB,WAAW,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AACtC,iBAAA;AACF,aAAA;AAED,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;AAED,IAAA,QAAQ,CAAC,KAAU,EAAA;QACjB,IAAI,KAAK,IAAI,SAAS,EAAE;AACtB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,GAAG,CAAC;AACR,YAAA,IAAI,QAAQ,CAAC;YACb,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;AAC7B,gBAAA,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAClE,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,gBAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,oBAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACjB,iBAAA;gBACD,QAAQ,GAAG,IAAI,CAAC;AACjB,aAAA;AAAM,iBAAA;AACL,gBAAA,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,gBAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,oBAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACjB,iBAAA;gBACD,QAAQ,GAAG,IAAI,CAAC;AACjB,aAAA;YACD,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,GAAQ,EAAA;QACzB,IAAI,aAAa,GAAW,CAAC,CAAC;AAC9B,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACrE,QAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;AACxC,QAAA,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AAExE,QAAA,IACE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;AAC5C,aAAC,GAAG,CAAC,kBAAkB,KAAK,YAAY;gBACtC,GAAG,CAAC,kBAAkB,KAAK,eAAe;AAC1C,gBAAA,GAAG,CAAC,kBAAkB,KAAK,eAAe,CAAC,EAC7C;YACA,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1B,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;oBACvC,aAAa,GAAG,CAAC,CAAC;oBAClB,MAAM;AACP,iBAAA;AACF,aAAA;YACD,MAAM,kBAAkB,GAAG,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC/D,YAAA,aAAa,GAAG,IAAI,IAAI,CACtB,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAC1C,CAAC,OAAO,EAAE,CAAC;AACb,SAAA;AAAM,aAAA,IACL,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;AAC5C,YAAA,EACE,GAAG,CAAC,kBAAkB,KAAK,YAAY;gBACvC,GAAG,CAAC,kBAAkB,KAAK,eAAe;AAC1C,gBAAA,GAAG,CAAC,kBAAkB,KAAK,eAAe,CAC3C;AACD,YAAA,GAAG,CAAC,kBAAkB,KAAK,WAAW,EACtC;AACA,YAAA,MAAM,UAAU,GAAGC,QAAM,CACvB,OAAO;gBACL,GAAG;iBACF,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC3B,GAAG;AACH,gBAAA,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACxB,gBAAA,QAAQ,EACV,kBAAkB,CACnB,CAAC,IAAI,EAAE,CAAC;AACT,YAAA,aAAa,GAAG,UAAU,GAAG,IAAI,CAAC;AACnC,SAAA;AAAM,aAAA,IACL,GAAG,CAAC,kBAAkB,KAAK,WAAW;AACtC,YAAA,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAC5C;AACA,YAAA,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC5B,SAAA;AAAM,aAAA;YACL,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;AACjD,SAAA;QACD,OAAO,aAAa,GAAG,IAAI,CAAC;KAC7B;IAED,kBAAkB,CAAC,SAAc,EAAE,UAAe,EAAA;QAChD,IAAI;YACF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;AAC9C,YAAA,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtD,YAAA,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1D,YAAA,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AACrE,YAAA,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,cAAc,GAAG,aAAa,CAAC;AACnC,YAAA,QAAQ,KAAK;AACX,gBAAA,KAAK,CAAC,CAAC;AACP,gBAAA,KAAK,CAAC,CAAC;AACP,gBAAA,KAAK,CAAC,CAAC;AACP,gBAAA,KAAK,CAAC;oBACJ,cAAc,GAAG,aAAa,CAAC;oBAC/B,MAAM;AACR,gBAAA,KAAK,CAAC,CAAC;AACP,gBAAA,KAAK,CAAC,CAAC;AACP,gBAAA,KAAK,CAAC,CAAC;AACP,gBAAA,KAAK,EAAE;oBACL,cAAc,GAAG,aAAa,CAAC;oBAC/B,MAAM;AACR,gBAAA,KAAK,CAAC,CAAC;AACP,gBAAA,KAAK,CAAC,CAAC;AACP,gBAAA,KAAK,CAAC,CAAC;AACP,gBAAA,KAAK,EAAE;oBACL,cAAc,GAAG,aAAa,CAAC;oBAC/B,MAAM;AACT,aAAA;;AAED,YAAA,IAAI,iBAAiB,CAAC;AAEtB,YAAA,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,sBAAsB,GAAG,CAAC,CAAC;;;;YAK/B,IAAI,SAAS,KAAK,YAAY,EAAE;AAC9B,gBAAA,iBAAiB,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;gBAC/C,sBAAsB,GAAG,EAAE,CAAC;AAC7B,aAAA;iBAAM,IAAI,SAAS,KAAK,UAAU,EAAE;gBACnC,iBAAiB;oBACf,IAAI;wBACJ,SAAS,CAAC,WAAW,EAAE;wBACvB,GAAG;AACH,yBAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAC1B,GAAG;wBACH,SAAS,CAAC,OAAO,EAAE,CAAC;AACvB,aAAA;iBAAM,IAAI,SAAS,KAAK,WAAW,EAAE;gBACpC,iBAAiB,GAAG,SAAS,CAAC;gBAC9B,sBAAsB,GAAG,EAAE,CAAC;AAC7B,aAAA;iBAAM,IAAI,SAAS,KAAK,qBAAqB,EAAE;gBAC9C,iBAAiB,GAAG,SAAS,CAAC;gBAC9B,sBAAsB,GAAG,EAAE,CAAC;AAC7B,aAAA;iBAAM,IAAI,SAAS,KAAK,eAAe,EAAE;gBACxC,iBAAiB,GAAG,UAAU,CAAC;gBAC/B,sBAAsB,GAAG,EAAE,CAAC;AAC7B,aAAA;iBAAM,IAAI,SAAS,KAAK,eAAe,EAAE;AACxC,gBAAA,iBAAiB,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;gBAC/C,sBAAsB,GAAG,EAAE,CAAC;AAC7B,aAAA;iBAAM,IAAI,SAAS,KAAK,iBAAiB,EAAE;AAC1C,gBAAA,iBAAiB,GAAG,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC;gBAChD,sBAAsB,GAAG,EAAE,CAAC;AAC7B,aAAA;iBAAM,IAAI,SAAS,KAAK,eAAe,EAAE;AACxC,gBAAA,iBAAiB,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;gBAC/C,sBAAsB,GAAG,EAAE,CAAC;AAC7B,aAAA;iBAAM,IAAI,SAAS,KAAK,aAAa,EAAE;gBACtC,iBAAiB;AACf,oBAAA,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,+BAA+B,CAAC;gBAC/D,sBAAsB,GAAG,EAAE,CAAC;AAC7B,aAAA;iBAAM,IAAI,SAAS,KAAK,eAAe,EAAE;gBACxC,iBAAiB,GAAG,UAAU,CAAC;gBAC/B,sBAAsB,GAAG,EAAE,CAAC;AAC7B,aAAA;iBAAM,IAAI,SAAS,KAAK,uBAAuB,EAAE;gBAChD,iBAAiB;oBACf,IAAI;wBACJ,SAAS,CAAC,OAAO,EAAE;wBACnB,GAAG;yBACF,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,8BAAE,eAAe;8BACf,cAAc,CAAC;AACnB,wBAAA,IAAI,CAAC;gBACP,sBAAsB,GAAG,EAAE,CAAC;AAC7B,aAAA;iBAAM,IAAI,SAAS,KAAK,eAAe,EAAE;gBACxC,iBAAiB,GAAG,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC;AACjE,aAAA;iBAAM,IAAI,SAAS,KAAK,gBAAgB,EAAE;gBACzC,iBAAiB,GAAG,WAAW,CAAC;AACjC,aAAA;iBAAM,IAAI,SAAS,KAAK,aAAa,EAAE;AACtC,gBAAA,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CACnC,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CACtC,CAAC;AACF,gBAAA,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CACpC,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CACtC,CAAC;AACF,gBAAA,MAAM,OAAO,GACX,MAAM,GAAG,CAAC,CAAC;AACT,sBAAE,GAAG;wBACH,cAAc,CAAC,MAAM,CAAC;wBACtB,GAAG;wBACH,eAAe,CAAC,MAAM,CAAC;wBACvB,IAAI;AACN,sBAAE,GAAG;wBACH,cAAc,CAAC,MAAM,CAAC;wBACtB,GAAG;wBACH,eAAe,CAAC,MAAM,CAAC;AACvB,wBAAA,IAAI,CAAC;gBACX,iBAAiB,GAAG,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC;gBACzD,sBAAsB,GAAG,EAAE,CAAC;AAC7B,aAAA;iBAAM,IAAI,SAAS,KAAK,QAAQ,EAAE;gBACjC,iBAAiB;AACf,oBAAA,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACxE,aAAA;iBAAM,IAAI,SAAS,KAAK,eAAe,EAAE;gBACxC,iBAAiB;AACf,oBAAA,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACxE,aAAA;iBAAM,IAAI,SAAS,KAAK,eAAe,EAAE;gBACxC,iBAAiB;AACf,oBAAA,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACxE,aAAA;iBAAM,IAAI,SAAS,KAAK,eAAe,EAAE;gBACxC,iBAAiB;AACf,oBAAA,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACxE,aAAA;iBAAM,IAAI,SAAS,KAAK,eAAe,EAAE;gBACxC,iBAAiB;AACf,oBAAA,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACxE,aAAA;iBAAM,IAAI,SAAS,KAAK,gBAAgB,EAAE;gBACzC,iBAAiB;AACf,oBAAA,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACzE,aAAA;iBAAM,IAAI,SAAS,KAAK,qBAAqB,EAAE;gBAC9C,iBAAiB,GAAG,EAAE,CAAC;AACxB,aAAA;AAAM,iBAAA;gBACL,iBAAiB,GAAG,EAAE,CAAC;AACxB,aAAA;;AAGD,YAAA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,CAAC;AACtD,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC;AAC7D,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,SAAc,EAAE,GAAQ,EAAE,KAAU,EAAE,IAAU,EAAA;QAChE,MAAM,UAAU,GAAG,WAAW,CAAC;AAC/B,QAAA,IAAI,iBAAiB,CAAC;QACtB,IAAI,sBAAsB,GAAG,CAAC,CAAC;AAC/B,QAAA,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;AAE9B,QAAA,UAAU,CAAC,QAAQ,CACjB,OAAO,KAAK,KAAK,QAAQ;cACrB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;kBAC3D,KAAK,GAAG,CAAC;cACb,KAAK,CACV,CAAC;QACF,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,UAAU,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,SAAA;AAAM,aAAA;AACL,YAAA,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC9B,SAAA;AACD,QAAA,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,cAAc,GAAG,aAAa,CAAC;AACnC,QAAA,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtD,QAAA,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1D,QAAA,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;AAEpC,QAAA,QAAQ,UAAU,CAAC,QAAQ,EAAE;AAC3B,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC;gBACJ,cAAc,GAAG,aAAa,CAAC;gBAC/B,MAAM;AACR,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,EAAE;gBACL,cAAc,GAAG,aAAa,CAAC;gBAC/B,MAAM;AACR,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,EAAE;gBACL,cAAc,GAAG,aAAa,CAAC;gBAC/B,MAAM;AACT,SAAA;AACD,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;AACnE,QAAA,QAAQ,SAAS;AACf,YAAA,KAAK,YAAY;AACf,gBAAA,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;gBAC3C,sBAAsB,GAAG,EAAE,CAAC;gBAC5B,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,iBAAiB;oBACf,IAAI;wBACJ,EAAE;wBACF,UAAU,CAAC,WAAW,EAAE;wBACxB,GAAG;AACH,yBAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAC3B,GAAG;wBACH,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,iBAAiB,GAAG,SAAS,CAAC;gBAC9B,sBAAsB,GAAG,EAAE,CAAC;gBAC5B,MAAM;AACR,YAAA,KAAK,qBAAqB;gBACxB,iBAAiB,GAAG,SAAS,CAAC;gBAC9B,sBAAsB,GAAG,EAAE,CAAC;gBAC5B,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,iBAAiB,GAAG,UAAU,CAAC;gBAC/B,sBAAsB,GAAG,EAAE,CAAC;gBAC5B,MAAM;AACR,YAAA,KAAK,eAAe;AAClB,gBAAA,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;gBAC3C,sBAAsB,GAAG,EAAE,CAAC;gBAC5B,MAAM;AACR,YAAA,KAAK,iBAAiB;AACpB,gBAAA,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;gBAC5C,sBAAsB,GAAG,EAAE,CAAC;gBAC5B,MAAM;AACR,YAAA,KAAK,eAAe;AAClB,gBAAA,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;gBAC3C,sBAAsB,GAAG,EAAE,CAAC;gBAC5B,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,iBAAiB;AACf,oBAAA,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,+BAA+B,CAAC;gBAChE,sBAAsB,GAAG,EAAE,CAAC;gBAC5B,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,iBAAiB,GAAG,UAAU,CAAC;gBAC/B,sBAAsB,GAAG,EAAE,CAAC;gBAC5B,MAAM;AACR,YAAA,KAAK,uBAAuB;gBAC1B,iBAAiB;oBACf,IAAI;wBACJ,UAAU,CAAC,OAAO,EAAE;wBACpB,GAAG;yBACF,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,8BAAE,eAAe;8BACf,cAAc,CAAC;AACnB,wBAAA,IAAI,CAAC;gBACP,sBAAsB,GAAG,EAAE,CAAC;gBAC5B,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC;gBACjE,MAAM;AACR,YAAA,KAAK,gBAAgB;gBACnB,iBAAiB,GAAG,WAAW,CAAC;gBAChC,sBAAsB,GAAG,EAAE,CAAC;gBAC5B,MAAM;AACR,YAAA,KAAK,aAAa;AAChB,gBAAA,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CACnC,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CACvC,CAAC;AACF,gBAAA,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CACpC,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CACvC,CAAC;AACF,gBAAA,MAAM,OAAO,GACX,MAAM,GAAG,CAAC,CAAC;AACT,sBAAE,GAAG;wBACH,cAAc,CAAC,MAAM,CAAC;wBACtB,GAAG;wBACH,eAAe,CAAC,MAAM,CAAC;wBACvB,IAAI;AACN,sBAAE,GAAG;wBACH,cAAc,CAAC,MAAM,CAAC;wBACtB,GAAG;wBACH,eAAe,CAAC,MAAM,CAAC;AACvB,wBAAA,IAAI,CAAC;gBACX,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC;gBAC1D,MAAM;AACR,YAAA,KAAK,QAAQ,CAAC;AACd,YAAA,KAAK,QAAQ;gBACX,iBAAiB;oBACf,IAAI;wBACJ,UAAU,CAAC,OAAO,EAAE;wBACpB,GAAG;AACH,yBAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC3B,wBAAA,IAAI,CAAC;gBACP,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,iBAAiB;oBACf,IAAI;wBACJ,UAAU,CAAC,OAAO,EAAE;wBACpB,GAAG;AACH,yBAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC3B,wBAAA,IAAI,CAAC;gBACP,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,iBAAiB;oBACf,IAAI;wBACJ,UAAU,CAAC,OAAO,EAAE;wBACpB,GAAG;AACH,yBAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC3B,wBAAA,IAAI,CAAC;gBACP,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,iBAAiB;oBACf,IAAI;wBACJ,UAAU,CAAC,OAAO,EAAE;wBACpB,GAAG;AACH,yBAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC3B,wBAAA,IAAI,CAAC;gBACP,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,iBAAiB;oBACf,IAAI;wBACJ,UAAU,CAAC,OAAO,EAAE;wBACpB,GAAG;AACH,yBAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC3B,wBAAA,IAAI,CAAC;gBACP,MAAM;AACR,YAAA,KAAK,gBAAgB;gBACnB,iBAAiB;oBACf,IAAI;wBACJ,UAAU,CAAC,OAAO,EAAE;wBACpB,GAAG;AACH,yBAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC3B,wBAAA,KAAK,CAAC;gBACR,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,iBAAiB,GAAG,UAAU,CAAC;gBAC/B,MAAM;AACR,YAAA,KAAK,qBAAqB,CAAC;AAC3B,YAAA;gBACE,iBAAiB,GAAG,SAAS,CAAC;AACjC,SAAA;QACD,OAAO;AACL,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,sBAAsB,EAAE,sBAAsB;SAC/C,CAAC;KACH;IAED,+BAA+B,GAAA;AAC7B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,+BAA+B,EAAE;YACpE,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,cAAc,CAAC,IAAS,EAAA;AACtB,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,SAAA;QACD,MAAM,OAAO,GAAG,IAAI,IAAI,CACtB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC3B,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ;AAClD,SAAA,CAAC,CACH,CAAC;AACF,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,qBAAqB,CAAC,OAAY,EAAA;QAChC,MAAM,KAAK,GAAG,gBAAgB,CAAC;AAC/B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAA;QACD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAkC,+BAAA,EAAA,OAAO,EAAE,MAAM,CAAA,OAAA,EAAU,KAAK,CAAA,EAAG,OAAO,EAAE,UAAU,GAAG,CAAA,YAAA,EAAe,OAAO,EAAE,UAAU,CAAE,CAAA,GAAG,EAAE,CAAiD,+CAAA,CAAA,EAC5M,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,wBAAwB,CAAC,OAAY,EAAA;AACnC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,uCAAuC,EACrE,OAAO,EACP,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,sBAAsB,CAAC,MAAc,EAAE,OAAY,EAAA;QACjD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;AACzD,QAAA,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc;AACjD,cAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBACtE,GAAG;AACH,gBAAA,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;cACtE,EAAE,CAAC;AAEP,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;aAC9B,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;AACtD,aAAA,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,kBAAkB,GAAG,CAAS,MAAA,EAAA,MAAM,UAAU,gBAAgB,CAAA,EAAG,OAAO,EAAE,UAAU,GAAG,CAAe,YAAA,EAAA,OAAO,EAAE,UAAU,CAAA,CAAE,GAAG,EAAE,CAAE,CAAA,EAC/J,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;IAED,UAAU,GAAA;AACR,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;AAC/B,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5D,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnE,QAAA,MAAM,IAAI,GAAG,WAAW,EAAE,WAAW,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,CAAG,EAAA,GAAG,IAAI,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC;AAChD,QAAA,OAAO,aAAa,CAAC;KACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDG;AACH,IAAA,kBAAkB,CAAC,SAAc,EAAA;AAC/B,QAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChE,QAAA,MAAM,eAAe,GAAoB;YACvC,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,WAAW,EAAE,SAAS,CAAC,MAAM;YAC7B,QAAQ,EAAE,SAAS,CAAC,WAAW;YAC/B,cAAc,EAAE,SAAS,CAAC,sBAAsB;YAChD,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,IAAI,EAAE,SAAS,CAAC,UAAU;AAC1B,YAAA,aAAa,EAAE;gBACb,KAAK,EAAE,SAAS,CAAC,KAAK;AACtB,gBAAA,QAAQ,EAAE,aAAa;AACvB,gBAAA,SAAS,EAAE;AACT,oBAAA,SAAS,EAAEA,QAAM,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;oBAClE,KAAK,EAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,YAAY,GAAGA,QAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAG,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS;AAC1H,oBAAA,QAAQ,EACF,SAAS,CAAC,IAAI,KAAK,UAAU;AACzB,0BAAE,CAAC;AACH,0BAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,GAAG;AAC7B,8BAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC/B,8BAAE,SAAS;AACtB,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;AAC1C,YAAA,UAAU,EAAE,SAAS,CAAC,IAAI,KAAK,aAAa,GAAG,SAAS,CAAC,YAAY,GAAG,EAAE;AAC1E,YAAA,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;SACpC,CAAA;AACD,QAAA,OAAO,eAAe,CAAC;KACxB;AAED,IAAA,aAAa,CAAC,SAAc,EAAA;AAC3B,QAAA,IAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE;YACtC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACnB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAG,EAAE;gBAC3B,IAAG,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACxC,oBAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,iBAAA;AACD,aAAA;AACD,YAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1B,SAAA;AAAM,aAAA,IAAG,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC,EAAE;YAC/C,MAAM,MAAM,GAAG,EAAG,CAAC;YACnB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAG,EAAE;gBAC3B,IAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;AACxC,oBAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,iBAAA;AAAM,qBAAA;AACL,oBAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,iBAAA;AACH,aAAA;AACD,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtB,SAAA;AAAM,aAAA;AACN,YAAA,OAAO,EAAE,CAAC;AACV,SAAA;KACD;AAED,IAAA,UAAU,CAAC,SAAc,EAAA;QACvB,OAAO;YACL,SAAS,EAAE,SAAS,EAAE,YAAY;AAClC,YAAA,OAAO,EAAE,SAAS,EAAE,YAAY,GAAI,CAAC,MAAM,EAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE,mBAAmB,GAAG,CAAC,CAAC,GAAG,EAAE;SAC7H,CAAA;KACF;AACD,IAAA,kBAAkB,CAAC,SAAc,EAAA;QAC/B,OAAO;AACN,YAAA,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS,EAAE,kBAAkB,CAAC;YACjF,UAAU,EAAE,SAAS,EAAE,eAAe;SACtC,CAAA;KACF;AAED,IAAA,sBAAsB,CAAC,SAAc,EAAA;AACnC,QAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACpC,IAAI,OAAO,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,WAAW,GAAG,SAAS,CAAC,GAAG,CAAA;QAC/B,QAAQ,SAAS,CAAC,IAAI;AAEpB,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAE3E,OAAO;oBACL,IAAI;wBACJ,EAAE;wBACF,UAAU,CAAC,CAAC,CAAC;wBACb,GAAG;AACH,yBAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACf,GAAG;wBACH,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChB,MAAM;AACR,YAAA,KAAK,OAAO;gBACV,OAAO,GAAG,SAAS,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;gBACpD,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,GAAG,CAAK,EAAA,EAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;gBACpG,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,OAAO;AACL,oBAAA,CAAA,EAAA,EAAK,WAAW,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC;gBAC3E,MAAM;AAER,YAAA,KAAK,WAAW;AACd,gBAAA,OAAO,GAAG,CAAA,EAAA,EAAK,WAAW,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC;gBACnF,MAAM;AAET,YAAA,KAAK,UAAU;AACd,gBAAA,OAAO,GAAG,CAAA,EAAA,EAAK,WAAW,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC;gBACnF,MAAM;AACN,YAAA,KAAK,QAAQ;gBACX,OAAO;AACL,oBAAA,CAAA,EAAA,EAAK,WAAW,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC;gBAC3E,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAC9D,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACvD,OAAO,GAAG,CAAM,GAAA,EAAA,SAAS,CAAC,OAAO,EAAE,SAAS,CAAA,CAAA,EAAI,KAAK,CAAA,EAAA,CAAI,CAAC;gBAC1D,MAAM;AACR,YAAA,KAAK,QAAQ;gBACX,IAAI,UAAU,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC9D,gBAAA,IAAI,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5D,OAAO,GAAG,KAAK,WAAW,GAAG,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAI,CAAA,EAAA,SAAS,CAAC,MAAM,CAAC,UAAU,CAAA,CAAE,CAAC;gBACpH,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,OAAO,GAAG,SAAS,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;gBACpD,MAAM;AACR,YAAA;gBACE,OAAO,GAAG,KAAK,SAAS,CAAC,MAAM,CAAC,UAAU,MAAM,CAAC;AACpD,SAAA;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,MAAM,CAAC,aAAqB,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAG,EAAE;AAC1B,YAAA,IAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACf,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;AAED,IAAA,QAAQ,CAAC,aAAqB,EAAA;AAC1B,QAAA,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAG,EAAE;AAC3B,YAAA,IAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACjB,gBAAA,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9B;AAEC,IAAA,mBAAmB,CAAE,SAAc,EAAA;QACjC,IAAI,OAAO,GAAG,eAAe,CAAC;AAC9B,QAAA,IAAG,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE;YAChG,OAAQ;AACN,gBAAA,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;gBACnF,OAAO;aACT,CAAA;AACF,SAAA;AAAM,aAAA,IAAG,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE;YACpD,OAAQ;AACN,gBAAA,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;AACnF,gBAAA,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC;aAC5E,CAAA;AACF,SAAA;AAAM,aAAA,IAAG,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE;YACvD,OAAQ;AACN,gBAAA,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;gBACnF,OAAO,EAAE,cAAc,GAAG,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ;aACzE,CAAA;AACF,SAAA;QACD,OAAO;AACL,YAAA,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;AACpF,YAAA,OAAO,EAAE,eAAe;SACzB,CAAA;KACF;AAED;;;;;;;;;;AAUD;AACF,IAAA,gBAAgB,CAAC,UAAkB,EAAA;AAClC,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;AAElC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAEhC,QAAA,MAAM,UAAU,GAAG;YACf,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;YACtD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;SACnE,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAE1C,QAAA,OAAO,GAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAI,CAAA,EAAA,IAAI,KAAK,CAAC;KACrC;AAED;;;;;;;;;;;;;;;AAeG;AACI,IAAA,YAAY,CAAC,aAAqB,EAAA;AACvC,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,EAAE,KAAK,CAAC;KAC/E;+GA72BY,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAzJ,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAa,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BA0EI,QAAQ;;;MChFA,iBAAiB,CAAA;AAL9B,IAAA,WAAA,GAAA;QAME,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;QACpB,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAC9B,IAAY,CAAA,YAAA,GAAG6I,qBAAmB,CAAC;QAE1B,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;QACzB,IAAc,CAAA,cAAA,GAAU,EAAE,CAAC;AAG1B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;AACrC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAO,CAAC;AA8B3D,KAAA;IA5BC,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;YAC/B,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;AACnD,SAAA;QACD,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,SAAS,CAAC,KAAW,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED,IAAA,gBAAgB,CAAC,QAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,QAAQ,CAAC,CAAC;KACrC;AAED,IAAA,cAAc,CAAC,QAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAC7B;AAED,IAAA,UAAU,CAAC,QAAa,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,QAAQ,EAAE,GAAG,CAAC,CAAC;KAC3E;AAED,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxC;+GAzCU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,2OCT9B,+mIA4GA,EAAA,MAAA,EAAA,CAAA,2wGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1C,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoH,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA7I,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAuD,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDnGa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,+mIAAA,EAAA,MAAA,EAAA,CAAA,2wGAAA,CAAA,EAAA,CAAA;8BAWf,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;;;MEFI,eAAe,CAAA;AAhB5B,IAAA,WAAA,GAAA;AAiBW,QAAA,IAAA,CAAA,IAAI,GAAW,UAAU,CAAC;QAE1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AACpC,KAAA;+GAJY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAdhB,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,yjDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAhB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACZ,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,yjDAAA,CAAA,EAAA,CAAA;8BAIQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MCQK,gBAAgB,CAAA;IAmC3B,IAAa,gBAAgB,CAAC,KAAU,EAAA;QACtC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,mBAAmB,EAAE,QAAQ,CAAC;AACpD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,CAAC;YACxE,IAAI,CAAC,eAAe,GAAG,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,CAAC;AACxE,SAAA;KACF;AAQD,IAAA,WAAA,CACU,iBAAgC,EAChC,gBAAkC,EAClC,kBAAsC,EAAA;QAFtC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAe;QAChC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAjDhD,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QAEjB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAsB;AAC9B,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,GAAG,EAAE,EAAE;SACR,CAAC;QAEF,IAAY,CAAA,YAAA,GAAG,WAAW,CAAC;QAC3B,IAAU,CAAA,UAAA,GAAG,WAAW,CAAC;QACzB,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;QACzB,IAAY,CAAA,YAAA,GAA6B,EAAE,CAAC;QAC5C,IAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC,CAAC;QAC/B,IAAc,CAAA,cAAA,GAAU,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,aAAa,GAAW,eAAe,CAAC,cAAc,CAAC;AACvD,QAAA,IAAA,CAAA,eAAe,GAAW,eAAe,CAAC,yBAAyB,CAAC;QACpE,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QAC5B,IAAmB,CAAA,mBAAA,GAAG,uCAAuC,CAAC;QAK5D,IAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;QACrB,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QACtB,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAQlB,IAAG,CAAA,GAAA,GAAW,EAAE,CAAC;QACjB,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;QACtB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAE1B,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC5C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;KAM5C;IAEL,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAEO,kBAAkB,GAAA;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ;YAAE,OAAO;QAEzE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC;AACjE,QAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;KACzC;AAEO,IAAA,wBAAwB,CAAC,QAAa,EAAA;AAC5C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,aAAa;AAChB,YAAA,QAAQ,CAAC,sBAAsB,IAAI,eAAe,CAAC,cAAc,CAAC;AACpE,QAAA,IAAI,CAAC,eAAe;AAClB,YAAA,QAAQ,CAAC,mBAAmB,IAAI,eAAe,CAAC,yBAAyB,CAAC;KAC7E;AAEO,IAAA,wBAAwB,CAAC,QAAa,EAAA;AAC5C,QAAA,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM;YAAE,OAAO;QAEhD,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAClD,QAAQ,CAAC,gBAAgB,CAC1B,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;KAC1C;IAEO,UAAU,GAAA;QAChB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE;YAC5C,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACjD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;AAC1D,SAAA;KACF;AAEO,IAAA,sBAAsB,CAAC,eAAsB,EAAA;QACnD,OAAO,IAAI,GAAG,CACZ,eAAe,CAAC,GAAG,CAAC,CAAC,KAAU,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAC3E,CAAC;KACH;AAEO,IAAA,iBAAiB,CAAC,gBAAqC,EAAA;AAC7D,QAAA,IAAI,CAAC,eAAe,EAAE,gBAAgB,EAAE,OAAO,CAC7C,CAAC,aAAkB,EAAE,KAAa,KAAI;YACpC,MAAM,UAAU,GAAG,gBAAgB,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,UAAU;gBAAE,OAAO;AAExB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CACtC,CAAC,QAAa,KAAK,QAAQ,EAAE,GAAG,KAAK,UAAU,CAChD,CAAC;AACF,YAAA,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACvC,aAAA;AACH,SAAC,CACF,CAAC;KACH;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,GAAQ,EAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;AACR,SAAA;AACD,QAAA,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACjB,YAAA,IAAI,UAAU,GAAG;gBACf,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;aACN,CAAC;YACF,MAAM,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;AAC3C,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,CAAG,EAAA,SAAS,IAAI,UAAU,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC;AAC3D,SAAA;AACD,QAAA,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;KAC/B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;KAC/B;IAED,gBAAgB,CAAC,MAAe,EAAE,UAAmB,EAAA;AACnD,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;AAC9B,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,iBAAiB,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,cAAc;AACjB,gBAAA,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC;sBACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;sBACzC,EAAE,CAAC;AACV,SAAA;KACF;IAED,eAAe,GAAA;AACb,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AAC5C,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CACzC,eAAe,EACf,cAAc,CACf,CAAC;KACH;IAED,YAAY,GAAA;QACV,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,IAAI,EAAE,CAAC;QAEjE,QACE,IAAI,CAAC,QAAQ;AACX,cAAE,MAAM,CAAC,CAAC,IAAS,KAAK,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACxD,cAAE,GAAG,CAAC,CAAC,IAAS,KAAI;YAClB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO;AACL,gBAAA,GAAG,IAAI;AACP,gBAAA,gBAAgB,EAAE,UAAU;aAC7B,CAAC;AACJ,SAAC,CAAC,IAAI,EAAE,EACV;KACH;AAED,IAAA,aAAa,CAAC,IAAS,EAAA;QACrB,OAAO,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAU,KACvC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC9C,CAAC;KACH;IAED,iBAAiB,GAAA;QACf,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,eAAe,IAAI,EAAE,CAAC;QAE5E,QACE,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAe,KAAI;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC1C,YAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC3C,SAAC,CAAC,IAAI,EAAE,EACR;KACH;AAED,IAAA,aAAa,CAAC,OAAe,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,KAAU,KAAK,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;KACrE;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,QACE,KAAK,EAAE,eAAe;AACpB,cAAE,GAAG,CAAC,CAAC,IAAS,KAAI;AAClB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1D,YAAA,IAAI,YAAY,EAAE;gBAChB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACpD,OAAO;AACL,oBAAA,GAAG,YAAY;AACf,oBAAA,gBAAgB,EAAE,UAAU;iBAC7B,CAAC;AACH,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;AACD,aAAA,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAC7C;KACH;AAED,IAAA,YAAY,CAAC,MAAc,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC;KACjE;IAED,kBAAkB,CAAC,eAAsB,EAAE,cAAqB,EAAA;AAC9D,QAAA,OAAO,CAAC,GAAG,eAAe,EAAE,GAAG,cAAc,CAAC,CAAC,MAAM,CACnD,CAAC,GAAU,EAAE,IAAS,KAAI;AACxB,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE;AAC/C,gBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,aAAA;AACD,YAAA,OAAO,GAAG,CAAC;SACZ,EACD,EAAE,CACH,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,KAAY,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,EAAE;YACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC;AACnD,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAChC,SAAA;KACF;IAED,0BAA0B,GAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO;AACR,SAAA;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;KACpC;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,KAAK,CAAC;QAChC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE;YAC5C,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,YAAY,CAAC,OAAO,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC1E,SAAA;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;KACtC;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAClD,CAAC,KAAU,EAAE,KAAa,KACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CACnE,CAAC;KACH;AAED,IAAA,aAAa,CAAC,IAAS,EAAA;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3D,QAAA,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;KAC9B;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,sBAAsB;YACpE,IAAI,CAAC,aAAa,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,mBAAmB;YACjE,IAAI,CAAC,eAAe,CAAC;KACxB;IAED,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,gBAAgB;AAC1C,aAAA,GAAG,CAAC,CAAC,KAAU,EAAE,KAAa,KAAI;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9C,YAAA,OAAO,YAAY;kBACf,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC;kBAC7C,IAAI,CAAC;AACX,SAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC,CAAC;KACpB;IAED,mBAAmB,CAAC,KAAU,EAAE,YAAmB,EAAA;QACjD,OAAO;AACL,YAAA,QAAQ,EAAE,KAAK,EAAE,QAAQ,IAAI,EAAE;YAC/B,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE;AACvC,YAAA,QAAQ,EAAE,KAAK,EAAE,QAAQ,IAAI,EAAE;SAChC,CAAC;KACH;IAED,UAAU,GAAA;QACR,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,GAAG,aAAa,CAAC;QACzE,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAClD,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,gBAAgB;AAC9D,YAAA,eAAe,CAAC;AAClB,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC;KACrE;AAGD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE,IAAI,CAAC,eAAe;YAC3B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAChC,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC9D;IAED,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,cAAc,CAAC;AACrD,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,yBAAyB,CAAC;AAClE,SAAA;KACF;+GApWU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAkE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA4E,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAjB,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAEc,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCrD,uoZAyUA,EAAA,MAAA,EAAA,CAAA,qmQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkE,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4C,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAvF,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD3Sa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,uoZAAA,EAAA,MAAA,EAAA,CAAA,qmQAAA,CAAA,EAAA,CAAA;2JAKS,UAAU,EAAA,CAAA;sBAA1C,SAAS;uBAAC,oBAAoB,CAAA;gBAE/B,MAAM,EAAA,CAAA;sBADL,SAAS;uBAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBA2B3D,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBAOG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,sBAAsB,EAAA,CAAA;sBAA/B,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBAmSP,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEvT/B,+BAA+B,CAAA;IA8B1C,IAAa,gBAAgB,CAAC,KAAU,EAAA;AACtC,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AACvC,QAAA,IAAI,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,EAAE;YACxD,IAAI,CAAC,aAAa,GAAG;AACnB,gBAAA;AACE,oBAAA,KAAK,EAAE,YAAY;AACnB,oBAAA,KAAK,EAAE,YAAY;AACpB,iBAAA;aACF,CAAC;AACF,YAAA,IAAI,CAAC,KAAK,GAAG1E,gBAAc,CAAC,QAAQ,CAAC;AACtC,SAAA;KACF;AAMD,IAAA,WAAA,CAAoB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QA9C1D,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAY,CAAA,YAAA,GAAG,WAAW,CAAC;QAC3B,IAAyB,CAAA,yBAAA,GAAU,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,MAAM,GAAQ;AACZ,YAAA,GAAG,mBAAmB;YACtB,MAAM,EAAE,WAAW,CAAC,EAAE;YACtB,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW;AAChE,YAAA,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY;SACnE,CAAC;QACF,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAc,CAAA,cAAA,GAAGA,gBAAc,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;AAC1C,QAAA,IAAA,CAAA,KAAK,GAAWA,gBAAc,CAAC,KAAK,CAAC;QACrC,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAc,CAAA,cAAA,GAAU,EAAE,CAAC;QAC3B,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAC1B,IAAyB,CAAA,yBAAA,GAAQ,EAAE,CAAC;QACpC,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAC/B,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACnE,IAAmB,CAAA,mBAAA,GAAW,EAAE,CAAC;QACjC,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;QAEb,IAAO,CAAA,OAAA,GAAQ,EAAE,CAAC;QAClB,IAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;QACrB,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QACtB,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;QAapB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;QAC3B,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;AAC1C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;QAGnD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;KACF;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;AAClE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC;AAC1C,gBAAA,IAAI,GAAG,EAAE,IAAI,EAAE,aAAa,GAAG,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE;oBAClE,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE,IAAI,EAAE,mBAAmB,CAAC;AAC3D,iBAAA;aACF;AACF,SAAA,CAAC,CAAC;KACJ;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG;AACnB,YAAA;AACE,gBAAA,KAAK,EAAE,YAAY;AACnB,gBAAA,KAAK,EAAE,YAAY;AACpB,aAAA;SACF,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,OAAO,GAAG,EAAE,CAAC;KAC1D;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,EAAO,KAClE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAC1B,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,MAAe,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,0BAA0B,GAAG,EAAE,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;KACnD;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;YACvD,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC;AACrD,SAAC,CAAC,CAAC;KACJ;IAED,gCAAgC,GAAA;AAC9B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC;AACzE,QAAA,MAAM,iBAAiB,GACrB,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC,CAAC;AAC5D,QAAA,MAAM,iBAAiB,GACrB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC3C,YAAA,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC;QAEvC,QACE,CAAC,iBAAiB;AAClB,YAAA,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE;AAC5B,YAAA,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;AAC3B,YAAA,EAAE,YAAY,IAAI,iBAAiB,CAAC;YACpC,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAC7C;KACH;+GApHU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwH,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EA1ChC,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCS,oBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxG,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkJ,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,6BAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGR,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBA5C3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAC9B,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCS,oBAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;sGA4BV,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBAYG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MClCI,sBAAsB,CAAA;AAlDnC,IAAA,WAAA,GAAA;QAmDE,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAc,CAAA,cAAA,GAAG,WAAW,CAAC;QAC7B,IAAyB,CAAA,yBAAA,GAAU,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,MAAM,GAAQ;AACZ,YAAA,GAAG,mBAAmB;YACtB,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW;AACnE,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;QACF,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAClC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAc,CAAA,cAAA,GAAGrK,gBAAc,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;AAC1C,QAAA,IAAA,CAAA,KAAK,GAAWA,gBAAc,CAAC,KAAK,CAAC;QACrC,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAqB,CAAA,qBAAA,GAAU,EAAE,CAAC;QAClC,IAAsB,CAAA,sBAAA,GAAU,EAAE,CAAC;QACnC,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAO,CAAA,OAAA,GAAU,EAAE,CAAC;QACpB,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;QAC3B,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAC/B,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC;QAE/D,IAAO,CAAA,OAAA,GAAQ,EAAE,CAAC;QAClB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;QAC3B,IAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;QACrB,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QAWtB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;AAEzB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;AACrC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;AAwItD,KAAA;IAtJC,IAAa,gBAAgB,CAAC,KAAU,EAAA;AACtC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE;AAC9D,YAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACrC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,SAAS,CAAC;AACtC,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,EAAE,eAAe,CAAC;AACjD,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACxD,SAAA;KACF;AAOD,IAAA,QAAQ,MAAM;AAEd,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnD,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACxD,SAAA;KACF;AAED,IAAA,yBAAyB,CAAC,KAAU,EAAA;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACrC,QAAA,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC;AAClD,QAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAS,KAC3D,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CACtC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;AAChC,cAAE,MAAM,CAAC,CAAC,IAAS,KAAK,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC9D,cAAE,GAAG,CAAC,CAAC,IAAS,MAAM;YACpB,KAAK,EAAE,IAAI,EAAE,WAAW;YACxB,KAAK,EAAE,IAAI,EAAE,GAAG;AACjB,SAAA,CAAC,CAAC,CAAC;KACP;AAED,IAAA,0BAA0B,CAAC,KAAU,EAAA;QACnC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAU,KAC7D,KAAK,EAAE,eAAe,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAC7C,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS;AACtC,cAAE,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,EAAE,eAAe,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtE,cAAE,GAAG,CAAC,CAAC,KAAU,MAAM;YACrB,KAAK,EAAE,KAAK,EAAE,UAAU;YACxB,KAAK,EAAE,KAAK,EAAE,GAAG;AAClB,SAAA,CAAC,CAAC,CAAC;KACP;AAED,IAAA,uBAAuB,CAAC,QAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;AAChC,cAAE,MAAM,CAAC,CAAC,IAAS,KAAK,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACtD,cAAE,GAAG,CAAC,CAAC,IAAS,MAAM;YACpB,KAAK,EAAE,IAAI,EAAE,WAAW;YACxB,KAAK,EAAE,IAAI,EAAE,GAAG;AACjB,SAAA,CAAC,CAAC,CAAC;KACP;AAED,IAAA,4BAA4B,CAAC,SAAmB,EAAA;AAC9C,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS;AACtC,cAAE,MAAM,CAAC,CAAC,KAAU,KAAK,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC9D,cAAE,GAAG,CAAC,CAAC,KAAU,MAAM;YACrB,KAAK,EAAE,KAAK,EAAE,UAAU;YACxB,KAAK,EAAE,KAAK,EAAE,QAAQ;AACvB,SAAA,CAAC,CAAC,CAAC;KACP;AAED,IAAA,mBAAmB,CAAC,QAAkB,EAAA;QACpC,OAAO,IAAI,CAAC,SAAS;AACnB,cAAE,MAAM,CAAC,CAAC,KAAU,KAAK,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;cAC3D,GAAG,CAAC,CAAC,KAAU,KAAK,KAAK,EAAE,GAAG,CAAC,CAAC;KACrC;AAED,IAAA,wBAAwB,CAAC,KAAU,EAAA;QACjC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAS,KAC3D,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAClC,CAAC;QACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAU,KAC9D,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CACzC,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,MAAe,EAAA;AAC9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;KACnD;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAS,KAC3D,KAAK,EAAE,IAAI,CAAC,CAAC,SAAc,KAAK,SAAS,EAAE,KAAK,KAAK,IAAI,EAAE,GAAG,CAAC,CAChE,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,KAAK;AACR,YAAA,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM;kBACjCA,gBAAc,CAAC,QAAQ;AACzB,kBAAEA,gBAAc,CAAC,KAAK,CAAC;KAC5B;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAU,KAC9D,KAAK,EAAE,IAAI,CAAC,CAAC,SAAc,KAAK,SAAS,EAAE,KAAK,KAAK,KAAK,EAAE,QAAQ,CAAC,CACtE,CAAC;AACF,QAAA,MAAM,cAAc,GAClB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC;AACzD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAC9C,CAAC,KAAU,KAAK,KAAK,EAAE,QAAQ,CAChC,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,KAAK;AACR,YAAA,cAAc,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM;kBACnCA,gBAAc,CAAC,QAAQ;AACzB,kBAAEA,gBAAc,CAAC,KAAK,CAAC;KAC5B;IAED,UAAU,CAAC,KAAU,EAAE,MAAW,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG;AAC5B,YAAA,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc;AAC9B,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,eAAe,EAAE,MAAM;SACxB,CAAC;QACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,OAAO,CAC1E,CAAC,KAAU,KAAI;AACb,YAAA,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;AACzB,SAAC,CACF,CAAC;KACH;+GAjLU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAhDvB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAc,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+H,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,6BAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,QAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAlDlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EACpB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;8BA2BQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBAUG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MC/CI,mBAAmB,CAAA;IAwB9B,IAAa,gBAAgB,CAAC,KAAU,EAAA;QACtC,IAAI,KAAK,EAAE,MAAM,EAAE;AACjB,YAAA,IAAI,CAAC,KAAK,GAAGxK,gBAAc,CAAC,QAAQ,CAAC;AACrC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAC9C,YAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE;gBACjE,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,aAAA;AACF,SAAA;KACF;AAQD,IAAA,WAAA,CAAoB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAxC1D,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAU,CAAA,UAAA,GAAG,WAAW,CAAC;QACzB,IAAc,CAAA,cAAA,GAAU,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,MAAM,GAAQ;AACZ,YAAA,GAAG,mBAAmB;YACtB,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW;AAC5D,YAAA,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY;SAC/D,CAAC;QACF,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC9D,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAc,CAAA,cAAA,GAAGA,gBAAc,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;AAC1C,QAAA,IAAA,CAAA,KAAK,GAAWA,gBAAc,CAAC,KAAK,CAAC;QACrC,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAC9B,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAC/B,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAEzB,IAAO,CAAA,OAAA,GAAQ,EAAE,CAAC;QAClB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;QAW3B,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;QACxB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAC1B,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;AAEjB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;QAGnD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IACD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;KAC/B;IAED,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,SAAA;KACF;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;YAClD,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC;AACnD,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AACnD,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,UAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACvE,YAAA,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,KAAU,MAAM;AACpD,gBAAA,GAAG,KAAK;gBACR,aAAa,EAAE,KAAK,EAAE,WAAW;AAClC,aAAA,CAAC,CAAC,CAAC;AAEJ,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;gBACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;AACD,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC/B,SAAC,CAAC,CAAC;KACJ;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAU,KAAI;YACjE,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAC3D,YAAA,IAAI,QAAQ,EAAE;gBACZ,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC/C,aAAA;AACD,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,KAAK,KAAK,KAAK,EAAE,GAAG,CAAC,CAAA;AAC3E,SAAC,CACA,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,GAAI,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACvD,aAAA,GAAG,CAAC,CAAC,KAAU,MAAM;YACpB,KAAK,EAAE,KAAK,EAAE,aAAa;YAC3B,KAAK,EAAE,KAAK,EAAE,GAAG;AAClB,SAAA,CAAC,CAAC,CAAC;KAGP;IAED,eAAe,GAAA;QACb,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU;YAAE,OAAO;AAExB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAC5C,CAAC,KAAU,KAAK,KAAK,EAAE,GAAG,KAAK,UAAU,CAC1C,CAAC;AACF,QAAA,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACxD,CAAC,KAAK,KAAK,KAAK,EAAE,GAAG,KAAK,YAAY,EAAE,GAAG,CAC5C,CAAC;AACF,QAAA,IAAI,sBAAsB;YAAE,OAAO;AAEnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,KAAK,EAAE,YAAY,EAAE,aAAa;YAClC,KAAK,EAAE,YAAY,EAAE,GAAG;AACzB,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/C,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;KAEtC;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc;AACtC,cAAE,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACpD,aAAA,GAAG,CAAC,CAAC,KAAU,MAAM;YACpB,KAAK,EAAE,KAAK,EAAE,aAAa;YAC3B,KAAK,EAAE,KAAK,EAAE,GAAG;AAClB,SAAA,CAAC,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/C,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC,KAAK,GAAGA,gBAAc,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAE9B;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,KAAU,KAC9D,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAC5B,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,MAAe,EAAA;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;KACnD;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,KAAU,KAC9D,KAAK,EAAE,IAAI,CAAC,CAAC,SAAc,KAAK,SAAS,EAAE,KAAK,KAAK,KAAK,EAAE,GAAG,CAAC,CACjE,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC9D,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM,GAAGA,gBAAc,CAAC,QAAQ,GAAGA,gBAAc,CAAC,KAAK,CAAC;KAE7E;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG;AAC5B,YAAA,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc;AAC9B,YAAA,MAAM,EAAE,KAAK;SACd,CAAC;KACH;IAED,4BAA4B,GAAA;AAC1B,QAAA,MAAM,iBAAiB,GACrB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC3C,YAAA,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC;QAEvC,QACE,CAAC,iBAAiB;AAClB,YAAA,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE;YAC5B,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAC3B;KACH;+GAzLU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwH,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EA1CpB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxG,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkJ,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,6BAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,QAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA5C/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;sGA0BQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBAUG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MCtDI,yBAAyB,CAAA;AA3CtC,IAAA,WAAA,GAAA;QA4CE,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAC1B,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;QACvC,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAEtB,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AAyBlC,KAAA;IAnBC,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAED,OAAO,GAAA;QACL,IACE,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,qBAAqB,EAC1B;AACA,YAAA,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC;AACzC,SAAA;aAAM,IACL,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,YAAA,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAC1C;AACA,YAAA,IAAI,CAAC,QAAQ,GAAG,yBAAyB,CAAC;AAC3C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC;AACzC,SAAA;KACF;+GA/BU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAzC1B,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvJ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoG,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA3CrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EACvB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;8BAUQ,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;ACxDD,MAAM,6BAA6B,GAAG;AAC3C,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,qBAAqB;AAC/B,KAAA;AAED,IAAA,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC,WAAW;AAC1B,KAAA;AAED,IAAA,YAAY,EAAE;AACZ,QAAA,aAAa,EAAE,gBAAgB;AAC/B,QAAA,WAAW,EAAE,kBAAkB;AAChC,KAAA;CACF;;ACfM,MAAM,gBAAgB,GAAG;AAC9B,IAAA,IAAI,EAAE;AACJ,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,QAAQ,EAAE,UAAU;AACrB,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;AACb,KAAA;AACD,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,GAAG,EAAE,KAAK;CACX;;MCJY,eAAe,CAAA;AAL5B,IAAA,WAAA,GAAA;QAMW,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAI,CAAA,IAAA,GAA+C,UAAU,CAAC;QAC9D,IAAW,CAAA,WAAA,GAAW,MAAM,CAAC;AACvC,KAAA;+GAJY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,oICP5B,0pEAuEE,EAAA,MAAA,EAAA,CAAA,8EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5J,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhEW,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,0pEAAA,EAAA,MAAA,EAAA,CAAA,8EAAA,CAAA,EAAA,CAAA;8BAKb,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;MEJK,kBAAkB,CAAA;AAE7B,IAAA,WAAA,CAAwB,MAAuB,EAAA;AAC7C,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,EAAE,SAAS,CAAC;KACtC;IAED,SAAS,CAAC,GAAa,EAAE,IAAW,EAAA;QAClC,MAAM,WAAW,GAAG,IAAI;AACrB,aAAA,MAAM,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,aAAA,GAAG,CAAC,CAAC,IAAI,KAAI;YACZ,OAAO;gBACL,IAAI,EAAE,IAAI,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI,EAAE,KAAK;gBAClB,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC;gBACzC,MAAM,EAAE,IAAI,EAAE,MAAM;AAClB,sBAAE,IAAI,CAAC,WAAW,CAAC,KAAK;wBACtB,IAAI,CAAC,WAAW,CAAC,QAAQ;wBACzB,IAAI,CAAC,WAAW,CAAC,OAAO;AACxB,wBAAA,IAAI,EAAE,SAAS;AACjB,sBAAE,EAAE;aACP,CAAC;AACJ,SAAC,CAAC,CAAC;AACL,QAAA,OAAO,WAAW,CAAC;KACpB;AAED,IAAA,YAAY,CAAC,IAAY,EAAA;QACvB,MAAM,SAAS,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,QAAA,IAAG,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;YACxB,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9E,SAAA;QACD,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;KACzE;+GA/BU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjC,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAA;;0BAGc,QAAQ;;;MCHV,aAAa,CAAA;AACxB,IAAA,SAAS,CAAC,KAAU,EAAE,IAAW,EAAE,OAAc,EAAA;QAC/C,IAAG,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM;AAAE,YAAA,OAAO,EAAE,CAAC;AAEhD,QAAA,MAAM,WAAW,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC,OAAY,KAAK,OAAO,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAExG,MAAM,SAAS,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,IAAS,KAAK,OAAO,EAAE,IAAI,CAAC,CAAC,OAAY,KAAK,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;AAE3G,QAAA,OAAO,SAAS,EAAE,GAAG,CAAC,CAAC,IAAS,KAAI;YAChC,MAAM,QAAQ,GAAG,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,YAAY,GAAG,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,YAAA,OAAO,YAAY,CAAC;AACxB,SAAC,CAAC,CAAA;KACH;+GAbU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA,CAAA;;;MCEY,iCAAiC,CAAA;AAC5C,IAAA,SAAS,CAAC,KAAU,EAAE,IAAW,EAAE,UAAmB,KAAK,EAAA;AACzD,QAAA,IAAI,OAAO,EAAE;AACT,YAAA,OAAO,IAAI,CAAC,IAAI,CACZ,CAAC,GAAQ,KACP,GAAG,CAAC,gBAAgB,KAAK,KAAK,EAAE,GAAG;gBACnC,GAAG,CAAC,UAAU,KAAK,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC9C,GAAG,CAAC,oBAAoB,KAAK,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAC/D,CAAC;AACP,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,gBAAgB,KAAK,KAAK,CAAC,CAAC;KACnE;+GAXU,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAjC,iCAAiC,EAAA,IAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAJ7C,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAA;;;MCQY,+BAA+B,CAAA;IAsF1C,WACU,CAAA,gBAAkC,EAClC,uBAAgD,EAAA;QADhD,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QArFjD,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAA4B,CAAA,4BAAA,GAAQ,EAAE,CAAC;QACvC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAG/B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAE,CAAC;QAEtD,IAAgB,CAAA,gBAAA,GAAG,gBAAgB,CAAC;QAEpC,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAElC,IAAoB,CAAA,oBAAA,GAAQ,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,sBAAsB,GAAQ;AAC5B,YAAA,eAAe,EAAE,CAAC;AAClB,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,WAAW,EAAE,CAAC;SACf,CAAC;AACF,QAAA,IAAA,CAAA,mBAAmB,GAAQ;AACzB,YAAA,CAAC,EAAE,aAAa;AAChB,YAAA,CAAC,EAAE,iBAAiB;AACpB,YAAA,CAAC,EAAE,eAAe;AAClB,YAAA,CAAC,EAAE,eAAe;SACnB,CAAC;AACF,QAAA,IAAA,CAAA,qBAAqB,GAAG;AACtB,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,oBAAoB,EAAE,EAAE;AACxB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,sBAAsB,EAAE,EAAE;gBAC1B,cAAc,EAAE,CAAC,CAAC,CAAC;AACpB,aAAA;AACD,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,QAAQ,EAAE,UAAU;SACrB,CAAC;QAEF,IAAwB,CAAA,wBAAA,GAAU,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,kBAAkB,GAAU;AAC1B,YAAA,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE;AAChC,YAAA,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE;AAC9B,YAAA,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,EAAE;AACtC,YAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;SAC5B,CAAC;QAEF,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;QACvB,IAAyB,CAAA,yBAAA,GAAW,CAAC,CAAC;QACtC,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;QAC5B,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC;QAC3B,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC;QAC3B,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QAExB,IAAwB,CAAA,wBAAA,GAAW,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,aAAa,GAAW,6BAA6B,CAAC,eAAe,CAAC,OAAO,CAAC;AAC9E,QAAA,IAAA,CAAA,eAAe,GAAW,6BAA6B,CAAC,OAAO,CAAC,KAAK,CAAC;AACtE,QAAA,IAAA,CAAA,cAAc,GAAQ,6BAA6B,CAAC,YAAY,CAAC;QAKjE,IAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;QACrB,IAAM,CAAA,MAAA,GAAU,EAAE,CAAC;QACnB,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QAEtB,IAAsB,CAAA,sBAAA,GAAQ,EAAE,CAAC;QACjC,IAA4B,CAAA,4BAAA,GAAQ,EAAE,CAAC;QAEvC,IAAwB,CAAA,wBAAA,GAAY,KAAK,CAAC;KAKtC;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;IAED,uBAAuB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,4BAA4B,EAAE,MAAM,EAAE;AAC7C,YAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CACvE,CAAC,IAAS,KAAK,IAAI,EAAE,gBAAgB,CACtC,CAAC;YACF,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;IAED,4BAA4B,GAAA;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;YAAE,OAAO;AAE9D,QAAA,IAAI,CAAC,4BAA4B;AAC/B,YAAA,IAAI,CAAC,4BAA4B,CAAC,OAAO,CACvC,CAAC,EACC,gBAAgB,EAChB,UAAU,EACV,WAAW,GAAG,EAAE,EAChB,qBAAqB,GAAG,EAAE,EAC1B,gBAAgB,GAAG,EAAE,EACrB,4BAA4B,GAAG,EAAE,GAClC,KAAI;AACH,gBAAA,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AAC3B,oBAAA,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC;AAErC,oBAAA,OAAO,EAAE,CAAC;AAEZ,gBAAA,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,KACpC,qBAAqB,CAAC,GAAG,CAAC,CAAC,oBAAoB,MAAM;oBACnD,gBAAgB;oBAChB,UAAU;oBACV,oBAAoB;oBACpB,UAAU;oBACV,gBAAgB;oBAChB,4BAA4B;iBAC7B,CAAC,CAAC,CACJ,CAAC;AACJ,aAAC,CACF,CAAC;KACL;IAED,SAAS,GAAA;QACP,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AAClE,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;IAED,qBAAqB,CAAC,SAAiB,CAAC,EAAA;AACtC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB;AACnB,cAAE,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC;AAC3D,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,GAAG,EAAE,IAAI,EAAE;oBACb,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACpE,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;oBACjC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,qBAAqB,CAAC;AAChD,iBAAA;AACD,gBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;aACnC;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;aACnC;AACF,SAAA,CAAC,CAAC;KACN;AAEO,IAAA,uBAAuB,CAAC,GAAQ,EAAA;QACtC,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,QAAA,MAAM,WAAW,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC;AACnC,QAAA,MAAM,UAAU,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;QAEnC,MAAM,UAAU,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;AACpD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;QAEjE,OAAO;YACL,IAAI,EAAE,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC;AAC/F,YAAA,sBAAsB,EAAE,UAAU;YAClC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;AAC7C,YAAA,yBAAyB,EAAE,WAAW;AACtC,YAAA,qBAAqB,EAAE,UAAU;AACjC,YAAA,mBAAmB,EAAE,QAAQ;SAC9B,CAAC;KACH;AAED,IAAA,wBAAwB,CAAC,UAAkB,EAAA;AACzC,QAAA,IAAI,UAAU,KAAK,IAAI,CAAC,oBAAoB,CAAC,yBAAyB,EAAE;AACtE,YAAA,IAAI,CAAC,yBAAyB,GAAG,UAAU,CAAC;AAC5C,YAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,UAAU,CAAC;AAC/C,YAAA,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;AACxC,SAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CACnD,CAAC,OAAY,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAClD,CAAC;QACF,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,4BAA4B;YAC/B,IAAI,CAAC,4BAA4B,CAAC,MAAM,CACtC,CAAC,GAAQ,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAC3D,CAAC;AACJ,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;AAED,IAAA,IAAI,CAAC,KAAU,EAAA;AACb,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,gCAAgC,EAAE,CAAC;QACxC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;KACrE;IAED,gCAAgC,GAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,MAAM;YAAE,OAAO;QAEvD,MAAM,MAAM,GAAmB,EAAE,CAAC;QAElC,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AAEtD,YAAA,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;;QAEH,IAAI,CAAC,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC3D;IAED,0BAA0B,CAAC,MAAsB,EAAE,IAAS,EAAA;QAC1D,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;AACpE,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;YAC7B,MAAM,CAAC,gBAAgB,CAAC,GAAG;gBACzB,gBAAgB;AAChB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,qBAAqB,EAAE,EAAE;AACzB,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,4BAA4B,EAAE,EAAE;gBAChC,UAAU,EAAE,IAAI,EAAE,UAAU;aAC7B,CAAC;AACH,SAAA;;AAEC,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;YAChE,MAAM,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACzD,SAAA;;AAGD,QAAA,IACE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,QAAQ,CACxD,oBAAoB,CACrB,EACD;YACA,MAAM,CAAC,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,IAAI,CACnD,oBAAoB,CACrB,CAAC;AACH,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;KAE7B;AAED,IAAA,YAAY,CAAC,MAAW,EAAA;AACtB,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACxB,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;AAC3C,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,CAAC,IAAS,KAAK,IAAI,EAAE,EAAE,KAAK,UAAU,CACvC,CAAC;AACF,gBAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAO,KAAK,EAAE,KAAK,QAAQ,EAAE,GAAG,CAAC,EAAE;oBAClE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC5C,iBAAA;AACH,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,oBAAyB,KAAI;AAC/D,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CACzB,CAAC,EAAO,KAAK,EAAE,EAAE,EAAE,KAAK,oBAAoB,CAC7C,CAAC;AACF,gBAAA,IACE,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,EAAO,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,EACrE;oBACA,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACnD,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,GAAQ,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC;QACnE,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;AACtE,QAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,4BAA4B,CAAC;QACtE,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;AACtE,QAAA,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC;QACnE,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAED,wBAAwB,GAAA;AACtB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACvE,QAAA,OAAO,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,gBAAgB;cACjB,wBAAwB,CAAC,OAAO,CAAC;AAClC,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;YACtB,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,CAAC;YACpE,IAAI,CAAC,sBAAsB,CAAC,aAAa,GAAG,GAAG,EAAE,cAAc,CAAC;YAChE,IAAI,CAAC,sBAAsB,CAAC,aAAa,GAAG,GAAG,EAAE,cAAc,CAAC;YAChE,IAAI,CAAC,sBAAsB,CAAC,WAAW,GAAG,GAAG,EAAE,YAAY,CAAC;AAC9D,SAAC,CAAC,CAAC;KACN;;IAGD,yBAAyB,GAAA;QACvB,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC/D,+BAA+B,CAChC,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACnD,qBAAqB,CACtB,CAAC;KACH;IAED,UAAU,CAAC,IAAS,EAAE,IAAa,EAAA;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,EAAE,MAAM;YAAE,OAAO;AAEjC,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AAChC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAC7D,CAAC,GAAQ,KACP,GAAG,CAAC,gBAAgB,KAAK,IAAI,CAAC,gBAAgB;AAC9C,gBAAA,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;AAClC,gBAAA,GAAG,CAAC,oBAAoB,KAAK,IAAI,CAAC,oBAAoB,CACzD,CAAC;AACF,YAAA,IAAI,IAAI,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;;AAE9B,gBAAA,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,aAAA;AAAM,iBAAA;;gBAEL,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC1D,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CACnE,CAAC,GAAQ,KAAK,GAAG,CAAC,gBAAgB,CACnC,CAAC;QACF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CACpE,CAAC,GAAQ,KAAK,GAAG,EAAE,gBAAgB,KAAK,IAAI,EAAE,EAAE,CACjD,CAAC;QACF,IAAI,CAAC,4BAA4B,GAAG;AAClC,YAAA,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC;SAC1C,CAAC;KACH;AAED,IAAA,wBAAwB,CAAC,IAAS,EAAA;QAChC,MAAM,WAAW,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC;QAClD,MAAM,qBAAqB,GAAG,IAAI,EAAE,qBAAqB,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAU,EAAE,CAAC;AAE1B,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;AACtC,YAAA,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE;AAClC,gBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC3D,OAAO;AACR,aAAA;AACD,YAAA,qBAAqB,CAAC,OAAO,CAAC,CAAC,EAAO,KAAI;AACxC,gBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,eAAe,CAAC,IAAS,EAAE,UAAe,EAAE,oBAAyB,EAAA;QACnE,OAAO;YACL,gBAAgB,EAAE,IAAI,EAAE,GAAG;AAC3B,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,oBAAoB,EAAE,oBAAoB;YAC1C,UAAU,EAAE,IAAI,EAAE,KAAK;AACvB,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,4BAA4B,EAAE,EAAE;SACjC,CAAC;KACH;AAED,IAAA,kBAAkB,CAAC,EAAO,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,oBAAoB,KAAK,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,YAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;YACjC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAC1D,CAAC,IAAS,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,CAC/B,CAAC;AACF,QAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,8BAA8B,CAAC,cAAc,CAAC,CAAC;KACvD;AAED,IAAA,8BAA8B,CAAC,cAAmB,EAAA;AAChD,QAAA,IAAI,CAAC,cAAc;AAAE,YAAA,OAAO,EAAE,CAAC;QAE/B,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC;AACzD,QAAA,MAAM,qBAAqB,GAAG,cAAc,CAAC,qBAAqB,IAAI;YACpE,IAAI;SACL,CAAC;;QAEF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;YAChE,OAAO,CAAC,cAAc,CAAC,CAAC;AACzB,SAAA;QACD,MAAM,mBAAmB,GAAU,EAAE,CAAC;;AAGtC,QAAA,SAAS,CAAC,OAAO,CAAC,CAAC,UAAkB,KAAI;AACvC,YAAA,qBAAqB,CAAC,OAAO,CAAC,CAAC,IAAY,KAAI;AAC7C,gBAAA,MAAM,iBAAiB,GAAG;oBACxB,GAAG,SAAS,CAAC,cAAc,CAAC;AAC5B,oBAAA,SAAS,EAAE;wBACT,GAAG,cAAc,CAAC,SAAS;wBAC3B,MAAM,EAAE,CAAC,UAAU,CAAC;wBACpB,YAAY,EAAE,CAAC,UAAU,CAAC;AAC3B,qBAAA;oBACD,qBAAqB,EAAE,CAAC,IAAI,CAAC;AAC7B,oBAAA,eAAe,EAAE;AACf,wBAAA;AACE,4BAAA,QAAQ,EAAE,UAAU;AACpB,4BAAA,oBAAoB,EAAE,IAAI;AAC1B,4BAAA,WAAW,EAAE,IAAI;AACjB,4BAAA,WAAW,EAAE,IAAI;AACjB,4BAAA,mBAAmB,EAAE,IAAI;AACzB,4BAAA,mBAAmB,EAAE,IAAI;AAC1B,yBAAA;AACF,qBAAA;iBACF,CAAC;AACF,gBAAA,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC9C,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,mBAAmB,CAAC;KAC5B;+GAvbU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAgJ,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,maCb5C,ogYAuNM,EAAA,MAAA,EAAA,CAAA,88ZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3F,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkG,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApB,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqB,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAlG,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAmG,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1MO,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,ogYAAA,EAAA,MAAA,EAAA,CAAA,88ZAAA,CAAA,EAAA,CAAA;uIAK/B,4BAA4B,EAAA,CAAA;sBAApC,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,4BAA4B,EAAA,CAAA;sBAApC,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,sBAAsB,EAAA,CAAA;sBAA/B,MAAM;;;ME4HI,+BAA+B,CAAA;AA3I5C,IAAA,WAAA,GAAA;QA4IE,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAEtB,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;QACxB,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;QAEvC,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAG1B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AA4C7C,KAAA;IA1CC,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAED,OAAO,GAAA;QACL,IACE,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,qBAAqB,EAC1B;AACA,YAAA,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC;AACzC,SAAA;aAAM,IACL,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,YAAA,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAC1C;AACA,YAAA,IAAI,CAAC,QAAQ,GAAG,yBAAyB,CAAC;AAC3C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC;AACzC,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,MAAe,EAAA;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;AAE3B,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACpD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5B,SAAA;KACF;AAED,IAAA,oBAAoB,CAAC,IAAS,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;KAC7C;AAED,IAAA,UAAU,CAAC,OAAY,EAAA;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,uBAAuB,EAAE,SAAS,CAChE,CAAC,IAAS,KAAK,IAAI,EAAE,gBAAgB,KAAK,OAAO,EAAE,gBAAgB,CACpE,CAAC;AACF,QAAA,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,uBAAuB,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC7D,SAAA;KACF;+GAxDU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EAzIhC,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxK,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2H,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,gBAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlB,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAvJ,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBA3I3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAC7B,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsIT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;8BAUQ,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAEI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MC/HI,qBAAqB,CAAA;AA2DhC,IAAA,WAAA,CACU,kBAAsC,EACtC,YAA0B,EAC1B,uBAAgD,EAChD,qBAA4C,EAC5C,uBAAgD,EAChD,aAA4B,EAC5B,kBAAsC,EAAA;QANtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACtC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAChD,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAChD,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAjEhD,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAC1B,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;AAClB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC1D,IAAM,CAAA,MAAA,GAAG,uBAAuB,CAAC;QACjC,IAAe,CAAA,eAAA,GAAG,gBAAgB,CAAC;QACnC,IAAkB,CAAA,kBAAA,GAAG,mBAAmB,CAAC;AACzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACpE,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAC/B,IAAgB,CAAA,gBAAA,GAAG,yBAAyB,CAAC;QAC7C,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAC/B,IAAa,CAAA,aAAA,GAAU,cAAc,CAAC;QACtC,IAAoB,CAAA,oBAAA,GAAQ,sBAAsB,CAAC;QACnD,IAAsB,CAAA,sBAAA,GAAQ,wBAAwB,CAAC;QACvD,IAAa,CAAA,aAAA,GAAG,cAAc,CAAC;QAG/B,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QACzB,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;QAE5B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAGhC,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QACtB,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;AACnB,QAAA,IAAA,CAAA,kBAAkB,GAAQ;AACxB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,gBAAgB,EAAE,EAAE;SACrB,CAAC;AACF,QAAA,IAAA,CAAA,MAAM,GAAG;AACP,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,gBAAgB,EAAE,KAAK;SACxB,CAAC;QASO,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AAEnC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QAW3C,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IACD,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,QAAQ,GAAA;QAEN,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;AAEpB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE,GAAG,wBAAwB,EAAE,CAAC;AAC/D,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACvD,YAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,GAAG,CAAC;AACrC,SAAC,CAAC,CAAC;KACJ;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACpE,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;AACpB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,YAAA,IACE,IAAI,CAAC,IAAI,KAAK,MAAM;AACpB,gBAAA,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,oBAAoB,EACrD;gBACA,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;AACrC,SAAC,CAAC,CAAC;KACJ;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACnE,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;AACtC,SAAC,CAAC,CAAC;KACJ;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,kBAAkB;AACpB,aAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;YACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;AACjC,SAAC,CAAC,CAAC;KACN;AAED,IAAA,cAAc,CAAC,GAAQ,EAAA;QACrB,IAAI,GAAG,EAAE,IAAI,EAAE,iBAAiB,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;AAChE,YAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACpD,YAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAEpC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC;AAC3C,YAAA,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC3C,SAAA;KACF;;AAID,IAAA,kBAAkB,CAAC,IAAS,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACvB,YAAA,IAAI,EAAE,UAAU,EAAE,UAAU,IAAI,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,QAAA,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;KACtE;AAED,IAAA,yBAAyB,CAAC,IAAS,EAAA;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;AAC7C,QAAA,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC3F,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,EAAE,eAAe,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,oBAAoB,GAAG,IAAI,EAAE,oBAAoB,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;KACxC;AAED,IAAA,sBAAsB,CAAC,IAAS,EAAA;QAC9B,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QACxC,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;AAChD,QAAA,IAAI,CAAC,gBAAgB,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACpG,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;QAClD,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC;AACpD,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;YAChC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,GAAG,IAAI,EAAE,QAAQ,CAAC;AAC5D,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;YAChD,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,GAAG,IAAI,EAAE,mBAAmB,CAAC;AACvE,SAAA;QACD,IAAI,IAAI,EAAE,cAAc,EAAE;AACxB,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AACtD,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAC/D,SAAA;KACF;AAED,IAAA,mBAAmB,CAAC,IAAS,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,eAAe;YAClD,IAAI,EAAE,eAAe,CAAC;QACxB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;QACjE,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;AACrE,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,eAAe;YAClD,IAAI,EAAE,eAAe,CAAC;KACzB;AAED,IAAA,0BAA0B,CAAC,IAAS,EAAA;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,mBAAmB;YACtD,IAAI,EAAE,mBAAmB,CAAC;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QACvF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ;YAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,OAAO,CACnF,CAAC,KAAU,KAAI;AACb,YAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACtC,SAAC,CACF,CAAC;KACH;AAED,IAAA,wBAAwB,CAAC,IAAS,EAAA;QAChC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;AAC3E,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,gBAAgB;YACnD,IAAI,EAAE,gBAAgB,CAAC;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,gBAAgB;YACnD,IAAI,EAAE,gBAAgB,CAAC;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,eAAe;YAClD,IAAI,EAAE,eAAe,CAAC;AACxB,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM;AACpD,YAAA,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC,eAAe;AAC7D,YAAA,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC;QACpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAS,KAChE,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAC9D,IAAI,EAAE,GAAY,CACnB,CACF,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAC9D,CAAC,IAAS,KACR,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC,eAAe,EAAE,QAAQ,CACvE,IAAI,EAAE,GAAY,CACnB,CACJ,CAAC;KACH;IAED,gBAAgB,CAAC,IAAS,EAAE,SAAiB,EAAA;QAC3C,IAAI,CAAC,sBAAsB,GAAG;YAC5B,cAAc,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,KAAK;YACnD,QAAQ,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,KAAK;AAC/C,YAAA,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK;YACrE,SAAS,EACP,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;AAClC,gBAAA,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC;AAC7C,kBAAE,IAAI;AACN,kBAAE,KAAK;AACX,YAAA,mBAAmB,EACjB,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK;YACxD,mBAAmB,EAAE,SAAS,GAAG,IAAI,GAAG,KAAK;SAC9C,CAAC;QACF,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,sBAAsB,GAAA;QACpB,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;YAC1D,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AAC7C,gBAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC5C;;AAGD,IAAA,gBAAgB,CAAC,QAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,QAAA,IAAI,QAAQ,KAAK,MAAM,CAAC,WAAW,EAAE;YACnC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,SAAA;AAAM,aAAA,IAAI,QAAQ,KAAK,MAAM,CAAC,oBAAoB,EAAE;YACnD,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,SAAA;AACD,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE,GAAG,wBAAwB,EAAE,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpD;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;AAC/B,QAAA,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAK,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,oBAAoB,GAAG,CAAC,GAAG,QAAQ,CAAU,CAAC;KAC5D;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,oBAAoB,EAAE;YACzD,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzD,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,oBAAoB,EAAE;YACzD,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzD,SAAA;KACF;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC;AAClC,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,oBAAoB,EAAE;YACzD,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzD,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;AAED,IAAA,wBAAwB,CAAC,KAAU,EAAA;QACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,oBAAoB,EAAE;YACzD,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzD,SAAA;KACF;AAED,IAAA,wBAAwB,CAAC,GAAQ,EAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;AAC/C,QAAA,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,EAAE;YAC9C,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtD,SAAA;KACF;IAED,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,UAAU,KAAK,qBAAqB,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,EAAE;AACjF,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrC,SAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,OAAO;YAAE,OAAO;AACrB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAC1D,gBAAA,IAAI,EAAE,CAAC,GAAG,KAAI;AACZ,oBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACtD,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,oBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACrC,oBAAA,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;iBACpC;AACD,gBAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,oBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACxB,oBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;iBACtC;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;AACtE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACtD,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;aACtC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACJ;;AAGD,IAAA,eAAe,CAAC,OAAY,EAAA;QAC1B,QACE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;YAClD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,EAChD;KACH;AAED,IAAA,wBAAwB,CAAC,OAAY,EAAA;QACnC,QACE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;YAChC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC;AACpD,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACxB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC;aACtD,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC;gBAC5D,IAAI,CAAC,yBAAyB,CAC5B,OAAO,EAAE,cAAc,EAAE,eAAe,CACzC,CAAC;YACJ,IAAI,CAAC,8BAA8B,CACjC,OAAO,EAAE,cAAc,EAAE,mBAAmB,CAC7C,EACD;KACH;AAED,IAAA,YAAY,CAAC,IAAY,EAAA;QACvB,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACzC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC;AACvE,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,mBAAmB,CAAC,WAAmB,EAAA;QACrC,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;AAChD,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO;AACtC,gBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC;AAC5C,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,gBAAgB,CAAC,QAAgB,EAAA;QAC/B,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAC7C,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO;AACnC,gBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC;AACzC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,kBAAkB,CAAC,UAAkB,EAAA;QACnC,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/C,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO;AACrC,gBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC;AAC3C,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,oBAAoB,CAAC,QAAgB,EAAA;QACnC,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAC7C,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO;AACnC,gBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC;AACzC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,UAAU,CAAC,OAAY,EAAA;QACrB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE;YACrC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;AACvC,YAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;AACnE,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QACD,IACE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC;AACpC,YAAA,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB;AACvC,YAAA,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAChC;YACA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;AAC3C,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO;AACjC,gBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC;AACvC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,iBAAiB,CAAC,MAAW,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;YACnB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9C,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO;AACpC,gBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC;AAC1C,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,oBAAoB,CAAC,SAAc,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE;gBACnE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;AACjD,gBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO;AACvC,oBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC;AAC7C,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,yBAAyB,CAAC,eAAoB,EAAA;AAC5C,QAAA,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE;gBAC7D,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;AACjD,gBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO;AACvC,oBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC;AAC7C,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,8BAA8B,CAAC,kBAAuB,EAAA;QACpD,IAAI,YAAY,GAAY,IAAI,CAAC;QACjC,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,KAAU,KAAI;AAC3D,YAAA,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;gBACvB,YAAY,GAAG,KAAK,CAAC;AACtB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,kBAAkB,EAAE,QAAQ,IAAI,CAAC,YAAY,EAAE;YAClD,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,OAAO,GAAG,IAAI,CAAC;AAC3D,YAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,OAAO;AACjD,gBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC;AACvD,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;AAGD,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;KACzC;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;AACxD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;IAED,sBAAsB,CAAC,KAAa,EAAE,IAAY,EAAA;AAChD,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KACzB;AAED,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;AAED,IAAA,YAAY,CAAC,IAAa,EAAA;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;;AAGD,IAAA,YAAY,CAAC,IAAS,EAAA;QACpB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5D;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,IAAI,EAC7D,MAAM,CACP,CAAC;KACH;IAED,UAAU,CAAC,IAAY,EAAE,KAAU,EAAA;AACjC,QAAA,QAAQ,IAAI;YACV,KAAK,kBAAkB,EAAE;AACvB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,oBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;;AAEtC,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,iBAAA;gBACD,MAAM;AACP,aAAA;AACF,SAAA;KACF;IAED,UAAU,CAAC,IAAS,EAAE,IAAY,EAAA;QAChC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACjC;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAK,CAAC;KAC/D;IAED,UAAU,CAAC,IAAS,EAAE,OAAY,EAAA;AAChC,QAAA,QAAQ,IAAI;YACV,KAAK,SAAS,EAAE;gBACd,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAC1D,CAAC,IAAS,KAAK,IAAI,EAAE,cAAc,KAAK,OAAO,EAAE,cAAc,CAChE,CAAC;AACF,gBAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACvD,iBAAA;gBACD,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;gBACf,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,CACnE,CAAC,IAAS,KAAK,IAAI,EAAE,cAAc,KAAK,OAAO,EAAE,cAAc,CAChE,CAAC;AACF,gBAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAChE,iBAAA;gBACD,MAAM;AACP,aAAA;AACF,SAAA;KACF;IAED,cAAc,CAAC,GAAQ,EAAE,IAAS,EAAA;AAChC,QAAA,QAAQ,IAAI;YACV,KAAK,SAAS,EAAE;AACd,gBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,GAAG,CAAC;AACtC,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,GAAG,CAAC;AAC/C,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC5B,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;IAED,UAAU,CAAC,GAAQ,EAAE,IAAY,EAAA;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAS,KAC/C,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CACpC,CAAC;QACF,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,QAAQ,CAAC;AAC5C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,QAAQ,CAAC;AACrD,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM;YACpD,IAAI,CAAC,kBAAkB,CAAC,OAAO;kBAC3B,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,CAAC;AAC/B,kBAAE,MAAM,CAAC,OAAO,CAAQ,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC,eAAe;YAC7D,IAAI,CAAC,kBAAkB,CAAC,gBAAgB;kBACpC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,CAAC;AAC/B,kBAAE,MAAM,CAAC,OAAO,CAAQ,CAAC;KAC9B;AAED,IAAA,sBAAsB,CAAC,OAAY,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,qBAAqB,EAAE;YAC7C,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAClC,YAAA,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;YACzD,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,EAAE,CAAC;YAEvB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,uBAAuB,IAAI,EAAE,EAAE;gBACzD,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,GAAG,IAAI,CAAC;gBAClF,IAAI,gBAAgB,IAAI,IAAI,EAAE;AAC5B,oBAAA,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAClC,WAAW,CAAC,IAAI,CAAC;AACf,wBAAA,GAAG,EAAE,gBAAgB;AACrB,wBAAA,GAAG,EAAE,gBAAgB;AACrB,wBAAA,IAAI,EAAE,4BAA4B;AACnC,qBAAA,CAAC,CAAC;AACJ,iBAAA;AACF,aAAA;;YAGD,IAAI,GAAG,IAAI,IAAI,EAAE;AACf,gBAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,WAAW,CAAC,IAAI,CAAE;AAChB,oBAAA,GAAG,EAAE,GAAG;oBACR,GAAG,EAAE,CAAC,GAAG,CAAC;oBACV,IAAI,EAAE,CAAC,IAAI,CAAC;AACb,iBAAA,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,CAAC,uBAAuB,GAAG,UAAU,CAAC;AAC7C,YAAA,OAAO,CAAC,+BAA+B,GAAG,WAAW,CAAC;AACvD,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,OAAY,EAAA;AAC3B,QAAA,IACE,IAAI,CAAC,UAAU,KAAK,YAAY;AAChC,YAAA,IAAI,CAAC,UAAU,KAAK,qBAAqB,EACzC;AACA,YAAA,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;AACzD,YAAA,MAAM,EACJ,KAAK,EACL,GAAG,EACH,UAAU,EAAE,WAAW,EACvB,SAAS,EAAE,UAAU,GACtB,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAClC,OAAO,CAAC,wBAAwB,GAAG;gBACjC,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE;gBAC3B,KAAK;gBACL,GAAG;gBACH,WAAW;gBACX,UAAU;gBACV,GAAG;gBACH,IAAI;aACL,CAAC;AACF,YAAA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,SAAA;KACF;AAED,IAAA,YAAY,CAAC,OAAY,EAAA;AACvB,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,kBAAkB,CAAC;AACrG,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,EAAE;YACpC,OAAO,CAAC,wBAAwB,CAAC,KAAK;gBACpC,oBAAoB,EAAE,KAAK,CAAC;AAC/B,SAAA;KACF;AAED,IAAA,aAAa,CAAC,IAAS,EAAA;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3D,QAAA,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;KAC9B;IAED,UAAU,GAAA;AACR,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAC7B,IAAI,CAAC,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,CACrE,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC;AAEzE,QAAA,IAAI,CAAC,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,OAAO,CACnF,CAAC,KAAU,KAAI;AACb,YAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,SAAC,CACF,CAAC;KACH;IAED,SAAS,GAAA;QACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;YAChC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;AAC/D,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnD,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC7C,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnD,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC;AACnE,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACtD,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,oBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACrC,oBAAA,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;iBACpC;AACD,gBAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,oBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;iBACtC;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACpC,IAAI,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3C,QAAA,MAAM,eAAe,GAAG;AACtB,YAAA,GAAG,OAAO;YACV,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC;AACnE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACtD,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACrC,gBAAA,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;aACpC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,kBAAkB;aACpB,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC;AAC9C,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACtD,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACrC,gBAAA,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;aACpC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;aACtC;AACF,SAAA,CAAC,CAAC;KACN;;AAGD,IAAA,aAAa,CAAC,GAAQ,EAAA;QACpB,IAAI,GAAG,KAAK,YAAY,EAAE;YACxB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;AACtC,SAAA;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;YACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjB,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,GAAW,CAAC;QAChB,IAAI,YAAY,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,YAAY,GAAG,sBAAsB,CAAC;AACvC,SAAA;AAAM,aAAA;YACL,YAAY,GAAG,qCAAqC,CAAC;AACtD,SAAA;QACD,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;QAEvD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,SAAS,GAAA;QACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;KAChE;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AAClE,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AAC/D,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AAChE,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG;AACjC,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AAChE,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AAC3E,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1D,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,GAAG,EAAE,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,GAAG,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,mBAAmB,GAAG;AACzD,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,mBAAmB,EAAE,CAAC;SACvB,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,cAAc,GAAG,EAAE,CAAC;AACzD,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,gBAAgB,GAAG;AACtD,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,WAAW,EAAE,EAAE;SAChB,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9D,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,eAAe,GAAG;AACrD,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,WAAW,EAAE,EAAE;SAChB,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,GAAG;AAChD,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,eAAe,EAAE,EAAE;SACpB,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE,GAAG,wBAAwB,EAAE,CAAC;KAC/D;AAED,IAAA,WAAW,CAAC,GAAS,EAAA;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;KAC1C;IAED,aAAa,CAAC,GAAQ,EAAE,OAAY,EAAA;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;KAC3C;IAED,YAAY,CAAC,KAAU,EAAE,IAAY,EAAA;AACnC,QAAA,QAAQ,IAAI;YACV,KAAK,MAAM,EAAE;AACX,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC/B,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;gBACnC,MAAM;AACP,aAAA;AACF,SAAA;KACF;AAED,IAAA,IAAI,wBAAwB,GAAA;AAC1B,QAAA,QACE,IAAI,CAAC,sBAAsB,CAAC,cAAc;YAC1C,IAAI,CAAC,sBAAsB,CAAC,QAAQ;YACpC,IAAI,CAAC,sBAAsB,CAAC,QAAQ;YACpC,IAAI,CAAC,sBAAsB,CAAC,UAAU;YACtC,IAAI,CAAC,sBAAsB,CAAC,gBAAgB;YAC5C,IAAI,CAAC,sBAAsB,CAAC,SAAS;AACrC,YAAA,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAC/C;KACH;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,QACE,IAAI,CAAC,MAAM,CAAC,UAAU;gBACtB,IAAI,CAAC,MAAM,CAAC,cAAc;gBAC1B,IAAI,CAAC,MAAM,CAAC,UAAU;gBACtB,IAAI,CAAC,MAAM,CAAC,eAAe;AAC3B,gBAAA,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B;AACH,SAAA;AACD,QAAA,QACE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc;aACpD,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC;AAC9D,YAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B;KACH;+GA/5BU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA0G,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAgE,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA7F,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA8F,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,0gBChClC,sqzBAkwBA,EAAA,MAAA,EAAA,CAAA,k7DAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxG,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwI,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAxD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAyD,gBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDluBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,sqzBAAA,EAAA,MAAA,EAAA,CAAA,k7DAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;4RA+CpB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;MEhFI,iBAAiB,CAAA;AAM5B,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAP1B,QAAA,IAAA,CAAA,YAAY,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AACpE,QAAA,IAAA,CAAA,YAAY,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AAS1E,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;AAC9B,SAAA;KACF;IAEO,eAAe,CAAC,MAAY,EAAE,OAAa,EAAA;QACjD,OAAO,IAAI,CAAC,IAAI;cACZ,GAAG,CAAQ,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,EAAE;YAChD,MAAM;YACN,OAAO;SACR,CAAC;aACD,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EACvC,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;AAC1D,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACjB,CAAC,CACH,CAAC;KACL;AAEO,IAAA,eAAe,CAAC,IAAS,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,OAAO,IAAI,CAAC;KACb;IAEM,mBAAmB,CAAC,MAAY,EAAE,OAAa,EAAA;AACpD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE;YACjC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACrC,SAAA;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC9C;AAEO,IAAA,eAAe,CAAC,OAAa,EAAA;QACnC,OAAO,IAAI,CAAC,IAAI;cACZ,GAAG,CAAQ,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,iCAAiC,EAAE;YAClE,OAAO;SACR,CAAC;aACD,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EACvC,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;AACrD,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACjB,CAAC,CACH,CAAC;KACL;AAEO,IAAA,eAAe,CAAC,IAAS,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,mBAAmB,CAAC,OAAa,EAAA;AACtC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE;YACjC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;KACtC;+GAnEU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAxN,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAUI,QAAQ;;;MCRA,cAAc,CAAA;AAOzB,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACxB,iBAAoC,EAChC,MAAuB,EAAA;QAH3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AARtC,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AACnE,QAAA,IAAA,CAAA,MAAM,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AAC9D,QAAA,IAAA,CAAA,SAAS,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AACjE,QAAA,IAAA,CAAA,SAAS,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AAQvE,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;YAC9B,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAClC,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,2CAA2C,EACtE,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,EACFO,YAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,SAAC,CAAC,CACH;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,eAAe,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;KACjE;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE;YAChC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACpC,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,6BAA6B,EAAE;YACpE,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,EACFA,YAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,SAAC,CAAC,CACH;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,2BAA2B,CAAC,OAAc,EAAE,MAAc,EAAA;AACxD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC3B,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC/B,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,IAAI,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;YACtB,OAAO,IAAI,CAAC,IAAI;AACb,iBAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,QAAQ;gBACf,+BAA+B;gBAC/B,WAAW;AACX,gBAAA,MAAM,EACR,EAAE,SAAS,EAAE,OAAO,IAAI,EAAE,EAAE,EAC5B,EAAE,OAAO,EAAE,CACZ;AACA,iBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,CAAC,IAAI;iBACb,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,+BAA+B,EACnD,EAAE,SAAS,EAAE,OAAO,IAAI,EAAE,EAAE,EAC5B,EAAE,OAAO,EAAE,CACZ;AACA,iBAAA,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAI;AACV,gBAAA,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,gBAAA,OAAO,GAAG,CAAC;AACb,aAAC,CAAC,EACFA,YAAU,CAAC,CAAC,KAAK,KAAI;AACnB,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,aAAC,CAAC,CACH;AACA,iBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,SAAA;KACF;IAED,qBAAqB,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;KAC7D;AAED,IAAA,YAAY,CAAC,IAAS,EAAE,IAAY,EAAE,QAAgB,EAAA;QACpD,IAAI,MAAM,CAAC,SAAS,IAAK,MAAM,CAAC,SAAiB,EAAE,gBAAgB,EAAE;AACnE,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,MAAM,CAAC,SAAiB,EAAE,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7D,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC;YAC1D,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACtC,YAAA,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5B,YAAA,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACrC,YAAA,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AAC9B,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;AACV,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9B,SAAA;AACD,QAAA,OAAO,YAAY,CAAC;KACrB;AAED,IAAA,mBAAmB,CAAC,MAAW,EAAA;QAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvC,SAAA;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;KACrB;AAED,IAAA,gBAAgB,CAAC,UAAkB,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC;AAC9B,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE;AAChD,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,sCAAsC,GAAG,UAAU,EACvE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CACrD,CAAC;KACH;AAED,IAAA,8BAA8B,CAAC,OAAa,EAAA;AAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC;AAC9B,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE;AAChD,SAAA,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,aAAa;YACpB,iBAAiB;aAChB,OAAO,KAAK,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,GAAG,gBAAgB,EACpD,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CACrD,CAAC;KACH;AAED,IAAA,OAAO,CAAC,OAAY,EAAA;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAM,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,iBAAiB,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC;AAClE,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,WAAW,CAAC,OAAc,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,iBAAiB,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC;AACtE,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,aAAa,CAAC,MAAc,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,QAAQ;YACf,8BAA8B;YAC9B,MAAM;AACN,YAAA,qBAAqB,EACvB,EAAE,EACF,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,UAAU,CAAC,MAAc,EAAE,OAAY,EAAA;AACrC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAM,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,yBAAyB,GAAG,MAAM,EAAE,OAAO,EAAE;YACtE,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;;IAGD,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;YAC9B,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAClC,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,eAAe;AACtB,YAAA,gDAAgD,EAClD;YACE,OAAO;SACR,CACF;AACA,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,EACFA,YAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,SAAC,CAAC,CACH;AACA,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;+GAvPU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAyN,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA9M,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAYI,QAAQ;;;MChBA,UAAU,CAAA;AAErB,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,QAAA,IAAG,KAAK,IAAI,KAAK,EAAE,MAAM,EAAC;AACxB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC;YAClD,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC,GAAO,KAAM,EAAA,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA,EAAC,CAAC,CAAC;AACtK,SAAA;AAAI,aAAA;AACH,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KAEF;+GAXU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA,CAAA;;;MCIY,mBAAmB,CAAA;AALhC,IAAA,WAAA,GAAA;QAME,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACJ,IAAI,CAAA,IAAA,GAAW,CAAC,CAAC;QACjB,IAAE,CAAA,EAAA,GAAW,EAAE,CAAC;QAChB,IAAK,CAAA,KAAA,GAAQ,GAAG,CAAC;QACjB,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;QAC/B,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QAUvB,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU,CAAC;QAClE,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QAE9B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAiIjC,KAAA;IA/IC,IAA0B,OAAO,CAAC,IAAS,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;KAC/B;IACD,IAAwB,YAAY,CAAC,IAAS,EAAA;AAC5C,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;IASD,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC3C,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE;AACxC,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE;AACjD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE;AAC/C,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AACF,SAAA;KACF;;AAGD,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;AACvB,QAAA,IACE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS;AAC/B,YAAA,IAAI,CAAC,QAAQ;AACX,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EACtC;AACA,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;;AAGD,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IACE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS;AAC/B,YAAA,IAAI,CAAC,QAAQ;AACX,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EACtC;AACA,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;;AAGD,IAAA,cAAc,CAAC,CAAM,EAAA;QACnB,MAAM,OAAO,GAAG,mBAAmB,CAAC;AACpC,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACxB;;AAGD,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AACvC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IACE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS;gBAClC,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,gBAAA,IAAI,CAAC,WAAW;AAChB,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EACrC;AACA,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;AACjC,gBAAA,IACE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS;AAC/B,oBAAA,IAAI,CAAC,QAAQ;AACX,wBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC/D,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EACtC;AACA,oBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,iBAAA;AAAM,qBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACjD,oBAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,iBAAA;gBACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,aAAA;AACF,SAAA;KACF;;AAGD,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IACE,IAAI,CAAC,QAAQ;AACX,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EACtC;AACA,YAAA,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,EAAE;AAClC,gBAAA,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC9C,gBAAA,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC1C,gBAAA,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;AAC/C,gBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;AAE7C,gBAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,QAAQ,EAAE,EAAE,CAAC,EAAE;AAC3C,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,iBAAA;AACF,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,KAAK,CAAC,EAAE;AAC1C,gBAAA,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC9C,gBAAA,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;gBAC/C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,aAAa,GAAG,CAAC,CAAC;AACjD,gBAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,QAAQ,EAAE,EAAE,CAAC,EAAE;AAC3C,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,iBAAA;AACF,aAAA;AACF,SAAA;aAAM,IACL,IAAI,CAAC,QAAQ;AACb,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,EACtD;AACA,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,KACE,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAClD,CAAC,IAAI,IAAI,CAAC,SAAS,EACnB,EAAE,CAAC,EACH;AACA,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;KACrE;+GAtJU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,qUCRhC,kjGA4FA,EAAA,MAAA,EAAA,CAAA,8kJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDpFa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,kjGAAA,EAAA,MAAA,EAAA,CAAA,8kJAAA,CAAA,EAAA,CAAA;8BAOjB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACoB,OAAO,EAAA,CAAA;sBAAhC,KAAK;uBAAC,aAAa,CAAA;gBAII,YAAY,EAAA,CAAA;sBAAnC,KAAK;uBAAC,WAAW,CAAA;gBAKT,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;AErBT,MAAM,uBAAuB,GAAa;AACxC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAMwM,mBAAiB,CAAC;AAChD,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;gCAUW,iBAAiB,CAAA;AAR9B,IAAA,WAAA,GAAA;AAYE,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAS,KAAI,GAAG,CAAC;AAC9B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAC;AAoBtB,KAAA;AAlBC,IAAA,UAAU,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,KAAK,CAAA;KAC9B;AACD,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IACD,YAAY,GAAA;AAEV,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;+GAxBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAJjB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,uBAAuB,CAAC,0BCftC,ikCAsBE,EAAA,MAAA,EAAA,CAAA,q0DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1M,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDHW0M,mBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;+BACE,cAAc,EAAA,SAAA,EAGb,CAAC,uBAAuB,CAAC,EAAA,MAAA,EAC7B,CAAC,UAAU,EAAC,SAAS,EAAC,sBAAsB,CAAC,EAAA,QAAA,EAAA,ikCAAA,EAAA,MAAA,EAAA,CAAA,q0DAAA,CAAA,EAAA,CAAA;;;MEFzC,uBAAuB,CAAA;AA2BlC,IAAA,WAAA,GAAA;QAxBS,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QACvB,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QACpB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QACtB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AACnB,QAAA,IAAA,CAAA,YAAY,GAAG;YACtB,YAAY;YACZ,wCAAwC;SACzC,CAAC;QAGO,IAAI,CAAA,IAAA,GAAW,QAAQ,CAAC;QACxB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAqB,CAAA,qBAAA,GAAQ,EAAE,CAAC;AAE/B,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;AACnD,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAA,CAAA,SAAS,GAAsB,IAAI,YAAY,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,mBAAmB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAEpE,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;KACxB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,gBAAgB,GAAG,wCAAwC,CAAC;AAClE,SAAA;KACF;AAED,IAAA,QAAQ,MAAW;IAEnB,IAAI,GAAA;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACzC;AAED,IAAA,cAAc,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;IACD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;AACD,IAAA,oBAAoB,CAAC,KAAU,EAAA;;KAE9B;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;+GAvDU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,00BCdpC,6jDA8CA,EAAA,MAAA,EAAA,CAAA,wlVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1M,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyM,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhCa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,6jDAAA,EAAA,MAAA,EAAA,CAAA,wlVAAA,CAAA,EAAA,CAAA;0EAKnB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAIG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;ME/BI,sBAAsB,CAAA;IA2BjC,IAAa,YAAY,CAAC,KAA6C,EAAA;AACrE,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;KACnC;IA4BD,IAAuB,WAAW,CAAC,KAAU,EAAA;AAC3C,QAAA,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,CAAC,CAAC;YACpE,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,SAAA;KACF;IAED,IAA4B,eAAe,CAAC,KAAU,EAAA;QACpD,IAAI,KAAK,EAAE,MAAM,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CACpC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,EACjC,WAAW,CACZ,CAAC;AACF,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAC3C,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,CAC7B,CAAC;YACF,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,SAAA;KACF;IAID,IAAmC,uBAAuB,CAAC,KAAU,EAAA;AACnE,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAC3C,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,KAAK,CAAC,EACxC,WAAW,CACZ,CAAC;AACF,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CACzD,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,CAC7B,CAAC;KACH;IAID,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE;AAC9B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CACrC,CAAC,GAAQ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAC7D,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAChC,CAAC,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,EAC3C,WAAW,CACZ,CAAC;AACH,SAAA;KACF;IACD,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,eAAe;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;gBAClC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,uBAAuB;AAC1B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;AAClC,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE;AACvC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;oBAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;KAC/C;IAED,IAAwB,YAAY,CAAC,KAAU,EAAA;AAC7C,QAAA,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,CAAC,CAAC;YACrE,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;KACF;IAED,IAA6B,gBAAgB,CAAC,KAAU,EAAA;AACtD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CACrC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,EAClC,UAAU,CACX,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAC7C,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,CAC5B,CAAC;QACF,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE;AAC9B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CACvC,CAAC,GAAQ,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAC7D,CAAC;YACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CACjC,CAAC,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC,EAC5C,UAAU,CACX,CAAC;AACH,SAAA;KACF;IACD,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB;AACnB,YAAA,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE;gBACrC,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC,wBAAwB;AAC3B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;AACnC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE;AACxC,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;oBACnC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;KAChD;AAED,IAAA,cAAc,CAAC,IAAS,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KAC9D;AAED;;;;;AAKG;IACH,UAAU,CAAC,GAAQ,EAAE,OAAY,EAAA;AAC/B,QAAA,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI;cACzB,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC;cAC3C,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACpD;IAED,eAAe,CAAC,GAAQ,EAAE,OAAY,EAAA;AACpC,QAAA,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC7C,SAAA;KACF;AAED;;;;;;AAMG;IACH,sBAAsB,CAAC,MAAwB,EAAE,OAAY,EAAA;QAC3D,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CACpC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EACrC,WAAW,CACZ,CAAC;AACF,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAC3C,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,CAC7B,CAAC;AACH,SAAA;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CACtC,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,OAAO,EAAE,SAAS,CACpD,CAAC;AACF,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAC5C,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,OAAO,EAAE,SAAS,CACpD,CAAC;gBACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAChD,CAAC,GAAQ,KAAK,GAAG,KAAK,OAAO,EAAE,SAAS,CACzC,CAAC;AACH,aAAA;AACF,SAAA;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AACD,IAAA,aAAa,CAAC,GAAQ,EAAA;QACpB,MAAM,SAAS,GAAG,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAChD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;AAEnF,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;AACjC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAoC,KAAK,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1G,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAoC,KAC9E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CACnD,CAAC;AACF,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAoC,KAAK,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1G,SAAA;QAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED;;;;;AAKG;IACH,WAAW,CAAC,GAAQ,EAAE,OAAY,EAAA;AAChC,QAAA,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI;cACzB,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC;cAC5C,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACrD;AAED;;;;;;AAMG;IACH,uBAAuB,CAAC,MAAwB,EAAE,OAAY,EAAA;QAC5D,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CACrC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EACtC,UAAU,CACX,CAAC;AACF,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAC7C,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,CAC5B,CAAC;AACH,SAAA;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CACvC,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,OAAO,EAAE,QAAQ,CAClD,CAAC;AACF,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC9C,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,OAAO,EAAE,QAAQ,CAClD,CAAC;gBACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAClD,CAAC,GAAQ,KAAK,GAAG,KAAK,OAAO,EAAE,QAAQ,CACxC,CAAC;AACH,aAAA;AACF,SAAA;QACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AACD,IAAA,cAAc,CAAC,GAAQ,EAAA;AACrB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CACzC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,YAAY,CACb,CAAC;AACF,QAAA,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;AAChC,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,CAAC,CAAC;AACpE,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAQ,KACpD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAClD,CAAC;AACF,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAC7C,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,CAC5B,CAAC;AACH,SAAA;QACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AAGD,IAAA,WAAA,GAAA;QAxSA,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;AACN,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAE7B,IAAU,CAAA,UAAA,GAAG,gBAAgB,CAAC;QAC9B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAoB,CAAA,oBAAA,GAAW,YAAY,CAAC;AAC3C,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,YAAY,EAAE,CAAC;QACjD,IAAI,CAAA,IAAA,GAAW,QAAQ,CAAC;QACxB,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACxB,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QAEf,IAAoB,CAAA,oBAAA,GAA2C,YAAY,CAAC;QAC5E,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QACpB,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QAEZ,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAGpB,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QAItC,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;QACvC,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;QACvC,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;AAE9B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QAEpC,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;QACtB,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;QAC9B,IAAuB,CAAA,uBAAA,GAAG,KAAK,CAAC;QACzC,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;QACtB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QAEf,IAAoB,CAAA,oBAAA,GAAQ,EAAE,CAAC;QACxC,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;QAC3B,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QACvB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAwB,CAAA,wBAAA,GAAG,KAAK,CAAC;AACjC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAE9B,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAgB,CAAA,gBAAA,GAAG,CAAC,CAAC;QACZ,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAClC,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAwB7B,IAAoB,CAAA,oBAAA,GAAQ,EAAE,CAAC;QAC/B,IAAsB,CAAA,sBAAA,GAAQ,EAAE,CAAC;QAUxB,IAAQ,CAAA,QAAA,GAAW,WAAW,CAAC;QACxC,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QA4MzB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QAYjB,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC;KAXH;IAEjB,QAAQ,GAAA;AACN,QAAA,IAAI,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,SAAS,CAAC,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAED,QAAQ,GAAA;QACN,IACE,IAAI,CAAC,sBAAsB;YAC3B,IAAI,CAAC,sBAAsB,EAAE,MAAM;AACnC,YAAA,IAAI,CAAC,eAAe;AACpB,YAAA,IAAI,CAAC,eAAe,EAAE,MAAM,EAC5B;YACA,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC,EAAU,KAAS;gBACvD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE;AACvC,oBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC9B,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC/B,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,gBAAgB;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,IAAI,CAAC,aAAa;gBACzB,MAAM,EAAE,IAAI,CAAC,cAAc;gBAC3B,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;AAClD,aAAA,CAAC,CAAC;KACN;AAED,IAAA,aAAa,CAAC,GAAiB,EAAA;QAC7B,IAAI,GAAG,KAAK,KAAK,EAAE;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,IAAI,CAAC,aAAa;gBACzB,MAAM,EAAE,IAAI,CAAC,cAAc;gBAC3B,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;AAClD,aAAA,CAAC,CAAC;AACJ,SAAA;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC/B,SAAA;KACF;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;;AAID;;;;;;;AAOG;IACH,YAAY,CAAC,KAAU,EAAE,GAAW,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC,IAAI,CACf,KAAK;AACF,aAAA,MAAM,CACL,CAAC,GAAQ,EAAE,IAAS,MAClB,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CACnD,EACD,IAAI,GAAG,EAAE,CACV;aACA,MAAM,EAAE,CACZ,CAAC;KACH;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,SAAA;KACF;AACD,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7C;IAED,YAAY,GAAA;QACV,QAAQ,IAAI,CAAC,kBAAkB;AAC7B,YAAA,KAAK,UAAU;gBACb,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC3C,CAAC,IAAS,KACR,EACE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;oBAC3C,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAC5C,CACJ,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC3C,CAAC,IAAS,KACR,EACE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;oBAC3C,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAC5C,CACJ,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC3C,CAAC,IAAS,KACR,EACE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;oBAC1C,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;oBAC3C,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAC5C,CACJ,CAAC;gBACF,MAAM;AACN,YAAA,KAAK,cAAc;AACjB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC3C,CAAC,IAAS,KACR,EACE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAC5C,CACJ,CAAC;gBACJ,MAAM;YACR,QAAQ;AACT,SAAA;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;AAED,IAAA,mBAAmB,CAAC,KAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC5B,SAAA;KACF;+GAvbU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,g4CCTnC,0riBAoUM,EAAA,MAAA,EAAA,CAAA,inZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5M,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqJ,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzF,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/D,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+I,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAlN,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAmN,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD3TO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,0riBAAA,EAAA,MAAA,EAAA,CAAA,inZAAA,CAAA,EAAA,CAAA;0EAMjB,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACE,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACI,0BAA0B,EAAA,CAAA;sBAAnC,MAAM;gBACE,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAMG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAGG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAEE,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBAMG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAUG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEiB,WAAW,EAAA,CAAA;sBAAjC,KAAK;uBAAC,UAAU,CAAA;gBASW,eAAe,EAAA,CAAA;sBAA1C,KAAK;uBAAC,eAAe,CAAA;gBAgBa,uBAAuB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,sBAAsB,CAAA;gBASpB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBA0BkB,YAAY,EAAA,CAAA;sBAAnC,KAAK;uBAAC,WAAW,CAAA;gBASW,gBAAgB,EAAA,CAAA;sBAA5C,KAAK;uBAAC,gBAAgB,CAAA;;;yBEnIZ,UAAU,CAAA;IACrB,SAAS,CAAC,KAAY,EAAE,UAAkB,EAAA;QACxC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QACD,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QACtC,IAAG,KAAK,EAAE,MAAM,EAAC;AACjB,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAO,KAAI;AAC9B,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC/D,aAAC,CAAC,CAAC;AACJ,SAAA;AAAI,aAAA;AACF,YAAA,OAAO,EAAE,CAAC;AACZ,SAAA;KACA;+GAhBU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAVhN,YAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA,CAAA;;;MCIY,cAAc,CAAA;AAEzB,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AACjC,QAAA,IAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAE,CAAC,EAAC;YAC7B,IAAI,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAK,KAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAC5E,IAAI,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAK,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/E,YAAA,OAAO,CAAC,GAAG,cAAc,EAAC,GAAG,gBAAgB,CAAC,CAAC;AACjD,SAAA;AAAI,aAAA;AACH,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACH;+GAVU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,IAAI,EAAC,KAAK;AACX,iBAAA,CAAA;;;MCUY,kBAAkB,CAAA;AAkC7B,IAAA,WAAA,GAAA;QAjCS,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QACnB,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QACjB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAElB,IAAW,CAAA,WAAA,GAAG,gBAAgB,CAAC;QAC/B,IAAiB,CAAA,iBAAA,GAAG,aAAa,CAAC;QAClC,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;QACxB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAoB,CAAA,oBAAA,GAAW,YAAY,CAAC;QAC5C,IAAI,CAAA,IAAA,GAAW,QAAQ,CAAC;QACxB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAChB,QAAA,IAAA,CAAA,YAAY,GAAG;YACtB,YAAY;YACZ,wCAAwC;SACzC,CAAC;QACO,IAAY,CAAA,YAAA,GAAG,mBAAmB,CAAC;QACnC,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;QACtB,IAAqB,CAAA,qBAAA,GAAQ,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,YAAY,EAAE,CAAC;QAEjD,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACjC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAED;IAEjB,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AACrD,YAAA,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACvB,gBAAA,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AAE7C,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;IAED,UAAU,CAAC,IAAS,EAAE,IAAS,EAAA;AAC7B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,OAAY,KAAK,OAAO,IAAI,IAAI,CAClC,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACnC,SAAA;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,OAAY,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CACnD,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAED,IAAA,SAAS,CAAC,IAAS,EAAA;AACjB,QAAA,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACvB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACjD,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACpD,SAAA;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAED,OAAO,GAAA;QACL,MAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChD,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;YACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAC9B,CAAC,IAAS,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAC/C,CAAC;AACF,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;;;;;;AAMH,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;IAED,cAAc,GAAA;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAS,KAC1C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAChD,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,IAAI,CAAC,WAAgB,EAAA;AACnB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACzC;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC5B;AAED,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7C;+GA7HU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,g4BChB/B,i/FAqFA,EAAA,MAAA,EAAA,CAAA,0lKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwE,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/D,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqN,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApL,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAqL,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrEa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,i/FAAA,EAAA,MAAA,EAAA,CAAA,0lKAAA,CAAA,EAAA,CAAA;0EAKjB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAIG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,0BAA0B,EAAA,CAAA;sBAAnC,MAAM;gBACE,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;AEhCR;MAMa,qBAAqB,CAAA;AAgBhC,IAAA,WAAA,GAAA;AAdS,QAAA,IAAA,CAAA,gBAAgB,GAAQ;AAC/B,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,gBAAgB,EAAE,EAAE;SACrB,CAAC;QACF,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAS,CAAA,SAAA,GAAQ,WAAW,CAAC;QAC7B,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAEhB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AACR,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;QAC1C,IAAM,CAAA,MAAA,GAAY,IAAI,CAAC;QAG9B,IAAI,CAAC,YAAY,GAAG;AAClB,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;SACF,CAAC;KACH;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,EAAE,CAAC;KACpD;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,gBAAgB,GAAGC,WAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC1D;IACD,cAAc,CAAC,IAAS,EAAE,QAAa,EAAA;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,QAAQ,CAAC;KACnD;IACD,IAAI,GAAA;QACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACvD;AACD,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC;KACjC;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;KACjC;+GA9DU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,+SClBlC,0pLAiKA,EAAA,MAAA,EAAA,CAAA,qsHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzN,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwN,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/M,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqN,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD/Ia,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,0pLAAA,EAAA,MAAA,EAAA,CAAA,qsHAAA,CAAA,EAAA,CAAA;0EAKpB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBASI,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACE,MAAM,EAAA,CAAA;sBAAd,KAAK;;;AEhCD,MAAM,KAAK,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChE,MAAM,OAAO,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACnD,MAAM,KAAK,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACjD,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC;;MCOhD,mBAAmB,CAAA;IAO9B,IAAmB,WAAW,CAAC,SAAiB,EAAA;QAC9C,IAAI,CAAC,SAAS,EAAE;YACd,SAAS,GAAG,YAAY,CAAC;AAC1B,SAAA;AACD,QAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAChB,SAAA;QACD,IAAI,CAAC,YAAY,GAAG;AAClB,YAAA,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,YAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAChB,YAAA,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;SACxC,CAAC;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;AAGD,IAAA,WAAA,GAAA;QAzBO,IAAO,CAAA,OAAA,GAAa,OAAO,CAAC;QAC5B,IAAK,CAAA,KAAA,GAAa,KAAK,CAAC;AAExB,QAAA,IAAA,CAAA,SAAS,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,aAAa,GAAG,aAAa,CAAC;QAC7B,IAAmB,CAAA,mBAAA,GAAW,EAAE,CAAC;AAkBzC,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAE,CAAC;KAExC;IAEhB,QAAQ,CAAC,KAAU,EAAE,IAAS,EAAA;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAEpD,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACxB,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAC7C,IAAI,CAAC,SAAS,EACd,YAAY,CACb,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACxB,gBAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBAC9B,MAAM;AACR,YAAA,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACxB,gBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC/B,MAAM;AACT,SAAA;KACF;IAED,aAAa,CAAC,KAAsB,EAAE,IAAY,EAAA;AAChD,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;KACF;AAED;;;;;;;;;;AAUG;IACH,yBAAyB,CACvB,aAAuB,EACvB,SAAwB,EAAA;;QAGxB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,CAAC,CAAC;;QAGnB,MAAM,WAAW,GAAG,CAAC,CAAC;QAEtB,IAAI,SAAS,KAAK,IAAI,EAAE;YACtB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;;gBAEpC,IAAI,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;gBAErC,IAAI,SAAS,GAAG,QAAQ,EAAE;;oBAExB,SAAS;AACP,wBAAA,QAAQ,IAAI,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,KAAK,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,iBAAA;;AAED,gBAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,aAAA;;AAED,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;QAED,IAAI,SAAS,KAAK,MAAM,EAAE;YACxB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;;gBAEpC,IAAI,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;gBAEzC,IAAI,SAAS,GAAG,QAAQ,EAAE;AACxB,oBAAA,SAAS,GAAG,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChE,iBAAA;;AAED,gBAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,aAAA;;AAED,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;;AAGD,QAAA,OAAO,aAAa,CAAC;KACtB;AAED,IAAA,iBAAiB,CAAC,UAA2B,EAAA;AAC3C,QAAA,MAAM,IAAI,GACR,IAAI,CAAC,YAAY,CAAC,KAAK;YACvB,GAAG;YACH,IAAI,CAAC,YAAY,CAAC,OAAO;YACzB,GAAG;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,aAAa,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,mBAAmB;AACrE,SAAA,CAAC,CAAC;KACJ;AAEO,IAAA,kBAAkB,CAAC,KAAU,EAAA;AACnC,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;KACF;AAEO,IAAA,UAAU,CAAC,IAAmB,EAAA;QACpC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACzB,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACpB,aAAA;AACF,SAAA;AAAM,aAAA;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACrB,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvB,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KACxD;AAEO,IAAA,WAAW,CAAC,IAAmB,EAAA;QACrC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACvB,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAClB,aAAA;AACF,SAAA;AAAM,aAAA;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACnB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrB,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACtD;IAEO,iBAAiB,CAAC,IAAY,EAAE,KAAiB,EAAA;QACvD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KACpC;IAEO,UAAU,GAAA;AAChB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AAC7C,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AACjD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AACnD,QAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;AACjC,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACrC,IAAI,cAAc,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;AACjC,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxB,SAAA;QAED,IAAI,eAAe,KAAK,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;AAChC,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;;AAEpB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACtB,SAAA;KACF;AAEO,IAAA,iBAAiB,CAAC,YAAoB,EAAA;QAC5C,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,KAAa,KAAI;YACnE,KAAK,GAAG,YAAY,CAAC;YACrB,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,gBAAA,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;gBAC1B,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,oBAAA,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC;AACpB,iBAAA;AACD,gBAAA,SAAS,EAAE,CAAC;AACb,aAAA;iBAAM,IAAI,KAAK,GAAG,CAAC,EAAE;AACpB,gBAAA,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;gBAC1B,IAAI,KAAK,GAAG,EAAE,EAAE;AACd,oBAAA,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;AACpB,iBAAA;AACD,gBAAA,SAAS,EAAE,CAAC;AACb,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC,CAAC;KACJ;+GA/NU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,0JCVhC,y3EA4DA,EAAA,MAAA,EAAA,CAAA,m1EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvN,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlDa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,iBAAiB,EAAA,OAAA,EAGlB,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,y3EAAA,EAAA,MAAA,EAAA,CAAA,m1EAAA,CAAA,EAAA,CAAA;0EAST,WAAW,EAAA,CAAA;sBAA7B,KAAK;uBAAC,MAAM,CAAA;;;MERF,2BAA2B,CAAA;AAgBtC,IAAA,WAAA,GAAA;QAfS,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;AACpB,QAAA,IAAA,CAAA,EAAE,GAAG,CAAC,CAAC;QACP,IAAS,CAAA,SAAA,GAAG,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,CAAC;AAClB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAEhC,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC1D,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAEpE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAG,UAAU,CAAC;QACtB,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;KACZ;AAEhB,IAAA,QAAQ,MAAW;IAEnB,eAAe,CAAC,KAAU,EAAE,UAAkB,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE;YACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAClD,OAAO;AACR,SAAA;QACD,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3C,IAAI,CAAC,eAAe,KAAK,CAAC;AAC1B,YAAA,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAChC;YACA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;AACnC,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AAC1B,SAAA;KACF;IAED,UAAU,CAAC,KAAU,EAAE,UAAe,EAAA;QACpC,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,YAAA,KAAK,KAAK,CAAC;AACX,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACjB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAClB;AACA,YAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;AACpB,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAC7C,SAAA;KACF;IAED,QAAQ,GAAA;QACN,OAAOyI,QAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACxE;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI;AACF,YAAA,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,OAAO,IAAI,CAAC,cAAc,IAAI,QAAQ,EAAE;AAC1C,gBAAA,IAAI,CAAC,cAAc,GAAGA,QAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;AAC7D,aAAA;YACD,IAAI,SAAS,GAAGA,QAAM,CACpB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;gBAC3B,GAAG;iBACF,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACpC,GAAG;AACH,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;gBACjC,GAAG;gBACH,IAAI,CAAC,QAAQ,EACf,oBAAoB,CACrB,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE;AACjC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,KAAK,CAAC;AACpB,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AAC1B,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAC3B;;YAEA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACvC,SAAA;KACF;+GAvGU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,+VCTxC,6lEAkEA,EAAA,MAAA,EAAA,CAAA,srEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzI,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2C,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9C,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6N,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDzDa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,6lEAAA,EAAA,MAAA,EAAA,CAAA,srEAAA,CAAA,EAAA,CAAA;0EAK3B,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MEZI,+BAA+B,CAAA;AAC1C,IAAA,WAAA,GAAA;QAEA,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC;QAErB,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AACV,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,CAAC;QACnB,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;QACrB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAE,CAAA,EAAA,GAAG,CAAC,CAAC;QACP,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAY,CAAA,YAAA,GAAW,CAAC,CAAC;AAGxB,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAI,YAAY,EAAE,CAAC;AACzD,QAAA,IAAA,CAAA,oBAAoB,GAAsB,IAAI,YAAY,EAAE,CAAC;KAjBvD;AAmBhB,IAAA,QAAQ,MAAW;IAEnB,aAAa,CAAC,KAAU,EAAE,UAAe,EAAA;AACvC,QAAA,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAClC;AACA,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,UAAU,KAAK,WAAW,EAAE;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;AACzC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,oBAAA,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,IAAI,CAAC,aAAa;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;KACF;IAED,kBAAkB,CAAC,KAAU,EAAE,UAAe,EAAA;AAC5C,QAAA,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAClC;AACA,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzB,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,UAAU,KAAK,aAAa,EAAE;AAChC,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;AACzC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzB,oBAAA,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,IAAI,CAAC,aAAa;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;KACF;IAED,sBAAsB,CAAC,KAAU,EAAE,UAAe,EAAA;AAChD,QAAA,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAClC;AACA,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC7B,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,UAAU,KAAK,WAAW,EAAE;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;AACzC,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC7B,oBAAA,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,IAAI,CAAC,aAAa;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;KACF;+GAtFU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,saCP5C,soFA4EA,EAAA,MAAA,EAAA,CAAA,8zFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7N,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrEa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,soFAAA,EAAA,MAAA,EAAA,CAAA,8zFAAA,CAAA,EAAA,CAAA;0EAWhC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;;;MElBI,oCAAoC,CAAA;AAO/C,IAAA,WAAA,GAAA;QALS,IAAE,CAAA,EAAA,GAAG,CAAC,CAAC,CAAC;QACR,IAAS,CAAA,SAAA,GAAkB,EAAE,CAAC;QAC9B,IAAa,CAAA,aAAA,GAAkB,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEpC;IAGjB,QAAQ,GAAA;KACP;+GAXU,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oCAAoC,2MCPjD,0gFAiCM,EAAA,MAAA,EAAA,CAAA,+9GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgH,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1BO,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBALhD,SAAS;+BACE,oCAAoC,EAAA,QAAA,EAAA,0gFAAA,EAAA,MAAA,EAAA,CAAA,+9GAAA,CAAA,EAAA,CAAA;0EAMrC,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEHI,8BAA8B,CAAA;AA2BzC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QA1BtD,IAAc,CAAA,cAAA,GAAG,UAAU,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAChB,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;QACjB,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACxE,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,IAAI,CAC/B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,QAAQ,CAC/C,CAAC;QACF,IAAwB,CAAA,wBAAA,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC;AAC7D,kBAAE,CAAC;AACH,kBAAE,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC;SACnE,CAAC;QACF,IAAsB,CAAA,sBAAA,GAAG,EAAE,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAkB,EAAE,CAAC;QAE7B,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;QACxC,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;QAC5B,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAEpB,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;AACf,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAGzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxE,QAAA,IACE,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE;AACjC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAC1D;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC;aACjC,KAAK,CAAC,GAAG,CAAC;AACV,aAAA,GAAG,CAAC,CAAC,GAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;AAC/C,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,SAAS;YACZ,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;QACjE,IAAI,CAAC,oBAAoB,GAAG,IAAI,IAAI,CAClC,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,IAAI,CACxE,CAAC;QACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;QACzE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;QACnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC;KAC9D;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC9C,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,KAAK,CAC7B,CAAC;AACH,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;QACD,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CACxB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI;AAChE,YAAA,QAAQ,CACX,CAAC;AACF,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAEyB,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AAChC,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,KAAK,CAAC;AAC3C,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;AACjC,SAAA;AAAM,aAAA;;AAEN,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE;AAChD,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAAE,KAAK,CAAC;AACtC,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAC1B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE;AAC9C,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;AACpC,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAClD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CACzB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,OAAO;YACxB,CAAC;gBACD,GAAG;AACH,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACnD,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,IAAI,CAAC,WAAW,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,MAAM,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;AACpD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,SAAS;AAC1B,YAAA,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACxE,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAClE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,cAAc,CAAC,WAAmB,EAAA;QAChC,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,QAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAElC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YAClD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;QACH,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,WAAW;AACT,gBAAA,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;AACpE,SAAA;QACD,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,WAAW;gBACT,kBAAkB;AAClB,oBAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;oBACtB,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;QACD,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,WAAW;AACT,gBAAA,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;AACxE,SAAA;QACD,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,WAAW;gBACT,QAAQ;AACR,oBAAA,IAAI,CAAC,WAAW;oBAChB,KAAK;AACL,oBAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;oBACtB,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;+GAtMU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,wMCT3C,81CAgCA,EAAA,MAAA,EAAA,CAAA,o1CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oCAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDvBa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,81CAAA,EAAA,MAAA,EAAA,CAAA,o1CAAA,CAAA,EAAA,CAAA;oGAyB9B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEzBI,+BAA+B,CAAA;AAyB1C,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAxBtD,IAAe,CAAA,eAAA,GAAG,UAAU,CAAC;AAC7B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;QAC3E,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAClB,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAClB,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACzE,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,IAAI,CAChC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,QAAQ,CAChD,CAAC;QACF,IAAyB,CAAA,yBAAA,GAAG,EAAE,CAAC;QAC/B,IAA2B,CAAA,2BAAA,GAAG,CAAC,CAAC;QAChC,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACzD,IAAuB,CAAA,uBAAA,GAAG,EAAE,CAAC;QAE7B,IAAc,CAAA,cAAA,GAAkB,EAAE,CAAC;QACnC,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;QAC/B,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;QACxC,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAC7B,IAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC;QAErB,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;AACf,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAEzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAC5D,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;AACF,QAAA,IACE,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE;AACjC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACzD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC;aAClC,KAAK,CAAC,GAAG,CAAC;AACV,aAAA,GAAG,CAAC,CAAC,GAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;AAC/C,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;QAChD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;QAC1E,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC;AAC9D,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,eAAe,EAAE;AACpD,YAAA,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;AACtC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;AACtC,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAChD,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,KAAK,CAC7B,CAAC;AACH,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;QACD,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CACxB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI;AAChE,YAAA,QAAQ,CACX,CAAC;AACF,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAEvF,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AAChC,YAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC,KAAK,CAAC;AAC5C,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE;AAChD,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,EAAE,KAAK,CAAC;AACvC,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAC1B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE;AAC9C,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;AACrC,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACtE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAC3D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAC1B,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,OAAO;AACxB,YAAA,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7D,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;AACrD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,eAAe,CACrB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CACvC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,IAAI,CAC5C,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACzE,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,uBAAuB,CAAC,YAAoB,EAAA;QAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACrD,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;QACH,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,YAAY,KAAK,CAAC,EAAE;YACtB,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;aAAM,IAAI,YAAY,KAAK,CAAC,EAAE;YAC7B,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;aAAM,IAAI,YAAY,KAAK,CAAC,EAAE;YAC7B,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;AAAM,aAAA,IAAI,YAAY,KAAK,EAAE,IAAI,YAAY,KAAK,EAAE,EAAE;YACrD,WAAW;gBACT,YAAY;oBACZ,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;aAAM,IAAI,YAAY,KAAK,EAAE,EAAE;YAC9B,WAAW;gBACT,YAAY;oBACZ,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;aAAM,IAAI,YAAY,KAAK,EAAE,EAAE;YAC9B,WAAW;gBACT,YAAY;oBACZ,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;aAAM,IAAI,YAAY,GAAG,CAAC,EAAE;YAC3B,WAAW;gBACT,YAAY;oBACZ,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;+GA7NU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,yMCT5C,21CAiCA,EAAA,MAAA,EAAA,CAAA,q1CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oCAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxBa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,21CAAA,EAAA,MAAA,EAAA,CAAA,q1CAAA,CAAA,EAAA,CAAA;oGAwB/B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEzBI,iCAAiC,CAAA;AAM5C,IAAA,WAAA,GAAA;QALS,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC,CAAC;QACnB,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QACnB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;AACT,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;KAC7B;IAEhB,QAAQ,GAAA;QACN,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B,EAAE,IAAI,CAAC,CAAC;KACV;+GAZU,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,sMCP9C,8jEA+BM,EAAA,MAAA,EAAA,CAAA,qiFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhO,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiO,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxBO,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,iCAAiC,EAAA,QAAA,EAAA,8jEAAA,EAAA,MAAA,EAAA,CAAA,qiFAAA,CAAA,EAAA,CAAA;0EAKlC,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;MEHI,iCAAiC,CAAA;AAyB5C,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAxBtD,IAAiB,CAAA,iBAAA,GAAG,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7E,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAiB,CAAA,iBAAA,GAAG,CAAC,CAAC;QACtB,IAAuB,CAAA,uBAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC3E,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,IAAI,CAClC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,GAAG,QAAQ,CAClD,CAAC;QACF,IAA2B,CAAA,2BAAA,GAAG,EAAE,CAAC;QACjC,IAA6B,CAAA,6BAAA,GAAG,CAAC,CAAC;QAClC,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAExD,IAAc,CAAA,cAAA,GAAkB,EAAE,CAAC;QACnC,IAAkB,CAAA,kBAAA,GAAW,CAAC,CAAC;QAC/B,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAC;QAEvB,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;AACf,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEnD,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;AAE9B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAC9C,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAC7D,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB;YACpB,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtE,QAAA,IACE,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE;AACjC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAC1D;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;QACxD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;AAClD,QAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,2BAA2B,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;AAC/C,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,IAAI,CACrC,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI,CACrC,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;QACtD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;QACtE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC;KACjE;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;QACD,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CACxB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI;AAChE,YAAA,QAAQ,CACX,CAAC;AACF,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAExF,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;AACpC,SAAA;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE;AAChD,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,EAAE,KAAK,CAAC;AACzC,SAAA;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAC1B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE;AAC9C,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC;AACvC,SAAA;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,aAAa,GACf,IAAI,CAAC,iBAAiB,KAAK,CAAC;cACxB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,cAAE,IAAI,CAAC,iBAAiB,KAAK,CAAC;kBAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;kBAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,QAAA,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,OAAO;AACxB,YAAA,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,aAAa,GAAG,GAAG,GAAG,GAAG,CAAC;AAClE,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,WAAW,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACvD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,iBAAiB,CACvB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAClD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAC5B,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC/D,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,cAAc,CAAC,cAAsB,EAAA;QACnC,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,cAAc,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;aAAM,IAAI,cAAc,KAAK,CAAC,EAAE;YAC/B,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;aAAM,IAAI,cAAc,KAAK,CAAC,EAAE;YAC/B,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;AAAM,aAAA,IAAI,cAAc,KAAK,EAAE,IAAI,cAAc,KAAK,EAAE,EAAE;YACzD,WAAW;gBACT,cAAc;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;aAAM,IAAI,cAAc,KAAK,EAAE,EAAE;YAChC,WAAW;gBACT,cAAc;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;aAAM,IAAI,cAAc,KAAK,EAAE,EAAE;YAChC,WAAW;gBACT,cAAc;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;aAAM,IAAI,cAAc,GAAG,CAAC,EAAE;YAC7B,WAAW;gBACT,cAAc;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;+GAjNU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,2MCT9C,w4CAiCA,EAAA,MAAA,EAAA,CAAA,u1CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,iCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxBa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,gCAAgC,EAAA,QAAA,EAAA,w4CAAA,EAAA,MAAA,EAAA,CAAA,u1CAAA,CAAA,EAAA,CAAA;oGAsBjC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEvBI,gCAAgC,CAAA;AA4B3C,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QA3BtD,IAAgB,CAAA,gBAAA,GAAG,UAAU,CAAC;AAC9B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;QAC5E,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QACnB,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;AACpB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;QAC1E,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC1E,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,IAAI,CACjC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,GAAG,QAAQ,CACjD,CAAC;QACF,IAA0B,CAAA,0BAAA,GAAG,EAAE,CAAC;QAChC,IAA4B,CAAA,4BAAA,GAAG,CAAC,CAAC;QACjC,IAAgB,CAAA,gBAAA,GAAkB,EAAE,CAAC;QACrC,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAE1B,IAAc,CAAA,cAAA,GAAkB,EAAE,CAAC;QACnC,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;QAC/B,IAAe,CAAA,eAAA,GAAkB,EAAE,CAAC;QACpC,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAC;QAChC,IAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;QAEvB,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;AACf,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEnD,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;AAE9B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAC3D,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;AACF,QAAA,IACE,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE;AACjC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACzD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC;aACnC,KAAK,CAAC,GAAG,CAAC;AACV,aAAA,GAAG,CAAC,CAAC,GAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;AACjD,QAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,IAAI,CACpC,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI,CACrC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;QACtD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;QACrE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC;KAClE;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAClD,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,KAAK,CAC7B,CAAC;AACH,SAAA;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;AACnC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;AACnC,SAAA;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE;AAChD,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,EAAE,KAAK,CAAC;AACxC,SAAA;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAC1B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE;AAC9C,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC;AACxC,SAAA;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;QACD,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CACxB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI;AAChE,YAAA,QAAQ,CACX,CAAC;AACF,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAEzF,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,oBAAoB,GAAA;QAClB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACxE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,CAAC,OAAO;AACxB,YAAA,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACnE,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,UAAU,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;QAChD,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACtD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAC3D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAC3B,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAChE,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACpE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,uBAAuB,CAAC,aAAqB,EAAA;QAC3C,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACtD,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;QACH,IAAI,aAAa,KAAK,CAAC,EAAE;YACvB,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;aAAM,IAAI,aAAa,KAAK,CAAC,EAAE;YAC9B,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;aAAM,IAAI,aAAa,KAAK,CAAC,EAAE;YAC9B,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;AAAM,aAAA,IAAI,aAAa,KAAK,EAAE,IAAI,aAAa,KAAK,EAAE,EAAE;YACvD,WAAW;gBACT,aAAa;oBACb,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;aAAM,IAAI,aAAa,KAAK,EAAE,EAAE;YAC/B,WAAW;gBACT,aAAa;oBACb,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;aAAM,IAAI,aAAa,KAAK,EAAE,EAAE;YAC/B,WAAW;gBACT,aAAa;oBACb,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;aAAM,IAAI,aAAa,GAAG,CAAC,EAAE;YAC5B,WAAW;gBACT,aAAa;oBACb,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;+GArNU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,0MCT7C,kxCA+BA,EAAA,MAAA,EAAA,CAAA,s1CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oCAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtBa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,kxCAAA,EAAA,MAAA,EAAA,CAAA,s1CAAA,CAAA,EAAA,CAAA;oGAyBhC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;ME1BI,8BAA8B,CAAA;AA2BzC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QA1BtD,IAAS,CAAA,SAAA,GAAe,EAAE,CAAC;QAC3B,IAAc,CAAA,cAAA,GAAW,UAAU,CAAC;QACpC,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAY,CAAA,YAAA,GAAW,CAAC,CAAC;QACzB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;QACxE,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACxE,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,IAAI,CAC/B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,QAAQ,CAC/C,CAAC;QACF,IAAwB,CAAA,wBAAA,GAAW,EAAE,CAAC;QACtC,IAA0B,CAAA,0BAAA,GAAW,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC9E,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAElD,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;QAC/B,IAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC;QAC9B,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;QAGrB,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;AACf,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAEzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAClD,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAC3D,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;AACF,QAAA,IACE,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE;AACjC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACzD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;AAC/C,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,SAAS;YACZ,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;QACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC;KAChE;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;QACD,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CACxB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI;AAChE,YAAA,QAAQ,CACX,CAAC;AACF,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAEvF,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;AACjC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;AACjC,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE;AAChD,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAAE,KAAK,CAAC;AACtC,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAC1B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE;AAC9C,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC;AACtC,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;;IAGD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAC3D,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CACzB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,OAAO;YACxB,CAAC;gBACD,GAAG;AACH,gBAAA,IAAI,CAAC,SAAS;gBACd,GAAG;AACH,iBAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACzB,GAAG;gBACH,IAAI,CAAC,WAAW,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,QAAQ,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;AACpD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC9D,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAClE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,uBAAuB,CAAC,WAAgB,EAAA;QACtC,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,WAAW,KAAK,CAAC,EAAE;AACrB,YAAA,WAAW,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC3C,SAAA;AAAM,aAAA;AACL,YAAA,WAAW,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC3C,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;;IAGD,oBAAoB,GAAA;QAClB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YAClD,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YACzB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YACzB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;;IAGD,oBAAoB,GAAA;QAClB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,SAAS;AACT,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,oBAAoB;AACpB,oBAAA,IAAI,CAAC,WAAW;oBAChB,YAAY;oBACZ,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,SAAS;AACT,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,oBAAoB;AACpB,oBAAA,IAAI,CAAC,WAAW;oBAChB,YAAY;oBACZ,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,SAAS;AACT,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,oBAAoB;AACpB,oBAAA,IAAI,CAAC,WAAW;oBAChB,YAAY;oBACZ,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,QAAQ;AACR,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,oBAAoB;AACpB,oBAAA,IAAI,CAAC,WAAW;oBAChB,YAAY;oBACZ,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YAClD,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,QAAQ;AACR,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,oBAAoB;AACpB,oBAAA,IAAI,CAAC,WAAW;oBAChB,YAAY;oBACZ,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YACzB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,QAAQ;AACR,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,oBAAoB;AACpB,oBAAA,IAAI,CAAC,WAAW;oBAChB,YAAY;oBACZ,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YACzB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,QAAQ;AACR,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,oBAAoB;AACpB,oBAAA,IAAI,CAAC,WAAW;oBAChB,YAAY;oBACZ,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;+GA9SU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,wMCT3C,g2CAkCA,EAAA,MAAA,EAAA,CAAA,o1CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,iCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDzBa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,g2CAAA,EAAA,MAAA,EAAA,CAAA,o1CAAA,CAAA,EAAA,CAAA;oGAyB9B,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;METI,+BAA+B,CAAA;IA+B1C,WACU,CAAA,gBAAkC,EAClC,aAA4B,EAAA;QAD5B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QA/BtC,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAClB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QACnB,IAAgB,CAAA,gBAAA,GAAQ,UAAU,CAAC;QACnC,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;AACrB,QAAA,IAAA,CAAA,UAAU,GAAsB;AAC9B,YAAA,GAAG,EAAE,EAAE;SACR,CAAC;QACF,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAC9C,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAC/C,CAAC;QAEF,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;QAC/B,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CACnD,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAC/C,CAAC;QACF,IAAO,CAAA,OAAA,GAAGzF,QAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAC7B,IAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;QAGtB,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;AAEd,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAOjD;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAC3D,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;QACF,IAAI,CAAC,YAAY,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3C,QAAA,IACE,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EACjD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;KACF;IAED,UAAU,GAAA;AACR,QAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CACtB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAClC,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAC7C,CACF,CAAC;AACF,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9D,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,CAAG,EAAA,GAAG,IAAI,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC;AAChD,QAAA,OAAO,aAAa,CAAC;KACtB;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3D,QAAA,MAAM,SAAS,GAAGA,QAAM,CACtB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,WAAW,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,WAAW,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,EAAE,UAAU,CAAE,CAAA,EACzF,oBAAoB,CACrB,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;AACvD,QAAA,IAAI,CAAC,eAAe;AAClB,YAAA,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAC5BA,QAAM,CACJ,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAClD,qBAAqB,CACtB,CAAC,IAAI,EAAE,GAAG,IAAI,CAChB,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC;QAC9D,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,cAAc,GAAA;QACZ,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,SAAA;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE;AAChD,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,EAAE,KAAK,CAAC;AACvC,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAC1B,IAAI,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE;AAC9C,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;AACrC,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC;AAC5C,QAAA,IAAI,OAAO,IAAI,CAAC,cAAc,IAAI,QAAQ,EAAE;AAC1C,YAAA,IAAI,CAAC,cAAc,GAAGA,QAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;AAC7D,SAAA;QACD,IAAI,SAAS,GAAGA,QAAM,CACpB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC3B,GAAG;aACF,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACpC,GAAG;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,GAAG;YACH,IAAI,CAAC,gBAAgB,EACvB,oBAAoB,CACrB,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,eAAe,GAAGA,QAAM,CAAC,SAAS,GAAG,IAAI,CAAC;aAC5C,MAAM,CAAC,sBAAsB,CAAC;AAC9B,aAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACpC,MAAM,OAAO,GAAGA,QAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;QAEjD,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;QACrC,IAAI,SAAS,GAAGA,QAAM,CACpB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC3B,GAAG;aACF,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACpC,GAAG;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,GAAG;YACH,IAAI,CAAC,gBAAgB,EACvB,oBAAoB,CACrB,CAAC,IAAI,EAAE,CAAC;QACT,MAAM,UAAU,GAAGA,QAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,UAAU;aAC9B,MAAM,CAAC,sBAAsB,CAAC;AAC9B,aAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,EAAE,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;AACnD,SAAA;QACD,IAAI,CAAC,YAAY,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,WAAW;YAC5B,WAAW;AACX,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;gBACxB,GAAG;gBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC1C,GAAG;AACH,gBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBAC5B,MAAM;gBACN,IAAI,CAAC,gBAAgB,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO;YACxB,CAAC;gBACD,GAAG;AACH,iBAAC,IAAI,CAAC,eAAe,KAAK,EAAE;sBACxB,IAAI,CAAC,gBAAgB;AAClB,yBAAA,cAAc,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/D,0BAAE,WAAW,EAAE;wBACjB,GAAG;yBACF,IAAI,CAAC,gBAAgB;AACnB,6BAAA,cAAc,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/D,8BAAE,QAAQ,EAAE;AACZ,4BAAA,CAAC,CAAC;wBACJ,GAAG;AACH,wBAAA,IAAI,CAAC,gBAAgB;AAClB,6BAAA,cAAc,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/D,8BAAE,OAAO,EAAE;AACf,sBAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACtD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,gBAAgB,CACtB,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAGD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,IAAI,CAAC,eAAe;YAC3B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAChC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D;+GAjOU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAsE,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA/B,+BAA+B,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EA4BT,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrD7C,kqFA8EA,EAAA,MAAA,EAAA,CAAA,ypRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhK,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8E,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgC,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiI,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAzK,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrDa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,kqFAAA,EAAA,MAAA,EAAA,CAAA,ypRAAA,CAAA,EAAA,CAAA;6HAKhB,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBAuBd,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAEP,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBA4L5D,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEtO/B,iCAAiC,CAAA;IA0D5C,IAA+B,mBAAmB,CAAC,SAAc,EAAA;QAC/D,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,EAAE,SAAS,CAAC;QACxD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,SAAS,EAAE,kBAAkB,CAAC;QAChE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC;QAChE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,SAAS,EAAE,iBAAiB,CAAC;AAC1E,QAAA,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;YAC7C,SAAS,EAAE,sBAAsB,CAAC;KACrC;IAKD,WACU,CAAA,gBAAkC,EAClC,QAAyB,EAAA;QADzB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QAvEnC,IAAU,CAAA,UAAA,GAAG,QAAQ,CAAC;AACtB,QAAA,IAAA,CAAA,gBAAgB,GAAQ;AACtB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,iBAAiB,EAAE,CAAC;SACrB,CAAC;QACF,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAY,CAAA,YAAA,GAAG,QAAQ,CAAC;QACxB,IAAc,CAAA,cAAA,GAAG,UAAU,CAAC;AAE5B,QAAA,IAAA,CAAA,aAAa,GAAG;AACd,YAAA;AACE,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,IAAI,EAAE,WAAW;AAClB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,IAAI,EAAE,UAAU;AACjB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,kBAAkB;AACxB,gBAAA,IAAI,EAAE,aAAa;AACpB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA;SACF,CAAC;QAGO,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;AAUd,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAO,CAAC;AAC5C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;KAK1C;IAEJ,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;KAClE;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC5B;AAED,IAAA,mBAAmB,CAAC,KAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;KACxC;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,gBAAgB,GAAG,QAAQ,CAC/B,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC7C,CAAC;AACF,QAAA,QAAQ,gBAAgB;AACtB,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;gBACnC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;AAC5B,gBAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBAChC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;gBACjC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;gBAClC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;gBACnC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;AAC5B,gBAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBAChC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;AAClC,gBAAA,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;gBACpE,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;AAChC,gBAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;gBACpC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;gBACjC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;AAC/B,gBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;gBACnC,MAAM;AACR,YAAA,KAAK,EAAE;AACL,gBAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;gBACnC,MAAM;AACT,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;AAED,IAAA,SAAS,CAAC,SAAc,EAAA;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,SAAS,IAAI,SAAS,EAAE;AAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc;gBACjB,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,QAAQ;sBAC9D,KAAK,GAAG,SAAS;AACnB,sBAAE,IAAI,GAAG,SAAS,CAAC;AACxB,SAAA;KACF;IAED,SAAS,GAAA;QACP,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjE,QAAQ,IAAI,CAAC,YAAY;AACvB,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,CAAC,EAAE;oBACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;oBACrE,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AAClB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,CAAC,EAAE;oBACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;oBACrE,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;AACP,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AAClB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,iBAAA;AACD,gBAAA,IACE,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE;oBACzB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpB,oBAAA,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAC3B;oBACA,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AACnB,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,CAAC,EAAE;oBACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;oBACrE,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;AACP,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AAClB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,iBAAA;AACD,gBAAA,IACE,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE;oBACzB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpB,oBAAA,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAC3B;oBACA,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AACnB,iBAAA;gBAED,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IACE,gBAAgB,CAAC,MAAM,KAAK,CAAC;AAC7B,oBAAA,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE;AAC1B,oBAAA,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAC1C;oBACA,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AACnB,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,gBAAgB,EAAE,MAAM,GAAG,CAAC,EAAE;AAChC,oBAAA,MAAM,YAAY,GAAG6E,QAAM,CACzB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,gBAAgB,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,gBAAgB,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAE,CAAA,EACvG,oBAAoB,CACrB,CAAC,IAAI,EAAE,CAAC;AACT,oBAAA,IACE,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI;AAClE,wBAAA,YAAY,EACZ;wBACA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;wBACzD,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM;AACP,qBAAA;AAAM,yBAAA;wBACL,SAAS,GAAG,KAAK,CAAC;AAClB,wBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,aAAa;AAChB,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,EAAE;oBACnC,SAAS,GAAG,KAAK,CAAC;AACnB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;gBACD,MAAM;AAER,YAAA,KAAK,QAAQ;gBACX,IACE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,qBAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE;wBACxB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpB,wBAAA,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,EAC9B;oBACA,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AACnB,iBAAA;gBACD,MAAM;AACR,YAAA;gBACE,SAAS,GAAG,KAAK,CAAC;AACrB,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,GAAA;AACF,QAAA,IAAI,iBAAiB,GAAG;AACtB,YAAA,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO;YACtC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC;AAC3D,kBAAEA,QAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAC/D,YAAY,CACb;AACH,kBAAEA,QAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;AACjC,YAAA,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU;AAC9C,YAAA,kBAAkB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM;AAC9C,YAAA,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW;AAC5C,YAAA,iBAAiB,EAAE,IAAI,CAAC,aAAa,EAAE,iBAAiB;AACxD,YAAA,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE,sBAAsB;SACnE,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC5B;+GA/RU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAyE,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,8QCV9C,04KAkEM,EAAA,MAAA,EAAA,CAAA,24FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnK,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoK,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gCAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxDO,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,gCAAgC,EAAA,QAAA,EAAA,04KAAA,EAAA,MAAA,EAAA,CAAA,24FAAA,CAAA,EAAA,CAAA;+HA6DjC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACyB,mBAAmB,EAAA,CAAA;sBAAjD,KAAK;uBAAC,kBAAkB,CAAA;gBASf,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;MExEI,iBAAiB,CAAA;AAE5B,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,OAAS,SAAS,CAAC,KAAK,CAAC,CAAC;KAC3B;+GAJU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAjB,iBAAiB,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,eAAe;AACtB,iBAAA,CAAA;;;MCEY,aAAa,CAAA;AAExB,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;QAClC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;KAC7C;+GALU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,IAAI,EAAC,KAAK;AACX,iBAAA,CAAA;;;MC4BY,qBAAqB,CAAA;AAmJhC,IAAA,WAAA,CACU,WAA2B,EAC3B,WAAwB,EACxB,YAA0B,EAC1B,QAAyB,EACzB,gBAAkC,EAClC,UAAsB,EACtB,yBAAoD,EACpD,aAA4B,EACxB,MAAuB,EAAA;QAR3B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAC3B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA2B;QACpD,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QA1JtC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;QAChC,IAAyB,CAAA,yBAAA,GAAQ,EAAE,CAAC;QACpC,IAA6B,CAAA,6BAAA,GAAQ,EAAE,CAAC;QACxC,IAAiB,CAAA,iBAAA,GAAQ,EAAE,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QACrB,IAAqB,CAAA,qBAAA,GAAQ,EAAE,CAAC;QAEhC,IAAa,CAAA,aAAA,GAAG,iBAAiB,CAAC;AAElC,QAAA,IAAA,CAAA,aAAa,GAAG;YACd,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE;YACnE,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE;SAChE,CAAC;AACF,QAAA,IAAA,CAAA,oBAAoB,GAAQ;YAC1B,IAAI;YACJ,OAAO;YACP,UAAU;YACV,UAAU;YACV,WAAW;SACZ,CAAC;QACF,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAEV,IAAI,CAAA,IAAA,GAAG,MAAM,CAAC;QACd,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAe,CAAA,eAAA,GAAG,QAAQ,CAAC;QAC3B,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;QACxB,IAAmB,CAAA,mBAAA,GAAG,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC3C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,YAAY,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QACzB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AACvB,QAAA,IAAA,CAAA,YAAY,GAAiB;AAC3B,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;SACF,CAAC;QACF,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;QAC7B,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QACrB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAG1B,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAQ;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,yBAAyB,EAAE,EAAE;AAC7B,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,gBAAgB,EAAE,EAAE;AACrB,aAAA;AACD,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,wBAAwB,EAAE,CAAC;AAC3B,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,yBAAyB,EAAE,EAAE;AAC7B,YAAA,iBAAiB,EAAE;AACjB,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,cAAc,EAAE,EAAE;AAClB,gBAAA,kBAAkB,EAAE,CAAC;AACtB,aAAA;AACD,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,4BAA4B,EAAE,IAAI;AAClC,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;QACF,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QAEnB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAClB,QAAA,IAAA,CAAA,gBAAgB,GAAG;AACjB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,sBAAsB,EAAE,CAAC;SAC1B,CAAC;QACF,IAAoB,CAAA,oBAAA,GAAG,8BAA8B,CAAC;QACtD,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;QAE/B,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;AACpB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACjD,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;AACrB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;;AAG1D,QAAA,IAAA,CAAA,aAAa,GAAQ;AACnB,YAAA,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE;AAC3C,YAAA,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE;SAC5C,CAAC;QAGF,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC;AAC3B,QAAA,IAAA,CAAA,gBAAgB,GAAQ;AACtB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;QACF,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;AAgB/B,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,iCAAiC;SAC/C,CAAC;AAEF,QAAA,IAAA,CAAA,yBAAyB,GAAiB;AACxC,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,2CAA2C;SACzD,CAAC;QAfA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;KACpD;IAgBD,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,aAAa,GAAA;QACX,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,SAAA;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAC3D,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;AAC5D,SAAA;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,cAAc,GAAA;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC;QACtD,IAAI,IAAI,CAAC,mBAAmB,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YAChE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC5B,SAAS,EAAE,IAAI,CAAC,QAAQ;gBACxB,WAAW,EAAE,IAAI,EAAE,IAAI;gBACvB,YAAY,EAAE,IAAI,EAAE,KAAK;AAC1B,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,eAAe,EAAE;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;AACpC,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACpC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,kBAAkB,EAAE;AACjD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAClC,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACpC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,8BAA8B,EAAE,CAAC;AACvC,SAAA;KACF;;IAGD,YAAY,GAAA;QACV,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,SAAS,CACxC,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,IAAI,CAAC;AAC9B,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,SAAC,CACF,CAAC;KACH;IAED,8BAA8B,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,eAAe,EAAE;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,CAAC,yBAAyB,EAAE,cAAc,EAAE,EAAE,SAAS,CAAC;AAC1D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,UAAU,EAAE;oBAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC/C,oBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;AACjE,wBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACnC,qBAAA;AAAM,yBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE;AACvC,wBAAA,IAAI,UAAU,EAAE,KAAK,KAAK,CAAC,EAAE;AAC3B,4BAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACnC,yBAAA;AAAM,6BAAA;AACL,4BAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,4BAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;AACrC,yBAAA;AACF,qBAAA;AAAM,yBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE;AACpC,wBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,wBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;AACrC,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,oBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;AACrC,iBAAA;AAED,gBAAA,IAAI,GAAG,IAAI,GAAG,EAAE,WAAW,EAAE;AAC3B,oBAAA,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,CAC3C,CAAC,OAAY,KAAK,OAAO,CAAC,UAAU,IAAI,MAAM,CAC/C,CAAC;AACF,oBAAA,MAAM,eAAe,GACnB,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACxD,oBAAA,eAAe,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;wBAC1C,IAAI,UAAU,CAAC,IAAI,IAAI,cAAc,IAAI,UAAU,CAAC,MAAM,EAAE;AAC1D,4BAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAClC,4BAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACnC,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,oBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAClC,oBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACpC,iBAAA;aACF;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,UAAU,CAAC,IAAY,EAAA;AACrB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5D,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,IAAI,KAAK,UAAU,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,wBAAwB,GAAG,CAAC,CAAC;AAC5C,SAAA;KACF;IAED,wBAAwB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAC7B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,EAAE,KAAK,EACvB,WAAW,CACZ,EAAE,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,CAAC,CAAC;YACrC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACtC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;AACzC,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;AACF,SAAA;AAAM,aAAA;YACL,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;AACzC,SAAA;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,UAAU,EAAE;YACzC,IAAI,CAAC,aAAa,GAAG;gBACnB,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE;AACnE,gBAAA;AACE,oBAAA,UAAU,EAAE,qBAAqB;AACjC,oBAAA,KAAK,EAAE,UAAU;AACjB,oBAAA,EAAE,EAAE,oBAAoB;AACzB,iBAAA;aACF,CAAC;AACH,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,aAAa,GAAG;gBACnB,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE;gBACnE,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE;aAChE,CAAC;AACH,SAAA;KACF;AACD,IAAA,cAAc,CAAC,MAAW,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,CAC9C,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,kBAAkB,EAAE;AAC1C,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAClC,gBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACpC,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,EAAE,SAAS,IAAI,UAAU,CAAC;AACvD,aAAA;YAED,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;AAC5C,YAAA,IAAI,CAAC,QAAQ,CAAC,yBAAyB,GAAG,IAAI,CAAC,OAAO,CACpD,IAAI,CAAC,yBAAyB,EAC9B,GAAG,CAAC,KAAK,EACT,SAAS,CACV,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CACrC,IAAI,CAAC,UAAU,EACf,GAAG,CAAC,KAAK,EACT,WAAW,CACZ,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CACrC,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,aAAa,EAClB,KAAK,CACN,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,yBAAyB,GAAG,GAAG,CAAC,yBAAyB,CAAC;AACxE,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAC5D,CAAC,OAAY,KAAK,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CACzD,CAAC;AACF,YAAA,IAAI,aAAa,IAAI,CAAC,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG;oBACvB,IAAI;oBACJ,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC;iBAC/D,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,GAAG,CAAC,mBAAmB,CAAC;AAC5D,aAAA;YACD,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;AAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CACxC,IAAI,CAAC,UAAU,EACf,GAAG,CAAC,gBAAgB,EACpB,WAAW,CACZ,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAC7C,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,iBAAiB,EACtB,KAAK,CACN,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,GAAG,EAAE,UAAU;kBACtC,GAAG,EAAE,UAAU;AACjB,kBAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC;AACtE,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,WAAW;AACvB,gBAAA,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AACnE,sBAAE,IAAI;sBACJ,KAAK,CAAC;AACZ,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC;AAC5D,YAAA,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,eAAe,CAAC;AAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,yBAAyB;AACrC,gBAAA,GAAG,EAAE,8BAA8B,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,iBAAiB;AAC7B,gBAAA,GAAG,EAAE,8BAA8B,CAAC,IAAI,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AACpE,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC;YAC3D,IAAI,GAAG,CAAC,yBAAyB,EAAE;gBACjC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC3C,aAAA;AACD,YAAA,IAAI,GAAG,CAAC,gBAAgB,GAAG,CAAC,EAAE;gBAC5B,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACzC,oBAAA,IAAI,OAAO,CAAC,eAAe,GAAG,CAAC,EAAE;wBAC/B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpD,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;YACD,IAAI,IAAI,CAAC,mBAAmB,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;gBAChE,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CACrC,IAAI,GAAG,CAAQ,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAC/D,CAAC;AACH,aAAA;YACD,IAAI,IAAI,CAAC,mBAAmB,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;gBAChE,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CACrC,IAAI,GAAG,CAAQ;oBACb,GAAG,IAAI,CAAC,qBAAqB;oBAC7B,GAAG,IAAI,CAAC,wBAAwB,EAAE;AACnC,iBAAA,CAAC,CACH,CAAC;AACH,aAAA;AACD,YAAA,IAAI,GAAG,EAAE,SAAS,KAAK,QAAQ,EAAE;gBAC/B,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CACrC,IAAI,GAAG,CAAQ;oBACb,GAAG,IAAI,CAAC,qBAAqB;oBAC7B,GAAG,IAAI,CAAC,wBAAwB,EAAE;AACnC,iBAAA,CAAC,CACH,CAAC;AACH,aAAA;AACD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC5C,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,4BAA4B;gBACxC,GAAG,EAAE,+BAA+B,CAAC;YACvC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAG,GAAG,EAAE,iBAAiB,CAAC;AACzD,YAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrC,SAAC,CACF,CAAC;KACH;IAED,sBAAsB,GAAA;QACpB,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC/B,YAAA,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAC9B,YAAA,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC7B,YAAA,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AACnC,YAAA,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAC9B,YAAA,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrC,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE;AAC5C,YAAA,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC;AAC1B,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC5C;AAED,IAAA,eAAe,CAAC,IAAS,EAAA;QACvB,IAAI,IAAI,KAAK,CAAC,EAAE;AACd,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;aAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACrB,YAAA,OAAO,aAAa,CAAC;AACtB,SAAA;aAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACrB,YAAA,OAAO,YAAY,CAAC;AACrB,SAAA;aAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACrB,YAAA,OAAO,QAAQ,CAAC;AACjB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;KACF;IAED,SAAS,GAAA;QACP,MAAM,OAAO,GAAU,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,WAAW;AACb,aAAA,2BAA2B,CAC1B,OAAO,EACP,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CACxC;AACA,aAAA,SAAS,CACR,CAAC,GAAG,KAAI;AACN,YAAA,IAAI,CAAC,yBAAyB,GAAG,GAAG,CAAC;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC3B,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC3B,SAAC,CACF,CAAC;KACL;IAED,eAAe,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,SAAS,CAC1C,CAAC,GAAQ,KAAI;YACX,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC;YACzD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;AAC/C,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACjC,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACjC,SAAC,CACF,CAAC;KACH;IAED,aAAa,GAAA;QACX,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAC/C,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;AAEtB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9B,SAAC,CACF,CAAC;KACH;IACD,aAAa,GAAA;QACX,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAC/C,CAAC,GAAG,KAAI;AACN,YAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;AACtB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC/B,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC/B,SAAC,CACF,CAAC;KACH;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAChD,CAAC,GAAG,KAAI;AACN,YAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;AACxB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,iBAAiB,GAAG,GAAG,EAAE,wBAAwB,EAAE,eAAe,CAAC;AACxE,YAAA,IAAI,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CACpD,CAAC,GAAQ,KAAK,GAAG,EAAE,eAAe,KAAK,KAAK,CAC7C,CAAC;YACF,IAAI,iBAAiB,EAAE,MAAM,EAAE;gBAC7B,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC;AAChE,aAAA;AACH,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC5B,SAAC,CACF,CAAC;KACH;AAED,IAAA,kBAAkB,CAAC,GAAQ,EAAA;AACzB,QAAA,IAAI,GAAG,EAAE,sBAAsB,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AACvD,SAAA;KACF;IAED,0BAA0B,GAAA;AACxB,QAAA,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,KAAK,MAAM;cAChB,IAAI,CAAC,eAAe;AACtB,gBAAA,IAAI,CAAC,kBAAkB;AACvB,gBAAA,IAAI,CAAC,YAAY;AACjB,gBAAA,IAAI,CAAC,gBAAgB;cACnB,IAAI,CAAC;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,UAAU,EAAE;AACpC,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACpC,aAAA;AACF,SAAA;AAAM,aAAA;YACL,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,0BAA0B,EAAE,CAAC;aACnC,EAAE,GAAG,CAAC,CAAC;AACT,SAAA;KACF;IAED,gBAAgB,GAAA;QACd,IAAI,GAAG,GAAQ,EAAE,CAAC;QAClB,IAAI,UAAU,GAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,qBAAqB,GAAG,SAAS,CACrC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CACxC,CAAC;QACF,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AAC1B,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3B,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AAC3B,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3B,SAAC,CAAC,CAAC;AACH,QAAA,qBAAqB,CAAC,OAAO,CAAC,CAAC,EAAO,KAAI;AACxC,YAAA,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC;YAC/C,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YACvB,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,GAAG,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;QAEH,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAClC,CAAC,IAAS,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAC7C,CAAC;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAC9D,CAAC,IAAS,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAC7C,CAAC;;QAEF,IAAI,QAAQ,GAAQ,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7C,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;AAC5B,YAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;QACH,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,MAAM,CACxC,CAAC,KAAU,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CACnD,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,kBAAkB;YAC9B,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,CACvC,CAAC,IAAS,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CACjD,CAAC;KACL;IAED,gBAAgB,CAAC,IAAS,EAAE,KAAc,EAAA;AACxC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;AACxC,QAAA,IACE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC1E;AACA,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,QAAQ,IAAI;AACV,gBAAA,KAAK,UAAU;oBACb,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,MAAM;AACR,gBAAA,KAAK,OAAO,CAAC;AACb,gBAAA,KAAK,UAAU;oBACb,IAAI,IAAI,CAAC,kBAAkB,EAAE;wBAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,qBAAA;oBACD,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,MAAM;AACR,gBAAA,KAAK,IAAI;oBACP,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,MAAM;AACT,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,MAAM,CAAC,IAAS,EAAE,KAAU,EAAE,KAAc,EAAA;AAC1C,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI;gBACP,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,SAAS,CAC/D,CAAC,EAAO,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CACrC,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;gBAC1B,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;gBACnE,MAAM;AACR,YAAA,KAAK,OAAO;gBACV,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CACnD,CAAC,KAAU,KAAK,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CACnD,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM;AACR,YAAA,KAAK,YAAY;gBACf,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CACpD,CAAC,KAAU,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CACjD,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC/C,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CACzD,CAAC,QAAa,KAAK,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CACzD,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBACrD,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,SAAS,CACpE,CAAC,QAAa,KAAK,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CACvD,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;gBAC/D,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG;AACvB,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,gBAAgB,EAAE,EAAE;iBACrB,CAAC;AACF,gBAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,EAAE,CAAC;gBACtC,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;;;gBAGlC,MAAM;AACT,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAC7B,IAAI,CAAC,yBAAyB,EAC9B,KAAK,EACL,SAAS,CACV,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEzC,QAAA,IAAI,CAAC,QAAQ,CAAC,yBAAyB,GAAG,UAAU,CAAC;QACrD,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,oBAAoB,CAAC,QAAa,EAAA;QAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAClC,MAAM,UAAU,GAAQ,EAAE,CAAC;QAC3B,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAC5D,YAAA,MAAM,GAAG,GAAG;gBACV,eAAe,EAAE,OAAO,CAAC,OAAO;AAChC,gBAAA,gBAAgB,EAAE,EAAE;aACrB,CAAC;AACF,YAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,UAAU,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,sBAAsB,CAAC,GAAQ,EAAA;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,QAAQ,CAAC;AACb,YAAA,IAAI,QAAQ,CAAC;YACb,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAClD,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAClD,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CACjC,IAAI,CAAC,UAAU,EACf,QAAQ,EACR,WAAW,CACZ,CAAC;AACF,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CACjC,IAAI,CAAC,UAAU,EACf,QAAQ,EACR,UAAU,CACX,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,cAAc,CAAC;AAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,cAAc,CAAC;AAC3C,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,cAAc,CAAC;AAC3C,SAAA;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,yBAAyB,CAAC,GAAQ,EAAA;QAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CACpC,IAAI,CAAC,aAAa,EAClB,GAAG,EACH,WAAW,CACZ,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,iBAAiB,CAAC;AACjD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,WAAW,CAAC;AAChB,YAAA,IAAI,gBAAgB,CAAC;YACrB,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACrD,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC1D,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CACpC,IAAI,CAAC,aAAa,EAClB,WAAW,EACX,WAAW,CACZ,CAAC;AACF,YAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,CACzC,IAAI,CAAC,kBAAkB,EACvB,gBAAgB,EAChB,UAAU,CACX,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,iBAAiB,CAAC;AAChD,YAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,sBAAsB,CAAC;AAC3D,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,oBAAoB,CAAC,IAAY,EAAA;AAC/B,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,GAAG,CAAC,EAAE;AAC9C,oBAAA,IAAI,CAAC,QAAQ,CAAC,wBAAwB,IAAI,CAAC,CAAC;oBAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AACtD,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,QAAQ,CAAC,wBAAwB,IAAI,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;gBACrD,MAAM;AACT,SAAA;KACF;AAED,IAAA,OAAO,CAAC,IAAY,EAAA;QAClB,IAAI,IAAI,IAAI,CAAC,EAAE;AACb,YAAA,MAAM,WAAW,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AACxC,YAAA,MAAM,CAAC,GAAW,IAAI,IAAI,CACxB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE;gBAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CACH,CAAC,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;AACvC,SAAA;KACF;AAED,IAAA,4BAA4B,CAAC,KAAa,EAAA;AACxC,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACrB,SAAA;KACF;AAED,IAAA,OAAO,CAAC,IAAW,EAAE,GAAU,EAAE,GAAW,EAAA;QAC1C,MAAM,IAAI,GAAQ,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;YAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;IAED,SAAS,CAAC,IAAW,EAAE,GAAW,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACtB,YAAA,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;AACZ,gBAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,UAAU,GAAA;QACR,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC,EAAE;AACxE,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACzC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAC9B,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EACvC,OAAO,CACR,CAAC;AACF,YAAA,IACE,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;gBACrC,SAAS;AACN,qBAAA,IAAI,EAAE;AACN,qBAAA,KAAK,CAAC,CAAC,KAAU,EAAE,KAAU,KAAK,KAAK,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EACvE;AACA,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChC,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,mBAAmB,GAAsB;AAC7C,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,OAAO,EAAE,CAAA;AACiJ,mKAAA,CAAA;AAC1J,oBAAA,MAAM,EAAE,WAAW;iBACpB,CAAC;AACF,gBAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACtD,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChC,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,KAAK,EAAE,OAAO,CAAC;gBAC5C,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,KAAK,EAAE,OAAO,CAAC;gBAC3C,MAAM;AACR,YAAA,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,KAAK,EAAE,OAAO,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,iBAAiB;gBACpB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAG,KAAK,EAAE,OAAO,CAAC;gBACjD,MAAM;AACR,YAAA,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,KAAK,EAAE,OAAO,CAAC;gBAC5C,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,KAAK,EAAE,OAAO,CAAC;gBACnC,MAAM;AACT,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClC,MAAM,EAAE,GAAG,cAAc,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;;AAEnD,QAAA,IACE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,MAAM,IAAI,CAAC;AACnD,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC;AACpC,aAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,UAAU;gBACpC,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC;AAC9C,aAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,KAAK,UAAU;AACrC,iBAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS;oBAC3C,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC,EACxD;AACA,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AAED,IAAA,UAAU,CAAC,QAAa,EAAA;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,QAAA,MAAM,OAAO,GAAQ;YACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,mBAAmB,EAAE,QAAQ,CAAC,kBAAkB;AAChD,YAAA,0BAA0B,EAAE,IAAI,CAAC,YAAY,EAAE,0BAA0B;YACzE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;AACvD,YAAA,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW;kBACtD,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC;AAClD,kBAAE,EAAE;YACN,gBAAgB,EAAE,QAAQ,CAAC,WAAW;kBAClC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;AACrD,kBAAE,EAAE;YACN,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,yBAAyB,EAAE,SAAS,CAAC;YACpE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AAC3B,YAAA,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,eAAe,EAAE,IAAI,CAAC,cAAc;AACpC,YAAA,kBAAkB,EAChB,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,GAAG,CAAC;AAChE,YAAA,gBAAgB,EACd,IAAI,CAAC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC;AAC7D,YAAA,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;AACnE,YAAA,mBAAmB,EAAE,CAAC;AACtB,YAAA,UAAU,EAAE,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC;AAC5D,YAAA,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB;AACrD,YAAA,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB;AACrD,YAAA,iBAAiB,EAAE,IAAI,CAAC,YAAY,EAAE,iBAAiB;AACvD,YAAA,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB;AACrD,YAAA,aAAa,EAAE;AACb,gBAAA,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK;AACnD,gBAAA,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,KAAK;AACvD,gBAAA,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK;AACrD,gBAAA,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK;AAC3D,aAAA;AACD,YAAA,0BAA0B,EAAE,IAAI,CAAC,YAAY,EAAE,0BAA0B;;AAEzE,YAAA,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,QAAQ;AAC9C,YAAA,UAAU,EAAE,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,GAAG,EAAE;AAClE,YAAA,8BAA8B,EAAE,IAAI,CAAC,QAAQ,EAAE,yBAAyB;AACxE,YAAA,iBAAiB,EAAE,IAAI,CAAC,QAAQ,EAAE,iBAAiB;AACnD,YAAA,UAAU,EAAE,QAAQ,EAAE,YAAY,GAAG,QAAQ,EAAE,cAAc,GAAG,CAAC;AACjE,YAAA,+BAA+B,EAC7B,QAAQ,EAAE,4BAA4B,IAAI,IAAI;AAChD,YAAA,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;AAC/B,kBAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC;AAC9D,kBAAE,EAAE;SACP,CAAC;QACF,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACtE,YAAA,OAAO,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,WAAW;kBAC/C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC;kBAClD,EAAE,CAAC;AACR,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CACzC,CAAC,GAAQ,KAAI;AACX,gBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;AACpB,gBAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC;AACtB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACtC,aAAC,EACD,CAAC,GAAG,KAAI;AACN,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,aAAC,CACF,CAAC;AACH,SAAA;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,kBAAkB,EAAE;AACjE,YAAA,IAAI,CAAC,aAAa,GAAG,CAAA,2BAAA,CAA6B,CAAC;AACnD,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CACzD,CAAC,GAAQ,KAAI;AACX,gBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;AACpB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrC,aAAC,EACD,CAAC,GAAG,KAAI;AACN,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,aAAC,CACF,CAAC;AACH,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,kBAAkB,EAAE;AAC1C,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACtB,gBAAA,GAAG,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE;AAC5C,gBAAA,OAAO,EAAE,KAAK;AACf,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG;AACd,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ;AACjC,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,yBAAyB,EAAE,EAAE;AAC7B,YAAA,yBAAyB,EAAE,EAAE;AAC7B,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,gBAAgB,EAAE,EAAE;AACrB,aAAA;AACD,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,wBAAwB,EAAE,CAAC;AAC3B,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,iBAAiB,EAAE;AACjB,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,cAAc,EAAE,EAAE;AAClB,gBAAA,kBAAkB,EAAE,CAAC;AACtB,aAAA;AACD,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,4BAA4B,EAAE,IAAI;SACnC,CAAC;AACF,QAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAC7D,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG;AACtB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,sBAAsB,EAAE,CAAC;SAC1B,CAAC;AACF,QAAA,IAAI,CAAC,oBAAoB,GAAG,8BAA8B,CAAC;QAE3D,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAED,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM;AACR,YAAA,KAAK,oBAAoB;gBACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,MAAM;AACT,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KACjE;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,IAAI,GAAW,CAAC;QAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAChD,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzC,SAAA;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;AAChD,YAAA,GAAG,IAAI,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC5C,gBAAA,GAAG,IAAI,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/C,aAAA;AAAM,iBAAA;AACL,gBAAA,GAAG,IAAI,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7C,aAAA;AACF,SAAA;QAED,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;KAElD;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,IAAI,GAAW,CAAC;QAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAChD,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzC,SAAA;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAChD,GAAG,IAAI,gBAAgB,CAAC;AACzB,SAAA;AAAM,aAAA;YACL,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC5C,GAAG,IAAI,uBAAuB,CAAC;AAChC,aAAA;AAAM,iBAAA;gBACL,GAAG,IAAI,qBAAqB,CAAC;AAC9B,aAAA;AACF,SAAA;QAED,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;KAGlD;IACD,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,MAAM,EAAE;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC;AAChC,SAAA;KACF;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,yBAAyB,IAAI,MAAM,EAAE;AACrD,YAAA,IAAI,CAAC,QAAQ,CAAC,yBAAyB,GAAG,EAAE,CAAC;AAC9C,SAAA;KACF;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAG;YAChC,SAAS,EAAE,KAAK,EAAE,SAAS;YAC3B,UAAU,EAAE,KAAK,EAAE,UAAU;YAC7B,cAAc,EAAE,KAAK,EAAE,cAAc;YACrC,kBAAkB,EAAE,KAAK,EAAE,kBAAkB;YAC7C,sBAAsB,EAAE,KAAK,EAAE,sBAAsB;YACrD,iBAAiB,EAAE,KAAK,EAAE,iBAAiB;SAC5C,CAAC;AACF,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,EAAE,WAAW,CAAC;AAC/C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,uBAAuB,CAAC,GAAQ,EAAA;QAC9B,IAAI;YACF,IAAI,GAAG,EAAE,SAAS,EAAE;gBAClB,MAAM,gBAAgB,GAAG,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnD,gBAAA,MAAM,aAAa,GACjB,GAAG,EAAE,cAAc,KAAK,UAAU,GAAG,UAAU,GAAG,GAAG,EAAE,cAAc,CAAC;AACxE,gBAAA,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACnC,oBAAA,KAAK,CAAC;AACJ,wBAAA,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;wBAC3D,MAAM;AACR,oBAAA,KAAK,CAAC;AACJ,wBAAA,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;wBAC5D,MAAM;AACR,oBAAA,KAAK,CAAC;AACJ,wBAAA,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;wBAC3D,MAAM;AACR,oBAAA,KAAK,CAAC;AACJ,wBAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;wBAC9D,MAAM;AACR,oBAAA,KAAK,CAAC;AACJ,wBAAA,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;wBAC7D,MAAM;AACR,oBAAA,KAAK,CAAC;AACJ,wBAAA;4BACE,MAAM,UAAU,GAAG,IAAI,IAAI,CACzBnG,QAAM,CACJ,gBAAgB,CAAC,CAAC,CAAC;gCACnB,GAAG;gCACH,gBAAgB,CAAC,CAAC,CAAC;gCACnB,GAAG;gCACH,gBAAgB,CAAC,CAAC,CAAC;gCACnB,WAAW,EACX,qBAAqB,CACtB,CAAC,IAAI,EAAE,GAAG,IAAI,CAChB,CAAC;;AAEF,4BAAA,IAAI,CAAC,oBAAoB;gCACvB,WAAW;oCACX,UAAU,CAAC,OAAO,EAAE;oCACpB,GAAG;AACH,oCAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oCACtC,GAAG;oCACH,UAAU,CAAC,WAAW,EAAE;oCACxB,MAAM;AACN,oCAAA,aAAa,CAAC;AACjB,yBAAA;wBACD,MAAM;AACT,iBAAA;AACF,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;;AAEV,YAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,SAAA;KACF;AAED;;;;;;AAMG;IACH,oBAAoB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC5D,QAAA;AACE,YAAA,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AAClE,gBAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,aAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,aAAa,CAAC;AAC1D,aAAA;YACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,kBAAkB,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,aAAa,CAAC;AACpE,aAAA;YACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,YAAY,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,aAAa,CAAC;AAC9D,aAAA;YACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACrC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,QAAQ;AACR,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,KAAK;wBACL,WAAW,CAAC,IAAI,EAAE;wBAClB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;AACF,SAAA;KACF;AAED;;;;AAIG;IACH,qBAAqB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC7D,QAAA;AACE,YAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;gBACpE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,aAAC,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IACL,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBACpC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACpC;AACA,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;AACF,SAAA;KACF;AAED;;;;;;;;;;;;AAYG;IACH,oBAAoB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC5D,QAAA;YACE,MAAM,YAAY,GAChB,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,eAAe;AACf,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,eAAe;AACf,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,eAAe;AACf,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACrC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,cAAc;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IACE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;oBACpC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACpC;AACA,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,cAAc;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,cAAc;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,cAAc;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;AACF,aAAA;YAED,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;;AAEvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,SAAS;AACT,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,oBAAoB;4BACpB,YAAY;4BACZ,YAAY;AACZ,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;;AAEvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,QAAQ;AACR,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,oBAAoB;4BACpB,YAAY;4BACZ,YAAY;AACZ,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;;AAEvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,SAAS;AACT,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,oBAAoB;4BACpB,YAAY;4BACZ,YAAY;AACZ,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;;AAErC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,QAAQ;AACR,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,oBAAoB;4BACpB,YAAY;4BACZ,YAAY;AACZ,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IACE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;oBACpC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACpC;AACA,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,QAAQ;AACR,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,oBAAoB;4BACpB,YAAY;4BACZ,YAAY;AACZ,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,QAAQ;AACR,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,oBAAoB;4BACpB,YAAY;4BACZ,YAAY;AACZ,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,QAAQ;AACR,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,oBAAoB;4BACpB,YAAY;4BACZ,YAAY;AACZ,4BAAA,aAAa,CAAC;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AAED;;;;;AAKG;IACH,uBAAuB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC/D,QAAA;AACE,YAAA,MAAM,SAAS,GAAG;gBAChB,+BAA+B;gBAC/B,iCAAiC;gBACjC,mCAAmC;aACpC,CAAC;YACF,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe;AACf,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe;AACf,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe;AACf,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IACL,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBACpC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACpC;AACA,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;AACF,SAAA;KACF;AAED;;;;AAIG;IACH,sBAAsB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC9D,QAAA;AACE,YAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;gBACpE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,aAAC,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IACL,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBACpC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACpC;AACA,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;AACF,SAAA;KACF;AAED;;;;;;;;;;;;;;;;;;;;AAoBG;AACH,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,IAAI,GAAG;YACT,SAAS,EAAE,KAAK,EAAE,SAAS;YAC3B,UAAU,EAAE,KAAK,EAAE,UAAU;YAC7B,cAAc,EAAE,KAAK,EAAE,cAAc;YACrC,kBAAkB,EAAE,KAAK,EAAE,kBAAkB;YAC7C,iBAAiB,EAAE,KAAK,EAAE,iBAAiB;YAC3C,sBAAsB,EAAE,KAAK,EAAE,sBAAsB;SACtD,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAC9B;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAC,KAAW,EAAA;AAC7B,QAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;YAC7D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAa,KAAI;AACpD,gBAAA,MAAM,YAAY,GAAQ;AACxB,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,OAAO,EAAE,WAAW;AACpB,oBAAA,MAAM,EAAE,SAAS;AACjB,oBAAA,SAAS,EAAE,WAAW;iBACvB,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;AACzD,gBAAA,IAAI,QAAQ,EAAE;AACZ,oBAAA,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;AACrB,oBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;AAClB,oBAAA,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;AACtB,oBAAA,GAAG,CAAC,GAAG,GAAG,QAAQ,EAAE,WAAW,EAAE,CAAC;AACnC,iBAAA;AACD,gBAAA,MAAM,GAAG,GAAG,CAAA,EAAG,GAAG,CAAC,GAAG,aAAa,CAAC;AACpC,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC5B,oBAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,MAAM,MAAM,GAAa,KAAK,CAAC,OAAO,CAAC,CAAC,EAAO,KAAK;AAClD,YAAA,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;AACjC,YAAA,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;AAChC,YAAA,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;AACjB,SAAA,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,yBAAyB;AAClC,aAAA,MAAM,CAAC,CAAC,EAAO,KAAK,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;aAC/C,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,GAAG,CAAC;aAC1B,IAAI,CAAC,GAAG,CAAC,CAAC;KACd;AAED,IAAA,kBAAkB,CAAC,KAAW,EAAA;QAC5B,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;AACzC,SAAA;QACD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,KAAK,GAAG;AACN,gBAAA,MAAM,EAAE,EAAE;gBACV,IAAI,EAAE,IAAI,CAAC,cAAc;AACzB,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,IAAI,EAAE,CAAC;aACR,CAAC;AACH,SAAA;QACD,IAAI,KAAK,EAAE,YAAY,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE,YAAY,EAAE;AACvE,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,EAAE,YAAY,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC;AACvB,gBAAA,MAAM,EAAE,EAAE;gBACV,YAAY,EAAE,IAAI,CAAC,eAAe;AACnC,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;AAC5E,QAAA,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;AACvC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU;aACxC,UAAU,CAAC,KAAK,CAAC;AACjB,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;;;;;;;;;;;AAWzB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,KAAK,CAAC;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IACD,uBAAuB,GAAA;QACrB,MAAM,QAAQ,GAAG,cAAc,CAAC;QAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC,EAAE;YACjD,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AACvD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CACzE,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,KAAK,EAAE,GAAG,CACtC,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa;AAChC,eAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC;cAClD,CAAC,CAAC;KACP;IAED,kBAAkB,CAAC,KAAU,EAAE,IAAY,EAAA;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,CAC/D,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,KAAK,EAAE,GAAG,CACtC,CAAC;KACH;IAED,qBAAqB,GAAA;QACnB,IAAI,CAAC,gBAAgB,GAAG;AACtB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;KACH;+GA3wDU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoG,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA7P,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA8P,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA9I,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA+I,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,skBClClC,w00DAioDA,EAAA,MAAA,EAAA,CAAA,kIAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/J,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4F,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApK,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqK,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7J,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8J,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,+BAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,EAAA,4BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAe,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD/lDa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,w00DAAA,EAAA,MAAA,EAAA,CAAA,kIAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;;0BAgK1B,QAAQ;4CArIF,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACI,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,2BAA2B,EAAA,CAAA;sBAApC,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACE,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;ME9DK,eAAe,CAAA;AAE1B,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAGhC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,EAAE,eAAe;AACvB,YAAA,iDAAiD,EACnD,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAED;;;;;AAKG;IACH,WAAW,CAAC,OAAY,EAAE,IAAS,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,MAAM,QAAQ,GAAG,CAAK,EAAA,EAAA,IAAI,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,QAAQ,GAAG,mBAAmB,EAC5D,OAAO,EACP,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;IAED,2BAA2B,GAAA;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,EAAE,eAAe;AACvB,YAAA,oDAAoD,EACtD;YACE,OAAO;SACR,CACF;AACA,aAAA,IAAI,CAAC5Q,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,cAAc,CAAC,KAAU,EAAE,IAAU,EAAE,SAAe,EAAA;AACpD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,WAAW,IAAI,CAAA,MAAA,EAAS,IAAI,CAAA,CAAE,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,SAAS,EAAE;AACd,SAAA;QACD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,gBAAgB;YACvB,yDAAyD;AACzD,YAAA,WAAW,EACb,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,EAAE,EACzB,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,EAAE,gBAAgB;AACxB,YAAA,yDAAyD,EAC3D,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,EAAE,EACzB,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,gBAAgB;AACvB,YAAA,0DAA0D,EAC5D,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,EAAE,EACzB,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IACD,eAAe,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;;QAEF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,EAAE,eAAe;AACvB,YAAA,sEAAsE,EACxE,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IACD,qBAAqB,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;;QAEF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,EAAE,eAAe;AACvB,YAAA,+DAA+D,EACjE,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,gBAAgB,GAAA;AACd,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAC9B,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,CAC9C,CAAC;QACF,OAAO;AACL,YAAA,cAAc,EAAE,aAAa;AAC3B,kBAAE,aAAa,EAAE,aAAa,EAAE,UAAU;oBACxC,GAAG;oBACH,aAAa,EAAE,aAAa,EAAE,QAAQ;AACxC,kBAAE,EAAE;AACN,YAAA,UAAU,EAAE,aAAa,GAAG,aAAa,EAAE,aAAa,EAAE,UAAU,GAAG,EAAE;AACzE,YAAA,QAAQ,EAAE,aAAa,GAAG,aAAa,EAAE,aAAa,EAAE,QAAQ,GAAG,EAAE;AACrE,YAAA,kBAAkB,EAAE,aAAa;AAC/B,kBAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB;AAClD,kBAAE,EAAE;SACP,CAAC;KACH;AAED,IAAA,WAAW,CAAC,OAAY,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;aAC9B,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;AACtD,aAAA,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,+CAA+C,EAC1E,OAAO,EACP,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;IAED,YAAY,CAAC,QAAa,EAAE,QAAa,EAAA;AACvC,QAAA,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC;AAC7B,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACzC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAA;QACxE,OAAO;YACL,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;YACvC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,QAAQ;AAC5C,YAAA,aAAa,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE;AAC5C,YAAA,QAAQ,EAAE;AACR,gBAAA,QAAQ,EAAE;AACR,oBAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE;AACzD,oBAAA,UAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAM,CAAC,IAAI,EAAE;AACnE,iBAAA;AACD,gBAAA,UAAU,EAAE;AACV,oBAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE;AACxD,oBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,CAAC,IAAI,EAAE;AAEnE,iBAAA;AACF,aAAA;AACD,YAAA,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,aAAa,IAAI,EAAE,GAAG,EAAE;SACvE,CAAA;KACF;AACD,IAAA,kBAAkB,CAAC,UAAe,EAAA;AAChC,QAAA,IAAI,UAAU,IAAI,UAAU,EAAE,MAAM,EAAE;AACpC,YAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;gBACjC,OAAO;AACL,oBAAA,GAAG,GAAG;AACN,oBAAA,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,MAAW,KAAK,MAAM,CAAC,EAAE,CAAC;iBAClE,CAAC;AACJ,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;AACD,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,KAAK,EAAE;YACT,OAAO;AACL,gBAAA;oBACE,GAAG,EAAE,KAAK,EAAE,GAAG;oBACf,cAAc,EAAE,KAAK,EAAE,IAAI;oBAC3B,IAAI,EAAE,KAAK,EAAE,IAAI;oBACjB,QAAQ,EAAE,KAAK,EAAE,QAAQ;0BACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC;AACvC,0BAAE,EAAE;oBACN,SAAS,EAAE,KAAK,EAAE,SAAS;0BACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC;AACxC,0BAAE,EAAE;AACP,iBAAA;aACF,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;IAED,QAAQ,CAAC,IAAS,EAAE,GAAW,EAAA;AAC7B,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE,MAAM,EAAE;YACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC;iBAChE,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,CAAC;AACzB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;AAED;;;;AAIG;AACH,IAAA,UAAU,CAAC,EAAO,EAAA;AAChB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;aAC9B,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;AACtD,aAAA,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,EAAE,eAAe;YACvB,GAAG;YACH,EAAE;AACF,YAAA,iDAAiD,EACnD,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAED;;;;;AAKG;IACH,aAAa,CAAC,OAAY,EAAE,EAAU,EAAA;AACpC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;aAC9B,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;AACtD,aAAA,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,eAAe;YACtB,yBAAyB;YACzB,EAAE;AACF,YAAA,+DAA+D,EACjE,OAAO,EACP,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAED,IAAA,eAAe,CAAC,GAAQ,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,gBAAgB;YACvB,8CAA8C,EAChD,EAAE,SAAS,EAAE,GAAG,EAAE,EAClB,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,GAAQ,EAAA;AACvB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,gBAAgB;YACvB,mDAAmD,EACrD,EAAE,SAAS,EAAE,GAAG,EAAE,EAClB,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AAED,IAAA,iBAAiB,CAAC,GAAQ,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,IAAI,CAAC,GAAG,CAAC,gBAAgB;YACvB,6CAA6C,EAC/C,EAAE,SAAS,EAAE,GAAG,EAAE,EAClB,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;+GAxTU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAMI,QAAQ;;;MCdA,YAAY,CAAA;AAIxB;;MCFY,SAAS,CAAA;AAGpB,IAAA,WAAA,GAAA;AAFiB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAO,CAAC;AACxD,QAAA,IAAA,CAAA,WAAW,GAAoB,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KACrD;AAEhB,IAAA,KAAK,CAAC,MAAY,EAAA;AAChB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACrC;AACF;;MCCY,yBAAyB,CAAA;AAgBpC,IAAA,WAAA,GAAA;QAfS,IAAW,CAAA,WAAA,GAAW,aAAa,CAAC;QACpC,IAAU,CAAA,UAAA,GAAG,QAAQ,CAAC;QACtB,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;AAmCtB,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAI,CAAC;AAC/B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAI,CAAC;KAvBL;IAEjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,GAAG,MAAK;YACzB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAC3D,SAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AACZ,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAC9B,SAAA;KACF;IAGD,WAAW,GAAA;AACT,QAAA,OAAO,qCAAqC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAA;AACvE,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACrE,YAAA,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxB,SAAC,CAAC,CAAC;KACJ;IAGD,QAAQ,GAAA;AACN,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;QAEtD,IAAI,CAAC,KAAK,MAAM,EAAE;YAChB,MAAM,CAAC,GAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/C,YAAA,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;AAClB,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAClB;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtD,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,UAAU,CAAC,CAAC,GAAO,KAAI;AAErB,gBAAA,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;aACjB,EAAE,GAAG,CAAC,CAAC;AACT,SAAA;KAGF;AAED,IAAA,gBAAgB,CAAC,QAAiC,EAAA;AAChD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,iBAAiB,MAAM;AAEvB,IAAA,IAAI,CAAC,CAAO,EAAA;AACV,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACnD,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;KAEtB;IACD,UAAU,GAAA;QACR,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1C,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;KACxB;IACD,YAAY,GAAA;QACV,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1C,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B;IACD,eAAe,GAAA;QACb,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1C,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;KAClC;IACD,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,YAAY,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;KACpE;IACD,aAAa,GAAA;AACX,QAAA,MAAM,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE,CAAC;QACzC,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAChD;IACD,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,SAAA;KACF;AAED,IAAA,OAAO,CAAC,KAAqB,EAAA;QAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/D,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/C,QAAA,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC;KAC3B;+GArHU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAJzB,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA;YACT,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,yBAAyB,EAAE,KAAK,EAAE,IAAI,EAAE;AACpF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTH,y8CAmB6F,EAAA,MAAA,EAAA,CAAA,opFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDRhF,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAGvB,SAAA,EAAA;wBACT,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,2BAA2B,EAAE,KAAK,EAAE,IAAI,EAAE;AACpF,qBAAA,EAAA,QAAA,EAAA,y8CAAA,EAAA,MAAA,EAAA,CAAA,opFAAA,CAAA,EAAA,CAAA;0EAGQ,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,EAAE,EAAA,CAAA;sBAAV,KAAK;;;MEJK,uBAAuB,CAAA;IAGlC,WAAoB,CAAA,MAAoB,EAAU,SAAmB,EAAA;QAAjD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;QAAU,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;AAIrE,QAAA,IAAA,CAAA,WAAW,GAAQ,EAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAC,CAAC;AAyDtE,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,iBAAiB;SAC/B,CAAC;QA/DA,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;KAC5B;IAKD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AACnE,QAAA,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;AAChF,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;QAC7D,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAC,EAAE,CAAC;AAC3H,QAAA,IAAI,CAAC,WAAW,CAAC,eAAe,GAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAE,IAAI,CAAC,WAAW,CAAC,eAAe,GAAC,EAAE,CAAC;QAEjJ,IAAI,CAAC,EAAE,CAAC,kBAAkB,GAAG,EAAC,GAAG,IAAI,CAAC,WAAW,EAAC,CAAC;QACnD,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAG;AAEtG,YAAA,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC;AAChC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,IAAI,CAAC;AACjC,YAAA,IAAI,CAAC,EAAE,CAAC,eAAe,GAAG,KAAK,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC9B;AAED,IAAA,cAAc,CAAC,CAAK,EAAA;QAClB,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;KAC3C;;IAED,uBAAuB,GAAA;QACrB,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,WAAe,KAAI;YAC5D,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK,WAAW,CAAC,UAAU,EAAE;gBAC1D,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;gBACjD,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;gBAC/D,WAAW,GAAG,IAAI,CAAC;AACpB,aAAA;AACH,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAC,GAAG,IAAI,CAAC,WAAW,EAAC,CAAC,CAAC;AAC/D,SAAA;KAEF;IAED,iBAAiB,GAAA;;AAEf,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,WAAW,CAAA;AAChE,QAAA,IAAI,CAAC,EAAE,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC;QAC3E,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KAChC;+GA/DU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAsQ,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,4DCZpC,0sFAgCM,EAAA,MAAA,EAAA,CAAA,g1JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApM,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4M,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDpBO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,0sFAAA,EAAA,MAAA,EAAA,CAAA,g1JAAA,CAAA,EAAA,CAAA;;;MEDrB,qBAAqB,CAAA;AAEhC,IAAA,WAAA,GAAA,GAAiB;AAEjB,IAAA,iBAAiB,CAAC,SAAa,EAAA;QAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,qBAAqB,GAAG,CAAC,iBAAiB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1E,MAAM,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAY,KAAI;YAClE,OAAO,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1D,SAAC,CAAC,CAAC;AAED,QAAA,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAW,KAAI;AACvC,YAAA,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC;AACxD,gBAAA,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAK,KAAK,CAAC,CAAC,KAAK,KAAK,SAAS,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC,CAAC;gBACvG,IAAI,SAAS,GAAG,GAAG,CAAC;AACpB,gBAAA,IAAI,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAC;AACxC,oBAAA,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AACnF,iBAAA;gBACD,KAAK,GAAG,CAAC,SAAS,GAAG,GAAG,IAAI,KAAK,CAAC;AAClC,gBAAA,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEnC,aAAA;iBACI,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC;gBAC3C,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAU,KAAI;AACrC,oBAAA,MAAM,CAAC,KAAK,KAAK,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AAC7D,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAC;AACnB,wBAAA,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;AACvC,qBAAA;AACJ,iBAAC,CAAC,CAAC;gBACH,IAAI,SAAS,GAAG,GAAG,CAAC;AACpB,gBAAA,IAAI,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAC;AACxC,oBAAA,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AACnF,iBAAA;gBACD,UAAU,GAAG,CAAC,SAAS,GAAG,GAAG,IAAI,UAAU,CAAC;AAC5C,gBAAA,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElC,aAAA;AAED,SAAC,CAAC,CAAC;AAED,QAAA,OAAO,QAAQ,CAAC;KACnB;+GA1CY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCEY,yBAAyB,CAAA;IAGpC,IAAsB,WAAW,CAAC,KAAS,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAE;AACjC,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAE;KACtC;AAID,IAAA,WAAA,GAAA;AAFU,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAO,CAAC;AAC/B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;QAqB9C,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;KApBP;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,iBAAiB,CAAC,IAAQ,EAAA;QACxB,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,EAAC;AACxD,YAAA,IAAI,CAAC,OAAO,CAAC,YAAY,GAAI,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;AAC5D,SAAA;aAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,EAAE;AAC/D,YAAA,IAAI,CAAC,OAAO,CAAC,YAAY,GAAI,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;AAC5D,SAAA;KACF;AACD,IAAA,uBAAuB,CAAC,IAAQ,EAAA;QAC9B,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,EAAC;AACzD,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAI,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;AAC9D,SAAA;aAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,EAAE;AACjE,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAI,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;AAC9D,SAAA;KACF;AAGD,IAAA,eAAe,CAAC,GAAQ,EAAA;AAEvB,QAAA,IAAI,CAAC,eAAe,GAAI,CAAC,IAAI,CAAC,eAAe,CAAC;KAC9C;IACD,WAAW,GAAA;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAC9B;IACD,MAAM,GAAA;QACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAC9B;+GA1CU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,qKCRtC,+vLA8DA,EAAA,MAAA,EAAA,CAAA,8waAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxQ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiO,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArH,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhD,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtDa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,+vLAAA,EAAA,MAAA,EAAA,CAAA,8waAAA,CAAA,EAAA,CAAA;0EAOX,WAAW,EAAA,CAAA;sBAAhC,KAAK;uBAAC,SAAS,CAAA;gBAKN,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;METI,wBAAwB,CAAA;AAmBnC,IAAA,WAAA,GAAA;QAjBA,IAAa,CAAA,aAAA,GAAG,SAAS,CAAC;AAGhB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAO,CAAC;AAC/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;QACxC,IAAiB,CAAA,iBAAA,GAAQ,EAAE,CAAC;AAG5B,QAAA,IAAA,CAAA,QAAQ,GAAQ;AACvB,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,KAAK,EAAE,SAAS;SACjB,CAAC;QACF,IAAY,CAAA,YAAA,GAAO,EAAE,CAAA;AAgFrB,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,oCAAoC;SAClD,CAAC;KAlFe;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;;KAItC;AAED,IAAA,WAAW,CAAC,IAAQ,EAAA;QAClB,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;AACvD,SAAA;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE;AACvB,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE;AAC/B,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;AACvD,aAAA;AACF,SAAA;KACF;AAED,IAAA,SAAS,CAAC,IAAQ,EAAA;QAChB,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;AACnD,SAAA;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE;AACvB,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;AACnD,aAAA;AACF,SAAA;KACF;IACD,WAAW,GAAA;AAET,QAAA,IAAG,IAAI,CAAC,eAAe,EAAE,EAAC;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,GAAG,IAAI,CAAC,QAAQ,EAAC,CAAC,CAAC;AACpC,SAAA;KAEF;IACD,WAAW,GAAA;;KAEV;IAGD,eAAe,GAAA;AACb,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACxC,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACpC,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;AACtB,QAAA,IAAI,MAAM,CAAA;QACV,IAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAK,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAC;AACvD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,eAAe,EAAC,OAAO,EAAC,8CAA8C,EAAC,CAAC,CAAA;AACrG,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,IAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAC;AAC/C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,cAAc,EAAC,OAAO,EAAC,uCAAuC,EAAC,CAAC,CAAA;AAC7F,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;aAAM,IAAG,SAAS,IAAI,OAAO,EAAC;AAE7B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,eAAe,EAAC,OAAO,EAAC,8CAA8C,EAAC,CAAC,CAAA;AACrG,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA,IAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAW,KAAI;AACnD,gBAAA,IAAG,IAAI,CAAC,IAAI,KAAK,MAAM,EAAC;oBACtB,IAAG,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAC;AACjC,wBAAA,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAE,EAAC;AACvJ,qBAAA;AAAI,yBAAA;AAAC,wBAAA,OAAO,KAAK,CAAC;AAAC,qBAAA;AAErB,iBAAA;AAAI,qBAAA;AACH,oBAAA,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAE,EAAC;AACvJ,iBAAA;AAEH,aAAC,CAAC,CAAA;AACH,SAAA;AAAI,aAAA;AACH,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QACC,IAAG,MAAM,KAAK,IAAI,EAAC;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,eAAe,EAAC,OAAO,EAAC,kEAAkE,EAAC,CAAC,CAAA;AACzH,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;+GAhGQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,8PCRrC,g+GAyCM,EAAA,MAAA,EAAA,CAAA,y7HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5D,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjCO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,g+GAAA,EAAA,MAAA,EAAA,CAAA,y7HAAA,CAAA,EAAA,CAAA;0EAOxB,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACI,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACE,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEPK,+BAA+B,CAAA;AAY1C,IAAA,WAAW,MAAI;AACf,IAAA,iBAAiB,MAAI;AACrB,IAAA,gBAAgB,MAAI;IAGpB,IAAsB,WAAW,CAAC,KAAS,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAE;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAE;KACtC;IAGD,WAAoB,CAAA,EAAc,EAAU,eAAsC,EAAA;QAA9D,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAAU,IAAe,CAAA,eAAA,GAAf,eAAe,CAAuB;;;;AAjBlF,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,oCAAoC;SAClD,CAAC;AAYQ,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAO,CAAC;QAGzC,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;AAK5B,QAAA,IAAA,CAAA,eAAe,GAAQ;YACrB,EAAE,EAAE,MAAM,EAAE;AACZ,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,KAAK,EAAE,SAAS;SACjB,CAAC;AAGQ,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAO,CAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;QAG9C,IAAc,CAAA,cAAA,GAAG,EAChB,CAAC;QAEF,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAU,CAAA,UAAA,GAAO,EAAE,CAAC;KAzBmE;IA0BvF,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;KAC3E;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,eAAe,GAAG;AACrB,YAAA,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;AACd,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,QAAQ;AACtB,YAAA,KAAK,EAAE,SAAS;SACjB,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IACD,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAE,mBAAmB,GAAG,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;KACtB;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAClE,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,QAAA,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AAClB,QAAA,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;AAC7C,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;KAC7B;AACD,IAAA,eAAe,CAAC,KAAS,EAAE,OAAW,EAAE,CAAK,EAAA;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;AAC/B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC7G,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,QAAA,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AAClB,QAAA,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;KAC7B;AACD,IAAA,YAAY,CAAC,GAAO,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7C,SAAA;AACI,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACrD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAK,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AAChD,SAAA;KACF;AAED,IAAA,aAAa,CAAC,KAAS,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACpD;IACD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,yCAAyC,EAAC,CAAC,CAAC;AACzG,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAC;AACxD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,iCAAiC,EAAC,CAAC,CAAC;AAC7F,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QACC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAGhC;AACD,IAAA,WAAW,CAAC,KAAS,EAAA;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;KAClC;IACD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAC9B;IACD,MAAM,GAAA;QACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAExC;+GAjJU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAsM,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,2ZCX5C,+uMA+DM,EAAA,MAAA,EAAA,CAAA,+8WAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvQ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyK,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDpDO,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,+uMAAA,EAAA,MAAA,EAAA,CAAA,+8WAAA,CAAA,EAAA,CAAA;kIAqBlB,WAAW,EAAA,CAAA;sBAAhC,KAAK;uBAAC,SAAS,CAAA;gBAIN,IAAI,EAAA,CAAA;sBAAb,MAAM;gBAiBc,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;gBACM,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBACb,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACE,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;;;MExCK,2BAA2B,CAAA;AAiDtC,IAAA,iBAAiB,MAAI;AACrB,IAAA,gBAAgB,MAAI;AACpB,IAAA,WAAW,MAAI;AACf,IAAA,YAAY,MAAI;AAChB,IAAA,SAAS,MAAI;AACb,IAAA,aAAa,MAAI;AASjB,IAAA,WAAA,CAAmB,MAAoB,EAAS,MAAiB,EAAS,eAAsC,EAAS,QAAwB,EAAA;QAA9H,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;QAAS,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAS,IAAe,CAAA,eAAA,GAAf,eAAe,CAAuB;QAAS,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAgB;AAPjJ,QAAA,IAAA,CAAA,WAAW,GAAiB;AACxB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,oCAAoC;SAClD,CAAC;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAO,CAAC;QAC3C,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAGrB,QAAA,IAAA,CAAA,YAAY,GAAG;AACb,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,qBAAqB,EAAE,QAAQ;AAC/B,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,gBAAgB,EAAE,KAAK;SACxB,CAAC;QAEF,IAAiB,CAAA,iBAAA,GAAG,MAAM,CAAC;KAT2H;IAUtJ,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B,EAAE,IAAI,CAAC,CAAC;QAET,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;KACnD;AACD,IAAA,UAAU,CAAC,GAAQ,EAAA;AAEjB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAEvB;AAGD,IAAA,iBAAiB,CAAC,IAAQ,EAAA;QACxB,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,CAAC,EAAC;AAC7D,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,GAAI,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC;AACtE,SAAA;aAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,CAAC,EAAE;AACrE,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,GAAI,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC;AACtE,SAAA;KACF;AACD,IAAA,uBAAuB,CAAC,IAAQ,EAAA;QAC9B,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,CAAC,EAAC;AAC9D,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,GAAI,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,CAAC,CAAC;AACxE,SAAA;aAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,CAAC,EAAE;AACtE,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,GAAI,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,CAAC,CAAC;AACxE,SAAA;KACF;AAED,IAAA,aAAa,CAAC,GAAO,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAChB,YAAA,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,IAAI,CAAC,YAAY;AACxB,SAAA,CAAC,CAAC;KACJ;IAED,aAAa,CAAC,IAAQ,EAAC,KAAS,EAAA;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAG,IAAI,KAAK,YAAY,EAAC;YACtB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAA;AAC5D,SAAA;KACF;IAED,kBAAkB,CAAC,CAAK,EAAE,IAAQ,EAAA;QAChC,IAAI,IAAI,KAAK,WAAW,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,iBAAiB,GAAG,CAAC,CAAC;AACpD,SAAA;QACD,IAAI,IAAI,KAAK,kBAAkB,EAAE;YAC/B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC/D,SAAA;KAEF;IAED,IAAI,CAAC,GAAO,EAAE,KAAS,EAAA;QACrB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AAIhD,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC;AACrE,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;AACtE,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;AACxE,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,GAAG,GAAG,CAAC,qBAAqB,CAAC;AACxF,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;YAC9E,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AAChD,YAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;YAEhC,MAAM,2BAA2B,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;AAChF,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAY,KAAI;gBAC7D,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;gBACzD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;gBAC3D,IAAI,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACvD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAW,KAAI;AACvC,wBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACrB,4BAAA,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC;AAClC,yBAAA;AACD,wBAAA,IAAG,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,qBAAqB,KAAK,QAAQ,IAAI,GAAG,CAAC,qBAAqB,KAAK,gBAAgB,CAAC,EAAC;AAChH,4BAAA,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC;AACnC,yBAAA;wBACD,IAAI,GAAG,CAAC,gBAAgB,EAAE;4BACxB,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE;AAC3D,gCAAA,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;AAC1B,6BAAA;AACF,yBAAA;AAAI,6BAAA;AACH,4BAAA,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;AAC1B,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;gBACD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAClI,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAA;AAChE,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;;;;;;;;;;AAU7B,SAAA;AACD,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE;AAGnC,YAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,GAAG,CAAC,SAAS,EAAE;AACjB,gBAAA,GAAG,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,GAAG,GAAG,CAAC,WAAW,CAAC;gBAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAA;AAChE,gBAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC7B,aAAA;AACF,SAAA;KACF;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,iBAAiB,GAAC,EAAE,CAAA;KAC1B;+GAjMU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA3K,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,8FCdxC,muTAoHM,EAAA,MAAA,EAAA,CAAA,+0WAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2K,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA7K,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtGO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,muTAAA,EAAA,MAAA,EAAA,CAAA,+0WAAA,CAAA,EAAA,CAAA;iLAgEzB,MAAM,EAAA,CAAA;sBAAf,MAAM;;;AEpET;MAIa,aAAa,CAAA;IAExB,WAAoB,CAAA,IAAgB,EAAa,MAAuB,EAAA;QAApD,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAKpC,QAAA,IAAA,CAAA,kBAAkB,GAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;QAC/E,IAAqB,CAAA,qBAAA,GAAG,WAAW,CAAC;AAC7B,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;QACzD,IAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC;QAC9B,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QAC1B,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;QACzB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAA,CAAA,KAAK,GAAG;AACb,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,aAAa,EAAE,CAAC;SACjB,CAAA;QACM,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,CAAC;AAEvB,QAAA,IAAA,CAAA,QAAQ,GAAQ;AACrB,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,qBAAqB,EAAE,QAAQ;AAC/B,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,eAAe,EAAE,KAAK;SACvB,CAAA;AAED,QAAA,IAAA,CAAA,SAAS,GAAQ;AACf,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,qBAAqB,EAAE,IAAI;AAC3B,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,sBAAsB,EAAE,IAAI;AAC5B,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,iBAAiB,EAAE,EAAE;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,eAAe,EAAE,IAAI,CAAC,8BAA8B,EAAE;SACvD,CAAC;AAmjBF,QAAA,IAAA,CAAA,WAAW,GAAG;AACZ,YAAA,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;SACtG,CAAC;AAtmBA,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;IAgDD,8BAA8B,GAAA;QAC5B,OAAO;AACL,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,QAAQ,EAAE,EAET;SACF,CAAA;KACF;IAED,aAAa,CAAC,QAAa,EAAE,WAAgB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,WAAW,EAAE,QAAQ,CAAC,CAAC;;KAEjF;IAED,WAAW,CAAC,GAAQ,EAAE,KAAc,EAAA;AAClC,QAAA,QAAQ,GAAG,CAAC,IAAI,EAAE;YAChB,KAAK,SAAS,EAAE;AACd,gBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;AAC5B,gBAAA,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC;AACtC,gBAAA,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;gBACjC,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;AAC5B,gBAAA,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC;gBACvC,MAAM;AACP,aAAA;YACD,KAAK,iBAAiB,EAAE;gBACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACjC,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;gBACf,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,aAAa,EAAE;gBAClB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM;AACP,aAAA;YACD,KAAK,gBAAgB,EAAE;gBACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM;AACP,aAAA;YACD,KAAK,aAAa,EAAE;gBAClB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM;AACP,aAAA;YACD,KAAK,iBAAiB,EAAE;gBACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACjC,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;gBACf,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,QAAQ,EAAE;gBACb,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACzB,MAAM;AACP,aAAA;YACD,KAAK,cAAc,EAAE;gBACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;gBAC7B,MAAM;AACP,aAAA;YACD,KAAK,kBAAkB,EAAE;gBACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM;AACP,aAAA;YACD,KAAK,WAAW,EAAE;gBAChB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,aAAa,EAAE;gBAClB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM;AACP,aAAA;YACD,KAAK,SAAS,EAAE;gBACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM;AACP,aAAA;YACD,KAAK,aAAa,EAAE;gBAClB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM;AACP,aAAA;AACF,SAAA;KACF;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACrE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;AACpC,SAAA;KACF;AAED;;AAEG;IACH,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,KAAK,EAAE,EAAE;AACpF,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC7B,SAAA;KACF;AACD;;;AAGG;AACH,IAAA,oBAAoB,CAAC,KAAW,EAAA;AAE9B,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAA,CAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YACnJ,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACtG,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE;AACtH,gBAAA;AACE,oBAAA,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK;oBAC3E,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;AACrG,iBAAA;AAAC,aAAA;SACL,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,cAAc,CAAC,KAAW,EAAA;AAExB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YAC5I,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AACtG,YAAA,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;YACxF,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAC9H,CAAC;AACC,oBAAA,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK;oBAC3E,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;AACrG,iBAAA;AACA,aAAA;SACJ,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;;AAIG;AACH,IAAA,gBAAgB,CAAC,KAAW,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK;YAChH,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;AACtH,YAAA,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ;AACxH,YAAA,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU;AACnG,YAAA,cAAc,EAAE,mBAAmB;AACnC,YAAA,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,EAAE;AACnD,YAAA,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;gBACjH,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;AAClH,aAAA;SACF,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,mBAAmB,CAAC,KAAW,EAAA;AAC7B,QAAA,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB;AAC9D,YAAA,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;YAC7G,kBAAkB,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AAC5G,YAAA,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;AACxF,YAAA,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE;YACvH,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;SAC5G,CAAC;QAEF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,KAAW,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB;YAC3D,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AACtG,YAAA,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK;AAC1G,YAAA,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;AAC3G,YAAA,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE;gBAC1E,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;AAChH,aAAA;SACF,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KAErB;AAED;;;AAGG;AACH,IAAA,oBAAoB,CAAC,KAAW,EAAA;AAC9B,QAAA,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;YAC7H,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AACtG,YAAA,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;AACxF,YAAA,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE;YACvH,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAC5G,YAAA,OAAO,EAAE,CAAC;oBACR,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;oBACxG,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAC7G,iBAAA;AACA,aAAA;SACF,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,cAAc,CAAC,KAAW,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YAC5I,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AACtG,YAAA,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;AACxF,YAAA,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE;AACvH,YAAA,OAAO,EAAE;AACP,gBAAA;oBACE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;AAC7F,oBAAA,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;AACnF,iBAAA;AACF,aAAA;SACF,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,YAAY,CAAC,KAAW,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB;YACtD,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AACtG,YAAA,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;AACxF,YAAA,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE;YACvH,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;YAC5G,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG;AAChG,YAAA,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;SACrF,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,iBAAiB,CAAC,KAAW,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB;YAC5D,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AACtG,YAAA,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE;AAC7E,YAAA,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;AACvE,YAAA,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE;YACvH,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAC5G,YAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;SACxH,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,aAAa,CAAC,KAAW,EAAA;AACvB,QAAA,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB;YACvD,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AACtG,YAAA,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;AAC/F,YAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;AACtF,YAAA,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE;gBAC1E,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;AAClG,aAAA;SACF,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,qBAAqB,CAAC,KAAW,EAAA;AAC/B,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE;AAClC,YAAA,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YAClG,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK;AAC/G,YAAA,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;AACxG,YAAA,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE;gBAC1E,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;AAClG,aAAA;SACF,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,cAAc,CAAC,KAAW,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB;YACzD,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AACtG,YAAA,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;AAC/F,YAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK;YAClH,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE;AAC9G,YAAA,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;AAElG,aAAA;YACD,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,KAAW,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB;YAC3D,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YAC5G,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;AAC1H,YAAA,oBAAoB,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;AAC/H,YAAA,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE;gBAC5B,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;AAAC,aAAA;AACpG,YAAA,gBAAgB,EAAE;AAChB,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,GAAG,EAAE,IAAI;AACV,aAAA;SACF,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,iBAAiB,CAAC,KAAW,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB;YAC5D,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AACtG,YAAA,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;AACxF,YAAA,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;AAClG,YAAA,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE;gBAC5B,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;AAEhH,aAAA;SACF,CAAC;QACF,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAGD;;;AAGC;AACD,IAAA,iCAAiC,CAAC,OAAY,EAAA;AAE5C,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1E,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,kCAAkC,EAAE,CAAC;KAC3C;AAED;;;;AAIG;IACH,+BAA+B,CAAC,OAAY,EAAE,KAAU,EAAA;QAEtD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;KAC1C;AACD;;AAEI;IACJ,kCAAkC,GAAA;QAChC,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE;AAChD,YAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC1C,CAAC,OAAY,EAAE,cAAmB,MAAM,CAAC,KAAK,cAAc,CAAC,IAAI,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACtG,SAAA;QACD,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;;;;KAMnE;AACD;;AAEA;IACA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAI;AAC9C,YAAA,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB,SAAC,CAAC,CAAC;KACJ;AACD;;;AAGG;AACH,IAAA,oBAAoB,CAAC,aAAkB,EAAA;AACrC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AACtE,QAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAG,EAAA,IAAI,CAAC,qBAAqB,CAAG,EAAA,aAAa,CAAE,CAAA,CAAC,EAAE;YAC3E,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,MAAM,IAAI,GAAG,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;AACpD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;IACD,mBAAmB,GAAA;;AAEjB,QAAA,OAAO,SAAS,CAAA;KACjB;AAED;;;AAGC;AACD,IAAA,iBAAiB,CAAC,KAAW,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;AACD;;;AAGC;AACD,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,YAAY,CAAC,UAAU,EAAE;YAC3B,OAAO,YAAY,CAAC,UAAU,CAAC;AAChC,SAAA;AACD,QAAA,YAAY,CAAC,eAAe,GAAG,EAAE,CAAC;QAClC,MAAM,aAAa,GAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAC/C,YAAA,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;KAC5D;AACD;;;;AAIG;IACH,gBAAgB,CAAC,aAAkB,EAAE,YAAiB,EAAA;QACpD,IAAI,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC7C,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvD,YAAA,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;YACjI,YAAY,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACpD,SAAA;KACF;AACD;;;AAGC;AACD,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC1C;AACD;;;AAGC;AACD,IAAA,gCAAgC,CAAC,KAAU,EAAA;QACzC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,eAAoB,KAAI;AACvD,YAAA,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,gBAAA,eAAe,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,KAAU,KAClF,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/D,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AACD;;AAEA;IACA,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,EAAE;;YAElE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC3C,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC5C,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;QACnC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;KACpC;AACD;;AAEE;IACF,aAAa,GAAA;QACX,MAAM,UAAU,GAAQ,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACxC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAC/C,gBAAA,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,OAAO,EAAE,IAAI,CAAC;gBACnD,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC9D,iBAAA;AACH,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1C,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;KACF;AAMD,IAAA,mBAAmB,CAAC,EAAU,EAAA;;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,6CAA6C,GAAG,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnH;IAED,cAAc,CAAC,EAAO,EAAE,OAAY,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,uBAAuB,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;;KAEvF;IAED,qBAAqB,GAAA;QACnB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAClD,QAAA,IAAI,WAAW,CAAC;QAChB,KAAK,KAAK,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,WAAW,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,WAAW,CAAC,KAAK,CAAC;KAC1B;AAED;;;AAGE;AACF,IAAA,OAAO,CAAC,CAAS,EAAA;QACf,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;KAC3C;AACD;;;;AAIG;IACH,YAAY,CAAC,QAAa,EAAE,IAAS,EAAA;QACnC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;KAC1D;+GA5oBU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA1G,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGuC,QAAQ;;;MCHnC,eAAe,CAAA;IAE1B,WAAoB,CAAA,MAAiB,EAAS,YAA0B,EAAA;QAApD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAS,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QADxE,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;KAC6D;AAE7E,IAAA,QAAQ,MAAY;AACpB,IAAA,MAAM,CAAC,UAAmB,EAAA;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB,EAAE,IAAI,CAAC,CAAC;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAC/B;+GAXU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwR,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,kDCT5B,yzCAyBA,EAAA,MAAA,EAAA,CAAA,0vEAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,yzCAAA,EAAA,MAAA,EAAA,CAAA,0vEAAA,CAAA,EAAA,CAAA;;;MEKX,eAAe,CAAA;;;;;;IAQ1B,WAAoB,CAAA,MAAiB,EAAQ,YAAyB,EAAA;QAAlD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAQ,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QAPtE,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAA;KAM6D;AAE1E,IAAA,QAAQ,MAAY;AAEpB,IAAA,QAAQ,CAAC,UAAmB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB,EAAE,IAAI,CAAC,CAAC;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAC/B;+GAlBU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,kDCV5B,4lCAiBA,EAAA,MAAA,EAAA,CAAA,0vEAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDPa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,4lCAAA,EAAA,MAAA,EAAA,CAAA,0vEAAA,CAAA,EAAA,CAAA;;;MEDX,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAAmB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;KAAI;+GAD9C,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;;;MCQY,eAAe,CAAA;IAc1B,WACU,CAAA,EAAqB,EACrB,SAAoB,EACrB,MAAoB,EACnB,MAAc,EACd,gBAAkC,EAClC,wBAAkD,EAAA;QALlD,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;QACnB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAd5D,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AAEA,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAO,CAAC;AAC7C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;AAajD,QAAA,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;;;;;KAKnC;IACD,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACxC,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,WAAW,GAAA;QACT,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;YAC1C,IAAI,KAAK,YAAY,eAAe,EAAE;;AAErC,aAAA;YACD,IAAI,KAAK,YAAY,aAAa,EAAE;;AAElC,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACxB,aAAA;YACD,IAAI,KAAK,YAAY,eAAe,EAAE;;;AAGrC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KACzB;AAED,IAAA,gBAAgB,CAAC,GAAe,EAAA;;KAE/B;AAED,IAAA,eAAe,CAAC,GAAe,EAAA;QAC7B,GAAG,CAAC,eAAe,EAAE,CAAC;KACvB;AAED,IAAA,kBAAkB,CAAC,aAAwB,EAAA;QACzC,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;AAC9F,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAC9D,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAEzB,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;AACvE,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CACnC,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAC7D,CAAC;KACH;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC7B,SAAA;KACF;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;KACvC;+GAtFU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIf,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB/B,uqBA2BA,EAAA,MAAA,EAAA,CAAA,irBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApN,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqN,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDfa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,uqBAAA,EAAA,MAAA,EAAA,CAAA,irBAAA,CAAA,EAAA,CAAA;gPAStB,cAAc,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MENpC,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAHN,YAAA,EAAA,CAAA,eAAe,EAAE,kBAAkB,aADxC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;AAIb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAFV,SAAA,EAAA,CAAC,SAAS,CAAC,YAFZ,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIb,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,kBAAkB,CAAC;oBACnD,SAAS,EAAE,CAAC,SAAS,CAAC;AACzB,iBAAA,CAAA;;;MCNY,cAAc,CAAA;IACzB,WAAoB,CAAA,oBAA8B,EAAU,sBAAyC,EAAA;QAAjF,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAU;QAAU,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAmB;KAAI;IAIzG,GAAG,CAAC,KAAU,EAAE,aAAmB,EAAA;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrD,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAM,KAAK,EAAE,aAAa,CAAC,CAAC;KACjE;AAEF;;MCGY,aAAa,CAAA;AAGxB,IAAA,WAAA,CACU,MAAsB,EACtB,QAAkB,EAClB,mBAAwC,EAAA;QAFxC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;KAC9C;IAEG,IAAI,CAAC,aAAwB,EAAE,MAAoB,EAAA;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAE3D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,kBAAkB,GAAG,aAAa,CAAC;AACpE,QAAA,OAAO,SAAS,CAAC;KAClB;AAEO,IAAA,2BAA2B,CAAC,MAAoB,EAAA;AACtD,QAAA,MAAM,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;AAC1B,QAAA,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE9B,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAClC,QAAA,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE9B,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,MAAK;YAC/C,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACrC,GAAG,CAAC,WAAW,EAAE,CAAC;AACpB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,EAAE;YACpD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,eAAe,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;AACxD,SAAA,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAE9C,QAAA,MAAM,OAAO,GAAI,YAAY,CAAC,QAAiC;aAC5D,SAAS,CAAC,CAAC,CAAgB,CAAC;AAC/B,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEnC,QAAA,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;QAEvC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YACtD,IAAI,CAAC,6BAA6B,EAAE,CAAC;AACvC,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,SAAS,CAAC;KAClB;IAEO,6BAA6B,GAAA;QACnC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;KACnC;IAED,KAAK,GAAA;QACH,IAAI,CAAC,6BAA6B,EAAE,CAAC;KACtC;+GAvDU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,YAAY,EAAA,CAAA,CAAA,EAAA;;4FAEb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,YAAY;AACzB,iBAAA,CAAA;;;MCVY,gBAAgB,CAAA;AAE3B,IAAA,WAAA,GAAA;QAGO,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;KADnC;AAID,IAAA,QAAQ,CAAC,QAAkB,EAAA;QACzB,QAAQ,QAAQ,CAAC,IAAI;YACnB,KAAK,UAAW,EAAE;AAChB,gBAAA,OAAQ,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AACpD,aAAA;YACD,KAAK,UAAW,EAAE;AAChB,gBAAA,OAAQ,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AACpD,aAAA;YACD,KAAK,iBAAkB,EAAE;AACvB,gBAAA,OAAQ,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AACpD,aAAA;YACD,KAAK,SAAU,EAAE;AACf,gBAAA,OAAO,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AACnD,aAAA;YACD,KAAK,aAAa,EAAE;AAClB,gBAAA,OAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC7C,aAAA;YACD,KAAK,kBAAkB,EAAE;AACvB,gBAAA,OAAQ,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAChD,aAAA;YACD,KAAK,gBAAgB,EAAE;AACrB,gBAAA,OAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC3C,aAAA;YACD,KAAK,aAAa,EAAE;AAClB,gBAAA,OAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC3C,aAAA;YACL,KAAK,WAAW,EAAE;AAChB,gBAAA,OAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACvC,aAAA;YACH,KAAK,cAAc,EAAE;AACnB,gBAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAC3C,aAAA;YACD,KAAK,iBAAkB,EAAE;AACvB,gBAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AAC9C,aAAA;YACD,KAAK,aAAc,EAAE;AACpB,gBAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACzC,aAAA;YACD,KAAK,QAAS,EAAE;AACd,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACrC,aAAA;YACD,KAAK,cAAe,EAAE;AACrB,gBAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAC1C,aAAA;AAEH,SAAA;KACF;AAID,IAAA,2BAA2B,CAAC,QAAY,EAAA;;QAEtC,OAAO,QAAQ,CAAC,UAAU,CAAC;QAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACrF,WAAW,CAAC,eAAe,GAAG,EAAC,OAAO,EAAE,4BAA4B,EAAC,CAAC;AACtE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACrF,YAAA,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/E,YAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YAChC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC;AAC3J,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE;gBACrH,WAAW,CAAC,SAAS,GAAI,EAAC,OAAO,EAAE,yCAAyC,EAAC,CAAC;AAC9E,gBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,aAAA;AAAM,iBAAA;AACL,gBAAA,QAAQ,CAAC,OAAO;AAChB,oBAAA,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAU,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5F,gBAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,oBAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5H,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,WAAW,CAAC,SAAS,GAAI,EAAC,OAAO,EAAE,yCAAyC,EAAC,CAAC;AAC9E,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE;YAC9C,WAAW,CAAC,UAAU,GAAK,EAAC,OAAO,EAAE,qCAAqC,EAAC,CAAC;AAC5E,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,gBAAmC,CAAC;AACxC,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChC,YAAA,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC;AAClC,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAChE,YAAA,OAAO,gBAAgB,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAC/D,YAAA,OAAO,gBAAgB,CAAC;AACzB,SAAA;KACF;AAED,IAAA,oBAAoB,CAAC,QAAY,EAAA;QAC/B,OAAO,QAAQ,CAAC,UAAU,CAAC;QAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE;YACnG,WAAW,CAAC,eAAe,GAAG,EAAC,OAAO,EAAE,4BAA4B,EAAC,CAAC;AACtE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACvF,YAAA,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjF,YAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAC9B,SAAA;AACD,QAAA,IAAG,QAAQ,CAAC,kBAAkB,KAAK,IAAI,EAAC;AACrC,YAAA,IAAG,QAAQ,CAAC,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,EAAC;gBAC5D,WAAW,CAAC,UAAU,GAAG,EAAC,OAAO,EAAE,uDAAuD,EAAC,CAAC;AAC5F,gBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,aAAA;AACH,SAAA;AACD,QAAA,IAAI,gBAAmC,CAAC;AACxC,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChC,YAAA,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC;AAClC,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAChE,YAAA,OAAO,gBAAgB,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAC/D,YAAA,OAAO,gBAAgB,CAAC;AACzB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,QAAY,EAAA;QAC3B,OAAO,QAAQ,CAAC,UAAU,CAAC;QAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE;YACnG,WAAW,CAAC,eAAe,GAAG,EAAC,OAAO,EAAE,4BAA4B,EAAC,CAAC;AACtE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEzB,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACvF,YAAA,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjF,YAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAC9B,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE;YAC7B,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjF,WAAW,CAAC,WAAW,GAAG,EAAC,OAAO,EAAG,0CAA0C,EAAC,CAAC;AACjF,gBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,aAAA;AACF,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE;YAC7B,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjF,WAAW,CAAC,WAAW,GAAG,EAAC,OAAO,EAAE,0CAA0C,EAAC,CAAE;AACjF,gBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,aAAA;AACF,SAAA;QACD,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,EAAE;AAC1D,YAAA,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAC3B,SAAA;AACD,QAAA,IAAI,gBAAmC,CAAC;AACxC,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChC,YAAA,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC;AAClC,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAChE,YAAA,OAAO,gBAAgB,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAC/D,YAAA,OAAO,gBAAgB,CAAC;AACzB,SAAA;KACF;AAED,IAAA,mBAAmB,CAAC,QAAY,EAAA;QAC9B,OAAO,QAAQ,CAAC,UAAU,CAAC;QAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,WAAW,CAAC,eAAe,GAAG,EAAC,OAAO,EAAE,4BAA4B,EAAC,CAAC;AACtE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACvF,YAAA,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjF,YAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;gBAC1F,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE;mBACxF,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,EAAE;gBACvC,WAAW,CAAC,SAAS,GAAI,EAAC,OAAO,EAAE,yCAAyC,EAAC,CAAC;AAC9E,gBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,aAAA;AAAM,iBAAA;AACL,gBAAA,QAAQ,CAAC,OAAO;oBAChB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAU,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAClF,aAAA;AACF,SAAA;AAAM,aAAA;YACH,WAAW,CAAC,SAAS,GAAI,EAAC,OAAO,EAAE,yCAAyC,EAAC,CAAC;AAC9E,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAA;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC7C,WAAW,CAAC,UAAU,GAAK,EAAC,OAAO,EAAE,qCAAqC,EAAC,CAAC;AAC5E,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,gBAAmC,CAAC;AACxC,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChC,YAAA,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC;AAClC,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAChE,YAAA,OAAO,gBAAgB,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAC/D,YAAA,OAAO,gBAAgB,CAAC;AACzB,SAAA;KACF;AAID,IAAA,sBAAsB,CAAC,QAAY,EAAA;QACjC,OAAO,QAAQ,CAAC,UAAU,CAAC;QAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,WAAW,CAAC,eAAe,GAAG,EAAC,OAAO,EAAE,4BAA4B,EAAC,CAAC;AACtE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACvF,YAAA,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjF,YAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAC9B,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAA,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACrC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC5E,WAAW,CAAC,MAAM,GAAK,EAAC,OAAO,EAAE,4CAA4C,EAAC,CAAC;AAC/E,oBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,iBAAA;AAAM,qBAAA;oBACC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAkB,KAAK,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AACpH,oBAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,wBAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAG,CAAC;AAC7I,qBAAA;AAEJ,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,WAAW,CAAC,MAAM,GAAK,EAAC,OAAO,EAAE,4CAA4C,EAAC,CAAC;AAC/E,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC7C,WAAW,CAAC,UAAU,GAAK,EAAC,OAAO,EAAE,kCAAkC,EAAC,CAAC;AACzE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AAED,QAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAkB,KAAK,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAEpH,YAAA,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;AACrC,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC3C,WAAW,CAAC,MAAM,GAAI,EAAC,OAAO,EAAE,+CAA+C,EAAC,CAAC;AACjF,oBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,iBAAA;AACD,gBAAA,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,oBAAA,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,OAAO,EAAE;AACzC,wBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;4BACjD,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAkB,KAC5D,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;;;4BAGnD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAkB,KACxD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AACpD,yBAAA;AAAM,6BAAA;;;AAGN,yBAAA;AACF,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,WAAW,CAAC,SAAS,GAAI,EAAC,OAAO,EAAE,yDAAyD,EAAC,CAAC;AAC9F,oBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,gBAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE;AACxI,oBAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC;AAC/H,aAAA;AACF,SAAA;AAAM,aAAA;YACL,WAAW,CAAC,MAAM,GAAK,EAAC,OAAO,EAAE,+CAA+C,EAAC,CAAC;AAClF,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC7C,WAAW,CAAC,UAAU,GAAK,EAAC,OAAO,EAAE,qCAAqC,EAAC,CAAC;AAC5E,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,gBAAmC,CAAC;AACxC,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChC,YAAA,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC;AAClC,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAChE,YAAA,OAAO,gBAAgB,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAC/D,YAAA,OAAO,gBAAgB,CAAC;AACzB,SAAA;KACF;AAGD,IAAA,uBAAuB,CAAC,QAAY,EAAA;QAClC,OAAO,QAAQ,CAAC,UAAU,CAAC;QAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,WAAW,CAAC,eAAe,GAAG,EAAC,OAAO,EAAE,4BAA4B,EAAC,CAAC;AACtE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACvF,YAAA,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjF,YAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzF,WAAW,CAAC,SAAS,GAAI,EAAC,OAAO,EAAE,+BAA+B,EAAC,CAAC;AACpE,gBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,aAAA;AAAM,iBAAA;AACL,gBAAA,QAAQ,CAAC,OAAO;oBAChB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAU,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAClF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,WAAW,CAAC,SAAS,GAAI,EAAC,OAAO,EAAE,kCAAkC,EAAC,CAAC;AACvE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE;YAC9C,WAAW,CAAC,UAAU,GAAK,EAAC,OAAO,EAAE,uCAAuC,EAAC,CAAC;AAC9E,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,gBAAmC,CAAC;AACxC,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChC,YAAA,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC;AAClC,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAChE,YAAA,OAAO,gBAAgB,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAC/D,YAAA,OAAO,gBAAgB,CAAC;AACzB,SAAA;KACF;AAED,IAAA,cAAc,CAAC,QAAY,EAAA;QACzB,OAAO,QAAQ,CAAC,UAAU,CAAC;QAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACrD,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnC,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,WAAW,CAAC,eAAe,GAAG,EAAC,OAAO,EAAE,4BAA4B,EAAC,CAAC;AACtE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACvF,YAAA,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjF,YAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAC9B,SAAA;QACD,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,WAAW,CAAC,QAAQ,GAAI,EAAC,OAAO,EAAE,CAAqC,kCAAA,EAAA,OAAO,CAAG,CAAA,CAAA,EAAC,CAAC;AACnF,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;QACD,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,WAAW,CAAC,QAAQ,GAAI,EAAC,OAAO,EAAE,CAAqC,kCAAA,EAAA,OAAO,CAAG,CAAA,CAAA,EAAC,CAAC;AACnF,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;QACD,IAAI,QAAQ,GAAG,OAAO,EAAE;AACtB,YAAA,WAAW,CAAC,SAAS,GAAI,EAAC,OAAO,EAAE,CAA8C,2CAAA,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,CAAgD,8CAAA,CAAA,EAAC,CAAC;AACrJ,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;QACD,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,WAAW,CAAC,SAAS,GAAI,EAAC,OAAO,EAAE,CAAqC,kCAAA,EAAA,SAAS,CAAG,CAAA,CAAA,EAAE,CAAC;AACvF,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,gBAAmC,CAAC;AACxC,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChC,YAAA,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC;AAClC,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAChE,YAAA,OAAO,gBAAgB,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAC/D,YAAA,OAAO,gBAAgB,CAAC;AACzB,SAAA;KACF;AAGD,IAAA,kBAAkB,CAAC,QAAY,EAAA;QAC7B,OAAO,QAAQ,CAAC,UAAU,CAAC;QAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,WAAW,CAAC,eAAe,GAAG,EAAC,OAAO,EAAE,4BAA4B,EAAC,CAAC;AACtE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACvF,YAAA,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjF,YAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAC9B,SAAA;QACD,IAAI,QAAQ,CAAC,cAAc,EAAE;AAC3B,YAAA,IAAI,QAAQ,CAAC,eAAe,KAAK,OAAO,IAAI,QAAQ,CAAC,cAAc,KAAK,EAAE,IAAI,QAAQ,CAAC,YAAY,KAAK,EAAE,EAAE;AAC1G,gBAAA,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;AACjC,aAAA;AACF,SAAA;AACD,QAAA,IAAI,gBAAmC,CAAC;AACxC,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChC,YAAA,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC;AAClC,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAChE,YAAA,OAAO,gBAAgB,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAC/D,YAAA,OAAO,gBAAgB,CAAC;AACzB,SAAA;KACF;AAED,IAAA,mBAAmB,CAAC,QAAY,EAAA;QAC9B,OAAO,QAAQ,CAAC,UAAU,CAAC;QAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,WAAW,GAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,WAAW,CAAC,eAAe,GAAG,EAAC,OAAO,EAAE,4BAA4B,EAAC,CAAC;AACtE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACvF,YAAA,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjF,YAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAC9B,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAA,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACrC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC5E,WAAW,CAAC,MAAM,GAAK,EAAC,OAAO,EAAE,4CAA4C,EAAC,CAAC;AAC/E,oBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,iBAAA;AAAM,qBAAA;AACC,oBAAA,QAAQ,CAAC,OAAO;wBACtB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAkB,KACzC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAC7C,oBAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,wBAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAG,CAAC;AAC7I,qBAAA;AAEJ,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,WAAW,CAAC,MAAM,GAAK,EAAC,OAAO,EAAE,4CAA4C,EAAC,CAAC;AAC/E,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC7C,WAAW,CAAC,UAAU,GAAK,EAAC,OAAO,EAAE,kCAAkC,EAAC,CAAC;AACzE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AAED,QAAA,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,YAAA,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACrC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC5E,WAAW,CAAC,MAAM,GAAK,EAAC,OAAO,EAAE,+CAA+C,EAAC,CAAC;AAClF,oBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,OAAO;wBACtB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAkB,KACzC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAC7C,oBAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,wBAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAG,CAAC;AAC7I,qBAAA;AAEJ,iBAAA;AACI,aAAA;AACF,SAAA;AAAM,aAAA;YACL,WAAW,CAAC,MAAM,GAAK,EAAC,OAAO,EAAE,+CAA+C,EAAC,CAAC;AAClF,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC7C,WAAW,CAAC,UAAU,GAAK,EAAC,OAAO,EAAE,qCAAqC,EAAC,CAAC;AAC5E,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,gBAAmC,CAAC;AACxC,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChC,YAAA,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC;AAClC,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAChE,YAAA,OAAO,gBAAgB,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,gBAAgB,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC;AAC/D,YAAA,OAAO,gBAAgB,CAAC;AACzB,SAAA;KACF;AACD;;;AAGG;AACD,IAAA,OAAO,CAAC,CAAK,EAAA;QACb,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;KAC3C;AACA;;;AAGE;AACH,IAAA,iBAAiB,CAAC,OAAW,EAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,QAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAQ,KAAK,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;AACvF,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACD;;;AAGG;AACH,IAAA,0BAA0B,CAAC,eAAoB,EAAA;QAC7C,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAwB,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAE3F,QAAA,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,OAAO,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAY,KAAK,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAClG,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,eAAe,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,eAAe,CAAC,UAAU,EAAE;AAClF,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KAC1C;+GAliBU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCCY,8BAA8B,CAAA;AAIzC,IAAA,WAAA,GAAA;QADA,IAAqB,CAAA,qBAAA,GAAS,EAAE,CAAC;KAChB;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;KACF;IACD,SAAS,GAAA;QACP,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KAClE;+GAdU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,qGCR3C,0bAUM,EAAA,MAAA,EAAA,CAAA,4tDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkR,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDFO,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,0bAAA,EAAA,MAAA,EAAA,CAAA,4tDAAA,CAAA,EAAA,CAAA;0EAM9B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEFK,wBAAwB,CAAA;AAKnC,IAAA,WAAA,GAAA;QADA,IAAqB,CAAA,qBAAA,GAAS,EAAE,CAAC;KAChB;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;KACF;IACD,SAAS,GAAA;QACP,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KAClE;+GAfU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,8FCRrC,4bASM,EAAA,MAAA,EAAA,CAAA,8wDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmR,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,4bAAA,EAAA,MAAA,EAAA,CAAA,8wDAAA,CAAA,EAAA,CAAA;0EAOvB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEJK,2BAA2B,CAAA;AAEtC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,gECPxC,suBAWM,EAAA,MAAA,EAAA,CAAA,+0EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4N,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDJO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,suBAAA,EAAA,MAAA,EAAA,CAAA,+0EAAA,CAAA,EAAA,CAAA;;;MEIzB,0BAA0B,CAAA;AAErC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,+DCPvC,+6BAiBM,EAAA,MAAA,EAAA,CAAA,qhDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDVO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,+6BAAA,EAAA,MAAA,EAAA,CAAA,qhDAAA,CAAA,EAAA,CAAA;;;MEIxB,6BAA6B,CAAA;AAExC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,oGCP1C,qSAEM,EAAA,MAAA,EAAA,CAAA,gmDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDKO,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,qSAAA,EAAA,MAAA,EAAA,CAAA,gmDAAA,CAAA,EAAA,CAAA;0EAK7B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEDK,0BAA0B,CAAA;AAErC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,+DCPvC,0HAEM,EAAA,MAAA,EAAA,CAAA,qrDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDKO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,0HAAA,EAAA,MAAA,EAAA,CAAA,qrDAAA,CAAA,EAAA,CAAA;;;qCESxB,sBAAsB,CAAA;AAEjC,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,QAAQ,MAAW;+GAJR,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,gHCZnC,s3JAgIA,EAAA,MAAA,EAAA,CAAA,upGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvHY,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,kMAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6C,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGzCuO,wBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;+BACE,oBAAoB,EAAA,OAAA,EAGrB,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,EAAA,UAAA,EACzC,IAAI,EAAA,QAAA,EAAA,s3JAAA,EAAA,MAAA,EAAA,CAAA,upGAAA,CAAA,EAAA,CAAA;0EAGP,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEEK,8BAA8B,CAAA;AAQzC,IAAA,WAAA,GAAA;QANA,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;KAKhB;AAEhB,IAAA,QAAQ,MAAW;AAGnB,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;YAC5C,KAAK,CAAC,eAAe,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;AAC9D,SAAC,CAAC,CAAC;KACJ;+GAjBU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA9B,8BAA8B,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAKK,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB1D,myIAwHA,EAAA,MAAA,EAAA,CAAA,q9KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8N,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDzGa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAN1C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAG/B,MAAA,EAAA,CAAC,UAAU,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,myIAAA,EAAA,MAAA,EAAA,CAAA,q9KAAA,CAAA,EAAA,CAAA;0EAQ9B,KAAK,EAAA,CAAA;sBADX,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,sBAAsB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAQ1D,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEnBvB,wBAAwB,CAAA;AAKnC,IAAA,WAAA,GAAA;QADA,IAAqB,CAAA,qBAAA,GAAS,EAAE,CAAC;KAChB;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACxD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,IAAK,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAK,KAAK,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,EAAC;YAC/G,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,OAAO,EAAC,CAAC,CAAA;AACjD,SAAA;KACF;IACD,SAAS,GAAA;QACP,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KAClE;+GAlBU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,8FCRrC,8PAIM,EAAA,MAAA,EAAA,CAAA,mzCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDIO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,8PAAA,EAAA,MAAA,EAAA,CAAA,mzCAAA,CAAA,EAAA,CAAA;0EAOvB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEJK,iCAAiC,CAAA;AAG5C,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,KAAS,KAAI;YAC3C,KAAK,CAAC,eAAe,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;AAC9D,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GAZU,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjC,iCAAiC,EAAA,QAAA,EAAA,iCAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACA,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECRxD,s6EAuCM,EAAA,MAAA,EAAA,CAAA,s4GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4N,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhCO,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,iCAAiC,EAAA,QAAA,EAAA,s6EAAA,EAAA,MAAA,EAAA,CAAA,s4GAAA,CAAA,EAAA,CAAA;0EAKsB,KAAK,EAAA,CAAA;sBAArE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAExD,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEFvB,uBAAuB,CAAA;AAElC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,2DCPpC,wsCAeM,EAAA,MAAA,EAAA,CAAA,87DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDRO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,wsCAAA,EAAA,MAAA,EAAA,CAAA,87DAAA,CAAA,EAAA,CAAA;;;MEIpB,sBAAsB,CAAA;AAEjC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,0DCPnC,2nBAeM,EAAA,MAAA,EAAA,CAAA,yzDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDRO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,2nBAAA,EAAA,MAAA,EAAA,CAAA,yzDAAA,CAAA,EAAA,CAAA;;;MEInB,+BAA+B,CAAA;AAE1C,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,oECP5C,s0BAOM,EAAA,MAAA,EAAA,CAAA,sqDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDAO,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,s0BAAA,EAAA,MAAA,EAAA,CAAA,sqDAAA,CAAA,EAAA,CAAA;;;MEY7B,wBAAwB,CAAA;AAOnC,IAAA,WAAA,CAAoB,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAHhD,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;KAG0B;IAEpD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;AAGD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE,IAAI,CAAC,eAAe;YAC3B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAChC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D;+GA7BU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAU,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAEF,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB7C,6yEAoEA,EAAA,MAAA,EAAA,CAAA,skRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiC,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqC,IAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrDa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,6yEAAA,EAAA,MAAA,EAAA,CAAA,skRAAA,CAAA,EAAA,CAAA;iGAKR,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBAEvB,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAGnD,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAeN,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ME3B/B,0BAA0B,CAAA;AAGrC,IAAA,WAAA,GAAA;QACO,IAAmB,CAAA,mBAAA,GAAG,aAAa,CAAC;KAD1B;IAEjB,QAAQ,GAAA;KACP;AACD,IAAA,UAAU,CAAC,GAAO,EAAA;AAChB,QAAA,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KACrD;+GATU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,iGCPvC,obAMM,EAAA,MAAA,EAAA,CAAA,swDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDCO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,obAAA,EAAA,MAAA,EAAA,CAAA,swDAAA,CAAA,EAAA,CAAA;0EAM1B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MECK,uBAAuB,CAAA;IAWlC,WAAoB,CAAA,EAAiB,EAAU,SAA2B,EAAA;QAAtD,IAAE,CAAA,EAAA,GAAF,EAAE,CAAe;QAAU,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAPhE,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAO,CAAC;AAC7C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;QACjD,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;KAK0D;IAE/E,QAAQ,GAAA;;;;;AAKN,QAAA,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;KAC1C;IAED,YAAY,GAAA;QACV,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAClD;AAED;;AAEG;IACH,MAAM,wBAAwB,CAAC,IAAS,EAAA;AACtC,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5D,QAAA,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAE3E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAEhE,SAAA;KACF;IACD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;KACxC;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;KAC9C;IACD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;KACtC;+GAhDU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwL,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,4NCVpC,mqFA0BM,EAAA,MAAA,EAAA,CAAA,45DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvN,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgR,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhBO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,mqFAAA,EAAA,MAAA,EAAA,CAAA,45DAAA,CAAA,EAAA,CAAA;6HAMtB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MEPI,qBAAqB,CAAA;AAEhC,IAAA,WAAA,GAAA;AADQ,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;KACxB;IAEjB,QAAQ,GAAA;KACP;+GALU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,kGCRlC,+lOAmGM,EAAA,MAAA,EAAA,CAAA,g3FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxS,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD3FO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,+lOAAA,EAAA,MAAA,EAAA,CAAA,g3FAAA,CAAA,EAAA,CAAA;0EAKrB,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEFM,4BAA4B,CAAA;IAMvC,IACI,KAAK,CAAC,KAAU,EAAA;QAElB,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AACxD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;KACjE;AAID,IAAA,WAAA,GAAA;AAFU,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAW,CAAC;AAC7C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;KAClC;IAEjB,QAAQ,GAAA;KAEP;AAED,IAAA,WAAW,CAAC,GAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5B;AACD,IAAA,YAAY,CAAC,GAAQ,EAAA;QACnB,IAAI,GAAG,KAAK,KAAK,EAAE;AACjB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;;;;YAKvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;;YAEzD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC/B;AAED,IAAA,WAAW,CAAC,IAAS,EAAA;QACnB,IAAI,IAAI,KAAK,GAAG,EAAE;YAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7B,SAAA;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE;AACvB,YAAA,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7B,aAAA;AACF,SAAA;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;+GAtDU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,qSCPzC,o+CAaM,EAAA,MAAA,EAAA,CAAA,yvDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8F,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2M,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtO,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDNO,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,o+CAAA,EAAA,MAAA,EAAA,CAAA,yvDAAA,CAAA,EAAA,CAAA;0EAM5B,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEF,KAAK,EAAA,CAAA;sBADR,KAAK;uBAAC,OAAO,CAAA;gBAWL,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEnBI,uBAAuB,CAAA;AAKlC,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAFhC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;KACF;IAE/C,QAAQ,GAAA;KACP;AACD,IAAA,YAAY,CAAC,IAAY,EAAE,WAAmB,EAAE,IAAY,EAAA;QAC1D,IAAI,IAAI,KAAK,KAAK,EAAC;YAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;AAAE,SAAA;aAC1D,IAAI,IAAI,KAAK,QAAQ,EAAC;YAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;AAAE,SAAA;KAC7E;+GAZY,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,oLCPpC,s/EA6BM,EAAA,MAAA,EAAA,CAAA,iwEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwS,4BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtBO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,s/EAAA,EAAA,MAAA,EAAA,CAAA,iwEAAA,CAAA,EAAA,CAAA;wGAKtB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MEJI,iBAAiB,CAAA;AAK5B,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAFhC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;KACF;IAE/C,QAAQ,GAAA;KACP;AACD,IAAA,YAAY,CAAC,IAAY,EAAE,WAAmB,EAAE,IAAY,EAAA;QAC1D,IAAI,IAAI,KAAK,KAAK,EAAC;YAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;AAAE,SAAA;aAC1D,IAAI,IAAI,KAAK,QAAQ,EAAC;YAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;AAAE,SAAA;KAC7E;+GAZY,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,6KCP9B,47EA6BM,EAAA,MAAA,EAAA,CAAA,6wFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1S,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwS,4BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtBO,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,47EAAA,EAAA,MAAA,EAAA,CAAA,6wFAAA,CAAA,EAAA,CAAA;wGAKf,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MEJI,oBAAoB,CAAA;AAG/B,IAAA,WAAA,GAAA;QAFA,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KAEA;AAEhB,IAAA,QAAQ,MAAW;+GALR,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,wDCPjC,gvCAuCA,EAAA,MAAA,EAAA,CAAA,62FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1S,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhCa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,gvCAAA,EAAA,MAAA,EAAA,CAAA,62FAAA,CAAA,EAAA,CAAA;;;MEIjB,mBAAmB,CAAA;AAI9B,IAAA,WAAA,GAAA;QAHA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QACrB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;KAEF;IAEjB,QAAQ,GAAA;KACP;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;+GAjBU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,uDCPhC,izMAuHM,EAAA,MAAA,EAAA,CAAA,ukHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhHO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,izMAAA,EAAA,MAAA,EAAA,CAAA,ukHAAA,CAAA,EAAA,CAAA;;;MEIhB,uBAAuB,CAAA;AAElC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,2DCPpC,glFA4CM,EAAA,MAAA,EAAA,CAAA,ypFAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrCO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,glFAAA,EAAA,MAAA,EAAA,CAAA,ypFAAA,CAAA,EAAA,CAAA;;;MEIpB,iBAAiB,CAAA;AAK5B,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAFhC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;KACF;IAE/C,QAAQ,GAAA;KACP;AACD,IAAA,YAAY,CAAC,IAAY,EAAE,WAAmB,EAAE,IAAY,EAAA;QAC1D,IAAI,IAAI,KAAK,KAAK,EAAC;YAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;AAAE,SAAA;aAC1D,IAAI,IAAI,KAAK,QAAQ,EAAC;YAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;AAAE,SAAA;KAC7E;+GAZY,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,mLCP9B,y/EA6BM,EAAA,MAAA,EAAA,CAAA,2xFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwS,4BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtBO,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,y/EAAA,EAAA,MAAA,EAAA,CAAA,2xFAAA,CAAA,EAAA,CAAA;wGAKrB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MEJI,0BAA0B,CAAA;AAErC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,+DCPvC,upDA+BM,EAAA,MAAA,EAAA,CAAA,uiEAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxBO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,upDAAA,EAAA,MAAA,EAAA,CAAA,uiEAAA,CAAA,EAAA,CAAA;;;MEIxB,gBAAgB,CAAA;AAE3B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,mDCP7B,8tBAcM,EAAA,MAAA,EAAA,CAAA,27DAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDPO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,8tBAAA,EAAA,MAAA,EAAA,CAAA,27DAAA,CAAA,EAAA,CAAA;;;MEIZ,eAAe,CAAA;AAE1B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,kDCP5B,25BAgBM,EAAA,MAAA,EAAA,CAAA,mkDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDTO,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,25BAAA,EAAA,MAAA,EAAA,CAAA,mkDAAA,CAAA,EAAA,CAAA;;;MEIX,wBAAwB,CAAA;AAEnC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,4DCPrC,iwBAYM,EAAA,MAAA,EAAA,CAAA,4+EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDLO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,iwBAAA,EAAA,MAAA,EAAA,CAAA,4+EAAA,CAAA,EAAA,CAAA;;;gCEIrB,iBAAiB,CAAA;AAE5B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,6FCP9B,4rBAaM,EAAA,MAAA,EAAA,CAAA,y8DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1S,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDNOyS,mBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,4rBAAA,EAAA,MAAA,EAAA,CAAA,y8DAAA,CAAA,EAAA,CAAA;0EAKtB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEDK,0BAA0B,CAAA;AAErC,IAAA,WAAA,GAAA;AAYQ,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;KAZhC;IAGjB,IACI,KAAK,CAAC,KAAa,EAAA;QACrB,IAAI,KAAK,KAAK,SAAS,EAAC;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AAClB,SAAA;AAAI,aAAA;AACH,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAGD,IAAA,WAAW,CAAC,GAAO,EAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5B;IACC,QAAQ,GAAA;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,aAAa,CAAC,IAAQ,EAAA;QACpB,IAAI,IAAI,KAAK,GAAG,EAAC;AACf,YAAA,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,EAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7B,aAAA;AAEF,SAAA;aAAK,IAAI,IAAI,KAAK,GAAG,EAAC;AACrB,YAAA,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;gBACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5B,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,KAAK,GAAI,GAAG,EAAC;AACpB,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AAClB,SAAA;AAAK,aAAA,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAC;AACvB,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AAClB,SAAA;KACF;+GA3CW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,8ICPvC,gtBAKM,EAAA,MAAA,EAAA,CAAA,4yDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3S,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDEO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,gtBAAA,EAAA,MAAA,EAAA,CAAA,4yDAAA,CAAA,EAAA,CAAA;0EAU9B,KAAK,EAAA,CAAA;sBADR,KAAK;uBAAC,OAAO,CAAA;gBASN,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEbM,sBAAsB,CAAA;AAEjC,IAAA,WAAA,CAAmB,EAAiB,EAAA;QAAjB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAe;AAQ1B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;AAChD,QAAA,IAAA,CAAA,uBAAuB,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AACvG,QAAA,IAAA,CAAA,oBAAoB,GAAG;AACrB,YAAA,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE;AACjI,YAAA,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE;;;AAGhH,YAAA,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE;;;AAG9H,YAAA,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE;;;;;AAKjH,YAAA,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE;AACjH,YAAA,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE;SACtH,CAAC;QAEF,IAAiB,CAAA,iBAAA,GAAQ,EAAE,CAAC;AAC5B,QAAA,IAAA,CAAA,uBAAuB,GAAQ;AAC7B,YAAA;AACE,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,OAAO,EAAE,qFAAqF;oBAC5F,0GAA0G;AAC5G,gBAAA,UAAU,EAAE,UAAU;AACtB,gBAAA,WAAW,EAAE,YAAY;AACzB,gBAAA,qBAAqB,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa;AACnH,oBAAA,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,CAAC;AACtH,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,kBAAkB;AACzB,gBAAA,OAAO,EAAE,4GAA4G;AACnH,oBAAA,CAAA,UAAA,CAAY,GAAG,GAAG;AACpB,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,WAAW,EAAE,eAAe;AAC5B,gBAAA,qBAAqB,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,CAAC;AAC7E,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,OAAO,EAAE,0EAA0E;AACnF,gBAAA,UAAU,EAAE,qBAAqB;AACjC,gBAAA,WAAW,EAAE,gBAAgB;AAC7B,gBAAA,qBAAqB,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa;AACnH,oBAAA,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,CAAC;AACtH,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,OAAO,EAAE,8EAA8E;AACvF,gBAAA,UAAU,EAAE,UAAU;AACtB,gBAAA,WAAW,EAAE,aAAa;AAC1B,gBAAA,qBAAqB,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa;AACnH,oBAAA,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,CAAC;AACtH,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,yBAAyB;AAChC,gBAAA,OAAO,EAAE,gHAAgH;AACzH,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,UAAU;gBACvB,qBAAqB,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,CAAC;AACvF,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,WAAW;AAClB,gBAAA,OAAO,EAAE,oFAAoF;oBAC3F,iDAAiD;AACnD,gBAAA,UAAU,EAAE,WAAW;AACvB,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,qBAAqB,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU,CAAC;AACrI,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,mBAAmB;AAC1B,gBAAA,OAAO,EAAE,2HAA2H;AACpI,gBAAA,UAAU,EAAE,WAAW;AACvB,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,qBAAqB,EAAE,CAAC,UAAU,EAAE,iBAAiB,CAAC;AACvD,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,mBAAmB;AAC1B,gBAAA,OAAO,EAAE,4EAA4E;AACrF,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,WAAW,EAAE,gBAAgB;gBAC7B,qBAAqB,EAAE,CAAC,aAAa,CAAC;AACvC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,kBAAkB;AACzB,gBAAA,OAAO,EAAE,0EAA0E;oBACjF,gEAAgE;AAClE,gBAAA,UAAU,EAAE,iBAAiB;AAC7B,gBAAA,WAAW,EAAE,oBAAoB;AACjC,gBAAA,qBAAqB,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC;AACzD,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,OAAO,EAAE,4FAA4F;oBACnG,+GAA+G;AACjH,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,WAAW,EAAE,WAAW;gBACxB,qBAAqB,EAAE,CAAC,cAAc,CAAC;AACxC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,0BAA0B;AACjC,gBAAA,OAAO,EAAE,mFAAmF;AAC5F,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,WAAW,EAAE,mBAAmB;gBAChC,qBAAqB,EAAE,CAAC,QAAQ,CAAC;AAClC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,WAAW;AAClB,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,WAAW,EAAE,SAAS;gBACtB,qBAAqB,EAAE,CAAC,WAAW,CAAC;AACrC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,WAAW;AAClB,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,UAAU,EAAE,UAAU;AACtB,gBAAA,WAAW,EAAE,SAAS;gBACtB,qBAAqB,EAAE,CAAC,WAAW,CAAC;AACrC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,mBAAmB;AAC1B,gBAAA,OAAO,EAAE,4FAA4F;AACrG,gBAAA,UAAU,EAAE,mBAAmB;AAC/B,gBAAA,WAAW,EAAE,wBAAwB;AACrC,gBAAA,qBAAqB,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa;AACnH,oBAAA,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,CAAC;AACtH,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,gBAAgB;AACvB,gBAAA,OAAO,EAAE,2EAA2E;AACpF,gBAAA,UAAU,EAAE,cAAc;AAC1B,gBAAA,WAAW,EAAE,qBAAqB;AAClC,gBAAA,qBAAqB,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa;AACnH,oBAAA,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,CAAC;AACtH,aAAA;SACF,CAAC;KAhJuC;IAEzC,QAAQ,GAAA;QACN,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;IA6ID,4BAA4B,GAAA;AAC1B,QAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,YAAY,IAAG;AAC/C,YAAA,IAAI,YAAY,CAAC,aAAa,KAAK,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE;gBACtF,IAAI,CAAC,uBAAuB,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;gBACxE,IAAI,CAAC,uBAAuB,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;gBACtE,IAAI,CAAC,uBAAuB,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;gBACtE,IAAI,CAAC,uBAAuB,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;AACzE,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,kBAAkB,CAAC,gBAAqB,EAAA;AACtC,QAAA,IAAI,gBAAgB,CAAC,aAAa,KAAK,cAAc,EAAE;AACrD,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO;AACpD,gBAAA,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;AAClH,SAAA;AAAM,aAAA,IAAI,gBAAgB,CAAC,aAAa,KAAK,iBAAiB,EAAE;AAE/D,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO;gBACpD,CAAC;wBACC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;wBACxG,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAC7G,qBAAA,CAAC,CAAC;AACN,SAAA;AAAM,aAAA,IAAI,gBAAgB,CAAC,aAAa,KAAK,WAAW,EAAE;AACzD,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;YAC9D,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC/E,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAChF,SAAA;AAAM,aAAA,IAAI,gBAAgB,CAAC,aAAa,KAAK,aAAa,EAAE;AAC3D,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC;AACrE,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,eAAe,GAAG,UAAU,CAAC;AAC5E,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAC/E,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAC;AACpF,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;AACvE,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;AAC9D,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,GAAG;gBACvD,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;gBACjH,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;aAClH,CAAC;AACH,SAAA;AAAM,aAAA,IAAI,gBAAgB,CAAC,aAAa,KAAK,QAAQ,EAAE;AACtD,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC;AACnE,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC9D,SAAA;AAED,QAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC;AAGrF,QAAA,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAC;QAChD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;IACD,yBAAyB,GAAA;QACvB,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CACpD,CAAC,MAAW,KAAK,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAC5G,CAAC;KACH;IAED,MAAM,CAAC,CAAM,EAAE,YAAiB,EAAA;AAE9B,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAEtE,QAAA,IAAI,cAAc,CAAC,IAAI,KAAK,WAAW,EAAE;AACvC,YAAA,IAAI,YAAY,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,EAAE;AAC/C,gBAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/D,aAAA;AAAM,iBAAA,IAAI,YAAY,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,EAAE;AAEtD,gBAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/D,aAAA;iBAAK,IAAG,YAAY,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,EAAC;AACpD,gBAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;AAC/D,gBAAA,IAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAC;AACzD,oBAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/D,iBAAA;AACF,aAAA;iBAAK,IAAG,YAAY,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,EAAC;AACpD,gBAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;AAC/D,gBAAA,IAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAC;AACzD,oBAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/D,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7E,OAAO;AACR,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,UAAU,KAAK,iBAAiB,IAAI,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,kBAAkB,GAAG,GAAG,CAAC;AACxE,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC;AACvE,SAAA;AACD,QAAA,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;KAE9E;+GA7OU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAyR,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,oKCRnC,20GA6CM,EAAA,MAAA,EAAA,CAAA,q0KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyF,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuL,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzM,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrCO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,20GAAA,EAAA,MAAA,EAAA,CAAA,q0KAAA,CAAA,EAAA,CAAA;iGAYpB,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEXI,4BAA4B,CAAA;AAIvC,IAAA,WAAA,GAAA;QAHA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;KAEZ;IAEjB,QAAQ,GAAA;KACP;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;KACtC;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;KAClC;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;KACnC;+GAnBU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,kECPzC,szUAuHM,EAAA,MAAA,EAAA,CAAA,2hTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0D,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2M,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhHO,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,szUAAA,EAAA,MAAA,EAAA,CAAA,2hTAAA,CAAA,EAAA,CAAA;;;MEM3B,yBAAyB,CAAA;AAGpC,IAAA,WAAA,CACU,MAAqB,EAAA;QAArB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QAH/B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;KAInB;IAEL,QAAQ,GAAA;KACP;IAED,cAAc,GAAA;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;AACzD,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,UAAU,EAAE,OAAO;AACpB,SAAA,CAAC,CAAC;KACJ;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC7B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAC9B;+GAxBU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,6DCTtC,smLAsEM,EAAA,MAAA,EAAA,CAAA,yyKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5S,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoR,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD7DO,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,smLAAA,EAAA,MAAA,EAAA,CAAA,yyKAAA,CAAA,EAAA,CAAA;;;MEAtB,sBAAsB,CAAA;AAEjC,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,QAAY,KAAK,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACnE;+GAJU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;AAC3B,iBAAA,CAAA;;;MCMY,aAAa,CAAA;AAExB,IAAA,WAAA,CAAqB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QAKrC,IAAU,CAAA,UAAA,GAAyD,EAAE,CAAC;QAE/E,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,OAAO,CAAC;AAInB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KAZmB;IAanD,QAAQ,GAAA;KACP;AACD,IAAA,mBAAmB,CAAC,GAAO,EAAA;QAEzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAK,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAC7F,QAAA,IAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAC;AAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC9E,SAAA;KAEF;IACD,IAAI,GAAA;AACF,QAAA,IAAI,SAAS,CAAC;QACd,MAAM,OAAO,GAAG,8BAA8B,CAAC;AAC/C,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACvC,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACxB,gBAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC/C,oBAAA,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAClC,oBAAA,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;oBACxC,IAAI,SAAS,KAAK,CAAC,EAAE;;;AAGpB,qBAAA;AAAM,yBAAA;;AAEN,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,SAAS,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AACtC,oBAAA,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;;AAEzC,iBAAA;AACJ,aAAA;AACL,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC3B,gBAAA,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC9C,oBAAA,SAAS,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AACtC,oBAAA,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;;AAEzC,iBAAA;AAAM,qBAAA;AACL,oBAAA,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAClC,oBAAA,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;;AAEzC,iBAAA;AACF,aAAA;AACH,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5E,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;;YAEzD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvC,UAAU,CAAC,MAAK;AACX,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;aACxF,EAAE,GAAG,CAAC,CAAC;AACZ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,4CAA4C,EAAE,OAAO,CAAC,CAAC;AAC3E,SAAA;KACJ;AACD,IAAA,YAAY,CAAC,GAAO,EAAA;AAEpB,QAAA,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAClG,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACvB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,SAAA;KACD;AAED,IAAA,UAAU,CAAC,GAAO,EAAA;AAChB,QAAA,IAAI,CAAC,WAAW,GAAI,GAAG,CAAC;KACzB;AAED,IAAA,cAAc,CAAC,GAAO,EAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;KACtB;+GAlFY,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA9S,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,6QCV1B,k5HA+DA,EAAA,MAAA,EAAA,CAAA,srEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyF,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA2L,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrDa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,k5HAAA,EAAA,MAAA,EAAA,CAAA,srEAAA,CAAA,EAAA,CAAA;mGAQX,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACqB,WAAW,EAAA,CAAA;sBAArC,SAAS;uBAAC,cAAc,CAAA;;;MEXd,4BAA4B,CAAA;AAIvC,IAAA,WAAA,GAAA;AADU,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;KAC/B;IAEjB,QAAQ,GAAA;KACP;IACD,YAAY,CAAC,GAAO,EAAC,MAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC,OAAO,EAAC,GAAG,EAAE,MAAM,EAAC,CAAC,CAAA;KAC7C;+GAVU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,4ICPzC,s6BAaM,EAAA,MAAA,EAAA,CAAA,ixDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhT,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4N,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDNO,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,s6BAAA,EAAA,MAAA,EAAA,CAAA,ixDAAA,CAAA,EAAA,CAAA;0EAM5B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEHI,sBAAsB,CAAA;AAIjC,IAAA,WAAA,GAAA;AADU,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;KAC/B;IAEjB,QAAQ,GAAA;KACP;IACD,UAAU,CAAC,GAAO,EAAC,MAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC,OAAO,EAAC,GAAG,EAAE,MAAM,EAAC,CAAC,CAAA;KAC5C;+GAVU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,qICPnC,o6BAaM,EAAA,MAAA,EAAA,CAAA,kkEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDNO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,o6BAAA,EAAA,MAAA,EAAA,CAAA,kkEAAA,CAAA,EAAA,CAAA;0EAMrB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEFI,yBAAyB,CAAA;AAGpC,IAAA,WAAA,GAAA;QAFA,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KAEA;AAEhB,IAAA,QAAQ,MAAW;+GALR,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,8DCRtC,8nBAqBA,EAAA,MAAA,EAAA,CAAA,2hEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4N,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDba,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,8nBAAA,EAAA,MAAA,EAAA,CAAA,2hEAAA,CAAA,EAAA,CAAA;;;MEGvB,wBAAwB,CAAA;AAEnC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,6DCPrC,o7BAiBM,EAAA,MAAA,EAAA,CAAA,w/CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDVO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,o7BAAA,EAAA,MAAA,EAAA,CAAA,w/CAAA,CAAA,EAAA,CAAA;;;MEItB,2BAA2B,CAAA;AAItC,IAAA,WAAA,GAAA;AADU,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;KAC/B;IAGjB,QAAQ,GAAA;KACP;IAED,WAAW,GAAA;QACT,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;KAC1C;+GAZU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,2ICPxC,4LAGM,EAAA,MAAA,EAAA,CAAA,4jDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDIO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,4jDAAA,CAAA,EAAA,CAAA;0EAM3B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEHI,wBAAwB,CAAA;AAEnC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,6DCPrC,4HAEM,EAAA,MAAA,EAAA,CAAA,skDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDKO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,4HAAA,EAAA,MAAA,EAAA,CAAA,skDAAA,CAAA,EAAA,CAAA;;;MEItB,sBAAsB,CAAA;IAGjC,IAAuB,WAAW,CAAC,KAAc,EAAA;AAClD,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACvB,QAAA,IAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAC;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,CAAC,CAAA;AAC1D,SAAA;KACF;AAEC,IAAA,WAAA,GAAA;AADU,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;KAC/B;IAEjB,QAAQ,GAAA;KAEP;AACD,IAAA,UAAU,CAAC,MAAU,EAAA;AAEnB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC,MAAM,EAAC,EAAC,KAAK,EAAC,MAAM,EAAC,EAAC,CAAC,CAAA;KAC9C;+GAlBS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,+KCPnC,qPAEM,EAAA,MAAA,EAAA,CAAA,44CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwR,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDKO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,qPAAA,EAAA,MAAA,EAAA,CAAA,44CAAA,CAAA,EAAA,CAAA;0EAMrB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACiB,WAAW,EAAA,CAAA;sBAAjC,KAAK;uBAAC,UAAU,CAAA;gBAMP,WAAW,EAAA,CAAA;sBAApB,MAAM;;;METI,qBAAqB,CAAA;AAEhC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,yDCPlC,ysCAeM,EAAA,MAAA,EAAA,CAAA,o8DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDRO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,ysCAAA,EAAA,MAAA,EAAA,CAAA,o8DAAA,CAAA,EAAA,CAAA;;;MEIlB,oBAAoB,CAAA;AAE/B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,wDCPjC,yhBAaM,EAAA,MAAA,EAAA,CAAA,ivDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDNO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,yhBAAA,EAAA,MAAA,EAAA,CAAA,ivDAAA,CAAA,EAAA,CAAA;;;MEIjB,6BAA6B,CAAA;AAExC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,kECP1C,ixBAKM,EAAA,MAAA,EAAA,CAAA,kpDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDEO,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,ixBAAA,EAAA,MAAA,EAAA,CAAA,kpDAAA,CAAA,EAAA,CAAA;;;MEe3B,sBAAsB,CAAA;AAKjC,IAAA,WAAA,CACU,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAJtC,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEhB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;KAG5C;AAKJ,IAAA,QAAQ,MAAW;IAEnB,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;IAED,WAAW,CAAC,GAAQ,EAAA,GAAI;IACxB,WAAW,CAAC,GAAQ,EAAA,GAAI;AAGxB,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,KAAK,EAAG,KAAK;AACb,YAAA,KAAK,EAAG,aAAa;YACrB,KAAK,EAAG,IAAI,CAAC,eAAe;YAC5B,SAAS,EAAG,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAG,IAAI,CAAC,iBAAiB;SACjC,CAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CACpC,gBAAgB,CACjB,CAAA;KACF;+GAvCU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAU,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAQA,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1B7C,kuEAkEA,EAAA,MAAA,EAAA,CAAA,08EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmH,IAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhDa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,kuEAAA,EAAA,MAAA,EAAA,CAAA,08EAAA,CAAA,EAAA,CAAA;iGAKN,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBAEd,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAKP,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAoB5D,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MExC/B,kBAAkB,CAAA;AAE7B,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,QAAY,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAM,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,QAAQ,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC,CAAE,CAAC;QAAA,CAAC;KACtJ;+GAJU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAA;;;MCCY,kBAAkB,CAAA;AAE7B,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAe,EAAA;QAEtC,IAAG,CAAC,KAAK,EAAC;AACJ,YAAA,OAAO,mBAAmB,CAAA;AAC/B,SAAA;AAAI,aAAA;AACH,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;+GATU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAA;;;MCQY,iBAAiB,CAAA;IAiC5B,WAAmB,CAAA,MAAoB,EAAS,MAAiB,EAAA;QAA9C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;QAAS,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QA7BjE,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QAExB,IAAyB,CAAA,yBAAA,GAAG,EAAE,CAAC;QAC/B,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;QAEtB,IAAS,CAAA,SAAA,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAEnD,QAAA,IAAA,CAAA,KAAK,GAAO;AACV,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,IAAI,CAAC,aAAa;AACzB,YAAA,aAAa,EAAE,EAAE;SAClB,CAAC;AACF,QAAA,IAAA,CAAA,WAAW,GAAG;AACZ,YAAA,GAAG,EAAE,QAAQ;AACb,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,GAAG,EAAE,cAAc;AACnB,YAAA,GAAG,EAAE,WAAW;AAChB,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,YAAY,EAAE,kBAAkB;AAChC,YAAA,WAAW,EAAE,iBAAiB;SAC/B,CAAC;KACoE;IAEtE,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;KACrD;AAED;;AAEE;IACF,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,QAAY,KAC5D,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KAChD;AAED;;;;AAIC;AACD,IAAA,QAAQ,CAAC,oBAAwB,EAAA;AAC/B,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAK,KAAK,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC;AACtF,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AAC5D,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC;QACtF,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;AAED,IAAA,WAAW,CAAC,GAAO,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;KAC3B;AACD;;AAEG;IACH,yBAAyB,GAAA;QACvB,IAAI,kBAAkB,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;AACvD,YAAA,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;YAClC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;AAE3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC;QAElE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC5C,YAAA,kBAAkB,CAAC,IAAI,CACrB,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,EACnC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,EAChC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,EACzC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,CACvC,CAAC;AACH,SAAA;AAAM,aAAA,IAAI,CAAC,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAChG,YAAA,kBAAkB,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;AAClE,SAAA;aAAM,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACvC,YAAA,kBAAkB,CAAC,IAAI,CACrB,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAClC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAChC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAClD,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,CACjD,CAAC;AACH,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;KACnC;AAED;;;;AAIC;AACD,IAAA,cAAc,CAAC,GAAO,EAAA;AAEpB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3C,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AACrF,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;KACzC;AAGD,IAAA,qBAAqB,CAAC,GAAO,EAAA;QAC3B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KACxC;AAED,IAAA,aAAa,CAAC,MAAU,EAAA;QACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC;KAClE;AAED;;AAEE;IACF,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAU,KAAI;AAC7E,YAAA,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE;AACvB,gBAAA,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;AACzD,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAAE;AAC7B,gBAAA,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC;AAC3B,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;YACtE,IAAI,CAAC,+BAA+B,EAAE,CAAC;AACxC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE;YACtF,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;YAC/E,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAEhC,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;AAEtC,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAAE;AACnE,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;iBAC1D,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,EAAE,EAAE;AACrG,gBAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;oBAC7B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtD,oBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACzB,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;YAChC,IAAI,IAAI,CAAC,yBAAyB,IAAI,gBAAgB,IAAI,IAAI,CAAC,yBAAyB,IAAI,aAAa,EAAE;AACzG,gBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,mCAAmC,CAAC;AACnE,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,oCAAoC,CAAC;AACpE,aAAA;AAEF,SAAA;QAID,IAAI,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AACnD,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC9B,SAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC;KAClF;AAED;;AAEG;IACH,+BAA+B,GAAA;QAC7B,MAAM,YAAY,GAAO,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAU,KAAI;AAC7E,YAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1C;AAED;;AAEG;IACH,kBAAkB,GAAA;QAChB,MAAM,WAAW,GAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAS,KAAI;YACzD,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa,EAAE;AACpD,gBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/B,aAAA;AACH,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC3C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,kFAAkF,CAAC;AACjH,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED;;;AAGG;AACH,IAAA,WAAW,CAAC,KAAS,EAAA;QACnB,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACvD;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,WAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;YACxE,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAChC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;AAClC,SAAA;KACF;AAED;;AAEG;IACH,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK;AAC7D,YAAA,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7D,YAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAEhC,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,oCAAoC,CAAC;AAEpE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK;gBAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AAC5D,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI;oBACpF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9D,aAAA;iBAAM,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK;AACnE,gBAAA,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7D,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI;AACpF,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI;AACpF,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;AACvF,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI;oBACjE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9D,aAAA;AACF,SAAA;AACD,QAAA,IAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtG,SAAA;AAAI,aAAA;AACH,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACzB,SAAA;AACD,QAAA,IAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAC;AAC5D,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACjF,SAAA;AAAI,aAAA;AACH,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACzB,SAAA;AAGD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChE,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjE;AAED;;;AAGG;AACH,IAAA,aAAa,CAAC,aAAqB,EAAA;QACjC,IAAI,aAAa,KAAK,UAAU,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACzB,SAAA;KACF;AAED;;AAEG;IACH,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;QACrB,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,aAAa,EAAE,EAAE;YACjB,KAAK,EAAE,IAAI,CAAC,aAAa;SAC1B,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,EAAE,CAAC;KAClC;AAED;;;;AAIG;AACH,IAAA,gBAAgB,CAAC,kBAAsB,EAAA;AACrC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,KAAK,GAAG,kBAAkB,GAAG,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,aAAa,GAAG,kBAAkB,GAAG,CAAC,CAAC;KAC7C;AAED;;;AAGG;AACH,IAAA,UAAU,CAAC,IAAU,EAAA;QACnB,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,CAAC;KAC9C;AAED;;;AAGG;;;;AAMH,IAAA,eAAe,CAAC,IAAQ,EAAA;AACtB,QAAA,IAAI,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,OAAQ,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KACjD;AAED,IAAA,cAAc,CAAC,IAAQ,EAAA;AACrB,QAAA,IAAI,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;AACrC,QAAA,OAAQ,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,yBAAyB,EAAC,OAAO,CAAC,GAAC,GAAG,CAAC;KACzE;+GAnWU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwI,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,qDCZ9B,+wLA8DA,EAAA,MAAA,EAAA,CAAA,goIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApM,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+H,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsK,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlDa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,+wLAAA,EAAA,MAAA,EAAA,CAAA,goIAAA,CAAA,EAAA,CAAA;;;MEHd,UAAU,CAAA;AAErB,IAAA,SAAS,CAAC,KAAU,EAAA;QAElB,OAAO,OAAO,KAAK,CAAC;KACrB;+GALU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA,CAAA;;;MCKY,cAAc,CAAA;;;;;;;;;;;;;AAezB,IAAA,WAAA,CAAoB,MAAqB,EAAA;QAArB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;AAKzC,QAAA,IAAA,CAAA,WAAW,GAAQ;AACjB,YAAA,GAAG,EAAE,QAAQ;AACb,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,GAAG,EAAE,cAAc;AACnB,YAAA,GAAG,EAAE,WAAW;AAChB,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,YAAY,EAAE,kBAAkB;AAChC,YAAA,WAAW,EAAE,iBAAiB;SAC/B,CAAC;QAGF,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KApB6B;AAmB7C,IAAA,QAAQ,MAAW;IAEnB,WAAW,GAAA;QACT,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC9C,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,IAAI,EAAE;gBACJ,eAAe,EAAE,IAAI,CAAC,QAAQ;AAC9B,gBAAA,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ;gBAC7C,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;AAClC,aAAA;AACF,SAAA,CAAC,CAAC;QACH,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACjC,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;gBAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;AAC5C,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,QAAQ,MAAK;AAEb;;;AAGG;AACH,IAAA,WAAW,CAAC,KAAa,EAAA;QACvB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAChD;;;;;;;;;;;;;;;;AAmBD,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1D,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;+GAvFU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAhB,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,iKCT3B,0uLA8JA,EAAA,MAAA,EAAA,CAAA,2uHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5S,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyF,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA0M,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrJa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,0uLAAA,EAAA,MAAA,EAAA,CAAA,2uHAAA,CAAA,EAAA,CAAA;iGAoBZ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MEvBK,gBAAgB,CAAA;AAE3B,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,IAAG,KAAK,EAAC;YACP,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,YAAA,IAAG,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAC;AACtB,gBAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AAC5B,aAAA;AAAI,iBAAA;AACH,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;AACF,SAAA;AAAI,aAAA;AACH,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KAGF;+GAfU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA,CAAA;;;MCCY,uBAAuB,CAAA;AAElC,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;QAClC,IAAI,CAAC,GAAI,KAAK,CAAC,MAAM,CAAC,CAAC,QAAY,MAAM,QAAQ,CAAC,IAAI,KAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;AACvE,QAAA,IAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAC;AACd,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAI,aAAA;AACH,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KAEF;+GAVU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAvB,uBAAuB,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,qBAAqB;AAC5B,iBAAA,CAAA;;;MCIY,sBAAsB,CAAA;IASjC,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;IAcD,WAAoB,CAAA,GAAsB,EAAW,SAA2B,EAAA;QAA5D,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAAW,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAnChF,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACZ,IAAU,CAAA,UAAA,GAAyD,EAAE,CAAC;AA0BrE,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;QAEjD,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAQ,CAAA,QAAA,GAAG,OAAO,CAAC;AACT,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAU,CAAC;AAC5C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;KAEiC;IAErF,QAAQ,GAAA;QACN,IAAK,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAC;AAClF,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;KAEF;IAED,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;SAC7F,EAAE,GAAG,CAAC,CAAC;KACT;IACD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;IACD,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;IAED,UAAU,GAAA;QACR,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC9C;IACD,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC5C;AAED;;;;AAIG;AACH,IAAA,SAAS,CAAC,EAAC,WAAW,EAAE,IAAI,EAAK,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAC7C,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;KACtC;AAED;;;;AAIG;AACH,IAAA,YAAY,CAAC,EAAC,WAAW,EAAE,IAAI,EAAM,EAAA;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC9C,SAAA;QACD,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC1B;AAED,IAAA,YAAY,CAAC,EAAC,WAAW,EAAE,IAAI,EAAM,EAAA;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAAE,OAAO;AAAE,SAAA;QACnD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC7C,QAAA,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,CAAC,CAAC,GAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KACzF;AAED,IAAA,SAAS,CAAC,EAAC,WAAW,EAAE,IAAI,EAAK,EAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAC,CAAC;AAC/F,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAG,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;KACtC;AAED;;;;AAIG;IACH,QAAQ,CAAC,IAAY,EAAE,WAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AACzB,QAAA,IAAI,EAAsB,CAAC;QAC3B,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC;AACjD,QAAA,IAAI,EAAE,EAAE;YACN,EAAE,CAAC,KAAK,EAAE,CAAC;AACZ,SAAA;KAEF;AAED;;AAEG;IACH,MAAM,wBAAwB,CAAC,IAAS,EAAA;AAEtC,QAAA,MAAM,MAAM,GAAG,MAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAE7D,QAAA,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC1E,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAEhE,SAAA;KACH;AACD,IAAA,iBAAiB,CAAC,GAAO,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC;QAC5B,IAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAO,KAAG;AACpC,gBAAA,IAAG,CAAC,GAAG,CAAC,QAAQ,EAAC;AACf,oBAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC1D,iBAAA;AACD,gBAAA,IAAG,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAC;AACvB,oBAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC3D,iBAAA;AACH,aAAC,CAAC,CAAA;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;KAC1C;+GArJU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,6bCRnC,inTAyFA,EAAA,MAAA,EAAA,CAAA,+9IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9T,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsS,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,eAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjFa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,inTAAA,EAAA,MAAA,EAAA,CAAA,+9IAAA,CAAA,EAAA,CAAA;oIAQrB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAqBG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBAIG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACyB,iBAAiB,EAAA,CAAA;sBAAhD,SAAS;uBAAC,mBAAmB,CAAA;;;MErCnB,gBAAgB,CAAA;AAE3B,IAAA,WAAA,GAAA;AADU,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAE3C,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;KADH;IAEjB,QAAQ,GAAA;KACP;IACD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;KACxC;+GARU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,4FCP7B,8nSA+GM,EAAA,MAAA,EAAA,CAAA,o0IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArV,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxGO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,8nSAAA,EAAA,MAAA,EAAA,CAAA,o0IAAA,CAAA,EAAA,CAAA;0EAKb,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEAI,mBAAmB,CAAA;AAI9B,IAAA,WAAA,GAAA;AADS,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;KAClB;IAEjB,QAAQ,GAAA;KACP;+GAPU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,wJCRhC,+kBAkBA,EAAA,MAAA,EAAA,CAAA,kkDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDVa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,+kBAAA,EAAA,MAAA,EAAA,CAAA,kkDAAA,CAAA,EAAA,CAAA;0EAKnB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACI,IAAI,EAAA,CAAA;sBAAb,MAAM;;;AEDR;MAOa,wBAAwB,CAAA;IAMnC,IAAyB,aAAa,CAAC,MAAW,EAAA;AAChD,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;KACF;AAGD,IAAA,WAAA,CAAwB,MAAuB,EAAA;QAb/C,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;AACN,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AAa5C,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC;AACvC,QAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,IAAI,CAAC;KAC9C;AACD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,EAAE,CAAC;;YAEzC,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,YAAA,MAAM,UAAU,GAAG,IAAI,QAAQ,EAAE,CAAC;AAClC,YAAA,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;;AAExC,YAAA,IAAI,WAAW,GAAG,oBAAoB,GAAG,WAAW,CAAC;AACrD,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,SAAS,CAC3D,CAAC,IAAS,KAAI;AACZ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,gBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY;AACjC,oBAAA,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AACpE,aAAC,EACD,CAAC,KAAU,KAAI;AACb,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAChC,aAAC,CACF,CAAC;AACH,SAAA;KACF;;;;;;;;;;;;;;IAeD,aAAa,GAAA;QACX,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,YAAY,CAAC;AAC3C,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,EAAE,CAAC;;;;;;;;;KASzC;IAED,iBAAiB,GAAA;AACf,QAAA,IACE,OAAO,IAAI,CAAC,UAAU,EAAE,WAAW,KAAK,QAAQ;YAChD,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,EACzC;AACA,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,CAAC;AAClC,SAAA;AACD,QAAA,IACE,OAAO,IAAI,CAAC,UAAU,EAAE,kBAAkB,KAAK,QAAQ;YACvD,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,EAChD;AACA,YAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,EAAE,CAAC;AACzC,SAAA;KACF;+GA1FU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAa,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,2LCjBrC,qzHAoGA,EAAA,MAAA,EAAA,CAAA,iqIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0G,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhD,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4M,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDnFa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,qzHAAA,EAAA,MAAA,EAAA,CAAA,iqIAAA,CAAA,EAAA,CAAA;;0BAkBnB,QAAQ;4CAZX,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAEE,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEmB,aAAa,EAAA,CAAA;sBAArC,KAAK;uBAAC,YAAY,CAAA;;;MEER,kCAAkC,CAAA;IAgB7C,IAA6B,cAAc,CAAC,KAAU,EAAA;AACpD,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;KAClC;IACD,IAA6B,cAAc,CAAC,KAAU,EAAA;AACpD,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;KAClC;AAED;AACoC;AACiB,IAAA,gBAAgB,CACnE,KAAoB,EAAA;AAEpB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IAED,WACU,CAAA,MAAqB,EACtB,aAA4B;;IAE3B,KAAqB,EACrB,QAAyB,EACzB,MAAc,EAAA;QALd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAE3B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QApCxB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;QACpB,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;QACxB,IAAmB,CAAA,mBAAA,GAAG,EAAE,CAAC;QACzB,IAAsB,CAAA,sBAAA,GAAG,OAAO,CAAC;QACjC,IAAQ,CAAA,QAAA,GAAuB,MAAM,CAAC;QACtC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QACjB,IAAU,CAAA,UAAA,GACjB,EAAE,CAAC;AACK,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AAyEvC,QAAA,IAAA,CAAA,cAAc,GAAQ;AAC3B,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;KAnDE;IAEJ,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;;KAEpC;IACD,4BAA4B,GAAA;QAC1B,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;KACzC;AACD,IAAA,oBAAoB,CAAC,cAAmB,EAAA;AACtC,QAAA,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC;YAC7D,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC9D,IAAI,CAAC,kBAAkB,GAAG,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC;AAChE,SAAA;KACF;AAED,IAAA,oBAAoB,CAAC,cAAmB,EAAA;AACtC,QAAA,IAAI,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;AAC7D,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,cAAc,CAAC;AAC/C,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG;YAC5B,GAAG,IAAI,GAAG,CACR,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,IAAI,CAAC,CAClE;SACF,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KACrB;IAED,cAAc,GAAA;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACpD,YAAA,IAAI,EAAE;AACJ,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB;AAC1C,gBAAA,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,kBAAkB;gBAClD,GAAG,EAAE,IAAI,CAAC,aAAa;AACxB,aAAA;AACD,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,UAAU,EAAE,OAAO;AACpB,SAAA,CAAC,CAAC;QACH,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;YACtC,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;KACJ;IAMD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;AACxD,YAAA,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE;AACpE,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,UAAU,EAAE,OAAO;AACpB,SAAA,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;AACb,QAAA,IAAI,QAAQ,GAAQ;AAClB,YAAA,UAAU,EAAE,CAAqB,mBAAA,CAAA;AAEjC,YAAA,gBAAgB,EAAE,EAAE;SACrB,CAAC;AACF,QAAA,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC7B,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc;AAC/D,YAAA,WAAW,EACT,yHAAyH;YAC3H,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY;YAChE,qBAAqB,EACnB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB;YAC7D,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa;YAClE,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB;AACxE,YAAA,YAAY,EAAE,iBAAiB;AAC/B,YAAA,iBAAiB,EAAE,CAA4C,0CAAA,CAAA;AAC/D,YAAA,UAAU,EAAE,MAAM;AACnB,SAAA,CAAC,CAAC;AACH,QAAA,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC7B,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,WAAW,EACT,2IAA2I;AAC7I,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,SAAS,EACP,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,KAAK;AACpE,YAAA,YAAY,EAAE,mBAAmB;AACjC,YAAA,iBAAiB,EAAE,CAAiD,+CAAA,CAAA;AACpE,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe;AAC1D,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,QAAQ,CAAC;KACjB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;KACxC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;IAED,UAAU,GAAA;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;AAC5C,YAAA,IAAI,EAAE,EAAE,OAAO,EAAE,qDAAqD,EAAE;AACxE,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,UAAU,EAAE,OAAO;AACpB,SAAA,CAAC,CAAC;QACH,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;YACtC,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC9B,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,aAAkB,EAAA;AAClC,QAAA,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAC9D,CAAC,OAAY,KAAK,OAAO,KAAK,IAAI,CAAC,aAAa,CAAC,iBAAiB,CACnE,CAAC;AACF,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAC7D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAC5B,CAAC;AACF,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe;gBAC1C,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CACjD,CAAC,UAAe,KACd,UAAU,CAAC,UAAU,KAAK,IAAI,CAAC,aAAa,CAAC,iBAAiB,CACjE,CAAC;AACJ,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe;gBAC1C,IAAI,CAAC,8BAA8B,CACjC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAC7C,CAAC;AACJ,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ;gBACnC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAC1C,CAAC,aAAkB,KACjB,aAAa,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAC9D,CAAC;AACJ,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CACvE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CACtC,CAAC;AACF,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,IAAI,CAAC,CAAC;AAC3C,aAAA;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;YACvD,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;KACzC;AAED,IAAA,4BAA4B,CAAC,gBAAqB,EAAA;AAChD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,EAAE;AACjD,gBAAA,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1B,aAAA;AACF,SAAA;AACD,QAAA,OAAO,gBAAgB,CAAC;KACzB;AAED,IAAA,8BAA8B,CAAC,gBAAqB,EAAA;AAClD,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;YACxC,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE;AAC9D,gBAAA,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;AACzB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,gBAAgB,CAAC;KACzB;AAED,IAAA,4BAA4B,CAAC,gBAAqB,EAAA;AAChD,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;YACxC,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE;AACxD,gBAAA,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;AACnB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,gBAAgB,CAAC;KACzB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;AAED,IAAA,4BAA4B,CAAC,KAAU,EAAA;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;AAChD,YAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,YAAY,CAAC;AAClD,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC1C;AAED,IAAA,aAAa,CAAC,IAAU,EAAA;QACtB,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAC3E,CAAC,OAAY,EAAE,KAAU,KACvB,OAAO,EAAE,UAAU;AACnB,YAAA,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CACjD,CAAC;QACF,IAAI,kBAAkB,IAAI,CAAC,EAAE;YAC3B,IAAI,IAAI,KAAK,MAAM,EAAE;gBACnB,IAAI,CAAC,aAAa,CAAC,iBAAiB;oBAClC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC;AAClE,aAAA;YACD,IAAI,IAAI,KAAK,SAAS,EAAE;;AAGtB,gBAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,kBAAkB,CAAC;gBACvD,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAEhE,gBAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CACtC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAC/D,CAAC;gBACF,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,QAAQ,EAAE;AACZ,wBAAA,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AACjE,qBAAA;iBACF,EAAE,GAAG,CAAC,CAAC;AACT,aAAA;YACD,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,gBAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAClD,aAAA;AAED,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;YACL,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,gBAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAClD,aAAA;AACD,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;IAED,oBAAoB,GAAA;QAClB,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,KAAK,IAAI,EAAE;YACpD,IAAI,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,CAAC,CAAC;AACT,gBAAA,QAAQ,EAAE,CAAiD,+CAAA,CAAA;AAC5D,aAAA,CAAC,CAAC;AACJ,SAAA;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI,EAAE;YACnD,IAAI,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,CAAC,CAAC;AACT,gBAAA,QAAQ,EAAE,CAAmD,iDAAA,CAAA;AAC9D,aAAA,CAAC,CAAC;AACJ,SAAA;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;YACnD,IAAI,CAAC,IAAI,CAAC;AACR,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;AAC/C,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,sBAAsB,CAAC,UAAe,EAAA;AACpC,QAAA,IAAI,SAAS,GAAG,CAAkC,+BAAA,EAAA,UAAU,SAAS,CAAC;AACtE,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;YACvE,IAAI,UAAU,CAAC,UAAU,KAAK,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,EAAE,EAAE;AACtE,gBAAA,SAAS,GAAG,CAAA;sFACkE,UAAU,CAAC,UAAU,CAAA,OAAA,CAAS,CAAC;;AAE9G,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,WAAW,CAAC,GAAQ,EAAA;AAClB,QAAA,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,SAAA;AAAM,aAAA,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,GAAG,EAAE,KAAK,CAAC;AAClD,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AAClC,SAAA;KACF;AAED,IAAA,aAAa,CAAC,MAAW,EAAA;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,MAAM,KAAK,eAAe,EAAE;AAC9B,YAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,eAAe,CAAC;AACpD,YAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;AAC3C,SAAA;QACD,IAAI,MAAM,KAAK,gBAAgB,EAAE;AAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,gBAAgB,CAAC;AACrD,YAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;AAC3C,SAAA;QACD,IAAI,MAAM,KAAK,YAAY,EAAE;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,YAAY,CAAC;YACjD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC7B,gBAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAC;AAC1C,aAAA;AAAM,iBAAA,IACL,IAAI,CAAC,aAAa,CAAC,iBAAiB,KAAK,CAAC,CAAC;AAC3C,gBAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,KAAK,CAAC,CAAC,EAC3C;gBACA,IAAI,CAAC,aAAa,CAAC,iBAAiB;AAClC,oBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtC,aAAA;AACF,SAAA;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;KACxD;AAED,IAAA,WAAW,CAAC,UAAe,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG;AACtC,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,eAAe,EAAE,EAAE;SACpB,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;AACvE,YAAA,IAAI,UAAU,CAAC,UAAU,KAAK,UAAU,EAAE;AACxC,gBAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU;oBAC9C,UAAU,CAAC,UAAU,CAAC;gBACxB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;AACrE,gBAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,eAAe;oBACnD,UAAU,CAAC,eAAe,CAAC;AAC9B,aAAA;AACH,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,mBAAmB,GAAA;AACjB,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,kBAAkB,KAAK,SAAS;YACnD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,QAAQ,KAAK,EAAE,EACrD;AACA,YAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC5C,YAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,KAAK,CAAC;AAC5C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC7C,YAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC;AAC3C,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACjD;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG;AACtC,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB;AAChD,YAAA,eAAe,EAAE,EAAE;SACpB,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,KAAK,CAAC;AAC3C,QAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC5C,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,gBAAgB,CAAC,WAAmB,EAAA;AAClC,QAAA,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC5D;IAED,iBAAiB,GAAA;;KAEhB;IAED,WAAW,GAAA;AACT,QAAA,IACE,CAAC;YACC,GAAG,IAAI,GAAG,CACR,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CACvC,CAAC,OAAY,KAAK,OAAO,CAAC,IAAI,CAC/B,CACF;SACF,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAChD;AACA,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;AAED,IAAA,qBAAqB,CAAC,IAAS,EAAA;QAC7B,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;AACxC,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,cAAc,KAAK,eAAe;AACrD,YAAA,IAAI,CAAC,aAAa,CAAC,cAAc,KAAK,gBAAgB,EACtD;AACA,YAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,YAAY,CAAC;AAClD,SAAA;;QAGD,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;gBAC/B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE;AAC5D,oBAAA,IACE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EACpE;wBACA,IAAI,QAAQ,CAAC,OAAO,EAAE;4BACpB,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACxC,gCAAA,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;AAC1B,gCAAA,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;AAClB,gCAAA,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC3B,6BAAC,CAAC,CAAC;AACJ,yBAAA;AACD,wBAAA,QAAQ,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACjE,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,aAAA;SACF,EAAE,GAAG,CAAC,CAAC;KACT;IAED,uBAAuB,GAAA;AACrB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE;AAChC,YAAA,IACE,QAAQ,CAAC,qBAAqB,KAAK,IAAI;AACvC,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC,EACpE;gBACA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,qBAAqB,GAAG,KAAK,CAAC;AAC5D,aAAA;AACD,YAAA,IACE,QAAQ,CAAC,eAAe,KAAK,IAAI;AACjC,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAC9D;gBACA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,GAAG,KAAK,CAAC;AACtD,aAAA;AACD,YAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC;AACpE,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC;AAC7D,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAC9D;gBACA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;gBAChD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAC1D,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC;AACrD,aAAA;AACF,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;AAC/B,YAAA,IACE,QAAQ,CAAC,sBAAsB,KAAK,IAAI;AACxC,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,CAAC,EACrE;gBACA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,sBAAsB,GAAG,KAAK,CAAC;AAC7D,aAAA;AACD,YAAA,IACE,QAAQ,CAAC,gBAAgB,KAAK,IAAI;AAClC,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAC/D;gBACA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACvD,aAAA;AACD,YAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,CAAC;AACrE,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC;AAC9D,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAC/D;gBACA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC/C,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBAC3D,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACtD,aAAA;AACF,SAAA;KACF;AAED,IAAA,IAAI,CAAC,IAAwB,EAAA;QAC3B,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,2BAA2B,EAAE;YACxE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;AAC5C,gBAAA,IAAI,EAAE;AACJ,oBAAA,OAAO,EAAE,CAAwG,sGAAA,CAAA;AAClH,iBAAA;AACD,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,UAAU,EAAE,OAAO;AACpB,aAAA,CAAC,CAAC;AACH,YAAA,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC;AACxB,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;oBACjB,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,4BAAA,IAAI,EAAE,IAAI;AACV,4BAAA,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;AAChD,yBAAA,CAAC,CAAC;AACJ,qBAAA;iBACF;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;AAChD,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;+GA3hBU,kCAAkC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAsC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAwC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAtP,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kCAAkC,EAFlC,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,aAAa,CAAC,0BCvB5B,k3eA4VA,EAAA,MAAA,EAAA,CAAA,uySAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2K,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2E,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,eAAA,EAAA,UAAA,EAAA,KAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDnUa,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAN9C,SAAS;+BACE,iCAAiC,EAAA,SAAA,EAGhC,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,k3eAAA,EAAA,MAAA,EAAA,CAAA,uySAAA,CAAA,EAAA,CAAA;uMAajB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAEsB,cAAc,EAAA,CAAA;sBAA1C,KAAK;uBAAC,gBAAgB,CAAA;gBAGM,cAAc,EAAA,CAAA;sBAA1C,KAAK;uBAAC,gBAAgB,CAAA;gBAM8B,gBAAgB,EAAA,CAAA;sBAApE,YAAY;uBAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AElDrD;AACO,MAAM,qBAAqB,GAAG;IACjC,cAAc;IACd,oBAAoB;CACrB,CAAC;AAEK,MAAM,kBAAkB,GAAG;AAChC,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,oBAAoB,EAAE,CAAC;CACxB,CAAC;AAEK,MAAM,iBAAiB,GAAG;AAC/B,IAAA,EAAC,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAC;AACxC,IAAA,EAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAC;AACpC,IAAA,EAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,mBAAmB,EAAC;AACpD,IAAA,EAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAC;CAC/B,CAAC;AAEK,MAAM,cAAc,GAAG;AAC5B,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,MAAM,EAAE,CAAC;CACV,CAAC;AAEK,MAAM,eAAe,GAAG;AAC7B,IAAA,WAAW,EAAE,qBAAqB;AAClC,IAAA,YAAY,EAAE,+DAA+D;AAC7E,IAAA,MAAM,EAAE,0CAA0C;CACnD;;AC7BH;MAMa,gBAAgB,CAAA;AAC3B,IAAA,QAAQ,CAAI,KAAU,EAAE,WAAmB,EAAE,QAAgB,EAAA;QAC3D,MAAM,UAAU,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,QAAQ,CAAC;AAChD,QAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;QACvC,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;KAC1C;IAED,cAAc,CAAC,UAAkB,EAAE,QAAgB,EAAA;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;+GAdU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCGY,qBAAqB,CAAA;AAG9B,IAAA,WAAA,CACY,IAAgB,EAChB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAGhC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;AACH,IAAA,cAAc,CAAC,MAAc,EAAA;QACzB,IAAI,WAAW,GAAQ,EAAE,CAAC;AAC9B,QAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAChC,QAAA,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAClC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAG,EAAA,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;KAChF;+GApBQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA9W,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOQ,QAAQ;;;MCPJ,oBAAoB,CAAA;AAI/B,IAAA,WAAA,GAAA;AAFS,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAE3C;IAEjB,QAAQ,GAAA;KACP;+GAPU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,0FCPjC,yiBAgBM,EAAA,MAAA,EAAA,CAAA,m5DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDTO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,yiBAAA,EAAA,MAAA,EAAA,CAAA,m5DAAA,CAAA,EAAA,CAAA;0EAMnB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEJK,sBAAsB,CAAA;IAC/B,SAAS,CAAC,EAAU,EAAE,aAAkB,EAAA;AACpC,QAAA,IAAG,aAAa,EAAE;AACd,YAAA,MAAM,YAAY,GAAG,aAAa,EAAE,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACzE,YAAA,IAAG,YAAY,EAAE;AACb,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACD,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;+GAVQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,oBAAoB;AAC7B,iBAAA,CAAA;;;MC6BY,oBAAoB,CAAA;IA6C/B,WACU,CAAA,SAA2B,EAC3B,qBAA4C,EAAA;QAD5C,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;;QA7C7C,IAAK,CAAA,KAAA,GAAQ,EAAE,CAAC;;QAGhB,IAAa,CAAA,aAAA,GAAe,EAAE,CAAC;;QAG/B,IAAG,CAAA,GAAA,GAAQ,EAAE,CAAC;;AAGb,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAK,CAAC;;AAGrC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAK,CAAC;;AAGvC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAO,CAAC;QAExD,IAAY,CAAA,YAAA,GAAG,qBAAqB,CAAC;AACrC,QAAA,IAAA,CAAA,WAAW,GAAG,kBAAkB,CAAC,oBAAoB,CAAC;AACtD,QAAA,IAAA,CAAA,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC;QACxC,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAa,CAAA,aAAA,GAAe,IAAI,CAAC;QACjC,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QACvB,IAAe,CAAA,eAAA,GAAU,iBAAiB,CAAC;QAC3C,IAAmB,CAAA,mBAAA,GAAU,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAQ;AACjB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,YAAY,EAAE,KAAK;SACpB,CAAC;QACF,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAe,CAAA,eAAA,GAAQ,eAAe,CAAC;QACvC,IAAM,CAAA,MAAA,GAAQ,MAAM,CAAC;QACrB,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;;AAItB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAU,CAAC;;AAGtC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;;QAOrC,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,YAAY,CAAC,GAAG,CAAC,EACjB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB,CAAC,SAAS,CAAC,MAAK;YACf,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;;IAGD,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;;AAGD,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;AAChD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,SAAA;KACF;;IAGD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;YACrF,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC;AACjC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;AACvC,SAAC,CAAC,CAAC;KACJ;AAED;;;AAGG;AACH,IAAA,QAAQ,CAAC,IAAS,EAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;KACxB;AAED;;;;AAIG;IACH,UAAU,CAAC,KAAU,EAAE,IAAS,EAAA;QAC9B,MAAM,cAAc,GAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;AACzD,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAG,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;AACtC,gBAAA,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;AACzC,aAAA;YACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,SAAA;AAAM,aAAA;AACX,YAAA,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAa,KAAK,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;AACnI,SAAA;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACnD;AAED;;;AAGG;AACH,IAAA,YAAY,CAAC,IAAO,EAAA;QAClB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;AAED;;;;AAIG;AACH,IAAA,UAAU,CAAC,IAAO,EAAA;AAChB,QAAA,OAAO,KAAK,CAAC;KACd;AAED;;;;AAIG;IACH,QAAQ,CAAC,IAAY,EAAE,IAAS,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC1B;AAED;;;AAGG;IACH,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KACxE;AAED;;;AAGG;AACH,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;AAED;;;AAGG;AACH,IAAA,YAAY,CAAC,IAAU,EAAA;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAG,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO;AAC/C,QAAA,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC;AACrC,QAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;KAC3C;AAED,IAAA,0BAA0B,CAAC,EAAU,EAAA;AACnC,QAAA,IAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,KAAK,CAAC;YACtC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;KACnC;AAED,IAAA,wBAAwB,CAAC,EAAU,EAAA;QACjC,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAA,IAAA,EAAO,EAAE,CAAA,CAAE,CAAC;AAChD,QAAA,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACpE,YAAA,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;AAC3D,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,KAAK,CAAC;AACxC,SAAC,CAAC,CAAC;KACJ;AAGD;;;;AAIG;AACH,IAAA,yBAAyB,CAAC,UAAiB,EAAA;QACzC,IAAI,CAAC,UAAU,EAAE,MAAM;AAAE,YAAA,OAAO,EAAE,CAAC;QAEnC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEjF,QAAA,MAAM,aAAa,GAAG,CAAC,QAAkB,KAAc;YACrD,MAAM,UAAU,GAAa,EAAE,CAAC;AAChC,YAAA,IAAI,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;AAEpC,YAAA,OAAO,aAAa,EAAE;gBACpB,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACtD,gBAAA,IAAI,CAAC,cAAc;oBAAE,MAAM;AAE3B,gBAAA,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACrC,gBAAA,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC;AACvC,aAAA;AAED,YAAA,OAAO,UAAU,CAAC;AACpB,SAAC,CAAC;QAEF,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,KAAK;AACjC,YAAA,GAAG,QAAQ;AACX,YAAA,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC;AACpC,SAAA,CAAC,CAAC,CAAC;KAEL;AAED;;;;AAIG;IACH,YAAY,CAAC,KAAU,EAAE,IAAS,EAAA;AAChC,QAAA,IAAG,KAAK,EAAE;YACR,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,QAAa,KAAK,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;AACrG,SAAA;KACF;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;;IAGD,cAAc,GAAA;AACZ,QAAA,IAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YACtC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrG,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;AAC1C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;AAClC,SAAA;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,wBAAwB,EAAE,CAAC;KAEhC;IAED,wBAAwB,GAAA;QACtB,MAAM,0BAA0B,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,EAAE,KAAK,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAChH,IAAG,CAAC,0BAA0B,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B,SAAA;KACF;;IAGD,MAAM,GAAA;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1C;;IAGO,aAAa,GAAA;AACnB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3H,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAG,KAAK,EAAE;AACR,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;AACjF,SAAA;KACF;+GApRU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA+V,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,8QCjCjC,osOA6Jc,EAAA,MAAA,EAAA,CAAA,myZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7R,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4C,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyP,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA3S,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA4S,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD5HD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,osOAAA,EAAA,MAAA,EAAA,CAAA,myZAAA,CAAA,EAAA,CAAA;qIAMnB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAGI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAGG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAGG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;MElCI,sBAAsB,CAAA;AAoBjC,IAAA,WAAA,GAAA;QAnBS,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QACjB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;AACjB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QACrC,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QAEvB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QAEvB,IAAU,CAAA,UAAA,GAAW,aAAa,CAAC;QACnC,IAAM,CAAA,MAAA,GAAY,IAAI,CAAC;QAChC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KACD;IAEjB,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;KAC3C;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;AACD,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;KACxB;IACD,IAAI,GAAA;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC/C;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC5B;+GA7CU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,8fChBnC,mwGA8FA,EAAA,MAAA,EAAA,CAAA,g0LAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnW,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwN,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/M,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqN,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAtL,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA8T,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD9Ea,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,mwGAAA,EAAA,MAAA,EAAA,CAAA,g0LAAA,CAAA,EAAA,CAAA;0EAKvB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACE,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;AElBR;MAMa,4BAA4B,CAAA;AAiBvC,IAAA,WAAA,GAAA;QAdS,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAE1B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QACxC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QACpB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAGR,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;KAElC;AAEjB,IAAA,WAAW,MAAM;IAEjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAC1C,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACrD,aAAC,CAAC,CAAC;AACJ,SAAA;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,CAAC;SAC9D,EAAE,EAAE,CAAC,CAAC;KACR;AAED,IAAA,cAAc,CAAC,IAAS,EAAE,SAAc,EAAE,QAAa,EAAA;AACrD,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,OAAY,KAAK,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAC1D,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACnC,SAAA;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,OAAY,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CACvD,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAED,SAAS,CAAC,IAAS,EAAE,SAAc,EAAA;AACjC,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACvB,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;AAC3D,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACpD,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACvB,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;oBAC1D,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,EAAO,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAC/C,CAAC;oBACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACrC,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAED,OAAO,GAAA;QACL,MAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG3I,WAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,WAAW,GAAGA,WAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC;QAChD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,EAAE,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,YAAY,GAAG,EAAE,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;AAE3C,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;YACpC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAE/B,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAa,KAAI;YAC3D,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3D,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAa,KAAI;YACzD,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAa,KAAI;YAChE,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChE,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAa,KAAI;YACtD,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtD,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;KACF;IACD,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACzD,YAAA,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;AAChC,SAAA;aAAM,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9D,YAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;AAC9B,SAAA;aAAM,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACrE,YAAA,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC;AACrC,SAAA;aAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3D,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC3B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;AAChC,SAAA;KACF;AAED,IAAA,cAAc,CAAC,SAAc,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAS,KAC7D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CACpD,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;IAED,IAAI,GAAA;QACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACzD;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;KACjC;+GAnJU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,idCnBzC,yiLAoKA,EAAA,MAAA,EAAA,CAAA,wrMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzN,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwE,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/D,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqN,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApL,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAoU,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjJa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,yiLAAA,EAAA,MAAA,EAAA,CAAA,wrMAAA,CAAA,EAAA,CAAA;0EAKM,SAAS,EAAA,CAAA;sBAAnD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAChC,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAQI,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;ME5BI,cAAc,CAAA;AAEzB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;AAC/C,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACtD;+GALU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAArW,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA,CAAA;;;MCgBY,6BAA6B,CAAA;AACxC,IAAA,WAAA,CACU,UAAsB,EACtB,QAAyB,EACzB,aAA4B,EAAA;QAF5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAE7B,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QACtB,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC,CAAC;QAChB,IAAqB,CAAA,qBAAA,GAAW,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;QAIjD,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAmB,CAAA,mBAAA,GAAG,CAAC,CAAC;AAGxB,QAAA,IAAA,CAAA,WAAW,GAAQ;AACjB,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,MAAM,EAAE,kCAAkC;AAC1C,YAAA,KAAK,EAAE,iCAAiC;AACxC,YAAA,QAAQ,EAAE,oCAAoC;AAC9C,YAAA,IAAI,EAAE,gCAAgC;AACtC,YAAA,MAAM,EAAE,kCAAkC;SAC3C,CAAC;QACF,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;KA3BlB;AA4BJ,IAAA,QAAQ,MAAW;IAEnB,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE;AAC1D,YAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AACjC,SAAA;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KACzD;AACD,IAAA,cAAc,CAAC,CAAS,EAAA;QACtB,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS;AACvC,aAAA,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;AACtB,aAAA,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;AAC9B,aAAA,IAAI,EAAE,CAAC;KACX;AACD,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC;AAC5C,aAAA;AACF,SAAA;KACF;IACD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;AACD,IAAA,WAAW,CAAC,IAAS,EAAA;;;KAGpB;AACD,IAAA,cAAc,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,GAAG,CAAC,CAAC;KACtC;AACD,IAAA,aAAa,CAAC,KAAa,EAAA;;;KAG1B;IACD,UAAU,CAAC,IAAY,EAAE,KAAa,EAAA;;;KAGrC;AAED,IAAA,SAAS,CAAC,aAAqB,EAAE,WAAmB,EAAE,IAAY,EAAA;;KAEjE;AAED,IAAA,YAAY,CAAC,aAAqB,EAAE,WAAmB,EAAE,IAAY,EAAA;AACnE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;KAC9D;AAED,IAAA,iBAAiB,CAAC,aAAqB,EAAE,WAAmB,EAAE,IAAY,EAAA;AACxE,QAAA,IACE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM;YAClE,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EACrD;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,SAAA;KACF;AAGD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,IAAI,CAAC,eAAe;YAC3B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAChC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D;+GA9GU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAkO,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA7B,6BAA6B,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAkBP,UAAU,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvC7C,gglBA+cA,EAAA,MAAA,EAAA,CAAA,kloBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhK,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8D,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkJ,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnS,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAoR,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1ba,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,gglBAAA,EAAA,MAAA,EAAA,CAAA,kloBAAA,CAAA,EAAA,CAAA;qJAU5B,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACkB,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBAEvB,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAmF5D,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MElH/B,wBAAwB,CAAA;AAGnC,IAAA,WAAA,GAAA;AAFU,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QACrC,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;KACd;IAEjB,QAAQ,GAAA;KACP;AACD,IAAA,WAAW,CAAC,IAAS,EAAA;;KAEpB;+GATU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,6JCPrC,0mBAcA,EAAA,MAAA,EAAA,CAAA,m5CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvW,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDPa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,0mBAAA,EAAA,MAAA,EAAA,CAAA,m5CAAA,CAAA,EAAA,CAAA;0EAKtB,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACE,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;MEDK,8BAA8B,CAAA;AASzC,IAAA,WAAA,GAAA;QARO,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;QACV,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;AACjB,QAAA,IAAA,CAAA,SAAS,GAAwB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,QAAQ,GAAwB,IAAI,YAAY,EAAE,CAAC;QACpD,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAClB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;KAChC;IAEjB,QAAQ,GAAA;KACP;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;+GApBU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,wUCR3C,utFAwDA,EAAA,MAAA,EAAA,CAAA,28HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuE,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1B,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhDa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,utFAAA,EAAA,MAAA,EAAA,CAAA,28HAAA,CAAA,EAAA,CAAA;0EAKhC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACI,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;MEAM,oBAAoB,CAAA;IA6C/B,WACU,CAAA,QAAyB,EACzB,GAAsB,EAAA;QADtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AA9CtB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QAC9C,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACR,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAqB,CAAA,qBAAA,GAAG,EAAE,CAAC;QACpC,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC,CAAC;AAChB,QAAA,IAAA,CAAA,gBAAgB,GAAG;AACjB,YAAA;AACE,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,WAAW,EAAE,qBAAqB;AAClC,gBAAA,IAAI,EAAE,UAAU;AACjB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,WAAW,EAAE,8CAA8C;AAC3D,gBAAA,IAAI,EAAE,UAAU;AACjB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,kBAAkB;AACxB,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,WAAW,EAAE,6CAA6C;AAC1D,gBAAA,IAAI,EAAE,UAAU;AACjB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,oBAAoB;AAC1B,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,WAAW,EAAE,2CAA2C;AACxD,gBAAA,IAAI,EAAE,UAAU;AACjB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,WAAW,EAAE,iCAAiC;AAC9C,gBAAA,IAAI,EAAE,UAAU;AACjB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,WAAW,EAAE,2BAA2B;AACxC,gBAAA,IAAI,EAAE,UAAU;AACjB,aAAA;SACF,CAAC;KAIE;IAEJ,QAAQ,GAAA;QACN,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,CAAC,cAAc;AACjB,YAAA,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE;AAC9C,kBAAE4K,WAAS,CAAC,IAAI,CAAC,cAAc,CAAC;kBAC9B,EAAE,CAAC;KACV;IAED,WAAW,CAAC,GAAQ,EAAE,KAAc,EAAA;AAClC,QAAA,QAAQ,GAAG;YACT,KAAK,SAAS,EAAE;AACd,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM;AACP,aAAA;YACD,KAAK,QAAQ,EAAE;AACb,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACzB,MAAM;AACP,aAAA;YACD,KAAK,OAAO,EAAE;AACZ,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxB,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,MAAM,EAAE;AACX,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvB,MAAM;AACP,aAAA;YACD,KAAK,QAAQ,EAAE;AACb,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACzB,MAAM;AACP,aAAA;AACF,SAAA;KACF;AAED,IAAA,aAAa,CAAC,KAAc,EAAA;;QAE1B,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,EAAE,EAAE,WAAW;AACf,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE;AACvC,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,EAAE,EAAE,CAAmB,iBAAA,CAAA;AACvB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAAc,EAAA;;QAEzB,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,EAAE,EAAE,UAAU;AACd,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACvD,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE;AACvC,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,EAAE,EAAE,kBAAkB;AACtB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACvD,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAc,EAAA;;QAExB,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,EAAE,EAAE,SAAS;AACb,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACvD,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE;AACvC,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,EAAE,EAAE,iBAAiB;AACrB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACvD,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAc,EAAA;;QAE3B,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,EAAE,EAAE,YAAY;AAChB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACpE,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE;AACvC,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,EAAE,EAAE,oBAAoB;AACxB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACpE,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,UAAU,CAAC,KAAc,EAAA;;QAEvB,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,EAAE,EAAE,QAAQ;AACZ,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE;AACvC,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,EAAE,EAAE,gBAAgB;AACpB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAAc,EAAA;;QAEzB,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,EAAE,EAAE,UAAU;AACd,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE;AACvC,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,EAAE,EAAE,kBAAkB;AACtB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,YAAY,CAAC,CAAS,EAAE,CAAS,EAAE,IAAS,EAAA;AAC1C,QAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AAC9C,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,WAAW,EAAE,KAAK;AACnB,SAAA,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACnE,YAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AACjD,SAAA;QACD,UAAU,CAAC,MAAK;YACd,MAAM,EAAE,GAAQ,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,YAAA,IAAI,EAAE,EAAE;gBACN,EAAE,CAAC,KAAK,EAAE,CAAC;AACZ,aAAA;SACF,EAAE,EAAE,CAAC,CAAC;KACR;AAED,IAAA,YAAY,CAAC,CAAS,EAAE,CAAS,EAAE,IAAS,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/C,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACnE,YAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AACjD,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACd,MAAM,EAAE,GAAQ,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,YAAA,IAAI,EAAE,EAAE;gBACN,EAAE,CAAC,KAAK,EAAE,CAAC;AACZ,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,EAAE,GAAQ,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACjE,YAAA,IAAI,EAAE,EAAE;gBACN,EAAE,CAAC,KAAK,EAAE,CAAC;AACZ,aAAA;AACF,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAa,EAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACtC;AAED,IAAA,YAAY,CAAC,KAAa,EAAA;AACxB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;KACpD;IAED,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,KAAK,EAAE;YACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;AAC5D,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;gBACjD,iBAAiB,EAAE,IAAI,CAAC,cAAc;AACvC,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IACD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC7B;IAED,kBAAkB,GAAA;AAChB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACxD,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAC9C,gBAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9D,oBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AACzD,wBAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,wBAAA,OAAO,KAAK,CAAC;AACd,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACpC;+GAzSU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxN,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,wOChBjC,+8CAiBA,EAAA,MAAA,EAAA,CAAA,igCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsW,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,cAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,+8CAAA,EAAA,MAAA,EAAA,CAAA,igCAAA,CAAA,EAAA,CAAA;mIAKjB,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAEE,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;;;MEbK,wBAAwB,CAAA;AAQnC,IAAA,WAAA,CAAoB,QAAyB,EAAA;QAAzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QAP7C,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;AAGN,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;KAEF;AAEjD,IAAA,QAAQ,MAAW;IAEnB,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC5B;IACD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC5B,YAAY,EAAE,IAAI,CAAC,kBAAkB;YACrC,YAAY,EAAE,IAAI,CAAC,sBAAsB;AAC1C,SAAA,CAAC,CAAC;KACJ;IACD,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,sCAAsC,EAAE,OAAO,CAAC,CAAC;AACrE,SAAA;KACF;+GAzBU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAzW,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,6SCRrC,gsJA8GA,EAAA,MAAA,EAAA,CAAA,wyGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyW,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtGa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,gsJAAA,EAAA,MAAA,EAAA,CAAA,wyGAAA,CAAA,EAAA,CAAA;mGAMvB,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACI,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;MENI,qBAAqB,CAAA;AAgBhC,IAAA,WAAA,GAAA;QAfS,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;AACpB,QAAA,IAAA,CAAA,EAAE,GAAG,CAAC,CAAC;QACP,IAAS,CAAA,SAAA,GAAG,YAAY,CAAC;AACzB,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,CAAC;AAClB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAEhC,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC1D,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAE,CAAC;QAC3D,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QACxB,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;AAC5B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAG,YAAY,CAAC;KACR;AAEhB,IAAA,QAAQ,MAAW;IAEnB,eAAe,CAAC,KAAU,EAAE,UAAkB,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE;YACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAClD,OAAO;AACR,SAAA;QACD,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3C,IAAI,CAAC,eAAe,KAAK,CAAC;AAC1B,YAAA,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAChC;YACA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;AACnC,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AAC1B,SAAA;KACF;IAED,UAAU,CAAC,KAAU,EAAE,UAAe,EAAA;QACpC,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,YAAA,KAAK,KAAK,CAAC;AACX,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACjB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAClB;AACA,YAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;AACpB,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAC7C,SAAA;KACF;IAED,QAAQ,GAAA;QACN,OAAOnO,QAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACxE;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;QACzB,IAAI;AACF,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,OAAO,IAAI,CAAC,cAAc,IAAI,QAAQ,EAAE;AAC1C,gBAAA,IAAI,CAAC,cAAc,GAAGA,QAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;AAC7D,aAAA;YACD,IAAI,SAAS,GAAGA,QAAM,CACpB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;gBAC3B,GAAG;iBACF,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACpC,GAAG;AACH,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;gBACjC,GAAG;gBACH,IAAI,CAAC,QAAQ,EACf,oBAAoB,CACrB,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE;AACjC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,KAAK,CAAC;AACpB,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AAC1B,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAC3B;YACA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACvC,SAAA;KACF;AACD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;KACnC;+GAzGU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,sWCRlC,wjKAwJA,EAAA,MAAA,EAAA,CAAA,8oFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzI,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2C,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9C,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6N,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhJa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,wjKAAA,EAAA,MAAA,EAAA,CAAA,8oFAAA,CAAA,EAAA,CAAA;0EAKpB,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACE,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;AEnBD,MAAM,aAAa,GAAQ;AAChC,IAAA,cAAc,EAAE;AACd,QAAA,MAAM,EAAE,0CAA0C;AACnD,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,MAAM,EAAE,uBAAuB;AAChC,KAAA;AACD,IAAA,iBAAiB,EAAE;AACjB,QAAA,MAAM,EAAE,uBAAuB;AAChC,KAAA;CACF;;MCaY,2BAA2B,CAAA;AAgCtC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QA5BtD,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AACtB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;;AAQlB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,IAAA,CAAA,OAAO,GAAGpF,QAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC;QAEhE,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAChB,QAAA,IAAA,CAAA,qBAAqB,GAAG,CAAC,CAAC;QAC1B,IAAE,CAAA,EAAA,GAAG,CAAC,CAAC;;AAIN,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAO,CAAC;QAOtD,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;KAE4B;IAE1D,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;AACnC,YAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU;AACpC,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;;QAEjE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAGA,QAAM,CAChC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CACxD,CAAC;AACF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACrC;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,MAAM,IAAI,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAChE,MAAM,WAAW,GAAGA,QAAM,CACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,EAChC,qBAAqB,CACtB,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,aAAa,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,OAAO,GAAGA,QAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC;AACtE,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,OAAO,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrC,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,IAAS,EAAA;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,CAACA,QAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,eAAe,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;KACpD;AAED,IAAA,WAAW,CAAC,MAAqB,EAAA;QAC/B,IAAI,CAAC,KAAK,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aAC9B,MAAM,CAAC,wBAAwB,CAAC;AAChC,aAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAClB;IAED,cAAc,GAAA;QACZ,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;KACtC;IACD,eAAe,GAAA;QACb,MAAM,OAAO,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,OAA8B,CAAC,CAAC;AAC7E,QAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;AACnC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;;AAGD,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,YAAA,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,SAAS,EAAE,IAAI,CAAC,aAAa;AAC9B,SAAA,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACnC;;AAGD,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,KAAK,CAAC;AACrB,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAC3B;AACA,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC1B,IAAI,EAAE,IAAI,CAAC,qBAAqB;gBAChC,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,QAAQ,EAAE,IAAI,CAAC,UAAU;gBACzB,SAAS,EAAE,IAAI,CAAC,aAAa;AAC9B,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACtB,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;;AAGD,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,eAAe,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AACnD,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,GAAGA,QAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC5D,QAAA,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,IAAI,CAAC,qBAAqB;YAChC,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,SAAS,EAAE,IAAI,CAAC,aAAa;SAC9B,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACzC;;AAGD,IAAA,eAAe,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,CAAC,aAAa,GAAGA,QAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACpD,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,EAAE;AAC9C,YAAA,IAAI,CAAC,OAAO,GAAGA,QAAM,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;AAE5D,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC;iBAC9B,MAAM,CAAC,wBAAwB,CAAC;AAChC,iBAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CACvCA,QAAM,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,CACjE,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,IAAI,CAAC,qBAAqB;YAChC,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,SAAS,EAAE,IAAI,CAAC,aAAa;AAC9B,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,aAAa,GAAG,KAAK,EAAE,MAAiB,CAAC;AAC/C,QAAA,MAAM,oBAAoB,GACxB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;QAEvE,MAAM,2BAA2B,GAAG,QAAQ,CAAC,sBAAsB,CACjE,2BAA2B,CAC5B,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAC7C,8BAA8B,CAC/B,CAAC;QACF,MAAM,qBAAqB,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;AAEzE,QAAA,MAAM,aAAa,GACjB,IAAI,CAAC,gBAAgB,KAAK,YAAY;cAClC,IAAI,CAAC,oBAAoB;AAC3B,cAAE,IAAI,CAAC,kBAAkB,CAAC;QAC9B,MAAM,sBAAsB,GAC1B,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;AACzD,QAAA,MAAM,oBAAoB,GAAG,KAAK,EAAE,MAAM,KAAK,oBAAoB,CAAC;QACpE,MAAM,mBAAmB,GACvB,CAAC,2BAA2B,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;AACxD,QAAA,MAAM,kBAAkB,GACtB,IAAI,CAAC,gBAAgB,KAAK,YAAY;cAClC,IAAI,CAAC,eAAe;AACtB,cAAE,IAAI,CAAC,aAAa,CAAC;QAEzB,MAAM,kBAAkB,GACtB,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAEzD,QAAA,IACE,sBAAsB;YACtB,oBAAoB;YACpB,mBAAmB;YACnB,kBAAkB;YAClB,qBAAqB;AACrB,YAAA,2BAA2B,EAC3B;YACA,IAAI,CAAC,qBAAqB,CACxB,KAAK,EAAE,MAAM,EACb,aAAa,EACb,kBAAkB,CACnB,CAAC;AACH,SAAA;KACF;AAED,IAAA,qBAAqB,CACnB,MAAW,EACX,cAA0B,EAC1B,kBAAuB,EAAA;QAEvB,IACE,CAAC,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC;YAChD,kBAAkB,EAAE,iBAAiB,EACrC;AACA,YAAA,kBAAkB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAChC,SAAA;KACF;+GA9NU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAyBA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,EAEZ,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,kDClDhD,m3IAyIA,EAAA,MAAA,EAAA,CAAA,k4dAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3J,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+D,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAiE,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlHa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,m3IAAA,EAAA,MAAA,EAAA,CAAA,k4dAAA,CAAA,EAAA,CAAA;oGAKL,eAAe,EAAA,CAAA;sBAA5C,SAAS;uBAAC,iBAAiB,CAAA;gBACA,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;gBAYjB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBAGP,oBAAoB,EAAA,CAAA;sBADnB,SAAS;uBAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAGjE,kBAAkB,EAAA,CAAA;sBADjB,SAAS;uBAAC,eAAe,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAyI/D,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AE1LrC,MAAM,QAAQ,GAAQ;AAC3B,IAAA,cAAc,EAAE;AACd,QAAA,UAAU,EAAE,0BAA0B;AACtC,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,YAAY,EAAE,2BAA2B;AACzC,QAAA,IAAI,EAAE,WAAW;AAClB,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,UAAU,EAAE,2BAA2B;AACvC,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,YAAY,EAAE,4BAA4B;AAC1C,QAAA,IAAI,EAAE,UAAU;AACjB,KAAA;AAED,IAAA,iBAAiB,EAAE;AACjB,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,IAAI,EAAE,UAAU;AACjB,KAAA;CACF;;MCZY,yBAAyB,CAAA;AACpC,IAAA,WAAA,GAAA;QACS,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QAEnB,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,IAAI,GAAW,IAAI,CAAC,IAAI,CAAC;QAEhB,IAAQ,CAAA,QAAA,GAAgC,gBAAgB,CAAC;AACzD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC;AACzB,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,CAAC;AACnB,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,CAAC;QACtB,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;QACrB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAE,CAAA,EAAA,GAAG,CAAC,CAAC;QACP,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAIb,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;KApB9C;IAsBhB,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE;AACrC,YAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACtB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,SAAA;KACF;IAED,aAAa,CAAC,KAAU,EAAE,UAAe,EAAA;AACvC,QAAA,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACjC;AACA,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,UAAU,KAAK,WAAW,EAAE;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;AAC1C,aAAA;iBAAM,IAAI,UAAU,KAAK,eAAe,EAAE;AACzC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC;AAC7C,aAAA;iBAAM,IAAI,UAAU,KAAK,aAAa,EAAE;AACvC,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAC/C,aAAA;AACF,SAAA;KACF;+GAnDU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,2ZCRtC,ozMA6KA,EAAA,MAAA,EAAA,CAAA,o7FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrKa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,ozMAAA,EAAA,MAAA,EAAA,CAAA,o7FAAA,CAAA,EAAA,CAAA;0EAMzB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAII,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEVI,uBAAuB,CAAA;AAwBlC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAtB7C,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QAExB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;;QAE1B,IAAa,CAAA,aAAA,GAAG,YAAY,CAAC;QAC7B,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAChB,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,IAAI,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,IAAI,CAC9B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,QAAQ,CAC9C,CAAC;QACF,IAAuB,CAAA,uBAAA,GAAG,EAAE,CAAC;QAC7B,IAAyB,CAAA,yBAAA,GAAG,CAAC,CAAC;QAC9B,IAAqB,CAAA,qBAAA,GAAG,EAAE,CAAC;QAE3B,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;AAG/B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,IAAQ,CAAA,QAAA,GAAgC,gBAAgB,CAAC;AACxD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxE,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE;AAChC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACxD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtE,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;AACnD,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,SAAA;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC;AACvE,QAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AACrC,YAAA,MAAM,YAAY,GAAGyI,QAAM,CACzB,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,EACrC,sBAAsB,CACvB,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,qBAAqB,GAAG,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAC5D,SAAA;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AACrD,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,eAAe,EAAE;AACnD,YAAA,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;AACpC,SAAA;AAAM,aAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AAC5C,YAAA,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;AACpC,SAAA;KACF;IAED,aAAa,CAAC,KAAa,EAAE,IAAY,EAAA;AACvC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AAChC,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;AAChC,SAAA;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;AAED,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;AACnE,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAEA,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;AACnE,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YAC9B,IAAI,CAAC,aAAa,CAAC,WAAW;gBAC5B,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;AACjE,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,aAAa,CAAC,WAAW;AAC5B,gBAAA,+DAA+D,CAAC;AACnE,SAAA;QACD,IAAI,CAAC,aAAa,CAAC,OAAO;AACxB,YAAA,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;AACpD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC;AACnD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,aAAa,CACnB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,qBAAqB,CAAC;AACvE,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;+GA5IU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,gUCnBpC,+iCAgCA,EAAA,MAAA,EAAA,CAAA,s/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgN,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDba,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,+iCAAA,EAAA,MAAA,EAAA,CAAA,s/BAAA,CAAA,EAAA,CAAA;oGAKN,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBACd,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAiBG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MElCI,8BAA8B,CAAA;AAUzC,IAAA,WAAA,GAAA;QARS,IAAE,CAAA,EAAA,GAAG,CAAC,CAAC,CAAC;QACR,IAAS,CAAA,SAAA,GAAkB,EAAE,CAAC;QAC9B,IAAa,CAAA,aAAA,GAAkB,EAAE,CAAC;QAClC,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;AAET,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEpC;IAEjB,QAAQ,GAAA;QACN,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B,EAAE,IAAI,CAAC,CAAC;KACV;+GAhBU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,kNCP3C,uxCAkBM,EAAA,MAAA,EAAA,CAAA,g7FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/W,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgH,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDXO,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,uxCAAA,EAAA,MAAA,EAAA,CAAA,g7FAAA,CAAA,EAAA,CAAA;0EAM9B,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MELI,wBAAwB,CAAA;AA0BnC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAzB7C,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QAExB,IAAc,CAAA,cAAA,GAAG,YAAY,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAChB,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;QACjB,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;AACjB,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,IAAI,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,IAAI,CAC/B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,QAAQ,CAC/C,CAAC;QACF,IAAwB,CAAA,wBAAA,GAAG,EAAE,CAAC;QAC9B,IAA0B,CAAA,0BAAA,GAAG,CAAC,CAAC;QAC/B,IAAc,CAAA,cAAA,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1E,IAAsB,CAAA,sBAAA,GAAG,EAAE,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAkB,EAAE,CAAC;QAG7B,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;QAE/B,IAAQ,CAAA,QAAA,GAAgC,gBAAgB,CAAC;AACzD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAGzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxE,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE;AAChC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACxD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC;aACjC,KAAK,CAAC,GAAG,CAAC;AACV,aAAA,GAAG,CAAC,CAAC,GAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,SAAA;AAED,QAAA,IAAI,CAAC,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAC/D,IAAI,CAAC,oBAAoB,GAAG,IAAI,IAAI,CAClC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CACtE,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC;AACxE,QAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AACrC,YAAA,MAAM,YAAY,GAAGyB,QAAM,CACzB,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,EACrC,sBAAsB,CACvB,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,sBAAsB,GAAG,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAC7D,SAAA;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AACrD,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,eAAe,EAAE;AACnD,YAAA,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AAC5C,YAAA,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;AACrC,SAAA;KACF;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC9C,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,KAAK,CAC7B,CAAC;AACH,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;AACnE,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAEA,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AAChC,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,KAAK,CAAC;AAC3C,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;AACjC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;AACjC,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAClD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CACzB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,OAAO;YACxB,CAAC;gBACD,GAAG;AACH,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACnD,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,IAAI,CAAC,WAAW,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,QAAQ,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;AACpD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,SAAS;AAC1B,YAAA,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;AAC5C,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACxE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,cAAc,CAAC,WAAmB,EAAA;QAChC,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,QAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAElC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YAClD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;QACH,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,WAAW;AACT,gBAAA,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;AACpE,SAAA;QACD,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,WAAW;gBACT,kBAAkB;AAClB,oBAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;oBACtB,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;QACD,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,WAAW;AACT,gBAAA,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;AACxE,SAAA;QACD,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,WAAW;gBACT,QAAQ;AACR,oBAAA,IAAI,CAAC,WAAW;oBAChB,KAAK;AACL,oBAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;oBACtB,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;+GAvMU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,uNCVrC,kyCAwCA,EAAA,MAAA,EAAA,CAAA,wNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgN,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD9Ba,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,kyCAAA,EAAA,MAAA,EAAA,CAAA,wNAAA,CAAA,EAAA,CAAA;oGAKvB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAmBG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MExBI,yBAAyB,CAAA;AA2BpC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QA1B7C,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QAExB,IAAe,CAAA,eAAA,GAAG,YAAY,CAAC;AAC/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACpC,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAClB,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;AAElB,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,IAAI,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,IAAI,CAChC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,QAAQ,CAChD,CAAC;QACF,IAAyB,CAAA,yBAAA,GAAG,EAAE,CAAC;QAC/B,IAA2B,CAAA,2BAAA,GAAG,CAAC,CAAC;QAChC,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACzD,IAAuB,CAAA,uBAAA,GAAG,EAAE,CAAC;QAE7B,IAAc,CAAA,cAAA,GAAkB,EAAE,CAAC;QACnC,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;QAE/B,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;QAE/B,IAAQ,CAAA,QAAA,GAAgC,gBAAgB,CAAC;AACzD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAEzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAC3D,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;AACF,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE;AAChC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACxD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC;aAClC,KAAK,CAAC,GAAG,CAAC;AACV,aAAA,GAAG,CAAC,CAAC,GAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,SAAA;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC/C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC;AACzE,QAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AACrC,YAAA,MAAM,YAAY,GAAGvO,QAAM,CACzB,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,EACrC,sBAAsB,CACvB,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,uBAAuB,GAAG,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAC9D,SAAA;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AACrD,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,eAAe,EAAE;AACnD,YAAA,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;AACtC,SAAA;AAAM,aAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AAC5C,YAAA,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;AACtC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;AACtC,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAChD,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,KAAK,CAC7B,CAAC;AACH,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;AACnE,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAEA,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AAChC,YAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC,KAAK,CAAC;AAC5C,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACtE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAC3D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAC1B,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,OAAO;AACxB,YAAA,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7D,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;AACrD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,eAAe,CACrB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CACvC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,IAAI,CAC5C,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;AAC3C,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACzE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,uBAAuB,CAAC,YAAoB,EAAA;QAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACrD,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;QACH,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,YAAY,KAAK,CAAC,EAAE;YACtB,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;aAAM,IAAI,YAAY,KAAK,CAAC,EAAE;YAC7B,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;aAAM,IAAI,YAAY,KAAK,CAAC,EAAE;YAC7B,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;AAAM,aAAA,IAAI,YAAY,KAAK,EAAE,IAAI,YAAY,KAAK,EAAE,EAAE;YACrD,WAAW;gBACT,YAAY;oBACZ,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;aAAM,IAAI,YAAY,KAAK,EAAE,EAAE;YAC9B,WAAW;gBACT,YAAY;oBACZ,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;aAAM,IAAI,YAAY,KAAK,EAAE,EAAE;YAC9B,WAAW;gBACT,YAAY;oBACZ,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;aAAM,IAAI,YAAY,GAAG,CAAC,EAAE;YAC3B,WAAW;gBACT,YAAY;oBACZ,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,eAAe,CAAC;AACxB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;+GA3NU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,wNCVtC,kyCAuCA,EAAA,MAAA,EAAA,CAAA,yCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgN,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD7Ba,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,kyCAAA,EAAA,MAAA,EAAA,CAAA,yCAAA,CAAA,EAAA,CAAA;oGAKxB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAqBG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;ME5BI,2BAA2B,CAAA;AAOtC,IAAA,WAAA,GAAA;QANS,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC,CAAC;QACnB,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QACV,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;AACT,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;KAC7B;IAEhB,QAAQ,GAAA;QACN,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B,EAAE,IAAI,CAAC,CAAC;KACV;+GAbU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,6MCPxC,2sCA2BM,EAAA,MAAA,EAAA,CAAA,88EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiO,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDpBO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,2sCAAA,EAAA,MAAA,EAAA,CAAA,88EAAA,CAAA,EAAA,CAAA;0EAK3B,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;MEHI,2BAA2B,CAAA;AA0BtC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAzB7C,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QAExB,IAAiB,CAAA,iBAAA,GAAG,YAAY,CAAC;AACjC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACtC,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAiB,CAAA,iBAAA,GAAG,CAAC,CAAC;AACtB,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,IAAI,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,IAAI,CAClC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,GAAG,QAAQ,CAClD,CAAC;QACF,IAA2B,CAAA,2BAAA,GAAG,EAAE,CAAC;QACjC,IAA6B,CAAA,6BAAA,GAAG,CAAC,CAAC;QAClC,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAExD,IAAc,CAAA,cAAA,GAAkB,EAAE,CAAC;AAE1B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAE1C,IAAQ,CAAA,QAAA,GAAgC,gBAAgB,CAAC;QAElE,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;AAE9B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;AACzE,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,iBAAiB;YACpB,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtE,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE;AAChC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACxD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxE,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACjD,QAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,2BAA2B,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,SAAA;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,IAAI,CACrC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CACpC,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACjD,QAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AACrC,YAAA,MAAM,YAAY,GAAGxF,QAAM,CACzB,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,EACrC,sBAAsB,CACvB,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,yBAAyB,GAAG,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAChE,SAAA;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AACrD,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,eAAe,EAAE;AACnD,YAAA,IAAI,CAAC,6BAA6B,GAAG,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AAC5C,YAAA,IAAI,CAAC,6BAA6B,GAAG,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,6BAA6B,GAAG,CAAC,CAAC;AACxC,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;AACnE,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAEA,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;AACpC,SAAA;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,aAAa,GACf,IAAI,CAAC,iBAAiB,KAAK,CAAC;cACxB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,cAAE,IAAI,CAAC,iBAAiB,KAAK,CAAC;kBAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;kBAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC;AAEhD,QAAA,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,OAAO;AACxB,YAAA,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,aAAa,GAAG,GAAG,GAAG,GAAG,CAAC;AAClE,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,WAAW,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACvD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,iBAAiB,CACvB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC;AAC7C,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAClD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAC5B,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,cAAc,CAAC,cAAsB,EAAA;QACnC,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,IAAI,cAAc,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;aAAM,IAAI,cAAc,KAAK,CAAC,EAAE;YAC/B,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;aAAM,IAAI,cAAc,KAAK,CAAC,EAAE;YAC/B,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;AAAM,aAAA,IAAI,cAAc,KAAK,EAAE,IAAI,cAAc,KAAK,EAAE,EAAE;YACzD,WAAW;gBACT,cAAc;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;aAAM,IAAI,cAAc,KAAK,EAAE,EAAE;YAChC,WAAW;gBACT,cAAc;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;aAAM,IAAI,cAAc,KAAK,EAAE,EAAE;YAChC,WAAW;gBACT,cAAc;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;aAAM,IAAI,cAAc,GAAG,CAAC,EAAE;YAC7B,WAAW;gBACT,cAAc;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC3C,MAAM;oBACN,IAAI,CAAC,iBAAiB,CAAC;AAC1B,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;+GApNU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,0NCVxC,uwCAsCA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgN,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD5Ba,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,uwCAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,CAAA;oGAK1B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAiBG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAII,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MExBI,0BAA0B,CAAA;AA2BrC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QA1BtD,IAAgB,CAAA,gBAAA,GAAG,YAAY,CAAC;AAChC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACrC,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QACnB,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;AACpB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,IAAI,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,IAAI,CACjC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,GAAG,QAAQ,CACjD,CAAC;QACF,IAA0B,CAAA,0BAAA,GAAG,EAAE,CAAC;QAChC,IAA4B,CAAA,4BAAA,GAAG,CAAC,CAAC;QACjC,IAAgB,CAAA,gBAAA,GAAkB,EAAE,CAAC;QACrC,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAE1B,IAAc,CAAA,cAAA,GAAkB,EAAE,CAAC;QACnC,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;QAC/B,IAAe,CAAA,eAAA,GAAkB,EAAE,CAAC;QAE3B,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QACf,IAAQ,CAAA,QAAA,GAAgC,gBAAgB,CAAC;AACzD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEnD,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;AAE9B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAC3D,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;AACF,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE;AAChC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACxD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC;aACnC,KAAK,CAAC,GAAG,CAAC;AACV,aAAA,GAAG,CAAC,CAAC,GAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAChD,QAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,SAAA;AAED,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAChD,QAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AACrC,YAAA,MAAM,YAAY,GAAGxO,QAAM,CACzB,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,EACrC,sBAAsB,CACvB,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,wBAAwB,GAAG,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAC/D,SAAA;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AACrD,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,eAAe,EAAE;AACnD,YAAA,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AAC5C,YAAA,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC;AACvC,SAAA;KACF;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAClD,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,KAAK,CAC7B,CAAC;AACH,SAAA;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;AACnC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;AACnC,SAAA;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;AACnE,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAEA,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,oBAAoB,GAAA;QAClB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAExE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,CAAC,OAAO;AACxB,YAAA,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACnE,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,UAAU,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;QAChD,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACzD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;AAEhC,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AAC5C,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAC3D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAC3B,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,uBAAuB,CAAC,aAAqB,EAAA;QAC3C,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACtD,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;QAEH,IAAI,aAAa,KAAK,CAAC,EAAE;YACvB,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;aAAM,IAAI,aAAa,KAAK,CAAC,EAAE;YAC9B,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;aAAM,IAAI,aAAa,KAAK,CAAC,EAAE;YAC9B,WAAW;gBACT,eAAe;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;AAAM,aAAA,IAAI,aAAa,KAAK,EAAE,IAAI,aAAa,KAAK,EAAE,EAAE;YACvD,WAAW;gBACT,aAAa;oBACb,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;aAAM,IAAI,aAAa,KAAK,EAAE,EAAE;YAC/B,WAAW;gBACT,aAAa;oBACb,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;aAAM,IAAI,aAAa,KAAK,EAAE,EAAE;YAC/B,WAAW;gBACT,aAAa;oBACb,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;aAAM,IAAI,aAAa,GAAG,CAAC,EAAE;YAC5B,WAAW;gBACT,aAAa;oBACb,cAAc;AACd,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC;AACzB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;+GAvNU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,yNCVvC,6tCAqCA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgN,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD3Ba,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,6tCAAA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA,CAAA;oGAuBzB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEzBI,wBAAwB,CAAA;AA4BnC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QA3BtD,IAAS,CAAA,SAAA,GAAe,EAAE,CAAC;QAE3B,IAAc,CAAA,cAAA,GAAW,YAAY,CAAC;QACtC,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAY,CAAA,YAAA,GAAW,CAAC,CAAC;QACzB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,IAAI,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,IAAI,CAC/B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,QAAQ,CAC/C,CAAC;QACF,IAAwB,CAAA,wBAAA,GAAW,EAAE,CAAC;QACtC,IAA0B,CAAA,0BAAA,GAAW,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAElD,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;QAEtB,IAAQ,CAAA,QAAA,GAAgC,gBAAgB,CAAC;QAEzD,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;AAEf,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAEzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAClD,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAC3D,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;AACF,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE;AAChC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACxD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtE,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,SAAA;AAED,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9C,QAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AACrC,YAAA,MAAM,YAAY,GAAGvO,QAAM,CACzB,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,EACrC,sBAAsB,CACvB,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,sBAAsB,GAAG,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAC7D,SAAA;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AACrD,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,eAAe,EAAE;AACnD,YAAA,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AAC5C,YAAA,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;AACrC,SAAA;KACF;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;AACnE,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAEA,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;AACjC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;AACjC,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;;IAGD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAC3D,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CACzB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,OAAO;YACxB,CAAC;gBACD,GAAG;AACH,gBAAA,IAAI,CAAC,SAAS;gBACd,GAAG;AACH,iBAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACzB,GAAG;gBACH,IAAI,CAAC,WAAW,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,QAAQ,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;AACpD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,uBAAuB,CAAC,WAAgB,EAAA;QACtC,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,WAAW,KAAK,CAAC,EAAE;AACrB,YAAA,WAAW,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC3C,SAAA;AAAM,aAAA;AACL,YAAA,WAAW,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC3C,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;;IAGD,oBAAoB,GAAA;QAClB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,eAAe;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YAClD,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YACzB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YACzB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;;IAGD,oBAAoB,GAAA;QAClB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,MAAM;AACN,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,oBAAoB;AACpB,oBAAA,IAAI,CAAC,WAAW;oBAChB,YAAY;oBACZ,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,MAAM;AACN,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,oBAAoB;AACpB,oBAAA,IAAI,CAAC,WAAW;oBAChB,YAAY;oBACZ,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,WAAW;gBACT,MAAM;AACN,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,oBAAoB;AACpB,oBAAA,IAAI,CAAC,WAAW;oBAChB,YAAY;oBACZ,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;;YAEtB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,SAAS;AACT,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,oBAAoB;AACpB,oBAAA,IAAI,CAAC,WAAW;oBAChB,YAAY;oBACZ,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YAClD,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YACzB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YACzB,WAAW;AACT,gBAAA,IAAI,CAAC,SAAS;oBACd,cAAc;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACpC,MAAM;oBACN,IAAI,CAAC,cAAc,CAAC;AACvB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;+GA7SU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,uNCVrC,wvCAuCA,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgN,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD7Ba,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,wvCAAA,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,CAAA;oGAwBvB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEXI,yBAAyB,CAAA;IA2BpC,WACU,CAAA,gBAAkC,EAClC,aAA4B,EAAA;QAD5B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QA3BtC,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;QAC5B,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAClB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QACnB,IAAgB,CAAA,gBAAA,GAAQ,YAAY,CAAC;QACrC,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;AACrB,QAAA,IAAA,CAAA,UAAU,GAAsB;AAC9B,YAAA,GAAG,EAAE,EAAE;SACR,CAAC;AACF,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAO,CAAA,OAAA,GAAGxO,QAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAGjE,IAAQ,CAAA,QAAA,GAAgC,gBAAgB,CAAC;QAEzD,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;AAEd,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAOjD;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;AACzD,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAC3D,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;QACF,IAAI,CAAC,YAAY,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3C,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAChD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;KACF;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,SAAS,GAAGA,QAAM,CACtB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,WAAW,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,WAAW,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAE,CAAA,EACxF,oBAAoB,CACrB,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;AACtD,QAAA,IAAI,CAAC,eAAe;AAClB,YAAA,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAC5BA,QAAM,CACJ,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAClD,qBAAqB,CACtB,CAAC,IAAI,EAAE,GAAG,IAAI,CAChB,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,cAAc,GAAA;QACZ,MAAM,OAAO,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,cAAc,CAAC,OAA8B,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,KAAK,CAAC;AACnC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,KAAK,CAAC;AACnC,SAAA;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,OAAO,IAAI,CAAC,cAAc,IAAI,QAAQ,EAAE;AAC1C,YAAA,IAAI,CAAC,cAAc,GAAGA,QAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;AAC7D,SAAA;QACD,IAAI,SAAS,GAAGA,QAAM,CACpB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC3B,GAAG;aACF,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACpC,GAAG;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,GAAG;YACH,IAAI,CAAC,gBAAgB,EACvB,oBAAoB,CACrB,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,eAAe,GAAGA,QAAM,CAAC,SAAS,GAAG,IAAI,CAAC;aAC5C,MAAM,CAAC,sBAAsB,CAAC;AAC9B,aAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,IAAI,CAAC;AAChC,QAAA,MAAM,OAAO,GAAGA,QAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;QACrC,IAAI,SAAS,GAAGA,QAAM,CACpB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC3B,GAAG;aACF,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACpC,GAAG;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,GAAG;YACH,IAAI,CAAC,gBAAgB,EACvB,oBAAoB,CACrB,CAAC,IAAI,EAAE,CAAC;AACT,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI;aAC9B,MAAM,CAAC,sBAAsB,CAAC;AAC9B,aAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,EAAE,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;AACnD,SAAA;QACD,IAAI,CAAC,YAAY,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;QAE3C,IAAI,CAAC,aAAa,CAAC,WAAW;YAC5B,WAAW;AACX,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;gBACxB,GAAG;gBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC1C,GAAG;AACH,gBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBAC5B,MAAM;gBACN,IAAI,CAAC,gBAAgB,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO;YACxB,CAAC;gBACD,GAAG;AACH,iBAAC,IAAI,CAAC,eAAe,KAAK,EAAE;AAC1B,sBAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACxB,GAAG;yBACF,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAC3B,GAAG;AACH,wBAAA,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AACtB,sBAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,UAAU,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACtD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,gBAAgB,CACtB,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAC,IAAI,CAAC;QACvE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;KACnC;AAGD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,IAAI,CAAC,eAAe;YAC3B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAChC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D;+GA7LU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAsE,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAwBH,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjD7C,wrIAqIA,EAAA,MAAA,EAAA,CAAA,sjSAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhK,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8E,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgC,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiI,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8I,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAtT,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD5Ga,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,wrIAAA,EAAA,MAAA,EAAA,CAAA,sjSAAA,CAAA,EAAA,CAAA;6HAKT,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBAkBd,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAEP,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBA4J5D,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MElM/B,wBAAwB,CAAA;AAmCnC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAlC7C,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;;QAIxB,IAAc,CAAA,cAAA,GAAe,EAAE,CAAC;QAChC,IAAe,CAAA,eAAA,GAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACxE,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAChC,IAAU,CAAA,UAAA,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAqB,CAAA,qBAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,IAAI,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,IAAI,CACjC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,GAAG,QAAQ,CACjD,CAAC;QACF,IAA0B,CAAA,0BAAA,GAAG,EAAE,CAAC;QAChC,IAA4B,CAAA,4BAAA,GAAG,CAAC,CAAC;QACjC,IAAkB,CAAA,kBAAA,GAAG,CAAC,CAAC;QACvB,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;QACjB,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;QACjB,IAAmB,CAAA,mBAAA,GAAG,EAAE,CAAC;QACzB,IAAuB,CAAA,uBAAA,GAAG,CAAC,CAAC;QAC5B,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,IAAmB,CAAA,mBAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAErC,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;QAC/B,IAAc,CAAA,cAAA,GAAkB,EAAE,CAAC;AAE1B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEnD,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;AAE9B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAa,KACnE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;AACF,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,uBAAuB;YAC1B,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxE,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE;AAChC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACxD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC1E;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChE,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7D,QAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,CAAC,CAAC;iBACxC,KAAK,CAAC,GAAG,CAAC;AACV,iBAAA,GAAG,CAAC,CAAC,GAAQ,KAAK,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,EAAE;AAChC,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,uBAAuB;gBAC1B,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAC/D,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,SAAA;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AACrD,QAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AACrC,YAAA,MAAM,YAAY,GAAG6E,QAAM,CACzB,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,EACrC,sBAAsB,CACvB,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,wBAAwB,GAAG,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAC/D,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,eAAe,EAAE;AACnD,YAAA,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AAC5C,YAAA,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC;AACvC,SAAA;KACF;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAChD,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,KAAK,CAC7B,CAAC;AACH,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;AACjC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;AACjC,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,cAAc,CAAC,KAAU,EAAE,IAAS,EAAA;AAClC,QAAA,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,YAAA,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,GAAG;YAC1B,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAChC,YAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3D;AACD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe;AAClB,gBAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACvD,SAAA;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;AACT,SAAA;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;AACnE,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC,MAAM;AACtB,kBAAEA,QAAM,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,sBAAsB,CAAC,CAAC,IAAI,EAAE;kBACjE,SAAS,CAAC;AACf,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAA;QAC/B,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,kBAAkB,GAAA;;QAEhB,IAAI,aAAa,GAAQ,EAAE,CAAA;AAC3B,QAAA,IAAI,gBAAgB,CAAC;QACrB,QAAQ,IAAI,CAAC,kBAAkB;AAC7B,YAAA,KAAK,CAAC;AACJ,gBAAA,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9C,gBAAA,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;gBACrC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAChD,gBAAA,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC;AAC/C,gBAAA,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;gBAEzD,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC7C,MAAM;AACT,SAAA;QACD,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,gBAAgB,EAAE,OAAO,CAAC;QACvD,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,gBAAgB,EAAE,WAAW,CAAC;AAC/D,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,QAAQ,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAChE,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC1D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;IAED,kBAAkB,GAAA;QAChB,OAAO;AACL,YAAA,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe;AAC3D,YAAA,WAAW,EACT,iBAAiB,GAAG,IAAI,CAAC,eAAe,GAAG,mBAAmB;SACjE,CAAC;KACH;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACrD,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO;YACL,OAAO,EACL,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe;AACvE,YAAA,WAAW,EACT,QAAQ;AACR,gBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxB,OAAO;AACP,gBAAA,IAAI,CAAC,eAAe;gBACpB,mBAAmB;SACtB,CAAC;KACH;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,aAAa,GACf,IAAI,CAAC,uBAAuB,KAAK,CAAC;cAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,cAAE,IAAI,CAAC,uBAAuB,KAAK,CAAC;kBAClC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;kBAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,QAAA,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QACpD,OAAO;AACL,YAAA,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe;AACvE,YAAA,WAAW,EACT,QAAQ;AACR,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,uBAAuB,CAAC;gBACjD,OAAO;AACP,gBAAA,IAAI,CAAC,eAAe;gBACpB,mBAAmB;YACnB,aAAa;SAEhB,CAAC;KACH;IAED,kBAAkB,GAAA;QAChB,OAAO;YACL,OAAO,EACL,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,8BAA8B,GAAG,IAAI,CAAC,eAAe;AACrE,YAAA,WAAW,EACT,iBAAiB,GAAG,IAAI,CAAC,eAAe,GAAG,mBAAmB;SACjE,CAAC;KACH;+GA5QU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,iMCVrC,23EAoCM,EAAA,MAAA,EAAA,CAAA,mzEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3J,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiX,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1BO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,23EAAA,EAAA,MAAA,EAAA,CAAA,mzEAAA,CAAA,EAAA,CAAA;oGAKvB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBA4BG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;ME9BI,iBAAiB,CAAA;AAQ7B,IAAA,WAAA,CAA4B,MAAuB,EAAA;QAP1C,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAI,CAAA,IAAA,GAAqC,cAAc,CAAC;QACjE,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QAEvB,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;QACvB,IAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAG5B,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,qBAAqB,CAAC;KAC9E;IAEA,QAAQ,GAAA;QACJ,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAGD,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;AAChE,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACzB,SAAA;AAAM,aAAA;AACL,YAAA,IAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACzB,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,aAAA;AACF,SAAA;KACF;+GA/BU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxW,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,6HCb9B,8/DA4Cc,EAAA,MAAA,EAAA,CAAA,weAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnCF,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,gRAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIzC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,8/DAAA,EAAA,MAAA,EAAA,CAAA,weAAA,CAAA,EAAA,CAAA;;0BAYrC,QAAQ;4CAPhB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MEDM,0BAA0B,CAAA;AAPvC,IAAA,WAAA,GAAA;QAUW,IAAI,CAAA,IAAA,GAAW,CAAC,CAAC;AAGhB,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAO,CAAC;AAIxD,KAAA;+GAVY,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,ECdvC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,yvHAgEM,EDtDM,MAAA,EAAA,CAAA,0hIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3C,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkR,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvP,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,EAAE,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,gRAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA2V,yBAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI1F,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EACtB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,yvHAAA,EAAA,MAAA,EAAA,CAAA,0hIAAA,CAAA,EAAA,CAAA;8BAM7F,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBAEI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;;;METI,oCAAoC,CAAA;IA4C/C,WACU,CAAA,gBAAkC,EAClC,aAA4B,EAAA;QAD5B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QA7C7B,IAA6B,CAAA,6BAAA,GAAQ,EAAE,CAAC;AAEvC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAE,CAAC;QAEtD,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAoB,CAAA,oBAAA,GAAQ,EAAE,CAAC;QAC/B,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAwB,CAAA,wBAAA,GAAQ,EAAE,CAAC;QAGnC,IAAwB,CAAA,wBAAA,GAAW,EAAE,CAAC;QACtC,IAAyB,CAAA,yBAAA,GAAW,CAAC,CAAC;QACtC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAEnB,QAAA,IAAA,CAAA,qBAAqB,GAAG;AACtB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,oBAAoB,EAAE,EAAE;AACxB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,sBAAsB,EAAE,EAAE;gBAC1B,cAAc,EAAE,CAAC,CAAC,CAAC;AACpB,aAAA;AACD,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,QAAQ,EAAE,UAAU;SACrB,CAAC;QAGF,IAAoB,CAAA,oBAAA,GAAU,EAAE,CAAC;KAM5B;IAEL,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;KAC5C;IAGD,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB;AACnB,cAAE,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAClD,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE,IAAI,CAAC;AACtC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;AACrD,YAAA,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;AAEtG,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC,cAAmB,KAAK,cAAc,CAAC,EAAE,KAAK,IAAI,CAAC,4BAA4B,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAClL,YAAA,IAAG,iBAAiB,EAAE;AACpB,gBAAA,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;AAChD,aAAA;AACH,SAAC,EAAE,CAAC,KAAU,KAAI;AAChB,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,sCAAsC,CAAC,CAAC;AACjE,SAAC,CAAC,CAAC;KACN;AAED,IAAA,wBAAwB,CAAC,UAAkB,EAAA;AACzC,QAAA,IAAI,CAAC,yBAAyB,GAAG,UAAU,CAAC;QAC5C,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC;QACnE,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;QACtE,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAGD,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;KACpC;AACD,IAAA,IAAI,CAAC,KAAU,EAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;KACrE;IAGD,MAAM,GAAA;QACJ,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;AACtE,QAAA,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC;QACnE,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAID,IAAA,sBAAsB,CAAC,cAAmB,EAAA;QACxC,IAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;YACxD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAAO,KAAK,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC,CAAC;AACrG,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACnD,SAAA;KACF;;AAIQ,IAAA,qBAAqB,CAAC,cAAmB,EAAA;AAC9C,QAAA,IAAI,CAAC,cAAc;AAAE,YAAA,OAAO,EAAE,CAAC;AAE/B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAElE,OAAO,CAAC,cAAc,CAAC,gBAAgB,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAS,KAC3D,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CACjD,CAAC;KACH;;IAIO,aAAa,CAAC,KAAY,EAAE,YAAsC,EAAA;AACxE,QAAA,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,KAAK;AAChC,YAAA,GAAG,IAAI;AACP,YAAA,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,SAAA,CAAC,CAAC,CAAC;KACL;AAEO,IAAA,QAAQ,CAAC,GAAU,EAAA;QACzB,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KAC1D;AAEO,IAAA,gBAAgB,CAAC,QAAa,EAAE,aAAuB,EAAE,OAAyB,EAAA;AACxF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACtB,OAAO,CAAC,aAAa,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzE,SAAA;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvF,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAO,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAChE;AAEO,IAAA,wBAAwB,CAAC,QAAa,EAAE,SAAmB,EAAE,KAAuB,EAAA;AAC1F,QAAA,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;YAClC,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACnE,SAAA;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC,oBAAoB,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAC3H,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAO,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC5D;AAEO,IAAA,qBAAqB,CAAC,IAAS,EAAE,OAAyB,EAAE,KAAuB,EAAA;QAEzF,IAAK,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE;AAC/C,aAAA,MAAM,CAAC,CAAC,EAAO,KAAK,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAA;QACvE,IAAG,eAAe,EAAE,MAAM,KAAK,CAAC,IAAI,IAAI,EAAE,YAAY,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;AAExG,YAAA,eAAe,GAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,EAAO,KAAI;gBAC/D,OAAO;AACL,oBAAA,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1B,oBAAA,MAAM,EAAE,QAAQ;AAChB,oBAAA,QAAQ,EAAE,EAAE;iBACb,CAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;QACD,eAAe,GAAI,eAAe,CAAC,GAAG,CAAC,CAAC,EAAO,MAAM;AACnD,YAAA,GAAG,EAAE;AACL,YAAA,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,IAAI,EAAE,EAAE,OAAO,CAAC;AACpF,YAAA,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,IAAI,CAAC,qBAAqB,IAAI,EAAE,EAAE,KAAK,CAAC;AACrG,SAAA,CAAC,CAAC,CAAC;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACvG,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxD,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,EAAE;YAClE,YAAY,EAAE,IAAI,EAAE,YAAY;YAChC,MAAM,EAAE,IAAI,EAAE,MAAM;YACpB,eAAe;YACd,WAAW;YACX,KAAK;SACP,CAAC;KACH;AAED,IAAA,uBAAuB,CAAC,eAAoB,EAAA;AAC1C,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;AAC5B,QAAA,eAAe,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;YACnC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/C,QAAA,OAAO,WAAW,CAAC;KACpB;AAEH,IAAA,MAAM,CAAC,GAAQ,EAAA;QACb,OAAO,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC,EAAO,KAAK,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;KACrG;AAEL,IAAA,YAAY,CAAC,IAAY,EAAA;QACvB,MAAM,SAAS,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,QAAA,IAAG,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;YACxB,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9E,SAAA;QACD,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;KACzE;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,QAAQ,EAAE;YAChD,OAAO;AACR,SAAA;QACD,IAAI,CAAC,4BAA4B,GAAI;AACnC,YAAA,YAAY,EAAE;AACZ,gBAAA,QAAQ,EAAE,IAAI,CAAC,6BAA6B,CAAC,QAAQ;AACrD,gBAAA,oBAAoB,EAAE,IAAI,CAAC,6BAA6B,CAAC,oBAAoB;AAC9E,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,KAAK,EAAE,IAAI,CAAC,6BAA6B,CAAC,KAAK;AAC/C,gBAAA,EAAE,EAAE,IAAI,CAAC,6BAA6B,CAAC,EAAE;AACzC,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,eAAe,EAAE,CAAC;AAChB,wBAAA,QAAQ,EAAE,IAAI,CAAC,6BAA6B,CAAC,QAAQ;AACrD,wBAAA,oBAAoB,EAAE,IAAI,CAAC,6BAA6B,CAAC,oBAAoB;qBAC9E,CAAC;AACF,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;SACF,CAAA;KACF;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAA;KAC1C;+GAlPU,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAzN,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAsE,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oCAAoC,8OCXjD,43SA2KM,EAAA,MAAA,EAAA,CAAA,gmUAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhK,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5C,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4P,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2E,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoT,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvK,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7C,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqN,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,MAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhKO,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBALhD,SAAS;+BACE,mCAAmC,EAAA,QAAA,EAAA,43SAAA,EAAA,MAAA,EAAA,CAAA,gmUAAA,CAAA,EAAA,CAAA;6HAKpC,6BAA6B,EAAA,CAAA;sBAArC,KAAK;gBAEI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,sBAAsB,EAAA,CAAA;sBAA/B,MAAM;;;MEJI,gCAAgC,CAAA;AA0B3C,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAzB7C,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QAGxB,IAAY,CAAA,YAAA,GAAW,YAAY,CAAC;QACpC,IAAmB,CAAA,mBAAA,GAAG,CAAC,CAAC;QACxB,IAAoB,CAAA,oBAAA,GAAG,CAAC,CAAC;QACzB,IAAoB,CAAA,oBAAA,GAAG,CAAC,CAAC;QACzB,IAAkB,CAAA,kBAAA,GAAG,YAAY,CAAC;QAClC,IAA4B,CAAA,4BAAA,GAAe,EAAE,CAAC;QAC9C,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAC5B,IAAsB,CAAA,sBAAA,GAAG,CAAC,CAAC;QAC3B,IAAW,CAAA,WAAA,GAAG,YAAY,CAAC;QAE3B,IAA6B,CAAA,6BAAA,GAAQ,EAAE,CAAC;AAE/B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEnD,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;AAE9B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;AAC3C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;QAC9C,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;KAE0B;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,6BAA6B;AACtD,cAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,MAAM,GAAG,CAAC;cAC3D,KAAK,CAAC;KACX;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACtD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACtD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QACxD,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC;QACnF,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,6BAA6B;AACtD,cAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,MAAM,GAAG,CAAC;cAC3D,KAAK,CAAC;KACX;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC;AACzC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC;AACzC,SAAA;QACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;AAED,IAAA,yBAAyB,CAAC,KAAU,EAAA;AAClC,QAAA,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;AAC3C,QAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK,EAAE,cAAc,CAAC;QACxD,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAC7C,QAAA,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;AAEvC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,yBAAyB,EAAE;YACjD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CACpC,IAAI,CAAC,aAAa,EAAE,yBAAyB,CAC9C,CAAC;AACH,SAAA;AAED,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE;AAChC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACxD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;QACzB,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtD,QAAA,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;AAC9B,SAAA;QACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;IAED,wBAAwB,GAAA;QACtB,IAAI,CAAC,aAAa,CAAC,WAAW;AAC5B,YAAA,IAAI,CAAC,mBAAmB;gBACxB,GAAG;AACH,iBAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;gBAC/C,uBAAuB;iBACtB,IAAI,CAAC,4BAA4B;AAClC,oBAAA,IAAI,CAAC,6BAA6B,EAAE,cAAc,EAAE,KAAK;AACvD,sBAAE,IAAI,CAAC,6BAA6B,EAAE,cAAc,EAAE,KAAK;sBACzD,EAAE,CAAC,CAAC;QACV,IAAI,CAAC,aAAa,CAAC,OAAO;AACxB,YAAA,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAC7D,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;AACxD,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CACpE,IAAI,CAAC,kBAAkB,CACxB,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,aAAa,CAAC,0BAA0B,GAAG;AAC9C,YAAA,KAAK,EAAE,IAAI,CAAC,6BAA6B,EAAE,cAAc,EAAE,KAAK;AAChE,YAAA,EAAE,EAAE,IAAI,CAAC,6BAA6B,EAAE,cAAc,EAAE,EAAE;SAC3D,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG;YAChC,QAAQ,EAAE,IAAI,CAAC,mBAAmB;AAClC,YAAA,cAAc,EAAE,IAAI,CAAC,6BAA6B,EAAE,cAAc,EAAE,EAAE;AACtE,YAAA,QAAQ,EAAE,IAAI,CAAC,6BAA6B,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ;AAC1F,YAAA,oBAAoB,EAAE,IAAI,CAAC,6BAA6B,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,oBAAoB;SACnH,CAAA;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,uBAAuB,CAAC,KAAU,EAAA;QAChC,IAAI,KAAK,KAAK,oBAAoB,EAAE;AAClC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACrC;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,6BAA6B,GAAG,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,6BAA6B;AACtD,cAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,MAAM,GAAG,CAAC;cAC3D,KAAK,CAAC;AACV,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;KACnC;+GAzJU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA7N,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,iTCX7C,6uHAiEM,EAAA,MAAA,EAAA,CAAA,qiIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3J,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+H,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyX,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oCAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA1T,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtDO,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,gCAAgC,EAAA,QAAA,EAAA,6uHAAA,EAAA,MAAA,EAAA,CAAA,qiIAAA,CAAA,EAAA,CAAA;oGAKjC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,0BAA0B,EAAA,CAAA;sBAAlC,KAAK;gBAaG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MEvBI,yBAAyB,CAAA;AAcpC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAb7C,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,CAAC;AACjB,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,CAAC;AAGjC,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAEvE,IAAgB,CAAA,gBAAA,GAAG,iBAAiB,CAAC;AAE5B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACnD,IAAgB,CAAA,gBAAA,GAAQ,eAAe,CAAC;AAE9B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEK;IAE1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxE,QAAA,IACE,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE;AAChC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACzD;YACA,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,mBAAmB;YACtB,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7E;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,yCAAyC,CAAC;QAC3E,IAAI,CAAC,aAAa,CAAC,OAAO;YACxB,EAAE;gBACF,GAAG;AACH,gBAAA,IAAI,CAAC,YAAY;gBACjB,GAAG;AACH,iBAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;AAClD,gBAAA,IAAI,CAAC;AACP,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,UAAU,CAAC;AACrC,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,YAAY,CAAC;QAC7C,IAAI,CAAC,aAAa,CAAC,UAAU;AAC3B,YAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAClE,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChD;+GAlEU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA0F,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,8PCTtC,mRAOM,EAAA,MAAA,EAAA,CAAA,47DAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDEO,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,mRAAA,EAAA,MAAA,EAAA,CAAA,47DAAA,CAAA,EAAA,CAAA;oGAKxB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAMG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAGI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEJI,2BAA2B,CAAA;IA6DtC,WACU,CAAA,gBAAkC,EAClC,QAAyB,EAAA;QADzB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QA9DnC,IAAY,CAAA,YAAA,GAAG,OAAO,CAAC;QACvB,IAAc,CAAA,cAAA,GAAG,SAAS,CAAC;AAGjB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAO,CAAC;AAC5C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAO,CAAC;QAC1C,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QAEf,IAAQ,CAAA,QAAA,GAAgC,gBAAgB,CAAC;AAKlE,QAAA,IAAA,CAAA,aAAa,GAAG;AACd,YAAA;AACE,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,IAAI,EAAE,WAAW;AAClB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,IAAI,EAAE,UAAU;AACjB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,kBAAkB;AACxB,gBAAA,IAAI,EAAE,aAAa;AACpB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA;SACF,CAAC;QAGF,IAAc,CAAA,cAAA,GAAQ,KAAK,CAAC;QAE5B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;KAI7B;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC/D,+BAA+B,CAChC,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAE,EAAE;YACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;QACD,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;AAC1D,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;AACzB,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACpC,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CACxC,CAAC,YAAiB,KAAK,YAAY,CAAC,IAAI,IAAI,OAAO,CACpD,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtC,aAAC,CAAC,CAAC;AACJ,SAAA;QACD,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;AACpE,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,mBAAmB,EAAE;AACpC,YAAA,IAAI,CAAC,YAAY;AACf,gBAAA,IAAI,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;AACtE,YAAA,IAAI,CAAC,cAAc;AACjB,gBAAA,IAAI,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;AAE1E,YAAA,aAAa,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACrC,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CACxC,CAAC,YAAiB,KAAK,YAAY,CAAC,IAAI,IAAI,OAAO,CACpD,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtC,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;KAClE;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,gBAAgB,GAAG,QAAQ,CAC/B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC5C,CAAC;AAEF,QAAA,QAAQ,gBAAgB;AACtB,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;gBACnC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;AAC5B,gBAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBAChC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;gBACjC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;gBAClC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;gBACnC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;AAC5B,gBAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBAChC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;AAClC,gBAAA,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;gBACpE,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;AAChC,gBAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;gBACpC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;gBACjC,MAAM;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;AAC/B,gBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;gBACnC,MAAM;AACR,YAAA,KAAK,EAAE;AACL,gBAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;gBACnC,MAAM;AACT,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;AAED,IAAA,kBAAkB,CAAC,SAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC;AAEnC,QAAA,IAAI,SAAS,CAAC,IAAI,IAAI,UAAU,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc;AACjB,gBAAA,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC/B,oBAAA,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ;AACvC,sBAAE,KAAK,GAAG,SAAS,CAAC,IAAI;AACxB,sBAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;AAC7B,SAAA;KACF;IAED,SAAS,GAAA;QACP,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjE,QAAQ,IAAI,CAAC,YAAY;AACvB,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,CAAC,EAAE;oBACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;oBACrE,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AAClB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,CAAC,EAAE;oBACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;oBACrE,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;AACP,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AAClB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,iBAAA;AAED,gBAAA,IACE,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE;oBACzB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpB,oBAAA,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAC3B;oBACA,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AACnB,iBAAA;gBAED,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,CAAC,EAAE;oBACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;oBACrE,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;AACP,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AAClB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,iBAAA;AAED,gBAAA,IACE,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE;oBACzB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpB,oBAAA,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAC3B;oBACA,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AACnB,iBAAA;gBAED,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IACE,gBAAgB,CAAC,MAAM,KAAK,CAAC;AAC7B,oBAAA,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE;AAC1B,oBAAA,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAC1C;oBACA,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AACnB,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,gBAAgB,EAAE,MAAM,GAAG,CAAC,EAAE;AAChC,oBAAA,MAAM,YAAY,GAAGpB,QAAM,CACzB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,gBAAgB,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,gBAAgB,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAE,CAAA,EACvG,oBAAoB,CACrB,CAAC,IAAI,EAAE,CAAC;oBACT,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,YAAY,EAAE;wBACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;wBACzD,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM;AACP,qBAAA;AAAM,yBAAA;wBACL,SAAS,GAAG,KAAK,CAAC;AAClB,wBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,cAAc,GAAG,CAAC,EAAE;oBACvD,SAAS,GAAG,KAAK,CAAC;AACnB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;gBACD,MAAM;AAER,YAAA,KAAK,QAAQ;gBACX,IACE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,qBAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE;wBACxB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpB,wBAAA,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,EAC9B;oBACA,SAAS,GAAG,IAAI,CAAC;AAClB,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,KAAK,CAAC;AACnB,iBAAA;gBACD,MAAM;AACR,YAAA;gBACE,SAAS,GAAG,KAAK,CAAC;AACrB,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,mBAAmB,CAAC,KAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;KACxC;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAC9B;;;;IAOD,IAAI,GAAA;QACF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACjD;IACD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC5B;+GA7SU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoB,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAyE,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,+UCjBxC,6rRAuIM,EAAA,MAAA,EAAA,CAAA,28GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnK,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyS,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtHO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,6rRAAA,EAAA,MAAA,EAAA,CAAA,28GAAA,CAAA,EAAA,CAAA;+HAQ1B,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACE,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,0BAA0B,EAAA,CAAA;sBAAlC,KAAK;;;MEpBK,6BAA6B,CAAA;AAExC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,kECP1C,i4BAkBM,EAAA,MAAA,EAAA,CAAA,gkFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvY,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDXO,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,i4BAAA,EAAA,MAAA,EAAA,CAAA,gkFAAA,CAAA,EAAA,CAAA;;;MEI3B,2BAA2B,CAAA;AAQtC,IAAA,WAAA,GAAA;QANS,IAAa,CAAA,aAAA,GAAoC,WAAW,CAAC;AAI5D,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;QACjD,IAAM,CAAA,MAAA,GAAW,IAAI,CAAC;KACL;AACjB,IAAA,WAAW,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAI,IAAI,CAAC,UAAU,CAAC;KAC/B;IACD,QAAQ,GAAA;KACP;AAED,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;+GAjBU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,wRCPxC,22IAwDA,EAAA,MAAA,EAAA,CAAA,ojLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiO,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtM,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6W,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjDa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,22IAAA,EAAA,MAAA,EAAA,CAAA,ojLAAA,CAAA,EAAA,CAAA;0EAK3B,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MENI,qCAAqC,CAAA;AAQhD,IAAA,WAAA,GAAA;AANU,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QAI7C,IAAM,CAAA,MAAA,GAAW,IAAI,CAAC;KACL;AACjB,IAAA,WAAW,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAI,IAAI,CAAC,UAAU,CAAC;KAC/B;IACC,QAAQ,GAAA;KACP;AAED,IAAA,aAAa,CAAC,IAAQ,EAAA;AACrB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;AACD,IAAA,MAAM,CAAC,OAAW,EAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAElC;+GArBQ,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qCAAqC,sSCPlD,o9KA2EM,EAAA,MAAA,EAAA,CAAA,q9KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxY,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiO,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtM,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyF,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoR,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDpEO,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBALjD,SAAS;+BACE,oCAAoC,EAAA,QAAA,EAAA,o9KAAA,EAAA,MAAA,EAAA,CAAA,q9KAAA,CAAA,EAAA,CAAA;0EAKrC,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MEaK,sBAAsB,CAAA;AAwGjC,IAAA,WAAA,CAAoB,qBAA4C,EAAA;QAA5C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAvGhE,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AAEd,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QAEpC,IAAU,CAAA,UAAA,GAAW,yBAAyB,CAAC;AAC/C,QAAA,IAAA,CAAA,YAAY,GAAkB;YACrC,WAAW;YACX,UAAU;YACV,gBAAgB;SACjB,CAAC;AACF,QAAA,IAAA,CAAA,iBAAiB,GAAG;AAClB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,IAAI,EAAE,EAAE;SACT,CAAC;AACF,QAAA,IAAA,CAAA,oBAAoB,GAAG;AACrB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,IAAI,EAAE,EAAE;SACT,CAAC;AAEF,QAAA,IAAA,CAAA,UAAU,GAAG;AACX,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,cAAc,EAAE,EAAE;SACnB,CAAC;AAEF,QAAA,IAAA,CAAA,cAAc,GAAmB;AAC/B,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,gBAAgB,EAAE,EAAE;SACrB,CAAC;QAEF,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAEjB,IAAM,CAAA,MAAA,GAAQ,EAAE,CAAC;QAI1B,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AACf,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;;QAG5B,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAIP,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;AAIxC,QAAA,IAAA,CAAA,aAAa,GAAG;AACd,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,WAAW,EAAE,CAAC;SACf,CAAC;AACF,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,gBAAgB,EAAE,CAAC;AACnB,YAAA,MAAM,EAAE,CAAC;SACV,CAAC;AACF,QAAA,IAAA,CAAA,eAAe,GAAG;AAChB,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,gBAAgB,EAAE,CAAC;AACnB,YAAA,MAAM,EAAE,CAAC;SACV,CAAC;AACF,QAAA,IAAA,CAAA,eAAe,GAAG;AAChB,YAAA,SAAS,EAAE,mBAAmB;AAC9B,YAAA,UAAU,EAAE,mBAAmB;AAC/B,YAAA,gBAAgB,EAAE,yBAAyB;SAC5C,CAAC;QACF,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;QACzB,IAA0B,CAAA,0BAAA,GAAG,KAAK,CAAC;QAEnC,IAAS,CAAA,SAAA,GACP,aAAa,CAAC;QAEhB,IAAW,CAAA,WAAA,GAAoD,WAAW,CAAC;AAC3E,QAAA,IAAA,CAAA,sBAAsB,GAAG;AACvB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,gBAAgB,EAAE,MAAM;SACzB,CAAC;KAEmE;AAErE,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/B,IAAI,CAAC,cAAc,GAAG;AACpB,gBAAA,SAAS,EAAE,IAAI,CAAC,sBAAsB,CAAC,SAAS,IAAI,EAAE;AACtD,gBAAA,UAAU,EAAE,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,EAAE;AACxD,gBAAA,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,IAAI,EAAE;aACrE,CAAC;AACH,SAAA;KACF;IACD,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,cAAc,CAAC,QAAa,EAAA;QAC1B,IAAI,QAAQ,CAAC,aAAa,EAAE;AAC1B,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAiB,EAAE,KAAU,KAAI;AAC/D,gBAAA,IAAI,GAAG,CAAC;gBACR,IAAI,KAAK,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,oBAAA,GAAG,GAAG;AACJ,wBAAA,QAAQ,EAAE,YAAY;wBACtB,MAAM,EAAE,QAAQ,CAAC,GAAG;qBACrB,CAAC;AACH,iBAAA;AAAM,qBAAA;AACL,oBAAA,GAAG,GAAG;AACJ,wBAAA,QAAQ,EAAE,YAAY;AACtB,wBAAA,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC;qBAC3C,CAAC;AACH,iBAAA;AACD,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,uBAAuB,CAAC,MAAW,EAAA;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACpC;IACD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC5B;AAED,IAAA,kBAAkB,CAAC,IAAU,EAAA;AAC3B,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AAC7C,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC7D,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB;aACvB,iBAAiB,CAAC,MAAM,CAAC;AACzB,aAAA,IAAI,CAACC,WAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,cAAc,GAAG;AACpB,oBAAA,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC;AACjC,oBAAA,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,CAAC;AAC7B,oBAAA,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,CAAC;AAC3C,oBAAA,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC;iBACxB,CAAC;aACH;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,QAAQ;AACzB,SAAA,CAAC,CAAC;KACN;AACD,IAAA,iBAAiB,CAAC,IAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACrE,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AAC7C,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC7D,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAChE,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB;aACvB,gBAAgB,CAAC,MAAM,CAAC;AACxB,aAAA,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBACnC,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;gBACzC,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC;gBAChD,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,GAAG,CAAC,WAAW,CAAC;AAClD,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACF,SAAA,CAAC,CAAC;KACN;IAED,gBAAgB,CAAC,EAAQ,EAAE,IAAU,EAAA;AACnC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;AAC5C,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC5D,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB;AACvB,aAAA,yBAAyB,CAAC,EAAE,EAAE,MAAM,CAAC;AACrC,aAAA,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;gBAClD,IAAI,CAAC,iBAAiB,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;gBACzD,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;gBAC3D,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;AAC7C,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACF,SAAA,CAAC,CAAC;KACN;AACD,IAAA,SAAS,CAAC,IAAiE,EAAA;AACzE,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,mBAAmB,CAAC,EAAQ,EAAE,IAAU,EAAA;AACtC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAClD,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAClE,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;AACvE,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB;AACvB,aAAA,oBAAoB,CAAC,EAAE,EAAE,MAAM,CAAC;AAChC,aAAA,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;gBACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;gBACjD,IAAI,CAAC,oBAAoB,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;gBAC5D,IAAI,CAAC,oBAAoB,CAAC,YAAY,GAAG,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;gBAC9D,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;AACjD,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACF,SAAA,CAAC,CAAC;KACN;IAED,UAAU,CACR,KAAU,EACV,IAAsD,EAAA;AAEtD,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC;gBACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACzD,MAAM;AACR,YAAA,KAAK,kBAAkB;AACrB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC9C,IACE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;oBAChE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,kBAAkB,CAAC,MAAM,IAAI,CAAC;oBAC9D,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,aAAa,GAAG,CAAC,EACjD;oBACA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7D,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9D,iBAAA;gBACD,MAAM;AACT,SAAA;KACF;IACD,QAAQ,CAAC,KAAU,EAAE,IAAqD,EAAA;QACxE,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,KAAK,EAAE;AACtC,oBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC;oBAClC,IAAI,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACzC,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3C,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,EAAE;AACrC,oBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACjC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE;AACvD,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA,CAAC,CAAC;AACJ,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,kBAAkB;AACrB,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,KAAK,EAAE;AAC3C,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC;oBACvC,IACE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;wBAChE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,kBAAkB,CAAC,MAAM,IAAI,CAAC;wBAC9D,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,aAAa,GAAG,CAAC,EACjD;wBACA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7D,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3D,qBAAA;AACF,iBAAA;gBACD,MAAM;AACT,SAAA;KACF;AAED,IAAA,eAAe,CAAC,IAAS,EAAA;QACvB,QAAQ,IAAI,CAAC,WAAW;AACtB,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC;AACrC,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,EAAE,CAAC;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAE1C,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC;AAEtC,gBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC1C,MAAM;AACR,YAAA,KAAK,kBAAkB;AACrB,gBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC5C,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;KACF;IACD,IAAI,GAAA;QACF,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,QAAQ,IAAI,CAAC,WAAW;AACtB,YAAA,KAAK,WAAW;AACd,gBAAA,IACE,IAAI,CAAC,YAAY,EAAE,MAAM,KAAK,CAAC;AAC/B,oBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EACvC;AACA,oBAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;AACvD,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;wBACtB,IAAI,EAAE,gBAAgB,EAAE,IAAI;wBAC5B,GAAG,EAAE,gBAAgB,EAAE,GAAG;wBAC1B,IAAI,EAAE,gBAAgB,EAAE,cAAc;wBACtC,EAAE,EAAE,gBAAgB,EAAE,EAAE;AACxB,wBAAA,WAAW,EAAE,gBAAgB,EAAE,WAAW,IAAI,EAAE;AACjD,qBAAA,CAAC,CAAC;AACJ,iBAAA;AAAM,qBAAA;oBACL,IACE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;wBAChE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,kBAAkB,CAAC,MAAM,IAAI,CAAC;wBAC9D,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,aAAa,GAAG,CAAC,EACjD;AACA,wBAAA,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;wBACtC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7D,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;wBAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC1D,qBAAA;AACF,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM;AACR,YAAA,KAAK,kBAAkB;gBACrB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBACjE,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;KACF;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,QAAQ,IAAI,CAAC,WAAW;AACtB,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;gBAC/B,MAAM;AACR,YAAA,KAAK,kBAAkB;gBACrB,IACE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;oBAChE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,kBAAkB,CAAC,MAAM,IAAI,CAAC;oBAC9D,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,aAAa,GAAG,CAAC,EACjD;AACA,oBAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAChC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;AACjC,iBAAA;gBACD,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;KACF;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,GAAG,CAAC,CAAC;KAC3C;IAED,MAAM,GAAA;QACJ,QAAQ,IAAI,CAAC,WAAW;AACtB,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,EAAE,CAAC;AACnC,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,EAAE,CAAC;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC1C,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,EAAE,CAAC;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC1C,MAAM;AACR,YAAA,KAAK,kBAAkB;AACrB,gBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC1C,MAAM;AACT,SAAA;KACF;AAED,IAAA,WAAW,CACT,IAAqE,EAAA;AAErE,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;AAChC,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,EAAE,CAAC;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC1C,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;AACtC,gBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC1C,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,MAAM;AACR,YAAA,KAAK,kBAAkB;;gBAErB,MAAM;AACT,SAAA;KACF;AAED,IAAA,qBAAqB,CAAC,IAAS,EAAA;AAC7B,QAAA,IAAI,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC;QAChD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;KAC1D;+GAlcU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlW,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,6uBCzBnC,iwQAwNA,EAAA,MAAA,EAAA,CAAA,62IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyY,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5W,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6W,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qCAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,wBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD/La,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,iwQAAA,EAAA,MAAA,EAAA,CAAA,62IAAA,CAAA,EAAA,CAAA;yGAWJ,cAAc,EAAA,CAAA;sBAAvC,SAAS;uBAAC,aAAa,CAAA;gBACd,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAqCG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBASG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACoB,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa,CAAA;gBACK,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;;;MEjFhB,2BAA2B,CAAA;AACtC,IAAA,WAAA,GAAA;QACA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AAEP,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAC9B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AACzC,QAAA,IAAA,CAAA,kBAAkB,GAAG;YACnB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;YAClD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;YACpD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;SAC1C,CAAC;AACF,QAAA,IAAA,CAAA,iBAAiB,GAAG;AAClB,YAAA,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE;AACtC,YAAA,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3B,YAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;AAC9B,YAAA,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;SAC7B,CAAC;AACF,QAAA,IAAA,CAAA,kBAAkB,GAAG;AACnB,YAAA,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,EAAE;AACxC,YAAA,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE;AACpC,YAAA,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE;SAClC,CAAC;AACF,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,SAAS,EAAE,GAAG;AACd,YAAA,SAAS,EAAE,GAAG;AACd,YAAA,aAAa,EAAE,GAAG;AAClB,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,WAAW,EAAE,GAAG;AAChB,YAAA,cAAc,EAAE,GAAG;SACpB,CAAC;KA7Bc;IA+BhB,QAAQ,GAAA;QACN,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;IACD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAC7C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAC7C,CAAC;KACH;AACD,IAAA,kBAAkB,CAAC,MAAc,EAAA;QAC/B,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACD,IAAA,kBAAkB,CAAC,YAAsB,EAAA;AACvC,QAAA,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO,CAAC,CAAC,CAAC;AACX,SAAA;AACD,QAAA,MAAM,MAAM,GACV,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,YAAA,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,YAAA,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,YAAA,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,QAAA,MAAM,IAAI,GAAG,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACjE,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI,IAAI,CAAC,EAAE;AACd,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;YACD,KAAK,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE;AAC7B,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;YACD,KAAK,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE;AAC7B,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;YACD,KAAK,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE;AAC9B,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,CAAC,CAAC;AACZ,SAAA;KACF;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,IAAI,CAAC,gBAAgB;AAChC,YAAA,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACnE,SAAA,CAAC,CAAC;KACJ;IACD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;+GArFU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,4KCRxC,qpIA6EA,EAAA,MAAA,EAAA,CAAA,s8HAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/Y,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2M,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/I,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA3D,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrEa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,qpIAAA,EAAA,MAAA,EAAA,CAAA,s8HAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;0EAO1B,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MEII,0BAA0B,CAAA;AAWrC,IAAA,WAAA,GAAA;QAVA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QACzB,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAEP,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC,CAAC;AAG1B,QAAA,IAAA,CAAA,SAAS,GAAsB,IAAI,YAAY,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAI,YAAY,EAAE,CAAC;KAElD;AACjB,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE;YACtC,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;IACD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;KACpE;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;KACzB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAED,oBAAoB,GAAA;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAC/C,CAAC,QAAQ,KAAK,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,YAAY,CAAC,WAAW,CACrE,CAAC;KACH;+GA5CU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,yQCjBvC,4+EA6EA,EAAA,MAAA,EAAA,CAAA,k6JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwN,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/M,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqN,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApL,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD5Da,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,4+EAAA,EAAA,MAAA,EAAA,CAAA,k6JAAA,CAAA,EAAA,CAAA;0EAQ1B,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;gCEjBI,iBAAiB,CAAA;AAG5B,IAAA,WAAA,CAAoB,IAAgB,EAAU,WAAwB,EAAc,MAAuB,EAAA;QAAvF,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAAU,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AACpE,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAE7B,SAAA;KACF;AAED,IAAA,sBAAsB,CAAC,EAAS,EAAA;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACzF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAC,6CAA6C,GAAC,EAAE,EAAC,EAAC,OAAO,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5H;+GAbU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAArD,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEPka,mBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAI0E,QAAQ;;;+BCJtE,gBAAgB,CAAA;AAG3B,IAAA,WAAA,GAAA;QAFA,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KAEA;AAEhB,IAAA,QAAQ,MAAW;+GALR,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,2DCR7B,8kBAYA,EAAA,MAAA,EAAA,CAAA,k3CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDJaC,kBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,8kBAAA,EAAA,MAAA,EAAA,CAAA,k3CAAA,CAAA,EAAA,CAAA;;;MEGpB,2BAA2B,CAAA;AALxC,IAAA,WAAA,GAAA;QAOW,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QAClC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAK3B,KAAA;IAHC,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;KAChC;+GAPU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,uICPxC,wuBAsBA,EAAA,MAAA,EAAA,CAAA,wvDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjZ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAkZ,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDfa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,wuBAAA,EAAA,MAAA,EAAA,CAAA,wvDAAA,CAAA,EAAA,CAAA;8BAK1B,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;MEDK,yBAAyB,CAAA;AAKpC,IAAA,WAAA,GAAA;QADA,IAAqB,CAAA,qBAAA,GAAS,EAAE,CAAC;KAChB;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;KACF;IACD,SAAS,GAAA;QACP,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KAClE;+GAfU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,+HCRtC,m7EAyEA,EAAA,MAAA,EAAA,CAAA,y0FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlZ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6M,wBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4H,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjEa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,m7EAAA,EAAA,MAAA,EAAA,CAAA,y0FAAA,CAAA,EAAA,CAAA;0EAMxB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MEIK,iBAAiB,CAAA;AAQ5B,IAAA,WAAA,CAAoB,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAFhD,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;KAE0B;IAEpD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;AAGD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,IAAI,CAAC,eAAe;YAC3B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAChC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D;+GA9BU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjV,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAIK,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnB7C,8oIAkHA,EAAA,MAAA,EAAA,CAAA,8zNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiC,IAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwV,wBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDnGa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,8oIAAA,EAAA,MAAA,EAAA,CAAA,8zNAAA,CAAA,EAAA,CAAA;iGAKhB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACmB,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBAEvB,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAiB5D,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ME3B/B,eAAe,CAAA;AAG1B,IAAA,WAAA,GAAA;AAFU,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,IAAc,CAAA,cAAA,GAAG,SAAS,CAAC;KACnB;IAEjB,QAAQ,GAAA;KACP;+GANU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,6ICR5B,6uCAsBM,EAAA,MAAA,EAAA,CAAA,mjDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDdO,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,6uCAAA,EAAA,MAAA,EAAA,CAAA,mjDAAA,CAAA,EAAA,CAAA;0EAKZ,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;MEHK,mBAAmB,CAAA;AAG9B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GANU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,yHCPhC,ixFA8EA,EAAA,MAAA,EAAA,CAAA,ktGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArZ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8V,wBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDvEa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,ixFAAA,EAAA,MAAA,EAAA,CAAA,ktGAAA,CAAA,EAAA,CAAA;0EAKlB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MEDK,sBAAsB,CAAA;AAIjC,IAAA,WAAA,GAAA;QADA,IAAqB,CAAA,qBAAA,GAAS,EAAE,CAAC;KAChB;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;KACF;IACD,SAAS,GAAA;QACP,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KAClE;+GAdU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,4HCRnC,kgFAyEA,EAAA,MAAA,EAAA,CAAA,ghFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvZ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkK,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6D,wBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4H,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjEa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,kgFAAA,EAAA,MAAA,EAAA,CAAA,ghFAAA,CAAA,EAAA,CAAA;0EAKrB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MEFK,uBAAuB,CAAA;AAKlC,IAAA,WAAA,GAAA;QADA,IAAqB,CAAA,qBAAA,GAAS,EAAE,CAAC;KAChB;IAEjB,QAAQ,GAAA;QAEN,IAAI,CAAC,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACxD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,IAAK,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAK,KAAK,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,EAAC;YAC/G,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,OAAO,EAAC,CAAC,CAAA;AACjD,SAAA;KACF;IAGD,SAAS,GAAA;QACP,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KAClE;+GArBU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,6HCRpC,8/CA8CA,EAAA,MAAA,EAAA,CAAA,+yEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnZ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuE,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+U,wBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtCa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,8/CAAA,EAAA,MAAA,EAAA,CAAA,+yEAAA,CAAA,EAAA,CAAA;0EAMtB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MEJK,sBAAsB,CAAA;AAGjC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GANU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,4HCPnC,wlDAgDA,EAAA,MAAA,EAAA,CAAA,4nGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvZ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwZ,wBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDzCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,wlDAAA,EAAA,MAAA,EAAA,CAAA,4nGAAA,CAAA,EAAA,CAAA;0EAKrB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MEFK,6BAA6B,CAAA;AAIxC,IAAA,WAAA,GAAA;QADA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;KACV;AAChB,IAAA,QAAQ,MAAW;+GALR,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,qHCP1C,0yDA0CA,EAAA,MAAA,EAAA,CAAA,uiEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzZ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDnCa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,0yDAAA,EAAA,MAAA,EAAA,CAAA,uiEAAA,CAAA,EAAA,CAAA;0EAKlB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;+BEFK,gBAAgB,CAAA;AAE3B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,2GCP7B,mjBAIM,EAAA,MAAA,EAAA,CAAA,k3CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDGOiZ,kBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,mjBAAA,EAAA,MAAA,EAAA,CAAA,k3CAAA,CAAA,EAAA,CAAA;0EAKtB,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;MEDK,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;QAMW,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QAClC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAC3B,KAAA;+GAHY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,yGCPpC,y8CA2CA,EAAA,MAAA,EAAA,CAAA,stEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjZ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAkW,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDpCa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,y8CAAA,EAAA,MAAA,EAAA,CAAA,stEAAA,CAAA,EAAA,CAAA;8BAKtB,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;MEHK,mBAAmB,CAAA;IAC9B,SAAS,CAAC,iBAAsB,EAAE,SAAiB,EAAA;AACjD,QAAA,MAAM,cAAc,GAAG,iBAAiB,EAAE,SAAS,CAAC;AACpD,QAAA,MAAM,KAAK,GAAW,cAAc,EAAE,YAAY,EAAE,SAAS,CAC3D,CAAC,GAAQ,KAAK,GAAG,CAAC,IAAI,KAAK,SAAS,CACrC,CAAC;QACF,OAAO;AACL,YAAA,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM;AAClD,kBAAE,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC;AACrC,kBAAE,EAAE;AACN,YAAA,KAAK,EAAE,KAAK;YACZ,UAAU,EACR,cAAc,EAAE,QAAQ,EAAE,IAAI,CAC5B,CAAC,QAAa,KAAK,QAAQ,CAAC,SAAS,KAAK,SAAS,CACpD,EAAE,IAAI,IAAI,EAAE;SAChB,CAAC;KACH;+GAhBU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAnB,mBAAmB,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,iBAAiB;AACxB,iBAAA,CAAA;;;MCUY,gBAAgB,CAAA;AAM3B,IAAA,WAAA,GAAA;QAJS,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAC7B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAC3C,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;QACnB,IAAc,CAAA,cAAA,GAAG,SAAS,CAAC;KACX;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IACD,WAAW,GAAA;QACT,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IACD,mBAAmB,GAAA;QACjB,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB,QAAA,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAU,KAAI;AACtE,YAAA,IAAI,OAAO,KAAK,GAAG,CAAC,IAAI,EAAE;AACxB,gBAAA,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;AACnB,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CACpE,CAAC,IAAS,KAAI;AACZ,oBAAA,OAAO,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,IAAI,CAAC;AACtC,iBAAC,CACF,CAAC;AACF,gBAAA,IAAI,WAAW,EAAE;AACf,oBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;AACpC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG;AACrB,wBAAA,QAAQ,EAAE,EAAE;wBACZ,UAAU,EAAE,GAAG,CAAC,IAAI;AACpB,wBAAA,eAAe,EAAE,EAAE;qBACpB,CAAC;AACH,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;+GAnCU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,yLCd7B,m/JAqFM,EAAA,MAAA,EAAA,CAAA,q4kEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1Z,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmW,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDvEO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,m/JAAA,EAAA,MAAA,EAAA,CAAA,q4kEAAA,CAAA,EAAA,CAAA;0EAKd,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEVI,2BAA2B,CAAA;AAiBtC,IAAA,WAAA,GAAA;QAfS,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;QAMtB,IAAS,CAAA,SAAA,GAAkB,EAAE,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAElB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAI,YAAY,EAAE,CAAC;QAIjE,IAAI,CAAC,cAAc,GAAG,4BAA4B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC9D;AAED,IAAA,QAAQ,MAAW;AAEnB,IAAA,cAAc,CAAC,QAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;KACrC;AAED,IAAA,WAAW,CAAC,KAAoB,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACtB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,iBAAA;gBACD,OAAO;AACR,aAAA;YACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAC,KAAK,CAAC,CAAC;AACpD,SAAA;KACF;AAGD,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;AAC1B,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE;YAC5H,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACvG,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC1C;AACD,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;AAC9F,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,OAAO;AACR,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,EAAC,IAAI,CAAC,CAAC;AACvD,aAAA;AACF,SAAA;KACF;IAGD,qBAAqB,CAAC,IAAS,EAAC,UAAkB,EAAA;AAChD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACjE,YAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChE,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,aAAA;AAAM,iBAAA;AACL,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,iBAAA;AACF,aAAA;AACF,SAAA;aAAM,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AAChD,YAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5D,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChE,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,aAAA;AACF,SAAA;AAED,QAAA,IAAG,UAAU,EAAC;YACZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,SAAA;KAEF;+GArGU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,yUCPxC,khDAoCM,EAAA,MAAA,EAAA,CAAA,wsJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAva,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD7BO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,khDAAA,EAAA,MAAA,EAAA,CAAA,wsJAAA,CAAA,EAAA,CAAA;0EAM1B,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAII,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEdI,6BAA6B,CAAA;AAExC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,kECP1C,wbAYM,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDLO,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,wbAAA,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA,CAAA;;;MEI3B,gCAAgC,CAAA;AAE3C,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,sECP7C,ohBAcM,EAAA,MAAA,EAAA,CAAA,8/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDPO,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,gCAAgC,EAAA,QAAA,EAAA,ohBAAA,EAAA,MAAA,EAAA,CAAA,8/BAAA,CAAA,EAAA,CAAA;;;MEY/B,uBAAuB,CAAA;AAgDlC,IAAA,WAAA,CACU,qBAA4C,EAC5C,iBAAoC,EACpC,IAAiB,EACjB,aAA4B,EAAA;QAH5B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QACjB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAnDtC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAElB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QACP,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QACnB,IAAc,CAAA,cAAA,GAAkB,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,iBAAiB,GAAG;AAClB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,eAAe,EAAE,EAAE;SACpB,CAAC;QAEF,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAEhB,QAAA,IAAA,CAAA,kBAAkB,GAA2B;AAC3C,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,WAAW,EAAE,CAAC;SACf,CAAC;QACF,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAER,QAAA,IAAA,CAAA,kBAAkB,GAAG;AAC5B,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,iBAAiB,EAAE,SAAS;AAC5B,YAAA,gBAAgB,EAAE,SAAS;SAC5B,CAAC;QAEF,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAElB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QAEvB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAET,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QACzB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;AAExC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;QAQ9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC;KAC3D;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;AACrC,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,EAAE;AACT,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;AAED,IAAA,OAAO,CAAC,GAAQ,EAAA;QACd,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC;AAC/D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,gBAAA,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;aAChC;AACF,SAAA,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;AAED;;;;AAIG;IACH,WAAW,CAAC,KAAa,EAAE,EAAU,EAAA;QACnC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC;AAC1E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnC,SAAA;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;;AAGD;;;AAGG;AACH,IAAA,eAAe,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClD,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;;AAGD;;;AAGG;AACH,IAAA,kBAAkB,CAAC,MAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,GAAG,CAAC;AACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,MAAM,CAAC;AAC7C,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,MAAM,CAAC;QAC5C,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;;AAGD;;;AAGG;AACH,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,GAAG,CAAC;AACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,KAAK,CAAC;AAC/C,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;IAED,yBAAyB,GAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,qBAAqB;aACvB,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC;AAC/D,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;AAC9B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAExB,SAAC,CAAC,CAAC;KACN;;AAMD;;;AAGG;IACH,iBAAiB,CAAC,KAAa,EAAE,EAAU,EAAA;AACzC,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,YAAY,EAAE,EAAE;SACjB,CAAC;AACF,QAAA,IAAI,CAAC,qBAAqB;aACvB,iBAAiB,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC;AAChD,aAAA,SAAS,CAAC,CAAC,GAA0B,KAAI;AACxC,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,SAAC,CAAC,CAAC;KACN;;AAGD;;;;AAIG;IACH,aAAa,CAAC,gBAAqB,EAAE,iBAAsB,EAAA;QACzD,IAAI,CAAC,kBAAkB,GAAG;YACxB,WAAW,EAAE,gBAAgB,EAAE,EAAE;YACjC,aAAa,EAAE,iBAAiB,CAAC,EAAE;AACnC,YAAA,iBAAiB,EAAE,iBAAiB;AACpC,YAAA,gBAAgB,EAAE,gBAAgB;SACnC,CAAC;KACH;;;IAMD,IAAI,GAAA;QACF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACvD;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC9B;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,kBAAkB,GAAG;AACxB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,iBAAiB,EAAE,SAAS;AAC5B,YAAA,gBAAgB,EAAE,SAAS;SAC5B,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACvB;+GAnNU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAgY,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA3V,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA4V,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,0VCfpC,+jUA8LM,EAAA,MAAA,EAAA,CAAA,2mWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxU,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmL,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArQ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsR,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmD,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD/KO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,+jUAAA,EAAA,MAAA,EAAA,CAAA,2mWAAA,CAAA,EAAA,CAAA;0LAStB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAsBG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAYG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAEG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEvCI,sBAAsB,CAAA;AApBnC,IAAA,WAAA,GAAA;QAqBW,IAAO,CAAA,OAAA,GAAW,sCAAsC,CAAC;AACxD,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAQ,CAAC;AAK5C,KAAA;IAHC,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;+GANU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAlBvB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,62DAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBApBlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EACpB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,62DAAA,CAAA,EAAA,CAAA;8BAIQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,KAAK,EAAA,CAAA;sBAAd,MAAM;;;MCqBI,2BAA2B,CAAA;IAgDtC,IAAyB,UAAU,CAAC,eAAwB,EAAA;AAC1D,QAAA,IAAI,eAAe,EAAE;YACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;KACF;IAmBD,IAA8B,kBAAkB,CAAC,OAAY,EAAA;QAC3D,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE;AAC3C,YAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;AAC/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,EAAE,CAAC;AACrC,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,EAAE,CAAC;;YAE3C,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrD,SAAA;KACF;IAwSD,WACU,CAAA,WAAwB,EACxB,qBAA4C,EAC5C,gBAAkC,EAClC,YAA0B,EAC1B,QAAyB,EACzB,UAAuB,EACvB,cAA+B,EAC/B,UAAsB,EACtB,uBAAgD,EAChD,uBAAgD,EAChD,yBAAoD,EACpD,aAA4B,EAAA;QAX5B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAa;QACvB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;QAC/B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAChD,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAChD,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA2B;QACpD,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;;QAjY7B,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC;QAChB,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAC7B,IAAgB,CAAA,gBAAA,GAAe,EAAE,CAAC;QAClC,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAG1B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QACtC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;QACjC,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAoB,CAAA,oBAAA,GAAU,EAAE,CAAC;QACjC,IAA0B,CAAA,0BAAA,GAAY,KAAK,CAAC;QAC5C,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,uBAAuB,GAAQ;AAC7B,YAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;YAC1E,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;AACnC,YAAA,YAAY,EAAE;AACZ,gBAAA,oBAAoB,EAAE,EAAE;AACxB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,sBAAsB,EAAE,EAAE;AAC3B,aAAA;AACD,YAAA,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;AACrE,YAAA,MAAM,EAAE,EAAE;SACX,CAAC;QACF,IAA6B,CAAA,6BAAA,GAAY,KAAK,CAAC;QAC/C,IAAO,CAAA,OAAA,GAAe,EAAE,CAAC;QACzB,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAC3B,QAAA,IAAA,CAAA,YAAY,GAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/D,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC;QAC3B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;AAChC,QAAA,IAAA,CAAA,gBAAgB,GAAQ;AACtB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;QACF,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAG,gBAAgB,CAAC;QASlC,IAAG,CAAA,GAAA,GACD,yVAAyV,CAAC;AAClV,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,YAAY,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAEjC,QAAA,IAAA,CAAA,UAAU,GAAW,CAAC,CAAC;;QAEhC,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAe,CAAA,eAAA,GAAQ,IAAI,CAAC;QAC5B,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;;AAYvB,QAAA,IAAA,CAAA,oBAAoB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC7D,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;AACxC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;QAEpD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AACvB,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,0DAA0D;SACxE,CAAC;AACF,QAAA,IAAA,CAAA,iBAAiB,GAAQ;AACvB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,aAAa,EAAE,EAAE;SAClB,CAAC;QACF,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAElB,IAAa,CAAA,aAAA,GAAG,OAAO,CAAC;AACxB,QAAA,IAAA,CAAA,aAAa,GAAG;AACd,YAAA;AACE,gBAAA,UAAU,EAAE,+BAA+B;AAC3C,gBAAA,KAAK,EAAE,WAAW;AAClB,gBAAA,EAAE,EAAE,SAAS;AACd,aAAA;YACD,EAAE,UAAU,EAAE,uBAAuB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE;SACvE,CAAC;QACF,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAC5B,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAC5B,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAC7B,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QAEzB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;;QAG7B,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAqB,CAAA,qBAAA,GAAU,EAAE,CAAC;QAClC,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAC9B,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAC9B,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAC9B,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;QACzB,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAC9B,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAsB,CAAA,sBAAA,GAAU,EAAE,CAAC;QACnC,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAuB,CAAA,uBAAA,GAAU,EAAE,CAAC;QACpC,IAA0B,CAAA,0BAAA,GAAU,EAAE,CAAC;QACvC,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;QACrB,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAyB,CAAA,yBAAA,GAAU,EAAE,CAAC;QACtC,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;QACzB,IAAqB,CAAA,qBAAA,GAAU,EAAE,CAAC;QAClC,IAAwB,CAAA,wBAAA,GAAW,CAAC,CAAC;AAErC,QAAA,IAAA,CAAA,kBAAkB,GAAQ;AACxB,YAAA,SAAS,EAAE;AACT,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,iBAAiB,EAAE,KAAK;AACzB,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,wBAAwB,EAAE,CAAC;AAC3B,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,oBAAoB,EAAE,EAAE;AACxB,YAAA,qBAAqB,EAAE,EAAE;AACzB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,kBAAkB,EAAE,IAAI;AACxB,gBAAA,eAAe,EAAE;AACf,oBAAA,kBAAkB,EAAE,CAAC;AACrB,oBAAA,sBAAsB,EAAE,CAAC;AAC1B,iBAAA;AACD,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,kBAAkB,EAAE,IAAI;AACxB,gBAAA,eAAe,EAAE;AACf,oBAAA,kBAAkB,EAAE,CAAC;AACrB,oBAAA,sBAAsB,EAAE,CAAC;AAC1B,iBAAA;AACD,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,iBAAiB,EAAE;AACjB,gBAAA,cAAc,EAAE,KAAK;AACrB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,gBAAgB,EAAE,KAAK;AACxB,aAAA;AACD,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,sBAAsB,EAAE;AACtB,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,iBAAiB,EAAE,SAAS;AAC5B,gBAAA,cAAc,EAAE,YAAY;AAC7B,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,aAAa,EAAE,EAAE;AAClB,aAAA;AACD,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,YAAY,EAAE,EAAE;SACjB,CAAC;AACF,QAAA,IAAA,CAAA,WAAW,GAAQ;AACjB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,EAAE,EAAE,KAAK;AACT,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,aAAa,EAAE,KAAK;SACrB,CAAC;QACF,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;AACpB,QAAA,IAAA,CAAA,oBAAoB,GAAQ;YAC1B,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,UAAU;YACV,SAAS;YACT,IAAI;YACJ,aAAa;YACb,WAAW;YACX,UAAU;YACV,mBAAmB;YACnB,UAAU;YACV,gBAAgB;YAChB,gBAAgB;YAChB,cAAc;YACd,gBAAgB;YAChB,iBAAiB;YACjB,aAAa;YACb,eAAe;SAChB,CAAC;AAEF,QAAA,IAAA,CAAA,KAAK,GAAG;AACN,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,SAAS,EAAE,KAAK;SACjB,CAAC;AAEF,QAAA,IAAA,CAAA,UAAU,GAAQ;AAChB,YAAA,WAAW,EAAE;AACX,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;AACD,YAAA,gBAAgB,EAAE;AAChB,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA;SACF,CAAC;QAEF,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;AAExB,QAAA,IAAA,CAAA,kBAAkB,GAAG;YACnB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE;YAC7D,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE;YAChE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SAC/C,CAAC;QAEF,IAAY,CAAA,YAAA,GAAG,UAAU,CAAC;QAC1B,IAAM,CAAA,MAAA,GAAG,UAAU,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QAEjB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;;AAGzB,QAAA,IAAA,CAAA,gBAAgB,GAAG;AACjB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,mBAAmB,EAAE,CAAC;AACtB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,SAAS,EAAE,eAAe;AAC1B,YAAA,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AAClD,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AACtD,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,yBAAyB,EAAE,EAAE;SAC9B,CAAC;QAEF,IAAe,CAAA,eAAA,GAA2B,IAAI,CAAC;QAC/C,IAAoB,CAAA,oBAAA,GAAG,0CAA0C,CAAC;QAClE,IAAU,CAAA,UAAA,GAAkB,EAAE,CAAC;QAC/B,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAC3B,IAAoB,CAAA,oBAAA,GAAG,CAAC,CAAC;QACzB,IAAqB,CAAA,qBAAA,GAAG,CAAC,CAAC;QAI1B,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QAEvB,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;QAC7B,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAS,CAAA,SAAA,GAAW,YAAY,CAAC;QACjC,IAAuB,CAAA,uBAAA,GAAW,CAAC,CAAC;QAIpC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAClC,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;QAE5B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QAGjC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QAGrC,IAA2B,CAAA,2BAAA,GAAY,KAAK,CAAC;QAC7C,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAE9B,IAAoB,CAAA,oBAAA,GAAW,qBAAqB,CAAC;AAIrD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAQ,CAAC;QAGhC,IAAY,CAAA,YAAA,GAAU,EAC9B,CAAA;QAgrID,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;AA/pIzB,QAAA,IAAI,CAAC,yBAAyB,EAAE,cAAc,EAAE,EAAE,SAAS,CAAC;AAC1D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,MAAM,mBAAmB,GACvB,GAAG,EAAE,WAAW,CACd,GAAG,EAAE,WAAW,EAAE,SAAS,CACzB,CAAC,GAAQ,KAAK,GAAG,EAAE,UAAU,KAAK,YAAY,CAC/C,CACF,EAAE,SAAS,CAAC;gBACf,MAAM,WAAW,GACf,mBAAmB,CACjB,mBAAmB,EAAE,SAAS,CAC5B,CAAC,GAAQ,KAAK,GAAG,EAAE,aAAa,KAAK,UAAU,CAChD,CACF,EAAE,WAAW,CAAC;gBACjB,IAAI,CAAC,gBAAgB,GAAG,WAAW,CACjC,WAAW,EAAE,SAAS,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,IAAI,KAAK,iBAAiB,CAAC,CACtE,EAAE,MAAM;AACP,sBAAE,IAAI;sBACJ,KAAK,CAAC;gBACV,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACjC,oBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AAClC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAChC,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,iBAAA;aACF;AACF,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,cAAc,GAAA;QACZ,IAAI,IAAI,CAAC,UAAU,KAAK,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAClE,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;KACF;IAED,eAAe,GAAA;QACb,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACrD,0BAA0B,CAC3B,CAAC;QACF,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC7D,kCAAkC,CACnC,CAAC;QACF,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAChE,2BAA2B,CAC5B,CAAC;AACF,QAAA,IAAI,CAAC,2BAA2B;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;KACrD;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,SAAS,IAAI,KAAK,CAAC;AAClE,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAC3D,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,gBAAgB,EAAE;YACxC,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACpC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;AAC3D,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3D,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACxD;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACvC,SAAA;KACF;IAED,2BAA2B,GAAA;QACzB,IAAI,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CACvC,IAAI,CAAC,yBAAyB,EAC9B,CAAC,IAAI,CAAC,UAAU,CAAC,EACjB,SAAS,CACV,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC;KAC5B;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,EAAE,SAAS,CAAC;AAC7D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,gBAAgB,GAAG,IAAI,GAAG,KAAK,CAAC;AACzD,gBAAA,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE;AAC1B,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;oBAC5C,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxD,iBAAA;aACF;AACD,YAAA,KAAK,EAAE,CAAC,GAAU,KAAI;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;AACF,SAAA,CAAC,CAAC;KACJ;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,yBAAyB,EAAE,0BAA0B,EAAE,EAAE,SAAS,CAAC;AACtE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;gBAC/B,IAAI,CAAC,yBAAyB,EAAE,CAAC;aAClC;AACD,YAAA,KAAK,EAAE,CAAC,GAAU,KAAI;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;AACF,SAAA,CAAC,CAAC;KACJ;IAED,yBAAyB,GAAA;QACvB,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE;AAChD,YAAA,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnC,SAAA;QAED,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE;AAC/C,YAAA,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClC,SAAA;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CACvC,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CACvC,CAAC;QACF,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACxD;IAED,gBAAgB,CAAC,IAAS,EAAE,KAAc,EAAA;AACxC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,SAAA;AACD,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,iBAAiB;gBACpB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM;AACR,YAAA,KAAK,IAAI;gBACP,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM;AACR,YAAA,KAAK,eAAe;AAClB,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC5B,MAAM;AACT,SAAA;KACF;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAAC;QAClD,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;AAChF,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAE1B;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,eAAe,KAAK,kBAAkB,EAAE;AAClE,YAAA,MAAM,cAAc,GAAG;AACrB,gBAAA,MAAM,EAAE;AACN,oBAAA,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,eAAe;AAC3D,iBAAA;aACF,CAAC;AACF,YAAA,MAAM,OAAO,GAAG;AACd,gBAAA,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG;gBACzC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG;aACrD,CAAC;AAEF,YAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAExE,YAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxD,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;QACnE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;AAC/B,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;KAC9C;AAED,IAAA,cAAc,CAAC,YAAoB,EAAA;AACjC,QAAA,IAAI,CAAC,wBAAwB,GAAG,YAAY,IAAI,CAAC,CAAC;KACnD;AAED,IAAA,SAAS,CAAC,UAAmB,EAAA;AAC3B,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,UAAU,EAAE;YACd,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AACnD,SAAA;QACD,IAAI,CAAC,uBAAuB,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;AAC7D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;;gBAEjB,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;sBAC/C,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;;AAEpB,wBAAA,IAAI,QAAQ,GAAG,IAAI,EAAE,SAAS,CAAC;AAE/B,wBAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE;AAChC,4BAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;;gCAE3D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACtF,gCAAA,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,6BAAA;iCAAM,IAAI,IAAI,EAAE,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;;AAE5D,gCAAA,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;AACzB,6BAAA;AAAM,iCAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;;gCAEtE,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1F,gCAAA,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,6BAAA;AACF,yBAAA;;AAGD,wBAAA,IAAI,QAAQ,EAAE;AACZ,4BAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,gCAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC5B,6BAAA;AAAM,iCAAA;;gCAEL,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;AACpC,6BAAA;AACF,yBAAA;AAED,wBAAA,MAAM,UAAU,GAAG;AACjB,4BAAA,GAAG,IAAI;;AAEP,4BAAA,OAAO,EACL,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI;;AAEpD,4BAAA,SAAS,EAAE,QAAQ,IAAI,IAAI,EAAE,SAAS,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;yBAC1H,CAAC;AAEF,wBAAA,OAAO,UAAU,CAAC;AACpB,qBAAC,CAAC;sBACF,EAAE,CAAC;AAEP,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;;AAGzB,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBAElE,MAAM,EAAE,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,OAAY,KAC5D,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAC/B,CAAC;gBACF,IAAI,EAAE,EAAE,MAAM,EAAE;AACd,oBAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;AACjC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;AACjC,iBAAA;AAED,gBAAA,IAAI,IAAI,CAAC,UAAU,KAAK,gBAAgB,EAAE;oBACxC,IAAI,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CACvC,IAAI,CAAC,yBAAyB,EAC9B,CAAC,IAAI,CAAC,UAAU,CAAC,EACjB,MAAM,CACP,CAAC;AACF,oBAAA,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC;oBAC3B,IAAI,CAAC,aAAa,GAAG;AACnB,wBAAA;AACE,4BAAA,UAAU,EAAE,sBAAsB;AAClC,4BAAA,KAAK,EAAE,UAAU;AACjB,4BAAA,EAAE,EAAE,MAAM;AACX,yBAAA;qBACF,CAAC;;oBAEF,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,oBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE;AAClC,wBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AACzB,4BAAA,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC9C,iBAAA;aACF;AACD,YAAA,KAAK,EAAE,CAAC,GAAU,KAAI;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B;AACF,SAAA,CAAC,CAAC;KACJ;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,yBAAyB,EAAE,cAAc,EAAE,EAAE,SAAS,CAAC;AAC1D,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,CAAC,qBAAqB,GAAG,GAAG,EAAE,yBAAyB,CAAC;oBAC5D,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB;AAC3D,0BAAE,gCAAgC;0BAChC,uBAAuB,CAAC;iBAC7B;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,EAAE,SAAS,CAAC;AAC7D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE,+BAA+B,CAAC;aAClE;AACD,YAAA,KAAK,EAAE,CAAC,GAAU,KAAI;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;AACF,SAAA,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CACtD,CAAC,GAAG,KAAI;YACN,MAAM,IAAI,GAAG,GAAG,CAAC;AACjB,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAC5B,gBAAA,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,EAAE;oBAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,iBAAA;AACD,gBAAA,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,EAAE;oBAC3C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChD,iBAAA;AACD,gBAAA,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,EAAE;oBAC3C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9C,iBAAA;AACD,gBAAA,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,EAAE;oBAC3C,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrD,iBAAA;AACH,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACnC,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACnC,SAAC,CACF,CAAC;KACH;AAED,IAAA,6BAA6B,CAAC,UAAmB,EAAA;AAC/C,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;AACnC,QAAA,IAAI,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,wBAAwB,EAAE;AAC3D,YAAA,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACnC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,SAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;YAC/D,IACE,GAAG,EAAE,UAAU;gBACf,GAAG,EAAE,UAAU,EAAE,MAAM;gBACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,MAAM,EACxD;AACA,gBAAA,MAAM,kBAAkB,GAAG,GAAG,EAAE,UAAU,CAAC,MAAM,CAC/C,CAAC,UAAe,KACd,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,WAAW;oBAChD,UAAU,EAAE,WAAW,CAC1B,CAAC;gBACF,IACE,kBAAkB,EAAE,MAAM;AAC1B,oBAAA,kBAAkB,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAC5C;AACA,oBAAA,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAC5D,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,aAAa,CACnD,CAAC;oBACF,IAAI,CAAC,OAAO,EAAE;AACZ,wBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG;AACnC,4BAAA,aAAa,EAAE,EAAE;AACjB,4BAAA,WAAW,EAAE,EAAE;yBAChB,CAAC;AACH,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG;AACnC,wBAAA,aAAa,EAAE,EAAE;AACjB,wBAAA,WAAW,EAAE,EAAE;qBAChB,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,0BAA0B,CAAC,UAAkB,EAAA;AAC3C,QAAA,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;KACnC;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,UAAU,EAAE;YACd,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AACnD,SAAA;AACD,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,SAAS,CAC3D,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;AAC7B,YAAA,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,gCAAgC,EAAE,CAAC;AACzC,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;AACD,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAClC,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;SAClC,EACD,MAAK;AACH,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,YAAA,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,gCAAgC,EAAE,CAAC;AACzC,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;AACH,SAAC,CACF,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,UAAU,EAAE;YACd,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AACnD,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;KAChC;AAED,IAAA,aAAa,CAAC,UAAmB,EAAA;QAC/B,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAC3D,CAAC,GAAQ,KAAI;YACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AACxC,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;AACtC,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,gCAAgC,EAAE,CAAC;AACzC,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;AACD,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAClC,SAAC,EACD,CAAC,GAAU,KAAI;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B,EACD,MAAK;AACH,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,YAAA,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,gCAAgC,EAAE,CAAC;AACzC,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;AACH,SAAC,CACF,CAAC;KACH;AAED,IAAA,uBAAuB,CAAC,UAAkB,EAAA;AACxC,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,UAAU,EAAE;YACd,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,SAAA;QACD,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAC3D,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;YAClC,IACE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,oBAAoB;gBACzD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAC9C;gBACA,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;AAClD,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CACxB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EACtC,cAAc,CACf,CAAC;AACF,oBAAA,MAAM,MAAM,GAAG;AACb,wBAAA,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AACf,wBAAA,GAAG,IAAI,GAAG,CACR,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAC1D;qBACF,CAAC;oBACF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAY,KACvD,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CACxC,CAAC;oBACF,IAAI,SAAS,EAAE,MAAM,EAAE;wBACrB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;AACpD,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC;AAC7C,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAY,KACvD,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,QAAQ,CACjE,OAAO,EAAE,YAAY,CACtB,CACF,CAAC;oBACF,IAAI,SAAS,EAAE,MAAM,EAAE;wBACrB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;AACpD,qBAAA;AACF,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC;AAC7C,aAAA;YACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACrC,aAAA;YACD,MAAM,kBAAkB,GAAG,EAAE,CAAC;YAE9B,IACE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB;AACtD,gBAAA,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM;gBAChD,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EACrD;AACA,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CACxB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EACtC,cAAc,CACf,CAAC;AACF,gBAAA,MAAM,MAAM,GAAG;AACb,oBAAA,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AACf,oBAAA,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;iBACjE,CAAC;gBACF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAY,KACvD,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CACxC,CAAC;;gBAEF,IACE,SAAS,EAAE,MAAM;qBAChB,IAAI,CAAC,kBAAkB;wBACtB,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,EAC5D;oBACA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;oBACnD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;oBACnD,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,wBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAC9D,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CACvC,CAAC;AACH,qBAAA;AAED,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC;AAC7C,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC;AAC7C,aAAA;YACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACrC,aAAA;YACD,IACE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB;AACpD,gBAAA,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM;gBAChD,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EACtD;AACA,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CACxB,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,EACxC,cAAc,CACf,CAAC;AACF,gBAAA,MAAM,eAAe,GAAG;AACtB,oBAAA,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AACf,oBAAA,GAAG,IAAI,GAAG,CACR,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,eAAe,CACxE;iBACF,CAAC;gBACF,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,OAAY,KAC1D,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CACjD,CAAC;;AAEF,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAClC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,EAC5C,cAAc,CACf,CAAC;AACF,gBAAA,MAAM,sBAAsB,GAAG;AAC7B,oBAAA,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC;AACzB,oBAAA,GAAG,IAAI,GAAG,CACR,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,uBAAuB,CAChF;iBACF,CAAC;gBACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CACnD,CAAC,OAAY,KACX,sBAAsB,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAC1D,CAAC;;;;;;;;;;gBAWF,IAAI,WAAW,EAAE,MAAM,EAAE;oBACvB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC;oBACrD,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,wBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAC9D,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CACvC,CAAC;AACH,qBAAA;AACD,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC;AAC7C,iBAAA;gBACD,IAAI,kBAAkB,EAAE,MAAM,EAAE;oBAC9B,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,GAAG,kBAAkB,CAAC;oBAClE,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,wBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU;4BAC1C,IAAI,CAAC,kBAAkB,CACrB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAC7C,CAAC;AACL,qBAAA;AACD,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC;AACnD,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC;gBAC5C,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC;AACnD,aAAA;YACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACrC,aAAA;AACD,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE;AAClC,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AACzB,oBAAA,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC/C,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB,EACD,MAAK;YACH,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC9B,SAAC,CACF,CAAC;KACH;AAED,IAAA,uBAAuB,CAAC,GAAQ,EAAA;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAClD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;AACtC,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAClD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;AACtC,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAClD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;AACtC,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG;YACvB,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAChD,CAAC;KACH;AAED,IAAA,aAAa,CAAC,UAAmB,EAAA;AAC/B,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,UAAU,EAAE;YACd,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AACnD,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB;aACvB,qBAAqB,CAAC,MAAM,CAAC;AAC7B,aAAA,IAAI,CAACpC,WAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACxC,aAAA,SAAS,CACR,CAAC,GAAQ,KAAI;AACX,YAAA,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACtB,aAAA;YACD,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,IAAI,IAAI,EAAE,MAAM,EAAE;AAChB,gBAAA,IAAI,EAAE,OAAO,CAAC,CAAC,OAAY,KAAI;AAC7B,oBAAA,MAAM,GAAG,GAAG;wBACV,SAAS,EAAE,OAAO,CAAC,UAAU;wBAC7B,OAAO,EAAE,OAAO,CAAC,UAAU;qBAC5B,CAAC;AACF,oBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,iBAAC,CAAC,CAAC;AACJ,aAAA;AACD,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;AACzB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IACE,IAAI,CAAC,kBAAkB;gBACvB,IAAI,CAAC,QAAQ,EAAE,MAAM;AACrB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM;AACvC,gBAAA,UAAU,EACV;gBACA,IAAI,CAAC,gCAAgC,EAAE,CAAC;AACzC,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;YACD,IACE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,0BAA0B;AAC/D,gBAAA,UAAU,EACV;AACA,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,OAAY,KAC9C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0BAA0B,EAAE,QAAQ,CACrE,OAAO,CAAC,QAAQ,CACjB,CACF,CAAC;gBACF,IAAI,MAAM,EAAE,MAAM,EAAE;oBAClB,IAAI,SAAS,GAAU,EAAE,CAAC;AAC1B,oBAAA,cAAc,CAAC,OAAO,CAAC,CAAC,SAAc,KAAI;AACxC,wBAAA,IAAI,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE;AACjC,4BAAA,SAAS,GAAG;gCACV,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;6BACpD,CAAC;AACH,yBAAA;AACH,qBAAC,CAAC,CAAC;oBACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;AAClD,wBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CACxB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EACtC,cAAc,CACf,CAAC;AACF,wBAAA,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;wBACxD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAY,KACvD,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CACxC,CAAC;wBACF,IAAI,SAAS,EAAE,MAAM,EAAE;4BACrB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;AACpD,yBAAA;AACF,qBAAA;AAAM,yBAAA;wBACL,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAY,KACvD,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAC3C,CAAC;wBACF,IAAI,SAAS,EAAE,MAAM,EAAE;4BACrB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;AACpD,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACH,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC/B,SAAC,CACF,CAAC;KACL;AAED,IAAA,4BAA4B,CAAC,EAAO,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,6BAA6B,EAAE,CAAC;KACtC;AAED,IAAA,OAAO,CAAC,IAAW,EAAE,GAAU,EAAE,GAAW,EAAA;QAC1C,MAAM,IAAI,GAAQ,EAAE,CAAC;AACrB,QAAA,GAAG,EAAE,OAAO,CAAC,CAAC,OAAY,KAAI;AAC5B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAC1B,CAAC,WAAgB,KAAK,WAAW,CAAC,GAAG,CAAC,IAAI,OAAO,CAClD,CAAC;AACF,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;IAED,SAAS,CAAC,IAAW,EAAE,GAAW,EAAA;AAChC,QAAA,OAAO,IAAI;AACT,cAAE,GAAG,CAAC,CAAC,GAAG,KAAI;AACZ,YAAA,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;AACZ,gBAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,aAAA;AACH,SAAC,CAAC;aACD,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;KACzB;IAED,4BAA4B,GAAA;QAC1B,IACE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,0BAA0B;YAC/D,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EACrD;YACA,IAAI,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE;AACzD,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CACxB,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAC7C,UAAU,CACX,CAAC;AACF,gBAAA,MAAM,MAAM,GAAG;AACb,oBAAA,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AACf,oBAAA,GAAG,IAAI,GAAG,CACR,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,0BAA0B,CAChE;iBACF,CAAC;gBACF,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,OAAY,KACjE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CACpC,CAAC;gBACF,IAAI,cAAc,EAAE,MAAM,EAAE;oBAC1B,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC;AAC9D,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC;AAClD,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,OAAY,KACjE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,0BAA0B,EAAE,QAAQ,CACvE,OAAO,EAAE,QAAQ,CAClB,CACF,CAAC;gBACF,IAAI,cAAc,EAAE,MAAM,EAAE;oBAC1B,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC;AAC9D,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC;AAClD,SAAA;KACF;IAED,4BAA4B,GAAA;QAC1B,IACE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,eAAe;AACvE,YAAA,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM;AAC5D,YAAA,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM;YACtD,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB;AACpD,kBAAE,uBAAuB,EAC3B;YACA,IAAI,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE;AAC1D,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CACxB,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAC9C,UAAU,CACX,CAAC;AACF,gBAAA,MAAM,oBAAoB,GAAG;AAC3B,oBAAA,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AACf,oBAAA,GAAG,IAAI,GAAG,CACR,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,eAAe,CACxE;iBACF,CAAC;gBACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CACrD,CAAC,OAAY,KAAK,oBAAoB,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CACpE,CAAC;AACF,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAClC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,UAAU,EAClD,UAAU,CACX,CAAC;AACF,gBAAA,MAAM,2BAA2B,GAAG;AAClC,oBAAA,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC;AACzB,oBAAA,GAAG,IAAI,GAAG,CACR,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,uBAAuB,CAChF;iBACF,CAAC;gBACF,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAC5D,CAAC,OAAY,KACX,2BAA2B,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAC3D,CAAC;gBACF,IAAI,gBAAgB,EAAE,MAAM,EAAE;oBAC5B,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,GAAG,gBAAgB,CAAC;AAChE,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,GAAG,EAAE,CAAC;AACnD,iBAAA;gBACD,IAAI,uBAAuB,EAAE,MAAM,EAAE;AACnC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,UAAU;AAChD,wBAAA,uBAAuB,CAAC;AAC1B,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,UAAU,GAAG,EAAE,CAAC;AACzD,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CACrD,CAAC,OAAY,KACX,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,eAAe,EAAE,QAAQ,CAC/E,OAAO,EAAE,QAAQ,CAClB,CACJ,CAAC;AACF,gBAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAC5D,CAAC,OAAY,KACX,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,QAAQ,CACvF,OAAO,EAAE,QAAQ,CAClB,CACJ,CAAC;gBACF,IAAI,gBAAgB,EAAE,MAAM,EAAE;oBAC5B,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,GAAG,gBAAgB,CAAC;AAChE,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,iBAAA;gBACD,IAAI,uBAAuB,CAAC,MAAM,EAAE;AAClC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,UAAU;AAChD,wBAAA,uBAAuB,CAAC;AAC1B,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,GAAG,EAAE,CAAC;YAClD,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,UAAU,GAAG,EAAE,CAAC;AACzD,SAAA;KACF;IAED,4BAA4B,GAAA;QAC1B,IACE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,0BAA0B;YAC/D,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EACrD;AACA,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CACxB,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAC7C,UAAU,CACX,CAAC;AACF,YAAA,MAAM,MAAM,GAAG;AACb,gBAAA,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AACf,gBAAA,GAAG,IAAI,GAAG,CACR,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,0BAA0B,CAC/D;aACF,CAAC;YACF,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,OAAY,KAChE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CACpC,CAAC;YACF,IACE,cAAc,EAAE,MAAM;iBACrB,IAAI,CAAC,kBAAkB;oBACtB,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,EAC5D;gBACA,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC;AAC7D,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC;AAClD,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC;AAClD,SAAA;KACF;AAED,IAAA,oBAAoB,CAAC,GAAQ,EAAA;QAC3B,IAAI,gBAAgB,GAAa,EAAE,CAAC;QACpC,IAAI,sBAAsB,GAAa,EAAE,CAAC;AAC1C,QAAA,IAAI,qBAAqB,GAAG,GAAG,EAAE,eAAe;AAC9C,cAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;cAC7C,EAAE,CAAC;QACP,gBAAgB;YACd,qBAAqB,EAAE,MAAM,GAAG,CAAC;AAC/B,gBAAA,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC;kBAC5C,qBAAqB,CAAC,MAAM,CAAC,CAAC,WAAmB,KACjD,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAC9D;AACD,kBAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC;AACjC,QAAA,IAAI,0BAA0B,GAAG,GAAG,EAAE,uBAAuB;AAC3D,cAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;cACrD,EAAE,CAAC;QACP,sBAAsB;YACpB,0BAA0B,EAAE,MAAM,GAAG,CAAC;AACpC,gBAAA,GAAG,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,GAAG,CAAC;kBACnD,0BAA0B,CAAC,MAAM,CAAC,CAAC,WAAmB,KACtD,GAAG,EAAE,eAAe,EAAE,uBAAuB,EAAE,QAAQ,CAAC,WAAW,CAAC,CACrE;AACD,kBAAE,CAAC,GAAG,0BAA0B,CAAC,CAAC;AAEtC,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG;YACrC,IAAI,EAAE,GAAG,EAAE,eAAe;AACxB,kBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE,aAAa,CAAC;AACnE,kBAAE,EAAE;YACN,UAAU,EAAE,GAAG,EAAE,uBAAuB;AACtC,kBAAE,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,aAAa,EAClB,sBAAsB,EACtB,aAAa,CACd;AACD,kBAAE,EAAE;SACP,CAAC;AAEF,QAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,GAAG;AAC3C,YAAA,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,eAAe;AACtC,kBAAE,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,QAAQ,EACb,GAAG,EAAE,YAAY,EAAE,eAAe,EAClC,UAAU,CACX;AACD,kBAAE,EAAE;AACN,YAAA,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,sBAAsB;AACnD,kBAAE,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,QAAQ,EACb,GAAG,EAAE,YAAY,EAAE,sBAAsB,EACzC,UAAU,CACX;AACD,kBAAE,EAAE;SACP,CAAC;KACH;AAED,IAAA,oBAAoB,CAAC,GAAQ,EAAA;QAC3B,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,MAAM,GAAG,CAAC,CAAC;QAC/C,MAAM,oBAAoB,GAAG,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM;cACpE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,gBAAgB,CAAC;cAClD,EAAE,CAAC;QACP,IAAI,cAAc,GAAU,EAAE,CAAC;QAC/B,cAAc;YACZ,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAC9C,gBAAA,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC;AAC/C,kBAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,QAAa,KAC1D,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CACjE;kBACC,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC;AAC3C,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG;AACrC,YAAA,kBAAkB,EAChB,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,IAAI,YAAY,GAAG,IAAI,GAAG,KAAK;AAChE,YAAA,eAAe,EAAE;AACf,gBAAA,kBAAkB,EAChB,eAAe,EAAE,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE,iBAAiB,GAAG,CAAC;AAC1D,gBAAA,sBAAsB,EACpB,eAAe,EAAE,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE,wBAAwB,GAAG,CAAC;AAClE,aAAA;AACD,YAAA,YAAY,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC,GAAG,cAAc,GAAG,EAAE;AAC/D,YAAA,IAAI,EACF,eAAe,EAAE,MAAM,GAAG,CAAC;AACzB,kBAAE,IAAI,CAAC,kBAAkB,CACvB,cAAc,EACd,QAAQ,EACR,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAChC;AACD,kBAAE,EAAE;SACT,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG;AAC1C,YAAA,kBAAkB,EAChB,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,IAAI,YAAY,GAAG,IAAI,GAAG,KAAK;AAChE,YAAA,eAAe,EAAE;AACf,gBAAA,kBAAkB,EAChB,eAAe,EAAE,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE,iBAAiB,GAAG,CAAC;AAC1D,gBAAA,sBAAsB,EACpB,eAAe,EAAE,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE,wBAAwB,GAAG,CAAC;AAClE,aAAA;AACD,YAAA,IAAI,EACF,oBAAoB,EAAE,MAAM,GAAG,CAAC;AAC9B,kBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,EAAE,UAAU,CAAC;AAC/D,kBAAE,EAAE;SACT,CAAC;KACH;AAED,IAAA,oBAAoB,CAAC,GAAQ,EAAA;QAC3B,IAAI,mBAAmB,GAAa,EAAE,CAAC;QACvC,IAAI,mBAAmB,GAAa,EAAE,CAAC;QACvC,IAAI,kBAAkB,GACpB,GAAG,EAAE,qBAAqB,IAAI,IAAI,CAAC,SAAS;cACxC,GAAG,EAAE,qBAAqB;cAC1B,EAAE,CAAC;QACT,mBAAmB;AACjB,YAAA,GAAG,EAAE,qBAAqB,EAAE,MAAM,GAAG,CAAC;AACpC,gBAAA,GAAG,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,GAAG,CAAC;kBACnD,kBAAkB,CAAC,MAAM,CAAC,CAAC,WAAmB,KAC9C,GAAG,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAC/D;AACD,kBAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC;QAE9B,mBAAmB;AACjB,YAAA,GAAG,EAAE,kBAAkB,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,kBAAkB,GAAG,EAAE,CAAC;QAC5E,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CACxC,IAAI,CAAC,aAAa,EAClB,CAAC,MAAM,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,EACjC,aAAa,CACd,CAAC;QACF,IAAI,qBAAqB,EAAE,MAAM,EAAE;YACjC,MAAM,SAAS,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;YACzD,IAAI,GAAG,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC7D,gBAAA,mBAAmB,GAAG,GAAG,EAAE,kBAAkB,CAAC;AAC9C,gBAAA,GAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC;AAC9C,aAAA;iBAAM,IAAI,GAAG,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC,EAAE;gBAC7D,mBAAmB,GAAG,EAAE,CAAC;AAC1B,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG;YACrC,cAAc,EAAE,GAAG,CAAC,eAAe,GAAG,SAAS,GAAG,KAAK;AACvD,YAAA,IAAI,EACF,GAAG,EAAE,qBAAqB,EAAE,MAAM,IAAI,CAAC;AACrC,kBAAE,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,aAAa,EAClB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAC7B,aAAa,CACd;AACD,kBAAE,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,aAAa,EAClB,mBAAmB,EACnB,cAAc,CACf;SACN,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG;YAC1C,cAAc,EAAE,GAAG,EAAE,eAAe,GAAG,SAAS,GAAG,KAAK;YACxD,IAAI,EACF,GAAG,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,IAAI,CAAC;kBAClD,GAAG,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC;AAClD,sBAAE,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,QAAQ,EACb,GAAG,EAAE,YAAY,EAAE,mBAAmB,EACtC,UAAU,CACX;AACD,sBAAE,EAAE;AACN,kBAAE,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,QAAQ,EACb,GAAG,EAAE,YAAY,EAAE,sBAAsB,EACzC,UAAU,CACX;SACN,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB;YACnB,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;gBACzD,CAAC,IAAI,CAAC,SAAS,CAAC;KACnB;AAED;;;;;AAKG;IACH,wBAAwB,CAAC,QAAa,EAAE,cAAmB,EAAA;QACzD,IAAI,cAAc,GAAQ,EAAE,CAAC;QAC7B,IAAI,iBAAiB,GAAQ,EAAE,CAAC;AAChC,QAAA,cAAc,EAAE,OAAO,CAAC,CAAC,KAAU,KAAI;AACrC,YAAA,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3E,SAAC,CAAC,CAAC;AACH,QAAA,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAQ,KAAI;YAC7B,IAAI,cAAc,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE;AAC/C,gBAAA,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,iBAAiB,CAAC;KAC1B;AAED,IAAA,kBAAkB,CAChB,GAAU,EACV,IAAY,EACZ,YAAyB,EACzB,YAAqB,EAAA;QAErB,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC9C,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAC3D,SAAA;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;YAC1B,MAAM,OAAO,GAAQ,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC3C,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAC/B,gBAAA,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,YAAY,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE;oBACpC,KAAK;AACH,wBAAA,YAAY,EAAE,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,iBAAA;gBAED,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACvC,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;KACF;IAED,0BAA0B,GAAA;AACxB,QAAA,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,KAAK,MAAM;cAChB,IAAI,CAAC,YAAY;AACnB,gBAAA,IAAI,CAAC,gBAAgB;AACrB,gBAAA,IAAI,CAAC,mBAAmB;cACtB,IAAI,CAAC;QACX,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,mBAAmB,IAAI,UAAU,EAAE;AACvE,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,CAAC,EAAE;gBACrC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC1D,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAEnC,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC3D,oBAAA,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAC/C,IAAI,CAAC,eAAe,CAAC,WAAW,CACjC,CAAC;oBACF,IAAI,CAAC,kBAAkB,CAAC,WAAW;AACjC,wBAAA,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAChD,oBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,wBAAwB,EAAE;AAC7C,wBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,cAAc;AAC9C,4BAAA,IAAI,CAAC,eAAe,EAAE,qBAAqB,IAAI,QAAQ;AACrD,kCAAE,SAAS;kCACT,KAAK,CAAC;AACZ,wBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,kBAAkB;AAClD,4BAAA,IAAI,CAAC,eAAe,EAAE,sBAAsB,IAAI,YAAY;AAC1D,kCAAE,IAAI;kCACJ,KAAK,CAAC;AACZ,wBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI;AAC9D,6BAAA,eAAe,EAAE,oBAAoB;AACtC,8BAAE,IAAI;8BACJ,KAAK,CAAC;AACX,qBAAA;AACD,oBAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW;0BACvD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;0BAC5C,EAAE,CAAC;AACP,oBAAA,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;wBACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CACxD,CAAC,UAAe,KAAK,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAC7D,CAAC;AACF,wBAAA,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;4BACf,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,yBAAA;AACH,qBAAC,CAAC,CAAC;oBACH,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,oBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;AAChC,oBAAA,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnC,oBAAA,IACE,IAAI,CAAC,eAAe,EAAE,oBAAoB;AAC1C,wBAAA,IAAI,CAAC,UAAU,EAAE,wBAAwB,EACzC;AACA,wBAAA,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC5C,wBAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC1C,qBAAA;oBACD,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAC9D,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC9C,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,0BAA0B,EAAE,CAAC;aACnC,EAAE,GAAG,CAAC,CAAC;AACT,SAAA;KACF;IAED,gBAAgB,CAAC,IAAY,EAAE,aAAkB,EAAA;AAC/C,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;AAC/B,oBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,iBAAA;gBACD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CACnD,IAAI,CAAC,aAAa,EAClB,CAAC,aAAa,CAAC,SAAS,CAAC,EACzB,WAAW,CACZ,CAAC;;gBAEF,MAAM;AACR,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AAC9B,oBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,iBAAA;gBACD,IACE,CAAC,IAAI,CAAC,SAAS;oBACf,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,cAAc,KAAK,SAAS,EAC9D;oBACA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CACnD,IAAI,CAAC,aAAa,EAClB,CAAC,aAAa,CAAC,WAAW,CAAC,EAC3B,aAAa,CACd,CAAC;;AAEH,iBAAA;AAAM,qBAAA;oBACL,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,wBAAA,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAC3C,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CACnD,IAAI,CAAC,aAAa,EAClB,aAAa,EACb,cAAc,CACf,CAAC;AACH,qBAAA;;AAEF,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,IAAI;AACP,gBAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CACvC,IAAI,CAAC,yBAAyB,EAC9B,aAAa,EACb,SAAS,CACV,CAAC;AACF,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC7D,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE;AAC5C,oBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,EAAE,CAAC;oBAC/C,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACrE,oBAAA,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,EAAE,CAAC;AACjD,iBAAA;gBACD,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;gBAEnE,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,aAAa,CAAC;AACjD,gBAAA,aAAa,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACrC,oBAAA,MAAM,GAAG,GACP,OAAO,CAAC,WAAW,KAAK,EAAE;wBACxB,OAAO,CAAC,WAAW,KAAK,MAAM;wBAC9B,OAAO,CAAC,WAAW,IAAI,IAAI;0BACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;0BAC/B,EAAE,CAAC;AACT,oBAAA,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AACnB,wBAAA,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;4BAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CACxD,CAAC,UAAe,KAAK,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAC7D,CAAC;AACF,4BAAA,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;gCACf,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,6BAAA;AACH,yBAAC,CAAC,CAAC;AACJ,qBAAA;AACH,iBAAC,CAAC,CAAC;gBACH,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,aAAa,EAAE,aAAa,CAAC;gBACrE,IACE,IAAI,CAAC,eAAe;oBACpB,EACE,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,KAAK,CAAC;wBACtC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,eAAe;AAC/D,wBAAA,CAAC,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAC3C;oBACD,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,mCAAmC,CAAC,EACnE;AACA,oBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,aAAa,CAAC,UAAU;0BACvD,aAAa,CAAC,UAAU;0BACxB,EAAE,CAAC;oBACP,IAAI,UAAU,GAAG,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACvD,oBAAA,IAAI,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE;wBACrC,IAAI,CAAC,kBAAkB,CAAC,WAAW;4BACjC,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,GAAG,GAAG,UAAU,CAAC;AAC1D,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,kBAAkB,CAAC,WAAW;AACjC,4BAAA,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACnD,qBAAA;AACD,oBAAA,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,GAAG;AAC7C,wBAAA,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC;wBACrC,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;qBAClD,CAAC;AACF,oBAAA,MAAM,iBAAiB,GAAG,aAAa,EAAE,OAAO,EAAE,WAAW;0BACzD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC;0BAC/C,EAAE,CAAC;AACP,oBAAA,iBAAiB,EAAE,OAAO,CAAC,CAAC,GAAQ,KAAI;AACtC,wBAAA,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;wBAChE,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CACxD,CAAC,UAAe,KAAK,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAC7D,CAAC;AACF,wBAAA,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;4BACf,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE;wBACvC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,MAAM;8BACpD,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC;8BAClD,IAAI,CAAC;AACV,qBAAA;AACD,oBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,aAAa,CAAC,UAAU;0BACvD,aAAa,CAAC,UAAU;0BACxB,EAAE,CAAC;AACP,oBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,EAAE,CAAC;AACrC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,EAAE,CAAC;AACzC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAClD,oBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,EAAE,CAAC;AACxC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO;AACrD,0BAAE,CAAC,aAAa,CAAC,OAAO,CAAC;0BACvB,EAAE,CAAC;oBACP,IAAI,UAAU,GAAG,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACvD,oBAAA,IAAI,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE;wBACrC,IAAI,CAAC,kBAAkB,CAAC,WAAW;4BACjC,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,GAAG,GAAG,UAAU,CAAC;AAC1D,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,kBAAkB,CAAC,WAAW;AACjC,4BAAA,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACnD,qBAAA;AACD,oBAAA,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,GAAG;AAC7C,wBAAA,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC;wBACrC,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;qBAClD,CAAC;AACF,oBAAA,MAAM,iBAAiB,GAAG,aAAa,EAAE,OAAO,EAAE,WAAW;0BACzD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC;0BAC/C,EAAE,CAAC;AACP,oBAAA,iBAAiB,EAAE,OAAO,CAAC,CAAC,GAAQ,KAAI;AACtC,wBAAA,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;wBAChE,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CACxD,CAAC,UAAe,KAAK,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAC7D,CAAC;AACF,wBAAA,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;4BACf,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,yBAAA;AACH,qBAAC,CAAC,CAAC;AACH,oBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,wBAAwB,EAAE;AAC7C,wBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,cAAc;AAC9C,4BAAA,aAAa,EAAE,OAAO,EAAE,qBAAqB,IAAI,QAAQ;AACvD,kCAAE,SAAS;kCACT,KAAK,CAAC;AACZ,wBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,kBAAkB;AAClD,4BAAA,aAAa,EAAE,OAAO,EAAE,sBAAsB,IAAI,YAAY;AAC5D,kCAAE,IAAI;kCACJ,KAAK,CAAC;AACZ,wBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,gBAAgB;AACxD,4BAAA,aAAa,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,KAAK,CAAC;AAC9D,wBAAA,IAAI,aAAa,EAAE,OAAO,EAAE,oBAAoB,EAAE;AAChD,4BAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC1C,yBAAA;AACF,qBAAA;oBAED,IACE,EACE,IAAI,CAAC,eAAe,EAAE,WAAW,KAAK,CAAC;wBACvC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,eAAe,CAC9D,EACD;AACA,wBAAA,IACE,aAAa,EAAE,OAAO,EAAE,GAAG;AAC3B,4BAAA,IAAI,CAAC,UAAU,EAAE,wBAAwB,EACzC;4BACA,IAAI,CAAC,6BAA6B,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/D,yBAAA;AAAM,6BAAA;4BACL,IAAI,CAAC,6BAA6B,EAAE,CAAC;AACtC,yBAAA;AACF,qBAAA;AACF,iBAAA;gBAED,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,oBAAA,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAC3C,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CACnD,IAAI,CAAC,aAAa,EAClB,aAAa,EACb,aAAa,CACd,CAAC;AACH,iBAAA;;gBAGD,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,oBAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACtD,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CACnD,IAAI,CAAC,YAAY,EACjB,aAAa,EACb,aAAa,CACd,CAAC;AACH,iBAAA;;gBAGD,MAAM;AACR,YAAA,KAAK,gBAAgB;gBACnB,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,oBAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;AAC5D,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CACzD,IAAI,CAAC,YAAY,EACjB,aAAa,EACb,aAAa,CACd,CAAC;AACH,iBAAA;;gBAGD,MAAM;AACR,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAClD,IAAI,CAAC,uBAAuB,EAC5B,aAAa,EACb,aAAa,CACd,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,gBAAgB;gBACnB,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CACtD,IAAI,CAAC,0BAA0B,EAC/B,CAAC,aAAa,EAAE,WAAW,CAAC,EAC5B,aAAa,CACd,CAAC;AACF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,aAAa,CAAC;oBAC9D,aAAa,EAAE,WAAW,CAAC;gBAC7B,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,aAAa,EAAE,iBAAiB,CAAC;gBACvE,IAAI,CAAC,kBAAkB,CAAC,qBAAqB;oBAC3C,aAAa,EAAE,qBAAqB,CAAC;gBACvC,MAAM;AACR,YAAA,KAAK,gBAAgB;gBACnB,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;gBAC/D,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gBACxE,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,aAAa,EAAE,UAAU,CAAC;gBAC/D,MAAM;AACR,YAAA,KAAK,kBAAkB;AACrB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,cAAc;AACtD,oBAAA,aAAa,EAAE,iBAAiB,IAAI,KAAK,CAAC;AAC5C,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,WAAW;oBACnD,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAU,KAAI;wBACtC,OAAO;4BACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,IAAI,EAAE,KAAK,CAAC,SAAS;4BACrB,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,GAAG,EAAE,KAAK,EAAE,GAAG;yBAChB,CAAA;qBACF,CAAC,IAAI,EAAE,CAAC;AACX,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,WAAW;AACnD,oBAAA,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC;AAC7B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,gBAAgB;AACxD,oBAAA,aAAa,EAAE,kBAAkB,IAAI,KAAK,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,iBAAiB;AACpB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,eAAe,GAAG;oBAClD,kBAAkB,EAAE,aAAa,CAAC,YAAY;oBAC9C,sBAAsB,EAAE,aAAa,CAAC,YAAY;iBACnD,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,aAAa;AAChB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,aAAa,CAAC;gBAC3D,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAClC,SAAA;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAED;;;;AAIG;IACH,eAAe,GAAA;AACb,QAAA,IACE,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM;AACvC,YAAA,IAAI,CAAC,UAAU,EAAE,wBAAwB,EACzC;YACA,IAAI,CAAC,gCAAgC,EAAE,CAAC;AACzC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,SAAA;KACF;IAED,MAAM,CAAC,IAAS,EAAE,KAAW,EAAA;AAC3B,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI;gBACP,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,SAAS,CAClD,CAAC,EAAO,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CACrC,CAAC;gBACF,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC7D,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE;AAC5C,oBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,EAAE,CAAC;oBAC/C,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACtE,iBAAA;gBACD,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;gBACnE,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC;gBAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CACrE,CAAC,KAAU,KAAK,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CACvD,CAAC;AACF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,eAAe,EAAE,CAAC;gBAEvB,MAAM;AACR,YAAA,KAAK,gBAAgB;gBACnB,MAAM,UAAU,GACd,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,CACrD,CAAC,KAAU,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CACjD,CAAC;AACJ,gBAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,eAAe,EAAE,CAAC;gBAEvB,MAAM;AAER,YAAA,KAAK,UAAU;gBACb,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CACpE,CAAC,QAAa,KAAK,QAAQ,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAC7D,CAAC;AACF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,eAAe,EAAE,CAAC;gBAEvB,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,MAAM,kBAAkB,GACtB,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,CACrD,CAAC,QAAa,KAAK,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CACvD,CAAC;AACJ,gBAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAChD,kBAAkB,EAClB,CAAC,CACF,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,MAAM,aAAa,GACjB,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAChD,CAAC,QAAa,KAAK,QAAQ,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAC7D,CAAC;AACJ,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,eAAe,EAAE,CAAC;gBAEvB,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,MAAM,kBAAkB,GACtB,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CACtD,CAAC,QAAa,KAAK,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CACvD,CAAC;AACJ,gBAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CACjD,kBAAkB,EAClB,CAAC,CACF,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,oBAAoB;gBACvB,MAAM,mBAAmB,GACvB,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,CACtD,CAAC,SAAc,KAAK,SAAS,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAC/D,CAAC;AACJ,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CACjD,mBAAmB,EACnB,CAAC,CACF,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBAEvB,MAAM;AACR,YAAA,KAAK,yBAAyB;gBAC5B,MAAM,wBAAwB,GAC5B,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,UAAU,CAAC,SAAS,CAC5D,CAAC,SAAc,KAAK,SAAS,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CACzD,CAAC;AACJ,gBAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CACvD,wBAAwB,EACxB,CAAC,CACF,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAC9D,CAAC,QAAa,KAAK,QAAQ,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAC7D,CAAC;gBACF,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC1C,gBAAA,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AACnB,oBAAA,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;wBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAC1D,CAAC,UAAe,KAAK,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAC7D,CAAC;AACF,wBAAA,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE;4BACjB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACvD,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;oBAChD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;wBACxD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC5C,wBAAA,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AACnB,4BAAA,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;gCAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CACxD,CAAC,UAAe,KAAK,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAC7D,CAAC;AACF,gCAAA,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;oCACf,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,iCAAA;AACH,6BAAC,CAAC,CAAC;AACJ,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;;;;gBAKxC,MAAM;AACR,YAAA,KAAK,gBAAgB;AACnB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC/C,gBAAA,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,GAAG;AAC/C,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,UAAU,EAAE,CAAC;AACb,oBAAA,iBAAiB,EAAE,EAAE;AACrB,oBAAA,cAAc,EAAE,EAAE;iBACnB,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CACpE,CAAC,SAAc,KAAK,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,CACnE,CAAC;gBACF,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBAChE,MAAM;AACR,YAAA,KAAK,YAAY;gBACf,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrD,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG;AACnC,oBAAA,WAAW,EAAE,EAAE;AACf,oBAAA,aAAa,EAAE,EAAE;iBAClB,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,iBAAiB;AACpB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,GAAG,EAAE,CAAC;AAC7C,gBAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;gBACzB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACvD,MAAM;AACR,YAAA,KAAK,aAAa;AAChB,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM;AACR,YAAA,KAAK,eAAe;AAClB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC/B,MAAM;AACT,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;AAChG,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvD,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAED,IAAA,qBAAqB,CAAC,aAAkB,EAAA;AACtC,QAAA,IAAI,OAAY,CAAC;AACjB,QAAA,OAAO,GAAG,aAAa,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,EAAE,KAAK,CAAC;AACvE,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CACnD,IAAI,CAAC,aAAa,EAClB,OAAO,EACP,cAAc,CACf,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CACxD,IAAI,CAAC,QAAQ,EACb,aAAa,EAAE,MAAM,EACrB,UAAU,CACX,CAAC;KACH;AAED,IAAA,qBAAqB,CAAC,aAAkB,EAAA;QACtC,IAAI,OAAO,GAAQ,EAAE,CAAC;QACtB,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AACvC,YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CACnD,IAAI,CAAC,aAAa,EAClB,OAAO,EACP,aAAa,CACd,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG;AACvC,YAAA,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,aAAa,EAAE,MAAM,GAAG,EAAE;SACrE,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,kBAAkB;YAClD,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AACvD,kBAAE,KAAK;kBACL,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,kBAAkB,CAAC;KAC5D;IAED,gBAAgB,CAAC,aAAkB,EAAE,IAAS,EAAA;AAC5C,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,cAAc;AACjB,gBAAA,IAAI,oBAAoB,GAAG,IAAI,CAAC,SAAS,CACvC,aAAa,CAAC,KAAK,EACnB,aAAa,CACd,CAAC;AACF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CACnD,IAAI,CAAC,aAAa,EAClB,oBAAoB,EACpB,aAAa,CACd,CAAC;AACF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,MAAM,CAAC;AAC7C,oBAAA,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,aAAa,EAAE,MAAM,GAAG,EAAE,CAAC;gBACjE,MAAM;AACR,YAAA,KAAK,oBAAoB;AACvB,gBAAA,IAAI,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAC7C,aAAa,CAAC,KAAK,EACnB,aAAa,CACd,CAAC;AACF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CACzD,IAAI,CAAC,aAAa,EAClB,0BAA0B,EAC1B,aAAa,CACd,CAAC;AACF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,YAAY,CAAC;AACnD,oBAAA,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,aAAa,EAAE,MAAM,GAAG,EAAE,CAAC;gBACjE,MAAM;AACT,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG;YACvC,IAAI,EAAE,KAAK,CAAC,WAAW;YACvB,iBAAiB,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,GAAG,KAAK;SACvD,CAAC;AACF,QAAA,MAAM,YAAY,GAChB,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE;cACnE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;AACnC,cAAE,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,WAAW,GACf,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE;cACvD,KAAK,CAAC,kBAAkB;AAC1B,cAAE,KAAK,CAAC,SAAS,CAAC;QACtB,MAAM,sBAAsB,GAAQ,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CACzE,WAAW,EACX,YAAY,CAAC,OAAO,EAAE,EACtB,YAAY,CAAC,QAAQ,EAAE,EACvB,YAAY,CAAC,WAAW,EAAE,CAC3B,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,sBAAsB,EAAE,OAAO,CAAC;QAC5E,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AACpE,QAAA,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;AACpC,QAAA,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC,2BAA2B;cAC1D,KAAK,CAAC,2BAA2B;cACjC,CAAC,CAAC;AACN,QAAA,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB;cAC7C,KAAK,CAAC,iBAAiB;cACvB,CAAC,CAAC;AACN,QAAA,KAAK,CAAC,iBAAiB,GAAG,eAAe,CAAC;QAC1C,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACzE,QAAA,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC5B,KAAK,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACrC,QAAA,KAAK,CAAC,sBAAsB;YAC1B,sBAAsB,CAAC,sBAAsB,CAAC;QAEhD,IAAI,CAAC,kBAAkB,CAAC,SAAS;AAC/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC5C,QAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,YAAY,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,oBAAoB;AAC1C,YAAA,KAAK,CAAC,2BAA2B,GAAG,KAAK,CAAC,2BAA2B,GAAG,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB;cAC/D,KAAK,CAAC,iBAAiB;cACvB,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,eAAe,CAAC;AAC3D,QAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;aAC7D,kBAAkB,CAAC,KAAK,CAAC;AACzB,aAAA,OAAO,EAAE;AACT,aAAA,QAAQ,EAAE,CAAC;AACd,QAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC9C,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACvD,IAAI,CAAC,kBAAkB,CAAC,WAAW;AACjC,YAAA,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;QAClD,IAAI,CAAC,kBAAkB,CAAC,UAAU;AAChC,YAAA,KAAK,CAAC,WAAW;gBACf,KAAK,CAAC,WAAW,KAAK,IAAI;gBAC1B,KAAK,CAAC,WAAW,KAAK,MAAM;gBAC5B,KAAK,CAAC,WAAW,KAAK,EAAE;kBACtB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;kBAC7B,EAAE,CAAC;AACT,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,KAAK,CAAC,iBAAiB;cACvD,KAAK,CAAC,iBAAiB;cACvB,EAAE,CAAC;QACP,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAC7C,IAAI,CAAC,aAAa,EAClB,CAAC,KAAK,CAAC,WAAW,CAAC,EACnB,aAAa,CACd,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,eAAe,CAAC,kBAAkB,GAAG,CAAC,CAAC;QACzE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,eAAe,CAAC,sBAAsB,GAAG,CAAC,CAAC;QAC7E,IAAI,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAC9D,CAAC,EAAO,KAAK,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAC1C;AACC,cAAE;AACA,gBAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CACjC,CAAC,EAAO,KAAK,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAC1C;AACF,aAAA;cACC,EAAE,CAAC;AACP,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,GAAG,YAAY,CAAC;QAC7E,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7D,IAAI,CAAC,kBAAkB,CAAC,SAAS;AAC/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC5C,QAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,kBAAkB,CAAC,sBAAsB;YAC5C,sBAAsB,CAAC,sBAAsB,CAAC;QAChD,IAAI,CAAC,kBAAkB,CAAC,SAAS;AAC/B,YAAA,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG;YAC1C,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,GAAG,IAAI,GAAG,KAAK;YACzD,WAAW,EAAE,KAAK,CAAC,aAAa;YAChC,WAAW,EACT,CAAC,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE;AACzD,kBAAE,EAAE;AACJ,kBAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC;AAChC,YAAA,cAAc,EACZ,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC;iBAC5B,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC;AAC5D,kBAAE,IAAI;AACN,kBAAE,KAAK;SACZ,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,GAAG;AAC/C,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,iBAAiB,EAAE,SAAS;AAC5B,YAAA,cAAc,EAAE,YAAY;SAC7B,CAAC;AAEF,QAAA,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;AACpC,QAAA,IACE,KAAK,CAAC,iBAAiB,KAAK,EAAE;AAC9B,YAAA,KAAK,CAAC,iBAAiB,KAAK,SAAS,EACrC;AACA,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACjC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,EAAE,CAAC;AACxC,SAAA;AAED,QAAA,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;QACpC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,EAAE,EAAE;AAC5C,YAAA,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;AACnC,SAAA;AACD,QAAA,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,WAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAC5C,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;AAChD,YAAA,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,SAAA;AAED,QAAA,IACE,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB;AAC5D,YAAA,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAC1D;AACA,YAAA,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE;AACvB,YAAA,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC;AAC5B,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;;KAE9C;AAED,IAAA,mBAAmB,CAAC,OAAY,EAAA;QAC9B,IAAI,OAAO,CAAC,IAAI,EAAE;;YAEhB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,YAAA,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;AAEhC,YAAA,MAAM,sBAAsB,GAC1B,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CACrC,OAAO,CAAC,IAAI,CAAC,SAAS,EACtB,YAAY,CAAC,OAAO,EAAE,EACtB,YAAY,CAAC,QAAQ,EAAE,EACvB,YAAY,CAAC,WAAW,EAAE,CAC3B,CAAC;YAEJ,IAAI,KAAK,GAAQ,EAAE,CAAC;AACpB,YAAA,KAAK,CAAC,iBAAiB,GAAG,sBAAsB,EAAE,OAAO,CAAC;AAC1D,YAAA,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;AACpC,YAAA,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC;AAC/B,YAAA,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;AAC5B,YAAA,KAAK,CAAC,iBAAiB,GAAG,eAAe,CAAC;YAC1C,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,YAAA,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC5B,KAAK,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACrC,YAAA,KAAK,CAAC,sBAAsB;gBAC1B,sBAAsB,CAAC,sBAAsB,CAAC;AAChD,YAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACpC,YAAA,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC;AAC9C,YAAA,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;AACpC,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAEhC,YAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AACtE,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YAClE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,sBAAsB,EAAE,OAAO,IAAI,EAAE,CAAC;YAC1E,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC;YAC3D,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC;YAC1E,IAAI,CAAC,kBAAkB,CAAC,sBAAsB;gBAC5C,KAAK,CAAC,sBAAsB,CAAC;YAC/B,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;YACpE,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,qBAAqB,IAAI,SAAS,CAAC;AAC1E,YAAA,IAAI,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;gBAC9B,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC;AAClE,aAAA;AACD,YAAA,IAAI,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;AAC7B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAClE,gBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;gBAClC,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,gBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE;AAClC,oBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AACzB,wBAAA,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC9C,aAAA;AACF,SAAA;KACF;AACD;;;;AAIG;AACH,IAAA,kBAAkB,CAAC,IAAS,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1B,QAAA,OAAO,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,YAAY,CAAC;AACtC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AACpB,QAAA,OAAO,IAAI,CAAC;KACb;IAED,eAAe,GAAA;QACb,IAAI,uBAAuB,GAAQ,EAAE,CAAC;QACtC,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,IAAI,gBAAgB,GAAQ,EAAE,CAAC;QAC/B,IAAI,YAAY,GAAQ,EAAE,CAAC;QAC3B,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,IAAI,gBAAgB,GAAQ,EAAE,CAAC;QAC/B,IAAI,gBAAgB,GAAQ,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAEtD,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACtE,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAEtE,QAAA,MAAM,iBAAiB,GAAG,SAAS,CACjC,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,CAC9C,CAAC;AACF,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACpE,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;cAC9C,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,CAAC;cACxD,EAAE,CAAC;AACP,QAAA,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACzE,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB;cAC7C,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,CAAC;cACzD,EAAE,CAAC;AACP,QAAA,MAAM,eAAe,GAAG,SAAS,CAC/B,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,UAAU,CAC/C,CAAC;AACF,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB;cAChD,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,UAAU,CAAC;cAC/D,EAAE,CAAC;AACP,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAC/B,YAAA,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;AACH,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAC/B,YAAA,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACjD,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE;AACvD,YAAA,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAC9B,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;AACH,QAAA,iBAAiB,EAAE,OAAO,CAAC,CAAC,KAAU,KAAI;AACxC,YAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;AAEH,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAC/B,YAAA,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;AACH,QAAA,kBAAkB,EAAE,OAAO,CAAC,CAAC,KAAU,KAAI;AACzC,YAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;AACH,QAAA,iBAAiB,EAAE,OAAO,CAAC,CAAC,KAAU,KAAI;AACxC,YAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;AACH,QAAA,oBAAoB,EAAE,OAAO,CAAC,CAAC,KAAU,KAAI;AAC3C,YAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;AACH,QAAA,YAAY,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAClC,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;AACH,QAAA,eAAe,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AACrC,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;QAEH,uBAAuB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAChE,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QACxC,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QACxC,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1C,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAElD,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,MAAM,CACrC,CAAC,IAAS,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CACtD,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;AAE9B,QAAA,IAAI,CAAC,WAAW,CACd,QAAQ,EACR,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,WAAW,CACZ,CAAC;QACF,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,MAAM,CACvC,CAAC,KAAU,KACT,EACE,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;gBAC3C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC5C,CACJ,CAAC;YACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChE,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,MAAM,CACvC,CAAC,KAAU,KACT,EACE,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;gBAC3C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC5C,CACJ,CAAC;YACF,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,MAAM,CACvC,CAAC,KAAU,KACT,EACE,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;gBAC3C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC5C,CACJ,CAAC;AACH,SAAA;KACF;IAED,WAAW,CACT,QAAa,EACb,uBAA4B,EAC5B,WAAgB,EAChB,YAAiB,EACjB,WAAgB,EAAA;AAEhB,QAAA,IAAI,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CACvC,CAAC,IAAS,KACR,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;YAC1C,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAC5C,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACtC,mBAAmB,EACnB,cAAc,CACf,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CACxC,mBAAmB,EACnB,aAAa,CACd,CAAC;AACF,QAAA,IAAI,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CACvC,CAAC,IAAS,KACR,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;YACzC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAC5C,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACtC,mBAAmB,EACnB,aAAa,CACd,CAAC;AACF,QAAA,IAAI,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CACvC,CAAC,IAAS,KACR,uBAAuB,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;YACrD,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAC7C,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACtC,mBAAmB,EACnB,aAAa,CACd,CAAC;QACF,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CACvC,CAAC,IAAS,KACR,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;gBACzC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAC5C,CAAC;YACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACtC,mBAAmB,EACnB,WAAW,CACZ,CAAC;AACF,YAAA,IAAI,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CACxC,CAAC,IAAS,KACR,uBAAuB,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;gBACrD,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAC7C,CAAC;YACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACtC,oBAAoB,EACpB,WAAW,CACZ,CAAC;AACH,SAAA;KACF;IAED,gCAAgC,GAAA;QAC9B,IAAI,uBAAuB,GAAQ,EAAE,CAAC;QACtC,IAAI,YAAY,GAAQ,EAAE,CAAC;QAC3B,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,IAAI,gBAAgB,GAAQ,EAAE,CAAC;QAC/B,IAAI,gBAAgB,GAAQ,EAAE,CAAC;QAC/B,IAAI,gBAAgB,GAAQ,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3C,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACpE,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACtE,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB;cAC7C,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,CAAC;cACxD,EAAE,CAAC;AACP,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACtE,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;cAC9C,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,CAAC;cACxD,EAAE,CAAC;AACP,QAAA,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACzE,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB;cAC7C,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,CAAC;cACzD,EAAE,CAAC;AACP,QAAA,MAAM,eAAe,GAAG,SAAS,CAC/B,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,UAAU,CAC/C,CAAC;AACF,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB;cAChD,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,UAAU,CAAC;cAC/D,EAAE,CAAC;AACP,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;YAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACtC,YAAA,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;AACH,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAC/B,YAAA,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACjD,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE;AACzD,YAAA,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,SAAA;AAED,QAAA,iBAAiB,EAAE,OAAO,CAAC,CAAC,KAAU,KAAI;AACxC,YAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;AACH,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAC/B,YAAA,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;AACH,QAAA,kBAAkB,EAAE,OAAO,CAAC,CAAC,KAAU,KAAI;AACzC,YAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;AACH,QAAA,YAAY,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAClC,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;AACH,QAAA,eAAe,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AACrC,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;AACH,QAAA,iBAAiB,EAAE,OAAO,CAAC,CAAC,KAAU,KAAI;AACxC,YAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;AACH,QAAA,oBAAoB,EAAE,OAAO,CAAC,CAAC,KAAU,KAAI;AAC3C,YAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;QACH,uBAAuB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAChE,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QACxC,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1C,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QACxC,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAElD,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,MAAM,CACrC,CAAC,IAAS,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CACtD,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC;QAC3D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC;QAC3D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC;QAE3D,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,iBAAiB;AACpB,gBAAA,IAAI,CAAC,eAAe;AAClB,oBAAA,IAAI,CAAC,eAAe,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AACpD,sBAAE,IAAI,CAAC,gBAAgB,CACrB,SAAS,EACT,IAAI,CAAC,eAAe,EAAE,kBAAkB,CACzC;AACD,sBAAE,SAAS,CAAC,MAAM,CAChB,CAAC,KAAU,KACT,EACE,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;wBAC3C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC5C,CACJ,CAAC;AACN,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,CAClD,IAAI,CAAC,iBAAiB,CAAC,aAAa,CACrC,CAAC;AACF,YAAA,IAAI,CAAC,iBAAiB;AACpB,gBAAA,IAAI,CAAC,eAAe;AAClB,oBAAA,IAAI,CAAC,eAAe,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AACpD,sBAAE,IAAI,CAAC,gBAAgB,CACrB,SAAS,EACT,IAAI,CAAC,eAAe,EAAE,kBAAkB,CACzC;AACD,sBAAE,SAAS,CAAC,MAAM,CAChB,CAAC,KAAU,KACT,EACE,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;wBAC3C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC5C,CACJ,CAAC;AACN,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAC1C,IAAI,CAAC,iBAAiB,CAAC,aAAa,CACrC,CAAC;AACF,YAAA,IAAI,CAAC,iBAAiB;AACpB,gBAAA,IAAI,CAAC,eAAe;oBAClB,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC;AAC5D,sBAAE,IAAI,CAAC,gBAAgB,CACrB,SAAS,EACT,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,eAAe,CACjD;AACD,sBAAE,SAAS,CAAC,MAAM,CAChB,CAAC,KAAU,KACT,EACE,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;wBAC3C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC5C,CACJ,CAAC;AACP,SAAA;QACD,IAAI,CAAC,kBAAkB,CACrB,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,WAAW,CACZ,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,SAAc,EAAE,GAAG,IAAW,EAAA;;QAE7C,IAAI,eAAe,GAAQ,EAAE,CAAC;AAC9B,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE,kBAAkB,EAAE;AACpE,YAAA,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAU,KAC5C,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAClC,CAAC;AACH,SAAA;AACD,QAAA,OAAO,eAAe,CAAC;KACxB;AAED,IAAA,kBAAkB,CAChB,uBAA4B,EAC5B,WAAgB,EAChB,YAAiB,EACjB,WAAgB,EAAA;QAEhB,IAAI,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CACpE,CAAC,IAAS,KACR,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;YAC1C,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAC5C,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACtC,mBAAmB,EACnB,cAAc,CACf,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CACxC,mBAAmB,EACnB,aAAa,CACd,CAAC;QACF,IAAI,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CACpE,CAAC,IAAS,KACR,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;YACzC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAC5C,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACtC,mBAAmB,EACnB,aAAa,CACd,CAAC;QACF,IAAI,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CACpE,CAAC,IAAS,KACR,uBAAuB,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;YACrD,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAC7C,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACtC,mBAAmB,EACnB,aAAa,CACd,CAAC;QACF,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CACzD,CAAC,IAAS,KACR,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;gBACzC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAC5C,CAAC;YACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACtC,mBAAmB,EACnB,WAAW,CACZ,CAAC;YACF,IAAI,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CACjD,CAAC,IAAS,KACR,uBAAuB,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;gBACrD,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAC7C,CAAC;YACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACtC,mBAAmB,EACnB,WAAW,CACZ,CAAC;AACH,SAAA;KACF;AAED;;;;;;;;AAQG;IACH,oBAAoB,GAAA;AAClB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;aAAM,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AAC/C,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;;AAErD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACrD,SAAA;KACF;AAED;;;AAGG;IACH,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IACE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM;YACxC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,EACpD;AACA,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1B,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,IACE,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI;YAC5C,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EACxD;AACA,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC3B,SAAA;AAAM,aAAA,IACL,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI;aACxC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;iBACnD,CAAC,IAAI,CAAC,kBAAkB;qBACtB,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI;wBAC9C,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1D,wBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAChC;AACA,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,SAAA;AAAM,aAAA,IACL,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS;AAClC,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,IAAI,EAAE;AACvC,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,EAAE;AACxC,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,SAAS,EAC/C;AACA,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1B,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,SAAA;AAED,QAAA,IACE,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI;YAC5C,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AACxD,YAAA,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS;AAClC,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,EAAE;AACxC,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,SAAS;aAC9C,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;iBACjD,CAAC,IAAI,CAAC,kBAAkB;qBACtB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI;wBAC5C,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;AACxD,wBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAChC;AACA,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AAED,IAAA,qBAAqB,CAAC,WAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,SAAS,GAAGjQ,QAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CACnE,qBAAqB,CACtB,CAAC;QACF,SAAS,GAAGA,QAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,MAAM,CAC9D,qBAAqB,CACtB,CAAC;QACF,MAAM,SAAS,GACb,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC;cACtB,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAO,KAAS;AACpC,gBAAA,IAAI,EAAE,EAAE;AACN,oBAAA,MAAM,YAAY,GAAG;wBACnB,aAAa,EAAE,EAAE,CAAC,aAAa;wBAC/B,KAAK,EAAE,EAAE,CAAC,IAAI;wBACd,YAAY,EAAE,EAAE,EAAE,cAAc;qBACjC,CAAC;AACF,oBAAA,OAAO,YAAY,CAAC;AACrB,iBAAA;AACH,aAAC,CAAC;cACA,EAAE,CAAC;QACT,MAAM,cAAc,GAClB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC;cACtB,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAO,KAAS;AACpC,gBAAA,IAAI,EAAE,EAAE;oBACN,OAAO,EAAE,CAAC,IAAI,CAAC;AAChB,iBAAA;AACH,aAAC,CAAC;cACA,EAAE,CAAC;AAET,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAErC,QAAA,MAAM,0BAA0B,GAAG,CAAC,OAAe,KAAI;AACrD,YAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE;AACrE,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACH,SAAC,CAAC;QAEF,IAAI,gBAAgB,GAAU,EAAE,CAAC;QACjC,IAAI,iBAAiB,GAAU,EAAE,CAAC;QAClC,IAAI,CAAC,kBAAkB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC3D,YAAA,IACE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,KAAK,GAAG,EAAE,WAAW,EACrE;AACA,gBAAA,MAAM,OAAO,GAAG;oBACd,SAAS,EAAE,GAAG,EAAE,WAAW;oBAC3B,eAAe,EAAE,GAAG,EAAE,GAAG;oBACzB,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAO,KAAI;wBAC/C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxD,qBAAC,CAAC;iBACH,CAAC;AACF,gBAAA,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAChC,gBAAA,iBAAiB,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAC3C,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,wBAAwB,GAAQ,EAAE,CAAC;AACvC,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,QAAQ,EAAE;AACrC,YAAA,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,EAAE,MAAM,CAClE,CAAC,EAAO,KAAI;AACV,gBAAA,QACE,EAAE,KAAK,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW;AACvD,oBAAA,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,EAC5D;AACJ,aAAC,CACF,CAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,8BAA8B,CACjC,IAAI,CAAC,IAAI,KAAK,MAAM;AACpB,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,cAAc,KAAK,KAAK;YAC1D,IAAI,CAAC,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,CAClE,CAAC;AAEF,QAAA,MAAM,OAAO,GACX,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;cACzD,WAAW,CAAC,WAAW;cACvB,EAAE,CAAC;AACT,QAAA,MAAM,SAAS,GACb,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;cACvD,WAAW,CAAC,SAAS;cACrB,EAAE,CAAC;AACT,QAAA,IAAI,OAAO,GAAQ;AACjB,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAChC,IAAI,CAAC,gBAAgB,EACrB,KAAK,CACN,CAAC,QAAQ,EAAE;YACZ,eAAe,EAAE,WAAW,EAAE,OAAO;AACnC,kBAAE,WAAW,EAAE,OAAO,EAAE,MAAM;sBAC1B,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;AACxC,sBAAE,EAAE;AACN,kBAAE,EAAE;AACN,YAAA,kBAAkB,EAAE,gBAAgB;AACpC,YAAA,mBAAmB,EAAE,IAAI,CAAC,YAAY,CAAC;AACrC,gBAAA,GAAG,wBAAwB;AAC3B,gBAAA,GAAG,iBAAiB;aACrB,CAAC;;YAEF,WAAW,EACT,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,GAAG,CAAC;AACvD,kBAAE,IAAI,CAAC,YAAY,CAAC;AAClB,oBAAA,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ;AACpC,oBAAA,GAAG,iBAAiB;oBACpB,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;AAC1C,iBAAA,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE;AACxB,kBAAE,EAAE;YACR,eAAe,EAAE,WAAW,EAAE,QAAQ;AACpC,kBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AACzD,kBAAE,EAAE;YACN,sBAAsB,EAAE,WAAW,EAAE,WAAW;kBAC5C,WAAW,CAAC,qBAAqB;AACnC,kBAAE,EAAE;YACN,kBAAkB,EAAE,WAAW,EAAE,WAAW;kBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;AACrD,kBAAE,EAAE;AACN,YAAA,eAAe,EAAE,CAAC;AAClB,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,sBAAsB,EAAE,0BAA0B,CAAC,WAAW,CAAC,SAAS,CAAC;kBACrE,WAAW,CAAC,sBAAsB;AACpC,kBAAE,CAAC;AACL,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ;AACtE,YAAA,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;gBACrD,OAAO;oBACL,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,KAAK;iBACjB,CAAA;AACH,aAAC,CAAC;YACF,WAAW,EAAE,WAAW,EAAE,EAAE;kBACxB,IAAI,CAAC,6BAA6B;oBAClC,IAAI,CAAC,wBAAwB,IAAI,CAAC;AAClC,sBAAE,EAAE;AACJ,sBAAE,SAAS;AACb,kBAAE,EAAE;AACN,YAAA,iBAAiB,EAAE,IAAI,CAAC,UAAU,KAAK,gBAAgB,GAAG,IAAI,GAAG,KAAK;YACtE,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;YAChD,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,uBAAuB,EAAE,WAAW,EAAE,QAAQ;AAC5C,kBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAC/D,kBAAE,EAAE;YACN,iBAAiB,EAAE,WAAW,CAAC,SAAS;AACxC,YAAA,cAAc,EAAE,WAAW,CAAC,UAAU,IAAI,YAAY;AACtD,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,eAAe,EACb,WAAW,CAAC,SAAS,CAAC,cAAc,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC;AAC3D,YAAA,iBAAiB,EAAE,WAAW,CAAC,cAAc,CAAC,iBAAiB,GAAG,CAAC,GAAG,CAAC;YACvE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,GAAG,IAAI,GAAG,KAAK;AAC9D,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,iBAAiB,EAAE,WAAW,CAAC,gBAAgB,IAAI,eAAe;YAClE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB;AAC7C,kBAAE,WAAW,CAAC,iBAAiB,CAAC,WAAW;AAC3C,kBAAE,EAAE;AACN,YAAA,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;AAC5B,YAAA,SAAS,EACP,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC;AAC3D,kBAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;kBACpD,IAAI,CAAC,QAAQ;YACnB,SAAS,EAAE,WAAW,EAAE,SAAS,GAAG,SAAS,GAAG,EAAE;AAClD,YAAA,gBAAgB,EAAE,WAAW,CAAC,QAAQ,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE;AACpE,YAAA,qBAAqB,EAAE,CAAC;YACxB,eAAe,EAAE,IAAI,CAAC,cAAc;AACpC,YAAA,eAAe,EAAE,CAAC;AAClB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,OAAO,EAAE,OAAO;YAChB,oBAAoB,EAAE,WAAW,CAAC,oBAAoB;YACtD,aAAa,EAAE,WAAW,EAAE,gBAAgB;AAC1C,kBAAE,WAAW,CAAC,iBAAiB,CAAC,WAAW;AAC3C,kBAAE,EAAE;YACN,cAAc,EACZ,WAAW,EAAE,gBAAgB;gBAC3B,WAAW,CAAC,iBAAiB,CAAC,cAAc;AAC5C,kBAAE,CAAC;AACH,kBAAE,CAAC;AACP,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC,IAAI;AAC5C,YAAA,kBAAkB,EAAE,WAAW,CAAC,iBAAiB,CAAC,gBAAgB;AAChE,kBAAE,CAAC;AACH,kBAAE,CAAC;YACL,iBAAiB,EAAE,WAAW,EAAE,QAAQ;kBACpC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,kBAAkB,KAAK,EAAE;AAC/D,sBAAE,CAAC;sBACD,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,kBAAkB,CAAC;AACpE,kBAAE,CAAC;YACL,wBAAwB,EAAE,WAAW,EAAE,QAAQ;kBAC3C,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,sBAAsB,KAAK,EAAE;AACnE,sBAAE,CAAC;sBACD,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,sBAAsB,CAAC;AACxE,kBAAE,CAAC;YACL,YAAY,EAAE,WAAW,EAAE,QAAQ;AACjC,kBAAE;AACA,oBAAA,MAAM,EAAE;wBACN,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAChC,IAAI,CAAC,gBAAgB,EACrB,MAAM,EACN,WAAW,CAAC,SAAS,CAAC,YAAY,EAClC,WAAW,CAAC,SAAS,CAAC,kBAAkB;AACtC,8BAAE,YAAY;8BACZ,QAAQ,CACb;AACD,wBAAA,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,kBAAkB;AAC5C,8BAAE,YAAY;AACd,8BAAE,QAAQ;AACb,qBAAA;AACF,iBAAA;AACD,kBAAE,EAAE;AACN,YAAA,YAAY,EAAE;AACZ,gBAAA,mBAAmB,EACjB,WAAW,CAAC,SAAS,CAAC,cAAc,KAAK,SAAS;AAChD,sBAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC;AAC3D,sBAAE,EAAE;AACR,gBAAA,sBAAsB,EACpB,WAAW,CAAC,SAAS,CAAC,cAAc,KAAK,SAAS;AAChD,sBAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC;AAC3D,sBAAE,EAAE;AACR,gBAAA,eAAe,EACb,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAC9C,MAAM,CACP,IAAI,EAAE;AACT,gBAAA,sBAAsB,EACpB,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,UAAU,EACpD,MAAM,CACP,IAAI,EAAE;AACT,gBAAA,gBAAgB,EACd,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAC7C,MAAM,CACP,IAAI,EAAE;AACV,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EACZ,WAAW,CAAC,SAAS,CAAC,cAAc,KAAK,SAAS;AAChD,sBAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACrD,sBAAE,EAAE;AACR,gBAAA,iBAAiB,EACf,WAAW,CAAC,SAAS,CAAC,cAAc,KAAK,SAAS;AAChD,sBAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACrD,sBAAE,EAAE;AACR,gBAAA,gBAAgB,EACd,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;AAC3D,gBAAA,uBAAuB,EACrB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC;oBACzD,EAAE;AACJ,gBAAA,WAAW,EACT,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,EACxC,KAAK,CACN,IAAI,EAAE;AACV,aAAA;YACD,oBAAoB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AAC5D,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,UAAU,EAAE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,SAAS,GAAG,YAAY;AACpE,YAAA,QAAQ,EAAE,EAAE;YACZ,gBAAgB,EAAE,WAAW,EAAE,mBAAmB;kBAC9C,WAAW,CAAC,UAAU;AACxB,kBAAE,aAAa;AACjB,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,cAAc,EAAE,SAAS;AACzB,YAAA,aAAa,EAAE,CAAC;YAChB,kBAAkB,EAAE,WAAW,EAAE,SAAS;AACxC,kBAAE,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC;AACrC,sBAAE,CAAC;AACH,sBAAE,CAAC;AACL,kBAAE,CAAC;YACL,oBAAoB,EAAE,WAAW,EAAE,SAAS;kBACxC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC;AAC1D,kBAAE,EAAE;AACN,YAAA,yBAAyB,EAAE,EAAE;YAC7B,sBAAsB,EACpB,WAAW,EAAE,cAAc;AACzB,gBAAA,IAAI,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,WAAW;AAC5D,kBAAE;AACA,oBAAA,WAAW,EACT,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,WAAW;AAC5D,oBAAA,MAAM,EAAE,IAAI,CAAC,cAAc,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC;AACxD,oBAAA,UAAU,EAAE,IAAI,CAAC,cAAc,KAAK,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACjE,oBAAA,iBAAiB,EAAE,CAAA,IAAA,EAAO,IAAI,CAAC,uBAAuB,CAAI,EAAA,CAAA;AAC1D,oBAAA,cAAc,EAAEA,QAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,MAAM,CACtD,UAAU,CACX;AACF,iBAAA;AACD,kBAAE;AACA,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,UAAU,EAAE,CAAC;AACb,oBAAA,iBAAiB,EAAE,CAAE,CAAA;AACrB,oBAAA,cAAc,EAAE,EAAE;AACnB,iBAAA;AACL,YAAA,UAAU,EAAE;gBACV,WAAW,EAAE,WAAW,EAAE,UAAU;AAClC,sBAAE,WAAW,EAAE,UAAU,EAAE,WAAW;AACtC,sBAAE,EAAE;gBACN,aAAa,EAAE,WAAW,EAAE,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE,eAAe,KAAK,kBAAkB;AACtG,sBAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG;AACjD,sBAAE,WAAW,EAAE,UAAU,EAAE,aAAa;AAC3C,aAAA;YACD,qBAAqB,EAAE,WAAW,EAAE,eAAe;AACjD,kBAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC;sBACnD,WAAW,EAAE,eAAe;AAC9B,sBAAE,EAAE;AACN,kBAAE,EAAE;YACN,kBAAkB,EAAE,WAAW,EAAE,eAAe;AAC9C,kBAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC;AACrD,sBAAE,uBAAuB;sBACvB,WAAW,EAAE,UAAU,IAAI,WAAW,EAAE,UAAU,EAAE,WAAW;AAC/D,0BAAE,YAAY;AACd,0BAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,IAAI,EAAE;AAC1D,4BAAA,WAAW,EAAE,WAAW;AACxB,8BAAE,YAAY;AACd,8BAAE,EAAE;AACV,kBAAE,EAAE;YAEN,cAAc,EAAE,WAAW,EAAE,WAAW;AACtC,kBAAE,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,KAAK,CAAC;AAC7D,kBAAE,EAAE;YACN,SAAS,EAAE,IAAI,CAAC,eAAe;YAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC;QAIF,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,OAAO,CAAC,0BAA0B,CAAC;AACjC,gBAAA,IAAI,CAAC,6BAA6B,IAAI,WAAW,EAAE,EAAE;sBACjD,IAAI,CAAC,wBAAwB;sBAC7B,CAAC,CAAC;YACR,OAAO,CAAC,yBAAyB,CAAC;AAChC,gBAAA,IAAI,CAAC,6BAA6B,IAAI,WAAW,EAAE,EAAE;AACnD,sBAAE,cAAc;sBACd,EAAE,CAAC;AACV,SAAA;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AAE7F,QAAA,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;AAC7C,YAAA,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,SAAS,CACvE,CAAC,GAAQ,KAAI;AACX,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;AAE9B,gBAAA,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,cAAc,EAAE;oBAC/D,IAAI,CAAC,aAAa,GAAG,CAAA,mBAAA,EAAsB,GAAG,CAAC,+BAA+B,8EAA8E,CAAC;AAC9J,iBAAA;gBACD,IAAI,IAAI,CAAC,qBAAqB,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,EAAE;AACzD,oBAAA,IAAI,CAAC,aAAa;AAChB,wBAAA,+DAA+D,CAAC;AACnE,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE;wBAC1B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,uBAAuB,CAAC;AAC3D,wBAAA,IAAI,CAAC,aAAa,GAAG,CAAA,4CAAA,EAA+C,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CACjG,CAAC,MAAW,KAAK,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CACxD,CAAC,WACA,CAAA,CAAE,CAAC;AACN,qBAAA;AACF,iBAAA;;AAGH,aAAC,EACD,CAAC,GAAG,KAAI;AACN,gBAAA,OAAO,CAAC,KAAK,CAAC,8DAA8D,EAAE;AAC5E,oBAAA,KAAK,EAAE,GAAG;oBACV,YAAY,EAAE,GAAG,EAAE,OAAO;oBAC1B,WAAW,EAAE,GAAG,EAAE,MAAM;oBACxB,SAAS,EAAE,GAAG,EAAE,KAAK;AACrB,oBAAA,OAAO,EAAE,qBAAqB;AAC/B,iBAAA,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,kGAAkG,CAAC;gBACrL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,OAAO,EACP,OAAO,CACR,CAAC;AACJ,aAAC,CACF,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,qBAAqB,EAAE;AACzB,gBAAA,qBAAqB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAA;AACpD,aAAA;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,CAAA,qCAAA,CAAuC,CAAC;AAC7D,YAAA,IAAI,CAAC,qBAAqB;iBACvB,aAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC;AACjE,iBAAA,SAAS,CACR,CAAC,GAAQ,KAAI;AACX,gBAAA,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;AAC9B,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;;AAGlC,aAAC,EACD,CAAC,GAAG,KAAI;AACN,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,aAAC,CACF,CAAC;AACL,SAAA;KACF;AAED,IAAA,kBAAkB,CAChB,aAAkB,EAClB,aAAkB,EAClB,aAAkB,EAAA;QAElB,IAAI,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAC/C,aAAa,EACb,aAAa,CACd,CAAC;AACF,QAAA,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;AACxE,QAAA,IAAI,QAAQ,GAAG;AACb,YAAA,GAAG,aAAa;AAChB,YAAA,GAAG,aAAa,CAAC,MAAM,CACrB,CAAC,SAAc,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CACtD;SACF,CAAC;AACF,QAAA,OAAO,QAAQ,CAAC;KACjB;AAED,IAAA,8BAA8B,CAAC,OAAa,EAAA;QAC1C,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,gBAAgB,GAAG,OAAO;kBAC3B,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;kBAC7D,IAAI,CAAC,kBAAkB,CACvB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAC7C,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CACzC,CAAC;YACJ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAC7C,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAC7C,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CACzC,CAAC;YACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAC7C,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAC9C,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CACzC,CAAC;YACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CACnD,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,UAAU,EACpD,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,UAAU,CAC/C,CAAC;AACH,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC;YACjE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC;YACjE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC;AACjE,YAAA,IAAI,CAAC,sBAAsB;AACzB,gBAAA,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,UAAU,CAAC;AAClD,SAAA;KACF;AAED;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,kBAAkB,GAAG;AACxB,YAAA,SAAS,EAAE;AACT,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,iBAAiB,EAAE,KAAK;AACzB,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,cAAc,EAAE,KAAK;AACrB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,KAAK;AACrB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,qBAAqB,EAAE,EAAE;AACzB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,kBAAkB,EAAE,IAAI;AACxB,gBAAA,eAAe,EAAE;AACf,oBAAA,kBAAkB,EAAE,CAAC;AACrB,oBAAA,sBAAsB,EAAE,CAAC;AAC1B,iBAAA;AACD,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,kBAAkB,EAAE,IAAI;AACxB,gBAAA,eAAe,EAAE;AACf,oBAAA,kBAAkB,EAAE,CAAC;AACrB,oBAAA,sBAAsB,EAAE,CAAC;AAC1B,iBAAA;AACD,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,iBAAiB,EAAE;AACjB,gBAAA,cAAc,EAAE,KAAK;AACrB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,gBAAgB,EAAE,KAAK;AACxB,aAAA;AACD,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,oBAAoB,EAAE,EAAE;SACzB,CAAC;QACF,IAAI,CAAC,WAAW,GAAG;AACjB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,EAAE,EAAE,KAAK;AACT,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,IAAI,EAAE,KAAK;SACZ,CAAC;AACF,QAAA,IAAI,CAAC,oBAAoB,GAAG,0CAA0C,CAAC;QACvE,IAAI,CAAC,gBAAgB,GAAG;AACtB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,mBAAmB,EAAE,CAAC;AACtB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,SAAS,EAAE,eAAe;AAC1B,YAAA,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AAClD,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AACtD,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,yBAAyB,EAAE,EAAE;SAC9B,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;AACvC,QAAA,IAAI,CAAC,qBAAqB,GAAG,EAC5B,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;AACD,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,gBAAgB,EAAE;AACxC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO;AACR,SAAA;AACD,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,MAAM;AACT,SAAA;KACF;IACD,oBAAoB,GAAA;AAClB,QAAA,IAAI,GAAW,CAAC;QAChB,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC;QAC7D,IAAI,YAAY,GAAG,+BAA+B,CAAC;AACnD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAChD,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;AACvD,SAAA;AAAM,aAAA;YACL,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;AACxD,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AAEjE,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;AACD,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;;AAErC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3E;AAED,IAAA,4BAA4B,CAAC,KAAU,EAAA;QACrC,MAAM,aAAa,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;YACnC,OAAO,KAAK,EAAE,yBAAyB,CAAC;AACzC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;AAGD,IAAA,uBAAuB,CAAC,KAAU,EAAA;AAChC,QAAA,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACzE,QAAA,IAAI,IAAI,GAAQ;YACd,OAAO,EAAE,KAAK,EAAE,OAAO;YACvB,MAAM,EAAE,KAAK,EAAE,WAAW;YAC1B,WAAW,EAAE,KAAK,EAAE,QAAQ;YAC5B,eAAe,EAAE,KAAK,EAAE,eAAe;YACvC,gBAAgB,EAAE,KAAK,EAAE,iBAAiB;AAC1C,YAAA,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC;YAC1C,UAAU,EAAE,KAAK,EAAE,IAAI;YACvB,sBAAsB,EAAE,KAAK,EAAE,cAAc;AAC7C,YAAA,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC;YAC1C,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CACxC,KAAK,EAAE,IAAI,CACZ;YAED,IAAI,EAAE,KAAK,EAAE,IAAI;YACjB,GAAG,EAAE,KAAK,EAAE,GAAG;AACf,YAAA,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK;AAClC,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,aAAa,EAAE,aAAa;AAC5B,YAAA,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY;AAC1C,YAAA,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe;AAC/C,YAAA,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB;YACxD,YAAY,EAAE,KAAK,EAAE,UAAU;SAEhC,CAAC;QAGF,IAAI,KAAK,EAAE,0BAA0B,EAAE;YACrC,IAAI,CAAC,qBAAqB,CAAC,0BAA0B,GAAG,KAAK,EAAE,0BAA0B,CAAC;AAC3F,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC1B;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,IAAI,WAAW,GAAa,EAAE,CAAC;QAC/B,IAAI,aAAa,GAAa,EAAE,CAAC;AACjC,QAAA,MAAM,QAAQ,GAAG,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1D,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAa,KAAI;AAC3C,gBAAA,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACrB,oBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC7B,iBAAA;AACH,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AAC3C,SAAA;AAAM,aAAA;YACL,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAa,KAAI;gBAC3C,IAAI,GAAG,KAAK,GAAG,EAAE;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBAAA,CAAC;AAChC,iBAAA;AACH,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;AACvC,SAAA;KAEF;AAED,IAAA,mBAAmB,CAAC,KAAU,EAAA;QAC5B,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,KAAK,EAAE,iBAAiB,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,KAAK,EAAE,cAAc,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,EAAE,oBAAoB,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,EAAE,iBAAiB,CAAC;QACxD,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,KAAK,EAAE,iBAAiB,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,KAAK,EAAE,gBAAgB,CAAC;AAC1D,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,GAAG,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,gBAAgB,CAAC,cAAc,GAAG,KAAK,EAAE,OAAO,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,sBAAsB;YAC1C,KAAK,EAAE,sBAAsB,CAAC;AAChC,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,EAAE,WAAW,CAAC;;;;;;KAOhD;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,OAAO,IAAI,CAAA;KACZ;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;AAC/B,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,SAAA;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,kBAAkB,CAAC,oBAAoB;AAC1C,YAAA,KAAK,CAAC,IAAI,KAAK,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAE5C,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAChE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAClE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,sBAAsB;YAC5C,KAAK,CAAC,sBAAsB,CAAC;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC1C,QAAA,IAAI,OAAO,GAAQ;YACjB,iBAAiB,EAAE,KAAK,CAAC,OAAO;YAChC,cAAc,EAAE,KAAK,CAAC,UAAU;YAChC,oBAAoB,EAAE,KAAK,CAAC,MAAM;YAClC,iBAAiB,EAAE,KAAK,CAAC,WAAW;YACpC,iBAAiB,EAAE,KAAK,CAAC,gBAAgB;YACzC,gBAAgB,EAAE,KAAK,CAAC,SAAS;AACjC,YAAA,gBAAgB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACtC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;AAEF,QAAA,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;KACnC;AAED,IAAA,UAAU,CAAC,IAAY,EAAA;AACrB,QAAA,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;AAED;;;AAGG;AACH,IAAA,uBAAuB,CAAC,SAAc,EAAA;QACpC,IAAI;AACF,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACtE,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtD,QAAQ,SAAS,EAAE,IAAI;AACrB,gBAAA,KAAK,OAAO;AACV,oBAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;oBAC1D,MAAM;AACR,gBAAA,KAAK,QAAQ;AACX,oBAAA,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;oBAC3D,MAAM;AACR,gBAAA,KAAK,SAAS;AACZ,oBAAA,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;oBAC5D,MAAM;AACR,gBAAA,KAAK,WAAW;AACd,oBAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;oBAC9D,MAAM;AACR,gBAAA,KAAK,YAAY;AACf,oBAAA,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;oBAC7D,MAAM;AACR,gBAAA,KAAK,QAAQ;AACX,oBAAA,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;oBAC3D,MAAM;AACR,gBAAA,KAAK,UAAU;AACb,oBAAA,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;oBAC5D,MAAM;AACR,gBAAA,KAAK,QAAQ;AACX,oBAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;oBACpD,MAAM;AACR,gBAAA,KAAK,aAAa;AAChB,oBAAA,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;oBACxD,MAAM;AACR,gBAAA,KAAK,EAAE;AACL,oBAAA;AACE,wBAAA,IAAI,CAAC,oBAAoB;AACvB,4BAAA,yCAAyC,CAAC;AAC7C,qBAAA;oBACD,MAAM;AACR,gBAAA,KAAK,kBAAkB,CAAC;;;;;;AAMzB,aAAA;AAEF,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;;AAEV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;KACF;AACD;;;;;;AAMG;AACH,IAAA,iBAAiB,CACf,gBAAqB,EACrB,QAAgB,EAChB,yBAA8B,EAAA;AAE9B,QAAA,IAAI,CAAC,oBAAoB;YACvB,gBAAgB,CAAC,CAAC,CAAC;gBACnB,GAAG;AACH,iBAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;AACpD,gBAAA,uBAAuB,CAAC;AAC1B,QAAA,IAAI,yBAAyB,EAAE;AAC7B,YAAA,IAAI,QAAQ,KAAK,yBAAyB,CAAC,QAAQ,EAAE;AACnD,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,gBAAgB,CAAC,CAAC,CAAC;wBACnB,GAAG;AACH,yBAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;wBACpD,uBAAuB;AACvB,yBAAC,yBAAyB;8BACtB,yBAAyB,CAAC,WAAW;8BACrC,EAAE,CAAC,CAAC;AACX,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;KACpC;AAED;;;;;;AAMG;IACH,mBAAmB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC3D,QAAA,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC/C,QAAA,IAAI,gBAAgB,EAAE,GAAG,KAAK,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,oBAAoB,GAAG,WAAW,GAAG,aAAa,CAAC;AACzD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,oBAAoB;gBACvB,QAAQ;AACR,oBAAA,gBAAgB,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC;oBAClE,MAAM;AACN,oBAAA,aAAa,CAAC;AACjB,SAAA;KAEF;AAED;;;;;;;;;;;;AAYG;IACH,oBAAoB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC5D,QAAA;AACE,YAAA,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AAClE,gBAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,aAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,aAAa,CAAC;AAC1D,aAAA;YACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,kBAAkB,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,aAAa,CAAC;AACpE,aAAA;YACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,YAAY,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,aAAa,CAAC;AAC9D,aAAA;YACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACrC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,QAAQ;AACR,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,KAAK;wBACL,WAAW,CAAC,IAAI,EAAE;wBAClB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;AACF,SAAA;KACF;AAED;;;;;AAKG;IACH,qBAAqB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC7D,QAAA;AACE,YAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;gBACpE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,aAAC,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IACL,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBACpC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACpC;AACA,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;AACF,SAAA;KACF;AAED;;;;;;AAMG;IACH,uBAAuB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC/D,QAAA;AACE,YAAA,MAAM,SAAS,GAAG;gBAChB,+BAA+B;gBAC/B,iCAAiC;gBACjC,mCAAmC;aACpC,CAAC;YACF,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe;AACf,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe;AACf,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe;AACf,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IACL,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBACpC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACpC;AACA,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;AACF,SAAA;KACF;AAED;;;;AAIG;IACH,sBAAsB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC9D,QAAA;AACE,YAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;gBACpE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,aAAC,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,oBAAoB;oBACvB,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;AACvE,aAAA;iBAAM,IACL,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBACpC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACpC;AACA,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;iBAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,oBAAoB;AACvB,oBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC7B,cAAc;AACd,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;wBACxB,MAAM;AACN,wBAAA,aAAa,CAAC;AACjB,aAAA;AACF,SAAA;KACF;AAED;;;;;;;;AAQG;IACH,oBAAoB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC5D,QAAA;YACE,MAAM,YAAY,GAChB,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBACrC,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,eAAe;AACf,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,eAAe;AACf,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,eAAe;AACf,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACrC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,cAAc;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IACE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;oBACpC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACpC;AACA,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,cAAc;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,cAAc;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,cAAc;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;AACF,aAAA;YAED,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBACrC,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;;AAEvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,MAAM;AACN,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,oBAAoB;4BACpB,YAAY;4BACZ,YAAY;AACZ,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;;AAEvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,MAAM;AACN,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,oBAAoB;4BACpB,YAAY;4BACZ,YAAY;AACZ,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;;AAEvC,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,MAAM;AACN,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,oBAAoB;4BACpB,YAAY;4BACZ,YAAY;AACZ,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;;AAErC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,SAAS;AACT,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,oBAAoB;4BACpB,YAAY;4BACZ,YAAY;AACZ,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IACE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;oBACpC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACpC;AACA,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,cAAc;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,cAAc;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;gBACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC7B,cAAc;AACd,4BAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM;AACN,4BAAA,aAAa,CAAC;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AAED;;;;;;;;;;;;;AAaG;IACH,qBAAqB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC7D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,oBAAoB,GAAG,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;KACpJ;AAED;;;AAGG;IACH,oBAAoB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAC5D,QAAA,MAAM,SAAS,GAAG;YAChB,+BAA+B;YAC/B,iCAAiC;YACjC,mCAAmC;SACpC,CAAC;QACF,MAAM,OAAO,GAAG,gBAAgB,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,QAAA;AACE,YAAA,QAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,gBAAA,KAAK,CAAC;AACJ,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;oBACvD,MAAM;AACR,gBAAA,KAAK,CAAC;AACJ,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,SAAS;AACT,4BAAA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;gCACrC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;AAE5C,6BAAC,CAAC;4BACF,OAAO;4BACP,OAAO,CAAC,CAAC,CAAC;AACV,4BAAA,mBAAmB,CAAC;oBACtB,MAAM;AACR,gBAAA,KAAK,CAAC;AACJ,oBAAA,IAAI,CAAC,oBAAoB;wBACvB,QAAQ;AACR,4BAAA,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACjD,OAAO;4BACP,OAAO,CAAC,CAAC,CAAC;AACV,4BAAA,mBAAmB,CAAC;oBACtB,MAAM;AACR,gBAAA,KAAK,CAAC;AACJ,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;AAC1D,aAAA;AACF,SAAA;KACF;IAED,wBAAwB,CAAC,gBAAqB,EAAE,aAAkB,EAAA;AAChE,QAAA,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;QACvE,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,uBAAuB,GAAG,IAAI,CAAC,qBAAqB,EAAE,0BAA0B,EAAE,KAAK,CAAC;KACzK;AAED;;;;AAIG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,UAAU,CAAC,MAAK;;AAEd,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACxC,EAAE,CAAC,CAAC,CAAC;KACP;AAED;;;;AAIG;AACH,IAAA,kBAAkB,CAAC,GAAS,EAAA;QAC1B,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,EAAE,EAAE;AAC5C,YAAA,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;AACnC,SAAA;AACD,QAAA,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,WAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAE5C,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,CAAC,EAAE;AACtC,YAAA,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;AACjC,SAAA;AACD,QAAA,IACE,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,gBAAgB;AAC1D,YAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,cAAc,EACxD;AACA,YAAA,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC1C,SAAA;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE;AAC1C,YAAA,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC;AAC5B,SAAA;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE;AACnD,YAAA,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;AACrC,SAAA;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,CAAC,EAAE;AAC1D,YAAA,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;AACrC,SAAA;QAED,IACE,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;YACpD,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EACzD;AACA,YAAA,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,SAAA;QAED,IACE,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;YACpD,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;YAC1D,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;YAC1D,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAChE;AACA,YAAA,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,SAAA;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC,EAAE;AACtD,YAAA,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;AACnC,SAAA;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,GAAG,CAAC,EAAE;AACzD,YAAA,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC;AACxC,SAAA;AAED,QAAA,IAAI,GAAG,CAAC,kBAAkB,KAAK,YAAY,EAAE;AAC3C,YAAA,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,SAAA;AAED,QAAA,IAAI,GAAG,CAAC,kBAAkB,KAAK,uBAAuB,EAAE;AACtD,YAAA,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC;AACzC,SAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,EAAE;AACrF,YAAA,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC;AACvC,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC9C;;IAGD,YAAY,GAAA;QACV,IACE,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;AACzD,YAAA,IAAI,CAAC,UAAU,KAAK,KAAK,EACzB;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,IAAI,MAAM,EAAE;AACjD,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,IAAI,MAAM,EAAE;AAC/C,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,EAAE,CAAC;AACxC,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,kBAAkB;YAClD,KAAK,KAAK,YAAY,GAAG,IAAI,GAAG,KAAK,CAAC;KACzC;AAED,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;AAED;;;AAGG;AACH,IAAA,qBAAqB,CAAC,gBAAqB,EAAA;QACzC,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAC9C,IAAI,CAAC,uBAAuB,EAC5B,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAC/B,aAAa,CACd,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,GAAG,gBAAgB,CAAC;QAClE,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAC3C,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AACzB,SAAA;QAED,IAAI,gBAAgB,CAAC,UAAU,EAAE;AAC/B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC;AACpD,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AAC1C,QAAA,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAC,iBAAiB;AAC/D,cAAE,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;cAC1D,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,SAAS,GAAGA,QAAM,CACrB,gBAAgB,EAAE,cAAc,EAChC,UAAU,CACX,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KACrB;;AAKD,IAAA,eAAe,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;AACzB,QAAA,OAAO,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,CAAC;KAC5C;AAED,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AAC3C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AAC1B,SAAA;KACF;;AAGD,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,KAAK,CAAC;KAC5C;;AAED;;;AAGG;IACH,oBAAoB,CAAC,iBAAsB,EAAE,IAAa,EAAA;AACxD,QAAA,IAAI,CAAC,qBAAqB;AACvB,aAAA,wBAAwB,CAAC,iBAAiB,CAAC,aAAa,CAAC;AACzD,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;YACtB,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;AACvD,SAAC,CAAC,CAAC;KACN;AAED,IAAA,iBAAiB,CAAC,GAAQ,EAAE,iBAAsB,EAAE,IAAa,EAAA;AAC/D,QAAA,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,IAAI,KAAK,YAAY,EAAE;gBACzB,MAAM,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAC1C,CAAC,GAAQ,KAAK,GAAG,CAAC,GAAG,IAAI,iBAAiB,CAAC,WAAW,CACvD,CAAC;AACF,gBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;AACnC,gBAAA,MAAM,cAAc,GAAG;oBACrB,WAAW,EAAE,iBAAiB,CAAC,WAAW;oBAC1C,aAAa,EAAE,iBAAiB,CAAC,aAAa;AAC9C,oBAAA,iBAAiB,EAAE;wBACjB,EAAE,EAAE,iBAAiB,CAAC,aAAa;AACnC,wBAAA,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe;AACvC,wBAAA,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc;AACjC,qBAAA;AACD,oBAAA,gBAAgB,EAAE,eAAe;iBAClC,CAAC;AACF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAC7C,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAC/B,CAAC;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC;AACxC,gBAAA,IAAI,CAAC,cAAc,CAAC,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9D,aAAA;AACF,SAAA;KACF;AAED,IAAA,mBAAmB,CAAC,IAAY,EAAA;AAC9B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,EAAE,CAAC;KAC1C;AAED;;;AAGG;AACH,IAAA,cAAc,CAAC,KAAU,EAAA;QACvB,IAAI,CAAC,kBAAkB,CAAC,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC;QAChE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3C;AAED,IAAA,2BAA2B,CAAC,KAAU,EAAA;QACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CACpD,CAAC,OAAY,KAAK,OAAO,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,CAC5C,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAE3B;AAED;;;;AAIG;AACH,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,8BAA8B,CAAC,KAAU,EAAA;AACvC,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC;AAC9D,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,cAAc,GAAG,EAAE,CAAC;AACtD,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,SAAA;KACF;AAED;;;AAGG;AACH,IAAA,wBAAwB,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,kBAAkB;YAClD,KAAK,KAAK,YAAY,GAAG,IAAI,GAAG,KAAK,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC5C,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,KAAW,EAAA;QAC5B,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;AACzC,SAAA;QACD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,KAAK,GAAG;AACN,gBAAA,MAAM,EAAE,EAAE;gBACV,IAAI,EAAE,IAAI,CAAC,cAAc;AACzB,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,IAAI,EAAE,CAAC;aACR,CAAC;AACH,SAAA;QACD,IAAI,KAAK,EAAE,YAAY,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE,YAAY,EAAE;AACvE,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,EAAE,YAAY,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC;AACvB,gBAAA,MAAM,EAAE,EAAE;gBACV,YAAY,EAAE,IAAI,CAAC,eAAe;AACnC,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC/D,QAAA,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;AACvC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU;aACxC,UAAU,CAAC,KAAK,CAAC;AACjB,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM,EAAE;AAC1B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChJ,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAChC,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAC,KAAW,EAAA;QAC7B,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,GAAG,EAAE,CAAC;AACZ,SAAA;AAED,QAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;YAC7D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAa,KAAI;AACpD,gBAAA,MAAM,YAAY,GAAQ;AACxB,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,OAAO,EAAE,WAAW;AACpB,oBAAA,MAAM,EAAE,SAAS;AACjB,oBAAA,SAAS,EAAE,WAAW;iBACvB,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;AACzD,gBAAA,IAAI,QAAQ,EAAE;AACZ,oBAAA,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;AACrB,oBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;AAClB,oBAAA,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;AACtB,oBAAA,GAAG,CAAC,GAAG,GAAG,QAAQ,EAAE,WAAW,EAAE,CAAC;AACnC,iBAAA;AACD,gBAAA,MAAM,GAAG,GAAG,CAAA,EAAG,GAAG,CAAC,GAAG,aAAa,CAAC;AACpC,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC5B,oBAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACzD,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAED,MAAM,MAAM,GAAa,KAAK,CAAC,OAAO,CAAC,CAAC,EAAO,KAAI;YACjD,IAAI,CAAC,EAAE,EAAE;AACP,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;AAED,YAAA,MAAM,SAAS,GAAG,CAAC,EAAE,CAAC,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC;kBACtE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;kBAC9B,EAAE,CAAC;AACP,YAAA,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC;kBACnE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;kBAC7B,EAAE,CAAC;AACP,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YAE5D,OAAO;AACL,gBAAA,GAAG,SAAS;AACZ,gBAAA,GAAG,QAAQ;gBACX,IAAI;aACL,CAAC;AACJ,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB;AAC1C,aAAA,MAAM,CAAC,CAAC,EAAO,KAAI;AAClB,YAAA,MAAM,WAAW,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC;YACzD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9C,SAAC,CAAC;AACD,aAAA,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC;aACrD,IAAI,CAAC,GAAG,CAAC,CAAC;AAEb,QAAA,OAAO,MAAM,CAAC;KACf;IAED,uBAAuB,GAAA;QACrB,MAAM,QAAQ,GAAG,cAAc,CAAC;QAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC,EAAE;YAC3D,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AACjE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAED,qBAAqB,GAAA;QACnB,IAAI,CAAC,gBAAgB,GAAG;AACtB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;KACH;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC;QAChC,IAAI,CAAC,kBAAkB,CAAC,kBAAkB;YACxC,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,CAChD,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,KAAK,EAAE,GAAG,CACtC,CAAC;AACJ,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa;AAChC,eAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC;cAClD,CAAC,CAAC;KACP;IAED,kBAAkB,CAAC,KAAU,EAAE,IAAY,EAAA;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,CAC/D,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,KAAK,EAAE,GAAG,CACtC,CAAC;KACH;AAYD,IAAA,qBAAqB,CAAC,KAAiB,EAAA;AACrC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAI,EAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KACtE;IAED,cAAc,GAAA;AAEZ,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC7C,IAAI,CAAC,kBAAkB,EAAE,CAAA;KAE1B;IAED,kBAAkB,GAAA;;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE;AACxC,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,EAAE,CAAC;AACzC,SAAA;;QAGD,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,IAAI,CAAC,kBAAkB,CAAC,UAAU;AAC/B,aAAA,GAAG,CAAC,CAAC,OAAY,KAAK,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;AAClD,aAAA,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;;QAGF,MAAM,OAAO,GAAU,EAAE,CAAC;AAC1B,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;AAEjE,QAAA,aAAa,CAAC,OAAO,CAAC,CAAC,YAAiB,KAAI;AAC1C,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;gBAAE,OAAO;AAEzC,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACpC,gBAAA,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC;AACjD,gBAAA,YAAY,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AACnC,oBAAA,MAAM,QAAQ,GAAG,GAAG,EAAE,WAAW,IAAI,CAAC;oBACtC,IAAI,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;wBAC9C,OAAO,CAAC,IAAI,CAAC;AACX,4BAAA,IAAI,EAAE,GAAG;AACT,4BAAA,KAAK,EAAE,EAAE;4BACT,SAAS,EAAE,OAAO,CAAC,EAAE;AACtB,yBAAA,CAAC,CAAC;AACH,wBAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/B,qBAAA;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG;AACnC,YAAA,GAAG,OAAO;AACV,YAAA,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU;SACtC,CAAC;KACH;AAGD,IAAA,IAAI,eAAe,GAAA;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC;QAE5D,OAAO;YACL,YAAY,EAAE,WAAW,EAAE,KAAK;YAChC,SAAS,EAAE,WAAW,CAAC,EAAE;YACzB,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,GAAG;SAC3C,CAAA;KACF;AAED,IAAA,aAAa,CAAC,OAAY,EAAA;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,CAChD,CAAC,IAAS,KAAK,IAAI,EAAE,EAAE,KAAK,OAAO,EAAE,EAAE,CACxC,CAAC;AACF,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC7C,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,6BAA6B,GAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,UAAU,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,CAAC;AACtE,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AAC7C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,GAAG,GAAG,GAAG,EAAE,UAAU,CAAC;AAC5E,QAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,EAAE,CAAC;QAEhC,IAAI,CAAC,kBAAkB,GAAG;AACxB,YAAA,SAAS,EAAE;AACT,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,IAAI,EACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;sBACjD,MAAM,GAAG,CAAC;AACZ,sBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;sBACrD,CAAC,eAAe,CAAC;AACxB,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,IAAI,EAAE,KAAK;gBACX,iBAAiB,EAAE,GAAG,EAAE,GAAG;AAC5B,aAAA;AACD,YAAA,SAAS,EAAE;gBACT,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;AACjD,gBAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;AACrE,aAAA;AACD,YAAA,cAAc,EAAE;gBACd,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;AACjD,gBAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAChB,IAAI,CAAC,iBAAiB,EACtB,GAAG,EAAE,QAAQ,EAAE,WAAW,EAC1B,KAAK,CACN;AACF,aAAA;YACD,gBAAgB,EAAE,GAAG,EAAE,gBAAgB;YACvC,SAAS,EAAE,GAAG,EAAE,SAAS;YACzB,WAAW,EAAE,GAAG,EAAE,KAAK;YACvB,SAAS,EAAE,GAAG,EAAE,SAAS;YACzB,EAAE,EAAE,CAAC,MAAK;AACR,gBAAA,MAAM,IAAI,GAAG,GAAG,CAAC,oBAAoB,EAAE,EAAE,CAAC;;gBAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAC3B,IAAI,CAAC,yBAAyB,EAC9B,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAClB,SAAS,CACV,CAAC;AACF,gBAAA,OAAO,QAAQ,CAAC;AAClB,aAAC,GAAG;AACJ,YAAA,wBAAwB,EACtB,GAAG,CAAC,oBAAoB,EAAE,IAAI,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC;AAClD,YAAA,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM;kBAClC,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAC9B,CAAC,GAAQ,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,CAClD;kBACC,GAAG,EAAE,kBAAkB;YAC3B,oBAAoB,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;AACxD,YAAA,WAAW,EAAE,GAAG,EAAE,WAAW,IAAI,EAAE;AAEnC,YAAA,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW;AACvC,kBAAE,CAAC,GAAG,EAAE,cAAc,CAAC;AACvB,kBAAE,EAAE;YACN,qBAAqB,EAAE,GAAG,EAAE,sBAAsB;YAClD,UAAU,EAAE,GAAG,EAAE,IAAI;YACrB,WAAW,EAAE,GAAG,EAAE,kBAAkB;kBAChC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;AACrC,kBAAE,EAAE;AACN,YAAA,SAAS,EAAE;AACT,gBAAA,kBAAkB,EAChB,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAI,YAAY,GAAG,IAAI,GAAG,KAAK;AACpD,gBAAA,eAAe,EAAE;oBACf,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,IAAI,CAAC;oBAC7D,sBAAsB,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AAChE,iBAAA;AACD,gBAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;AACrE,aAAA;AAED,YAAA,cAAc,EAAE;AACd,gBAAA,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAI,YAAY,GAAG,IAAI,GAAG,KAAK;AACtE,gBAAA,eAAe,EAAE;oBACf,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,IAAI,CAAC;oBAC7D,sBAAsB,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AAChE,iBAAA;AACD,gBAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAChB,IAAI,CAAC,iBAAiB,EACtB,GAAG,EAAE,QAAQ,EAAE,WAAW,EAC1B,KAAK,CACN;AACF,aAAA;AAED,YAAA,SAAS,EAAE;gBACT,IAAI,EAAE,GAAG,EAAE,QAAQ;AACjB,sBAAE,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,aAAa,EAClB,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAC9B,KAAK,CACN;AACD,sBAAE,EAAE;AACN,gBAAA,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;AACrC,sBAAE,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,aAAa,EAClB,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAC3B,KAAK,CACN;AACD,sBAAE,EAAE;AACP,aAAA;AACD,YAAA,iBAAiB,EAAE;gBACjB,cAAc,EACZ,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AACrC,sBAAE,IAAI;AACN,sBAAE,KAAK;gBACX,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,KAAK,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE;gBACrF,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,KAAK,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE;AACtF,gBAAA,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,KAAK;AACzD,aAAA;AACD,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,iBAAiB,EAAE,EAAE;YACrB,SAAS,EAAE,GAAG,EAAE,SAAS;YACzB,kBAAkB,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,IAAI,EAAE;YAC/D,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE;SAEnD,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAQ,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1H,MAAM,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,IAAI,EAAE,CAAC;AAChE,QAAA,IAAI,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;AAC5C,SAAA;AACD,QAAA,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;KACjC;;AAGD,IAAA,oBAAoB,CAAC,GAAQ,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM;AAAE,YAAA,OAAO,EAAE,CAAC;QAEvE,OAAO,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,GAAQ,KAAI;YACxC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;YACjF,OAAO;gBACL,IAAI,EAAE,WAAW,EAAE,IAAI;gBACvB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,KAAK,EAAE,GAAG,CAAC,KAAK;aACjB,CAAA;AACH,SAAC,CAAC,CAAC;KACJ;;AAID,IAAA,qBAAqB,CAAC,GAAQ,EAAA;QAC5B,MAAM,YAAY,GAAU,EAAE,CAAA;QAC9B,MAAM,WAAW,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;AACtD,QAAA,IAAI,WAAW,EAAE,MAAM,KAAK,CAAC;YAAE,OAAO;AACtC,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;YAChC,YAAY,CAAC,IAAI,CAAC;AAChB,gBAAA,aAAa,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE;AACnC,gBAAA,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AACtB,gBAAA,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AAC1B,gBAAA,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AAC3B,gBAAA,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AACvB,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;QACF,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,WAAW,GAAG,YAAY,CAAC;KACtE;;AAGD,IAAA,sBAAsB,CAAC,GAAQ,EAAA;QAC7B,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;AACpD,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnD,SAAA;KACF;AAED,IAAA,wBAAwB,CAAC,SAAc,EAAA;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAC9E,QAAA,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC;AAC/B,QAAA,SAAS,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC;AACvD,QAAA,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,CAAC;AACxD,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,0BAA0B,EAAE;AAC1D,YAAA,IAAI,CAAC,qBAAqB,CAAC,0BAA0B,GAAG;AACtD,gBAAA,GAAG,IAAI,CAAC,qBAAqB,EAAE,0BAA0B;gBACzD,GAAG,SAAS,CAAC,UAAU;aACxB,CAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;KACzC;AAED,IAAA,iBAAiB,CAAC,QAGjB,EAAA;;AAEC,QAAA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAe,CAAC;AAC3C,QAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACnC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACtC,SAAA;;QAGD,MAAM,MAAM,GAA0B,EAAE,CAAC;AACzC,QAAA,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;YACtC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACzC,GAAG,CAAC,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC9B,iBAAA,MAAM,CAAC,OAAO,CAAC,CAAC;AACpB,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,wBAAwB,CAAC,WAAgB,EAAA;AACvC,QAAA,IAAI,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;AAChH,gBAAA,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,IAAI,CAAA;gBACjD,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACjC,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;+GAv1JU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAnJ,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAoE,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAqX,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAjW,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAkW,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA1b,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA2b,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,itCC7CxC,sqgHAqgEiF,EAAA,MAAA,EAAA,CAAA,mmOAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlM,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmM,kCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApQ,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqQ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1M,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2M,IAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,+BAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,QAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,EAAA,4BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA3B,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA4B,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDx9DpE,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,sqgHAAA,EAAA,MAAA,EAAA,CAAA,mmOAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;+ZAO1B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAwCmB,UAAU,EAAA,CAAA;sBAAlC,KAAK;uBAAC,YAAY,CAAA;gBAKV,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAII,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,2BAA2B,EAAA,CAAA;sBAApC,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,sBAAsB,EAAA,CAAA;sBAA/B,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACE,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAKwB,kBAAkB,EAAA,CAAA;sBAA/C,KAAK;uBAAC,iBAAiB,CAAA;gBAWd,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBACG,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBA2RY,SAAS,EAAA,CAAA;sBAA3B,SAAS;uBAAC,MAAM,CAAA;gBAGR,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAorI6C,kBAAkB,EAAA,CAAA;sBAApE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AErlJ5C,MAAM,SAAS,GAAE;AACtB,IAAA,mBAAmB,EAAE,CAAC;AACtB,IAAA,mBAAmB,EAAE,CAAC;AACtB,IAAA,kBAAkB,EAAC,qBAAqB;AACxC,IAAA,WAAW,EAAG,iBAAiB;AAC/B,IAAA,qBAAqB,EAAG,0GAA0G;AAClI,IAAA,SAAS,EAAE,UAAU;CACtB;;MCaY,cAAc,CAAA;AAEzB,IAAA,WAAA,CACU,UAAsB,EACtB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAGhC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;AAED;;;AAGG;IACH,SAAS,CACP,OAAyB,EACzB,IAAiB,EAAA;AAEjB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC7B;AAED;;AAEG;AAEH;;;;;AAKG;AACH,IAAA,WAAW,CAAC,KAAwB,EAAA;QAClC,IAAI,YAAY,GAAG,gBAAgB,CAAC;AACpC,QAAA,IAAI,KAAK,CAAC,KAAK,YAAY,UAAU,EAAE;;YAErC,YAAY,GAAG,UAAU,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AAChD,SAAA;AAAM,aAAA;;AAEL,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;;gBAExB,YAAY,CAAC,KAAK,EAAE,CAAC;gBACrB,QAAQ,CAAC,MAAM,EAAE,CAAC;AACnB,aAAA;YACD,YAAY,GAAG,CAAe,YAAA,EAAA,KAAK,CAAC,MAAM,cAAc,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;AACzE,SAAA;AACD,QAAA,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;KACjC;;IAGD,gBAAgB,GAAA;QACd,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACrE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC;AAElE,QAAA,IAAI,oBAAoB,GAAG;YACzB,cAAc,EAAE,aAAa,EAAE,UAAU,GAAG,GAAG,GAAG,aAAa,EAAE,QAAQ;YACzE,UAAU,EAAE,aAAa,EAAE,UAAU;YACrC,QAAQ,EAAE,aAAa,EAAE,QAAQ;YACjC,kBAAkB,EAAE,aAAa,EAAE,kBAAkB;SACtD,CAAC;AACF,QAAA,OAAO,oBAAoB,CAAC;KAC7B;IAED,WAAW,CAAC,GAAQ,EAAE,aAAsB,EAAA;QAC1C,IAAI,WAAW,GAAQ,EAAE,CAAC;AAC1B,QAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAChC,QAAA,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAClC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,IAAI,GAAG,EAAE,MAAM,EAAE;AACf,YAAA,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACjC,SAAA;QACD,IAAI,GAAG,EAAE,aAAa,EAAE;YACtB,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAC9C,gBAAgB,EAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAClC,CAAC;AACH,SAAA;QACD,IAAI,GAAG,EAAE,aAAa,EAAE;YACtB,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAC9C,kBAAkB,EAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAClC,CAAC;AACH,SAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAClC,QAAA,QAAQ,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE;AAC9B,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,UAAU;AACnB,qBAAA,GAAG,CAAC,GAAG,GAAG,aAAa,EAAE,WAAW,CAAC;AACrC,qBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE/d,YAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC1E,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,UAAU;qBACnB,GAAG,CAAC,GAAG,GAAG,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC;AAClC,qBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAEA,YAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,UAAU;qBACnB,KAAK,CAAC,GAAG,GAAG,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC;AACpC,qBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAEA,YAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,UAAU;AACnB,qBAAA,MAAM,CAAC,GAAG,GAAG,aAAa,EAAE,WAAW,CAAC;AACxC,qBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAEA,YAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,YAAA;AACE,gBAAA,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;AAC5B,SAAA;KACF;;AAGD,IAAA,eAAe,CAAC,GAAQ,EAAA;QACtB,IAAI,WAAW,GAAQ,EAAE,CAAC;AAC1B,QAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAChC,QAAA,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAClC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,IAAI,GAAG,EAAE,MAAM,EAAE;AACf,YAAA,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACjC,SAAA;QACD,IAAI,GAAG,EAAE,aAAa,EAAE;YACtB,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAC9C,gBAAgB,EAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAClC,CAAC;AACH,SAAA;QACD,IAAI,GAAG,EAAE,aAAa,EAAE;YACtB,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAC9C,kBAAkB,EAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAClC,CAAC;AACH,SAAA;QACD,MAAM,GAAG,GAAG,2BAA2B,CAAC;AACxC,QAAA,QAAQ,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE;AAC9B,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,UAAU;qBACnB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;AAClC,qBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAEA,YAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACvE,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,UAAU;qBACnB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AAC/B,qBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAEA,YAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,UAAU;qBACnB,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACjC,qBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAEA,YAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,UAAU;qBACnB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;AACrC,qBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAEA,YAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAClD,YAAA;AACE,gBAAA,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;AAC5B,SAAA;KACF;+GA9JU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAMI,QAAQ;;;ACvBN,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC;AAC/C,MAAM,qBAAqB,GAAG,0CAA0C;;ACHxE,MAAM,IAAI,GAAG;AAClB,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,kBAAkB,EAAE,CAA8B,4BAAA,CAAA;AAClD,IAAA,aAAa,EAAE,0BAA0B;CAC1C;;MCOY,eAAe,CAAA;AAI1B,IAAA,WAAA,CACU,IAAgB,EAChB,WAA8B,EAC1B,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmB;QAJhC,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAOhC,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KACjD;AAEM,IAAA,SAAS,CAAC,KAAY,EAAE,GAAW,EAAE,KAAK,GAAG,CAAC,EAAA;QACnD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACzB,YAAA,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClE,YAAA,OAAO,KAAK,KAAK,CAAC,GAAG,UAAU,GAAG,CAAC,UAAU,CAAC;AAChD,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KAC1D;AAED,IAAA,cAAc,CAAC,OAAY,EAAA;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE;YACxE,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;IAED,sBAAsB,GAAA;AACpB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE;YACjD,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,GAAQ,KAAI;AACf,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,QAAa,KAAI;gBAC/B,OAAO;oBACL,OAAO,EAAE,QAAQ,CAAC,UAAU;oBAC5B,SAAS,EAAE,QAAQ,CAAC,IAAI;AACxB,oBAAA,eAAe,EAAE,EAAE;AACnB,oBAAA,YAAY,EAAE,EAAE;oBAChB,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC;AACJ,aAAC,CAAC,CAAC;SACJ,CAAC,CACH,CAAC;KACL;AAEM,IAAA,kBAAkB,CAAC,EAAU,EAAE,IAAA,GAAe,EAAE,EAAA;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,UAAU;AACjB,YAAA,IAAI,CAAC,aAAa;YAClB,EAAE;AACF,aAAC,IAAI,GAAG,CAAS,MAAA,EAAA,IAAI,CAAE,CAAA,GAAG,EAAE,CAAC,CAChC,CAAC;KACH;+GA3DU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAQI,QAAQ;;;MCbA,kBAAkB,CAAA;AAE7B,IAAA,WAAA,GAAA;QACO,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;KADb;+GAFN,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCKY,sBAAsB,CAAA;IAgCjC,IAA6B,OAAO,CAAC,OAAmB,EAAA;AACtD,QAAA,IAAI,OAAO,EAAE;;AAEX,YAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;AAC3B,SAAA;KACF;AAED,IAAA,WAAA,CAAmB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAlChD,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QAGzB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,WAAW,GAAwB,IAAI,YAAY,EAAE,CAAC;AACtD,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,UAAU,GAAyB,IAAI,YAAY,EAAE,CAAC;AACtD,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAwB,IAAI,YAAY,EAAE,CAAC;QASxE,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QAExB,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;QAE7B,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;QAG9B,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;AAWzB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;;KAEtC;AAED;;;AAGG;AACH,IAAA,WAAW,CAAC,KAAa,EAAA;QACvB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,aAAa,GAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AAC9C,QAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,KAAK,CAAC;KAChD;AAID,IAAA,UAAU,CAAC,IAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAG,IAAI,KAAK,UAAU,EAAC;AACrB,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AACvB,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;AAC3B,SAAA;AACD,QAAA,IAAG,IAAI,CAAC,aAAa,EAAE,MAAM,KAAK,CAAC,EAAC;AAClC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,SAAA;KACF;AAGD,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,iBAAiB,EAAE;YAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,WAAW,CAAC;AAChE,SAAA;KACF;IACD,eAAe,GAAA;QACb,IAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;YACjD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAE,CAAC,GAAQ,KAAI;;AAEtC,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAG,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;AAC1D,aAAC,CAAC,CAAA;AACH,SAAA;AACD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,aAAa,GAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KAEhD;IAED,IAAI,WAAW,CAAC,GAAU,EAAA;AACxB,QAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;AACrC,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;KACF;AAED,IAAA,MAAM,CAAC,KAAU,EAAA;AACf,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,MAAK;AAC3B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,UAAU,CAAC,KAAY,EAAA;QACrB,IAAG,KAAK,EAAE,MAAM,EAAC;AACjB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACxB,SAAA;KACF;AAED;;;AAGG;AACH,IAAA,QAAQ,CAAC,GAAgC,EAAA;QACvC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED;;;AAGG;AACH,IAAA,uBAAuB,CAAC,KAAU,EAAA;QAChC,IAAI,KAAK,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,IAAI,CAAC;QAC9C,UAAU,CAAC,MAAK;YACd,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC;YAChE,IAAI,QAAQ,CAAC,GAAG,GAAG,YAAY,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE;gBACzD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,GAAG,YAAY,CAAC;AAC3C,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC9C,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;SACvC,EAAE,EAAE,CAAC,CAAC;QACP,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B,EAAE,GAAG,CAAC,CAAC;KACT;AAED;;;AAGG;AACH,IAAA,aAAa,CAAC,WAAoB,EAAA;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAChB,QAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;AACjC,QAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,KAAK,CAAC;AAC/C,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,gBAAgB,GAAI,CAAC,GAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,YAAA,IAAI,CAAC,aAAa,GAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AAClD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAE,CAAC,GAAQ,KAAI;;AAE3C,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAG,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;AAC1D,aAAC,CAAC,CAAA;YACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;KACpE;IAED,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AAC9D,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;AACvE,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;YACL,QACE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACrE,IAAI,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,MAAM,EACjD;AACH,SAAA;KAEF;+GAvMU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAue,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,0lBCTnC,wwFAqFA,EAAA,MAAA,EAAA,CAAA,u6VAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnd,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiD,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAnH,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD5Ea,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,wwFAAA,EAAA,MAAA,EAAA,CAAA,u6VAAA,CAAA,EAAA,CAAA;sGAKlB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBAmBsB,OAAO,EAAA,CAAA;sBAAnC,SAAS;uBAAC,YAAY,CAAA;;;MElCZ,4BAA4B,CAAA;AAIvC,IAAA,WAAA,CAAmB,MAA8B,EAAA;QAA9B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAwB;KAAI;AAErD,IAAA,MAAM,CAAC,KAAU,EAAA;AACf,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AACnB,gBAAA,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAC,GAAG,CAAC;gBAC7D,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,SAAA;KACF;+GAfU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAod,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA5B,4BAA4B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAET,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECT1C,gUASA,EAAA,MAAA,EAAA,CAAA,m4CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDFa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,gUAAA,EAAA,MAAA,EAAA,CAAA,m4CAAA,CAAA,EAAA,CAAA;0GAKzB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEN,MAAM,EAAA,CAAA;sBADL,SAAS;uBAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;MEF9C,0BAA0B,CAAA;AALvC,IAAA,WAAA,GAAA;QAOE,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAGvB,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;QACzB,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;AAExB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAU,CAAC;AACpC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;AAC3C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;AAU/C,KAAA;IARC,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;KAC5E;AAED,IAAA,QAAQ,CAAC,QAAa,EAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtC;+GApBU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,gTCPvC,k5LAkKA,EAAA,MAAA,EAAA,CAAA,0sIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtd,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9B,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAhB,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD3Ja,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,k5LAAA,EAAA,MAAA,EAAA,CAAA,0sIAAA,CAAA,EAAA,CAAA;8BAQ1B,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;AEhBT;;;;;;;;;;;;AAYG;AAEH;;;;;;;AAOG;AAEH;;;;;;;AAOG;MAIU,gBAAgB,CAAA;AAC3B,IAAA,SAAS,CAAC,KAAY,EAAE,IAAc,EAAE,KAAa,EAAA;QACnD,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AAC5B,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC3B,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;gBACvB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;oBAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAY,KACjC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CACpC,CAAC;AACH,iBAAA;AACD,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7D,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAEO,cAAc,CAAC,GAAQ,EAAE,KAAa,EAAA;QAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KACjC,GAAG,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC9C,CAAC;KACH;+GAtBU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA,CAAA;;;MCrBY,2BAA2B,CAAA;AA0BtC,IAAA,WAAA,CACU,eAAgC,EAChC,aAA4B,EACxB,MAAuB,EAAA;QAF3B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QA3BtC,IAAO,CAAA,OAAA,GAAW,EAAE,CAAA;QAEpB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAe,CAAA,eAAA,GAAiB,IAAI,CAAC;QACrC,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;QACzB,IAAU,CAAA,UAAA,GAAG,SAAS,CAAC;QACvB,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;QACzB,IAAmB,CAAA,mBAAA,GAAU,EAAE,CAAC;QAChC,IAAuB,CAAA,uBAAA,GAAU,EAAE,CAAC;QACpC,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC,CAAC;QAChB,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;QAC5B,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;QAC5B,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;QAC1C,IAAqB,CAAA,qBAAA,GAAG,qBAAqB,CAAC;QAC9C,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAGT,IAAkB,CAAA,kBAAA,GAAa,EAAE,CAAC;AAEjC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;AAOnD,QAAA,IAAG,MAAM,EAAC;AACR,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAA;AAC7B,SAAA;KACF;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,SAAS,CAAC,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAC9C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;gBACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC;AAClD,aAAA;AACF,SAAA;KACF;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACrC,CAAC,QAAa,KAAK,QAAQ,CAAC,OAAO,CACpC;SACF,CAAC;AACF,QAAA,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;YAClE,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,SAAS,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;KACJ;IAED,iBAAiB,GAAA;QACf,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AAC5D,YAAA,IAAI,CAAC,uBAAuB,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAC7D,CAAC,GAAQ,KAAI;AACX,gBAAA,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1D,gBAAA,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnC,OAAO;AACL,oBAAA,GAAG,GAAG;AACN,oBAAA,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC;AAC9B,oBAAA,YAAY,EAAE,GAAG,EAAE,YAAY,CAAC,OAAO,EAAE;iBAC1C,CAAC;AACJ,aAAC,CACF,CAAC;YACF,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,QAAa,KAAI;oBAChE,OAAO;AACL,wBAAA,GAAG,QAAQ;wBACX,eAAe,EAAE,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAClD,CAAC,QAAa,KACZ,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CACnD;qBACF,CAAC;AACJ,iBAAC,CAAC,CAAC;AACJ,aAAA;AACD,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7D,YAAA,IAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAC;AACnC,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAC7C,CAAC,QAAa,KAAK,QAAQ,CAAC,OAAO,CACpC,CAAC;gBACF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAChE,CAAC,QAAa,KAAK,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC3D,CAAC;AACH,aAAA;AACC,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC;AACnD,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,SAAS;SAChB,CAAC;AACF,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC;AAC5C,YAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE;AAC9C,SAAA,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;YACxB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAC1C,YAAA,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAE3D,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC1C,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAa,KAAI;YAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,QAAa,KAC7D,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CACjD,CAAC;YACF,OAAO;AACL,gBAAA,GAAG,QAAQ;AACX,gBAAA,eAAe,EAAE,QAAQ;aAC1B,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,CAAC,GAAW,EAAA;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAChD,IAAI,CAAC,YAAY,EACjB,GAAG,EACH,IAAI,CAAC,UAAU,CAChB,CAAC;KACH;IAED,gBAAgB,CAAC,QAAa,EAAE,KAAU,EAAA;AACxC,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/C,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAClD,CAAC,EAAO,KAAK,EAAE,KAAK,QAAQ,EAAE,OAAO,CACtC,CAAC;AACH,SAAA;AACD,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC7D;AAED,IAAA,qBAAqB,CAAC,KAAY,EAAA;AAChC,QAAA,IAAI,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC5B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7C,SAAA;KACF;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC3B,OAAO;AACR,SAAA;AACD,QAAA,IAAI,gBAAgB,GAClB,IAAI,CAAC,UAAU,KAAK,SAAS;cACzB,IAAI,CAAC,gBAAgB;AACvB,cAAE,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;QACjC,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAClD,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC;YACrC,OAAO;AACR,SAAA;QACD,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,QAAa,KAAI;YAC5D,OAAO,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,EAAO,KACxC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CACnC,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,gBAAgB,CAAC,QAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,CAAC,CAAC;KACpC;IAED,IAAI,GAAA;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACnD;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAChC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;AAED,IAAA,SAAS,CAAC,OAAY,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAA,EAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAA,CAAA,EAAI,OAAO,EAAE,UAAU,EAAE,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KACtC;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC7B;+GAhOU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAud,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAxX,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAjH,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,6LCdxC,q9JA2IA,EAAA,MAAA,EAAA,CAAA,woJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8E,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1B,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsc,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1S,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2S,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,kBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD7Ha,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,q9JAAA,EAAA,MAAA,EAAA,CAAA,woJAAA,CAAA,EAAA,CAAA;;0BAiCjC,QAAQ;4CAPF,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;ME/BI,mCAAmC,CAAA;IAK9C,IAAa,iBAAiB,CAAC,KAAU,EAAA;AACvC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;YACnC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,KAAa,KAAI;AAC/D,gBAAA,MAAM,WAAW,GAAG,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/D,gBAAA,IAAI,WAAW,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACzD,oBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;AAC5C,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAGD,IAAA,WAAA,GAAA;QAjBA,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;AACpB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;AACjB,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;AAYzC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;QAClD,IAAmB,CAAA,mBAAA,GAAG,CAAC,CAAC;QAKxB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QACvB,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;KALX;AAEhB,IAAA,QAAQ,MAAW;AAKnB;;;AAGG;AACH,IAAA,oBAAoB,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;KAClC;IAED,aAAa,CAAC,KAAU,EAAE,OAAiB,EAAA;QACzC,IAAI,OAAO,KAAK,KAAK,EAAE;AACrB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAChD,CAAC;AACF,YAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,SAAA;QACD,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,YAAA,MAAM,QAAQ,GAAG;AACf,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;aAClB,CAAC;AACF,YAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,SAAA;AACD,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;;KAEvD;IAED,SAAS,CAAC,aAAqB,EAAE,WAAmB,EAAA;AAClD,QAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,CACpD,WAAW,GAAG,CAAC,EACf,CAAC,EACD,EAAE,CACH,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;KACpD;IACD,YAAY,CAAC,aAAqB,EAAE,WAAmB,EAAA;AACrD,QAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;KACpD;IAED,aAAa,CAAC,aAAqB,EAAE,WAAmB,EAAA;QACtD,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,EAAE,GAAQ,QAAQ,CAAC,cAAc,CACrC,QAAQ,GAAG,GAAG,GAAG,aAAa,GAAG,EAAE,GAAG,WAAW,CAClD,CAAC;AACF,YAAA,IAAI,EAAE,EAAE;gBACN,EAAE,CAAC,KAAK,EAAE,CAAC;AACZ,aAAA;SACF,EAAE,EAAE,CAAC,CAAC;KACR;IAED,iBAAiB,CAAC,aAAqB,EAAE,WAAmB,EAAA;QAC1D,IACE,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;AAC3D,YAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;iBAChE,MAAM,KAAK,CAAC,EACf;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAC/C,SAAA;KACF;AACD,IAAA,cAAc,CAAC,aAAqB,EAAA;QAClC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAClD,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;AACzC,YAAA,MAAM,QAAQ,GAAG;AACf,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;aAClB,CAAC;AACF,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACxB,SAAA;;QAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;KACvD;AACD,IAAA,iBAAiB,CAAC,GAAQ,EAAE,KAAa,EAAE,WAAmB,EAAA;AAC5D,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO;gBACrC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;AAC3C,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;KACF;AAED,IAAA,UAAU,CAAC,aAAqB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;YACpC,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;KACF;AAED,IAAA,MAAM,cAAc,GAAA;AAClB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAC9C,QAAA,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACxD,SAAA;KACF;IAED,eAAe,GAAA;QACb,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,KAAa,KAAI;AAC/D,YAAA,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AACxE,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,KAAa,KAAI;YACrE,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG;AACzB,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,OAAO,EAAE,wBAAwB;iBAClC,CAAC;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC/B,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE;AACjD,wBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG;AACzB,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,OAAO,EAAE,8CAA8C;yBACxD,CAAC;AACH,qBAAA;AAAM,yBAAA;wBACL,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;AAClD,4BAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG;AACzB,gCAAA,IAAI,EAAE,QAAQ;AACd,gCAAA,OAAO,EAAE,qCAAqC;6BAC/C,CAAC;AACH,yBAAA;AAAM,6BAAA;AACL,4BAAA,IAAI,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE;AAClC,gCAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG;AACzB,oCAAA,IAAI,EAAE,QAAQ;AACd,oCAAA,OAAO,EACL,qDAAqD;iCACxD,CAAC;AACH,6BAAA;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;KACpD;AACD,IAAA,aAAa,CAAC,OAAY,EAAA;QACxB,IACE,OAAO,CAAC,MAAM;AACd,YAAA,OAAO,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAC1D;AACA,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;AACD,IAAA,cAAc,CAAC,GAAQ,EAAA;QACrB,IAAI,MAAM,GAAG,KAAK,CAAC;;AAEnB,QAAA,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;;AAEvB,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,EAAE;YACzB,MAAM,GAAG,IAAI,CAAC;AACf,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAED,SAAS,CAAC,KAAU,EAAE,IAAS,EAAA;AAC7B,QAAA,OAAO,KAAK,CAAC;KACd;+GA3LU,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mCAAmC,uRCPhD,0mNAgGA,EAAA,MAAA,EAAA,CAAA,24sBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5d,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwN,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/M,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+H,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3I,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDzFa,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAL/C,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,0mNAAA,EAAA,MAAA,EAAA,CAAA,24sBAAA,CAAA,EAAA,CAAA;0EAMlC,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACE,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACM,iBAAiB,EAAA,CAAA;sBAA7B,KAAK;gBAWI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;;;MENI,mCAAmC,CAAA;AAE9C,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QADpD,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AAEP,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QAGrC,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAClB,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;KANsB;IAQxD,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,GAAGyN,WAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACrD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,IAAI,CAAC,cAAc,GAAG;AACpB,gBAAA;AACE,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAClB,iBAAA;aACF,CAAC;AACH,SAAA;QACD,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACxB,SAAA;KACF;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,mCAAmC,CAAC,cAAc,EAAE,CAAC;KAC3D;AACD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;YAC3C,IAAI,OAAO,EAAE,GAAG,EAAE;gBAChB,OAAO,OAAO,CAAC,GAAG,CAAC;AACpB,aAAA;AACH,SAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AACnD,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB,CAAA,wDAAA,EAA2D,IAAI,CAAC,cAAc,CAAC,MAAM,CAAA,CAAA,CAAG,CACzF,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB,CAAA,qDAAA,CAAuD,CACxD,CAAC;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,iBAAiB,EAAE,IAAI,CAAC,cAAc;AACvC,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;KACF;+GAvDU,mCAAmC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxN,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mCAAmC,4WCjBhD,4vCAkCA,EAAA,MAAA,EAAA,CAAA,8qEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4d,mCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,qBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjBa,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAL/C,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,4vCAAA,EAAA,MAAA,EAAA,CAAA,8qEAAA,CAAA,EAAA,CAAA;mGAOlC,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAEP,mCAAmC,EAAA,CAAA;sBADlC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAEjC,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;AEzBD,MAAM,cAAc,GAAG;AAC5B,IAAA,cAAc,EAAE,+BAA+B;AAC/C,IAAA,iCAAiC,EAC/B,6GAA6G;CAChH,CAAC;AAEK,MAAM,YAAY,GAAG;AAC1B,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,GAAG,EAAE;AACH,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,OAAO,EAAE,EAAE;AACZ,KAAA;CACF,CAAC;AAEK,MAAM,kBAAkB,GAAG;AAChC,IAAA,mBAAmB,EAAE,kBAAkB;AACvC,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,YAAY,EAAE,0BAA0B;CACzC;;MCbY,gBAAgB,CAAA;AAG3B,IAAA,WAAA,CAAoB,IAAgB,EAAU,WAAwB,EAAU,MAAsB,EAAA;QAAlF,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAAU,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;AACpG,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;KAC9B;AAED,IAAA,yBAAyB,CAAC,QAAgB,EAAA;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;AACvD,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO;AACL,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,GAAG,YAAY;SAChB,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,QAAgB,EAAA;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AACzD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,kBAAkB,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7G;+GAxBU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA9e,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCcY,wBAAwB,CAAA;AAgCnC,IAAA,WAAA,CACU,QAAyB,EACzB,aAA4B,EAC5B,gBAAkC,EAClC,MAAc,EACd,KAAqB,EAC7B,gBAAkC,EAC1B,aAA4B,EAAA;QAN5B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAErB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QApCtC,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAG,CAAA,GAAA,GAAG,KAAK,CAAC;QACZ,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;QACd,IAAG,CAAA,GAAA,GAAG,KAAK,CAAC;QACZ,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAA6B,CAAA,6BAAA,GAAY,KAAK,CAAC;AAC/C,QAAA,IAAA,CAAA,oBAAoB,GAAG,cAAc,CAAC,cAAc,CAAC;QAE5C,IAAoB,CAAA,oBAAA,GAAG,EAAE,CAAC;QAE1B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;QACnB,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QACrB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAG1B,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAE5C,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AACb,QAAA,IAAA,CAAA,SAAS,GAAG;AACV,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,EAAE;SACZ,CAAC;QA8FF,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AApFnB,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,MAAM,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,uBAAuB,EAAE;AAC3C,YAAA,IAAI,CAAC,OAAO,GAAG,0BAA0B,CAAC;AAC3C,SAAA;KACF;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CACrB,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,MAAM,CACtD,CAAC;AACF,QAAA,IACE,IAAI,CAAC,IAAI,KAAK,IAAI;YAClB,IAAI,CAAC,IAAI,KAAK,SAAS;YACvB,IAAI,CAAC,IAAI,KAAK,IAAI;YAClB,IAAI,CAAC,IAAI,KAAK,SAAS;AACvB,YAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAC9B;AACA,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC;AACtC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1B,YAAA,YAAY,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAChD,SAAA;KACF;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAW,KAAI;YACxF,IAAG,CAAC,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAChC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;AAC7C,SAAA;KACF;IAED,sBAAsB,GAAA;QACpB,IAAI,CAAC,6BAA6B,GAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,CAAC;KACtG;IAEH,wBAAwB,GAAA;QACtB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AAC9D,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAI,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;KACxF;IAEC,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACtE,YAAA,IAAG,GAAG,EAAC;gBACL,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,aAAA;AACD,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACxB,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,cAAc,CAAC,iCAAiC,EAChD,OAAO,CACR,CAAC;AACJ,SAAC,CACF,CAAC;KACD;AAED,IAAA,eAAe,CAAC,KAAe,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI;aACnC,KAAK,CACJ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAC9B;AACA,aAAA,WAAW,EAAE,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;AACnC,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;AAC3D,SAAA;KACF;AAID,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC;KAC7F;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B,EAAE,EAAE,CAAC,CAAC;AACP,YAAA,MAAM,UAAU,GAAG,IAAI,QAAQ,EAAE,CAAC;YAClC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;AACtD,YAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,SAAS,CACtE,CAAC,GAAG,KAAI;AACN,gBAAA,IAAI,GAAG,EAAE;AACP,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,iBAAA;AACH,aAAC,EACD,CAAC,GAAG,KAAI;gBACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,6GAA6G,EAC7G,OAAO,CACR,CAAC;AACF,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AACjC,aAAC,CACF,CAAC;AACH,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B,EAAE,EAAE,CAAC,CAAC;AACP,QAAA,MAAM,UAAU,GAAG,IAAI,QAAQ,EAAE,CAAC;QAClC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;AACtD,QAAA,IAAI,CAAC,aAAa;aACf,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC/C,aAAA,SAAS,CACR,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,IAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAClC,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,iBAAA;AAAM,qBAAA;oBACL,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;wBACvC,IAAI,CAAC,SAAS,GAAG;AACf,4BAAA,OAAO,EAAE,IAAI;AACb,4BAAA,OAAO,EAAE,oDAAoD;yBAC9D,CAAC;AACH,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,SAAS,GAAG;AACf,4BAAA,OAAO,EAAE,IAAI;AACb,4BAAA,OAAO,EAAE,oDAAoD;yBAC9D,CAAC;AACH,qBAAA;AACF,iBAAA;AACF,aAAA;AACH,SAAC,EACD,CAAC,GAAG,KAAI;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,6GAA6G,EAC7G,OAAO,CACR,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AACjC,SAAC,CACF,CAAC;KACL;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,oBAAoB,GAAC,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAC,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAC,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,GAAC,KAAK,CAAC;AACf,QAAA,IAAI,CAAC,GAAG,GAAC,KAAK,CAAC;AACf,QAAA,IAAI,CAAC,WAAW,GAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAC,KAAK,CAAC;QACpB,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,SAAS,GAAG;AACf,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,EAAE;SACZ,CAAC;KACH;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAG,IAAI,CAAC,oBAAoB,KAAK,KAAK,EAAE;AACtC,YAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAC/B,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,KAAK,KAAK,UAAU,EAAE;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;KACF;AAED,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,KAAK,KAAK,OAAO,EAAE;;AAErB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;AACtD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACpC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AACzB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,aAAa;AACf,iBAAA,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9C,iBAAA,SAAS,CACR,CAAC,GAAG,KAAI;AACN,gBAAA,IAAI,GAAG,EAAE;AACP,oBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACtB,MAAM,GAAG,GACP,IAAI,CAAC,OAAO,GAAG,6BAA6B,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC/D,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClD,iBAAA;AACH,aAAC,EACD,CAAC,GAAG,KAAI;AACN,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,6GAA6G,EAC7G,OAAO,CACR,CAAC;AACJ,aAAC,CACF,CAAC;AACL,SAAA;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE;YAC3B,MAAM,GAAG,GACP,IAAI,CAAC,OAAO,GAAG,6BAA6B,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/D,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClD,SAAA;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE;YACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,SAAA;aAAM,IAAI,KAAK,KAAK,KAAK,EAAE;;YAE1B,MAAM,GAAG,GACP,IAAI,CAAC,OAAO,GAAG,0BAA0B,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC5D,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClD,SAAA;aAAM,IAAI,KAAK,KAAK,UAAU,EAAE;YAC/B,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC/D,SAAA;QACD,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7C;IACD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,YAAY,CAAC,OAAO,CAClB,qBAAqB,EACrB,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,oBAAoB;YAC/B,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,SAAA,CAAC,CACH,CAAC;AACF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;+GAxSU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAmB,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA8F,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAgY,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAna,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAqC,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA4E,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,2bCtBrC,osiBAgXA,EAAA,MAAA,EAAA,CAAA,63JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5E,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2F,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Va,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,osiBAAA,EAAA,MAAA,EAAA,CAAA,63JAAA,CAAA,EAAA,CAAA;oQAiBvB,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MExCI,wBAAwB,CAAA;AAG5B,IAAA,OAAO,CAAC,KAAU,EAAA;QAEvB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;+GAPU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA,CAAA;8BAIQ,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCMtB,6BAA6B,CAAA;AAcxC,IAAA,WAAA,GAAA;QAbA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC,CAAC;QAEjB,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;AAKrB,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC3C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;KAE9B;IAEhB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAClD,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC;KACnD;AACD,IAAA,WAAW,CAAC,EAAO,EAAA;QACjB,IAAI,CAAC,WAAW,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;KACtC;AAED,IAAA,mBAAmB,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxC;AAED,IAAA,cAAc,CAAC,QAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;AACjC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;IAED,WAAW,GAAA;QACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CACpD,CAAC,QAAa,KAAK,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAChE,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACvD;AAED,IAAA,MAAM,CAAC,gBAAqB,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;KACxE;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;+GA1DU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,oXCd1C,8lcA+UA,EAAA,MAAA,EAAA,CAAA,2gOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5I,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiO,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtM,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyF,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2W,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAje,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjUa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,8lcAAA,EAAA,MAAA,EAAA,CAAA,2gOAAA,CAAA,EAAA,CAAA;0EAU7B,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;MElBI,wBAAwB,CAAA;AAUnC,IAAA,WAAA,GAAA;QATA,IAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;QAC/B,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAY,CAAA,YAAA,GAAW,YAAY,CAAC;QAE3B,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;AAElB,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;AACzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;QAChD,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KACC;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,GAAG,CAAS,MAAA,EAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA,CAAE,CAAC;AACpD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE;YACjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;YAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACpD,SAAA;KACF;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;KACjC;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;;AAGtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACrC;AAED,IAAA,iBAAiB,CAAC,SAAc,EAAA;QAC9B,IAAI,aAAa,GAAU,EAAE,CAAC;QAC9B,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;YACzC,OAAO;gBACL,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,WAAW,EAAE,GAAG,CAAC,WAAW;AAC5B,gBAAA,aAAa,EAAE,KAAK;AACpB,gBAAA,WAAW,EAAE,KAAK;AAClB,gBAAA,WAAW,EAAE,KAAK;aACnB,CAAC;AACJ,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;KACrC;AAED,IAAA,YAAY,CAAC,IAA4C,EAAA;AACvD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG;AACtB,YAAA;AACE,gBAAA,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,IAAI,CAAC,YAAY;AACvB,gBAAA,aAAa,EAAE,KAAK;AACpB,gBAAA,MAAM,EAAE,CAAS,MAAA,EAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;AAClC,gBAAA,UAAU,EACR,IAAI,CAAC,iBAAiB,KAAK,EAAE;AAC3B,sBAAE,CAAS,MAAA,EAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;sBAC1B,IAAI,CAAC,iBAAiB;AAC7B,aAAA;SACF,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACnD;+GA/DU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,6PCRrC,+hMAgJA,EAAA,MAAA,EAAA,CAAA,goNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiO,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtM,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAke,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxIa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,+hMAAA,EAAA,MAAA,EAAA,CAAA,goNAAA,CAAA,EAAA,CAAA;0EAQvB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACI,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MELI,2BAA2B,CAAA;IAuCtC,WACU,CAAA,WAAwB,EACxB,aAA4B,EAAA;QAD5B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAxCtC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QACrC,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAqB,CAAA,qBAAA,GAAU,EAAE,CAAC;QAClC,IAAqB,CAAA,qBAAA,GAAU,EAAE,CAAC;QAClC,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAC9B,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;AACnB,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,UAAU,EAAE,iBAAiB;AAC7B,YAAA,oBAAoB,EAAE,mBAAmB;AACzC,YAAA,kBAAkB,EAAE,qBAAqB;AACzC,YAAA,iBAAiB,EAAE,iBAAiB;AACpC,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,QAAQ,EAAE,QAAQ;SACnB,CAAC;QACF,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC,CAAC;QACvB,IAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;QAC/B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAE/B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAEjB,IAAI,CAAA,IAAA,GAAsB,QAAQ,CAAC;AAQlC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;AAOlD,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,8CAA8C;SAC5D,CAAC;KAPG;IASL,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE;YACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,SAAS,EAAE;AACrC,YAAA,IAAI,CAAC,YAAY,CACf,IAAI,CAAC,iBAAiB,EAAE,SAAS,EACjC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAC9B,CAAC;AACH,SAAA;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AAClC,SAAA;KACF;AAED,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AACtC,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AAClC,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,KAAK;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;KAC1B;AAED,IAAA,aAAa,CAAC,QAAa,EAAA;AACzB,QAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;KACnE;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;KACnC;AAED,IAAA,sBAAsB,CAAC,gBAAqB,EAAA;QAC1C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,QAAa,KACjE,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CACxC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC3C;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CACnD,CAAC,QAAa,KAAK,QAAQ,EAAE,OAAO,KAAK,KAAK,EAAE,OAAO,CACxD,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;KACjD;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;KACnC;AAED,IAAA,cAAc,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;KACnC;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CACpD,CAAC,QAAa,KAAK,QAAQ,CAAC,SAAS,EAAE,MAAM,CAC9C,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,CAAC,CAAC;KAClD;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE;YACzB,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC5B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,SAAA;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CACpD,CAAC,QAAa,KAAK,QAAQ,CAAC,SAAS,EAAE,MAAM,CAC9C,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,CAAC,CAAC;AAEjD,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;KAClC;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,CAAC,CAAC;AACjD,QAAA,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1D,IACE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;gBACvC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,EAC3C;AACA,gBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,CAAS,MAAA,EAAA,CAAC,GAAG,CAAC,EAAE,CAAC;AAChE,aAAA;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAS,MAAA,EAAA,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5D,SAAA;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjB,SAAA;KACF;IAED,YAAY,CAAC,QAAa,EAAE,KAAU,EAAA;AACpC,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;KACjC;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAChC;IAED,SAAS,GAAA;QACP,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CACjD,CAAC,EACC,SAAS,EACT,GAAG,IAAI,EAIR,MAAM;AACL,YAAA,GAAG,IAAI;YACP,SAAS,EAAE,SAAS,CAAC,GAAG,CACtB,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,EAA0B,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CACpE;AACF,SAAA,CAAC,CACH,CAAC;QACF,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,eAAe,EAAE,QAAQ;YACzB,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,WAAW,EAAE,IAAI,CAAC,kBAAkB;YACpC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;AACzC,YAAA,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAC1C,YAAA,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE;AACrD,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,WAAW,EAAE;AACX,gBAAA,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,iBAAiB;AAC7B,aAAA;SACF,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC7B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACjC,SAAA;KACF;IAEO,gBAAgB,GAAA;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AAClD,YAAA,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAc,KAAI;AACzD,gBAAA,SAAS,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;AACnC,gBAAA,SAAS,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;AACjC,gBAAA,SAAS,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;AACjC,gBAAA,OAAO,SAAS,CAAC;AACnB,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,OAAY,EAAA;QAC5B,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAC3D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,aAAa,CAAC,OAAY,EAAA;AACxB,QAAA,IAAI,CAAC,aAAa;aACf,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AACvD,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;AACF,SAAA,CAAC,CAAC;KACN;IACD,gBAAgB,GAAA;AACd,QAAA,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,GACnE,IAAI,CAAC,eAAe,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;AAClC,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;QACjD,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,QAAa,KAAI;YACzD,OAAO;gBACL,OAAO,EAAE,QAAQ,EAAE,eAAe;gBAClC,SAAS,EAAE,QAAQ,EAAE,aAAa;gBAClC,GAAG,EAAE,QAAQ,EAAE,GAAG;AAClB,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,eAAe,EAAE,EAAE;AACnB,gBAAA,WAAW,EAAE,EAAE;aAChB,CAAC;AACJ,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,GAAG,CACxC,CAAC,QAAa,KAAK,QAAQ,EAAE,eAAe,CAC7C,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;KACzC;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;KAClC;IAED,YAAY,CAAC,QAAa,EAAE,KAAU,EAAA;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CACpE,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,QAAQ,EAAE,SAAS,CACrD,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CACpD,CAAC,QAAa,KAAK,QAAQ,CAAC,SAAS,EAAE,MAAM,CAC9C,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,CAAC,CAAC;KAClD;IAED,qBAAqB,CAAC,IAAS,EAAE,KAAc,EAAA;AAC7C,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;KACvC;+GAhSU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA5e,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAyG,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,maCXxC,y5gBAgZA,EAAA,MAAA,EAAA,CAAA,mrGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5B,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2K,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2E,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoT,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4G,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAApY,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrYa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,y5gBAAA,EAAA,MAAA,EAAA,CAAA,mrGAAA,CAAA,EAAA,CAAA;0HAgC3B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAEI,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;;;MExCI,yBAAyB,CAAA;AAyBpC,IAAA,WAAA,GAAA;QAxBA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAMzB,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;AAGpC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;AAElD,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,mCAAmC;SACjD,CAAC;QACF,IAAI,CAAA,IAAA,GAAsB,QAAQ,CAAC;KAGnB;IAEhB,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC9B,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;AACpC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC9B,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;KACtC;AAED,IAAA,qBAAqB,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;KAC/B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvC;AAED,IAAA,yBAAyB,CAAC,KAAU,EAAA;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvC;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAC9B;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAChC;+GAlEU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,wfCRtC,i7BAqBA,EAAA,MAAA,EAAA,CAAA,whOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjG,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAse,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDba,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,i7BAAA,EAAA,MAAA,EAAA,CAAA,whOAAA,CAAA,EAAA,CAAA;0EAQxB,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAEI,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;;;MEfI,qBAAqB,CAAA;AAoBhC,IAAA,WAAA,GAAA;QAnBA,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAEP,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAE7B,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QACvB,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QACpB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;QACtB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAC1B,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;QAC3B,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;QAC3B,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;AACtC,QAAA,IAAA,CAAA,KAAK,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC9C,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAA,CAAA,mBAAmB,GAAsB,IAAI,YAAY,EAAE,CAAC;QACtE,IAA0B,CAAA,0BAAA,GAAY,KAAK,CAAC;KAG5B;AAEhB,IAAA,QAAQ,MAAW;AAEnB,IAAA,cAAc,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACzB,SAAA;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAC1B,IAAI,KAAK,EAAE,qBAAqB,EAAE;AAChC,YAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK,EAAE,qBAAqB,CAAC;AAC/D,YAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;AACzC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACtD,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;AACxC,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC1D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACtD,SAAA;KACF;+GApDU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,gjBCPlC,0tMAyJA,EAAA,MAAA,EAAA,CAAA,swPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAve,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiO,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtM,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuc,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlJa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,0tMAAA,EAAA,MAAA,EAAA,CAAA,swPAAA,CAAA,EAAA,CAAA;0EAOpB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACI,KAAK,EAAA,CAAA;sBAAd,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;MElBI,qBAAqB,CAAA;IAEhC,SAAS,CAAC,KAAU,EAAE,OAAY,EAAA;AAChC,QAAA,KAAK,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAA;QACzB,MAAM,KAAK,GAAG,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;AACpC,QAAA,IAAG,KAAK,IAAI,CAAC,CAAC,EAAC;YACf,IAAI,MAAM,GAAG,KAAK,EAAE,UAAU,CAAC,iBAAiB,EAAC,EAAE,CAAC,CAAC;YACrD,MAAM,GAAG,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACzC,YAAA,IAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAC;AACxB,gBAAA,MAAM,GAAG,MAAM,GAAG,CAAA,iCAAA,EAAoC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAA;AACzF,aAAA;AACD,YAAA,OAAO,MAAM,CAAC;AACb,SAAA;AAAI,aAAA;AACH,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;+GAfU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAArB,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,mBAAmB;AAC1B,iBAAA,CAAA;;;MCmBY,oBAAoB,CAAA;IAyD/B,IAA8B,kBAAkB,CAAC,OAAY,EAAA;AAC3D,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI;AAC3D,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,gBAAgB,EAAE,EAAE;SACrB,CAAC;KACH;;IA0CD,WACU,CAAA,cAA8B,EAC9B,QAAyB,EAAA;QADzB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QA1GnC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;AAChB,QAAA,IAAA,CAAA,iBAAiB,GAAG;AAClB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,IAAI,EAAE,EAAE;SACT,CAAC;AACF,QAAA,IAAA,CAAA,oBAAoB,GAAG;AACrB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,IAAI,EAAE,EAAE;SACT,CAAC;AAEF,QAAA,IAAA,CAAA,UAAU,GAAG;AACX,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,cAAc,EAAE,EAAE;SACnB,CAAC;AAEF,QAAA,IAAA,CAAA,cAAc,GAAmB;AAC/B,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,gBAAgB,EAAE,EAAE;SACrB,CAAC;AACF,QAAA,IAAA,CAAA,WAAW,GAAgB;AACzB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,gBAAgB,EAAE,EAAE;SACrB,CAAC;QAEF,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAEjB,IAAM,CAAA,MAAA,GAAQ,EAAE,CAAC;QAEjB,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAE,CAAC;QAGrD,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAa,CAAA,aAAA,GAAmB,MAAM,CAAC;QACvC,IAAW,CAAA,WAAA,GAAmD,UAAU,CAAC;AACzE,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AAClB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;AAE3B,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAE,CAAC;;QAErD,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QASP,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,mBAAmB,GAAG;AAC7B,YAAA,GAAG,EAAE,EAAE;SACR,CAAC;AAIF,QAAA,IAAA,CAAA,sBAAsB,GAAQ;AAC5B,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AACF,QAAA,IAAA,CAAA,WAAW,GAAgB;AACzB,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,gCAAgC,EAAE,CAAC;AACnC,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,0BAA0B,EAAE,CAAC;AAC7B,YAAA,wBAAwB,EAAE,CAAC;AAC3B,YAAA,qCAAqC,EAAE,CAAC;AACxC,YAAA,2BAA2B,EAAE,CAAC;AAC9B,YAAA,+BAA+B,EAAE,CAAC;AAClC,YAAA,6BAA6B,EAAE,CAAC;SACjC,CAAC;AACF,QAAA,IAAA,CAAA,iBAAiB,GAAG;AAClB,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,MAAM,EAAE,CAAC;SACV,CAAC;QAEF,IAA0B,CAAA,0BAAA,GAAG,KAAK,CAAC;QAEnC,IAAS,CAAA,SAAA,GACP,aAAa,CAAC;QAQd,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;KACpE;AAED,IAAA,WAAW,CAAC,IAAU,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;;AAE9B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CACpB,aAAa,EACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CACvC,CAAC;QACF,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACrD,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAC3C,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC/D,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAChE,SAAA;AACD,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,MAAM,EAAE,eAAe;YACvB,MAAM;SACP,CAAC;AACF,QAAA,IAAI,CAAC,cAAc;AAChB,aAAA,WAAW,CAAC,OAAO,EAAE,gCAAgC,CAAC;AACtD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;gBAC7C,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;gBACjD,IAAI,CAAC,WAAW,CAAC,gCAAgC;oBAC/C,GAAG,CAAC,gCAAgC,CAAC;gBACvC,IAAI,CAAC,WAAW,CAAC,sBAAsB,GAAG,GAAG,CAAC,sBAAsB,CAAC;gBACrE,IAAI,CAAC,WAAW,CAAC,0BAA0B;oBACzC,GAAG,CAAC,0BAA0B,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,wBAAwB;oBACvC,GAAG,CAAC,wBAAwB,CAAC;AAC/B,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACF,SAAA,CAAC,CAAC;KACN;AAED,IAAA,aAAa,CAAC,IAAU,EAAA;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAErE,IAAI,IAAI,EAAE,MAAM,EAAE;AAChB,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACvD,SAAA;AAED,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,MAAM,EAAE,iBAAiB;YACzB,MAAM;SACP,CAAC;AACF,QAAA,IAAI,CAAC,cAAc;AAChB,aAAA,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAAC;AACtC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;gBAClD,IAAI,CAAC,iBAAiB,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;gBAC3D,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;AAC7C,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACF,SAAA,CAAC,CAAC;KACN;AACD,IAAA,gBAAgB,CACd,IAAkE,EAAA;AAElE,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,mBAAmB,CAAC,IAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAEnB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,MAAM,EAAE,iBAAiB;AACzB,YAAA,aAAa,EAAE;AACb,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU;AACzC,gBAAA,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,WAAW;AAC9C,gBAAA,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,EAAE;AAC/D,gBAAA,QAAQ,EAAE,gBAAgB;AAC3B,aAAA;SACF,CAAC;AACF,QAAA,IAAI,CAAC,cAAc;AAChB,aAAA,WAAW,CAAC,OAAO,EAAE,2BAA2B,CAAC;AACjD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;gBACjD,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;gBAC3D,IAAI,CAAC,oBAAoB,CAAC,YAAY,GAAG,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;gBAC9D,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aACjD;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACF,SAAA,CAAC,CAAC;KACN;IAED,UAAU,CAAC,KAAU,EAAE,IAAoD,EAAA;AACzE,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC3C,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM;AACR,YAAA,KAAK,kBAAkB;AACrB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,MAAM;AACT,SAAA;KACF;IACD,QAAQ,CAAC,KAAU,EAAE,IAAoD,EAAA;AACvE,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,KAAK,EAAE;AACpC,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;oBAChC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACpC,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,EAAE;AACrC,oBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACjC,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,kBAAkB;AACrB,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,KAAK,EAAE;AAC3C,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC;oBACvC,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5C,iBAAA;gBACD,MAAM;AACT,SAAA;KACF;IAED,aAAa,CAAC,KAAU,EAAE,IAAS,EAAA;AACjC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;AACnC,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,EAAE,CAAC;AACvC,YAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3C,SAAA;KACF;IAED,cAAc,CAAC,KAAU,EAAE,QAAa,EAAA;AACtC,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,SAAA;AAAM,aAAA;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CACjD,CAAC,OAAY,KAAK,OAAO,IAAI,QAAQ,CAAC,WAAW,CAClD,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAC5D,CAAC,GAAQ,KAAK,GAAG,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CACtD,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AACzD,SAAA;KACF;IACD,oBAAoB,CAAC,KAAU,EAAE,IAAS,EAAA;AACxC,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,SAAA;AAAM,aAAA;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,CACvD,CAAC,OAAY,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAC3C,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAChE,CAAC,GAAQ,KAAK,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAC5C,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC7D,SAAA;KACF;AACD,IAAA,MAAM,CAAC,IAAwC,EAAA;AAC7C,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,QAAQ,IAAI;AACV,gBAAA,KAAK,YAAY;AACf,oBAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAC9B,oBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,EAAE,CAAC;oBACjC,MAAM;AACR,gBAAA,KAAK,kBAAkB;AACrB,oBAAA,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;AAChC,oBAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,EAAE,CAAC;oBACvC,MAAM;AACT,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACnB,SAAA;KACF;IAED,MAAM,CAAC,IAAoD,EAAE,IAAS,EAAA;AACpE,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,EAAE,CAAC;AACjC,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,EAAE,CAAC;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC1C,MAAM;AACR,YAAA,KAAK,YAAY;gBACf,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAC5D,CAAC,GAAQ,KAAK,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAClD,CAAC;AACF,gBAAA,IAAI,aAAa,IAAI,CAAC,CAAC,EAAE;oBACvB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AACxD,oBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3C,iBAAA;gBACD,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAC3D,CAAC,OAAY,KAAK,OAAO,IAAI,IAAI,CAAC,WAAW,CAC9C,CAAC;AACF,gBAAA,IAAI,eAAe,IAAI,CAAC,CAAC,EAAE;oBACzB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AACxD,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,kBAAkB;gBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAC9D,CAAC,GAAQ,KAAK,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAC5C,CAAC;AACF,gBAAA,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE;oBACnB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC3D,iBAAA;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,CACvD,CAAC,OAAY,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAC3C,CAAC;AACF,gBAAA,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;oBACf,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACpD,iBAAA;gBAED,MAAM;AACT,SAAA;KACF;AAED,IAAA,WAAW,CACT,IAAqE,EAAA;AAErE,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;AAChC,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,EAAE,CAAC;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM;AACR,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;AACtC,gBAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC1C,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAE3B,MAAM;AACR,YAAA,KAAK,kBAAkB;gBACrB,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,MAAM;AACR,YAAA,KAAK,cAAc;AACjB,gBAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBACvC,MAAM;AACT,SAAA;KACF;AACD,IAAA,sBAAsB,CAAC,KAAc,EAAA;AACnC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;YACxC,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;AACzC,SAAA;KACF;IAED,wBAAwB,GAAA;;AAEtB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;AAE7D,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;AAEnD,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC;AACrC,YAAA,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,gBAAgB,IAAI,CAAC;YACnD,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;AACxC,YAAA,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW;SACpD,CAAC;QACF,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,QAAA,IACE,IAAI,CAAC,mBAAmB,EAAE,GAAG;AAC7B,YAAA,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC,mBAAmB,EAAE,GAAG,EACnE;AACA,YAAA,MAAM,GAAG;gBACP,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC;AACxC,gBAAA,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,GAAG;aACzC,CAAC;AACH,SAAA;AACD,QAAA,MAAM,oBAAoB,GAAG;AAC3B,YAAA,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU;AACjD,YAAA,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ;AAC7C,YAAA,kBAAkB,EAAE,IAAI,CAAC,oBAAoB,EAAE,kBAAkB;AACjE,YAAA,cAAc,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc;SAC1D,CAAC;AACF,QAAA,IAAI,WAAW,GAAG;AAChB,YAAA,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE;AACnD,YAAA,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;SACpD,CAAC;AACF,QAAA,IAAI,eAAe,GAAG;YACpB,cAAc,EAAE,IAAI,CAAC,cAAc;AACnC,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,aAAa,EAAE,oBAAoB;SACpC,CAAC;AACF,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAC5C,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAE9B,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,MAAM,EAAE,kBAAkB;YAC1B,MAAM;AACN,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,aAAa,EAAE,oBAAoB;SACpC,CAAC;;;;;;;;;;;;;;;;;;KAmBH;+GAzdU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAM,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAlQ,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,ymBCvBjC,8kiCA+vBA,EAAA,MAAA,EAAA,CAAA,2zoBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnK,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+D,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvF,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8b,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3V,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4V,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxuBa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,8kiCAAA,EAAA,MAAA,EAAA,CAAA,2zoBAAA,CAAA,EAAA,CAAA;6HA2ClB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBAOG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAEG,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBAGE,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACwB,kBAAkB,EAAA,CAAA;sBAA/C,KAAK;uBAAC,iBAAiB,CAAA;gBAOf,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAGG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACsB,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;;;ME3Ef,4BAA4B,CAAA;AA4BvC,IAAA,WAAA,CAAoB,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QA3BhD,IAAS,CAAA,SAAA,GAAQ,SAAS,CAAC;QAC3B,IAAK,CAAA,KAAA,GAAQ,KAAK,CAAC;QACnB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAClB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAmB,MAAM,CAAC;QACtC,IAAkB,CAAA,kBAAA,GAAe,EAAE,CAAC;QACpC,IAAkB,CAAA,kBAAA,GAAe,EAAE,CAAC;QACpC,IAAW,CAAA,WAAA,GAAe,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,MAAM,EAAE,EAAE;SACX,CAAC;QACF,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,UAAU,GAAW,SAAS,CAAC,mBAAmB,CAAC;AACnD,QAAA,IAAA,CAAA,YAAY,GAAe;AACzB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,IAAI,EAAE,EAAE;SACT,CAAC;QACO,IAAgB,CAAA,gBAAA,GAAe,EAAE,CAAC;QAClC,IAAI,CAAA,IAAA,GAAW,QAAQ,CAAC;QACxB,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;AACrB,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;AACzC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAG1C,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,mBAAmB,CAAC;KACjD;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;KACjC;IAED,aAAa,GAAA;AACX,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,CACtD,CAAC,IAAI,KAAK,IAAI,EAAE,WAAW,CAC5B,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAC9D,IAAI,CAAC,UAAU,GAAG,CAAC,CACpB,EAAE,IAAI;AACJ,aAAA,MAAM,CAAC,CAAC,OAAY,KACnB,mBAAmB,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CACpD;aACA,GAAG,CAAC,CAAC,OAAY,KAAK,OAAO,EAAE,WAAW,CAAC,CAAC;KAChD;AAED,IAAA,QAAQ,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,KAAK,EAAE;AACpC,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACpC,SAAA;QACD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,mBAAmB,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACrC,SAAA;KACF;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO;AACR,SAAA;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,aAAa,CAAC,IAAU,EAAA;AACtB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,IAAI,EAAE,MAAM,EAAE;AAChB,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC9D,SAAA;QACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,IAAI,EAAE,IAAI,EAAE;YACd,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACrD,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5D,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,iBAAiB,CAAC,GAAQ,EAAA;QACxB,OAAO;AACL,YAAA,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC;AACpB,YAAA,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC;YAChB,WAAW,EAAE,IAAI,CAAC,UAAU;AAC5B,YAAA,SAAS,EAAE,GAAG,EAAE,WAAW,IAAI,CAAC;AAChC,YAAA,YAAY,EAAE,GAAG,EAAE,WAAW,IAAI,CAAC;YACnC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC9B,CAAC;KACH;AAED,IAAA,WAAW,CAAC,IAAU,EAAA;QACpB,IACE,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YAC3D,CAAC,IAAI,EAAE,MAAM,EACb;AACA,YAAA,IAAI,CAAC,YAAY;gBACf,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO;AACR,SAAA;QACD,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAEnB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,QAAQ,CAAC,eAAe;YAC9B,MAAM;SACP,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa;aACf,aAAa,CAAC,OAAO,CAAC;AACtB,aAAA,IAAI,CAACpG,WAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAEhD,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE;oBAChE,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACxD,wBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AACjD,iBAAA;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACF,SAAA,CAAC,CAAC;KACN;IAED,YAAY,CAAC,KAAU,EAAE,IAAS,EAAA;AAChC,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CACvD,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,WAAW,CACjC,CAAC;YACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CACvD,CAAC,IAAI,KAAK,IAAI,EAAE,WAAW,KAAK,IAAI,EAAE,WAAW,CAClD,CAAC;AACH,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AAC5C,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CACvD,CAAC,IAAI,KAAK,IAAI,EAAE,WAAW,KAAK,KAAK,EAAE,WAAW,CACnD,CAAC;QACF,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;+GA3KU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAqG,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,8OCjBzC,oxSA+OA,EAAA,MAAA,EAAA,CAAA,y9LAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7e,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwE,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/D,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+H,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqB,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApB,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoW,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA9e,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD9Na,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,oxSAAA,EAAA,MAAA,EAAA,CAAA,y9LAAA,CAAA,EAAA,CAAA;iGA0B5B,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MEEI,uBAAuB,CAAA;AA+KlC,IAAA,WAAA,CACU,aAA4B,EAC5B,QAAyB,EACzB,YAA0B,EAC1B,WAAwB,EACxB,qBAA4C,EAC5C,MAAc,EACd,KAAqB,EACrB,gBAAkC,EAC1C,gBAAkC,EAC1B,SAA4B,EAC5B,cAA8B,EAC9B,aAA4B,EAC5B,uBAAgD,EAChD,yBAAoD,EACpD,uBAAgD,EAChD,aAA4B,EAAA;QAf5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAElC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAmB;QAC5B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAChD,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA2B;QACpD,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAChD,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QA9LtC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAS,CAAA,SAAA,GAAQ,SAAS,CAAC;QAC3B,IAAK,CAAA,KAAA,GAAQ,KAAK,CAAC;AACT,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAEb,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAE,CAAC;AAE3C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;QACtC,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAC1B,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QACtB,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AAMjC,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,oCAAoC;SAClD,CAAC;QACF,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;QAC5B,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAA0B,CAAA,0BAAA,GAAG,KAAK,CAAC;QAEnC,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;QACpB,IAAM,CAAA,MAAA,GAAQ,EAAE,CAAC;QACjB,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QACpB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QACvB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QACvB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QACpB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QACvB,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;QACzB,IAAoB,CAAA,oBAAA,GAAU,EAAE,CAAC;QACjC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAC9B,IAAe,CAAA,eAAA,GAAU,EAAE,CAAC;QAC5B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAmB,CAAA,mBAAA,GAAU,EAAE,CAAC;QAChC,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAsB,CAAA,sBAAA,GAAU,EAAE,CAAC;QAEnC,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAC7B,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;AACzB,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,UAAU,EAAE,wBAAwB;AACpC,YAAA,oBAAoB,EAAE,0BAA0B;AAChD,YAAA,kBAAkB,EAAE,4BAA4B;AAChD,YAAA,iBAAiB,EAAE,wBAAwB;AAC3C,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,QAAQ,EAAE,QAAQ;SACnB,CAAC;AACF,QAAA,IAAA,CAAA,sBAAsB,GAAG;AACvB,YAAA,UAAU,EAAE,gBAAgB;AAC5B,YAAA,oBAAoB,EAAE,eAAe;AACrC,YAAA,kBAAkB,EAAE,gBAAgB;AACpC,YAAA,iBAAiB,EAAE,aAAa;AAChC,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,gBAAgB,EAAE,IAAI;SACvB,CAAC;QAEF,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAkB,CAAA,kBAAA,GAAG,CAAC,CAAC;QACvB,IAAY,CAAA,YAAA,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QACxD,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAG;AACX,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,KAAK;SACnB,CAAC;AACF,QAAA,IAAA,CAAA,gBAAgB,GAAG;AACjB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,mBAAmB,EAAE,CAAC;AACtB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,SAAS,EAAE,eAAe;AAC1B,YAAA,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AAClD,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AACtD,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,sBAAsB,EAAE,CAAC;SAC1B,CAAC;AACF,QAAA,IAAA,CAAA,wBAAwB,GAAG;AACzB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,mBAAmB,EAAE,CAAC;AACtB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,SAAS,EAAE,eAAe;AAC1B,YAAA,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AAClD,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AACtD,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,sBAAsB,EAAE,CAAC;SAC1B,CAAC;QACF,IAAoB,CAAA,oBAAA,GAAG,mDAAmD,CAAC;QAC3E,IAA4B,CAAA,4BAAA,GAAG,4CAA4C,CAAC;AAE5E,QAAA,IAAA,CAAA,oBAAoB,GAAG;YACrB,kBAAkB;YAClB,WAAW;YACX,WAAW;YACX,UAAU;YACV,SAAS;YACT,QAAQ;YACR,IAAI;YACJ,UAAU;YACV,WAAW;YACX,mBAAmB;YACnB,aAAa;YACb,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,QAAQ;YACR,cAAc;SACf,CAAC;AACF,QAAA,IAAA,CAAA,kBAAkB,GAAG;YACnB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;YAClD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;YACpD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;SAC1C,CAAC;QACF,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC;QAC9B,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAC5B,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;QACrB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QACnB,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QAGb,IAAkB,CAAA,kBAAA,GAAG,CAAC,CAAC;QACvB,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QACb,IAAY,CAAA,YAAA,GAAQ,IAAI,CAAC;QACzB,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAsB,CAAA,sBAAA,GAAY,KAAK,CAAC;QACxC,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;QAC/B,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;QAC9B,IAAmB,CAAA,mBAAA,GACjB,gHAAgH,CAAC;QACnH,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAE7B,IAAmB,CAAA,mBAAA,GAAU,EAAE,CAAC;QAChC,IAAoB,CAAA,oBAAA,GAAQ,EAAE,CAAC;QAC/B,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QACrC,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QACvB,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QACzB,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;QACjC,IAAc,CAAA,cAAA,GAAQ,gBAAgB,CAAC;QACvC,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;QAC3B,IAAiB,CAAA,iBAAA,GAAe,EAAE,CAAC;QACnC,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;AAwBtB,QAAA,IAAA,CAAA,UAAU,GAAe;AACvB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,qBAAqB,EAAE,EAAE;AACzB,YAAA,iBAAiB,EAAE,EAAE;AAErB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,+BAA+B,EAAE,KAAK;AACtC,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,mBAAmB,EAAE;AACnB,gBAAA,WAAW,EAAE,EAAE;AAChB,aAAA;YACD,aAAa,EAAEuI,QAAM,EAAE;AACvB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,iBAAiB,EAAE;AACjB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,WAAW,EAAE,EAAE;AAChB,aAAA;AACD,YAAA,wBAAwB,EAAE,KAAK;AAC/B,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,sBAAsB,EAAE,KAAK;AAE7B,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,2BAA2B,EAAE,CAAC;AAE9B,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,wBAAwB,EAAE,EAAE;AAC5B,YAAA,qBAAqB,EAAE,EAAE;AACzB,YAAA,kCAAkC,EAAE,CAAC;AACrC,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,qBAAqB,EAAE,EAAE;AACzB,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,oBAAoB,EAAE,EAAE;AACxB,YAAA,oBAAoB,EAAE,EAAE;SACzB,CAAC;AAxEA,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,MAAM,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,uBAAuB,EAAE;AAC3C,YAAA,IAAI,CAAC,OAAO,GAAG,0BAA0B,CAAC;AAC3C,SAAA;KACF;IAqED,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAE1B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,YAAY;YACf,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC;AAC7D,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,GAAG,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;AAChD,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC;;KAEzE;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,EAAE,SAAS,CAAC;AAC7D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE;AAC1B,oBAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACrC,iBAAA;gBACD,IAAI,GAAG,EAAE,GAAG,EAAE;AACZ,oBAAA,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,GAAG,CAAC;AACjC,iBAAA;aACF;AACD,YAAA,KAAK,EAAE,CAAC,GAAU,KAAI;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,QAAgB,EAAA;QAChC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;AACxD,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,gBAAA,IAAI,QAAQ,EAAE;AACZ,oBAAA,IAAI,CAAC,sBAAsB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBACrE,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,iBAAA;AACD,gBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAClE,CAAC,IAAI,KAAK,IAAI,EAAE,WAAW,CAC5B,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,WAAW,CAAC,CAAC;gBACnC,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,QAAQ,EAAE,eAAe,CAAC;AACnE,gBAAA,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC;aACxC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,KAAK,CAAC;AACxC,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAClB;AACF,SAAA,CAAC,CAAC;KACJ;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAC,IAAS,EAAE,KAAc,EAAE,YAAkB,EAAA;AAC5D,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AAClC,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;AACxC,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI;gBACP,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM;AACR,YAAA,KAAK,SAAS,CAAC;AACf,YAAA,KAAK,QAAQ,CAAC;AACd,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM;AACT,SAAA;QACD,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,SAAA;KACF;AAED;;AAEG;IACH,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED;;AAEG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,uBAAuB,EAAE,aAAa,EAAE,EAAE,SAAS,CAAC;AACvD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AAClB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B;AACD,YAAA,KAAK,EAAE,CAAC,GAAU,KAAI;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B;AACF,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;IACH,YAAY,GAAA;QACV,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAC3D,CAAC,GAAQ,KAAI;YACX,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAC9C,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACtB,aAAA;AACD,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9B,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9B,SAAC,CACF,CAAC;KACH;;AAGD,IAAA,iBAAiB,CAAC,IAAS,EAAA;QACzB,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,MAAM;AACxC,YAAA,GAAG,GAAG;YACN,SAAS,EAAE,GAAG,EAAE,YAAY;AAC7B,SAAA,CAAC,CAAC,CAAC;AACJ,QAAA,OAAO,WAAW,CAAC;KACpB;AAED;;AAEG;IACH,iBAAiB,GAAA;QACf,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAC9C,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;AACxB,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACnC,SAAC,EACD,CAAC,GAAU,KAAI;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACnC,SAAC,CACF,CAAC;KACH;AAED;;AAEG;IACH,aAAa,GAAA;QACX,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,EAAE,CAAC,SAAS,CAChE,CAAC,GAAQ,KAAI;AACX,YAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,MAAM,MAAM,GAAQ,EAAE,CAAC;AACvB,YAAA,IAAI,EAAE,OAAO,CAAC,CAAC,OAAY,KAAI;AAC7B,gBAAA,MAAM,GAAG,GAAG;oBACV,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,OAAO,EAAE,OAAO,CAAC,UAAU;iBAC5B,CAAC;AACF,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,aAAA;AACD,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC/B,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC/B,SAAC,CACF,CAAC;KACH;;IAGD,iBAAiB,GAAA;QACf,IAAI,CAAC,qBAAqB,EAAE,8BAA8B,EAAE,CAAC,SAAS,CACpE,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,kBAAkB,GAAG,GAAG,EAAE,IAAI,CAAC;AACpC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC/B,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC/B,SAAC,CACF,CAAC;KACH;AAED;;;AAGG;AACH,IAAA,sBAAsB,CAAC,KAAU,EAAA;AAC/B,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;;;;AAIjB,SAAA;AAAM,aAAA;YACL,IAAI,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AACtC,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACtB,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAa,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC;AACtE,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AACnE,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CACjD,CAAC,KAAU,KAAK,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAC3C,CAAC;AACH,SAAA;KACF;AAED;;;AAGG;IACH,mBAAmB,CAAC,EAAO,EAAE,IAAU,EAAA;AACrC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,SAAS,CAC9C,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,GAAG,EAAE,MAAM,IAAI,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;AAChC,gBAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAI;oBAC9C,IAAI,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;AACrD,wBAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACtC,qBAAA;AACH,iBAAC,CAAC,CAAC;gBAEH,MAAM,YAAY,GAAQ,EAAE,CAAC;AAC7B,gBAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE;AAClC,oBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,gBAAgB,GAAU,EAAE,CAAC;oBACjC,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,oBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,KAAI;AAChE,wBAAA,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,SAAS;AACjD,4BAAA,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,CACvD,CAAC,GAAQ,KAAI;AACX,gCAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;oCACpB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CACvC,CAAC,IAAS,KAAK,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,SAAS,CAClD,CAAC;AACF,oCAAA,IAAI,YAAY,EAAE;AAChB,wCAAA,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,WAAW,CAAC;AAC7C,qCAAA;AACF,iCAAA;AACD,gCAAA,OAAO,GAAG,CAAC;AACb,6BAAC,CACF,CAAC;AACJ,wBAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,aAAa,IAAI,KAAK,CAAC;AACjG,wBAAA,MAAM,SAAS,GAAG;AAChB,4BAAA,MAAM,EAAE,cAAc;AACtB,4BAAA,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;AAC5C,4BAAA,aAAa,EAAE,sBAAsB;yBACtC,CAAC;AACF,wBAAA,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnC,qBAAC,CAAC,CAAC;oBACH,YAAY,CAAC,IAAI,CAAC;AAChB,wBAAA,aAAa,EAAE,EAAE;AACjB,wBAAA,eAAe,EAAE,QAAQ;AACzB,wBAAA,WAAW,EAAE,EAAE;AACf,wBAAA,iBAAiB,EAAE,gBAAgB;AACnC,wBAAA,YAAY,EAAE,EAAE;AAChB,wBAAA,OAAO,EAAE,EAAE;AACZ,qBAAA,CAAC,CAAC;AAEH,oBAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE;wBACjC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,YAAY,CAAC;AAC3D,qBAAA;AACF,iBAAA;gBACD,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC1D,gBAAA,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,CAAC,4BAA4B,CAC/B,EAAE,EACF,IAAI,EACJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACvB,IAAI,CACL,CAAC;AACH,iBAAA;AACD,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,aAAA;AACH,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,CACF,CAAC;KACH;AAED,IAAA,qBAAqB,CAAC,QAAa,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,oBAAoB,IAAI,QAAQ,EAAE,iBAAiB,EAAE;AAC5D,YAAA,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;AACxC,YAAA,eAAe,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,KAAa,KAAI;AAC/F,gBAAA,MAAM,QAAQ,GAAG,CAAA,KAAA,EAAQ,KAAK,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;;AAG/D,gBAAA,IAAI,kBAAkB,EAAE;oBACtB,OAAO;AACL,wBAAA,GAAG,KAAK;AACR,wBAAA,aAAa,EAAE,kBAAkB,CAAC,aAAa,GAAG,kBAAkB,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa;qBACzG,CAAC;AACH,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC9C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,SAAA;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;KACvC;AAED;;;AAGG;AACH,IAAA,4BAA4B,CAC1B,WAAgB,EAChB,WAAiB,EACjB,WAAiB,EACjB,MAAY,EAAA;AAEZ,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,SAAS,CACpD,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,GAAG,EAAE,MAAM,IAAI,CAAC,EAAE;AACpB,gBAAA,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAC3B,oBAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CACxB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAC/C,WAAW,CACZ,CAAC;oBACF,IAAI,CAAC,YAAY,GAAG,MAAM,CACxB,OAAO,CAAC,aAAa,CAAC,MAAM,CAC1B,IAAI,CAAC,YAAY,EACjB,OAAO,CAAC,WAAW,CACpB,EACD,WAAW,CACZ,CAAC;AACF,oBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;wBAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AACnD,oBAAA,IAAI,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAC1C,IAAI,CAAC,YAAY,EACjB,MAAM,EAAE,aAAa,IAAI,EAAE,EAC3B,WAAW,CACZ,CAAC;AACH,qBAAA;AACD,oBAAA,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;AAC7C,iBAAC,CAAC,CAAC;AACJ,aAAA;YACD,IAAI,WAAW,EAAE,SAAS,EAAE;AAC1B,gBAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;AACxC,oBAAA,IAAI,GAAG,GAAG,WAAW,EAAE,SAAS,CAAC;oBACjC,IAAI,cAAc,GAAG,EAAE,CAAC;AACxB,oBAAA,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE;wBACpB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CACnC,CAAC,QAAa,KAAK,QAAQ,CAAC,SAAS,CACtC,CAAC;AACF,wBAAA,IAAI,IAAI,GAAG;AACT,4BAAA,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI;AACxC,4BAAA,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS;AAC/B,4BAAA,aAAa,EAAE,KAAK;4BACpB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI;AACjC,4BAAA,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU;yBAClC,CAAC;AACF,wBAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,qBAAA;AACD,oBAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE;wBACjC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,cAAc,CAAC;AAC7D,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,gBAAgB,GAAG;AACtB,4BAAA;AACE,gCAAA,iBAAiB,EAAE,cAAc;AAClC,6BAAA;yBACF,CAAC;AACH,qBAAA;oBACD,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC3D,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,WAAW,EAAE;AACf,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAC9C,IAAI,CAAC,YAAY,EACjB,WAAW,EACX,WAAW,CACZ,CAAC;AACH,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,EACD,CAAC,GAAU,KAAI;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,CACF,CAAC;KACH;AAEO,IAAA,kBAAkB,CAAC,cAAmB,EAAA;;AAE5C,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE;AAClF,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;AACrE,QAAA,MAAM,YAAY,GAAG,cAAc,EAAE,SAAS,CAAC;;AAG/C,QAAA,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EAAE;AACjF,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;;AAGD,QAAA,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE;AACnC,YAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AACxC,YAAA,IAAI,aAAa,GAAG,gBAAgB,CAAC,IAAI,CACvC,CAAC,KAAU,KAAK,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CACjD,CAAC;AACF,YAAA,IAAI,CAAC,aAAa,IAAI,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACnF,gBAAA,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/E,aAAA;;YAGD,IAAI,CAAC,aAAa,EAAE;AAClB,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;;YAGD,IAAI,aAAa,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE;AACzD,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;;YAGD,IAAI,aAAa,IAAI,QAAQ,CAAC,UAAU,KAAK,aAAa,CAAC,UAAU,EAAE;AACrE,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED;;AAEG;IACH,sBAAsB,GAAA;QACpB,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE;AAC5C,YAAA,gBAAgB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAChD,SAAA;;;AAGD,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;AAChC,YAAA,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE;AAC1C,YAAA,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC5C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAClC,YAAA,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClC,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE;AACrC,YAAA,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,SAAA;AACD,QAAA,IACE,IAAI,CAAC,UAAU,EAAE,qBAAqB,EAAE,OAAO;YAC/C,IAAI,CAAC,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,WAAW,EAC5D;AACA,YAAA,gBAAgB,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACvD,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC;AACvC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1C,YAAA,gBAAgB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAChD,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC5C;AACD;;;AAGG;AACH,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,uBAAuB;gBAC1B,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,KAAK,CAAC,OAAO,CAAC;gBACzD,MAAM;;;;AAIR,YAAA,KAAK,aAAa;gBAChB,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC/C,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC7C,MAAM;AACR,YAAA,KAAK,mBAAmB;gBACtB,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,KAAK,CAAC,OAAO,CAAC;gBACvD,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC3C,MAAM;AACR,YAAA,KAAK,+BAA+B;gBAClC,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC/C,MAAM;AACR,YAAA,KAAK,kBAAkB;gBACrB,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC;gBAClD,MAAM;AACR,YAAA,KAAK,uBAAuB;gBAC1B,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC;gBAChD,MAAM;AACT,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;AAED;;AAEG;IACH,0BAA0B,GAAA;AACxB,QAAA,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,KAAK,MAAM;cAChB,IAAI,CAAC,YAAY;AACnB,gBAAA,IAAI,CAAC,oBAAoB;AACzB,gBAAA,IAAI,CAAC,gBAAgB;cACnB,IAAI,CAAC;AACX,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,UAAU,EAAE;YACtC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;gBACzD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAClE,CAAC,EACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAC/C,CAAC;AACF,gBAAA,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AACnC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;AACtE,iBAAA;AACF,aAAA;YACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC5D,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;gBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,aAAA;AACF,SAAA;AAAM,aAAA;YACL,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,0BAA0B,EAAE,CAAC;aACnC,EAAE,GAAG,CAAC,CAAC;AACT,SAAA;KACF;AAED;;;AAGG;AACH,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,mBAAmB,GAAsB;AAC7C,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,OAAO,EAAE,CAAA;;;AAGuB,uCAAA,CAAA;AAChC,gBAAA,MAAM,EAAE,eAAe;aACxB,CAAC;AACF,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACtD,SAAA;KACF;AAED;;;AAGG;AACH,IAAA,mBAAmB,CAAC,KAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;QAClE,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC3C,SAAA;KACF;AAED;;;;AAIG;IACH,gBAAgB,CAAC,IAAY,EAAE,aAAkB,EAAA;AAC/C,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI;AACP,gBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CACxC,IAAI,CAAC,MAAM,EACX,aAAa,EACb,SAAS,CACV,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAC/C,IAAI,CAAC,YAAY,EACjB,aAAa,EACb,KAAK,CACN,CAAC;AACF,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAC9B,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAClC,KAAK,CACN,CAAC;AACF,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,EAAE,CAAC;AACvC,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,EAAE,CAAC;gBACvC,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,gBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;AAChC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AACpC,gBAAA,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAC1D,oBAAA,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;AAChC,oBAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,wBAAA,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;4BAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAChD,CAAC,UAAe,KAAK,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAC3D,CAAC;AACF,4BAAA,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;gCACf,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1C,6BAAA;AACH,yBAAC,CAAC,CAAC;AACJ,qBAAA;AACH,iBAAC,CAAC,CAAC;gBAEH,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,IAAI,OAAO,EAAE,QAAQ,CAAC;gBACtB,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBAC3D,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC5D,oBAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAClD,IAAI,CAAC,kBAAkB,EACvB,QAAQ,EACR,UAAU,CACX,CAAC;AACH,iBAAA;AAAM,qBAAA;oBACL,OAAO,GAAG,aAAa,CAAC;AACzB,iBAAA;AACD,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAC9C,IAAI,CAAC,aAAa,EAClB,OAAO,EACP,cAAc,CACf,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AAER,YAAA,KAAK,UAAU;gBACb,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAC9C,IAAI,CAAC,YAAY,EACjB,CAAC,aAAa,CAAC,SAAS,CAAC,EACzB,WAAW,CACZ,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,IAAI,eAAe,EAAE,gBAAgB,CAAC;gBACtC,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;oBACpE,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACrE,oBAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CACzC,IAAI,CAAC,kBAAkB,EACvB,gBAAgB,EAChB,UAAU,CACX,CAAC;AACF,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CACpC,IAAI,CAAC,SAAS,EACd,eAAe,EACf,cAAc,CACf,CAAC;AACF,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CACxC,IAAI,CAAC,UAAU,EAAE,YAAY,CAC9B,CAAC;AACH,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CACpC,IAAI,CAAC,SAAS,EACd,aAAa,EACb,aAAa,CACd,CAAC;AACH,iBAAA;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,QAAQ;gBACX,IAAI,mBAAmB,EAAE,oBAAoB,CAAC;gBAC9C,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAClC,aAAa,EAAE,KAAK,EACpB,WAAW,CACZ,CAAC;oBACF,oBAAoB,GAAG,IAAI,CAAC,SAAS,CACnC,aAAa,EAAE,MAAM,EACrB,UAAU,CACX,CAAC;AACF,oBAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAC7C,IAAI,CAAC,kBAAkB,EACvB,oBAAoB,EACpB,UAAU,CACX,CAAC;AACF,oBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CACxC,IAAI,CAAC,SAAS,EACd,mBAAmB,EACnB,cAAc,CACf,CAAC;AACF,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAC5C,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAClC,CAAC;AACH,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CACxC,IAAI,CAAC,SAAS,EACd,aAAa,EACb,aAAa,CACd,CAAC;AACH,iBAAA;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,WAAW;AACd,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAC5B,IAAI,CAAC,YAAY,EACjB,aAAa,EACb,WAAW,CACZ,CAAC;gBACF,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,oBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC;wBACrC,IAAI,EAAE,IAAI,CAAC,YAAY;wBACvB,SAAS;AACV,qBAAA,CAAC,CAAC;AACH,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,OAAO;AACR,iBAAA;gBACD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG;oBAC3D,IAAI,EAAE,IAAI,CAAC,YAAY;oBACvB,SAAS;iBACV,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,sBAAsB;AACzB,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW;AAC3C,oBAAA,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC;AAE7B,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW;AAC3C,oBAAA,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM;AACR,YAAA,KAAK,qBAAqB;AACxB,gBAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW;AAC7C,oBAAA,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC;gBAE7B,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,IAAI,CAAC,UAAU,CAAC,iBAAiB;AAC/B,oBAAA,aAAa,EAAE,iBAAiB,IAAI,EAAE,CAAC;gBACzC,IAAI,CAAC,UAAU,CAAC,aAAa;AAC3B,oBAAA,aAAa,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC,CAAC;gBAChD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,aAAa,EAAE,aAAa,IAAI,CAAC,CAAC;gBACjE,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAC1C,IAAI,CAAC,YAAY,EACjB,aAAa,EACb,WAAW,CACZ,CAAC;gBACF,MAAM;AACR,YAAA,KAAK,cAAc;gBACjB,IAAI,SAAS,EAAE,cAAc,CAAC;gBAC9B,IAAI,CAAC,UAAU,CAAC,iBAAiB;oBAC/B,aAAa,EAAE,qBAAqB,CAAC;gBACvC,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBAC7D,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAClE,oBAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CACjD,IAAI,CAAC,kBAAkB,EACvB,cAAc,EACd,UAAU,CACX,CAAC;AACH,iBAAA;AAAM,qBAAA;oBACL,SAAS,GAAG,aAAa,CAAC;AAC3B,iBAAA;AACD,gBAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CACjD,IAAI,CAAC,aAAa,EAClB,SAAS,EACT,cAAc,CACf,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,iBAAiB;AACpB,gBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAC1D,aAAa,EAAE,kBAAkB,CAClC,CAAC;AACF,gBAAA,IAAI,CAAC,sBAAsB,GAAG,aAAa,EAAE,kBAAkB,CAAC;gBAEhE,MAAM;AACT,SAAA;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAED,IAAA,sBAAsB,CAAC,gBAAqB,EAAA;AAC1C,QAAA,OAAO,gBAAgB,EAAE,GAAG,CAAC,CAAC,MAAW,KAAK,MAAM,EAAE,WAAW,CAAC,CAAC;KACpE;;AAGD,IAAA,gBAAgB,CAAC,aAAmB,EAAA;AAClC,QAAA,IAAI,oBAAoB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AACpE,QAAA,OAAO,oBAAoB,CAAC;KAC7B;AAED;;;;;AAKG;AACH,IAAA,MAAM,CAAC,IAAS,EAAE,KAAU,EAAE,WAAiB,EAAA;AAC7C,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI;gBACP,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CACnD,CAAC,EAAO,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CACrC,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC/C,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAC9D,CAAC,KAAU,KAAK,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CACvD,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,gBAAgB;gBACnB,MAAM,UAAU,GACd,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,SAAS,CAC9C,CAAC,KAAU,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CACjD,CAAC;gBACJ,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC7D,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAC/D,CAAC,QAAa,KAAK,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CACzD,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CACrD,CAAC,QAAa,KAAK,QAAQ,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAC7D,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,cAAc;gBACjB,MAAM,YAAY,GAAQ,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,CAChE,CAAC,KAAU,KAAK,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,QAAQ,CACnD,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACtD,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CACxC,IAAI,CAAC,UAAU,EAAE,YAAY,CAC9B,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,QAAQ;gBACX,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAC/D,CAAC,SAAc,KAAK,SAAS,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAC/D,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,kBAAkB;gBACrB,MAAM,gBAAgB,GACpB,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,CAC1C,CAAC,KAAU,KAAK,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,QAAQ,CACnD,CAAC;gBACJ,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC9D,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAC5C,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAClC,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,WAAW;AACd,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CACtD,WAAW,CACZ,CAAC,SAAS,CAAC,SAAS,CACnB,CAAC,QAAa,KAAK,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CACzD,CAAC;AACF,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,MAAM,CAC7D,cAAc,EACd,CAAC,CACF,CAAC;AACF,gBAAA,IACE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EACpE;oBACA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC1D,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAChE,CAAC,QAAa,KAAK,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CACrD,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC5D,gBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC;AAC9B,gBAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,oBAAA,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;wBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAClD,CAAC,UAAe,KAAK,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAC3D,CAAC;AACF,wBAAA,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE;4BACjB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC/C,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACD,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAC9B,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAClC,KAAK,CACN,CAAC;gBACF,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CACtC,CAAC,EACD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CACzC,CAAC;gBAEF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACjD,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,EAAE,CAAC;AACvC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AACpC,gBAAA,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAEhC,MAAM;AACR,YAAA,KAAK,aAAa;AAChB,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,EAAE,CAAC;AACvC,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC;AAClC,gBAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC;gBACjC,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CACpD,CAAC,OAAY,KAAK,OAAO,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,CAC5C,CAAC;AACF,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AAER,YAAA,KAAK,QAAQ;gBACX,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBACtD,MAAM;AACR,YAAA,KAAK,cAAc;gBACjB,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,SAAS,CACrE,CAAC,KAAU,KAAK,KAAK,EAAE,WAAW,IAAI,KAAK,EAAE,WAAW,CACzD,CAAC;gBACF,IAAI,CAAC,UAAU,EAAE,oBAAoB,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,MAAM,gBAAgB,GACpB,IAAI,CAAC,UAAU,EAAE,oBAAoB,EAAE,SAAS,CAC9C,CAAC,KAAU,KAAK,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,QAAQ,CACnD,CAAC;gBACJ,IAAI,CAAC,UAAU,EAAE,oBAAoB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;gBACnE,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,iBAAiB;gBACpB,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,CACrE,CAAC,QAAa,KAAK,KAAK,KAAK,QAAQ,CACtC,CAAC;gBACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAC/D,CAAC,IAAI,KAAK,IAAI,EAAE,WAAW,KAAK,KAAK,CACtC,CAAC;gBACF,MAAM;AACT,SAAA;KACF;AACD;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,YAAY,GAAQ,EAAE,CAAC;QAC3B,IAAI,YAAY,GAAQ,EAAE,CAAC;QAC3B,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC/D,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAC/B,YAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACtC,SAAC,CAAC,CAAC;AACH,QAAA,YAAY,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAClC,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;AACH,QAAA,eAAe,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AACrC,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;QAEH,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1C,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1C,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;;QAGxC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAClC,CAAC,IAAS,KACR,EACE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;YACvC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CACvC,CACJ,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;AACnC,YAAA,OAAO,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAC7B,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;AACrC,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AAC1B,SAAA;;QAED,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAClC,CAAC,IAAS,KACR,EACE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;YACvC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CACxC,CACJ,CAAC;KACH;AAED;;;;;AAKG;AACH,IAAA,OAAO,CAAC,IAAW,EAAE,GAAU,EAAE,GAAW,EAAA;QAC1C,MAAM,IAAI,GAAQ,EAAE,CAAC;AACrB,QAAA,GAAG,EAAE,OAAO,CAAC,CAAC,OAAY,KAAI;AAC5B,YAAA,MAAM,KAAK,GAAG,IAAI,EAAE,SAAS,CAC3B,CAAC,WAAgB,KAAK,WAAW,CAAC,GAAG,CAAC,IAAI,OAAO,CAClD,CAAC;AACF,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACH,SAAS,CAAC,IAAW,EAAE,GAAW,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACtB,YAAA,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;AACZ,gBAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED;;;AAGG;AACH,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;AAED;;AAEG;AACH,IAAA,uBAAuB,CAAC,KAAU,EAAE,IAAA,GAA8B,QAAQ,EAAA;;AAExE,QAAA,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,KAAK,EAAE,iBAAiB;YACjC,MAAM,EAAE,KAAK,EAAE,2BAA2B;YAC1C,WAAW,EAAE,KAAK,EAAE,iBAAiB;AACrC,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,gBAAgB,EAAE,eAAe;AACjC,YAAA,UAAU,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,GAAG,KAAK,CAAC,WAAW,GAAG,YAAY;AACtE,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,SAAS,EAAE,IAAI,CAAC,KAAK,CACnB,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CACrD;AACD,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CACxC,KAAK,CAAC,WAAW,IAAI,EAAE,GAAG,KAAK,CAAC,WAAW,GAAG,YAAY,CAC3D;YACD,WAAW,EAAE,KAAK,CAAC,cAAc;SAClC,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC1B;AAED;;;AAGG;AACH,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC;QAClD,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC,WAAW;aAChD,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,2BAA2B,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;AAC/C,QAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAGA,QAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,MAAM,CACzE,iBAAiB,CAClB,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC1C,QAAA,MAAM,OAAO,GAAG;YACd,iBAAiB,EAAE,KAAK,CAAC,OAAO;YAChC,cAAc,EAAE,KAAK,CAAC,UAAU;YAChC,oBAAoB,EAAE,KAAK,CAAC,MAAM;YAClC,iBAAiB,EAAE,KAAK,CAAC,WAAW;YACpC,iBAAiB,EAAE,KAAK,CAAC,gBAAgB;YACzC,gBAAgB,EAAE,KAAK,CAAC,SAAS;AACjC,YAAA,gBAAgB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACtC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;AACF,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;KACnC;AAED;;;AAGG;AACH,IAAA,mBAAmB,CAAC,KAAU,EAAA;QAC5B,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,KAAK,EAAE,iBAAiB,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,KAAK,EAAE,cAAc,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,EAAE,oBAAoB,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,EAAE,iBAAiB,CAAC;QACxD,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,KAAK,EAAE,iBAAiB,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,KAAK,EAAE,gBAAgB,CAAC;AAC1D,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,GAAG,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,gBAAgB,CAAC,cAAc,GAAG,KAAK,EAAE,OAAO,CAAC;AACtD,QAAA,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,GAAG,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,EAAE,WAAW;cAC1C,KAAK,CAAC,WAAW;cACjB,iDAAiD,CAAC;KACvD;AAED,IAAA,+BAA+B,CAAC,KAAU,EAAA;;AAExC,QAAA,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,KAAK,EAAE,wBAAwB;YACxC,MAAM,EAAE,KAAK,EAAE,kCAAkC;YACjD,WAAW,EAAE,KAAK,EAAE,iBAAiB;AACrC,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,gBAAgB,EAAE,eAAe;AACjC,YAAA,UAAU,EACR,KAAK,CAAC,gBAAgB,IAAI,EAAE,GAAG,KAAK,CAAC,gBAAgB,GAAG,YAAY;AACtE,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,SAAS,EAAE,IAAI,CAAC,KAAK,CACnB,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CACrD;AACD,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CACxC,KAAK,CAAC,gBAAgB,IAAI,EAAE,GAAG,KAAK,CAAC,gBAAgB,GAAG,YAAY,CACrE;YACD,WAAW,EAAE,KAAK,CAAC,sBAAsB;SAC1C,CAAC;AAEF,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;KAClC;IAED,sBAAsB,GAAA;QACpB,IAAI,CAAC,wBAAwB,GAAG;AAC9B,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,mBAAmB,EAAE,CAAC;AACtB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,SAAS,EAAE,eAAe;AAC1B,YAAA,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AAClD,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AACtD,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,sBAAsB,EAAE,CAAC;SAC1B,CAAC;AACF,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,UAAU,CAAC,kCAAkC,GAAG,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,YAAY,CAAC;AAChD,QAAA,IAAI,CAAC,4BAA4B;AAC/B,YAAA,6CAA6C,CAAC;KACjD;AAED;;;AAGG;AACH,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,KAAK,CAAC,OAAO,CAAC;AACzD,QAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,CAAC,kCAAkC,GAAG,KAAK,CAAC,MAAM,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC;AACpD,QAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAGA,QAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,MAAM,CACzE,iBAAiB,CAClB,CAAC;AAEF,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAClD,QAAA,MAAM,OAAO,GAAG;YACd,iBAAiB,EAAE,KAAK,CAAC,OAAO;YAChC,cAAc,EAAE,KAAK,CAAC,UAAU;YAChC,oBAAoB,EAAE,KAAK,CAAC,MAAM;YAClC,iBAAiB,EAAE,KAAK,CAAC,WAAW;YACpC,iBAAiB,EAAE,KAAK,CAAC,gBAAgB;YACzC,gBAAgB,EAAE,KAAK,CAAC,SAAS;AACjC,YAAA,gBAAgB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACtC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;AACF,QAAA,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;KAC3C;AAED;;;AAGG;AACH,IAAA,2BAA2B,CAAC,KAAU,EAAA;QACpC,IAAI,CAAC,wBAAwB,CAAC,OAAO,GAAG,KAAK,EAAE,iBAAiB,CAAC;QACjE,IAAI,CAAC,wBAAwB,CAAC,UAAU,GAAG,KAAK,EAAE,cAAc,CAAC;QACjE,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,KAAK,EAAE,oBAAoB,CAAC;QACnE,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,KAAK,EAAE,iBAAiB,CAAC;QAChE,IAAI,CAAC,wBAAwB,CAAC,SAAS,GAAG,KAAK,EAAE,iBAAiB,CAAC;QACnE,IAAI,CAAC,wBAAwB,CAAC,SAAS,GAAG,KAAK,EAAE,gBAAgB,CAAC;QAClE,IAAI,CAAC,wBAAwB,CAAC,cAAc;AAC1C,YAAA,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,EAAE,OAAO,CAAC;AAC9D,QAAA,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,GAAG,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK,EAAE,WAAW;cAClD,KAAK,CAAC,WAAW;cACjB,6CAA6C,CAAC;KACnD;AAED;;AAEG;IACH,cAAc,GAAA;QACZ,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QACzC,MAAM,EAAE,GAAG,cAAc,CAAC;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1D,IACE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE;AACvC,aAAC,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB;iBACjC,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;oBAC9C,CAAC,IAAI,CAAC,YAAY;qBACjB,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;wBAC9C,IAAI,CAAC,UAAU,EAAE,qBAAqB,EAAE,MAAM,GAAG,CAAC;AAClD,wBAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1B,aAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB;AACjC,gBAAA,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;iBAC9C,CAAC,IAAI,CAAC,YAAY;qBAChB,IAAI,CAAC,UAAU,EAAE,qBAAqB,EAAE,MAAM,IAAI,CAAC;AAClD,wBAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1B,aAAC,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB;gBACxC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/C,aAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB;gBACvC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC;AAC9C,aAAC,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM;gBAChE,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM;AACzD,gBAAA,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC;aAC/B,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC;AAClE,YAAA,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM;aACrC,IAAI,CAAC,oBAAoB;gBACxB,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,EAClD;AACA,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AAED;;;AAGG;IACH,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAClC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClC,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC3D,SAAA;AACD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,aAAa,GAAQ,IAAI,CAAC,uBAAuB,CACnD,MAAM,CAAC,iBAAiB,CACzB,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,MAAM,CAAC,aAAa,CAAC;QACnE,IAAI,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AACzD,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACvC,OAAO,IAAI,CAAC,QAAQ,CAAC;YACrB,OAAO,IAAI,CAAC,QAAQ,CAAC;YACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC;YAC9B,OAAO,IAAI,CAAC,OAAO,CAAC;AACpB,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC,CAAC;QAEH,IAAI,qBAAqB,GAAG,SAAS,CACnC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CACvC,CAAC;QACF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AAC9D,YAAA,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;AACxB,YAAA,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC7B,YAAA,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,iBAAiB,CAAC;AAC/C,YAAA,GAAG,CAAC,SAAS,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;YACnD,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9D,YAAA,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;AAC5B,YAAA,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE,MAAM,CAAC;YAC7B,OAAO,GAAG,CAAC,QAAQ,CAAC;YACpB,OAAO,GAAG,CAAC,QAAQ,CAAC;YACpB,OAAO,GAAG,CAAC,iBAAiB,CAAC;YAC7B,OAAO,GAAG,CAAC,OAAO,CAAC;YACnB,OAAO,GAAG,CAAC,SAAS,CAAC;YACrB,OAAO,GAAG,CAAC,MAAM,CAAC;AAClB,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;AACzE,QAAA,MAAM,oBAAoB,GACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACjE,QAAA,MAAM,qBAAqB,GACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACtH,QAAA,MAAM,OAAO,GAAG;YACd,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,KAAK,EAAE,MAAM,CAAC,WAAW;YACzB,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,GAAG,CAAC,GAAG,CAAC;YAClD,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,GAAG,CAAC,GAAG,CAAC;YACrD,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAAC;AACrE,YAAA,SAAS,EAAE,aAAa;YACxB,YAAY,EAAE,IAAI,CAAC,SAAS,CAC1B,MAAM,EAAE,iBAAiB,EACzB,aAAa,CACd,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;AACzB,YAAA,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,EAAE,KAAK,CAAC,IAAI,EAAE;AACxE,YAAA,WAAW,EAAE,CAAC;YAEd,oBAAoB,EAAE,MAAM,CAAC,sBAAsB;AACjD,kBAAE,gBAAgB;AAClB,kBAAE,EAAE;YAEN,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;YAE9C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;kBACvC,MAAM,CAAC,iBAAiB;AAC1B,kBAAE,EAAE;AACN,YAAA,cAAc,EAAE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,cAAc,GAAG,EAAE;YACrE,2BAA2B,EAAE,MAAM,CAAC,iBAAiB;kBACjD,MAAM,CAAC,2BAA2B;AACpC,kBAAE,CAAC;AACL,YAAA,WAAW,EAAE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,GAAG,EAAE;YAC/D,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;kBACvC,MAAM,CAAC,iBAAiB;AAC1B,kBAAE,EAAE;;YAEN,SAAS,EAAEA,QAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAEtD,mBAAmB,EACjB,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,iBAAiB,CAAC,WAAW;AACzD,kBAAE,aAAa;AACf,kBAAE,EAAE;YACR,aAAa,EACX,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,iBAAiB,CAAC,WAAW;AACzD,kBAAE,MAAM,CAAC,iBAAiB,CAAC,WAAW;AACtC,kBAAE,EAAE;AACR,YAAA,gBAAgB,EACd,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1D,QAAQ,EACN,MAAM,CAAC,YAAY;AACjB,iBAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW;AACnC,oBAAA,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC;gBACvC,UAAU,CAAC,CAAC,CAAC;AACb,kBAAE,CAAC;AACH,kBAAE,CAAC;AAEP,YAAA,iBAAiB,EACf,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,wBAAwB;kBAClD,MAAM,CAAC,iBAAiB;AAC1B,kBAAE,CAAC;AACP,YAAA,gBAAgB,EACd,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,wBAAwB;kBAClD,MAAM,CAAC,gBAAgB;AACzB,kBAAE,EAAE;AACR,YAAA,wBAAwB,EACtB,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,wBAAwB;kBAClD,MAAM,CAAC,wBAAwB;AACjC,kBAAE,EAAE;AACR,YAAA,qBAAqB,EACnB,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,wBAAwB;kBAClD,MAAM,CAAC,qBAAqB;AAC9B,kBAAE,EAAE;AACR,YAAA,kCAAkC,EAChC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,wBAAwB;kBAClD,MAAM,CAAC,kCAAkC;AAC3C,kBAAE,CAAC;AAEP,YAAA,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,wBAAwB;AACjD,kBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE;AAC1D,kBAAE,EAAE;AACN,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;YAExC,WAAW,EAAE,MAAM,CAAC,YAAY;AAC9B,kBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE;AACjE,kBAAE,EAAE;YACN,OAAO,EAAE,MAAM,CAAC,YAAY;AAC1B,kBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE;AAC7D,kBAAE,EAAE;AAEN,YAAA,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;AACjD,YAAA,aAAa,EAAE,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,GAAG,CAAC;AAC9D,YAAA,YAAY,EAAE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC;AAE3D,YAAA,kBAAkB,EAAE,CAAC;YAErB,qBAAqB,EAAE,MAAM,CAAC,+BAA+B,GAAG,CAAC,GAAG,CAAC;YACrE,gBAAgB,EAAE,IAAI,CAAC,aAAa;YACpC,qBAAqB,EAAE,IAAI,CAAC,iBAAiB;AAC7C,YAAA,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,EAAE;YACrD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;AAC/C,YAAA,cAAc,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,cAAc,GAAG,EAAE;YAC9D,UAAU,EAAE,MAAM,CAAC,iBAAiB;kBAChC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;oBACnC,OAAO;wBACL,aAAa,EAAE,GAAG,CAAC,aAAa;wBAChC,WAAW,EAAE,GAAG,CAAC,WAAW;qBAC7B,CAAC;AACJ,iBAAC,CAAC;AACF,kBAAE,EAAE;AACN,YAAA,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAC9C,CAAC,GAAQ,KAAK,GAAG,CAAC,SAAS,CAC5B;YACD,oBAAoB,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG;kBACnD,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACrC,kBAAE,EAAE;AACN,YAAA,WAAW,EAAE,WAAW;YACxB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,MAAM;kBACnD,MAAM,EAAE,aAAa;AACvB,kBAAE,SAAS;AACb,YAAA,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,CAAC;YAClD,oBAAoB,EAAE,MAAM,CAAC,iBAAiB;AAC5C,kBAAE,EAAE;kBACF,oBAAoB,IAAI,EAAE;YAC9B,oBAAoB,EAAE,MAAM,CAAC,iBAAiB;AAC5C,kBAAE,EAAE;kBACF,qBAAqB,IAAI,EAAE;AAC/B,YAAA,eAAe,EAAE,MAAM,CAAC,sBAAsB,IAAI,KAAK;YACvD,cAAc,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SACpD,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAChD,CAAC,GAAQ,KAAI;AACX,gBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC;AACxB,gBAAA,IAAI,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE;AAClC,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,oBAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAClD,OAAO;AACR,iBAAA;gBAED,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AACzD,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,iBAAA;AACH,aAAC,EACD,CAAC,GAAG,KAAI;AACN,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,aAAC,CACF,CAAC;AACH,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE;AACvB,YAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,EAAE;gBACjC,OAAO,OAAO,CAAC,SAAS,CAAC;AACzB,gBAAA,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAAC;AAChC,aAAA;AACD,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAC/D,CAAC,GAAQ,KAAI;AACX,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC;gBAExB,IAAI,IAAI,CAAC,0BAA0B,EAAE;AACnC,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACjC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnC,IAAI,IAAI,CAAC,oBAAoB,EAAE;wBAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,0CAA0C,EAC1C,SAAS,CACV,CAAC;AACH,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;AAC9D,qBAAA;oBACD,MAAM,GAAG,GACP,IAAI,CAAC,OAAO,GAAG,0BAA0B,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC5D,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;;AAGlD,iBAAA;AACH,aAAC,EACD,CAAC,GAAG,KAAI;AACN,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,aAAC,CACF,CAAC;AACH,SAAA;KACF;AAED,IAAA,sBAAsB,CAAC,QAAa,EAAA;QAClC,IAAI,GAAG,GAAW,EAAE,CAAC;QACrB,IACE,QAAQ,CAAC,QAAQ;AACjB,aAAC,QAAQ,CAAC,aAAa,KAAK,KAAK;gBAC/B,QAAQ,CAAC,aAAa,KAAK,KAAK;gBAChC,QAAQ,CAAC,aAAa,KAAK,MAAM;AACjC,gBAAA,QAAQ,CAAC,aAAa,KAAK,MAAM,CAAC,EACpC;AACA,YAAA,IAAI,CAAC,aAAa;AACf,iBAAA,WAAW,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;AACrE,iBAAA,SAAS,CACR,CAAC,GAAQ,KAAI;AACX,gBAAA,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACxB,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;AACzC,wBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,wBAAA,IACE,QAAQ,CAAC,aAAa,KAAK,MAAM;AACjC,4BAAA,QAAQ,CAAC,aAAa,KAAK,MAAM,EACjC;AACA,4BAAA,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;AACrD,yBAAA;AAAM,6BAAA,IACL,QAAQ,CAAC,aAAa,KAAK,KAAK;AAChC,4BAAA,QAAQ,CAAC,aAAa,KAAK,KAAK,EAChC;AACA,4BAAA,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC7D,yBAAA;wBACD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClD,qBAAA;AACF,iBAAA;AACH,aAAC,EACD,CAAC,GAAQ,KAAI;AACX,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,6GAA6G,EAC7G,OAAO,CACR,CAAC;AACJ,aAAC,CACF,CAAC;AACL,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,6GAA6G,EAC7G,OAAO,CACR,CAAC;AACH,SAAA;KACF;AAED;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;;KAE/B;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,GAAQ,EAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;AACR,SAAA;AACD,QAAA,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACjB,YAAA,IAAI,UAAU,GAAG;gBACf,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;aACN,CAAC;AACF,YAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;AACpD,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClE,YAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,CAAG,EAAA,SAAS,IAAI,UAAU,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC;AAC3D,SAAA;AACD,QAAA,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;AAC/C,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;KAC/B;IACD,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,uBAAuB,GAAA;QACrB,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;QACjE,IAAI,IAAI,CAAC,0BAA0B,EAAE;AACnC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,YAAA,YAAY,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAChD,SAAA;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QAEnB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CACpD,CAAC,GAAQ,KAAI;AACX,gBAAA,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAC/C,CAAC,EAAO,KAAK,EAAE,CAAC,QAAQ,CACzB,CAAC;AACF,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAClD,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,EAAE,uBAAuB,EAAE,GAAG,CAC3D,CAAC,QAAa,KAAK,QAAQ,EAAE,GAAG,CACjC,CAAC;AACF,gBAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,EAAE,SAAS,CAAC;AAC5C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC3C,gBAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACnC,gBAAA,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;AAC3C,gBAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrC,aAAC,EACD,CAAC,KAAK,KAAI;AACR,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvB,aAAC,CACF,CAAC;AAGH,SAAA;KACF;IAED,kBAAkB,CAAC,IAAS,EAAE,WAAgB,EAAA;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AAC/D,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AAC/B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;AACvC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,IAAI,CAAC;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC;YACtB,OAAO,IAAI,CAAC,QAAQ,CAAC;AAErB,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AAClE,YAAA,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;AACxB,YAAA,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC;AAC7B,YAAA,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC,kBAAkB,CAAC;AAC/C,YAAA,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,kBAAkB,CAAC;AACvC,YAAA,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC;AAC5B,YAAA,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,UAAU,CAAC;YAE7B,OAAO,GAAG,CAAC,IAAI,CAAC;YAChB,OAAO,GAAG,CAAC,SAAS,CAAC;YACrB,OAAO,GAAG,CAAC,kBAAkB,CAAC;YAC9B,OAAO,GAAG,CAAC,SAAS,CAAC;YACrB,OAAO,GAAG,EAAE,UAAU,CAAC;AACvB,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CACpD,CAAC,EAAO,KAAK,EAAE,EAAE,WAAW,CAC7B,CAAC;AACF,QAAA,MAAM,SAAS,GAAG,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;AAElE,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAC/C,IAAI,CAAC,YAAY,EACjB,WAAW,EACX,KAAK,CACN,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;QAC5C,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;aAC3C,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK;aACxC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAE1E,IAAI,CAAC,UAAU,CAAC,iBAAiB;YAC/B,iBAAiB,CAAC,MAAM,GAAG,CAAC;AAC1B,kBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,EAAE,cAAc,CAAC;AACrE,kBAAE,EAAE,CAAC;QAET,IAAI,CAAC,UAAU,CAAC,qBAAqB;YACnC,SAAS,EAAE,MAAM,GAAG,CAAC;AACnB,kBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,KAAK,CAAC;kBACvD,EAAE,CAAC;AAET,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ;AACzC,cAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;cAC9D,EAAE,CAAC;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;AAC5C,cAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC;cACpE,EAAE,CAAC;QACP,IAAI,CAAC,UAAU,CAAC,gBAAgB;AAC9B,YAAA,IAAI,EAAE,qBAAqB,EAAE,MAAM,GAAG,CAAC;AACrC,kBAAE,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,kBAAkB,EACvB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,CACN;kBACC,EAAE,CAAC;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AACpC,cAAE,IAAI,CAAC,OAAO,CACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EACvB,gBAAgB,CACjB;cACC,EAAE,CAAC;QACP,IAAI,CAAC,UAAU,CAAC,YAAY;AAC1B,YAAA,IAAI,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC;AAChC,kBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC;kBACpE,EAAE,CAAC;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,KAAK,CAAC;AACrE,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,KAAK,CAAC;AACzE,QAAA,IAAI,CAAC,UAAU,CAAC,+BAA+B,GAAG,IAAI,CAAC,qBAAqB;AAC1E,cAAE,IAAI;cACJ,KAAK,CAAC;QACV,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC,oBAAoB;AAC7D,cAAE;AACA,gBAAA,WAAW,EAAE,gBAAgB;AAC9B,aAAA;AACD,cAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS;AAC5C,cAAEA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC;cACtBA,QAAM,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW;cAChD,IAAI,CAAC,WAAW;cAChB,EAAE,CAAC;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB;AAC1D,cAAE;AACA,gBAAA,WAAW,EAAE,aAAa;gBAC1B,WAAW,EAAE,IAAI,CAAC,aAAa;AAChC,aAAA;cACC,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,wBAAwB;AACtC,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AACxD,QAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,KAAK,CAAC;QACpE,IAAI,CAAC,UAAU,CAAC,cAAc;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,YAAY;AAC1B,YAAA,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AACtC,gBAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AACpC,gBAAA,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC;AAC7C,gBAAA,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AACzC,kBAAE,IAAI;kBACJ,KAAK,CAAC;QACZ,IAAI,CAAC,UAAU,CAAC,sBAAsB;AACpC,YAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AACtD,QAAA,IAAI,CAAC,aAAa;AAChB,YAAA,IAAI,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,gBAAgB,GAAG,EAAE,CAAC;AACnE,QAAA,IAAI,CAAC,iBAAiB;AACpB,YAAA,IAAI,EAAE,qBAAqB,EAAE,MAAM,GAAG,CAAC;kBACnC,IAAI,EAAE,qBAAqB;kBAC3B,EAAE,CAAC;QACT,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC;AAC7D,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,KAAK,CAAC;;QAEjE,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AACrD,QAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,OAAO;AAC3C,YAAA,IAAI,EAAE,iBAAiB,IAAI,IAAI,EAAE,iBAAiB,EAAE,MAAM;AACxD,kBAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;kBAC1B,EAAE,CAAC;AACT,QAAA,IAAI,CAAC,mBAAmB;AACtB,YAAA,IAAI,EAAE,iBAAiB,IAAI,IAAI,EAAE,iBAAiB,EAAE,MAAM;AACxD,kBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;kBACtD,EAAE,CAAC;QACT,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;AACD,IAAA,UAAU,CAAC,KAAa,EAAA;QACtB,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACrC,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;KACtC;AACD,IAAA,SAAS,CAAC,KAAU,EAAA;AAClB,QAAA,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,EAAE,EAAE;AAC/C,gBAAA,IAAI,CAAC,mBAAmB;AACtB,oBAAA,6IAA6I,CAAC;AACjJ,aAAA;AACF,SAAA;aAAM,IACL,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,EAAE,EAC3C;AACA,YAAA,IAAI,CAAC,mBAAmB;AACtB,gBAAA,sEAAsE,CAAC;AAC1E,SAAA;KACF;;AAGD,IAAA,qBAAqB,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KAC1C;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,eAAe,EAAE,CAAC;;AAExB,SAAA;KACF;AAED,IAAA,wBAAwB,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AAC1D,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,KAAK,EAAE,WAAW,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,KAAK,EAAE,cAAc,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,KAAK,EAAE,aAAa,CAAC;QACrD,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC;KACtC;IACD,oBAAoB,CAAC,iBAAsB,EAAE,IAAa,EAAA;AACxD,QAAA,IAAI,CAAC,qBAAqB;AACvB,aAAA,wBAAwB,CAAC,iBAAiB,CAAC,aAAa,CAAC;AACzD,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;gBACnB,MAAM,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAC1C,CAAC,GAAQ,KAAK,GAAG,CAAC,GAAG,IAAI,iBAAiB,CAAC,WAAW,CACvD,CAAC;AAEF,gBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG;AAC3B,oBAAA;wBACE,WAAW,EAAE,iBAAiB,CAAC,WAAW;wBAC1C,aAAa,EAAE,iBAAiB,CAAC,aAAa;AAC9C,wBAAA,iBAAiB,EAAE;4BACjB,EAAE,EAAE,iBAAiB,CAAC,aAAa;AACnC,4BAAA,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe;AACvC,4BAAA,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc;AACjC,yBAAA;AACD,wBAAA,gBAAgB,EAAE,eAAe;AAClC,qBAAA;iBACF,CAAC;AACH,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAED,eAAe,GAAA;QACb,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAC1C,IAAI,CAAC,YAAY,EACjB,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAChC,WAAW,CACZ,CAAC;KACH;AAED,IAAA,uBAAuB,CAAC,KAAU,EAAA;AAChC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAC9B,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAClC,KAAK,CACN,CAAC;AACF,YAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACpC,SAAA;KACF;AAED,IAAA,uBAAuB,CAAC,YAAiB,EAAA;QACvC,IAAI,UAAU,GAAQ,EAAE,CAAC;AACzB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9D,QAAA,YAAY,EAAE,OAAO,CAAC,CAAC,QAAa,KAAI;YACtC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,QAAa,EAAE,KAAa,KAAI;AACpE,gBAAA,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAClB,gBAAA,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;AACrC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,UAAU,CAAC;KACnB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;;AAEpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7D,KACE,IAAI,CAAC,GAAG,KAAK,EACb,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,EACtD,CAAC,EAAE,EACH;AACA,YAAA,IACE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AAC3D,gBAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,EAChE;AACA,gBAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAC/C,YAAY,CACb,GAAG,CAAA,MAAA,EAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AACtB,aAAA;AACD,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAA,MAAA,EAAS,CAAC,GAAG,CACzE,EAAE,CAAC;AACN,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KAC1C;;IAGD,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;KACjC;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,gBAAgB,CAAC,SAAc,EAAE,KAAU,EAAA;AACzC,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,iBAAiB,GAAG;AACvB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,KAAK,EAAE,KAAK;SACb,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KAC1C;AAED,IAAA,cAAc,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAC3C,IAAI,KAAK,IAAI,CAAC,EAAE;;AAEd,YAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE;gBACpC,KAAK,EAAE,IAAI,CAAC,eAAe;AAC3B,gBAAA,MAAM,EAAE,EAAE;AACX,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,4BAA4B,CAAC,eAAoB,EAAA;QAC/C,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,IAAI,cAAc,GAAQ,EAAE,CAAC;QAC7B,WAAW,GAAG,MAAM,CAClB,eAAe,EAAE,YAAY,EAAE,MAAM,CACnC,eAAe,EAAE,aAAa,EAC9B,eAAe,EAAE,WAAW,CAC7B,EACD,WAAW,CACZ,CAAC;AACF,QAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;AACnC,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AAE5E,QAAA,cAAc,GAAG;AACf,YAAA,GAAG,IAAI,GAAG,CACR,eAAe,EAAE,oBAAoB,EAAE,MAAM,CAC3C,eAAe,EAAE,mBAAmB,CACrC,CACF;SACF,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAClC,IAAI,CAAC,kBAAkB,EACvB,cAAc,EACd,KAAK,CACN,CAAC;AACF,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CACvC,IAAI,CAAC,gBAAgB,EACrB,UAAU,CACX,CAAC;KACH;AAED,IAAA,2BAA2B,CAAC,aAAkB,EAAA;QAC5C,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,aAAa,EAAE,kBAAkB,CAAC;AACvE,QAAA,IAAI,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE;AAC/C,YAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CACjD,IAAI,CAAC,SAAS,EACd,aAAa,EAAE,oBAAoB,EACnC,WAAW,CACZ,CAAC;AACH,SAAA;AACD,QAAA,IAAI,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE;AAC/C,YAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CACjD,IAAI,CAAC,kBAAkB,EACvB,aAAa,EAAE,oBAAoB,EACnC,KAAK,CACN,CAAC;AACH,SAAA;KACF;IAED,wBAAwB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,IAAI,CAAC,EAAE;AAC3C,YAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC3C,SAAA;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,UAAU,CAAC,2BAA2B,GAAG,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,GAAG,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,GAAG,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,GAAG,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,oBAAoB;AACvB,YAAA,iDAAiD,CAAC;KACrD;AAGD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,IAAI,CAAC,eAAe;YAC3B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAChC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAE,aAAA,GAAyB,KAAK,EAAA;AACzD,QAAA,IAAI,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;AACtD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AAC/C,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa;AACf,aAAA,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;aAC9C,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,YAAA,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAED,gBAAgB,GAAA;AACd,QAAA,MAAM,MAAM,GACV,IAAI,CAAC,OAAO;YACZ,6BAA6B;AAC7B,YAAA,IAAI,CAAC,QAAQ;YACb,cAAc;YACd,IAAI,CAAC,UAAU,CAAC;AAClB,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;KAC3B;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KAC/D;AAED,IAAA,qBAAqB,CAAC,KAAiB,EAAA;AACrC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAI,EAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KACtE;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,iBAAiB,GAAI,EAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;KACtF;AAED,IAAA,aAAa,CAAC,OAAY,EAAA;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,CAChD,CAAC,IAAS,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,GAAG,CAC1C,CAAC;AACF,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC7C,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAGD,IAAA,cAAc,CAAC,QAAgB,EAAA;;;;KAI9B;+GA93EU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAsW,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAzQ,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAmQ,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAApX,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAqX,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAApW,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAqW,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAmBD,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChE7C,8izIA6sHA,EAAA,MAAA,EAAA,CAAA,6vEAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3G,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9L,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2W,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/D,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoE,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5D,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,+BAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,QAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2D,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzD,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0D,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,EAAA,4BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA9X,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhqHa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,8izIAAA,EAAA,MAAA,EAAA,CAAA,6vEAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;ohBAQrB,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBACkB,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBACb,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACE,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEuB,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;gBAE3B,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAgyE5D,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ME11E/B,mBAAmB,CAAA;AAO9B,IAAA,WAAA,GAAA,GAAiB;+GAPN,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCIY,qBAAqB,CAAA;AAKhC,IAAA,WAAA,CAAmB,cAAmC,EAAA;QAAnC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAqB;QAHtD,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QAIzB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;KADuC;AAS3D,IAAA,QAAQ,MAAY;IACpB,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB,EAAE,EAAE,CAAC,CAAC;AACP,QAAA,OAAO,KAAK,CAAC;KACd;IACD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;IACD,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IACD,WAAW,GAAA;AACT,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC;QACpE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC;AAClE,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,MAAM,EAAE;AACnD,YAAA,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;AACtC,YAAA,IAAI,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE;gBAChG,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AACzD,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC;AAC7D,gBAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AACjC,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,OAAO,EAAE;AACpD,YAAA,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;AAClF,YAAA,IAAI,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE;gBAChG,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AACzD,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC;AAC7D,gBAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AACjC,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,KAAK,EAAE;YAClD,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC;AAC9D,YAAA,IAAI,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE;gBAChG,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AACzD,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AACzD,gBAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AACjC,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,QAAQ,EAAE;YACrD,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC;AAC9D,YAAA,IAAI,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE;gBAChG,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AACzD,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC;AAC7D,gBAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AACjC,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,eAAe,EAAE;AAC5D,YAAA,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YAC1F,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,EAAE,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,YAAY,EAAE;AACzD,YAAA,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC1F,YAAA,IAAI,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE;gBAC1F,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC;AAC9D,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;AAC1D,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,KAAK,QAAQ,EAAE;AACrD,YAAA,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YAC1F,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC;AAC9D,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;KAChC;+GA7FU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA+X,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,sQCRlC,uaAMA,EAAA,MAAA,EAAA,CAAA,gTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5gB,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDEa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,uaAAA,EAAA,MAAA,EAAA,CAAA,gTAAA,CAAA,EAAA,CAAA;uGAOE,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc,CAAA;gBACI,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;;;MENhB,qBAAqB,CAAA;IAIhC,WAAoB,CAAA,KAAiB,EAAU,cAAmC,EAAA;QAA9D,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAAU,IAAc,CAAA,cAAA,GAAd,cAAc,CAAqB;KAAK;IAE3D,YAAY,GAAA;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACvF,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;KACvD;IAC0B,WAAW,GAAA;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACvF,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;KACvD;+GAbU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA4gB,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA,CAAA;gIAEU,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKsB,YAAY,EAAA,CAAA;sBAAvC,YAAY;uBAAC,YAAY,CAAA;gBAIC,WAAW,EAAA,CAAA;sBAArC,YAAY;uBAAC,WAAW,CAAA;;;MCGd,mBAAmB,CAAA;IAU9B,IAA6B,sBAAsB,CAAC,OAAY,EAAA;AAC9D,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,IAAI,IAAI,CAAC;QAClC,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE;YAC3C,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,SAAA;KACF;AA4hBD,IAAA,WAAA,CAAoB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QA1iB1D,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QACP,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;QACrB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAClB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QACrC,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAS1B,IAAqB,CAAA,qBAAA,GAAY,IAAI,CAAC;QAC/C,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QACrC,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAc,CAAA,cAAA,GAAW,aAAa,CAAC;AAEvC,QAAA,IAAA,CAAA,gBAAgB,GAAQ;AACtB,YAAA,GAAG,EAAE,2EAA2E;AAChF,YAAA,GAAG,EAAE,6EAA6E;AAClF,YAAA,GAAG,EAAE,qFAAqF;AAC1F,YAAA,GAAG,EAAE,6EAA6E;AAClF,YAAA,GAAG,EAAE,4EAA4E;AACjF,YAAA,IAAI,EAAE,4EAA4E;AAClF,YAAA,GAAG,EAAE,iFAAiF;AACtF,YAAA,GAAG,EAAE,2EAA2E;AAChF,YAAA,IAAI,EAAE,2EAA2E;SAClF,CAAC;AAEF,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC;AAC1E,QAAA,IAAA,CAAA,eAAe,GAAQ;AACrB,YAAA,GAAG,EAAE;AACH,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,WAAW;AAC5B,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,YAAY,EAAE,YAAY;AAC1B,oBAAA,cAAc,EACZ,2LAA2L;AAC7L,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC1B,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,YAAY,EAAE,gBAAgB;AAC9B,oBAAA,cAAc,EACZ,oFAAoF;AACtF,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzB,oBAAA,IAAI,EAAE,0BAA0B;AAChC,oBAAA,YAAY,EAAE,0BAA0B;AACxC,oBAAA,cAAc,EACZ,+DAA+D;AACjE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,MAAM;AACvB,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,YAAY,EAAE,YAAY;AAC1B,oBAAA,cAAc,EACZ,mGAAmG;AACrG,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA;AACF,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,qBAAqB;AACtC,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,YAAY,EAAE,uBAAuB;AACrC,oBAAA,cAAc,EAAE,CAAA;;;;;AAKsC,6DAAA,CAAA;AACtD,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,uBAAuB;AAC9B,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,gBAAgB;AACjC,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,YAAY,EAAE,SAAS;AACvB,oBAAA,cAAc,EAAE,CAAmM,iMAAA,CAAA;AACnN,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzB,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,YAAY,EAAE,UAAU;AACxB,oBAAA,cAAc,EAAE,CAAA;AACoE,2FAAA,CAAA;AACpF,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,WAAW;AAC5B,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,YAAY,EAAE,aAAa;AAC3B,oBAAA,cAAc,EAAE,CAAA;;;AAGf,QAAA,CAAA;AACD,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,IAAI,EAAE,aAAa;AACpB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC1B,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,YAAY,EAAE,WAAW;AACzB,oBAAA,cAAc,EAAE,CAAA;;;AAGf,QAAA,CAAA;AACD,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,eAAe;AAChC,oBAAA,IAAI,EAAE,mBAAmB;AACzB,oBAAA,YAAY,EAAE,mBAAmB;AACjC,oBAAA,cAAc,EAAE,CAAA;AACoD,2EAAA,CAAA;AACpE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,mBAAmB;AAC1B,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,UAAU;AAC3B,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,YAAY,EAAE,eAAe;AAC7B,oBAAA,cAAc,EAAE,CAAiK,+JAAA,CAAA;AACjL,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,+BAA+B;AACtC,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,WAAW;AAC5B,oBAAA,IAAI,EAAE,oBAAoB;AAC1B,oBAAA,YAAY,EAAE,oBAAoB;AAClC,oBAAA,cAAc,EAAE,CAA8G,4GAAA,CAAA;AAC9H,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,kBAAkB;AACzB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,UAAU;AAC3B,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,YAAY,EAAE,uBAAuB;AACrC,oBAAA,cAAc,EAAE,CAA6J,2JAAA,CAAA;AAC7K,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,uBAAuB;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,UAAU;AAC3B,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,YAAY,EAAE,WAAW;AACzB,oBAAA,cAAc,EACZ,0EAA0E;AAC5E,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACd,iBAAA;AAED,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,qBAAqB;AACtC,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,YAAY,EAAE,uBAAuB;AACrC,oBAAA,cAAc,EAAE,CAAA;;;AAGwI,+JAAA,CAAA;AACxJ,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACd,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,aAAa;AAC9B,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,YAAY,EAAE,SAAS;AACvB,oBAAA,cAAc,EAAE,CAAA;;AAEmE,0FAAA,CAAA;AACnF,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACd,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,eAAe;AAChC,oBAAA,IAAI,EAAE,mBAAmB;AACzB,oBAAA,IAAI,EAAE,kBAAkB;AACxB,oBAAA,YAAY,EAAE,oBAAoB;AAClC,oBAAA,cAAc,EACZ,uIAAuI;AACzI,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACd,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,WAAW;AAC5B,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,YAAY,EAAE,cAAc;AAC5B,oBAAA,cAAc,EACZ,iNAAiN;AACnN,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,eAAe,EACb,mGAAmG;AACtG,iBAAA;AACD,gBAAA;AACE,oBAAA,QAAQ,EACN,8EAA8E;AAChF,oBAAA,IAAI,EAAE,qBAAqB;AAC3B,oBAAA,YAAY,EAAE,qBAAqB;AACnC,oBAAA,cAAc,EACZ,oHAAoH;AACtH,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,qBAAqB;AAC5B,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzB,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,YAAY,EAAE,UAAU;AACxB,oBAAA,cAAc,EACZ,oFAAoF;AACtF,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC1B,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,YAAY,EAAE,WAAW;AACzB,oBAAA,cAAc,EAAE,CAAA;;AAE6H,oJAAA,CAAA;AAC7I,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA;AACD,gBAAA;AACE,oBAAA,QAAQ,EACN,sFAAsF;AACxF,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,YAAY,EAAE,eAAe;AAC7B,oBAAA,cAAc,EAAE,CAAuI,qIAAA,CAAA;AACvJ,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,IAAI,EAAE,eAAe;AACtB,iBAAA;AACF,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,qBAAqB;AACtC,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,cAAc,EAAE,EAAE;AAClB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACd,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,eAAe;AAChC,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,cAAc,EAAE,EAAE;AAClB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACd,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC1B,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,cAAc,EAAE,EAAE;AAClB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACd,iBAAA;AACF,aAAA;AAED,YAAA,GAAG,EAAE;AACH,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,cAAc;AAC/B,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,YAAY,EAAE,gBAAgB;AAC9B,oBAAA,cAAc,EACZ,oGAAoG;AACtG,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA;;;;;;;;;;AAUD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzB,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,YAAY,EAAE,UAAU;AACxB,oBAAA,cAAc,EACZ,wDAAwD;AAC1D,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,gBAAgB;AACjC,oBAAA,IAAI,EAAE,kBAAkB;AACxB,oBAAA,YAAY,EAAE,kBAAkB;AAChC,oBAAA,cAAc,EACZ,6EAA6E;AAC/E,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,kBAAkB;AACzB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC1B,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,YAAY,EAAE,WAAW;AACzB,oBAAA,cAAc,EACZ,qOAAqO;AACvO,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,eAAe;AAChC,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,YAAY,EAAE,UAAU;AACxB,oBAAA,cAAc,EACZ,iFAAiF;AACnF,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA;AACE,oBAAA,QAAQ,EACN,8EAA8E;AAChF,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,YAAY,EAAE,UAAU;AACxB,oBAAA,cAAc,EAAE,CAAA;;AAEf,QAAA,CAAA;AACD,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACD,gBAAA;AACE,oBAAA,QAAQ,EACN,qFAAqF;AACvF,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,YAAY,EAAE,eAAe;AAC7B,oBAAA,cAAc,EAAE,oBAAoB;AACpC,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,eAAe;AACtB,iBAAA;AAED,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,aAAa;AAC9B,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,YAAY,EAAE,eAAe;AAC7B,oBAAA,cAAc,EACZ,2KAA2K;AAC7K,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACd,iBAAA;AACF,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,UAAU;AAC3B,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,YAAY,EAAE,uBAAuB;AACrC,oBAAA,cAAc,EAAE,CAAuE,qEAAA,CAAA;AACvF,oBAAA,eAAe,EACb,qHAAqH;AACvH,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,UAAU;AAC3B,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,YAAY,EAAE,YAAY;AAC1B,oBAAA,cAAc,EAAE,CAA4D,0DAAA,CAAA;AAC5E,oBAAA,eAAe,EACb,2GAA2G;AAC7G,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,4BAA4B;AACnC,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,UAAU;AAC3B,oBAAA,IAAI,EAAE,wBAAwB;AAC9B,oBAAA,YAAY,EAAE,wBAAwB;AACtC,oBAAA,cAAc,EAAE,CAAwE,sEAAA,CAAA;AACxF,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,mBAAmB;AAC1B,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,KAAK,EAAE,YAAY;AAC7B,oBAAA,IAAI,EAAE,4BAA4B;AAClC,oBAAA,YAAY,EAAE,4BAA4B;AAC1C,oBAAA,cAAc,EAAE,CAA0E,wEAAA,CAAA;AAC1F,oBAAA,eAAe,EACb,sEAAsE;AACxE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA;AACF,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,UAAU;AAC3B,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,YAAY,EAAE,gBAAgB;AAC9B,oBAAA,cAAc,EACZ,oGAAoG;AACtG,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,gBAAgB;AACjC,oBAAA,IAAI,EAAE,kBAAkB;AACxB,oBAAA,YAAY,EAAE,kBAAkB;AAChC,oBAAA,cAAc,EACZ,4EAA4E;AAC9E,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,kBAAkB;AACzB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC1B,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,YAAY,EAAE,WAAW;AACzB,oBAAA,cAAc,EACZ,kPAAkP;AACpP,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,eAAe;AAChC,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,YAAY,EAAE,UAAU;AACxB,oBAAA,cAAc,EACZ,gFAAgF;AAClF,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,kBAAkB;AACnC,oBAAA,IAAI,EAAE,qBAAqB;AAC3B,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,cAAc,EAAE,EAAE;AAClB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,qBAAqB;AAC5B,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,KAAK;AACtB,oBAAA,IAAI,EAAE,qBAAqB;AAC3B,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,cAAc,EAAE,EAAE;AAClB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,qBAAqB;AAC5B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,UAAU;AAC3B,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,YAAY,EAAE,gBAAgB;AAC9B,oBAAA,cAAc,EACZ,oGAAoG;AACtG,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,gBAAgB;AACjC,oBAAA,IAAI,EAAE,kBAAkB;AACxB,oBAAA,YAAY,EAAE,kBAAkB;AAChC,oBAAA,cAAc,EACZ,4EAA4E;AAC9E,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,kBAAkB;AACzB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC1B,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,YAAY,EAAE,WAAW;AACzB,oBAAA,cAAc,EACZ,kOAAkO;AACpO,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,kBAAkB;AACnC,oBAAA,IAAI,EAAE,qBAAqB;AAC3B,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,cAAc,EAAE,EAAE;AAClB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,qBAAqB;AAC5B,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,MAAM,CAAC,KAAK;AACtB,oBAAA,IAAI,EAAE,qBAAqB;AAC3B,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,cAAc,EAAE,EAAE;AAClB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,IAAI,EAAE,qBAAqB;AAC5B,iBAAA;AACF,aAAA;SACF,CAAC;QAGA,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACxD,YAAA,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC5C,oBAAA,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IACE,OAAO,EAAE,iBAAiB,EAAE,YAAY;AACxC,YAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EACzC;YACA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC;AACjE,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;;;;AAI5C,oBAAA,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE;AAC9B,wBAAA,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACpB,wBAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;;;;oBAI5C,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACtC,wBAAA,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;gBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;;;;AAI5C,oBAAA,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE;AAC9B,wBAAA,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;;;;oBAI5C,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACtC,wBAAA,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KACrD;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAa,KAAI;AAC3D,YAAA,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;AAC7B,gBAAA,GAAG,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC;gBACxB,IAAI,CAAC,KAAK,EAAE;AACV,oBAAA,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC;AACrB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACnC,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE;AAC/B,gBAAA,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;AACrC,aAAA;AACD,YAAA,IAAI,GAAG,CAAC,IAAI,KAAK,4BAA4B,EAAE;AAC7C,gBAAA,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;AACrC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IACD,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAC1D,sBAAsB,CACvB,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,aAAa;AAChB,eAAG,IAAI,CAAC,cAAc,GAAG,aAAa;eACnC,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,mBAAmB;YACtB,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC;KACxE;IAED,gBAAgB,CAAC,KAAU,EAAE,KAAa,EAAA;AACxC,QAAA,IACE,IAAI,CAAC,eAAe,KAAK,KAAK;YAC9B,KAAK,CAAC,IAAI,KAAK,iBAAiB;AAChC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAC1D;AACA,YAAA,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;AAChC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE;AACrE,YAAA,KAAK,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;gBAC1D,CAAC,KAAK,CAAC,OAAO,CAAC;AAClB,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,QAAQ,CAAC,GAAQ,EAAA;QACf,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;gBAClE,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC9B,oBAAA,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,iBAAA;AACD,gBAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AACnC,oBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;AAClC,wBAAA,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,qBAAA;AACD,oBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE;AACjC,wBAAA,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AAC9B,oBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE;AACtC,wBAAA,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,qBAAA;AACD,oBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;AAClC,wBAAA,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAC/B,oBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE;AACtC,wBAAA,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,qBAAA;AACD,oBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE;AACjC,wBAAA,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxD,wBAAA,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,qBAAA;AACF,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AACD,IAAA,YAAY,CAAC,UAAe,EAAA;QAC1B,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;gBAClE,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACrC,oBAAA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,QAAQ,CAAC,YAAoB,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE;YACtC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAC1D,gBAAA,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;AAC1B,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAED,wBAAwB,GAAA;AACtB,QAAA,MAAM,IAAI,GAAG;YACX,mBAAmB;YACnB,eAAe;YACf,IAAI;YACJ,WAAW;YACX,UAAU;YACV,UAAU;YACV,YAAY;YACZ,kBAAkB;SACnB,CAAC;KAEH;+GAluBU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApa,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,6bCnBhC,uqGAmDM,EAAA,MAAA,EAAA,CAAA,m8KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAof,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhCO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,uqGAAA,EAAA,MAAA,EAAA,CAAA,m8KAAA,CAAA,EAAA,CAAA;sGAMlB,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACE,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEuB,sBAAsB,EAAA,CAAA;sBAAlD,KAAK;uBAAC,gBAAgB,CAAA;gBAMd,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;;;ME9BK,oBAAoB,CAAA;AAE7B,IAAA,WAAA,GAAA,GAAiB;IACjB,iBAAiB,CAAC,SAAa,EAAE,GAAQ,EAAE,KAAU,EAAE,IAAS,EAAE,OAAa,EAAE,aAAmB,EAAA;AAChG,QAAA,MAAM,UAAU,GAAG;AACf,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;SAC9B,CAAC;AACF,QAAA,IAAI,iBAAiB,CAAC;AACtB,QAAA,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;AAC9B,QAAA,IAAG,KAAK,EAAC;YACL,UAAU,EAAE,QAAQ,CAAC,OAAO,KAAK,KAAK,QAAQ,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAC1I,SAAA;QACD,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,IAAG,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAC;AACpB,gBAAA,UAAU,EAAE,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AACjC,SAAA;AACD,QAAA,IAAG,GAAG,EAAC;AACH,YAAA,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5B,SAAA;QACD,IAAI,cAAc,GAAG,aAAa,CAAC;AACnC,QAAA,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtD,QAAA,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1D,QAAA,SAAS,GAAG,SAAS,EAAE,WAAW,EAAE,CAAC;AAErC,QAAA,QAAQ,UAAU,EAAE,QAAQ,EAAE;AAC1B,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC;gBACF,cAAc,GAAG,aAAa,CAAC;gBAC/B,MAAM;AACV,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,EAAE;gBACH,cAAc,GAAG,aAAa,CAAC;gBAC/B,MAAM;AACV,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,CAAC,CAAC;AACP,YAAA,KAAK,EAAE;gBACH,cAAc,GAAG,aAAa,CAAC;gBAC/B,MAAM;AACb,SAAA;AACD,QAAA,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,CAAC;AACrE,QAAA,QAAQ,SAAS;AACb,YAAA,KAAK,YAAY;AACb,gBAAA,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;gBAC3C,MAAM;AACV,YAAA,KAAK,QAAQ;AACT,gBAAA,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;gBAC3C,MAAM;AACV,YAAA,KAAK,UAAU;gBACX,iBAAiB,GAAG,IAAI,GAAG,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC1H,MAAM;AACV,YAAA,KAAK,WAAW;gBACZ,iBAAiB,GAAG,SAAS,CAAC;gBAC9B,MAAM;AACV,YAAA,KAAK,OAAO;gBACR,iBAAiB,GAAG,SAAS,CAAC;gBAC9B,MAAM;AACV,YAAA,KAAK,qBAAqB;gBACtB,iBAAiB,GAAG,SAAS,CAAC;gBAC9B,MAAM;AACV,YAAA,KAAK,eAAe;gBAChB,iBAAiB,GAAG,UAAU,CAAC;gBAC/B,MAAM;AACV,YAAA,KAAK,eAAe;AAChB,gBAAA,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;gBAC3C,MAAM;AACV,YAAA,KAAK,iBAAiB;AAClB,gBAAA,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;gBAC5C,MAAM;AACV,YAAA,KAAK,eAAe;AAChB,gBAAA,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;gBAC3C,MAAM;AACV,YAAA,KAAK,aAAa;gBACd,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,+BAA+B,CAAC;gBAClF,MAAM;AACV,YAAA,KAAK,SAAS;gBACV,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,+BAA+B,CAAC;gBAClF,MAAM;AACV,YAAA,KAAK,eAAe;gBAChB,iBAAiB,GAAG,UAAU,CAAC;gBAC/B,MAAM;AACV,YAAA,KAAK,uBAAuB;AACxB,gBAAA,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,eAAe,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC;gBAC1I,MAAM;AACV,YAAA,KAAK,eAAe;gBAChB,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC;gBACjE,MAAM;AACV,YAAA,KAAK,WAAW;gBACZ,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC;gBACjE,MAAM;AACV,YAAA,KAAK,gBAAgB;gBACjB,iBAAiB,GAAG,WAAW,CAAC;gBAChC,MAAM;AACV,YAAA,KAAK,aAAa;AACd,gBAAA,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9E,gBAAA,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC/E,gBAAA,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;gBACxK,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC;gBAC1D,MAAM;AACV,YAAA,KAAK,UAAU;AACX,gBAAA,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrF,gBAAA,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AACvF,gBAAA,MAAM,eAAe,GAAG,aAAa,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,eAAe,CAAC,aAAa,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG,GAAG,GAAG,eAAe,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;gBACrN,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC;gBAClE,MAAM;AACV,YAAA,KAAK,QAAQ,CAAC;AACd,YAAA,KAAK,QAAQ;gBACT,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC3F,MAAM;AACV,YAAA,KAAK,eAAe;gBAChB,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC3F,MAAM;AACV,YAAA,KAAK,eAAe;gBAChB,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC3F,MAAM;AACV,YAAA,KAAK,eAAe;gBAChB,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC3F,MAAM;AACV,YAAA,KAAK,eAAe;gBAChB,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC3F,MAAM;AACV,YAAA,KAAK,gBAAgB;gBACjB,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC5F,MAAM;AACV,YAAA,KAAK,SAAS;gBACV,IAAG,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE;oBACpD,iBAAiB,GAAG,OAAO,IAAK,aAAa,EAAE,iBAAiB,GAAG,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;AACjI,iBAAA;AAAK,qBAAA;oBACF,iBAAiB,GAAG,UAAU,CAAC;AAClC,iBAAA;gBACD,MAAM;AACV,YAAA,KAAK,kBAAkB;AACnB,gBAAA,iBAAiB,GAAG,QAAQ,IAAK,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC;gBACtE,MAAM;AACV,YAAA,KAAK,cAAc;AACf,gBAAA,iBAAiB,GAAG,QAAQ,IAAK,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC;gBACtE,MAAM;AACV,YAAA,KAAK,qBAAqB,CAAC;AAC3B,YAAA;gBACI,iBAAiB,GAAG,SAAS,CAAC;AACrC,SAAA;AAED,QAAA,OAAO,iBAAiB,CAAC;KAC5B;+GAjKQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACJM,MAAM,cAAc,GAAG;AAC5B,IAAA,UAAU,EAAE,sBAAsB;AAClC,IAAA,iBAAiB,EACf,+IAA+I;CAClJ;;MCUY,iBAAiB,CAAA;AAL9B,IAAA,WAAA,GAAA;QAWW,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AAEnC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAEtC,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAA4B,CAAA,4BAAA,GAAG,KAAK,CAAC;AACrC,QAAA,IAAA,CAAA,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;AACvC,QAAA,IAAA,CAAA,iBAAiB,GAAG,cAAc,CAAC,iBAAiB,CAAC;AA4CtD,KAAA;IA1CC,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;gBAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,oBAAA,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;AACtB,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;YAC9C,IAAI,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,EAAE;AACnD,gBAAA,IAAI,IAAI,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,EAAE;AACpC,oBAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;AAC1C,iBAAA;AACF,aAAA;iBAAM,IAAI,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,EAAE;gBAC1D,IACE,IAAI,EAAE,UAAU;AAChB,oBAAA,IAAI,EAAE,MAAM;qBACX,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,aAAa,CAAC,EACvC;AACA,oBAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;AAC1C,iBAAA;AACF,aAAA;iBAAM,IAAI,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,EAAE;gBAC1D,IACE,IAAI,EAAE,UAAU;AAChB,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,aAAa,EACnB;AACA,oBAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;AAC1C,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,CAAC,kBAAuB,EAAA;AAC5B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACpD;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;+GA1DU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,iYCd9B,8zTAsRA,EAAA,MAAA,EAAA,CAAA,6vFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhhB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+C,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAvG,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDxQa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,8zTAAA,EAAA,MAAA,EAAA,CAAA,6vFAAA,CAAA,EAAA,CAAA;8BAKhB,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAEI,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MEGI,wBAAwB,CAAA;IA6FnC,WACU,CAAA,WAA2B,EAC3B,WAAwB,EACxB,QAAyB,EACzB,gBAAsC,EACtC,aAA4B,EAAA;QAJ5B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAC3B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAsB;QACtC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAjGtC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;AAEN,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,YAAY,GAAiB;AAC3B,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,EAAE;AACT,aAAA;SACF,CAAC;AAEF,QAAA,IAAA,CAAA,QAAQ,GAAQ;AACd,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,gBAAgB,EAAE,EAAE;SACrB,CAAC;AAEF,QAAA,IAAA,CAAA,cAAc,GAAQ;AACpB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;AAEF,QAAA,IAAA,CAAA,YAAY,GAAQ;AAClB,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,aAAa,EAAE,EAAE;SAClB,CAAC;QAEF,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QAEf,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QAItB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAElB,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,qBAAqB,CAAC;QACrC,IAAc,CAAA,cAAA,GAAW,iBAAiB,CAAC;QAC3C,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAY,CAAA,YAAA,GAAW,CAAC,CAAC;QACzB,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;QAC5B,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QAEzB,IAAa,CAAA,aAAA,GAAG,gHAAgH,CAAC;AACjI,QAAA,IAAA,CAAA,aAAa,GAAG;YACd,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE;YACnE,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE;SAChE,CAAC;QACF,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;AAElB,QAAA,IAAA,CAAA,aAAa,GAAG;YACd,QAAQ;YACR,SAAS;YACT,WAAW;YACX,UAAU;YACV,QAAQ;YACR,UAAU;SACX,CAAC;AA6yBF,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,IAAa,KAAa;AAC7C,YAAA,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxE,SAAC,CAAC;KAvyBG;IAEL,WAAW,CAAC,OAAsB,EAAA,GAAK;IACvC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC;QAC3D,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,SAAS,CAC1C,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC;YACzD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;AACjD,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACxB,SAAC,CACF,CAAC;KACH;AACD,IAAA,oBAAoB,CAAC,QAAa,EAAA;AAChC,QAAA,IACE,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW;AAC5C,YAAA,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EACvC;AACA,YAAA,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;AAC7D,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,SAAS,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnE,SAAA;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IACD,cAAc,GAAA;QACZ,IAAI,CAAC,QAAQ,GAAG;AACd,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,gBAAgB,EAAE,EAAE;SACrB,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IACD,eAAe,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAChD,CAAC,GAAG,KAAI;AACN,YAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;AAC1B,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,SAAC,CACF,CAAC;KACH;IACD,iBAAiB,GAAA;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACrD,QAAA,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,KAAK,EAAE,CAAC;AACjB,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI;YACF,IAAI,CAAC,cAAc,GAAG;AACpB,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,KAAK,EAAE,EAAE;aACV,CAAC;YACF,IAAI,CAAC,YAAY,GAAG;AAClB,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,cAAc,EAAE,EAAE;AAClB,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,aAAa,EAAE,EAAE;aAClB,CAAC;YACF,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;AAC7D,YAAA,IAAI,SAAS,EAAE;AACb,gBAAA,SAAS,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnE,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAE3C,YAAA,MAAM,MAAM,GAAiB,KAAK,CAAC,MAAsB,CAAC;;AAE1D,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AAC3B,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,YAAA,MAAM,MAAM,GAAe,IAAI,UAAU,EAAE,CAAC;AAC5C,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAM,KAAI;AACzB,gBAAA,MAAM,IAAI,GAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACrC,gBAAA,MAAM,EAAE,GAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC9D,MAAM,MAAM,GAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,OAAO,GAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEzC,MAAM,EAAE,GAAmB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAmB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAEpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE;AACvC,oBAAA,MAAM,EAAE,CAAC;AACV,iBAAA,CAAQ,CAAC;AAEV,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAQ,CAAC;AACvE,gBAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAC7C,CAAC;gBAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACpD,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7C,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/C,gBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS,CACpC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAClE,CAAC;AAEF,gBAAA,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,SAAS,CAC3C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,YAAiB,KAAK,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CACpE,CAAC;AAEF,gBAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAC3B,oBAAA,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,wBAAA,MAAM,MAAM,GAAG;AACb,4BAAA,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAChB,4BAAA,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;yBACtB,CAAC;wBACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,qBAAA;AACD,oBAAA,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,wBAAA,MAAM,UAAU,GAAG;AACjB,4BAAA,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1B,4BAAA,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;yBAC1B,CAAC;wBACF,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnD,qBAAA;AACD,oBAAA,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,wBAAA,MAAM,EAAE,GAAG;AACT,4BAAA,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAClB,4BAAA,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACjB,4BAAA,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;yBACvB,CAAC;wBACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,qBAAA;AAED,oBAAA,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE;AACf,wBAAA,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,qBAAA;AACD,oBAAA,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE;AACf,wBAAA,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,qBAAA;oBACD,IACE,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC;wBACxD,OAAO,CAAC,EAAE,CAAC,EACX;AACA,wBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,qBAAA;oBACD,IACE,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC;wBAC7D,OAAO,CAAC,EAAE,CAAC,EACX;AACA,wBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,qBAAA;AACH,iBAAC,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AACxC,oBAAA,IAAI,CAAC,YAAY;wBACf,0FAA0F;AAC1F,4BAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa;AAC5C,4BAAA,QAAQ,CAAC;AAEX,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,OAAO;AACR,iBAAA;AAED,gBAAA,IACE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,oBAAA,sCAAsC,EACtC;AACA,oBAAA,IAAI,CAAC,YAAY;wBACf,0FAA0F;AAC1F,4BAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa;AAC5C,4BAAA,QAAQ,CAAC;AAEX,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAE1B,OAAO;AACR,iBAAA;gBACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAC1D,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,IAAI,IAAI,CAAC,QAAQ,CAC9C,CAAC;AACF,gBAAA,IAAI,YAAY,IAAI,CAAC,CAAC,EAAE;AACtB,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;AACpE,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,YAAY;wBACf,0FAA0F;AAC1F,4BAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa;AAC5C,4BAAA,QAAQ,CAAC;AACX,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,OAAO;AACR,iBAAA;gBAED,IACE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ;AAChD,oBAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAClE;AACA,oBAAA,IAAI,CAAC,YAAY;wBACf,0FAA0F;AAC1F,4BAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa;AAC5C,4BAAA,QAAQ,CAAC;AAEX,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,OAAO;AACR,iBAAA;AAED,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACtC,gBAAA,IAAI,OAAO,EAAE;AACX,oBAAA,IAAI,CAAC,YAAY;AACf,wBAAA,wFAAwF,CAAC;AAC3F,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,OAAO;AACR,iBAAA;AAAM,qBAAA;oBACL,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,2BAA2B,EAAE;AACjE,wBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAChC,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AACjC,qBAAA;AACD,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,oBAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACrB,iBAAA;AACD,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAC/B,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAC7C,CAAC;gBAEF,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,KAAU,KAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAyDzC,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBACpC,IACE,GAAG,EAAE,UAAU;AACf,wBAAA,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,EACxD;AACA,wBAAA,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,qBAAA;AACD,oBAAA,IAAI,GAAG,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE;AACnE,wBAAA,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,qBAAA;oBACD,IACE,GAAG,EAAE,QAAQ;AACb,wBAAA,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,EACpD;AACA,wBAAA,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,qBAAA;oBACD,IACE,GAAG,EAAE,aAAa;AAClB,wBAAA,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,EAC9D;AACA,wBAAA,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,qBAAA;AACD,oBAAA,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAC7C,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,eAAe,CACpB,CAAC;oBACF,IAAI,GAAG,CAAC,aAAa,EAAE;AACrB,wBAAA,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,qBAAA;oBACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,iBAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACxB,aAAC,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;KACF;IAED,cAAc,GAAA;QACZ,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3E,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,IAAI,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,aAAa,CAAC,IAAS,EAAA;QACrB,MAAM,EAAE,GAAG,cAAc,CAAC;AAC1B,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QAC3E,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;;AAE/C,QAAA,IACE,CAAC,WAAW;AACZ,aAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,aAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC,IAAI,CAAC,CAAC,CAAC;AACR,YAAA,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EACrD;AACA,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AACpC,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClD,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,QAAQ,GACZ,+CAA+C;AAC/C,YAAA,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,aAAa;YAC9C,KAAK;YACL,YAAY;AACZ,YAAA,OAAO,CAAC;AAEV,QAAA,IAAI,CAAC,WAAW;aACb,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC;AACpD,aAAA,SAAS,CACR,CAAC,IAAS,KAAI;YACZ,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,eAAe,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,aAAA;YACD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CACjD,IAAI,CAAC,IAAI,EACT,kBAAkB,EAClB,QAAQ,CACT,CAAC;iBACH,EAAE,IAAI,CAAC,CAAC;AACV,aAAA;AACH,SAAC,EACD,CAAC,KAAK,KAAI;AACR,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;AACrC,SAAC,CACF,CAAC;KACL;AAED,IAAA,oBAAoB,CAAC,kBAAuB,EAAA;AAC1C,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;YAC9C,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AAChD,gBAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACjC,cAAc;oBACZ,IAAI;wBACJ,EAAE;wBACF,IAAI,CAAC,WAAW,EAAE;wBAClB,GAAG;AACH,yBAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBACrB,GAAG;wBACH,IAAI,CAAC,OAAO,EAAE,CAAC;AAClB,aAAA;AAAM,iBAAA;gBACL,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CACtD,IAAI,EAAE,SAAS,CAChB,CAAC;AACH,aAAA;YAED,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,MAAM,GAAG,GAAG;oBACV,KAAK,EAAE,IAAI,EAAE,QAAQ;oBACrB,WAAW,EAAE,IAAI,EAAE,WAAW;oBAC9B,mBAAmB,EAAE,IAAI,EAAE,SAAS;AACpC,oBAAA,0BAA0B,EACxB,IAAI,CAAC,YAAY,EAAE,0BAA0B;oBAC/C,KAAK,EAAE,IAAI,EAAE,KAAK;0BACd,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;0BACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;oBAC9C,UAAU,EAAE,IAAI,EAAE,SAAS;AAC3B,oBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW;0BAClD,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW,CAAC;AAChD,0BAAE,EAAE;oBACN,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC;oBAC5D,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;oBAC5C,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC;oBACtD,cAAc,EAAE,IAAI,CAAC,kBAAkB;0BACnC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC;AACjD,0BAAE,EAAE;AACN,oBAAA,UAAU,EAAE;AACV,wBAAA,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvD,wBAAA,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/C,wBAAA,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnD,wBAAA,IAAI,EAAE,aAAa,GAAG,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9D,qBAAA;oBACD,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,eAAe,EAAE,IAAI,CAAC,cAAc;AACpC,oBAAA,kBAAkB,EAAE,CAAC;AACrB,oBAAA,gBAAgB,EAAE,CAAC;AACnB,oBAAA,WAAW,EAAE,EAAE;oBACf,mBAAmB,EAAE,kBAAkB,GAAG,CAAC,GAAG,CAAC;oBAC/C,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,kBAAkB,EAAE,YAAY,CAAC;AAClE,oBAAA,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB;AACrD,oBAAA,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB;AACrD,oBAAA,iBAAiB,EAAE,IAAI,CAAC,YAAY,EAAE,iBAAiB;AACvD,oBAAA,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB;AACrD,oBAAA,aAAa,EAAE;AACb,wBAAA,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,MAAM,CAAC,KAAK;AAClD,wBAAA,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,CAAC,KAAK;AACtD,wBAAA,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,QAAQ,CAAC,KAAK;AACpD,wBAAA,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,aAAa,CAAC,KAAK;AAC1D,qBAAA;;oBAED,0BAA0B,EACxB,IAAI,CAAC,YAAY,EAAE,0BAA0B,IAAI,IAAI,CAAC,QAAQ;oBAChE,wBAAwB,EAAE,IAAI,CAAC,YAAY;AACzC,0BAAE,0BAA0B;AAC5B,0BAAE,IAAI,CAAC,YAAY,EAAE,wBAAwB;0BAC3C,IAAI,EAAE,kBAAkB;AAC5B,oBAAA,iBAAiB,EAAE;AACjB,wBAAA,SAAS,EAAE,cAAc;AACzB,wBAAA,UAAU,EACR,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,IAAIyI,QAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;AAClE,wBAAA,cAAc,EAAE,UAAU;wBAC1B,kBAAkB,EAAE,IAAI,EAAE,aAAa;8BACnC,IAAI,EAAE,aAAa;8BACnB,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,SAAS,CAAC;AACvD,qBAAA;oBACD,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC;AAC9C,oBAAA,8BAA8B,EAAE,IAAI,EAAE,eAAe,IAAI,EAAE;AAC3D,oBAAA,uBAAuB,EAAE,IAAI,EAAE,mBAAmB,IAAI,IAAI;iBAC3D,CAAC;AACF,gBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAC7C,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;AACtB,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,SAAC,CACF,CAAC;KACH;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,OAAO,GAAG,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAA;AAC/B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;KAClD;IAEO,SAAS,GAAA;AACf,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC/B;IAED,SAAS,CAAC,IAAS,EAAE,GAAW,EAAA;AAC9B,QAAA,QAAQ,GAAG;AACT,YAAA,KAAK,OAAO;gBACV,MAAM,IAAI,GAAQ,EAAE,CAAC;gBACrB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;AACnD,oBAAA,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE;AAC7B,wBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7B,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,IAAI,CAAC;gBACZ,MAAM;AACR,YAAA,KAAK,cAAc;gBACjB,IAAI,SAAS,GAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAc,KAAI;oBAClD,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE;wBACnD,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC3C,8BAAE,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;8BAC1C,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACnC,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,SAAS,CAAC;gBACjB,MAAM;AACR,YAAA,KAAK,OAAO;gBACV,MAAM,OAAO,GAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AACnD,oBAAA,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;AACxB,wBAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACjC,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,OAAO,CAAC;gBACf,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,MAAM,UAAU,GAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;AACtD,oBAAA,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE;AAC3B,wBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACvC,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,UAAU,CAAC;gBAClB,MAAM;AAER,YAAA,KAAK,YAAY;gBACf,IAAI,YAAY,GAAQ,CAAC,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;AAC3D,oBAAA,IAAI,UAAU,CAAC,cAAc,IAAI,IAAI,EAAE;AACrC,wBAAA,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC;AACzC,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,YAAY,CAAC;gBACpB,MAAM;AAER,YAAA,KAAK,QAAQ;gBACX,MAAM,KAAK,GAAQ,EAAE,CAAC;gBACtB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAC/C,CAAC,WAAgB,KAAK,WAAW,CAAC,OAAO,KAAK,IAAI,CACnD,CAAC;AACF,gBAAA,OAAO,UAAU,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC5C,MAAM;AACT,SAAA;KACF;IAED,KAAK,GAAA;QACH,IAAI,CAAC,cAAc,GAAG;AACpB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG;AAClB,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,OAAO,EAAE,EAAE;SACZ,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;AACD,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,QAAQ,GAAG;AACd,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,gBAAgB,EAAE,EAAE;iBACrB,CAAC;AACF,gBAAA,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC;gBACxC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM;AACR,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM;AACT,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KACjE;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,IAAI,GAAW,CAAC;QAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAChD,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzC,SAAA;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAChD,GAAG,IAAI,gBAAgB,CAAC;AACzB,SAAA;AAAM,aAAA;YACL,GAAG,IAAI,qBAAqB,CAAC;AAC9B,SAAA;QACD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAClD;AAED;;;;;;;;;;;;;;;AAeG;AACH,IAAA,cAAc,CAAC,IAAS,EAAA;AACtB,QAAA,IAAI,GAAQ,CAAC;AACb,QAAA,GAAG,GAAG;AACJ,YAAA,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACvB,YAAA,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1B,YAAA,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACrB,YAAA,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACpB,YAAA,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACxB,YAAA,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACxB,YAAA,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;AACtB,YAAA,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACvB,YAAA,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACjC,YAAA,aAAa,EAAE,IAAI,CAAC,sBAAsB,CACxC,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,eAAe,CACrB;SACF,CAAC;QACF,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IACE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,iCAAiC,CAAC,EACxE;YACA,GAAG,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC9C,YAAA,KAAK,EAAE,CAAC;AACT,SAAA;QACD,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC3C,QAAA,KAAK,EAAE,CAAC;QACR,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACrC,QAAA,KAAK,EAAE,CAAC;QACR,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACtC,QAAA,KAAK,EAAE,CAAC;QACR,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAClC,QAAA,KAAK,EAAE,CAAC;QACR,IAAI,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC5D,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACpC,YAAA,KAAK,EAAE,CAAC;AACT,SAAA;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE;YACjE,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACzC,YAAA,KAAK,EAAE,CAAC;AACT,SAAA;QACD,IACE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,CACnC,4EAA4E,CAC7E,EACD;YACA,GAAG,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/C,YAAA,KAAK,EAAE,CAAC;AACT,SAAA;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE;YACjE,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC3C,YAAA,KAAK,EAAE,CAAC;AACT,SAAA;QACD,MAAM,UAAU,GAAQ,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,GAAQ,EAAE,CAAM,KAAI;AACxE,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,MAAM,IAAI,GAAG;oBACX,gBAAgB,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE;oBACvC,eAAe,EAAE,GAAG,CAAC,OAAO;iBAC7B,CAAC;AACF,gBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,GAAG,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;AAC9B,QAAA,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CACpD,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,CAC9B,CAAC;AACF,QAAA,OAAO,GAAG,CAAC;KACZ;AAED;;;;;;AAMG;AACH,IAAA,4BAA4B,CAAC,aAAsB,EAAA;AACjD,QAAA,QAAQ,aAAa,EAAE,WAAW,EAAE;AAClC,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,CAAC,CAAC;AACX,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,CAAC,CAAC;AACX,YAAA,KAAK,WAAW;AACd,gBAAA,OAAO,CAAC,CAAC;AACX,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,EAAE,CAAC;AACZ,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,EAAE,CAAC;AACZ,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,EAAE,CAAC;AACZ,YAAA;AACE,gBAAA,OAAO,CAAC,CAAC;AACZ,SAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,QAAQ,KAAK,EAAE,WAAW,EAAE;AAC1B,YAAA,KAAK,wBAAwB;AAC3B,gBAAA,OAAO,CAAC,CAAC;AACX,YAAA,KAAK,wBAAwB;AAC3B,gBAAA,OAAO,CAAC,CAAC;AACX,YAAA;AACE,gBAAA,OAAO,CAAC,CAAC;AACZ,SAAA;KACF;AAED;;;;;;AAMG;AACH,IAAA,cAAc,CAAC,IAAS,EAAA;AACtB,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,SAAA;QACD,MAAM,OAAO,GAAG,IAAI,IAAI,CACtB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC3B,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ;AACjD,SAAA,CAAC,CACH,CAAC;QACF,OAAOA,QAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;KAC7C;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;KACtE;IAMD,sBAAsB,CAAC,UAAkB,EAAE,WAAmB,EAAA;AAC5D,QAAA,KACE,IAAI,QAAQ,GAAG,EAAE,EACjB,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EACrC,QAAQ,IAAI,CAAC,EACb;YACA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAEpD,YAAA,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;AACnC,gBAAA,OAAO,CAAC,aAAa;qBAClB,KAAK,CAAC,CAAC,CAAC;AACR,qBAAA,IAAI,CAAC,CAAC,GAAQ,KAAK,GAAG,KAAK,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,aAAA;AACF,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,UAAU,GAAA;QACR,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AAC/C,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,eAAe,CAAC;AAC7C,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,MAAM,CAAC;AACnC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEzD,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,gBAAA,KACE,IAAI,QAAQ,GAAG,EAAE,EACjB,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EACrC,QAAQ,IAAI,CAAC,EACb;oBACA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;oBACpD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;oBACtD,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;AACvC,wBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,4BAAA,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACjC,4BAAA,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;4BAC7B,IAAI,OAAO,IAAI,KAAK,EAAE;AACpB,gCAAA,MAAM,GAAG,GAAG;AACV,oCAAA,OAAO,EAAE,OAAO;AAChB,oCAAA,KAAK,EAAE,KAAK;iCACb,CAAC;gCACF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,6BAAA;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;+GA37BU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoG,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA7P,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAiiB,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,yQC3BrC,kgJAkIA,EAAA,MAAA,EAAA,CAAA,o7EAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArZ,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3B,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmQ,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8K,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtZ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuZ,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDvGa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,kgJAAA,EAAA,MAAA,EAAA,CAAA,o7EAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;+MAMxB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MEzBI,0BAA0B,CAAA;AAIrC,IAAA,WAAA,GAAA;QAHS,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QACb,IAAM,CAAA,MAAA,GAAsB,EAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;AACjE,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAO,CAAC;KAC1B;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,WAAW,CAAC,GAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;KACvD;+GAXU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,+ICRvC,yhCAuBA,EAAA,MAAA,EAAA,CAAA,qnDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvhB,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDfa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,yhCAAA,EAAA,MAAA,EAAA,CAAA,qnDAAA,CAAA,EAAA,CAAA;0EAKzB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MEFI,2BAA2B,CAAA;AAQtC,IAAA,WAAA,GAAA;QAPA,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;AAChB,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,aAAa;SAC3B,CAAC;KACe;AAEjB,IAAA,QAAQ,MAAY;+GAVT,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,gECTxC,qxbA+XA,EAAA,MAAA,EAAA,CAAA,ulBAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiO,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArH,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4a,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtXa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,qxbAAA,EAAA,MAAA,EAAA,CAAA,ulBAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;;;MESzB,eAAe,CAAA;AAG1B,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAH1B,QAAA,IAAA,CAAA,eAAe,GAAyB,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AAsW/E,QAAA,IAAA,CAAA,uBAAuB,GAAG,CAAC,MAAW,KAAI;AACxC,YAAA,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM;qBACrC,KAAK,CAAC,uCAAuC,CAAC;qBAC9C,KAAK,CAAC,CAAC,CAAC,CAAC;AACZ,gBAAA,MAAM,EAAE,GAAG,MAAM,KAAK,IAAI,CAAC;gBAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE7C,gBAAA,OAAO,CAAG,EAAA,CAAC,GAAG,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,OAAO,KAAK,CAAC;AACnD,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,YAAY,CAAC;AACrB,aAAA;AACH,SAAC,CAAC;AA5WA,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;IAED,aAAa,GAAA;AACX,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,eAAe,EAAE,EAAE,OAAO,EAAE,CAAC;AACnE,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,YAAY,GAAA;AACV,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC;AAC5D,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE;YACnC,OAAO,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,wCAAwC,EAC7D,EAAE,OAAO,EAAE,CACZ;AACA,aAAA,IAAI,CACHriB,KAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,EACFC,YAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,SAAC,CACF,CAAC;AACD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;;KAEnB;IACD,2BAA2B,GAAA;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAQ,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,0BAA0B,EAAE;YACjE,OAAO;SACR,CAAC;AACD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;AACD,IAAA,WAAW,CAAC,OAAY,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC;AACxD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IACD,WAAW,CAAC,OAAY,EAAE,OAAe,EAAA;AACvC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC;AAClE,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,cAAc,CAAC,WAAmB,EAAE,IAAY,EAAA;;;;;;AAO9C,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,IAAI,IAAI,KAAK,gBAAgB,EAAE;YAC7B,OAAO,IAAI,CAAC,IAAI;AACb,iBAAA,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,mBAAmB;gBAC1B,wCAAwC;AACxC,gBAAA,WAAW,EACb,EAAE,OAAO,EAAE,CACZ;AACA,iBAAA,IAAI,CACHD,KAAG,CAAC,CAAC,KAAU,KAAI;gBACjB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,MAAM;oBAC/B,MAAM,EAAE,IAAI,EAAE,SAAS;oBACvB,aAAa,EAAE,IAAI,EAAE,UAAU;oBAC/B,eAAe,EAAE,IAAI,EAAE,WAAW;AAClC,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAC,CAAC,CAAC;aACL,CAAC,CACH,CAAC;AACL,SAAA;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;YAC1B,OAAO,IAAI,CAAC,IAAI;AACb,iBAAA,GAAG,CACF,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,iCAAiC,GAAG,WAAW,EAC/D,EAAE,OAAO,EAAE,CACZ;AACA,iBAAA,IAAI,CACHA,KAAG,CAAC,CAAC,KAAU,KAAI;gBACjB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,MAAM;oBAC/B,MAAM,EAAE,IAAI,EAAE,OAAO;oBACrB,aAAa,EAAE,IAAI,EAAE,eAAe;oBACpC,eAAe,EAAE,IAAI,EAAE,KAAK;AAC5B,oBAAA,QAAQ,EAAE,MAAM;AACjB,iBAAA,CAAC,CAAC,CAAC;aACL,CAAC,CACH,CAAC;AACL,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AAED,IAAA,QAAQ,CAAC,SAAc,EAAE,UAAe,EAAE,aAAkB,EAAA;QAC1D,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACnE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1B,SAAA;QACD,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,EAAE;AACnD,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1B,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC3B,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC7B,SAAA;QACD,IACE,SAAS,CAAC,mBAAmB;AAC1B,aAAA,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;AACtB,aAAA,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;AAC9B,aAAA,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACtB;AACA,YAAA,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACpC,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAED,eAAe,CAAC,SAAc,EAAE,kBAAuB,EAAA;QACrD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACtD,QAAA,MAAM,SAAS,GAAG;YAChB,YAAY,CAAC,WAAW,EAAE;AAC1B,YAAA,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;YAC3B,YAAY,CAAC,OAAO,EAAE;SACvB,CAAC;AACF,QAAA,MAAM,IAAI,GAAQ,IAAI,CAAC,uBAAuB,CAC5C,SAAS,CAAC,YAAY,CACvB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACb,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,SAAS,CAAC,CAAC,CAAC,EACZ,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAChB,SAAS,CAAC,CAAC,CAAC,EACZ,IAAI,CAAC,CAAC,CAAC,EACP,IAAI,CAAC,CAAC,CAAC,EACP,CAAC,CACF,CAAC;AAEF,QAAA,MAAM,WAAW,GAAQ;YACvB,6BAA6B,EAAE,SAAS,EAAE,4BAA4B;YACtE,eAAe,EAAE,kBAAkB,CAAC,gBAAgB;kBAChD,SAAS,CAAC,mBAAmB;AAC/B,kBAAE,EAAE;YACN,UAAU,EAAE,SAAS,CAAC,SAAS;AAC/B,YAAA,SAAS,EAAE,GAAG;YACd,iBAAiB,EAAE,SAAS,CAAC,gBAAgB;YAC7C,UAAU,EAAE,kBAAkB,CAAC,UAAU;AACvC,kBAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE;AAC5D,kBAAE,EAAE;YACN,cAAc,EAAE,kBAAkB,CAAC,cAAc;AAC/C,kBAAE,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE;AACpC,kBAAE,EAAE;YACN,UAAU,EAAE,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE;YACtD,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;AACnC,kBAAE,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE;AACpC,kBAAE,EAAE;AACN,YAAA,iBAAiB,EACf,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC;YAC7D,cAAc,EAAE,SAAS,CAAC,mBAAmB;AAC7C,YAAA,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC;AACrE,YAAA,UAAU,EACR,SAAS,CAAC,CAAC,CAAC;gBACZ,GAAG;gBACH,SAAS,CAAC,CAAC,CAAC;gBACZ,GAAG;gBACH,SAAS,CAAC,CAAC,CAAC;gBACZ,GAAG;AACH,gBAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,YAAY,CAAC;YACtD,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,YAAY,CAAC;AACjE,YAAA,cAAc,EACZ,SAAS,CAAC,CAAC,CAAC;gBACZ,GAAG;gBACH,SAAS,CAAC,CAAC,CAAC;gBACZ,GAAG;gBACH,SAAS,CAAC,CAAC,CAAC;gBACZ,GAAG;AACH,gBAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,YAAY,CAAC;AACtD,YAAA,QAAQ,EAAE,EAAE;YACZ,iBAAiB,EAAE,kBAAkB,CAAC,SAAS;kBAC3C,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,CAAC;AACjE,kBAAE,EAAE;YACN,yBAAyB,EAAE,kBAAkB,CAAC,SAAS;kBACnD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,cAAc,EAAE,gBAAgB,CAAC;AACnE,kBAAE,EAAE;AACN,YAAA,gBAAgB,EAAE,EAAE;YACpB,uBAAuB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE;YAC3D,oBAAoB,EAAE,kBAAkB,CAAC,QAAQ;kBAC7C,SAAS,CAAC,gBAAgB;AAC1B,sBAAE,GAAG;AACL,sBAAE,GAAG;AACP,kBAAE,GAAG;SACR,CAAC;AACF,QAAA,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;AAC5B,YAAA,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACrE,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACpB;IAED,cAAc,CAAC,SAAc,EAAE,kBAAuB,EAAA;QACpD,MAAM,QAAQ,GAAGqJ,QAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,QAAQ;cACzBA,QAAM,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE;AAC1C,cAAE,MAAM;kBACN,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;kBAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACrC,QAAA,MAAM,SAAS,GAAG;YAChB,YAAY,CAAC,WAAW,EAAE;AAC1B,YAAA,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;YAC3B,YAAY,CAAC,OAAO,EAAE;SACvB,CAAC;AAEF,QAAA,MAAM,OAAO,GAAQ;AACnB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,cAAc,EAAE,EAAE;SACnB,CAAC;QAEF,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AACjD,QAAA,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM;cACpC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;cAC3C,EAAE,CAAC;AACP,QAAA,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,oBAAoB,CAAC,MAAM;cACnE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,oBAAoB,EAAE,UAAU,CAAC;cAC3D,EAAE,CAAC;AACP,QAAA,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM;cAChD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;cACtD,IAAI,CAAC;AACT,QAAA,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AACvB,YAAA,IAAI,EAAE,SAAS,CAAC,gBAAgB,IAAI,EAAE;AACtC,YAAA,WAAW,EAAE,SAAS,EAAE,4BAA4B,CAAC,MAAM;kBACvD,SAAS,EAAE,4BAA4B;AACzC,kBAAE,EAAE;SACP,CAAC;AACF,QAAA,OAAO,CAAC,cAAc,GAAG,kBAAkB,CAAC,cAAc;AACxD,cAAE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;cAC/B,IAAI,CAAC;QACT,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,eAAe,IAAI,IAAI,CAAC;AACvD,QAAA,OAAO,CAAC,QAAQ,GAAG,kBAAkB,CAAC,QAAQ;AAC5C,cAAE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;cAC/B,IAAI,CAAC;AACT,QAAA,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,SAAS;cACrC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC;cACnD,IAAI,CAAC;AACT,QAAA,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG;YAC3B,IAAI,EAAE,kBAAkB,CAAC,gBAAgB;kBACrC,SAAS,CAAC,mBAAmB;AAC/B,kBAAE,EAAE;AACN,YAAA,WAAW,EAAE,EAAE;SAChB,CAAC;AACF,QAAA,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG;AAC1B,YAAA,IAAI,EAAE,SAAS,CAAC,mBAAmB,IAAI,EAAE;AACzC,YAAA,WAAW,EAAE,SAAS,EAAE,6BAA6B,CAAC,MAAM;kBACxD,SAAS,EAAE,6BAA6B;AAC1C,kBAAE,EAAE;SACP,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG;YACjB,aAAa,EAAE,kBAAkB,CAAC,QAAQ;kBACtC,SAAS,CAAC,gBAAgB;AAC1B,sBAAE,CAAC;AACH,sBAAE,CAAC;AACL,kBAAE,CAAC;SACN,CAAC;QACF,OAAO,CAAC,iBAAiB,GAAG;YAC1B,cAAc,EACZ,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY;AACtE,YAAA,cAAc,EACZ,SAAS,CAAC,CAAC,CAAC;gBACZ,GAAG;iBACF,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACvD,GAAG;iBACF,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;SAC1D,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG;YACjB,QAAQ,EAAE,kBAAkB,CAAC,SAAS;AACpC,kBAAE,SAAS,CAAC,YAAY,CAAC,MAAM;sBAC3B,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAM,KAAI;AACpC,wBAAA,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC7D,qBAAC,CAAC;AACJ,sBAAE,EAAE;AACN,kBAAE,EAAE;YACN,gBAAgB,EAAE,kBAAkB,CAAC,SAAS;AAC5C,kBAAE,SAAS,CAAC,cAAc,CAAC,MAAM;sBAC7B,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAM,KAAI;AACtC,wBAAA,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC7D,qBAAC,CAAC;AACJ,sBAAE,EAAE;AACN,kBAAE,EAAE;SACP,CAAC;AACF,QAAA,OAAO,CAAC,WAAW,GAAG,SAAS,EAAE,cAAc,CAAC;AAChD,QAAA,OAAO,CAAC,SAAS,GAAG,SAAS,EAAE,SAAS,CAAC;QACzC,OAAO,CAAC,wBAAwB,GAAG;AACjC,YAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE;AAChC,YAAA,WAAW,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE;AACvC,YAAA,aAAa,EAAE,SAAS,EAAE,YAAY,IAAI,EAAE;AAC5C,YAAA,WAAW,EAAE,SAAS,EAAE,UAAU,IAAI,EAAE;AACxC,YAAA,UAAU,EAAE,SAAS,EAAE,SAAS,IAAI,IAAI;SACzC,CAAC;AACF,QAAA,OAAO,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC;AAEnC,QAAA,OAAO,OAAO,CAAC;KAChB;IAED,SAAS,CAAC,KAAU,EAAE,GAAQ,EAAA;AAC5B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,SAAA;KACF;IAED,UAAU,CAAC,KAAU,EAAE,GAAQ,EAAA;AAC7B,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1C;AAgBD,IAAA,uBAAuB,CAAC,IAAS,EAAA;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;;AAE/B,QAAA,IAAI,GAAG,IAAI;AACR,aAAA,QAAQ,EAAE;AACV,aAAA,KAAK,CAAC,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE/D,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;;YAEnB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC;AACxC,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;AAC/B,SAAA;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACtB;IAED,gBAAgB,CAAC,KAAU,EAAE,aAAkB,EAAA;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAO,KAAI;AACjC,YAAA,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;AAC3B,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;KACpB;AAED;;;;;AAKG;IACH,WAAW,CAAC,OAAY,EAAE,IAAS,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,MAAM,QAAQ,GAAG,CAAK,EAAA,EAAA,IAAI,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,QAAQ,GAAG,mBAAmB,EAC5D,OAAO,EACP,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAED,IAAA,eAAe,CAAC,OAAe,EAAA;AAC7B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,aAAa,GAAG,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC;AAC9D,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,UAAU,GAAA;AACR,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;AAC/B,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3D,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClE,QAAA,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,CAAG,EAAA,GAAG,IAAI,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC;AAChD,QAAA,OAAO,aAAa,CAAC;KACtB;+GAlbU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAzJ,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOI,QAAQ;;;MCHA,kBAAkB,CAAA;AAgB7B,IAAA,WAAA,GAAA;QAdS,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QACpB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QACnB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAEhB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACjC,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAEhB,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KACC;IAEjB,QAAQ,GAAA;QACN,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;;KAE7E;IAED,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,CAAC;SAC9D,EAAE,GAAG,CAAC,CAAC;KACT;AACD,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;AACD,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;;KAEzB;IAED,IAAI,GAAA;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACxC;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAED,SAAS,CAAC,KAAU,EAAE,aAAkB,EAAA;AACtC,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;KAChD;+GAlDU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,6aCjB/B,4+GA6FA,EAAA,MAAA,EAAA,CAAA,0lJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwN,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/M,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqN,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA8T,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAApe,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD5Ea,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,4+GAAA,EAAA,MAAA,EAAA,CAAA,0lJAAA,CAAA,EAAA,CAAA;0EAKiB,SAAS,EAAA,CAAA;sBAAnD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAChC,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEvBK,eAAe,CAAA;AAE1B,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAQ,KAAG;YAC9B,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAA;AAClC,SAAC,CAAC,CAAA;KACH;+GANU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAf,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACpB,iBAAA,CAAA;;;MCIY,mCAAmC,CAAA;IAO9C,IAAa,YAAY,CAAC,KAAU,EAAA;AAClC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,SAAA;KACF;AAOD,IAAA,WAAA,GAAA;QAjBA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAS,CAAA,SAAA,GAAG,gBAAgB,CAAC;QAC7B,IAAY,CAAA,YAAA,GAAG,eAAe,CAAC;QAC/B,IAAc,CAAA,cAAA,GAAG,iBAAiB,CAAC;QACnC,IAAa,CAAA,aAAA,GAAG,QAAQ,CAAC;QACzB,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAMP,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AACf,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;KACvB;IAEjB,QAAQ,GAAA;QACN,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KAC7E;AAED,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;YACzB,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;AACD,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;;KAEzB;IAED,IAAI,GAAA;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACxC;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAED,SAAS,CAAC,KAAU,EAAE,aAAkB,EAAA;AACtC,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;KAChD;+GAtDU,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mCAAmC,iRCRhD,6oEA0DA,EAAA,MAAA,EAAA,CAAA,o1PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiO,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0K,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/B,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgL,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAnb,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAob,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlDa,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAL/C,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,6oEAAA,EAAA,MAAA,EAAA,CAAA,o1PAAA,CAAA,EAAA,CAAA;0EAW/B,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MEUI,mBAAmB,CAAA;AA8E9B,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM;AACzB,cAAE,8BAA8B;AAChC,cAAE,IAAI,CAAC,aAAa,CAAC;KACxB;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/C,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;cAC1B,IAAI,CAAC,aAAa;cAClB,EAAE,CAAC;KACR;AAyID,IAAA,WAAA,CACU,UAA2B,EAC3B,WAAwB,EACxB,YAA0B,EAC1B,QAAyB,EACzB,aAA4B,EAC5B,iBAAoC,EACpC,uBAAgD,EAChD,yBAAoD,EACpD,uBAAgD,EAChD,aAA4B,EAAA;QAT5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;QAC3B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAChD,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA2B;QACpD,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAChD,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QA5OtC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAEP,IAAM,CAAA,MAAA,GAA4B,EAAE,CAAC;AAErC,QAAA,IAAA,CAAA,iBAAiB,GAAQ;;AAEhC,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,sBAAsB,EAAE,EAAE;AAC1B,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAQ;AACjC,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,SAAS,EAAE,IAAI;SAChB,CAAC;AACO,QAAA,IAAA,CAAA,YAAY,GAAG;AACtB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,UAAU,EAAE,IAAI;SACjB,CAAC;QACO,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC;AAGf,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;QAMjD,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAE/B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAa,CAAA,aAAA,GAAW,8BAA8B,CAAC;QAEvD,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,aAAa,GAAU;YACrB,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE;YACvE,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE;SACjE,CAAC;AAEF,QAAA,IAAA,CAAA,WAAW,GAAiB;;AAE1B,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,aAAa;SAC3B,CAAC;AAEF,QAAA,IAAA,CAAA,UAAU,GAAG;AACX,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,GAAG,EAAE,EAAE;SACR,CAAC;AACF,QAAA,IAAA,CAAA,QAAQ,GAAQ;AACd,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,WAAW,EAAE,EAAE;SAChB,CAAC;QACF,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;AAgB5B,QAAA,IAAA,CAAA,YAAY,GAAQ;AAClB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,gBAAgB,EAAE,CAAC;AACnB,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,4BAA4B,EAAE,EAAE;AAChC,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,OAAO;AAClB,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,YAAY,EAAE,YAAY;AAC1B,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,eAAe,EAAE,CAAC;AAClB,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,6BAA6B,EAAE,EAAE;AACjC,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,0BAA0B,EAAE,EAAE;AAC9B,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,oBAAoB,EAAE,EAAE;AACxB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,MAAM,EAAE,EAAE;SACX,CAAC;QACF,IAAe,CAAA,eAAA,GAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,sBAAsB,GAAQ;AAC5B,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,SAAS,EAAE,KAAK;SACjB,CAAC;AACF,QAAA,IAAA,CAAA,kBAAkB,GAAG;YACnB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;YAClD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;YACpD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;SAC1C,CAAC;AACF,QAAA,IAAA,CAAA,WAAW,GAAG;YACZ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;YACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;YAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;SAC1C,CAAC;AAEF,QAAA,IAAA,CAAA,oBAAoB,GAAQ;YAC1B,gBAAgB;YAChB,UAAU;YACV,WAAW;YACX,YAAY;YACZ,UAAU;YACV,WAAW;YACX,oBAAoB;YACpB,0BAA0B;SAC3B,CAAC;AACF,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,aAAa,EAAE;AACb,gBAAA,UAAU,EAAE,uBAAuB;AACnC,gBAAA,oBAAoB,EAAE,mBAAmB;AACzC,gBAAA,iBAAiB,EAAE,uBAAuB;AAC1C,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,UAAU,EAAE,qBAAqB;AAClC,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,8BAA8B;AAC1C,gBAAA,oBAAoB,EAAE,gCAAgC;AACtD,gBAAA,kBAAkB,EAAE,iCAAiC;AACrD,gBAAA,iBAAiB,EAAE,8BAA8B;AACjD,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,UAAU,EAAE,iCAAiC;AAC7C,gBAAA,gBAAgB,EAAE,IAAI;AACvB,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,oBAAoB,EAAE,eAAe;AACrC,gBAAA,iBAAiB,EAAE,aAAa;AAChC,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,UAAU,EAAE,gBAAgB;AAC7B,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,UAAU,EAAE,mBAAmB;AAC/B,gBAAA,oBAAoB,EAAE,qBAAqB;AAC3C,gBAAA,iBAAiB,EAAE,mBAAmB;AACtC,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,UAAU,EAAE,sBAAsB;AACnC,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,oBAAoB,EAAE,eAAe;AACrC,gBAAA,iBAAiB,EAAE,aAAa;AAChC,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,UAAU,EAAE,gBAAgB;AAC7B,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,oBAAoB,EAAE,eAAe;AACrC,gBAAA,iBAAiB,EAAE,aAAa;AAChC,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,UAAU,EAAE,gBAAgB;AAC7B,aAAA;SACF,CAAC;QAEF,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;;QAG1B,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QACzB,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;QAC5B,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACzB;;AAEG;QACH,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAC5B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAE/B,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;QAC7B,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAClC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;KAYlC;IACL,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;KAC1C;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;KACF;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;KAC1C;IACD,cAAc,GAAA;AACZ,QAAA,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,IACE,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,EACtE;AACA,YAAA,IACE,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE;AACrB,gBAAA,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE;AACvB,gBAAA,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,EACvB;AACA,gBAAA,OAAO,CAAG,EAAA,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EACvE,CAAA,CAAA,EAAI,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE;AACzB,sBAAE,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE;AAC1B,sBAAE,KAAK,CAAC,UAAU,EACpB,KAAK,CAAC;AACT,aAAA;AAAM,iBAAA;gBACL,OAAO,CAAA,EAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE;sBAC9B,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC/B,sBAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,EACvB,CAAA,CAAA,EAAI,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE;AACzB,sBAAE,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE;AAC1B,sBAAE,KAAK,CAAC,UAAU,EACpB,KAAK,CAAC;AACT,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;KACF;IACD,aAAa,GAAA;AACX,QAAA,IACE,CAAC,CAAC,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/D,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;aAC/B,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3B,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,EAAE,MAAM,CAAC,EACnD;AACA,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,SAAA;KACF;IACD,OAAO,GAAA;QACL,IACE,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,qBAAqB,EAC1B;AACA,YAAA,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC;AACzC,SAAA;aAAM,IACL,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,YAAA,IAAI,CAAC,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAC/C;AACA,YAAA,IAAI,CAAC,QAAQ,GAAG,yBAAyB,CAAC;AAC3C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC;AACzC,SAAA;KACF;IACD,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC;AAC5D,QAAA,IAAI,OAAO,CAAC;AACZ,QAAA,IAAI,CAAC,yBAAyB,EAAE,cAAc,EAAE,EAAE,SAAS,CAAC;AAC1D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,GAAG,EAAE;AACP,oBAAA,OAAO,GAAG,GAAG,EAAE,gBAAgB,CAAC;oBAChC,MAAM,WAAW,GACf,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACvD,oBAAA,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;AAC3D,oBAAA,IAAI,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACzC,iBAAA;aACF;AACD,YAAA,KAAK,EAAE,CAAC,KAAY,KAAI;AACtB,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;AACF,SAAA,CAAC,CAAC;KACJ;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CACvC,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACjC,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC;YAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,SAAC,EACD,CAAC,KAAU,KAAI;AACb,YAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,SAAC,CACF,CAAC;KACH;IACD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,EAAE,SAAS,CAAC;AAC9D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACjC,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC;gBAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;AACD,YAAA,KAAK,EAAE,CAAC,KAAY,KAAI;AACtB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;AACF,SAAA,CAAC,CAAC;KACJ;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAC5C,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,EAAE,IAAI,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAC5D,CAAC,CAAM,KAAK,CAAC,EAAE,aAAa,KAAK,eAAe,CACjD,CAAC;YACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,SAAC,EACD,CAAC,KAAU,KAAI;AACb,YAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,SAAC,CACF,CAAC;KACH;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,uBAAuB,EAAE,aAAa,EAAE,EAAE,SAAS,CAAC;AACvD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACjC,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;gBAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;AACD,YAAA,KAAK,EAAE,CAAC,KAAY,KAAI;AACtB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;AACF,SAAA,CAAC,CAAC;KACJ;IAED,aAAa,GAAA;AACX,QAAA,IACE,IAAI,CAAC,iBAAiB,EAAE,IAAI;AAC5B,aAAC,IAAI,CAAC,UAAU,KAAK,qBAAqB;AACxC,gBAAA,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,EACnC;YACA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,MAAM;kBAC5D,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,KACpC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAChD;kBACC,EAAE,CAAC;AACR,SAAA;AAAM,aAAA,IACL,IAAI,CAAC,YAAY,EAAE,IAAI;AACvB,YAAA;gBACE,gBAAgB;gBAChB,8BAA8B;gBAC9B,oBAAoB;AACrB,aAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAC3B;YACA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI;kBAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC3B,CAAC,CAAM,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,IAAI,CAChD;kBACC,EAAE,CAAC;AACR,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE;AACtC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC7B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,SAAA;AACD,QAAA,IACE,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;AAC1D,YAAA;gBACE,qBAAqB;gBACrB,gBAAgB;gBAChB,8BAA8B;gBAC9B,oBAAoB;AACrB,aAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAC3B;AACA,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACzB,SAAA;KACF;IAED,iBAAiB,GAAA;AACf,QAAA,IACE,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAC7D,IAAI,CAAC,UAAU,CAChB,EACD;AACA,YAAA,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,YAAY,EAAE,UAAU,EAC7B,IAAI,CAAC,YAAY,CAAC,WAAW,CAC9B,CAAC;AACH,SAAA;KACF;IAED,UAAU,CAAC,OAAY,EAAE,IAAY,EAAA;AACnC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,CACtD,CAAC,IAAS,KAAI;AACZ,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAC1D,CAAC,KAAU,EAAE,KAAU,EAAE,IAAS,KAChC,KAAK;gBACL,IAAI,CAAC,SAAS,CACZ,CAAC,CAAM,KACL,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAC7D,CACJ,CAAC;AACF,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACpC,SAAC,EACD,CAAC,KAAU,KAAI;AACb,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACpC,SAAC,CACF,CAAC;KACH;AACD;;;AAGG;IACH,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAClE,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;AACnC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;gBACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,aAAA;AACF,SAAA;KACF;AACD;;;AAGG;AACH,IAAA,WAAW,CAAC,QAAgB,EAAA;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrD,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvC,SAAA;KACF;IACD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;KACnE;AACD,IAAA,eAAe,CAAC,GAAQ,EAAA;QACtB,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;AACR,SAAA;AACD,QAAA,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACjB,YAAA,IAAI,UAAU,GAAG;gBACf,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;aACN,CAAC;AACF,YAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;AACpD,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClE,YAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,CAAG,EAAA,SAAS,IAAI,UAAU,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC;AAC1D,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE;gBACtE,OAAO;AACR,aAAA;AACF,SAAA;AACD,QAAA,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;AAChD,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;KACrC;IAED,sBAAsB,CAAC,WAAmB,EAAE,cAAuB,EAAA;AACjE,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,cAAc;AACZ,eAAG,IAAI,CAAC,cAAc,GAAG,cAAc;eACpC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;AAC/B,QAAA,QAAQ,cAAc;AACpB,YAAA,KAAK,UAAU;gBACb,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM;AACR,YAAA,KAAK,gBAAgB;gBACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM;AACT,SAAA;AACD,QAAA,MAAM,UAAU,GAAG;YACjB,UAAU;YACV,gBAAgB;YAChB,YAAY;YACZ,UAAU;YACV,WAAW;YACX,WAAW;YACX,oBAAoB;YACpB,0BAA0B;SAC3B,CAAC;AACF,QAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAA;KACF;AAED,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IAED,cAAc,CAAC,GAAQ,EAAE,IAAS,EAAA;AAChC,QAAA,QAAQ,IAAI;YACV,KAAK,gBAAgB,EAAE;AACrB,gBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAC9C,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,YAAY,EAC1B,aAAa,CACd,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AACnB,oBAAA,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AACnC,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE;oBAC5D,MAAM,GAAG,GAAQ,EAAE,CAAC;AACpB,oBAAA,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CACtD,CAAC,OAAY,KAAI;AACf,wBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AACzC,qBAAC,CACF,CAAC;AACF,oBAAA,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,GAAG,CAAC;AACxC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,EAAE,CAAC;AACvC,iBAAA;gBACD,MAAM;AACP,aAAA;;YAED,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CACxC,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,OAAO,CACR,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AACnB,oBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC7B,iBAAA;gBACD,MAAM;AACP,aAAA;YACD,KAAK,WAAW,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAC1C,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,EACtB,aAAa,CACd,CAAC;AACF,gBAAA,IACE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,EACpE;AACA,oBAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC3C,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC5C,iBAAA;AACD,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AACnB,oBAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC/B,iBAAA;gBACD,MAAM;AACP,aAAA;YACD,KAAK,YAAY,EAAE;AACjB,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAC1C,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,UAAU,CACX,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAC7C,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,EACtB,gBAAgB,CACjB,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,WAAW,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAC/C,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,EACtB,gBAAgB,CACjB,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;AAED,YAAA,KAAK,oBAAoB;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAClD,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,WAAW,EACzB,QAAQ,CACT,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,WAAW;oBAC3B,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AACpD,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;YAER,KAAK,0BAA0B,EAAE;AAC/B,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,oBAAoB,GAAG,GAAG,CAAC;AAC7C,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IAED,UAAU,CAAC,IAAS,EAAE,OAAY,EAAA;AAChC,QAAA,QAAQ,IAAI;YACV,KAAK,gBAAgB,EAAE;gBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CACzD,CAAC,IAAS,KAAK,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CACxD,CAAC;AACF,gBAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACtD,iBAAA;gBACD,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;gBACf,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CACnD,CAAC,IAAS,KAAK,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAC5C,CAAC;AACF,gBAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAChD,iBAAA;gBACD,MAAM;AACP,aAAA;YACD,KAAK,WAAW,EAAE;gBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CACrD,CAAC,IAAS,KAAK,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CACxD,CAAC;AACF,gBAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAClD,iBAAA;AACD,gBAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC3C,MAAM;AACP,aAAA;YACD,KAAK,YAAY,EAAE;gBACjB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CACrD,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAClD,CAAC;AACF,gBAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAClD,iBAAA;gBACD,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;gBACf,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CACxD,CAAC,IAAS,KAAK,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,CAC9D,CAAC;AACF,gBAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACrD,iBAAA;gBACD,MAAM;AACP,aAAA;YACD,KAAK,WAAW,EAAE;gBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAC1D,CAAC,IAAS,KAAK,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,CAC9D,CAAC;AACF,gBAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACvD,iBAAA;gBACD,MAAM;AACP,aAAA;AACD,YAAA,KAAK,oBAAoB;gBACvB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,SAAS,CAC7D,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAC9C,CAAC;AACF,gBAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC1D,iBAAA;gBACD,MAAM;YACR,KAAK,0BAA0B,EAAE;gBAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,SAAS,CAChE,CAAC,IAAS,KAAK,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAClD,CAAC;AACF,gBAAA,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;oBAClB,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC7D,iBAAA;gBACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;gBACvD,MAAM;AACP,aAAA;AACF,SAAA;KACF;AAED,IAAA,OAAO,CAAC,EAAO,EAAA;AACb,QAAA,IAAI,IAAI,GAAG,EAAE,EAAE,uBAAuB,EAAE,MAAM;cAC1C,EAAE,EAAE,uBAAuB;AAC7B,cAAE,EAAE,EAAE,SAAS,EAAE,MAAM;kBACnB,EAAE,EAAE,SAAS;kBACb,EAAE,CAAC;QACT,IAAI,EAAE,EAAE,KAAK,EAAE;YACb,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AAC7B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,SAAS,CAAC,GAAQ,EAAA;QAChB,IAAI,UAAU,GAAU,EAAE,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE;YAChC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;YAC3B,IAAI,IAAI,GAAU,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACxC,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;gBACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAClD,CAAC,EAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAChC,CAAC;gBACF,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC/B,aAAA;YACD,IAAI,IAAI,EAAE,MAAM,EAAE;gBAChB,MAAM,aAAa,GAAG,IAAI;qBACvB,GAAG,CAAC,CAAC,IAAS,KACb,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAO,KAAK,EAAE,EAAE,KAAK,KAAK,IAAI,CAAC,CAC5D;AACA,qBAAA,MAAM,CACL,CAAC,MAAM,KACL,MAAM;AACN,oBAAA,CAAC,UAAU,CAAC,IAAI,CACd,CAAC,UAAe,KAAK,UAAU,EAAE,KAAK,KAAK,MAAM,EAAE,KAAK,CACzD,CACJ,CAAC;gBACJ,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,CAAC;AAChD,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,UAAU,CAAC;KACxC;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;AACjC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CACzD,CAAC,OAAY,KAAK,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,CAC/D,CAAC;AACH,SAAA;KACF;AACD,IAAA,YAAY,CAAC,IAAS,EAAA;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;KACxC;AACD,IAAA,WAAW,CAAC,IAAS,EAAA;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAC3C;AACD,IAAA,YAAY,CAAC,IAAS,EAAA;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;KACpC;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;AACxD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;AAED,IAAA,SAAS,CAAC,aAAkB,EAAE,SAAc,EAAE,SAAc,EAAA;QAC1D,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC/B,MAAM,IAAI,GAAG,SAAS,CAAC;QACvB,MAAM,GAAG,GAAG,SAAS,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAO,KAAK,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/D,QAAA,OAAO,CAAC,CAAC;KACV;;IAED,UAAU,CAAC,IAAY,EAAE,KAAU,EAAA;AACjC,QAAA,QAAQ,IAAI;YACV,KAAK,mBAAmB,EAAE;AACxB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,oBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,iBAAA;gBACD,MAAM;AACP,aAAA;YACD,KAAK,qBAAqB,EAAE;AAC1B,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,oBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,iBAAA;gBACD,MAAM;AACP,aAAA;YACD,KAAK,kBAAkB,EAAE;AACvB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,oBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,iBAAA;gBACD,MAAM;AACP,aAAA;AACF,SAAA;KACF;IAED,UAAU,CAAC,IAAS,EAAE,IAAY,EAAA;QAChC,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,QAAA,QAAQ,IAAI;YACV,KAAK,mBAAmB,EAAE;gBACxB,UAAU,GAAG,CAAC,CAAC;gBACf,MAAM;AACP,aAAA;YACD,KAAK,qBAAqB,EAAE;gBAC1B,UAAU,GAAG,CAAC,CAAC;gBACf,MAAM;AACP,aAAA;YACD,KAAK,kBAAkB,EAAE;gBACvB,UAAU,GAAG,CAAC,CAAC;gBACf,MAAM;AACP,aAAA;AACF,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,QAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC1E,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,GAAG,GAAG,CAAC,CAAC,SAAS,CACtE,CAAC,GAAQ,KAAI;AACX,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnE,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,gBAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACnD,aAAA;AAED,YAAA,QAAQ,IAAI;gBACV,KAAK,mBAAmB,EAAE;oBACxB,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACzD,MAAM;AACP,iBAAA;gBACD,KAAK,qBAAqB,EAAE;oBAC1B,IAAI,CAAC,YAAY,CAAC,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC1D,MAAM;AACP,iBAAA;gBACD,KAAK,kBAAkB,EAAE;oBACvB,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvD,MAAM;AACP,iBAAA;AACF,aAAA;AACH,SAAC,EACD,CAAC,KAAK,KAAI;AACR,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,gBAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACnD,aAAA;AACH,SAAC,CACF,CAAC;KACH;IAED,UAAU,CAAC,IAAS,EAAE,IAAY,EAAA;AAChC,QAAA,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;AACnB,QAAA,QAAQ,IAAI;YACV,KAAK,mBAAmB,EAAE;gBACxB,SAAS;oBACP,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,SAAS,CACvD,CAAC,YAAiB,KAAK,YAAY,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAC/D,IAAI,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACrE,MAAM;AACP,aAAA;YACD,KAAK,qBAAqB,EAAE;gBAC1B,SAAS;oBACP,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,SAAS,CACxD,CAAC,YAAiB,KAAK,YAAY,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAC/D,IAAI,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACtE,MAAM;AACP,aAAA;YACD,KAAK,kBAAkB,EAAE;gBACvB,SAAS;oBACP,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,SAAS,CACrD,CAAC,YAAiB,KAAK,YAAY,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAC/D,IAAI,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACnE,MAAM;AACP,aAAA;AACF,SAAA;KACF;AAED,IAAA,yBAAyB,CAAC,GAAQ,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;AAChD,QAAA,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,EAAE;YAC/C,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,SAAA;KACF;IAED,QAAQ,GAAA;QACN,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAC5C,CAAC,OAAY,KAAK,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,CAC/D,CAAC;AACH,SAAA;AAED,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAC7C,IAAI,EACJ,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,aAAa,CACnB,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,OAAO;AACR,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAC5C,IAAI,EACJ,IAAI,CAAC,sBAAsB,CAC5B,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC1B,IACE,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/D,gBAAA,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,EACxC;gBACA,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAClC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CACzC,CAAC;gBACF,OAAO,CAAC,wBAAwB,CAAC,WAAW;AAC1C,oBAAA,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;AACrC,aAAA;YACD,IACE,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,gBAAA,IAAI,CAAC,kBAAkB,EAAE,YAAY,EACrC;gBACA,OAAO,CAAC,wBAAwB,CAAC,aAAa;AAC5C,oBAAA,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC;gBACxC,OAAO,CAAC,wBAAwB,CAAC,WAAW;AAC1C,oBAAA,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;gBACtC,OAAO,CAAC,wBAAwB,CAAC,UAAU;AACzC,oBAAA,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC;gBACrC,OAAO,CAAC,wBAAwB,CAAC,OAAO;AACtC,oBAAA,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;gBACjD,OAAO,CAAC,wBAAwB,CAAC,WAAW;AAC1C,oBAAA,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;AACpC,gBAAA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,aAAA;AACD,YAAA,IACE,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAC7D,IAAI,CAAC,UAAU,CAChB,EACD;AACA,gBAAA,IACE,IAAI,CAAC,YAAY,EAAE,WAAW;oBAC9B,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAC/C;AACA,oBAAA,IACE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EACnE;wBACA,OAAO,CAAC,cAAc,CAAC,SAAS;4BAC9B,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;AACnD,qBAAA;AACF,iBAAA;AACF,aAAA;YACD,IACE;gBACE,gBAAgB;gBAChB,8BAA8B;gBAC9B,oBAAoB;AACrB,aAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAC3B;AACA,gBAAA,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;oBACjC,OAAO,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;AAClE,iBAAA;AACF,aAAA;YAED,IACE,CAAC,IAAI,CAAC,YAAY,CAChB,IAAI,CAAC,YAAY,CAAC,YAAY,EAC9BpZ,QAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAChE,EACD;gBACA,OAAO;AACR,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC;AACzD,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAC1D,CAAC,GAAQ,KAAI;;AAEX,gBAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACrB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;AACtC,aAAC,EACD,CAAC,KAAK,KAAI;AACR,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,aAAC,CACF,CAAC;AACH,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACnE,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAC5C,CAAC,GAAQ,KAAI;AACX,gBAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACrB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;AACtC,aAAC,EACD,CAAC,KAAK,KAAI;AACR,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,aAAC,CACF,CAAC;AACH,SAAA;KACF;AACD,IAAA,WAAW,CAAC,GAAS,EAAA;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KAC3C;AACD;;;;AAIG;IACH,aAAa,CAAC,GAAQ,EAAE,OAAY,EAAA;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;KAC3C;AACD,IAAA,MAAM,CAAC,GAAQ,EAAA;QACb,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;;AAEtC,SAAA;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;KACF;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,IAAI,GAAW,CAAC;QAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAChD,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzC,SAAA;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAChD,GAAG,IAAI,wBAAwB,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;AACvD,SAAA;AAAM,aAAA;YACL,GAAG,IAAI,8BAA8B,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;AAC7D,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;KAC5C;AAED;;AAEG;IACH,sBAAsB,GAAA;QACpB,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;YAC1D,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AAC7C,gBAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC5C;AACD;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;AACpE,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;AACD;;;AAGG;IACH,MAAM,YAAY,CAAC,SAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;AAC7B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,SAAS,EAAE,8BAA8B,EAAE,MAAM,EAAE;AACrD,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AAClC,SAAA;AACD,QAAA,IAAI,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,SAAS,EAAE,8BAA8B,EAAE,MAAM,EAAE;YACrD,IAAI,CAAC,iBAAiB,GAAG;gBACvB,gBAAgB,EACd,SAAS,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,QAAQ;gBACxD,kBAAkB,EAChB,SAAS,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,UAAU;gBAC1D,IAAI,EAAE,SAAS,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,SAAS;gBAC7D,sBAAsB,EACpB,SAAS,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,gBAAgB;AAChE,gBAAA,SAAS,EAAE,EAAE;aACd,CAAC;AACH,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB,GAAG,SAAS,EAAE,0BAA0B,EAAE,QAAQ;AAC1E,cAAE,IAAI;AACN,cAAE,IAAI;cACJ,KAAK,CAAC;AACV,QAAA,MAAM,YAAY,GAAG,SAAS,EAAE,iBAAiB,EAAE,cAAc;aAC9D,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,MAAM,CAAC,CAAC;QACf,IAAI,SAAS,EAAE,0BAA0B,EAAE;YACzC,IAAI,CAAC,kBAAkB,GAAG;gBACxB,YAAY,EACV,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAC9D,UAAU,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE;AACvE,gBAAA,cAAc,EACZ,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,eAAe;oBAChE,EAAE;AACJ,gBAAA,YAAY,EACV,SAAS,EAAE,0BAA0B,EAAE,aAAa,IAAI,EAAE;aAC7D,CAAC;AACH,SAAA;QACD,IAAI,CAAC,YAAY,GAAG;AAClB,YAAA,SAAS,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;AACjC,YAAA,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,IAAI,CAAC;AACzD,YAAA,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM;kBAC5C,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI;AACjC,kBAAE,EAAE;AACN,YAAA,4BAA4B,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM;kBACxD,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW;AACxC,kBAAE,EAAE;YACN,aAAa,EAAE,SAAS,EAAE,WAAW;kBACjC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CACnC,CAAC,CAAM,KAAK,CAAC,EAAE,WAAW,KAAK,SAAS,EAAE,WAAW,CACtD;AACD,kBAAE,EAAE;AACN,YAAA,cAAc,EAAE,SAAS,EAAE,WAAW,IAAI,EAAE;AAC5C,YAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;kBAC9B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAM,KACrC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CACtC;AACD,kBAAE,EAAE;AACN,YAAA,oBAAoB,EAAE,SAAS,EAAE,8BAA8B,EAAE,MAAM;kBACnE,SAAS,EAAE,8BAA8B;AAC3C,kBAAE,EAAE;AACN,YAAA,6BAA6B,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM;kBAC5D,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,WAAW;AAC3C,kBAAE,EAAE;AACN,YAAA,0BAA0B,EAAE,EAAE;AAC9B,YAAA,gBAAgB,EACd,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,IAAI,GAAG,KAAK;YAChE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CACxC,CAAC,CAAM,KAAK,CAAC,EAAE,YAAY,KAAK,SAAS,EAAE,WAAW,CACvD;AACD,YAAA,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc;kBACtDA,QAAM,CACN,CAAA,EAAG,YAAY,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA,CAAE,EAC1D,YAAY,CACb;AACD,kBAAE,EAAE;AACN,YAAA,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,uBAAuB,CACnD,SAAS,EAAE,iBAAiB,EAAE,cAAc,CAC7C;AACD,YAAA,aAAa,EAAE,SAAS,EAAE,cAAc,IAAI,CAAC;AAC7C,YAAA,eAAe,EAAE,SAAS,EAAE,UAAU,IAAI,CAAC;AAC3C,YAAA,aAAa,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AACvC,YAAA,mBAAmB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM;kBAClD,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI;AACpC,kBAAE,EAAE;AACN,YAAA,mBAAmB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM;kBACnD,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI;AACrC,kBAAE,EAAE;AACN,YAAA,YAAY,EAAE,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM;AAC/C,kBAAE,MAAM,IAAI,CAAC,oBAAoB,CAC/B,IAAI,CAAC,QAAQ,EAAE,QAAQ,EACvB,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAC9B;AACD,kBAAE,EAAE;AACN,YAAA,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,MAAM;AAC1D,kBAAE,MAAM,IAAI,CAAC,oBAAoB,CAC/B,IAAI,CAAC,QAAQ,EAAE,QAAQ,EACvB,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CACtC;AACD,kBAAE,EAAE;AACN,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,GAAG,OAAO;YAChE,KAAK,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE;YACnE,cAAc,EACZ,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,eAAe,IAAI,EAAE;SACzE,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;AACnC,mBAAG,IAAI,CAAC,eAAe,GAAG,IAAI;mBAC3B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC;YACnC,SAAS,CAAC,cAAc,EAAE,MAAM,KAAK,QAAQ,IAAI,SAAS,EAAE,KAAK;AAC/D,mBAAG,IAAI,CAAC,eAAe,GAAG,KAAK;mBAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,SAAc,EAAA;QAC7B,IAAI,CAAC,sBAAsB,GAAG;YAC5B,cAAc,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,GAAG,KAAK;AACvD,YAAA,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,GAAG,KAAK;YACzD,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,GAAG,KAAK;AAC3C,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,gBAAgB,EAAE,SAAS,CAAC,eAAe,CAAC,MAAM;kBAC9C,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;AACxC,sBAAE,IAAI;AACN,sBAAE,KAAK;AACT,kBAAE,KAAK;YACT,SAAS,EACP,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;AACpC,gBAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;AAC9C,kBAAE,IAAI;AACN,kBAAE,KAAK;SACZ,CAAC;QACF,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AACD;;;;;AAKG;IACH,oBAAoB,CAAC,WAAgB,EAAE,YAAiB,EAAA;AACtD,QAAA,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AACpC,YAAA,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAChC,CAAC,OAAY,KAAK,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,SAAS,CAC1D,CAAC;AACF,YAAA,IAAI,SAAS,EAAE;AACb,gBAAA,OAAO,SAAS,CAAC;AAClB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AACD;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG;AAClB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,gBAAgB,EAAE,CAAC;AACnB,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,4BAA4B,EAAE,EAAE;AAChC,YAAA,6BAA6B,EAAE,EAAE;AACjC,YAAA,0BAA0B,EAAE,EAAE;AAC9B,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,OAAO;AAClB,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,YAAY,EAAE,YAAY;AAC1B,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,eAAe,EAAE,CAAC;AAClB,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,oBAAoB,EAAE,EAAE;SACzB,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC1C,SAAA;;AAED,QAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IACD,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,IAAI,MAAM,EAAE;AAChD,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,EAAE,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,mBAAmB,IAAI,MAAM,EAAE;AACnD,YAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC5C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,mBAAmB,IAAI,MAAM,EAAE;AACnD,YAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC5C,SAAA;KACF;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IACE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EACzE;YACA,OAAO;AACR,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,KAAK,EAAE,aAAa,CAAC;KACvD;IAED,YAAY,CAAC,IAAY,EAAE,UAAe,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE;YACnC,MAAM,QAAQ,GAAGA,QAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACrD,YAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3D,YAAA,MAAM,YAAY,GAAGA,QAAM,CACzB,CAAG,EAAA,YAAY,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,YAAY,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,YAAY,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,EAClE,qBAAqB,CACtB,CAAC,IAAI,EAAE,CAAC;YACT,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC;YAC7D,MAAM,qBAAqB,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE;AAC/D,gBAAA,QAAQ,EAAE,YAAY;AACvB,aAAA,CAAC,CAAC;YACH,MAAM,yBAAyB,GAAG,IAAI,IAAI,CACxC,qBAAqB,CACtB,CAAC,OAAO,EAAE,CAAC;AACZ,YAAA,IAAI,YAAY,GAAG,IAAI,GAAG,yBAAyB,EAAE;AACnD,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,IAAI,wBAAwB,GAAA;AAC1B,QAAA,OAAO,2BAA2B,CAAC;KACpC;AAGD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,IAAI,CAAC,eAAe;YAC3B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAChC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KAC1D;+GAr5CU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAqZ,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA9iB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA8P,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA9I,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA+b,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA/S,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAgT,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAmCG,UAAU,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtE7C,48zDAisDA,EAAA,MAAA,EAAA,CAAA,oHAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9c,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4F,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+S,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApd,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqd,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9S,kCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,+BAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+S,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,gBAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,eAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA7T,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA8T,gBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD9pDa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,48zDAAA,EAAA,MAAA,EAAA,CAAA,oHAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;4WAMnB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAQG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAOG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAMG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACkB,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBAEvB,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAy2C5D,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;gCEn6C/B,iBAAiB,CAAA;AAW5B,IAAA,WAAA,CACU,IAAgB,EAChB,WAAwB,EACpB,MAAuB,EAAA;QAF3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAXlC,QAAA,IAAA,CAAA,SAAS,GAAQ;AACf,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,YAAY,EAAE,CAAC;SAChB,CAAC;AAoCM,QAAA,IAAA,CAAA,UAAU,GAAyB,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;AACxE,QAAA,IAAA,CAAA,mBAAmB,GAAoB,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;AAE9D,QAAA,IAAA,CAAA,gBAAgB,GACtB,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,kBAAkB,GAChB,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;AAqCvC,QAAA,IAAA,CAAA,WAAW,GAAG;YACZ,OAAO,EAAE,IAAI,WAAW,CAAC;AACvB,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE;aACpC,CAAC;SACH,CAAC;AA7EA,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;IAED,gBAAgB,CAAC,EAAU,EAAE,OAAY,EAAA;AACvC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,uBAAuB,GAAG,EAAE,EACzD,OAAO,EACP,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAED,IAAA,aAAa,CAAC,OAAY,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,mBAAmB,EAChD,OAAO,EACP,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;AAUD,IAAA,aAAa,CAAC,OAAY,EAAA;AACxB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;AACF,QAAA,IAAI,CAAC,IAAI;AACN,aAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,eAAe,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC;AACxE,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACnC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;gBAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACrC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACnC;AACF,SAAA,CAAC,CAAC;KACN;IACD,aAAa,GAAA;QACX,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACtC;AAED,IAAA,oBAAoB,CAAC,EAAU,EAAA;AAC7B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CACnC,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CACzC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,oCAAoC,GAAG,EAAE,EACtE,EAAE,EACF,EAAE,OAAO,EAAE,CACZ,CAAC;KACH;IASD,qBAAqB,GAAA;QACnB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAClD,QAAA,IAAI,WAAW,CAAC;QAChB,KAAK,KAAK,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,WAAW,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,WAAW,CAAC,KAAK,CAAC;KAC1B;AAED,IAAA,gBAAgB,CAAC,OAAY,EAAA;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,mBAAmB,EAChD,OAAO,EACP,IAAI,CAAC,WAAW,CACjB,CAAC;KACH;IAED,qBAAqB,CAAC,EAAO,EAAE,OAAY,EAAA;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,uBAAuB,GAAG,EAAE,EACzD,OAAO,EACP,IAAI,CAAC,WAAW,CACjB,CAAC;KACH;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,qBAAqB,EAClD,IAAI,CAAC,WAAW,CACjB,CAAC;KACH;AAED,IAAA,YAAY,CAAC,IAAS,EAAE,IAAY,EAAE,QAAgB,EAAA;QACpD,IAAI,MAAM,CAAC,SAAS,IAAK,MAAM,CAAC,SAAiB,EAAE,gBAAgB,EAAE;AACnE,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,MAAM,CAAC,SAAiB,EAAE,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7D,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC;YAC1D,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACtC,YAAA,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5B,YAAA,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACrC,YAAA,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AAC9B,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;AACV,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9B,SAAA;AACD,QAAA,OAAO,YAAY,CAAC;KACrB;AAED,IAAA,mBAAmB,CAAC,MAAW,EAAA;QAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvC,SAAA;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;KACrB;+GAtJU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAnkB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEPka,mBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAeI,QAAQ;;;MCKA,gCAAgC,CAAA;IAS3C,IAA2B,OAAO,CAAC,KAAU,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;IAQD,IAA2B,WAAW,CAAC,KAAU,EAAA;AAC/C,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;KACF;AAGD,IAAA,WAAA,GAAA;AA1BU,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAa,CAAC;AAC1C,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QACtC,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QACV,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QACvB,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAKP,IAAW,CAAA,WAAA,GAAQ,CAAC,CAAC;QACrB,IAAW,CAAA,WAAA,GAAQ,CAAC,CAAC;QACrB,IAAS,CAAA,SAAA,GAAQ,CAAC,CAAC;QACnB,IAAY,CAAA,YAAA,GAAQ,CAAC,CAAC;QACtB,IAAU,CAAA,UAAA,GAAQ,CAAC,CAAC;QACpB,IAAO,CAAA,OAAA,GAAQ,IAAI,CAAC;QAO7B,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;KACL;AAEjB,IAAA,QAAQ,MAAY;;AAGpB,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KAC5E;;IAGD,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KAC5E;IAED,YAAY,CAAC,KAAU,EAAE,IAAS,EAAA;AAChC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;AAAM,aAAA;YACL,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAM,KAAK,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;YACxE,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAC1C,CAAC,GAAQ,KACP,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CACvE,CAAC;gBACF,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,aAAA;AACF,SAAA;KACF;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CACtC,CAAC,GAAQ,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAC9C,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACjD,CAAC,GAAG,CAAC,CAAC,EAAE,KAAI;AACX,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACzD,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAC1C,CAAC,GAAQ,KACP,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CACtE,CAAC;QACF,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;IACD,IAAI,GAAA;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACnC;AAED,IAAA,SAAS,CAAC,GAAQ,EAAA;AAChB,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;AACxB,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAC1C,CAAC,GAAQ,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CACjD,CAAC;YACF,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;KACF;IACD,cAAc,GAAA;AACZ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAO,KACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CACzD,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;+GArGU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,uaC9B7C,4zHA6GA,EAAA,MAAA,EAAA,CAAA,w6JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhZ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiS,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvM,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5D,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwgB,4BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD/Ea,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,gCAAgC,EAAA,QAAA,EAAA,4zHAAA,EAAA,MAAA,EAAA,CAAA,w6JAAA,CAAA,EAAA,CAAA;0EAKhC,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAKoB,OAAO,EAAA,CAAA;sBAAjC,KAAK;uBAAC,cAAc,CAAA;gBAGZ,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACqB,WAAW,EAAA,CAAA;sBAArC,KAAK;uBAAC,cAAc,CAAA;;;ME1BV,2BAA2B,CAAA;IAgCtC,WACS,CAAA,iBAAoC,EACnC,WAAwB,EACxB,YAA0B,EAC1B,QAAyB,EACzB,aAA4B,EACxB,MAAuB,EAAA;QAL5B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACnC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QApCtC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACV,IAAI,CAAA,IAAA,GAAG,MAAM,CAAC;QACd,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AACf,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,oBAAoB,GAAQ,CAAC,UAAU,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,aAAa,GAAG;;AAEd,YAAA;AACE,gBAAA,UAAU,EAAE,2BAA2B;AACvC,gBAAA,KAAK,EAAE,UAAU;AACjB,gBAAA,EAAE,EAAE,gBAAgB;AACrB,aAAA;SACF,CAAC;QACF,IAA2B,CAAA,2BAAA,GAAG,IAAI,CAAC;AAEzB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,cAAc,GAAQ;AACpB,YAAA,cAAc,EAAE,YAAY;AAC5B,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;AAWnB,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,kBAAkB,EAAE;AAClB,gBAAA,UAAU,EAAE,+BAA+B;AAC3C,gBAAA,cAAc,EAAE,oBAAoB;AACpC,gBAAA,YAAY,EAAE,sBAAsB;AACpC,gBAAA,UAAU,EAAE,eAAe;AAC3B,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,SAAS,EAAE,kBAAkB;AAC7B,gBAAA,gBAAgB,EAAE,aAAa;AAC/B,gBAAA,iBAAiB,EAAE,gCAAgC;AACnD,gBAAA,UAAU,EAAE,iCAAiC;AAC9C,aAAA;SACF,CAAC;AAmFF,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,WAAW,EAAE,mBAAmB;SACjC,CAAC;QAtGA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;KACpD;IAcD,QAAQ,GAAA;;AAEN,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;AAC5D,SAAA;;AAED,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,SAAA;KACF;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;AACvE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,EAAE,eAAe,IAAI,EAAE,CAAC;gBACtD,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,GAAG,EAAE,WAAW,IAAI,EAAE,CAAC;gBACzD,IAAI,CAAC,cAAc,CAAC,cAAc;AAChC,oBAAA,GAAG,EAAE,eAAe,IAAI,YAAY,CAAC;AACvC,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AAC/D,oBAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AAC7D,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,2BAA2B;AAC9B,oBAAA,GAAG,EAAE,eAAe,KAAK,YAAY,CAAC;AACxC,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;gBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACF,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACF,SAAA,CAAC,CAAC;KACJ;;AAGD,IAAA,WAAW,CAAC,GAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;YACnC,YAAY,EAAE,GAAG,CAAC,SAAS;YAC3B,OAAO,EAAE,GAAG,CAAC,IAAI;AAClB,SAAA,CAAC,CAAC;KACJ;IAED,gBAAgB,CAAC,IAAS,EAAE,KAAc,EAAA;QACxC,IAAI,IAAI,KAAK,UAAU,EAAE;AACvB,YAAA,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IAED,IAAI,CAAC,IAAY,EAAE,OAAY,EAAA;AAC7B,QAAA,QAAQ,IAAI;YACV,KAAK,UAAU,EAAE;gBACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACvC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;oBAC5C,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAChE,CAAC,GAAQ,KAAK,GAAG,EAAE,aAAa,IAAI,eAAe,CACpD,CAAC;AACH,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,MAAM,CAAC,IAAS,EAAE,KAAU,EAAA;AAC1B,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,UAAU;gBACb,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAChE,CAAC,GAAQ,KAAK,GAAG,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,CACpC,CAAC;AACL,SAAA;KACF;AASD,IAAA,gBAAgB,CAAC,IAAY,EAAA;QAC3B,IAAI,CAAC,cAAc,GAAG;YACpB,GAAG,IAAI,CAAC,cAAc;AACtB,YAAA,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE;SACjD,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;KAC9D;AACD,IAAA,WAAW,CAAC,GAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KACrE;AAED,IAAA,MAAM,CAAC,GAAQ,EAAA;QACb,IAAI,GAAG,KAAK,gBAAgB,EAAE;AAC5B,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,YAAA,MAAM,GAAG,GAAG,CAAW,QAAA,EAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuC,oCAAA,EAAA,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1G,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClD,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,IAAI,MAAM,EAAE;AAC7C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,EAAE,CAAC;AACtC,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC5C,SAAA;KACF;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IACE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;YAChC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EACxC;AACA,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,cAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AAEnC,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,eAAe,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;YAC3C,WAAW,EAAE,cAAc,CAAC,WAAW;YACvC,eAAe,EAAE,cAAc,CAAC,cAAc;AAC9C,YAAA,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,EAAE,CAAC;AACpE,YAAA,qBAAqB,EAAE;AACrB,gBAAA,IAAI,EAAE,MAAM;AACb,aAAA;AACD,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,WAAW,EAAE,YAAY;SAC1B,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,CACrD,CAAC,GAAQ,KAAI;AACX,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,GAAG,CAAC;AAC7B,gBAAA,MAAM,GAAG,GAAG,CAAW,QAAA,EAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAsB,mBAAA,EAAA,GAAG,EAAE,GAAG,EAAE,CAAC;gBAChF,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACjD,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,aAAC,EACD,CAAC,GAAQ,KAAI;AACX,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,aAAC,CACF,CAAC;AACH,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAC/B,YAAA,IAAI,CAAC,iBAAiB;AACnB,iBAAA,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;AAC5C,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;oBAClB,IAAI,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;AAC/C,wBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,wBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACH,qBAAA;iBACF;AACF,aAAA,CAAC,CAAC;AACN,SAAA;KACF;+GAtPU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAArkB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA8P,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA9I,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAmb,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAmC,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,sQCvBxC,0mfA8aA,EAAA,MAAA,EAAA,CAAA,01CAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnd,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4C,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5D,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoe,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvY,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/E,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsd,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArY,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqY,uBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,SAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAze,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA0e,uBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDvZa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,0mfAAA,EAAA,MAAA,EAAA,CAAA,01CAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;;0BA0ChC,QAAQ;4CAhCF,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBAYG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;AEnCT,MAAM,aAAa,GAAG;AACpB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,gBAAgB,EAAE,kBAAkB;CACrC,CAAC;MAOW,2BAA2B,CAAA;AAqCtC,IAAA,aAAa,CAAC,UAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;AACtE,YAAA,IAAI,QAAQ;AAAE,gBAAA,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/C,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACzB,SAAA;KACF;AAED,IAAA,WAAA,CACU,IAAiB,EAClB,iBAAoC,EACnC,aAA4B,EAAA;QAF5B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QAClB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACnC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAjDtC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;AAGN,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;QACjD,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QAGtB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QAEvB,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,oBAAoB,CAAC;QACpC,IAAc,CAAA,cAAA,GAAW,iBAAiB,CAAC;QAC3C,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAmB,CAAA,mBAAA,GAAG,iBAAiB,CAAC;AACxC,QAAA,IAAA,CAAA,aAAa,GAAG;AACd,YAAA;AACE,gBAAA,UAAU,EAAE,yBAAyB;AACrC,gBAAA,KAAK,EAAE,WAAW;gBAClB,EAAE,EAAE,aAAa,CAAC,WAAW;AAC9B,aAAA;AACD,YAAA;AACE,gBAAA,UAAU,EAAE,kBAAkB;AAC9B,gBAAA,KAAK,EAAE,UAAU;gBACjB,EAAE,EAAE,aAAa,CAAC,gBAAgB;AACnC,aAAA;SACF,CAAC;QACF,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAInB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAgN5B,QAAA,IAAA,CAAA,MAAM,GAAQ;AACZ,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,WAAW,EAAE,EAAE;SAChB,CAAC;AA8QK,QAAA,IAAA,CAAA,QAAQ,GAAQ;AACrB,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,qBAAqB,EAAE,QAAQ;AAC/B,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,eAAe,EAAE,KAAK;SACvB,CAAC;QAveA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACrD;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KACvE;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AACpC,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACzB,QAAA,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,QAAQ,GAAG,CAAA,qBAAA,EAAwB,YAAY,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,YAAY,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;AAEtG,QAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC;AAClD,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;gBAClB,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CACvD,IAAI,EACJ,kBAAkB,EAClB,QAAQ,CACT,CAAC;iBACH,EAAE,IAAI,CAAC,CAAC;aACV;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;aACpC;AACF,SAAA,CAAC,CAAC;KACJ;IAED,iBAAiB,GAAA;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;AAC1D,QAAA,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,KAAK,EAAE,CAAC;AACjB,SAAA;KACF;;AAGD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,MAAM,MAAM,GAAiB,GAAG,CAAC,MAAsB,CAAC;AACxD,QAAA,MAAM,MAAM,GAAe,IAAI,UAAU,EAAE,CAAC;AAC5C,QAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAM,KAAI;AACzB,YAAA,MAAM,IAAI,GAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACrC,YAAA,MAAM,EAAE,GAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,OAAO,GAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,EAAE,GAAmB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAmB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AACrD,gBAAA,MAAM,EAAE,CAAC;AACV,aAAA,CAAQ,CAAC;YACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE;AAC5C,gBAAA,MAAM,EAAE,CAAC;AACV,aAAA,CAAQ,CAAC;AAEV,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE7C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CACzC,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAC7C,CAAC;AAEF,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;gBAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;AACtE,gBAAA,IAAI,QAAQ;AAAE,oBAAA,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAE9C,gBAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC;iBAChD,EAAE,GAAG,CAAC,CAAC;AACT,aAAA;AACH,SAAC,CAAC;QACF,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5C;AAGD,IAAA,oBAAoB,CAAC,YAAiB,EAAA;QACpC,MAAM,OAAO,GAAQ,EAAE,CAAC;AACxB,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;gBAChC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;AAC7B,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,YAAoB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;AACnC,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AACD,IAAA,qBAAqB,CAAC,IAAS,EAAA;;AAG7B,QAAA,MAAM,OAAO,GAAQ;AACnB,YAAA,QAAQ,EAAE;AACR,gBAAA,eAAe,EAAE,EAAE;AACnB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,eAAe,EAAE,YAAY;AAC7B,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,qBAAqB,EAAE;AACrB,oBAAA,IAAI,EAAE,MAAM;AACb,iBAAA;AACD,gBAAA,iBAAiB,EAAE,IAAI;AACvB,gBAAA,WAAW,EAAE,YAAY;AAC1B,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,iBAAiB,EAAE,KAAK;AACxB,gBAAA,iBAAiB,EAAE,KAAK;AACxB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,qBAAqB,EAAE,KAAK;AAC5B,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,kBAAkB,EAAE,EAAE;AACtB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,gBAAgB,EAAE,KAAK;AACvB,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,sBAAsB,EAAE,KAAK;AAC7B,gBAAA,mBAAmB,EAAE,EAAE;AACvB,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,eAAe,EAAE,EAAE;AACnB,gBAAA,iBAAiB,EAAE,EAAE;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,eAAe,EAAE,IAAI,CAAC,8BAA8B,EAAE;AACvD,aAAA;SACF,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEpE,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,GAAG;AACzC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD,CAAC;;;;AAKF,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;KAC5E;IAED,qBAAqB,CAAC,aAAkB,EAAE,cAAmB,EAAA;QAC3D,cAAc,GAAG,EAAE,CAAC;QACpB,IAAI,aAAa,EAAE,MAAM,EAAE;YACzB,aAAa,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,KAAa,KAAI;gBACrD,cAAc,CAAC,IAAI,EAAE,CAAC;AACtB,gBAAA,QAAQ,QAAQ,CAAC,CAAC,CAAC;AACjB,oBAAA,KAAK,gBAAgB;AACnB,wBAAA,cAAc,CAAC,IAAI,CACjB,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,CAAC,CAC9D,CAAC;wBACF,MAAM;AACR,oBAAA,KAAK,iBAAiB;AACpB,wBAAA,cAAc,CAAC,IAAI,CACjB,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,KAAK,CAAC,CAChE,CAAC;wBACF,MAAM;AACR,oBAAA,KAAK,UAAU;AACb,wBAAA,cAAc,CAAC,IAAI,CACjB,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CACzD,CAAC;wBACF,MAAM;AACR,oBAAA,KAAK,UAAU;AACb,wBAAA,cAAc,CAAC,IAAI,CACjB,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CACzD,CAAC;wBACF,MAAM;AACR,oBAAA,KAAK,aAAa;AAChB,wBAAA,cAAc,CAAC,IAAI,CACjB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CACpD,CAAC;wBACF,MAAM;AACR,oBAAA,KAAK,aAAa;AAChB,wBAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;wBAC9D,MAAM;oBACR,QAAQ;;AAET,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;QACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC;KAC7D;AAsBD,IAAA,qBAAqB,CAAC,IAAY,EAAE,QAAa,EAAE,KAAU,EAAA;QAC3D,OAAO;AACL,YAAA,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,CAAY,SAAA,EAAA,KAAK,CAAE,CAAA;AACzB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,kBAAkB,EAAE,GAAG;AACvB,YAAA,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC7D,YAAA,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AACpE,kBAAE,MAAM;AACR,kBAAE,IAAI;AACN,kBAAE,KAAK;AACT,YAAA,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACzE,YAAA,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AACjE,kBAAE,MAAM;AACR,kBAAE,IAAI;AACN,kBAAE,KAAK;AACT,YAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AAC5D,YAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAC/D,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,sBAAsB,EACpB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAChE,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,mBAAmB,EACjB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAC7D,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,WAAW,EAAE;AACX,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;AACzC,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,EAAE;AACT,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,CAAC;AACX,oBAAA,eAAe,EAAE,KAAK;AACtB,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;AACxC,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AAED,IAAA,sBAAsB,CAAC,IAAY,EAAE,QAAa,EAAE,KAAU,EAAA;QAC5D,OAAO;AACL,YAAA,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,CAAY,SAAA,EAAA,KAAK,CAAE,CAAA;AACzB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,kBAAkB,EAAE,GAAG;AACvB,YAAA,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC7D,YAAA,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AACpE,kBAAE,MAAM;AACR,kBAAE,IAAI;AACN,kBAAE,KAAK;AACT,YAAA,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE;AACxE,YAAA,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM;AACrE,kBAAE,IAAI;AACN,kBAAE,KAAK;AACT,YAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE;AAC3D,YAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAC/D,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,sBAAsB,EACpB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAChE,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,mBAAmB,EACjB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAC7D,YAAA,WAAW,EAAE;AACX,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;AACzC,aAAA;AACD,YAAA,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;SACxC,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,IAAY,EAAE,QAAa,EAAE,KAAU,EAAA;QACtD,OAAO;AACL,YAAA,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,CAAY,SAAA,EAAA,KAAK,CAAE,CAAA;AACzB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,kBAAkB,EAAE,GAAG;AACvB,YAAA,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC7D,YAAA,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AACpE,kBAAE,MAAM;AACR,kBAAE,IAAI;AACN,kBAAE,KAAK;AACT,YAAA,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACzE,YAAA,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM;AACrE,kBAAE,IAAI;AACN,kBAAE,KAAK;AACT,YAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE;AAC3D,YAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAC/D,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,sBAAsB,EACpB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAChE,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,mBAAmB,EACjB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAC7D,YAAA,WAAW,EAAE;AACX,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;AACzC,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,EAAE;AACT,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,CAAC;AACX,oBAAA,eAAe,EAAE,KAAK;AACtB,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;AACxC,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,aAAa;AAC1D,gBAAA,KAAK,EAAE,EAAE;AACV,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,aAAa;AAC1D,gBAAA,KAAK,EAAE,EAAE;AACV,aAAA;SACF,CAAC;KACH;IACD,kBAAkB,CAAC,QAAa,EAAE,KAAU,EAAA;QAC1C,OAAO;AACL,YAAA,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,CAAY,SAAA,EAAA,KAAK,CAAE,CAAA;AACzB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,kBAAkB,EAAE,GAAG;AACvB,YAAA,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC7D,YAAA,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AACpE,kBAAE,MAAM;AACR,kBAAE,IAAI;AACN,kBAAE,KAAK;AACT,YAAA,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACzE,YAAA,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AACjE,kBAAE,MAAM;AACR,kBAAE,IAAI;AACN,kBAAE,KAAK;AACT,YAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AAC5D,YAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAC/D,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AACpE,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,sBAAsB,EACpB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAChE,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,mBAAmB,EACjB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAC7D,YAAA,WAAW,EAAE;AACX,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;AACzC,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,EAAE;AACT,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,CAAC;AACX,oBAAA,eAAe,EAAE,KAAK;AACtB,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;AACxC,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACD,YAAA,gBAAgB,EAAE;AAChB,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,GAAG,EAAE,IAAI;AACV,aAAA;SACF,CAAC;KACH;AAED,IAAA,eAAe,CAAC,QAAa,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AAC3B,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AAC3B,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AAC3B,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AAC3B,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AAC3B,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;SAC5B,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,CAAC;AAC5B,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC3B,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,SAAA;AACD,QAAA,MAAM,SAAS,GAAQ;AACrB,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,CAAC;SACd,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,KAAU,KAAI;YAC1C,OAAO,CAAC,KAAK,CAAC,GAAG;AACf,gBAAA,KAAK,EACH,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ;AACjC,sBAAE,MAAM;AACR,sBAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE;AAC7B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,QAAQ,EACN,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;AACxB,oBAAA,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAClD,sBAAE,IAAI;AACN,sBAAE,KAAK;gBACX,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;AACxC,gBAAA,KAAK,EAAE,SAAS;aACjB,CAAC;AACJ,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,OAAO,CAAC;KAChB;AAWD,IAAA,WAAW,CAAC,cAAmB,EAAA;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;QAE9C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,KAAK,IAAI,CAAC,cAAc,EAAE;AACxE,YAAA,IAAI,CAAC,YAAY;AACf,gBAAA,sFAAsF,CAAC;AACzF,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;;QAGD,IAAI;YACF,IACE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,kBAAkB;AAC3C,gBAAA,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa;AACtC,gBAAA,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,sBAAsB;gBAC/C,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,EACzC;AACA,gBAAA,IAAI,CAAC,YAAY;AACf,oBAAA,sFAAsF,CAAC;AACzF,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;QAAC,MAAM;AACN,YAAA,IAAI,CAAC,YAAY;AACf,gBAAA,sFAAsF,CAAC;AACzF,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;;QAGD,IAAI;AACF,YAAA,IACE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,gBAAA,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBAC3B,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAClC;AACA,gBAAA,IAAI,CAAC,YAAY,GAAG,mCAAmC,CAAC;AACxD,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;QAAC,MAAM;AACN,YAAA,IAAI,CAAC,YAAY,GAAG,mCAAmC,CAAC;AACxD,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;;QAGD,IAAI;AACF,YAAA,IACE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,gBAAA,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBAC3B,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAClC;AACA,gBAAA,IAAI,CAAC,YAAY,GAAG,iCAAiC,CAAC;AACtD,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;QAAC,MAAM;AACN,YAAA,IAAI,CAAC,YAAY,GAAG,iCAAiC,CAAC;AACtD,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;;QAGD,IAAI;YACF,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,EAAE;AACzC,gBAAA,IAAI,CAAC,YAAY;AACf,oBAAA,gGAAgG,CAAC;AACnG,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;QAAC,MAAM;AACN,YAAA,IAAI,CAAC,YAAY;AACf,gBAAA,gGAAgG,CAAC;AACnG,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;;AAGD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACnD,IACE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB;AAC1C,gBAAA,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU;AACnC,gBAAA,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU;AACnC,gBAAA,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB;AACzC,gBAAA,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa;gBACtC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,EACtC;AACA,gBAAA,IAAI,CAAC,YAAY;AACf,oBAAA,sFAAsF,CAAC;AACzF,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;;;;;;AAMF,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,OAAO,KAAK,CAAC;KACd;IAED,8BAA8B,GAAA;QAC5B,OAAO;AACL,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,QAAQ,EAAE,EAAE;SACb,CAAC;KACH;AAED,IAAA,cAAc,CAAC,IAAS,EAAA;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC7C,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,gBAAA,IAAI,CAAC,qBAAqB,CACxB,QAAQ,CAAC,GAAG,EACZ,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,iBAAiB,CACvB,CAAC;aACH;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;AACF,SAAA,CAAC,CAAC;KACN;AAED,IAAA,qBAAqB,CAAC,EAAO,EAAE,IAAS,EAAE,iBAAsB,EAAA;AAC9D,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,MAAM,EAAE,gBAAgB;AACxB,YAAA,KAAK,EAAE,IAAI;SACZ,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC;AAClE,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,gBAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;AACF,SAAA,CAAC,CAAC;KACJ;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;KAClD;IAEO,SAAS,GAAA;AACf,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC/B;AAED,IAAA,YAAY,CAAC,EAAO,EAAA;AAClB,QAAA,IAAI,EAAE,KAAK,aAAa,CAAC,gBAAgB,EAAE;AACzC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;AAEnC,YAAA,IAAI,GAAW,CAAC;YAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;gBAChD,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,oBAAoB,CAAC;AAC/D,aAAA;AAAM,iBAAA;gBACL,GAAG;oBACD,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,+BAA+B,CAAC;AACvE,aAAA;YACD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;AACtE,YAAA,IAAI,QAAQ;AAAE,gBAAA,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AAChD,SAAA;KACF;+GAntBU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAvkB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAkb,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAsJ,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,2PCpBxC,sxEAsEA,EAAA,MAAA,EAAA,CAAA,o4EAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlgB,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmgB,kCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjc,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkc,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApgB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgF,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqb,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlDa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,sxEAAA,EAAA,MAAA,EAAA,CAAA,o4EAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;yJAOpC,UAAU,EAAA,CAAA;sBADT,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAE5B,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MElBI,iBAAiB,CAAA;AAE5B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,iDCP9B,2TAMA,EAAA,MAAA,EAAA,CAAA,inBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjkB,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDCa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,2TAAA,EAAA,MAAA,EAAA,CAAA,inBAAA,CAAA,EAAA,CAAA;;;MEMV,kBAAkB,CAAA;AAK7B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GARU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,sICT/B,uaAUM,EAAA,MAAA,EAAA,CAAA,EAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkkB,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACE,YAAY,EAAA,MAAA,EAGf,CAAC,QAAQ,EAAC,UAAU,EAAC,SAAS,EAAC,KAAK,CAAC,EAAA,QAAA,EAAA,uaAAA,EAAA,MAAA,EAAA,CAAA,g5pEAAA,CAAA,EAAA,CAAA;;;MEAjC,sBAAsB,CAAA;AAMhC,IAAA,WAAA,GAAA;QAJM,IAAQ,CAAA,QAAA,GAAE,KAAK,CAAC;AACf,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAE7B,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC;KACE;IAElB,QAAQ,GAAA;KACP;+GATU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,0LCPnC,gkBASA,EAAA,MAAA,EAAA,CAAA,uMAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlkB,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDFa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,gkBAAA,EAAA,MAAA,EAAA,CAAA,uMAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;0EAKpB,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACE,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MEPO,kBAAkB,CAAA;AAG7B,IAAA,SAAS,CAAC,KAAU,EAAA;AAClB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;QAC/C,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACjC,QAAA,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;KAEvB;+GARU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACxB,iBAAA,CAAA;8BAIC,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACLlC,MAAM,yBAAyB,GAAa;AAC1C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;MAQW,oBAAoB,CAAA;AAK/B,IAAA,WAAA,GAAA;AACA,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAU,KAAI,GAAI,CAAC;AAChC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAI,CAAC;QA+BtB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAA;KAjCL;AAIjB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;AACD,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAGD,SAAS,GAAA;AACP,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,IAAI,CAAC,CAAA;AAC5D,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,QAAQ,CAAC,aAAkB,EAAA;QACzB,IAAI,aAAa,EAAE,MAAM,EAAE;YACzB,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAQ,OAAO,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA,EAAE,CAAC,CAAA;AAC9E,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;AACnC,SAAA;QACD,IAAI,CAAC,KAAK,EAAE,CAAA;KACb;IAGD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;KACtD;IACD,qBAAqB,CAAC,IAAS,EAAE,KAAW,EAAA;AAC1C,QAAA,QAAQ,IAAI;YACV,KAAK,KAAK,EAAE;AACV,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,EAAE,CAAA;gBAEZ,MAAM;AACP,aAAA;YACD,KAAK,QAAQ,EAAE;AACb,gBAAA,IAAK,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,EAAC;oBACjC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACnC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,KAAK,EAAE,CAAA;AACb,iBAAA;gBAED,MAAM;AACP,aAAA;AACF,SAAA;KACF;IACD,KAAK,GAAA;QACH,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACtE,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;SACvH,EAAE,GAAG,CAAC,CAAA;KACR;+GAnEU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,yEAHpB,CAAC,yBAAyB,CAAC,EAMC,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,6BCjBnD,gjDAiBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDHa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,cAAc,EAAA,SAAA,EAGb,CAAC,yBAAyB,CAAC,EAAA,QAAA,EAAA,gjDAAA,EAAA,CAAA;0EAMe,MAAM,EAAA,CAAA;sBAA1D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAC1C,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEbK,YAAY,CAAA;IAEvB,SAAS,CAAC,KAAU,EAAE,GAAO,EAAA;AAC3B,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAO,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KACzC;+GAJU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAZ,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA,CAAA;;;MCCY,sBAAsB,CAAA;AACjC,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE;AAC1B,YAAA,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC/D,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CACvB,IAAI,CAAC,KAAK,CACR,IAAI,CAAC,SAAS,CACZ,KAAK;AACF,iBAAA,GAAG,CAAC,CAAC,QAAa,KACjB,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,UAAe,KAAI;gBAC7C,OAAO,EAAE,GAAG,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC9D,aAAC,CAAC,CACH;AACD,kBAAE,IAAI,EAAE,CACX,CACF,CACF,CAAC;AACF,YAAA,OAAO,GAAG,CAAC;AACZ,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;+GArBU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;AAC3B,iBAAA,CAAA;;;MC6BY,wBAAwB,CAAA;AA2DnC,IAAA,WAAA,CACU,EAAsB,EACtB,cAA+B,EAC/B,WAAwB,EACxB,YAA0B,EAC1B,SAA4B,EAC5B,aAA4B,EAC5B,QAAyB,EAAA;QANzB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAoB;QACtB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAmB;QAC5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QAjEnC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAS,CAAA,SAAA,GAAGI,WAAS,CAAC;QAEtB,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAE/B,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEhB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC3C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,YAAY,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,YAAY,EAAE,CAAC;QAErD,IAAkB,CAAA,kBAAA,GAAY,IAAI,CAAC;QAC5C,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;;QAG5B,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QAMjC,IAAyB,CAAA,yBAAA,GAAG,4BAA4B,CAAC;QACzD,IAAe,CAAA,eAAA,GAAG,iBAAiB,CAAC;QACpC,IAAkB,CAAA,kBAAA,GAAG,oBAAoB,CAAC;QAC1C,IAAkB,CAAA,kBAAA,GAAG,wBAAwB,CAAC;QAC9C,IAAkB,CAAA,kBAAA,GAAG,kBAAkB,CAAC;QACxC,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAQ;AACjB,YAAA,KAAK,EACH,0QAA0Q;AAC5Q,YAAA,YAAY,EAAE,CAAA;;;;AAIb,IAAA,CAAA;AACD,YAAA,aAAa,EAAE,oBAAoB;SACpC,CAAC;QAEF,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAmB,CAAA,mBAAA,GAAU,EAAE,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAU,EAAE,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAU,EAAE,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAU,EAAE,CAAC;QAChC,IAAU,CAAA,UAAA,GAAa,EAAE,CAAC;QAC1B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAyB/B,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AACnB,QAAA,IAAA,CAAA,aAAa,GAAG;YACd,EAAE,UAAU,EAAE,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE;YACtE,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE;SACrE,CAAC;QACF,IAAa,CAAA,aAAA,GAAG,iBAAiB,CAAC;QAClC,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QACtB,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;QACjC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;;AAE9B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AAC1B,YAAA,YAAY,EAAE;gBACZ,IAAI,CAAC,WAAW,IAAI,CAAC;AACrB,gBAAA,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,aAAA;AACD,YAAA,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACrE,mBAAmB,EAAE,CAAC,EAAE,CAAC;YACzB,+BAA+B,EAAE,CAAC,EAAE,CAAC;YACrC,iBAAiB,EAAE,CAAC,EAAE,CAAC;;YAEvB,6BAA6B,EAAE,CAAC,EAAE,CAAC;YACnC,gBAAgB,EAAE,CAAC,KAAK,CAAC;YACzB,cAAc,EAAE,CAAC,EAAE,CAAC;YACpB,oBAAoB,EAAE,CAAC,EAAE,CAAC;YAC1B,gBAAgB,EAAE,CAAC,EAAE,CAAC;AACtB,YAAA,SAAS,EAAE,EAAE;YACb,EAAE,EAAE,CAAC,EAAE,CAAC;YACR,gBAAgB,EAAE,CAAC,EAAE,CAAC;YACtB,sBAAsB,EAAE,CAAC,EAAE,CAAC;YAC5B,wBAAwB,EAAE,CAAC,EAAE,CAAC;YAC9B,8BAA8B,EAAE,CAAC,EAAE,CAAC;YACpC,4BAA4B,EAAE,CAAC,KAAK,CAAC;YACrC,gBAAgB,EAAE,CAAC,EAAE,CAAC;YACtB,sBAAsB,EAAE,CAAC,EAAE,CAAC;YAC5B,wBAAwB,EAAE,CAAC,EAAE,CAAC;YAC9B,8BAA8B,EAAE,CAAC,EAAE,CAAC;YACpC,4BAA4B,EAAE,CAAC,YAAY,CAAC;YAC5C,gBAAgB,EAAE,CAAC,EAAE,CAAC;YACtB,sBAAsB,EAAE,CAAC,EAAE,CAAC;YAC5B,wBAAwB,EAAE,CAAC,EAAE,CAAC;YAC9B,8BAA8B,EAAE,CAAC,EAAE,CAAC;YACpC,+BAA+B,EAAE,CAAC,EAAE,CAAC;YACrC,qCAAqC,EAAE,CAAC,EAAE,CAAC;YAC3C,mBAAmB,EAAE,CAAC,EAAE,CAAC;YACzB,iBAAiB,EAAE,CAAC,KAAK,CAAC;YAC1B,2BAA2B,EAAE,CAAC,KAAK,CAAC;YACpC,aAAa,EAAE,CAAC,EAAE,CAAC;AACnB,YAAA,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC,EAAE,CAAC;YACnB,mBAAmB,EAAE,CAAC,EAAE,CAAC;AAC1B,SAAA,CAAC,CAAC;;QAIH,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;;AAE1B,QAAA,IAAA,CAAA,UAAU,GAAG;AACX,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,kBAAkB,EAAE,EAAE;SACvB,CAAC;QAGF,IAAgB,CAAA,gBAAA,GAAG,0BAA0B,CAAC;AAuC9C,QAAA,IAAA,CAAA,QAAQ,GAAQ;YACd,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC;YAClD,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC;YAClD,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAC5D,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC;YACpD,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACtD,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,sBAAsB,CAAC;YAClE,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC1D,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC1D,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAC1C,iCAAiC,CAClC;YACD,qBAAqB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CACzC,+BAA+B,CAChC;YACD,uBAAuB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,yBAAyB,CAAC;YACxE,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAChE,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAC5D,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9B,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAC5D,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;YAC5C,2BAA2B,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAC/C,6BAA6B,CAC9B;YACD,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC1D,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC;YACtE,wBAAwB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,0BAA0B,CAAC;YAC1E,8BAA8B,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAClD,gCAAgC,CACjC;YACD,4BAA4B,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAChD,8BAA8B,CAC/B;YACD,wBAAwB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,0BAA0B,CAAC;YAC1E,8BAA8B,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAClD,gCAAgC,CACjC;YACD,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC1D,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC;YACtE,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC1D,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC;YACtE,wBAAwB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,0BAA0B,CAAC;YAC1E,8BAA8B,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAClD,gCAAgC,CACjC;YACD,+BAA+B,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CACnD,iCAAiC,CAClC;YACD,qCAAqC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CACzD,uCAAuC,CACxC;YACD,4BAA4B,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAChD,8BAA8B,CAC/B;YACD,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAChE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC;YACpD,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC;YAC9D,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC;YACpD,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC;SACjE,CAAC;AAEF,QAAA,IAAA,CAAA,KAAK,GAAQ;AACX,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,uBAAuB,EAAE,EAAE;AAC3B,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,uBAAuB,EAAE,EAAE;AAC3B,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,uBAAuB,EAAE,EAAE;AAC3B,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,oBAAoB,EAAE,EAAE;AACxB,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,eAAe,EAAE,EAAE;SACpB,CAAC;AAEF,QAAA,IAAA,CAAA,gBAAgB,GAAG;AACjB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,EAAE,EAAE,KAAK;SACV,CAAC;AACF,QAAA,IAAA,CAAA,YAAY,GAAG;YACb,MAAM;YACN,IAAI;YACJ,OAAO;YACP,UAAU;YACV,UAAU;YACV,kBAAkB;YAClB,UAAU;YACV,kBAAkB;YAClB,YAAY;YACZ,WAAW;YACX,UAAU;YACV,yBAAyB;YACzB,kBAAkB;YAClB,UAAU;SACX,CAAC;AAuBF,QAAA,IAAA,CAAA,gBAAgB,GAAQ,EAAE,GAAGA,WAAS,CAAC,gBAAgB,EAAE,CAAC;QAC1D,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAoB,CAAA,oBAAA,GAAY,EAAE,CAAC;AAoxBnC,QAAA,IAAA,CAAA,iBAAiB,GAAG;AAClB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;AA9gCA,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAC7B,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,CAC9C,CAAC;KACH;AACM,IAAA,qBAAqB,CAAC,OAA2B,EAAA;AACtD,QAAA,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;AAC/D,QAAA,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC;AAC9B,QAAA,OAAO,OAAO,GAAG,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;KAC9C;AACM,IAAA,mBAAmB,CAAC,OAA2B,EAAA;AACpD,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC;AACvE,QAAA,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC;AACzB,QAAA,OAAO,OAAO,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACzC;IAkED,WAAW,GAAA;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO;YACL,YAAY,EAAE,IAAI,EAAE,KAAK;YACzB,SAAS,EAAE,IAAI,EAAE,EAAE;YACnB,WAAW,EAAE,IAAI,EAAE,IAAI;AACvB,YAAA,SAAS,EAAE,WAAW;AACtB,YAAA,GAAG,EAAE,EAAE;SACR,CAAC;KACH;;AAED,IAAA,YAAY,CAAC,WAAmB,EAAE,KAAU,EAAE,UAAoB,EAAA;QAChE,IAAI,KAAK,GAAQ,EAAE,CAAC;AACpB,QAAA,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;AAC5C,QAAA,IACE,UAAU;AACV,YAAA,WAAW,KAAK,mBAAmB;YACnC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;AAErC,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;;AAC3B,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;KACnC;;AAGD,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,IACE,IAAI,CAAC,WAAW,CAAC,KAAK;AACtB,YAAA,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAC1E;AACA,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;IA8GD,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;AACjB,SAAA;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;AACxD,SAAA;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;KAChC;AACD,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;KAC/B;AAMD;;;AAGG;IACH,sBAAsB,GAAA;QACpB,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACpD,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AACvC,gBAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC5C;AACD,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;AAClD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;;IAGD,iBAAiB,GAAA;QACf,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC1B,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC;AACtE,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;iBACtC;AACF,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAED,qBAAqB,CAAC,OAAe,EAAE,OAAa,EAAA;AAClD,QAAA,QAAQ,OAAO;YACb,KAAK,eAAe,EAAE;gBACpB,IAAI,CAAC,6BAA6B,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;KACF;AAED,IAAA,YAAY,CAAC,GAAW,EAAA;AACtB,QAAA,IAAI,GAAG,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,OAAO;AAC5D,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,UAAU,CAAC,GAAQ,EAAE,IAAS,EAAA;AAC5B,QAAA,QAAQ,IAAI;YACV,KAAK,MAAM,EAAE;AACX,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,gBAAA,MAAM,WAAW,GAAG,GAAG,EAAE,MAAM,CAC7B,CAAC,GAAQ,KACP,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,WAAW;oBAC5C,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,OAAO,CAC3C,CAAC;AACF,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AACpE,gBAAA,IACE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,EACnE;AACA,oBAAA,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;oBAC7C,IAAI,CAAC,6BAA6B,EAAE,CAAC;oBACrC,IAAI,CAAC,8BAA8B,EAAE,CAAC;AACvC,iBAAA;AACD,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,IAAI,EAAE;AACT,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AACvD,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;AAC1D,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,OAAO,EAAE;AACZ,gBAAA,IAAI,CAAC,YAAY,CACf,gBAAgB,EAChB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CACrC,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CACf,sBAAsB,EACtB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CACvC,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,YAAY,CACf,kBAAkB,EAClB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,eAAe,EAAE;AACpB,gBAAA,IAAI,CAAC,YAAY,CACf,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CACrC,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CACf,qBAAqB,EACrB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CACvC,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,kBAAkB,EAAE;AACvB,gBAAA,IAAI,CAAC,YAAY,CACf,0BAA0B,EAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CACf,gCAAgC,EAChC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,YAAY,CACf,kBAAkB,EAClB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CACf,wBAAwB,EACxB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAC7B,MAAM;AACP,aAAA;YACD,KAAK,kBAAkB,EAAE;AACvB,gBAAA,IAAI,CAAC,YAAY,CACf,0BAA0B,EAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CACf,gCAAgC,EAChC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,KAAK;oBAC9C,IAAI,CAAC,QAAQ,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAC9D,0BAAE,QAAQ;0BACR,IAAI,CAAC,QAAQ,EAAE,4BAA4B,EAAE,KAAK,CAAC;gBACzD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,YAAY,CACf,kBAAkB,EAClB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CACf,wBAAwB,EACxB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAC7B,MAAM;AACP,aAAA;YACD,KAAK,kBAAkB,EAAE;AACvB,gBAAA,IAAI,CAAC,YAAY,CACf,0BAA0B,EAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CACf,gCAAgC,EAChC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM;AACP,aAAA;YACD,KAAK,yBAAyB,EAAE;AAC9B,gBAAA,IAAI,CAAC,YAAY,CACf,iCAAiC,EACjC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CACf,uCAAuC,EACvC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM;AACP,aAAA;YACD,KAAK,YAAY,EAAE;AACjB,gBAAA,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,WAAW,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;gBAC3D,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,GAAG,EAAE,WAAW,CAAC;AACtD,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;AACP,aAAA;AACF,SAAA;KACF;IAED,MAAM,CAAC,GAAQ,EAAE,IAAS,EAAA;AACxB,QAAA,QAAQ,IAAI;YACV,KAAK,MAAM,EAAE;gBACX,IAAI,GAAG,GAAG,EAAE,CAAC;gBACb,GAAG,GAAG,6DAA6D,CAAC;gBACpE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CACvD,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,CACpC,CAAC;AACF,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,gBAAA,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBAC1C,MAAM;AACP,aAAA;YACD,KAAK,IAAI,EAAE;gBACT,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAC1C,CAAC,GAAQ,KAAK,GAAG,EAAE,OAAO,KAAK,GAAG,EAAE,OAAO,CAC5C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,MAAM;AACP,aAAA;YACD,KAAK,OAAO,EAAE;gBACZ,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CACzD,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,CACpC,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;gBAC5C,MAAM;AACP,aAAA;YACD,KAAK,aAAa,EAAE;gBAClB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,CACrE,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;gBACxD,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAC7D,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;gBAChD,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAC7D,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAChD,gBAAA,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC3C,MAAM;AACP,aAAA;YACD,KAAK,gBAAgB,EAAE;gBACrB,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,CAClD,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC3C,MAAM;AACP,aAAA;YACD,KAAK,kBAAkB,EAAE;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,CACrE,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;gBACxD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM;AACP,aAAA;YACD,KAAK,wBAAwB,EAAE;gBAC7B,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,CAC1D,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,CAAC,gCAAgC,EAAE,cAAc,CAAC,CAAC;gBACpE,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAC7D,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAChD,gBAAA,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC3C,MAAM;AACP,aAAA;YACD,KAAK,gBAAgB,EAAE;gBACrB,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,CAClD,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC3C,MAAM;AACP,aAAA;YACD,KAAK,kBAAkB,EAAE;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,CACrE,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;gBACxD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM;AACP,aAAA;YACD,KAAK,wBAAwB,EAAE;gBAC7B,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,CAC1D,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,CAAC,gCAAgC,EAAE,cAAc,CAAC,CAAC;AACpE,gBAAA,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,KAAK;oBAC9C,IAAI,CAAC,QAAQ,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAC9D,0BAAE,QAAQ;0BACR,IAAI,CAAC,QAAQ,EAAE,4BAA4B,EAAE,KAAK,CAAC;gBACzD,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAC7D,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAChD,gBAAA,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC3C,MAAM;AACP,aAAA;YACD,KAAK,gBAAgB,EAAE;gBACrB,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,CAClD,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC3C,MAAM;AACP,aAAA;YACD,KAAK,kBAAkB,EAAE;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,CACrE,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;gBACxD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM;AACP,aAAA;YACD,KAAK,wBAAwB,EAAE;gBAC7B,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,CAC1D,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,CAAC,gCAAgC,EAAE,cAAc,CAAC,CAAC;gBACpE,MAAM;AACP,aAAA;YACD,KAAK,yBAAyB,EAAE;gBAC9B,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,EAAE,+BAA+B,EAAE,KAAK,EAAE,MAAM,CAC3D,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC;gBAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM;AACP,aAAA;YACD,KAAK,+BAA+B,EAAE;gBACpC,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,EAAE,qCAAqC,EAAE,KAAK,EAAE,MAAM,CACjE,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,CACf,uCAAuC,EACvC,cAAc,CACf,CAAC;gBACF,MAAM;AACP,aAAA;YACD,KAAK,YAAY,EAAE;AACjB,gBAAA,IAAI,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAClE,gBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAC7B,CAAC,GAAQ,KAAK,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CACjD,CAAC;AACF,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,MAAM,CAChE,CAAC,UAAe,KAAK,UAAU,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAC9C,CAAC;gBACF,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;AAAE,oBAAA,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACxE,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACvC,MAAM;AACP,aAAA;YACD,KAAK,WAAW,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBACrC,MAAM;AACP,aAAA;AACF,SAAA;KACF;IAED,SAAS,CAAC,IAAW,EAAE,GAAW,EAAA;AAChC,QAAA,OAAO,IAAI;AACT,cAAE,GAAG,CAAC,CAAC,GAAG,KAAI;AACZ,YAAA,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;AACZ,gBAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,aAAA;AACH,SAAC,CAAC;aACD,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;KACzB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,uBAAuB,GAAQ,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,KAAK,CAAC;QACtE,IAAI,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,KAAK,CAAC;QACtE,IAAI,oBAAoB,GAAG,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,KAAK,CAAC;QAC1E,IAAI,2BAA2B,GAC7B,IAAI,CAAC,QAAQ,EAAE,+BAA+B,EAAE,KAAK,CAAC;AACxD,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC1C,QAAA,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAClD,QAAA,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;YACtC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC/C,YAAA,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;AACH,QAAA,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;YACtC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;AACH,QAAA,oBAAoB,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;YAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;AACH,QAAA,2BAA2B,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;YACjD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAClE,IAAI,mBAAmB,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CACpD,CAAC,IAAS,KACR,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;YACnD,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CACtD,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QAC5E,IAAI,mBAAmB,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CACpD,CAAC,IAAS,KACR,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;YACnD,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CACtD,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QAC3E,IAAI,mBAAmB,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CACpD,CAAC,IAAS,KACR,uBAAuB,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;YAClD,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CACtD,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;KAC5E;AAED,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC/B;IAED,0BAA0B,CAAC,GAAQ,EAAE,IAAS,EAAA;AAC5C,QAAA,QAAQ,IAAI;YACV,KAAK,UAAU,EAAE;gBACf,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAChE,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;gBACF,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,KAAK,CAAC;AACtE,gBAAA,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CACrC,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;oBACrB,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AACpD,iBAAA;AACD,gBAAA,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;gBAExD,MAAM;AACP,aAAA;YACD,KAAK,gBAAgB,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,uBAAuB;oBAChC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CACvC,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;gBACJ,MAAM,oBAAoB,GACxB,IAAI,CAAC,QAAQ,CAAC,8BAA8B,EAAE,KAAK,CAAC;AACtD,gBAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAC/C,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACF,gBAAA,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3D,iBAAA;AACD,gBAAA,IAAI,CAAC,YAAY,CAAC,gCAAgC,EAAE,aAAa,CAAC,CAAC;AACpE,aAAA;AACF,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,GAAQ,EAAA;QACzB,IAAI,GAAG,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7C,YAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAC1E,YAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,YAAY,CACpD,GAAG,EAAE,MAAM,EACX,UAAU,CACX,CAAC;AACH,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACnD,IAAI,CAAC,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3D,SAAA;AACD,QAAA,MAAM,WAAW,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,CAAC,CAAC;QAClE,IAAI,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,KAAK,CAAC;AAC3E,QAAA,sBAAsB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,GAAQ,KAC9D,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CACrC,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,sBAAsB,CAAC,CAAC;KACvE;AAED,IAAA,kBAAkB,CAAC,GAAQ,EAAA;QACzB,IAAI,GAAG,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7C,YAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAC1E,YAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,YAAY,CACpD,GAAG,EAAE,MAAM,EACX,UAAU,CACX,CAAC;AACH,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACnD,IAAI,CAAC,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3D,SAAA;AACD,QAAA,MAAM,WAAW,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,CAAC,CAAC;QAClE,IAAI,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,KAAK,CAAC;QAC3E,IAAI,0BAA0B,GAC5B,IAAI,CAAC,QAAQ,CAAC,+BAA+B,EAAE,KAAK,CAAC;AACvD,QAAA,sBAAsB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,GAAQ,KAC9D,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CACrC,CAAC;AACF,QAAA,0BAA0B,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,GAAQ,KAClE,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CACrC,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,sBAAsB,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,YAAY,CACf,iCAAiC,EACjC,0BAA0B,CAC3B,CAAC;KACH;IAED,0BAA0B,CAAC,GAAQ,EAAE,IAAS,EAAA;AAC5C,QAAA,QAAQ,IAAI;YACV,KAAK,UAAU,EAAE;gBACf,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAChE,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;gBACF,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,KAAK,CAAC;AACtE,gBAAA,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CACrC,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;gBAExD,MAAM;AACP,aAAA;YACD,KAAK,gBAAgB,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,uBAAuB;oBAChC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CACvC,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;gBACJ,MAAM,oBAAoB,GACxB,IAAI,CAAC,QAAQ,CAAC,8BAA8B,EAAE,KAAK,CAAC;AACtD,gBAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAC/C,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,gCAAgC,EAAE,aAAa,CAAC,CAAC;AACpE,aAAA;AACF,SAAA;KACF;IAED,0BAA0B,CAAC,GAAQ,EAAE,IAAS,EAAA;AAC5C,QAAA,QAAQ,IAAI;YACV,KAAK,UAAU,EAAE;gBACf,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAChE,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;gBACF,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,KAAK,CAAC;AACtE,gBAAA,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CACrC,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;gBAExD,MAAM,mBAAmB,GACvB,IAAI,CAAC,QAAQ,CAAC,+BAA+B,EAAE,KAAK,CAAC;AACvD,gBAAA,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAC7C,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,SAAS,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,iCAAiC,EAAE,YAAY,CAAC,CAAC;gBAEnE,MAAM;AACP,aAAA;YACD,KAAK,gBAAgB,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,uBAAuB;oBAChC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CACvC,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;gBACJ,MAAM,oBAAoB,GACxB,IAAI,CAAC,QAAQ,CAAC,8BAA8B,EAAE,KAAK,CAAC;AACtD,gBAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAC/C,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,gCAAgC,EAAE,aAAa,CAAC,CAAC;gBAEnE,MAAM,0BAA0B,GAC9B,IAAI,CAAC,QAAQ,CAAC,qCAAqC,EAAE,KAAK,CAAC;AAC7D,gBAAA,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,MAAM,CAC3D,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CACf,uCAAuC,EACvC,mBAAmB,CACpB,CAAC;AACH,aAAA;AACF,SAAA;KACF;AAED,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;KAClC;AAED,IAAA,qBAAqB,CAAC,SAAc,EAAA;AAClC,QAAA,MAAM,SAAS,GAAQ;AACrB,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,QAAQ,EAAE,kBAAkB;AAC5B,YAAA,KAAK,EAAE,gBAAgB;AACvB,YAAA,WAAW,EAAE,sBAAsB;SACpC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;KACtD;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC;AACvC,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;gBACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI;AAC9C,sBAAE,MAAM,CACN,CAAC,GAAQ,KACP,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,WAAW;AAC5C,oBAAA,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,OAAO,CAC3C;sBACC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAChD,CAAC,GAAQ,KACP,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,WAAW;oBAC5C,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,OAAO,CAC3C,CAAC;AACF,gBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC;AAC9C,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC3D,gBAAA,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;gBAC/C,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBACrC,IAAI,CAAC,8BAA8B,EAAE,CAAC;aAGvC;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,QAAQ;AACzB,SAAA,CAAC,CAAC;KACJ;IAED,uBAAuB,GAAA;QACrB,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CACpC,CAAC,GAAQ,KACT,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAC/D,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAA;KACnC;;IAGF,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,cAAc,CAAC,2BAA2B,EAAE,CAAC,SAAS,CAAC;AAC1D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;aACrB;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,QAAQ;AACzB,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,6BAA6B,CAAC,UAAgB,EAAA;AAC5C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;;QAEpE,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AACvD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,MAAM,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,CAChC,CAAC,GAAQ,KAAK,GAAG,EAAE,SAAS,KAAK,YAAY,EAAE,SAAS,CACzD,CAAC;gBACF,IAAI,CAAC,UAAU,EAAE;AACf,oBAAA,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9B,GAAG,CAAC,WAAW,GAAG,GAAG,EAAE,WAAW,GAAG,CAAC,CAAC;AACxC,iBAAA;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;AACxB,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE;oBAC1C,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAChD,iBAAA;aACF;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,QAAQ;AACzB,SAAA,CAAC,CAAC;KACJ;IAED,8BAA8B,GAAA;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CACrD,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CACvB,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC;AAC1E,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC;gBAC/B,MAAM,OAAO,GAAkB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,CACnE,CAAC,GAAQ,KAAK,GAAG,CAAC,GAAG,CACtB,CAAC;AACF,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,KAAK,CAAC,MAAM,CACnE,CAAC,MAAW,KAAI;AACd,oBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;wBACvB,IAAI,UAAU,GAAG,KAAK,CAAC;wBACvB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;4BACjC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gCACjC,UAAU,GAAG,IAAI,CAAC;AACnB,6BAAA;AACH,yBAAC,CAAC,CAAC;AAEH,wBAAA,IAAI,UAAU,EAAE;AACd,4BAAA,OAAO,MAAM,CAAC;AACf,yBAAA;AACF,qBAAA;AACH,iBAAC,CACF,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;aACzD;AACF,SAAA,CAAC,CAAC;KACJ;IAED,gBAAgB,CAAC,QAAa,EAAE,UAAgB,EAAA;AAC9C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAClC,CAAC,GAAQ,KACP,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;AAC/C,YAAA,GAAG,EAAE,SAAS,IAAI,YAAY,EAAE,SAAS,CAC5C,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CACjD,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,YAAY,CAAC,EACpC,WAAW,CACZ,CAAC;;AAEF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAChD,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EACpC,QAAQ,CACT,CAAC;QACF,IAAI,UAAU,KAAK,mBAAmB,EAAE;AACtC,YAAA,IAAI,CAAC,YAAY,CACf,gBAAgB,EAChB,gBAAgB,EAAE,MAAM;AACtB,kBAAE,gBAAgB;AAClB,kBAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CACpC,CAAC;AACH,SAAA;KACF;IAED,oBAAoB,CAAC,qBAA0B,EAAE,YAAiB,EAAA;QAChE,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,QAAA,UAAU,GAAG,qBAAqB,EAAE,MAAM,CAAC,CAAC,QAAa,KACvD,YAAY,EAAE,IAAI,CAChB,CAAC,OAAY,KAAK,QAAQ,EAAE,SAAS,KAAK,OAAO,EAAE,SAAS,CAC7D,CACF,CAAC;AACF,QAAA,OAAO,UAAU,CAAC;KACnB;AAED,IAAA,sBAAsB,CAAC,IAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC;AAC9C,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;AAC1B,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;AAE3B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;aACrC;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,sBAAsB,CAAC,IAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC;AACpD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;AAE3B,gBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC;AACjC,gBAAA,IAAG,IAAI,EAAE;AAET,oBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACzC,oBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC/C,iBAAA;aACF;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,QAAQ;AACzB,SAAA,CAAC,CAAC;KACJ;IAOD,UAAU,CAAC,IAAS,EAAE,KAAU,EAAA;AAC9B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AACtC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,SAAA;KACF;IAED,WAAW,CAAC,IAAiC,EAAE,IAAS,EAAA;AACtD,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,QAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC1E,QAAA,MAAM,SAAS,GAAG;AAChB,YAAA,aAAa,EAAE,CAAA,EAAG,IAAI,EAAE,IAAI,CAAE,CAAA;AAC9B,YAAA,IAAI,EAAE,CAAA,EAAG,IAAI,EAAE,IAAI,CAAE,CAAA;AACrB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,QAAQ,EAAE,CAAA,EAAG,IAAI,EAAE,IAAI,CAAE,CAAA;SAC1B,CAAC;QACF,IAAI,IAAI,KAAK,aAAa,EAAE;YAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC;AACrE,YAAA,IAAI,CAAC,YAAY,CAAC,iCAAiC,EAAE;AACnD,gBAAA,GAAG,WAAW;gBACd,GAAG,CAAC,SAAS,CAAC;AACf,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,SAAS,CAAC;AACrE,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;oBACjB,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC;AACjE,oBAAA,IAAI,gBAAgB,GAAG,WAAW,CAAC,SAAS,CAC1C,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACF,oBAAA,WAAW,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;AACpC,oBAAA,IAAI,CAAC,YAAY,CACf,iCAAiC,EACjC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAC3C,CAAC;iBACH;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;oBAClB,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC;AACjE,oBAAA,WAAW,GAAG,WAAW,CAAC,MAAM,CAC9B,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,CAC3C,CAAC;AACF,oBAAA,IAAI,CAAC,YAAY,CACf,iCAAiC,EACjC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAC3C,CAAC;iBACH;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;aAAM,IAAI,IAAI,KAAK,WAAW,EAAE;YAC/B,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC;AACrE,YAAA,IAAI,CAAC,YAAY,CAAC,iCAAiC,EAAE;AACnD,gBAAA,GAAG,WAAW;gBACd,GAAG,CAAC,SAAS,CAAC;AACf,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,SAAS,CAAC;AACrE,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;oBACjB,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC;AACjE,oBAAA,IAAI,gBAAgB,GAAG,WAAW,CAAC,SAAS,CAC1C,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,CAC9C,CAAC;AACF,oBAAA,WAAW,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;AACpC,oBAAA,IAAI,CAAC,YAAY,CACf,iCAAiC,EACjC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAC3C,CAAC;iBACH;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;oBAClB,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC;AACjE,oBAAA,WAAW,GAAG,WAAW,CAAC,MAAM,CAC9B,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,CAC3C,CAAC;AACF,oBAAA,IAAI,CAAC,YAAY,CACf,iCAAiC,EACjC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAC3C,CAAC;iBACH;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAED,gBAAgB,CAAC,IAAiC,EAAE,IAAS,EAAA;QAC3D,IAAI,IAAI,KAAK,aAAa,EAAE;YAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC;AACrE,YAAA,IAAI,WAAW,EAAE;AACf,gBAAA,WAAW,GAAG,WAAW,CAAC,MAAM,CAC9B,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,CAC/C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,iCAAiC,EAAE,WAAW,CAAC,CAAC;AACnE,aAAA;AACF,SAAA;aAAM,IAAI,IAAI,KAAK,WAAW,EAAE;YAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,qBAAqB,EAAE,KAAK,IAAI,EAAE,CAAC;AAClE,YAAA,IAAI,SAAS,EAAE;AACb,gBAAA,SAAS,GAAG,SAAS,CAAC,MAAM,CAC1B,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,CAC/C,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAC;AACjE,aAAA;AACF,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,GAAQ,EAAA;;AAEzB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,IAAS,CAAC;AACd,QAAA,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;YACxB,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;YACzE,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC;AACjD,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,GAAQ,KAAI;AAC5D,gBAAA,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;oBAC/D,OAAO,GAAG,EAAE,GAAG,CAAC;AACjB,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;QACD,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;AACtD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAC5B,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,EACjC,WAAW,CACZ,CAAC;AACF,gBAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;aAC3C;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,QAAQ;AACzB,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;AACrD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;aACjD;AACF,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;AAOG;IACH,YAAY,CAAC,KAAU,EAAE,GAAW,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC,IAAI,CACf,KAAK;AACF,aAAA,MAAM,CACL,CAAC,GAAQ,EAAE,IAAS,MAClB,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CACnD,EACD,IAAI,GAAG,EAAE,CACV;aACA,MAAM,EAAE,CACZ,CAAC;KACH;AAED,IAAA,OAAO,CAAC,IAAW,EAAE,GAAU,EAAE,GAAW,EAAA;QAC1C,MAAM,IAAI,GAAQ,EAAE,CAAC;AACrB,QAAA,GAAG,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAC3B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAC1B,CAAC,WAAgB,KAAK,WAAW,CAAC,GAAG,CAAC,IAAI,OAAO,CAClD,CAAC;AACF,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACvE,QAAA,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YACrC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AACjD,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;oBACpC,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;oBAC/C,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;iBAC/D;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;AACrC,oBAAA,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtD,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,0BAA0B,CAAC,EAAE;AAC5D,wBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,wBAAA,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;AACtC,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC3C,qBAAA;oBACD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;iBAC/D;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;AACnE,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;oBACpC,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;;iBAGhD;AACD,gBAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;oBACrC,IAAI,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,EAAE;AAC3D,wBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,qBAAA;;iBAEF;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAED,iBAAiB,CAAC,KAAa,EAAE,IAAS,EAAA;AACxC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KACzC;AAED,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM;AACT,SAAA;KACF;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,IAAI,GAAW,CAAC;QAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAChD,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzC,SAAA;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;AAChD,YAAA,GAAG,IAAI,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC7C,SAAA;AAAM,aAAA;AACL,YAAA,GAAG,IAAI,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACxD,SAAA;QAED,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAElD;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,+BAA+B,EAAE,EAAE;AACnC,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,6BAA6B,EAAE,EAAE;AACjC,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,oBAAoB,EAAE,EAAE;AACxB,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,uBAAuB,EAAE,YAAY;AACrC,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,sBAAsB,EAAE,EAAE;AAC1B,YAAA,wBAAwB,EAAE,EAAE;AAC5B,YAAA,8BAA8B,EAAE,EAAE;AAClC,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,sBAAsB,EAAE,EAAE;AAC1B,YAAA,wBAAwB,EAAE,EAAE;AAC5B,YAAA,8BAA8B,EAAE,EAAE;AAClC,YAAA,4BAA4B,EAAE,YAAY;AAC1C,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,sBAAsB,EAAE,EAAE;AAC1B,YAAA,wBAAwB,EAAE,EAAE;AAC5B,YAAA,8BAA8B,EAAE,EAAE;AAClC,YAAA,+BAA+B,EAAE,EAAE;AACnC,YAAA,qCAAqC,EAAE,EAAE;AACzC,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,2BAA2B,EAAE,KAAK;AAClC,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,aAAa,EAAE,CAAC;SACjB,CAAC;QACF,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG;AAChB,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,kBAAkB,EAAE,EAAE;SACvB,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;AACrC,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,KAAK,EAAE,OAAO;AACf,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KACtD;AAED;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,cAAc;AAChB,aAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1B,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AAExB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,sBAAsB,CAAC,GAAQ,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,EAAE,CAAC;AACzB,QAAA,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,IAAmC,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,GAAG,EAAE,WAAW,CAAC;AAGpD,QAAA,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3C,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,SAAA;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AAGD,IAAA,eAAe,CAAC,GAAQ,EAAA;AACtB,QAAA,MAAM,GAAG,GAAG;YACV,GAAG,IAAI,GAAG,CAAC;gBACT,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;gBACrC,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;aACxC,CAAC;SACH,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;AAClD,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAA;AACzC,gBAAA,MAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAA;AAElD,gBAAA,IAAI,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;oBACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAQ,KACtC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CACzC,CAAC;AACF,oBAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAC5C,oBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,wBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC;wBACpC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE;oBACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAQ,KAC7C,qBAAqB,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CACjD,CAAC;AACF,oBAAA,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAClD,oBAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC3C,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,iBAAA;gBACD,IAAI,GAAG,EAAE,oBAAoB,IAAI,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE;oBAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAQ,KACxC,GAAG,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CACnD,CAAC;AACF,oBAAA,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;AACxD,oBAAA,IACE,IAAI,CAAC,UAAU,EAAE,wBAAwB;wBACzC,CAAC,IAAI,CAAC,mBAAmB,EACzB;AACA,wBAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC;wBACvC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,qBAAA;AACF,iBAAA;aACF;AACF,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;AAED,IAAA,cAAc,CAAC,GAAQ,EAAA;AACrB,QAAA,MAAM,GAAG,GAAG;YACV,GAAG,IAAI,GAAG,CAAC;AACT,gBAAA,IAAI,GAAG,EAAE,YAAY,IAAI,EAAE,CAAC;AAC5B,gBAAA,IAAI,GAAG,EAAE,kBAAkB,IAAI,EAAE,CAAC;AAClC,gBAAA,IAAI,GAAG,EAAE,0BAA0B,IAAI,EAAE,CAAC;gBAC1C,IAAI,GAAG,EAAE,SAAS,EAAE,eAAe,IAAI,EAAE,CAAC;AAC1C,gBAAA,IAAI,GAAG,EAAE,kBAAkB,IAAI,EAAE,CAAC;AAClC,gBAAA,IAAI,GAAG,EAAE,0BAA0B,IAAI,EAAE,CAAC;gBAC1C,IAAI,GAAG,EAAE,iBAAiB,EAAE,eAAe,IAAI,EAAE,CAAC;gBAClD,IAAI,GAAG,EAAE,iBAAiB,EAAE,uBAAuB,IAAI,EAAE,CAAC;aAC3D,CAAC;SACH,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;AACnD,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;AAClB,gBAAA,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC;AAC5B,gBAAA,IAAK,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;oBACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAQ,KACtC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAC7C,CAAC;AACF,oBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC;oBACpC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,oBAAA,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AACnD,iBAAA;AACD,gBAAA,IAAI,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;oBACrC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAQ,KAC7C,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAC/C,CAAC;AACF,oBAAA,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;AACxD,oBAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC3C,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,oBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa,CAAC;AAE5C,iBAAA;aACF;;;AAGF,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAED,mBAAmB,CAAC,cAAmB,EAAE,IAAY,EAAA;AAEnD,QAAA,QAAO,IAAI;AACT,YAAA,KAAK,QAAQ;gBACX,MAAM,UAAU,GAAG,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;gBAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACpG,gBAAA,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,CAAC,CAAC;AAEpE,gBAAA,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;AACvD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC;gBACpC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,MAAM;AACR,YAAA,KAAK,eAAe;gBAClB,MAAM,iBAAiB,GAAG,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC;gBAEvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACzG,gBAAA,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AACpD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC3C,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;KAEF;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAChD,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,KAAK,CAAC;AAC5C,QAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,KAAK,CAAC;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC/C,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,KAAK,CAAC;KAC7C;IAED,uBAAuB,GAAA;AACrB,QAAA,MAAM,IAAI,GAAG;YACX,mBAAmB;YACnB,eAAe;YACf,IAAI;YACJ,WAAW;YACX,UAAU;YACV,UAAU;YACV,YAAY;YACZ,kBAAkB;YAClB,eAAe;SAChB,CAAC;QACF,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AAC3B,YAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;gBAC9B,YAAY,GAAG,IAAI,CAAC;AACrB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;KACpC;IAED,aAAa,GAAA;QACX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACzD,sBAAsB,CACvB,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACzD,yBAAyB,CAC1B,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC7D,qBAAqB,CACtB,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB;AACpB,YAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe;AAC3C,cAAE,+QAA+Q;cAC/Q,0QAA0Q,CAAC;QAC/Q,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;KAC5E;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AAClD,SAAA;KACF;+GAnmDU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAmkB,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAtf,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAqc,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAiD,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAMR,UAAU,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvCvC,q/0FA67C2D,EAAA,MAAA,EAAA,CAAA,67QAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApkB,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmG,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4C,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsb,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxkB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAykB,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAApc,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAqc,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD55C9C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,q/0FAAA,EAAA,MAAA,EAAA,CAAA,67QAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;2QAUS,IAAI,EAAA,CAAA;sBAA5C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAEd,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBACb,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,2BAA2B,EAAA,CAAA;sBAApC,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,8BAA8B,EAAA,CAAA;sBAAvC,MAAM;gBAEE,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAIG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;AE9DD,MAAM,cAAc,GAAG;;AAE1B,IAAA,UAAU,EAAE;AACR,QAAA,uBAAuB,EAAE,CAAC;AAC1B,QAAA,qBAAqB,EAAE,CAAC;AACxB,QAAA,IAAI,EAAE,CAAC;AACV,KAAA;;AAGD,IAAA,SAAS,EAAE;AACP,QAAA,WAAW,EAAE,EAAE;AAElB,KAAA;;AAGD,IAAA,YAAY,EAAE;AACV,QAAA,WAAW,EAAE;AACT,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,EAAE;AACX,SAAA;AACD,QAAA,SAAS,EAAE;AACP,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,EAAE;AACX,SAAA;AACD,QAAA,gBAAgB,EAAE;AACd,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,EAAE;AACX,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,EAAE;AACX,SAAA;AACJ,KAAA;;AAGD,IAAA,OAAO,EAAE;AACL,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,CAAC;AACV,KAAA;;AAGD,IAAA,aAAa,EAAE;AACX,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,KAAK,EAAE,EAAE;AACZ,KAAA;;AAGD,IAAA,aAAa,EAAE;AACX,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,KAAK,EAAE,EAAE;AACZ,KAAA;;AAGD,IAAA,aAAa,EAAE;AACX,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,SAAS,EAAE,CAAC;AACf,KAAA;;AAGD,IAAA,yBAAyB,EAAE;AACvB,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,EAAE;AACX,KAAA;CACJ;;MC3DY,iBAAiB,CAAA;AAE5B,IAAA,WAAA,GAAA,GAAiB;IAEjB,aAAa,CAAC,IAAS,EAAE,cAAsB,EAAA;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;AAC9C,YAAA,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK;AACtB,SAAA,CAAQ,CAAC;QACV,IAAI,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;AAClD,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;KACvC;AAED,IAAA,cAAc,CAAC,IAAS,EAAA;QACtB,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjE,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,OAAO,GAAG,IAAI,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;IAED,gBAAgB,CAAC,IAAS,EAAE,WAAmB,EAAA;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;AAC9C,YAAA,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK;AACtB,SAAA,CAAQ,CAAC;QACV,MAAM,MAAM,GAAG7X,WAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAChD,IAAG,WAAW,KAAK,CAAC,EAAE;AACpB,YAAA,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,sBAAsB,GAAG,IAAI,GAAE,KAAK,CAAC;AAC3D,SAAA;aAAM,IAAG,WAAW,KAAK,CAAC,EAAE;AAC3B,YAAA,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,4BAA4B,GAAG,IAAI,GAAE,KAAK,CAAC;AACjE,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;+GAhCU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACPM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AAErE,MAAM,mBAAmB,GAAG;AACjC,IAAA,UAAU,EACR,oEAAoE;AACtE,IAAA,GAAG,EAAE,oFAAoF;AACzF,IAAA,WAAW,EACT,mFAAmF;AACrF,IAAA,QAAQ,EAAE,mBAAmB;CAC9B;;MCFY,+BAA+B,CAAA;AAL5C,IAAA,WAAA,GAAA;QAOE,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;QAKjC,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAO,CAAA,OAAA,GAA6C,WAAW,CAAC;AAG/D,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,IAAkB,CAAA,kBAAA,GAAG,WAAW,CAAC;QAC1C,IAAqB,CAAA,qBAAA,GAAG,CAAC,CAAC;QAC1B,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAgC,CAAA,gCAAA,GAAQ,EAAE,CAAC;AAoC5C,KAAA;IAlCC,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;gBAC3D,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,oBAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC;AACjC,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,UAAU,EAAE;AAC1C,YAAA,IAAI,CAAC,gCAAgC;gBACnC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CACzC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EACjC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CACvC,CAAC;AACJ,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gCAAgC,EAAE,IAAI,CACnE,CAAC,cAAmB,KAAK,cAAc,CAAC,OAAO,CAChD,CAAC;AACF,YAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;gBAC3D,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,oBAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC;AACjC,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,CAAC;KAC5C;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;+GApDU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,sbCP5C,q4uBA0UkH,EAAA,MAAA,EAAA,CAAA,6yJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzN,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+hB,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDnUrG,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,q4uBAAA,EAAA,MAAA,EAAA,CAAA,6yJAAA,CAAA,EAAA,CAAA;8BAQ/B,wBAAwB,EAAA,CAAA;sBAAhC,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEI,8BAA8B,EAAA,CAAA;sBAAvC,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACE,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;;;MEKK,kCAAkC,CAAA;IAyB7C,IAA2B,gBAAgB,CAAC,IAAS,EAAA;AACnD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KACzB;IAyDD,WACU,CAAA,WAA2B,EAC3B,qBAA4C,EAC5C,WAAwB,EACxB,gBAAsC,EACtC,QAAyB,EACzB,aAA4B,EAAA;QAL5B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAC3B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAsB;QACtC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAzF5B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;QAEjD,IAAG,CAAA,GAAA,GACD,yVAAyV,CAAC;QAC5V,IAAqB,CAAA,qBAAA,GAAG,CAAC,CAAC;AAChB,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,YAAY,EAAE,CAAC;QAC9D,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,uBAAuB,GAAQ;AAC7B,YAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;YAC1E,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;AACnC,YAAA,YAAY,EAAE;AACZ,gBAAA,oBAAoB,EAAE,EAAE;AACxB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,sBAAsB,EAAE,EAAE;AAC3B,aAAA;AACD,YAAA,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;AACrE,YAAA,MAAM,EAAE,EAAE;SACX,CAAC;AAOF,QAAA,IAAA,CAAA,wBAAwB,GAAQ;AAC9B,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,OAAO,EAAE,EAAE;SACZ,CAAC;AAEF,QAAA,IAAA,CAAA,YAAY,GAAQ;AAClB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QAGtB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QAEvB,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,qBAAqB,CAAC;QACrC,IAAc,CAAA,cAAA,GAAW,iBAAiB,CAAC;QAC3C,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAa,CAAA,aAAA,GAAG,mGAAmG,CAAC;AACpH,QAAA,IAAA,CAAA,aAAa,GAAG;AACd,YAAA;AACE,gBAAA,UAAU,EAAE,+BAA+B;AAC3C,gBAAA,KAAK,EAAE,WAAW;AAClB,gBAAA,EAAE,EAAE,SAAS;AACd,aAAA;AACD,YAAA;gBACE,UAAU,EAAE,IAAI,CAAC,qBAAqB;AACpC,sBAAE,gCAAgC;AAClC,sBAAE,uBAAuB;AAC3B,gBAAA,KAAK,EAAE,UAAU;AACjB,gBAAA,EAAE,EAAE,MAAM;AACX,aAAA;SACF,CAAC;QACF,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QAInB,IAAwB,CAAA,wBAAA,GAAY,KAAK,CAAC;KAStC;IAEJ,WAAW,CAAC,OAAsB,EAAA,GAAI;IACtC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC;AACvD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ;AAC/B,cAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG;cACrD,EAAE,CAAC;QACP,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AAC/D,YAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;AAC/C,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC3D,6BAA6B,CAC9B,CAAC;KACH;IAED,iBAAiB,GAAA;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACrD,QAAA,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,KAAK,EAAE,CAAC;AACjB,SAAA;KACF;IACD,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACpD,YAAA,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC,yBAAyB,CAAC;AAC7D,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;;QAErB,IAAI;YACF,IAAI,CAAC,wBAAwB,GAAG;AAC9B,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,OAAO,EAAE,EAAE;aACZ,CAAC;YAEF,IAAI,CAAC,YAAY,GAAG;AAClB,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,QAAQ,EAAE,EAAE;aACb,CAAC;AACF,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;AAC7D,YAAA,IAAI,SAAS,EAAE;AACb,gBAAA,SAAS,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnE,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5C,YAAA,MAAM,MAAM,GAAiB,KAAK,CAAC,MAAsB,CAAC;;AAE1D,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AAC3B,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,YAAA,MAAM,MAAM,GAAe,IAAI,UAAU,EAAE,CAAC;AAC5C,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAM,KAAI;AACzB,gBAAA,MAAM,IAAI,GAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACrC,gBAAA,MAAM,EAAE,GAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC9D,MAAM,MAAM,GAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,OAAO,GAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,EAAE,GAAmB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAmB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAEpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE;AACvC,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,GAAG,EAAE,KAAK;AACX,iBAAA,CAAQ,CAAC;AAEV,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAQ,CAAC;AACvE,gBAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAC7C,CAAC;gBACF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AACxC,oBAAA,IAAI,CAAC,YAAY;wBACf,kGAAkG;AAClG,4BAAA,QAAQ,CAAC;AACX,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,OAAO;AACR,iBAAA;AAED,gBAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG9X,WAAS,CAC9C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAClE,CAAC;AACF,gBAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,MAAM,CACzC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAC/C,CAAC,CACF,CAAC;gBAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,gBAAA,IACE,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;AACvC,oBAAA,4BAA4B,EAC5B;AACA,oBAAA,IAAI,CAAC,YAAY;wBACf,kGAAkG;AAClG,4BAAA,QAAQ,CAAC;AACX,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAE1B,OAAO;AACR,iBAAA;AACD,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAE7C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AACpD,oBAAA,IAAI,CAAC,YAAY;wBACf,kGAAkG;AAClG,4BAAA,QAAQ,CAAC;AACX,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,OAAO;AACR,iBAAA;AACD,gBAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;oBAC3B,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACnC,wBAAA,MAAM,QAAQ,GAAG;AACf,4BAAA,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAChB,4BAAA,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;yBACxB,CAAC;wBACF,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,qBAAA;oBACD,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACnC,wBAAA,MAAM,EAAE,GAAG;AACT,4BAAA,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAChB,4BAAA,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;4BAClB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;yBACnC,CAAC;wBACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,qBAAA;oBACD,IAAI,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE;AACrC,wBAAA,MAAM,QAAQ,GAAG;AACf,4BAAA,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC;AACzB,4BAAA,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,4BAAA,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AAClD,4BAAA,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;AACxB,4BAAA,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC;yBAC1B,CAAC;wBACF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChD,qBAAA;oBACD,IAAI,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE;AACrC,wBAAA,MAAM,QAAQ,GAAG;AACf,4BAAA,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC;AACzB,4BAAA,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,4BAAA,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AAClD,4BAAA,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;yBACvB,CAAC;wBACF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChD,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACtC,gBAAA,IAAI,OAAO,EAAE;AACX,oBAAA,IAAI,CAAC,YAAY;AACf,wBAAA,wFAAwF,CAAC;AAC3F,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,OAAO;AACR,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,iBAAA;AACD,gBAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CACzC,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAC7C,CAAC;AACF,gBAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;AACzC,oBAAA,IAAI,SAAS,CAAC;oBACd,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/C,oBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;AACzD,0BAAE,IAAI;0BACJ,KAAK,CAAC;AACV,oBAAA,IAAI,GAAQ,CAAC;oBACb,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE;AAClE,wBAAA,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,wBAAA,GAAG,GAAG;AACJ,4BAAA,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACnC,4BAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,4BAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,4BAAA,sBAAsB,EAAE,IAAI;AAC5B,4BAAA,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1B,4BAAA,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACpB,4BAAA,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACtB,4BAAA,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACrC,4BAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5B,4BAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5B,4BAAA,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACrC,4BAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AAC1B,4BAAA,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AAC3C,4BAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AACzC,4BAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;4BACzC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;AACnC,4BAAA,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AAC1C,4BAAA,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AAC9B,4BAAA,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AACjC,4BAAA,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;4BACnC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;AAEvC,4BAAA,cAAc,EAAE,SAAS;AACzB,4BAAA,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACjD,4BAAA,aAAa,EAAE,WAAW;4BAC1B,OAAO,EAAE,SAAS,IAAI,WAAW;AACjC,4BAAA,WAAW,EAAE,IAAI;yBAClB,CAAC;AACH,qBAAA;AAAM,yBAAA;AACL,wBAAA,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,wBAAA,GAAG,GAAG;AACJ,4BAAA,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACnC,4BAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,4BAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,4BAAA,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACvC,4BAAA,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1B,4BAAA,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACpB,4BAAA,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACtB,4BAAA,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACrC,4BAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5B,4BAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5B,4BAAA,oBAAoB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AACtC,4BAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AAC1B,4BAAA,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AAC3C,4BAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AACzC,4BAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;4BACzC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;AACnC,4BAAA,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AAC1C,4BAAA,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AAC9B,4BAAA,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;AACjC,4BAAA,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;4BACnC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;AAEvC,4BAAA,cAAc,EAAE,SAAS;AACzB,4BAAA,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACjD,4BAAA,aAAa,EAAE,WAAW;4BAC1B,OAAO,EAAE,SAAS,IAAI,WAAW;AACjC,4BAAA,WAAW,EAAE,IAAI;yBAClB,CAAC;AACH,qBAAA;oBACD,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACtB,aAAC,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;;AAEV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;KACF;IACD,cAAc,GAAA;QACZ,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3E,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,IAAI,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;;AAID,IAAA,aAAa,CAAC,MAAW,EAAA;QACvB,MAAM,EAAE,GAAG,cAAc,CAAC;AAC1B,QAAA,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;AACb,YAAA,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9D,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChD,SAAA;AAED;;;;;;;;;;;;;;;;;AAiBG;AACH,QAAA,MAAM,SAAS,GACb,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACrD,kBAAkB;AAChB,cAAE,MAAM,CAAC,CAAC,CAAC;AACX,cAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAChB,QAAA,MAAM,QAAQ,GACZ,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACrD,kBAAkB;AAChB,cAAE,MAAM,CAAC,EAAE,CAAC;AACZ,cAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACjB,QAAA,MAAM,YAAY,GAChB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACrD,kBAAkB;AAChB,cAAE,MAAM,CAAC,EAAE,CAAC;AACZ,cAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACjB,QAAA,MAAM,eAAe,GACnB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACrD,kBAAkB;AAChB,cAAE,MAAM,CAAC,EAAE,CAAC;AACZ,cAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAEjB,QAAA,IACE,CAAC,SAAS;AACV,YAAA,CAAC,WAAW;aACX,MAAM,CAAC,CAAC,CAAC;AACR,iBAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC;AAC9D,aAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACT,iBAAC,IAAI,CAAC,YAAY,IAAI,YAAY;AAChC,oBAAA,IAAI,CAAC,YAAY,IAAI,eAAe,CAAC,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC;AACR,iBAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ;AACpB,oBAAA,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY;AACzB,oBAAA,MAAM,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC;AAClC,aAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACT,iBAAC,IAAI,CAAC,YAAY,IAAI,YAAY;AAChC,oBAAA,IAAI,CAAC,YAAY,IAAI,eAAe,CAAC,CAAC;aACzC,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,eAAe,CAAC,CAAC;AACvE,YAAA,CAAC,MAAM,CAAC,CAAC,CAAC,EACV;AACA,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;IACD,sBAAsB,CAAC,GAAQ,EAAE,KAAU,EAAA;AACzC,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;AAC/B,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;SAC5B,CAAC;AAEF,QAAA,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE;AAC1B,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;YACL,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEtC,YAAA,MAAM,SAAS,GAAGhF,QAAM,CACtB,GAAG,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,EACtE,uBAAuB,CACxB,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAChC,IAAI,SAAS,IAAI,cAAc,EAAE;AAC/B,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YAED,UAAU,CAAC,MAAK,GAAG,EAAE,CAAC,CAAC,CAAC;AACxB,YAAA,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;AAE9B,YAAA,UAAU,CAAC,QAAQ,CACjB,OAAO,KAAK,KAAK,QAAQ;kBACrB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;sBAC3D,KAAK,GAAG,CAAC;kBACb,KAAK,CACV,CAAC;AACF,YAAA,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,IACE,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChC,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnC,WAAW,GAAG,UAAU,EACxB;AACA,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;KACF;IACD,UAAU,CAAC,GAAQ,EAAE,KAAU,EAAA;AAC7B,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;AAE/B,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;SAC5B,CAAC;AAEF,QAAA,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE;AACnB,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE;AAC1B,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;;AAEL,YAAA,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;AAC9B,YAAA,UAAU,CAAC,QAAQ,CACjB,OAAO,KAAK,KAAK,QAAQ;kBACrB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;sBAC3D,KAAK,GAAG,CAAC;kBACb,KAAK,CACV,CAAC;AACF,YAAA,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,IAAI,WAAW,GAAG,UAAU,EAAE;AAC5B,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AACpC,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACzB,QAAA,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,QAAQ,GAAG,CAAA,yBAAA,EAA4B,YAAY,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,YAAY,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;QAE1G,IAAI,CAAC,WAAW,CAAC,8BAA8B,EAAE,CAAC,SAAS,CACzD,CAAC,IAAS,KAAI;YACZ,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,eAAe,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,aAAA;YACD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CACjD,IAAI,CAAC,IAAI,EACT,kBAAkB,EAClB,QAAQ,CACT,CAAC;iBACH,EAAE,IAAI,CAAC,CAAC;AACV,aAAA;AACH,SAAC,EACD,CAAC,KAAK,KAAI;AACR,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;AACrC,SAAC,CACF,CAAC;KACH;IAED,8BAA8B,GAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,OAAO,GAAQ,EAAE,CAAC;QACtB,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;YAC7D,IAAI,MAAM,EAAE,OAAO,EAAE;gBACnB,qBAAqB,IAAI,CAAC,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,GAAG;YACR,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,iBAAiB;YACzD,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ;YACxC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ;AACxC,YAAA,wBAAwB,EACtB,IAAI,CAAC,wBAAwB,EAAE,OAAO,EAAE,MAAM;AAChD,YAAA,wBAAwB,EAAE,qBAAqB;SAChD,CAAC;AACF,QAAA,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,SAAS,CACjE,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;AAChC,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,SAAC,CACF,CAAC;KACH;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;KAClD;IAEO,SAAS,GAAA;AACf,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC/B;IAED,SAAS,CAAC,IAAS,EAAE,GAAW,EAAA;AAC9B,QAAA,QAAQ,GAAG;AACT,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;gBACjD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;AACnD,oBAAA,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE;AAC3B,wBAAA,IAAI,IAAI,CAAC;wBACT,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACxC,4BAAA,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,yBAAA;AAAM,6BAAA;AACL,4BAAA,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;AACxB,yBAAA;AACD,wBAAA,KAAK,GAAG;4BACN,IAAI;4BACJ,IAAI,EAAE,UAAU,CAAC,KAAK;4BACtB,SAAS,EAAE,UAAU,CAAC,SAAS;yBAChC,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,KAAK,CAAC;gBACb,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,WAAW,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACzD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,eAAoB,KAAI;AAC/D,oBAAA,IAAI,eAAe,CAAC,YAAY,IAAI,IAAI,EAAE;AACxC,wBAAA,WAAW,GAAG;4BACZ,IAAI,EAAE,eAAe,CAAC,IAAI;4BAC1B,UAAU,EAAE,eAAe,CAAC,YAAY;4BACxC,KAAK,EAAE,eAAe,CAAC,KAAK;yBAC7B,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,WAAW,CAAC;gBAEnB,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,WAAW,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACvD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,eAAoB,KAAI;AAC/D,oBAAA,IAAI,eAAe,CAAC,YAAY,IAAI,IAAI,EAAE;AACxC,wBAAA,WAAW,GAAG;4BACZ,IAAI,EAAE,eAAe,CAAC,IAAI;4BAC1B,KAAK,EAAE,eAAe,CAAC,KAAK;4BAC5B,QAAQ,EAAE,eAAe,CAAC,SAAS;yBACpC,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,WAAW,CAAC;gBAEnB,MAAM;AACR,YAAA,KAAK,IAAI;AACP,gBAAA,IAAI,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACnD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAc,KAAI;AACzD,oBAAA,IAAI,SAAS,CAAC,YAAY,IAAI,IAAI,EAAE;AAClC,wBAAA,KAAK,GAAG;4BACN,IAAI,EAAE,SAAS,CAAC,IAAI;4BACpB,UAAU,EAAE,SAAS,CAAC,WAAW;4BACjC,KAAK,EAAE,SAAS,CAAC,KAAK;yBACvB,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,KAAK,CAAC;gBACb,MAAM;AACR,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACpD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;AAC1D,oBAAA,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI,EAAE;AACnC,wBAAA,MAAM,GAAG;4BACP,IAAI,EAAE,UAAU,CAAC,IAAI;4BACrB,UAAU,EAAE,UAAU,CAAC,WAAW;4BAClC,KAAK,EAAE,UAAU,CAAC,KAAK;yBACxB,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,MAAM,CAAC;gBACd,MAAM;AAER,YAAA,KAAK,cAAc;gBACjB,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAc,KAAI;AACzD,oBAAA,IAAI,SAAS,CAAC,YAAY,IAAI,IAAI,EAAE;AAClC,wBAAA,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC;AAC/B,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,KAAK,CAAC;gBACb,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAa,KAAI;AACvD,oBAAA,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;AACzB,wBAAA,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC;AAC9B,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,KAAK,CAAC;gBACb,MAAM;AAER,YAAA,KAAK,YAAY;gBACf,IAAI,IAAI,IAAI,KAAK,EAAE;AACjB,oBAAA,OAAO,CAAC,CAAC;AACV,iBAAA;qBAAM,IAAI,IAAI,IAAI,YAAY,EAAE;AAC/B,oBAAA,OAAO,CAAC,CAAC;AACV,iBAAA;qBAAM,IAAI,IAAI,IAAI,aAAa,EAAE;AAChC,oBAAA,OAAO,CAAC,CAAC;AACV,iBAAA;qBAAM,IAAI,IAAI,IAAI,MAAM,EAAE;AACzB,oBAAA,OAAO,CAAC,CAAC;AACV,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,CAAC,CAAC;AACV,iBAAA;gBACD,MAAM;AACT,SAAA;KACF;IAED,KAAK,GAAA;QACH,IAAI,CAAC,wBAAwB,GAAG;AAC9B,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,OAAO,EAAE,EAAE;SACZ,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG;AAClB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,QAAQ,EAAE,EAAE;SACb,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,CAAC;KAC5C;AACD,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,MAAM;AACT,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3E;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,GAAW,CAAC;QAChB,IAAI,YAAY,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,YAAY,GAAG,mCAAmC,GAAG,IAAI,CAAC,GAAG,CAAC;AAC/D,aAAA;AAAM,iBAAA;gBACL,YAAY;AACV,oBAAA,2DAA2D,CAAC;AAC/D,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAChE,gBAAA,YAAY,GAAG,qCAAqC,GAAG,IAAI,CAAC,UAAU,CAAC;AACxE,aAAA;AAAM,iBAAA;gBACL,YAAY,GAAG,oCAAoC,CAAC;AACrD,aAAA;AACF,SAAA;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;AAChD,YAAA,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAC1E,SAAA;AAAM,aAAA;AACL,YAAA,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAC3E,SAAA;QAED,YAAY,GAAG,+BAA+B,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KACnD;;IAGD,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,QAAA,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACpC,QAAA,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CACvD,CAAC,GAAQ,KAAI;YACX,IAAI,GAAG,EAAE,QAAQ,EAAE;AACjB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,SAAC,CACF,CAAC;KACH;+GAhyBU,kCAAkC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoG,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAnL,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAmB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAqc,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAlG,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAnQ,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kCAAkC,yaC1B/C,86EA2CA,EAAA,MAAA,EAAA,CAAA,ywEAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1E,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4C,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5C,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6C,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqY,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmE,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,0BAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gCAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDjBa,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAL9C,SAAS;+BACE,iCAAiC,EAAA,QAAA,EAAA,86EAAA,EAAA,MAAA,EAAA,CAAA,ywEAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;gPAKjC,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACE,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAII,8BAA8B,EAAA,CAAA;sBAAvC,MAAM;gBAgBoB,gBAAgB,EAAA,CAAA;sBAA1C,KAAK;uBAAC,cAAc,CAAA;gBAGZ,OAAO,EAAA,CAAA;sBAAf,KAAK;;;AEtDD,MAAM,KAAK,GAAG;AACjB,IAAA,KAAK,EAAE,mBAAmB;CAC7B;;MC+BY,yCAAyC,CAAA;IAsBpD,IAA2B,gBAAgB,CAAC,IAAS,EAAA;AACnD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KACzB;IA0FD,WACU,CAAA,WAA2B,EAC3B,qBAA4C,EAC5C,WAAwB,EACxB,gBAAsC,EACtC,QAAyB,EACzB,aAA4B,EAAA;QAL5B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAC3B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAsB;QACtC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAvH5B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;QACjD,IAAqB,CAAA,qBAAA,GAAG,CAAC,CAAC;AAChB,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,YAAY,EAAE,CAAC;QAC9D,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,uBAAuB,GAAQ;AAC7B,YAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;YAC1E,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;AACnC,YAAA,YAAY,EAAE;AACZ,gBAAA,oBAAoB,EAAE,EAAE;AACxB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,sBAAsB,EAAE,EAAE;AAC3B,aAAA;AACD,YAAA,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;AACrE,YAAA,MAAM,EAAE,EAAE;SACX,CAAC;QAQF,IAAG,CAAA,GAAA,GACD,yVAAyV,CAAC;AAC5V,QAAA,IAAA,CAAA,wBAAwB,GAAQ;AAC9B,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,IAAO,CAAA,OAAA,GAA6C,WAAW,CAAC;AAChE,QAAA,IAAA,CAAA,QAAQ,GAAQ;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,YAAY,EAAE,CAAC;SAChB,CAAC;AAEF,QAAA,IAAA,CAAA,UAAU,GAAQ;AAChB,YAAA,SAAS,EAAE;AACT,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA;SACF,CAAC;AAEF,QAAA,IAAA,CAAA,YAAY,GAAQ;AAClB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,oBAAoB,EAAE,EAAE;AACxB,YAAA,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QAGtB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QAEvB,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,qBAAqB,CAAC;QACrC,IAAc,CAAA,cAAA,GAAW,iBAAiB,CAAC;QAC3C,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAa,CAAA,aAAA,GAAG,mGAAmG,CAAC;AACpH,QAAA,IAAA,CAAA,aAAa,GAAG;AACd,YAAA;AACE,gBAAA,UAAU,EAAE,+BAA+B;AAC3C,gBAAA,KAAK,EAAE,WAAW;AAClB,gBAAA,EAAE,EAAE,SAAS;AACd,aAAA;AACD,YAAA;gBACE,UAAU,EAAE,IAAI,CAAC,qBAAqB;AACpC,sBAAE,gCAAgC;AAClC,sBAAE,uBAAuB;AAC3B,gBAAA,KAAK,EAAE,UAAU;AACjB,gBAAA,EAAE,EAAE,MAAM;AACX,aAAA;SACF,CAAC;QACF,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QAKnB,IAAwB,CAAA,wBAAA,GAAY,KAAK,CAAC;QAC1C,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;QAEhC,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;KAQxB;IAEJ,WAAW,CAAC,OAAsB,EAAA,GAAI;IACtC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;AAC3D,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;QAChE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC;AACvD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ;AAC/B,cAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG;cACrD,EAAE,CAAC;QACP,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AAC/D,YAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;AAC/C,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC3D,6BAA6B,CAC9B,CAAC;KACH;IAED,iBAAiB,GAAA;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACrD,QAAA,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,KAAK,EAAE,CAAC;AACjB,SAAA;KACF;IACD,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACpD,YAAA,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC,yBAAyB,CAAC;AAC7D,SAAC,CAAC,CAAC;KACJ;IAED,YAAY,CAAC,KAAU,EAAE,OAAa,EAAA;QACpC,IAAI;YACF,IAAI,CAAC,wBAAwB,GAAG;AAC9B,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,OAAO,EAAE,EAAE;aACZ,CAAC;YAEF,IAAI,CAAC,YAAY,GAAG;AAClB,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,oBAAoB,EAAE,EAAE;AACxB,gBAAA,QAAQ,EAAE,EAAE;aACb,CAAC;AACF,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;AAC7D,YAAA,IAAI,SAAS,EAAE;AACb,gBAAA,SAAS,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnE,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5C,YAAA,MAAM,MAAM,GAAiB,KAAK,CAAC,MAAsB,CAAC;;AAE1D,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AAC3B,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,YAAA,MAAM,MAAM,GAAe,IAAI,UAAU,EAAE,CAAC;AAC5C,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAM,KAAI;AACzB,gBAAA,MAAM,IAAI,GAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACrC,gBAAA,MAAM,EAAE,GAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9D,gBAAA,MAAM,MAAM,GAAW,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AACxF,gBAAA,MAAM,MAAM,GAAW,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AACtF,gBAAA,MAAM,OAAO,GAAW,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACtE,MAAM,EAAE,GAAmB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,YAAY,GAAmB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvD,MAAM,QAAQ,GAAmB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpD,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAQ,CAAC;AACvE,gBAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAC7C,CAAC;AACF,gBAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBACtC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;AACnC,oBAAA,QAAQ,KAAK,EAAE,WAAW,EAAE;AAC1B,wBAAA,KAAK,4BAA4B;AAC/B,4BAAA,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;4BACxC,MAAM;AACR,wBAAA,KAAK,0BAA0B;AAC7B,4BAAA,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;4BAClD,MAAM;AACR,wBAAA;4BACE,MAAM;AACT,qBAAA;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;KACF;AAED;;;;;AAKG;IACH,uBAAuB,CAAC,EAAkB,EAAE,KAAa,EAAA;AACvD,QAAA,IAAI,wBAAwB,GAAQ;AAClC,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;QACF,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE;AAC5C,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,GAAG,EAAE,KAAK;AACX,SAAA,CAAQ,CAAC;QACV,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAI;YACxC,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,YAAA,GAAG,CAAC,OAAO,CAAC,CAAC,EAAO,KAAI;AACtB,gBAAA,WAAW,GAAG,WAAW,GAAG,EAAE,CAAC;AACjC,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gBACnD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACrE,aAAA;AAAM,iBAAA;gBACL,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACrE,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AACxC,YAAA,IAAI,CAAC,YAAY;gBACf,kGAAkG;AAClG,oBAAA,QAAQ,CAAC;AACX,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,OAAO;AACR,SAAA;QAED,wBAAwB,CAAC,MAAM,GAAG/X,WAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,wBAAwB,CAAC,UAAU,GAAGA,WAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,QAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AACpD,YAAA,IAAI,CAAC,YAAY;gBACf,kGAAkG;AAClG,oBAAA,QAAQ,CAAC;AACX,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,OAAO;AACR,SAAA;AAED,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CACpC,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAC7C,CAAC;AACF,QAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;AACzC,YAAA,IAAI,SAAS,CAAC;AACd,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;AACzD,kBAAE,IAAI;kBACJ,KAAK,CAAC;YACV,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AACpD,gBAAA,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,aAAA;AAAM,iBAAA;AACL,gBAAA,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,aAAA;;AAED,YAAA,IAAI,KAAK,EAAE,WAAW,EAAE,KAAK,4BAA4B,EAAE;AACzD,gBAAA,wBAAwB,CAAC,OAAO,CAAC,IAAI,CACnC,IAAI,CAAC,gBAAgB,CACnB,MAAM,EACN,WAAW,EACX,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,IAAI,GAAG,KAAK,CAChE,CACF,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,wBAAwB,EAAE,MAAM,CAAC;AACpE,gBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU;oBAClC,wBAAwB,EAAE,UAAU,CAAC;gBACvC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,wBAAwB,EAAE,OAAO,CAAC;AACvE,aAAA;AACD,YAAA,IAAI,KAAK,EAAE,WAAW,EAAE,KAAK,0BAA0B,EAAE;AACvD,gBAAA,wBAAwB,CAAC,OAAO,CAAC,IAAI,CACnC,IAAI,CAAC,gBAAgB,CACnB,MAAM,EACN,SAAS,EACT,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,IAAI,GAAG,KAAK,CAChE,CACF,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,wBAAwB,EAAE,MAAM,CAAC;AAClE,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU;oBAChC,wBAAwB,EAAE,UAAU,CAAC;gBACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG,wBAAwB,EAAE,OAAO,CAAC;AACrE,aAAA;AACD,YAAA,IAAI,KAAK,EAAE,WAAW,EAAE,KAAK,gCAAgC,EAAE;AAC7D,gBAAA,wBAAwB,CAAC,OAAO,CAAC,IAAI,CACnC,IAAI,CAAC,gBAAgB,CACnB,MAAM,EACN,cAAc,EACd,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,IAAI,GAAG,KAAK,CAChE,CACF,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,wBAAwB,EAAE,MAAM,CAAC;AACvE,gBAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU;oBACrC,wBAAwB,EAAE,UAAU,CAAC;AACvC,gBAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO;oBAClC,wBAAwB,EAAE,OAAO,CAAC;AACrC,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1C;;AAE6F;AAC7F,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,YAAY;AACf,gBAAA,wFAAwF,CAAC;AAC3F,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,OAAO;AACR,SAAA;aAAM,IACL,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,sBAAsB;YAChE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,sBAAsB;YAC9D,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,sBAAsB,EACnE;AACA,YAAA,IAAI,CAAC,YAAY;gBACf,kGAAkG;AAClG,oBAAA,QAAQ,CAAC;AACX,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO;AACR,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED;;;;;;;;;;;AAWG;AACH,IAAA,cAAc,CAAC,IAAU,EAAA;QACvB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;YAC/C,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;AAC3D,YAAA,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;AAC5B,SAAA;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;YACpD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;AACzD,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;AAC1B,SAAA;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE;YACzD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;AAC9D,YAAA,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;AAC/B,SAAA;AAAM,aAAA;YACL,OAAO,GAAG,IAAI,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;IAED,sBAAsB,CAAC,GAAQ,EAAE,KAAU,EAAA;AACzC,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;AAC/B,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;SAC5B,CAAC;AAEF,QAAA,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE;AAC1B,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;AACrC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACjC,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YACD,IAAG,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE;AACzB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YAED,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEtC,YAAA,MAAM,SAAS,GAAGhF,QAAM,CACtB,GAAG,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,EACtE,uBAAuB,CACxB,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAChC,IAAI,SAAS,IAAI,cAAc,EAAE;AAC/B,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YAED,UAAU,CAAC,MAAK,GAAG,EAAE,CAAC,CAAC,CAAC;AACxB,YAAA,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;AAE9B,YAAA,UAAU,CAAC,QAAQ,CACjB,OAAO,KAAK,KAAK,QAAQ;kBACrB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;sBAC3D,KAAK,GAAG,CAAC;kBACb,KAAK,CACV,CAAC;AACF,YAAA,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,IACE,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClC,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrC,WAAW,GAAG,UAAU,EACxB;AACA,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;KACF;IACD,UAAU,CAAC,GAAQ,EAAE,KAAU,EAAA;AAC7B,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;AAE/B,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;SAC5B,CAAC;AAEF,QAAA,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE;AACnB,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE;AAC1B,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;;AAEL,YAAA,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;AAC9B,YAAA,UAAU,CAAC,QAAQ,CACjB,OAAO,KAAK,KAAK,QAAQ;kBACrB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;sBAC3D,KAAK,GAAG,CAAC;kBACb,KAAK,CACV,CAAC;AACF,YAAA,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,IAAI,WAAW,GAAG,UAAU,EAAE;AAC5B,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AACpC,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACzB,QAAA,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,QAAQ,GAAG,CAAA,yBAAA,EAA4B,YAAY,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,YAAY,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;QAE1G,IAAI,CAAC,WAAW,CAAC,8BAA8B,EAAE,CAAC,SAAS,CACzD,CAAC,IAAS,KAAI;YACZ,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,eAAe,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,aAAA;YACD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CACjD,IAAI,CAAC,IAAI,EACT,kBAAkB,EAClB,QAAQ,CACT,CAAC;iBACH,EAAE,IAAI,CAAC,CAAC;AACV,aAAA;AACH,SAAC,EACD,CAAC,KAAK,KAAI;AACR,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;AACrC,SAAC,CACF,CAAC;KACH;IAED,8BAA8B,GAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,OAAO,GAAQ,EAAE,CAAC;QACtB,IAAI,gCAAgC,GAAQ,EAAE,CAAC;QAC/C,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,gCAAgC;YAC9B,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CACzC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EACjC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CACvC,CAAC;AACF,QAAA,gCAAgC,EAAE,OAAO,CAAC,CAAC,MAAW,KAAI;YACxD,IAAI,MAAM,EAAE,OAAO,EAAE;gBACnB,qBAAqB,IAAI,CAAC,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,GAAG;YACR,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,iBAAiB;YACzD,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ;YACxC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ;YACxC,wBAAwB,EAAE,gCAAgC,EAAE,MAAM;AAClE,YAAA,wBAAwB,EAAE,qBAAqB;SAChD,CAAC;AACJ,QAAA,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,SAAS,CACjE,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;AAChC,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,SAAC,CACF,CAAC;KACH;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;KAClD;IAEO,SAAS,GAAA;AACf,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC/B;IAED,SAAS,CAAC,IAAS,EAAE,GAAW,EAAA;AAC9B,QAAA,QAAQ,GAAG;AACT,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;gBACjD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;AACnD,oBAAA,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE;AAC3B,wBAAA,IAAI,IAAI,CAAC;wBACT,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACxC,4BAAA,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,yBAAA;AAAM,6BAAA;AACL,4BAAA,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;AACxB,yBAAA;AACD,wBAAA,KAAK,GAAG;4BACN,IAAI;4BACJ,IAAI,EAAE,UAAU,CAAC,KAAK;4BACtB,SAAS,EAAE,UAAU,CAAC,SAAS;yBAChC,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,KAAK,CAAC;gBACb,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,WAAW,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACzD,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,eAAoB,KAAI;AAC/D,oBAAA,IAAI,eAAe,CAAC,YAAY,IAAI,IAAI,EAAE;AACxC,wBAAA,WAAW,GAAG;4BACZ,IAAI,EAAE,eAAe,CAAC,IAAI;4BAC1B,UAAU,EAAE,eAAe,CAAC,YAAY;4BACxC,KAAK,EAAE,eAAe,CAAC,KAAK;yBAC7B,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,WAAW,CAAC;gBAEnB,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,WAAW,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACvD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,eAAoB,KAAI;AAC/D,oBAAA,IAAI,eAAe,CAAC,YAAY,IAAI,IAAI,EAAE;AACxC,wBAAA,WAAW,GAAG;4BACZ,IAAI,EAAE,eAAe,CAAC,IAAI;4BAC1B,KAAK,EAAE,eAAe,CAAC,KAAK;4BAC5B,QAAQ,EAAE,eAAe,CAAC,SAAS;yBACpC,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,WAAW,CAAC;gBAEnB,MAAM;AACR,YAAA,KAAK,IAAI;AACP,gBAAA,IAAI,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACnD,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,SAAc,KAAI;AACzD,oBAAA,IAAI,SAAS,CAAC,YAAY,IAAI,IAAI,EAAE;AAClC,wBAAA,KAAK,GAAG;4BACN,IAAI,EAAE,SAAS,CAAC,IAAI;4BACpB,UAAU,EAAE,SAAS,CAAC,WAAW;4BACjC,KAAK,EAAE,SAAS,CAAC,KAAK;yBACvB,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,KAAK,CAAC;gBACb,MAAM;AACR,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACpD,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;AAC1D,oBAAA,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI,EAAE;AACnC,wBAAA,MAAM,GAAG;4BACP,IAAI,EAAE,UAAU,CAAC,IAAI;4BACrB,UAAU,EAAE,UAAU,CAAC,WAAW;4BAClC,KAAK,EAAE,UAAU,CAAC,KAAK;yBACxB,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,MAAM,CAAC;gBACd,MAAM;AAER,YAAA,KAAK,cAAc;gBACjB,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAc,KAAI;AACzD,oBAAA,IAAI,SAAS,CAAC,YAAY,IAAI,IAAI,EAAE;AAClC,wBAAA,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;AAC7B,qBAAA;AACH,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,KAAK,CAAC;gBACb,MAAM;AAER,YAAA,KAAK,sBAAsB;gBACzB,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAC5C,CAAC,cAAmB,KAAI;AACtB,oBAAA,IAAI,cAAc,EAAE,IAAI,KAAK,IAAI,EAAE;AACjC,wBAAA,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;AACxB,qBAAA;AACH,iBAAC,CACF,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;gBACV,MAAM;AAER,YAAA,KAAK,YAAY;gBACf,IAAI,IAAI,IAAI,KAAK,EAAE;AACjB,oBAAA,OAAO,CAAC,CAAC;AACV,iBAAA;qBAAM,IAAI,IAAI,IAAI,YAAY,EAAE;AAC/B,oBAAA,OAAO,CAAC,CAAC;AACV,iBAAA;qBAAM,IAAI,IAAI,IAAI,aAAa,EAAE;AAChC,oBAAA,OAAO,CAAC,CAAC;AACV,iBAAA;qBAAM,IAAI,IAAI,IAAI,MAAM,EAAE;AACzB,oBAAA,OAAO,CAAC,CAAC;AACV,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,CAAC,CAAC;AACV,iBAAA;gBACD,MAAM;AACT,SAAA;KACF;IAED,KAAK,GAAA;QACH,IAAI,CAAC,wBAAwB,GAAG;AAC9B,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,IAAI,CAAC,UAAU,GAAG;AAChB,YAAA,SAAS,EAAE;AACT,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA;SACF,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG;AAClB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,QAAQ,EAAE,EAAE;SACb,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAExB,QAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,CAAC;KAC5C;AACD,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,MAAM;AACT,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3E;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,GAAW,CAAC;QAChB,IAAI,YAAY,GAAG,+BAA+B,CAAC;AACnD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAChD,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;AACvD,SAAA;AAAM,aAAA;YACL,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;AACxD,SAAA;QACD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAClD;;IAGD,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,QAAA,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACpC,QAAA,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CACvD,CAAC,GAAQ,KAAI;YACX,IAAI,GAAG,EAAE,QAAQ,EAAE;AACjB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,kGAAkG,EAClG,OAAO,CACR,CAAC;AACJ,SAAC,CACF,CAAC;KACH;AAED,IAAA,sBAAsB,CAAC,QAAa,EAAA;AAClC,QAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;AAClF,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAChF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY;gBACf,kGAAkG;AAClG,oBAAA,QAAQ,CAAC;AACX,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,OAAO;AACR,SAAA;AACD,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAEhC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAChG,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC5F,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC1G,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEtF,YAAA,IAAG,WAAW,EAAE;gBACd,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClD,aAAA;AAED,YAAA,IAAG,SAAS,EAAE;gBACZ,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAChD,aAAA;AAED,YAAA,IAAG,gBAAgB,EAAE;gBACnB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvD,aAAA;AAED,YAAA,IAAG,MAAM,EAAE;gBACT,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7C,aAAA;AAGD;AACqD;YACrD,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,EAAG;AACvC,gBAAA,MAAM,EAAE,GAAG;oBACT,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;oBAC1C,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;iBAC1C,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,aAAA;;YAGD,IAAI,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC,EAAG;AAC7C,gBAAA,MAAM,QAAQ,GAAG;oBACf,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC;;AAExD,oBAAA,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC/D,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;oBAClF,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;iBACpD,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChD,aAAA;;YAGD,IAAI,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC,EAAG;AAC7C,gBAAA,MAAM,QAAQ,GAAG;oBACf,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC;;AAExD,oBAAA,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC/D,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;oBAClF,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;oBACrD,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;iBACvD,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,aAAA;AACD;AACmF;YACnF,IAAI,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC,EAAG;AAC7C,gBAAA,MAAM,QAAQ,GAAG;oBACf,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC;oBACxD,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC;oBAChD,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC;;;oBAGlD,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC;iBAC3D,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChD,aAAA;AAEH,SAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;KAwBJ;AAED,IAAA,iBAAiB,CAAC,OAAY,EAAE,KAAU,EAAE,IAAY,EAAA;AACtD,QAAA,IAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE;YAC7D,OAAO;AACL,gBAAA,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AAChC,gBAAA,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AAC5B,gBAAA,WAAW,EAAE,IAAI;aAClB,CAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;;;;;;;;;;;;;AAiBG;AACH,IAAA,WAAW,CAAC,KAA+C,EAAA;AACzD,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;gBAC3D,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;gBACzD,MAAM;AACR,YAAA,KAAK,cAAc;gBACjB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;gBAC9D,MAAM;AACR,YAAA;gBACE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;gBAC3D,MAAM;AACT,SAAA;KACF;AAED;;;;;;;;AAQG;AACH,IAAA,gBAAgB,CAAC,MAAW,EAAE,OAAe,EAAE,SAAkB,EAAA;AAC/D,QAAA,IAAI,GAAQ,CAAC;AACb,QAAA,QAAQ,OAAO;YACb,KAAK,WAAW,EAAE;AAChB,gBAAA,IAAI,SAAS,EAAE;AACb,oBAAA,GAAG,GAAG;AACJ,wBAAA,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7B,wBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACtB,wBAAA,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAClB,wBAAA,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1B,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AACvB,wBAAA,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,wBAAA,sBAAsB,EAAE,IAAI;AAC5B,wBAAA,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACpB,wBAAA,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AACd,wBAAA,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;AACjB,wBAAA,oBAAoB,EAAE,MAAM,CAAC,EAAE,CAAC;AAChC,wBAAA,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;AACvB,wBAAA,oBAAoB,EAAE,MAAM,CAAC,EAAE,CAAC;AAChC,wBAAA,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC;AACpC,wBAAA,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;AACvB,wBAAA,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AACrB,wBAAA,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;AACjB,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC;;;AAIpC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;AACxB,wBAAA,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC;AACrC,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC;qBAC5B,CAAC;oBACF,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC3C,oBAAA,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,CAAC;AAChE,0BAAE,IAAI;0BACJ,KAAK,CAAC;oBACV,GAAG,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACnE,oBAAA,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACrE,oBAAA,GAAG,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACtD,oBAAA,GAAG,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;AACxC,oBAAA,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC1D,GAAG,CAAC,SAAS,CAAC;wBACZ,GAAG,CAAC,aAAa,CAAC;4BAClB,GAAG,CAAC,WAAW,CAAC;4BAChB,CAAC,GAAG,CAAC,YAAY,CAAC;4BAClB,GAAG,EAAE,SAAS,EAAE,MAAM;AACtB,4BAAA,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAC9D,GAAG,CAAC,aAAa,CAAC;AAClB,4BAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;AACzC,oBAAA,OAAO,GAAG,CAAC;AACZ,iBAAA;AAAM,qBAAA;AACL,oBAAA,GAAG,GAAG;AACJ,wBAAA,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7B,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AACvB,wBAAA,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,wBAAA,sBAAsB,EAAE,IAAI;AAC5B,wBAAA,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACpB,wBAAA,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AACd,wBAAA,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAChB,wBAAA,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/B,wBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACtB,wBAAA,oBAAoB,EAAE,MAAM,CAAC,EAAE,CAAC;AAChC,wBAAA,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;AACvB,wBAAA,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AACrB,wBAAA,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;AACjB,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC;;;AAGpC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC;AACrC,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC;qBAC5B,CAAC;oBACF,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBAC3C,GAAG,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACnE,oBAAA,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,CAAC;AAChE,0BAAE,IAAI;0BACJ,KAAK,CAAC;AACV,oBAAA,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACrE,oBAAA,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC1D,GAAG,CAAC,SAAS,CAAC;wBACZ,GAAG,CAAC,aAAa,CAAC;4BAClB,GAAG,CAAC,WAAW,CAAC;4BAChB,CAAC,GAAG,CAAC,YAAY,CAAC;4BAClB,GAAG,EAAE,SAAS,EAAE,MAAM;4BACtB,GAAG,CAAC,aAAa,CAAC;AAClB,4BAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;AACzC,oBAAA,OAAO,GAAG,CAAC;AACZ,iBAAA;gBACD,MAAM;AACP,aAAA;YACD,KAAK,SAAS,EAAE;AACd,gBAAA,IAAI,SAAS,EAAE;AACb,oBAAA,GAAG,GAAG;AACJ,wBAAA,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7B,wBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACtB,wBAAA,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAClB,wBAAA,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1B,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AACvB,wBAAA,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,wBAAA,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/B,wBAAA,wBAAwB,EAAE,MAAM,CAAC,CAAC,CAAC;AACnC,wBAAA,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;AACvB,wBAAA,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AACrB,wBAAA,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;AACjB,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC;AACpC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;AACxB,wBAAA,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC;AACrC,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC;AAC3B,wBAAA,SAAS,EAAE,SAAS;qBACrB,CAAC;oBACF,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBAC3C,GAAG,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACnE,oBAAA,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,CAAC;AAChE,0BAAE,IAAI;0BACJ,KAAK,CAAC;oBACV,GAAG,CAAC,SAAS,CAAC;wBACZ,GAAG,CAAC,aAAa,CAAC;AAClB,4BAAA,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAC9D,GAAG,CAAC,aAAa,CAAC,CAAC;oBAEnB,GAAG,CAAC,aAAa,CAAC;AAClB,wBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;AACzC,oBAAA,OAAO,GAAG,CAAC;AACZ,iBAAA;AAAM,qBAAA;AACL,oBAAA,GAAG,GAAG;AACJ,wBAAA,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7B,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AACvB,wBAAA,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,wBAAA,sBAAsB,EAAE,IAAI;AAC5B,wBAAA,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACpB,wBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACtB,wBAAA,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,wBAAA,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/B,wBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACtB,wBAAA,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AACrB,wBAAA,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;AACjB,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC;;;AAGpC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC;AACrC,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC;qBAC5B,CAAC;oBACF,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBAC3C,GAAG,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACnE,oBAAA,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,CAAC;AAChE,0BAAE,IAAI;0BACJ,KAAK,CAAC;AACV,oBAAA,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC;AACzD,wBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;AACvC,oBAAA,OAAO,GAAG,CAAC;AACZ,iBAAA;AACF,aAAA;YACD,KAAK,cAAc,EAAE;AACnB,gBAAA,IAAI,SAAS,EAAE;AACb,oBAAA,GAAG,GAAG;AACJ,wBAAA,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7B,wBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACtB,wBAAA,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAClB,wBAAA,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1B,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AACvB,wBAAA,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,wBAAA,sBAAsB,EAAE,IAAI;AAC5B,wBAAA,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACpB,wBAAA,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/B,wBAAA,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;AACnB,wBAAA,oBAAoB,EAAE,MAAM,CAAC,EAAE,CAAC;AAChC,wBAAA,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;AACvB,wBAAA,oBAAoB,EAAE,MAAM,CAAC,EAAE,CAAC;AAChC,wBAAA,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC;AACpC,wBAAA,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;AACvB,wBAAA,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AACrB,wBAAA,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;AACjB,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC;;;AAGpC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC;AACrC,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC;qBAC5B,CAAC;oBACF,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBAC3C,GAAG,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACnE,oBAAA,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,CAAC;AAChE,0BAAE,IAAI;0BACJ,KAAK,CAAC;oBACV,GAAG,CAAC,SAAS,CAAC;wBACZ,GAAG,CAAC,aAAa,CAAC;AAClB,4BAAA,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAC9D,GAAG,EAAE,oBAAoB,EAAE,MAAM;4BACjC,GAAG,CAAC,aAAa,CAAC;AAClB,4BAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;AACzC,oBAAA,OAAO,GAAG,CAAC;AACZ,iBAAA;AAAM,qBAAA;AACL,oBAAA,GAAG,GAAG;AACJ,wBAAA,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7B,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,wBAAA,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AACvB,wBAAA,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,wBAAA,sBAAsB,EAAE,IAAI;AAC5B,wBAAA,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACpB,wBAAA,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/B,wBAAA,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAClB,wBAAA,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/B,wBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACtB,wBAAA,oBAAoB,EAAE,MAAM,CAAC,EAAE,CAAC;AAChC,wBAAA,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;AACvB,wBAAA,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AACrB,wBAAA,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;AACjB,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAAC;;;AAGpC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC;AACrC,wBAAA,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC;AACnC,wBAAA,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACpB,wBAAA,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC;qBAC5B,CAAC;oBACF,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBAC3C,GAAG,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACnE,oBAAA,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,CAAC;AAChE,0BAAE,IAAI;0BACJ,KAAK,CAAC;oBACV,GAAG,CAAC,SAAS,CAAC;wBACZ,GAAG,CAAC,aAAa,CAAC;4BAClB,GAAG,EAAE,oBAAoB,EAAE,MAAM;4BACjC,GAAG,CAAC,aAAa,CAAC;AAClB,4BAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;AACzC,oBAAA,OAAO,GAAG,CAAC;AACZ,iBAAA;AACF,aAAA;AACD,YAAA,SAAS;AACR,aAAA;AACF,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,SAAc,EAAA;AAC7B,QAAA,IAAG,CAAC,SAAS;AAAE,YAAA,OAAO,IAAI,CAAC;QAC3B,OAAO,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;KAC3D;AAGD;;;;AAIG;AACH,IAAA,4BAA4B,CAAC,IAAS,EAAA;QACpC,MAAM,EAAE,GAAG,cAAc,CAAC;AAC1B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACzD,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChD,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAC,IAAS,EAAA;QACnB,MAAM,cAAc,GAAG,IAAI,CAAC,4BAA4B,CACtD,IAAI,EAAE,kBAAkB,CACzB,EAAE,MAAM;AACP,cAAE,IAAI;cACJ,KAAK,CAAC;AACV,QAAA,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AACvD,QAAA,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AACzD,QAAA,IAAI,QAAQ,IAAI,cAAc,IAAI,SAAS,EAAE;AAC3C,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;AAED;;;;;;;;;AASG;AACH,IAAA,YAAY,CAAC,IAAS,EAAA;QACpB,IACE,CAAC,IAAI,EAAE,QAAQ;AACb,aAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ;AAC/B,gBAAA,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,eAAe,CAAC;aAC3C,CAAC,IAAI,EAAE,QAAQ;AACd,iBAAC,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,QAAQ;AAClC,oBAAA,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,eAAe,CAAC,CAAC;aAC/C,IAAI,EAAE,QAAQ;AACb,iBAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ;AAC/B,oBAAA,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ;AAChC,oBAAA,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,eAAe,CAAC,CAAC;aAC5C,CAAC,IAAI,EAAE,QAAQ;AACd,iBAAC,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,QAAQ;AAClC,oBAAA,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,eAAe,CAAC,CAAC;aAC/C,IAAI,EAAE,QAAQ;AACb,iBAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ;AAC/B,oBAAA,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,eAAe,CAAC,CAAC;YAC7C,CAAC,IAAI,EAAE,QAAQ,EACf;AACA,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AAED;;;;;;;;;;AAUG;AACH,IAAA,uBAAuB,CAAC,IAAS,EAAA;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CACrD,CAAC,OAAY,KAAK,OAAO,EAAE,WAAW,KAAK,IAAI,EAAE,OAAO,CACzD,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAC/D,CAAC,QAAa,KAAK,QAAQ,EAAE,YAAY,KAAK,IAAI,EAAE,QAAQ,CAC7D,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAC/D,CAAC,QAAa,KAAK,QAAQ,EAAE,YAAY,KAAK,IAAI,EAAE,QAAQ,CAC7D,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAC9D,CAAC,QAAa,KAAK,QAAQ,EAAE,YAAY,KAAK,IAAI,EAAE,QAAQ,CAC7D,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAC9D,CAAC,QAAa,KAAK,QAAQ,EAAE,YAAY,KAAK,IAAI,EAAE,QAAQ,CAC7D,CAAC;QACF,MAAM,uBAAuB,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CACrE,CAAC,eAAoB,KACnB,eAAe,EAAE,YAAY,KAAK,IAAI,EAAE,eAAe,CAC1D,CAAC;QACF,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,sBAAsB,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,wBAAwB,EAAE;AACxD,YAAA,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,EAAE;AAC5D,gBAAA,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAC9C,gBAAgB,CAAC,CAAC,CAAC,EAAE,YAAY,CAClC;AACC,sBAAE,IAAI;sBACJ,KAAK,CAAC;AACX,aAAA;AACD,YAAA,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,EAAE;AAC5D,gBAAA,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAC9C,gBAAgB,CAAC,CAAC,CAAC,EAAE,YAAY,CAClC;AACC,sBAAE,IAAI;sBACJ,KAAK,CAAC;AACX,aAAA;AACD,YAAA,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,EAAE;AAC5D,gBAAA,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAC9C,gBAAgB,CAAC,CAAC,CAAC,EAAE,YAAY,CAClC;AACC,sBAAE,IAAI;sBACJ,KAAK,CAAC;AACX,aAAA;AACD,YAAA,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,uBAAuB,EAAE,MAAM,EAAE;AACnE,gBAAA,sBAAsB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CACrD,uBAAuB,CAAC,CAAC,CAAC,EAAE,YAAY,CACzC;AACC,sBAAE,IAAI;sBACJ,KAAK,CAAC;AACX,aAAA;AACF,SAAA;QACD,OAAO;AACL,YAAA,eAAe,EAAE,eAAe;AAChC,YAAA,eAAe,EAAE,eAAe;AAChC,YAAA,eAAe,EAAE,eAAe;AAChC,YAAA,eAAe,EAAE,eAAe;AAChC,YAAA,sBAAsB,EAAE,sBAAsB;SAC/C,CAAC;KACH;AAED;;;;;;;;;AASG;IACH,YAAY,CAAC,WAAmB,EAAE,YAAqB,EAAA;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CACrD,CAAC,OAAY,KAAK,OAAO,EAAE,WAAW,KAAK,WAAW,CACvD,CAAC;AACF,QAAA,IAAI,UAAU,CAAC;AACf,QAAA,IAAI,YAAY,CAAC;AACjB,QAAA,IAAI,UAAU,CAAC;AACf,QAAA,IAAI,YAAY,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,EAAE;YAC3C,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAC5C,CAAC,UAAe,KAAK,UAAU,EAAE,IAAI,KAAK,YAAY,CACvD,CAAC;AACF,YAAA,YAAY,GAAG,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;AACnE,SAAA;AAED,QAAA,IAAI,YAAY,IAAI,OAAO,EAAE,MAAM,EAAE;YACnC,UAAU;AACR,gBAAA,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC;AACtE,SAAA;aAAM,IAAI,OAAO,EAAE,MAAM,EAAE;YAC1B,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAChD,SAAA;QACD,OAAO;AACL,YAAA,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS;AAC9D,YAAA,cAAc,EAAE,YAAY;AAC5B,YAAA,UAAU,EAAE,UAAU;SACvB,CAAC;KACH;AAED;;;;AAIG;AACH,IAAA,sBAAsB,CAAC,IAAS,EAAA;QAC9B,IAAI,KAAK,GAAQ,EAAE,CAAC;QACpB,IAAI,WAAW,GAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,SAAc,KAAI;AAC3D,YAAA,IAAI,SAAS,EAAE,YAAY,IAAI,IAAI,EAAE;AACnC,gBAAA,KAAK,GAAG,SAAS,EAAE,YAAY,CAAC;AACjC,aAAA;AACH,SAAC,CAAC,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,EAAE;AACjB,YAAA,KAAK,EAAE,OAAO,CAAC,CAAC,EAAO,KAAI;gBACzB,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AACpD,oBAAA,IAAI,IAAI,EAAE,YAAY,IAAI,EAAE,EAAE;AAC5B,wBAAA,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACtC,qBAAA;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,OAAO,WAAW,EAAE,QAAQ,EAAE,CAAC;KAChC;AAED;;;AAGG;AACH,IAAA,eAAe,CAAC,IAAS,EAAA;QACvB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAc,KAAS;AAC9D,YAAA,IACE,SAAS,CAAC,YAAY,IAAI,IAAI;AAC9B,iBAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AACrD,gBAAA,OAAO,SAAS,EAAE,YAAY,IAAI,QAAQ,EAC1C;gBACA,OAAO,GAAG,IAAI,CAAC;AAChB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,OAAO,CAAC;KAChB;+GAp6CU,yCAAyC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoG,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAnL,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAmB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAqc,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAlG,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAnQ,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yCAAyC,4cCjCtD,ilFA+CgM,EAAA,MAAA,EAAA,CAAA,ywEAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1E,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4C,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5C,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6C,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqY,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmE,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,0BAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gCAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDdnL,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBARrD,SAAS;+BACE,0CAA0C,EAAA,QAAA,EAAA,ilFAAA,EAAA,MAAA,EAAA,CAAA,ywEAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;gPAQ1C,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBAEG,8BAA8B,EAAA,CAAA;sBAAvC,MAAM;gBAgBoB,gBAAgB,EAAA,CAAA;sBAA1C,KAAK;uBAAC,cAAc,CAAA;gBAGZ,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAkFG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;ME3HK,2CAA2C,CAAA;AA0BtD,IAAA,WAAA,CACU,WAA2B,EAC3B,WAAwB,EACxB,iBAAoC,EAAA;QAFpC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAC3B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QA5B9C,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAc,CAAA,cAAA,GAAW,iBAAiB,CAAC;QAC3C,IAAgB,CAAA,gBAAA,GAAW,iBAAiB,CAAC;QAC7C,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QAEpB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAEnB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAuB,CAAA,uBAAA,GAAY,KAAK,CAAC;QACzC,IAAsB,CAAA,sBAAA,GAAY,KAAK,CAAC;QACxC,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAY,CAAA,YAAA,GAAG,qBAAqB,CAAC;QACrC,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QAEnB,IAAY,CAAA,YAAA,GAAW,UAAU,CAAC;QAClC,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;QACnB,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;AAEtB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QAG7C,IAA0B,CAAA,0BAAA,GAAY,KAAK,CAAC;KAMvC;IAEL,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACjD,wBAAwB,CACzB,CAAC;QACF,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC7D,kCAAkC,CACnC,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,OAAa,EAAA;AAC5B,QAAA,OAAO,KAAK,IAAI;AACd,eAAG,IAAI,CAAC,cAAc,GAAG,aAAa;eACnC,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACzB,QAAA,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,QAAQ,GAAG,CAAA,yBAAA,EAA4B,YAAY,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,YAAY,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;AAE1G,QAAA,IAAI,CAAC,WAAW,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,SAAS,CAChE,CAAC,IAAS,KAAI;YACZ,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,eAAe,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,aAAA;YACD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,UAAU,CAAC,MAAK;AACd,oBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAClD,IAAI,CAAC,IAAI,EACT,kBAAkB,EAClB,QAAQ,CACT,CAAC;AACF,oBAAA,OAAO,KAAK,IAAI;AACd,2BAAG,IAAI,CAAC,cAAc,GAAG,cAAc;2BACpC,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC;iBAC9C,EAAE,IAAI,CAAC,CAAC;AACV,aAAA;AACH,SAAC,EACD,CAAC,KAAK,KAAI;AACR,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrB,YAAA,OAAO,KAAK,IAAI;AACd,mBAAG,IAAI,CAAC,cAAc,GAAG,YAAY;mBAClC,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,CAAC;AAC7C,SAAC,CACF,CAAC;KACH;AAID,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI;AACF,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,aAAa,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,wBAAwB,GAAG;AAC7B,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,OAAO,EAAE,EAAE;aACZ,CAAC;AACF,YAAA,IAAI,YAAY,GAAG;AACjB,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,QAAQ,EAAE,EAAE;aACb,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;;AAE3C,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,YAAA,MAAM,MAAM,GAAiB,KAAK,CAAC,MAAsB,CAAC;;AAE1D,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AAC3B,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,YAAA,MAAM,MAAM,GAAe,IAAI,UAAU,EAAE,CAAC;AAC5C,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAM,KAAI;AACzB,gBAAA,MAAM,IAAI,GAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACrC,gBAAA,MAAM,EAAE,GAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC9D,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,WAAW,GAAU,EAAE,CAAC;AAC5B,gBAAA,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;AAC9B,oBAAA,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAChE,MAAM,QAAQ,GAAmB,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC/C,wBAAA,MAAM,EAAE,CAAC;AACV,qBAAA,CAAQ,CAAC;AACV,oBAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAC7C,CAAC;AACF,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACxC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;4BACnB,MAAM;AACP,yBAAA;wBACD,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,qBAAA;AAED,oBAAA,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;oBACzF,MAAM,UAAU,GAAmB,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC9D,oBAAA,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;oBACvF,MAAM,UAAU,GAAmB,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;oBAC9D,OAAO;wBACL,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;4BACnD,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;oBACrD,aAAa;wBACX,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC;4BACtD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;AACxD,oBAAA,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAE3E,iBAAA;AAAM,qBAAA;oBACL,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACnC,MAAM,QAAQ,GAAmB,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC/C,wBAAA,MAAM,EAAE,CAAC;AACV,qBAAA,CAAQ,CAAC;AACV,oBAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,WAAgB,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAC7C,CAAC;oBAEF,MAAM,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACxC,MAAM,SAAS,GAAmB,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;oBAC5D,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC7D,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBACtE,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzC,iBAAA;gBAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AACxC,oBAAA,IAAI,CAAC,YAAY;wBACf,kGAAkG;AAClG,4BAAA,QAAQ,CAAC;AACX,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,OAAO;AACR,iBAAA;AACD,gBAAA,IACE,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,QAAQ;oBAC3C,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EACzC;AACA,oBAAA,IAAI,CAAC,YAAY;wBACf,kGAAkG;AAClG,4BAAA,QAAQ,CAAC;AACX,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,OAAO;AACR,iBAAA;AAED,gBAAA,IAAI,OAAO,EAAE;AACX,oBAAA,IAAI,CAAC,YAAY;AACf,wBAAA,wFAAwF,CAAC;AAC3F,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,oBAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;oBACpB,OAAO;AACR,iBAAA;gBACD,IAAI,CAAC,aAAa,EAAE;AAClB,oBAAA,IAAI,CAAC,YAAY;wBACf,kGAAkG;AAClG,4BAAA,QAAQ,CAAC;AACX,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC1B,OAAO;AACR,iBAAA;AACD,gBAAA,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;AAC9B,oBAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACpC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;AACrC,iBAAA;AACH,aAAC,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,SAAA;AAAC,QAAA,OAAO,CAAM,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3E;IAED,iBAAiB,GAAA;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACrD,QAAA,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,KAAK,EAAE,CAAC;AACjB,SAAA;KACF;AAED,IAAA,8BAA8B,CAAC,KAAU,EAAA;AACvC,QAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;+GA1NU,2CAA2C,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA3W,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA7P,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAymB,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2CAA2C,wLClBxD,wlNAgI4G,EAAA,MAAA,EAAA,CAAA,w2FAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7hB,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyf,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9hB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+hB,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yCAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD9G/F,2CAA2C,EAAA,UAAA,EAAA,CAAA;kBARvD,SAAS;+BACE,2CAA2C,EAAA,QAAA,EAAA,wlNAAA,EAAA,MAAA,EAAA,CAAA,w2FAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;wJA4B3C,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MEAK,gCAAgC,CAAA;AAQ3C,IAAA,WAAA,CACS,YAA0B,EACzB,QAAyB,EAC1B,IAAiB,EAChB,gBAA2C,EAC3C,kBAAsC,EACtC,2BAAwD,EACxD,aAA4B,EAC5B,qBAA4C,EAAA;QAP7C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QACzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QAC1B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QAChB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAA2B;QAC3C,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACtC,IAA2B,CAAA,2BAAA,GAA3B,2BAA2B,CAA6B;QACxD,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAftD,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;QAC3B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;AAEnB,QAAA,IAAA,CAAA,sBAAsB,GAAiB,IAAI,YAAY,EAAE,CAAC;QAgBjD,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC;QAChB,IAAE,CAAA,EAAA,GAAG,EAAE,CAAC;QACR,IAAU,CAAA,UAAA,GAAG,QAAQ,CAAC;QACtB,IAAM,CAAA,MAAA,GAA4B,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,gBAAgB,GAAe,EAAE,CAAC;QAClC,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAmB,CAAA,mBAAA,GAAG,EAAE,CAAC;QACzB,IAAe,CAAA,eAAA,GAAG,QAAQ,CAAC;QAC3B,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;AAExB,QAAA,IAAA,CAAA,iBAAiB,GAAG;;AAE3B,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAQ;AACjC,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,SAAS,EAAE,IAAI;SAChB,CAAC;QACO,IAAG,CAAA,GAAA,GAAG,EAAE,CAAC;QACT,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,SAAS,GAAG;AACnB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,IAAI,EAAE,IAAI;SACX,CAAC;QACO,IAAiB,CAAA,iBAAA,GAAG,SAAS,CAAC;QAE9B,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;QACrB,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QAEtB,IAAe,CAAA,eAAA,GAAQ,IAAI,CAAC;AAC5B,QAAA,IAAA,CAAA,kBAAkB,GAAY,IAAI,CAAC;AAI5C,QAAA,IAAA,CAAA,mBAAmB,GAMf;AACF,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,WAAW,EAAE,EAAE;SAChB,CAAC;QACO,IAAO,CAAA,OAAA,GAAkB,CAAC,CAAC;QAC3B,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QAEtC,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;QACxB,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;QAGlC,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QACrC,IAA4B,CAAA,4BAAA,GAAY,KAAK,CAAC;QAC9C,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QAEjC,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAyB,CAAA,yBAAA,GAAG,IAAI,CAAC;QAEjC,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QACtB,IAAoB,CAAA,oBAAA,GAAQ,EAAE,CAAC;QAC/B,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QAyBpC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QA4B5B,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;AAEnB,QAAA,IAAA,CAAA,gBAAgB,GAAQ;AACtB,YAAA;AACE,gBAAA,YAAY,EAAE,yBAAyB;AACvC,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,oBAAoB,EAAE,gBAAgB;AACvC,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,kCAAkC;AAChD,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,oBAAoB,EAAE,yBAAyB;AAChD,aAAA;YACD,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE;AACzE,YAAA;AACE,gBAAA,YAAY,EAAE,oBAAoB;AAClC,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,oBAAoB,EAAE,eAAe;AACtC,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,iBAAiB;AAC/B,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,oBAAoB,EAAE,QAAQ;AAC/B,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,iBAAiB;AAC/B,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,oBAAoB,EAAE,QAAQ;AAC/B,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,eAAe;AAC7B,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,oBAAoB,EAAE,MAAM;AAC7B,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,cAAc;AAC5B,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,oBAAoB,EAAE,OAAO;AAC9B,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,sBAAsB;AACpC,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,oBAAoB,EAAE,YAAY;AACnC,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,sBAAsB;AACpC,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,oBAAoB,EAAE,mBAAmB;AAC1C,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,eAAe;AAC7B,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,oBAAoB,EAAE,SAAS;AAChC,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,kBAAkB;AAChC,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,oBAAoB,EAAE,aAAa;AACpC,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,eAAe;AAC7B,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,oBAAoB,EAAE,eAAe;AACtC,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,yBAAyB;AACvC,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,oBAAoB,EAAE,eAAe;AACtC,aAAA;SACF,CAAC;AACF,QAAA,IAAA,CAAA,yBAAyB,GAAG;YAC1B,WAAW;YACX,uBAAuB;YACvB,yBAAyB;SAC1B,CAAC;AACF,QAAA,IAAA,CAAA,uBAAuB,GAAsB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAhNhE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AA4GoD,IAAA,gBAAgB,CACnE,KAAoB,EAAA;QAEpB,IACE;YACE,IAAI,CAAC,aAAa,EAAE,UAAU;YAC9B,IAAI,CAAC,cAAc,EAAE,UAAU;YAC/B,IAAI,CAAC,wBAAwB,EAAE,UAAU;YACzC,IAAI,CAAC,UAAU,EAAE,UAAU;YAC3B,IAAI,CAAC,kBAAkB,EAAE,UAAU;YACnC,IAAI,CAAC,iBAAiB,EAAE,UAAU;SACnC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAChB,IAAI,CAAC,OAAO,EAAE,UAAU;YACxB,IAAI,CAAC,UAAU,EAAE,cAAc;AAC/B,YAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAC3B;;AAED,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;KACF;IA+ED,oBAAoB,GAAA;QAClB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACtD,YAAA,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,EAAE;AACrC,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACzB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,mBAAmB,CAAC,GAAS,EAAA;AAC3B,QAAA,IAAI,GAAG,EAAE,OAAO,KAAK,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAC9C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACxB,SAAA;KACF;AAED,IAAA,YAAY,CAAC,GAAQ,EAAA;QACnB,IAAI,CAAC,uBAAuB,GAAG;AAC7B,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,yDAAyD;AAClE,YAAA,MAAM,EAAE,gBAAgB;AACxB,YAAA,IAAI,EAAE,GAAG;SACV,CAAC;KACH;AACD,IAAA,YAAY,CAAC,GAAQ,EAAA;AACnB,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAA;KACF;IACD,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3D,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3D,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACtD,qBAAqB,CACtB,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACrD,0BAA0B,CAC3B,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACzE,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;KAC3C;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,sBAAsB;YACzB,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,SAAS,CACtD,CAAC,aAAa,KAAI;AAChB,gBAAA,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;AACxC,gBAAA,IAAI,aAAa,EAAE;oBACjB,IAAI,CAAC,yBAAyB,EAAE,CAAC;AAClC,iBAAA;gBACD,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrD,aAAC,CACF,CAAC;KACL;IAED,iBAAiB,GAAA;AACf,QAAA,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,KAAI;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,sDAAsD,EACtD,OAAO,CACR,CAAC;AACJ,SAAC,CAAC,CAAC;AACH,QAAA,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAI;YAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AACvD,SAAC,CAAC,CAAC;KACJ;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,QAAa,KAAI;YACrE,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;AACjE,gBAAA,OAAO,QAAQ,CAAC;AACjB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,gBAAgB,EAAE;AACxC,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACtC,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACnC,SAAA;KACF;IAED,yBAAyB,GAAA;QACvB,MAAM,aAAa,GACjB,IAAI,CAAC,2BAA2B,CAAC,0BAA0B,EAAE,CAAC;AAChE,QAAA,IAAI,aAAa,IAAI,IAAI,CAAC,eAAe,EAAE;AACzC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAClD,CAAC,QAAa,KAAK,QAAQ,KAAK,OAAO,CACxC,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAClD,CAAC,QAAa,KAAK,QAAQ,KAAK,eAAe,CAChD,CAAC;AACH,SAAA;KACF;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;AAED,IAAA,oBAAoB,CAAC,IAAc,EAAA;AACjC,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE;AACrE,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,gBAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AACxC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACvC,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE;AACvC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAChC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,KAAK,KAAK,EAAE;AAC/C,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAChC,SAAA;AAAM,aAAA;YACL,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,gBAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AACxC,aAAA;YACD,IAAI,IAAI,KAAK,KAAK,EAAE;AAClB,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,gBAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACvC,aAAA;YACD,IAAI,IAAI,KAAK,SAAS,EAAE;AACtB,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,gBAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACvC,aAAA;AACF,SAAA;KACF;AAED,IAAA,mBAAmB,CAAC,IAAc,EAAA;QAChC,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACvC,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;IAED,MAAM,GAAA;QACJ,IAAG,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE;AAChE,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;AACR,SAAA;AACD,QAAA,QAAQ,IAAI,CAAC,eAAe,EAAE,IAAI;AAChC,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;gBAChC,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;gBAClC,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;gBACvC,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC3B,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,EAAE,CAAC;gBACpD,MAAM;YACR,KAAK,MAAM,EAAE;AACX,gBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM;AACP,aAAA;YACD,KAAK,KAAK,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;gBAC/B,MAAM;AACP,aAAA;YACD,KAAK,KAAK,EAAE;AACV,gBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC7B,MAAM;AACP,aAAA;;;AAGF,SAAA;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,OAAO,GAAG,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAA;AAC/B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;KAClD;IAEO,SAAS,GAAA;AACf,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC/B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AACrE,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;AAClD,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;KACrC;IACD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;IACD,cAAc,CAAC,GAAQ,EAAE,gBAAqB,EAAA;QAC5C,IAAI,gBAAgB,EAAE,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE;YACzD,OAAO;AACR,SAAA;QACD,IAAI,CAAC,uBAAuB,GAAG;AAC7B,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,gEAAgE;AACzE,YAAA,MAAM,EAAE,iBAAiB;AACzB,YAAA,IAAI,EAAE,gBAAgB;SACvB,CAAC;KACH;AAED,IAAA,qBAAqB,CAAC,GAAQ,EAAA;AAC5B,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,YAAA,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM;AACxB,gBAAA,KAAK,iBAAiB;oBACpB,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;AAClD,oBAAA,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE;wBAC9B,IAAI,IAAI,CAAC,UAAU,EAAE;4BACnB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACtD,yBAAA;wBACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,qBAAA;oBAED,MAAM;AACR,gBAAA,KAAK,WAAW;oBACd,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC3D,MAAM;AACR,gBAAA,KAAK,eAAe;oBAClB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC5C,MAAM;AACR,gBAAA,KAAK,gBAAgB;oBACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5C,oBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAC9F,oBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBACxC,MAAM;AACR,gBAAA,KAAK,YAAY;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;AAC1D,wBAAA,IACE,MAAM,EAAE,IAAI,KAAK,YAAY;AAC7B,4BAAA,MAAM,EAAE,IAAI,KAAK,iBAAiB,EAClC;AACA,4BAAA,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;AAC3B,yBAAA;AAED,wBAAA,IAAI,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;AAClC,4BAAA,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;AAC1B,yBAAA;AACH,qBAAC,CAAC,CAAC;AAEH,oBAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;oBACnC,MAAM;AAER,gBAAA,KAAK,MAAM;AACT,oBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC9C,MAAM;AAER,gBAAA,KAAK,iBAAiB;AACpB,oBAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;AAC1D,wBAAA,IAAI,MAAM,EAAE,IAAI,KAAK,YAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE;AAC/D,4BAAA,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;AAC3B,yBAAA;AAED,wBAAA,IAAI,MAAM,EAAE,IAAI,KAAK,aAAa,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE;AAChE,4BAAA,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;AAC1B,yBAAA;AACD,wBAAA,IACE,GAAG,CAAC,OAAO,CAAC,mBAAmB;AAC/B,4BAAA,MAAM,EAAE,IAAI,KAAK,iBAAiB,EAClC;AACA,4BAAA,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,eAAe,GAAG,KAAK,CAAC;AACrD,yBAAA;AACH,qBAAC,CAAC,CAAC;AAEH,oBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;oBAC1C,MAAM;AACR,gBAAA,KAAK,oBAAoB;oBACvB,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC;AACpE,oBAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI;AAC/C,wBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CACrB,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAChC,aAAa,CACd,CAAC;oBACJ,IAAI,IAAI,CAAC,kBAAkB,EAAE;wBAC3B,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;AAC7D,4BAAA,EAAE,CAAC;AACN,qBAAA;oBAED,MAAM;AACR,gBAAA,KAAK,YAAY;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,CAChD,oBAAoB,CACrB,GAAG,IAAI,CAAC;oBACT,MAAM;AACR,gBAAA,KAAK,aAAa;AAChB,oBAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,CAChD,oBAAoB,CACrB,GAAG,KAAK,CAAC;oBACV,MAAM;AACT,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM;AACxB,gBAAA,KAAK,eAAe;oBAClB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC5C,MAAM;AACR,gBAAA,KAAK,oBAAoB;AACvB,oBAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,cAAc;AACzD,wBAAA,SAAS,CAAC;oBACZ,MAAM;AAER,gBAAA,KAAK,YAAY;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,CAChD,oBAAoB,CACrB,GAAG,KAAK,CAAC;oBACV,MAAM;AACR,gBAAA,KAAK,aAAa;AAChB,oBAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,CAChD,oBAAoB,CACrB,GAAG,IAAI,CAAC;oBACT,MAAM;AACT,aAAA;AACF,SAAA;QACD,IAAI,CAAC,uBAAuB,GAAG;AAC7B,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,IAAI,EAAE,IAAI;SACX,CAAC;AACF,QAAA,OAAO,GAAG,CAAC;KACZ;IAED,WAAW,CAAC,YAAiB,EAAE,YAAiB,EAAA;AAC9C,QAAA,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,CACxC,CAAC,OAAY,KAAK,OAAO,EAAE,IAAI,KAAK,YAAY,CACjD,CAAC;QACF,gBAAgB;AACd,eAAG,IAAI,CAAC,eAAe,GAAG,gBAAgB;eACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;AAClC,QAAA,OAAO,gBAAgB,CAAC;KACzB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,QAAQ,IAAI,CAAC,eAAe,EAAE,IAAI;AAChC,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM;AACR,YAAA,KAAK,KAAK,CAAC;AACX,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM;AACR,YAAA,KAAK,KAAK;AAER,gBAAA,IACE,IAAI,CAAC,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE;AACtD,oBAAA,kBAAkB,EAClB;oBACA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAC5D,CAAC,GAAQ,KAAK,GAAG,EAAE,IAAI,KAAK,YAAY,CACzC,CAAC;AACF,oBAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,wBAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AAC7D,wBAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AAE1D,wBAAA,IAAI,CAAC,UAAU,EAAE,WAAW,CAC1B,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAC3C,CAAC;AACH,qBAAA;AACF,iBAAA;AAED,gBAAA,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBACpC,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBACjC,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM;AACT,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjC,SAAA;KACF;AACD,IAAA,2BAA2B,CAAC,KAAU,EAAA;AACpC,QAAA,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;KACtC;AAED,IAAA,qBAAqB,CAAC,MAAyB,EAAA;AAC7C,QAAA,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC;KACvC;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;gBACxC,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;gBAClD,MAAM;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC;gBAE5C,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;KACpC;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;KACtB;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;KACpB;IACD,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE;YACtE,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AACzD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5D,SAAA;KACF;AAED;;;;AAIG;AACH,IAAA,oBAAoB,CAClB,KAAa,EACb,mBAA6B,EAC7B,aAAuB,EAAA;QAEvB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,KAAK,KAAK,iBAAiB,EAAE;YAC/B,GAAG;AACD,gBAAA,0KAA0K,CAAC;AAC9K,SAAA;AAAM,aAAA;YACL,GAAG;AACD,gBAAA,yFAAyF,CAAC;AAC7F,SAAA;QACD,IAAI,CAAC,uBAAuB,GAAG;AAC7B,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE;YAC1C,mBAAmB,EAAE,mBAAmB,IAAI,KAAK;YACjD,aAAa,EAAE,aAAa,IAAI,KAAK;SACtC,CAAC;KACH;AAED,IAAA,cAAc,CAAC,KAAa,EAAA;QAC1B,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,QAAA,IAAI,KAAK,EAAE;YACT,GAAG,GAAG,6DAA6D,CAAC;AACrE,SAAA;QACD,IAAI,CAAC,uBAAuB,GAAG;AAC7B,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,IAAI,EAAE,KAAK;SACZ,CAAC;KACH;AAED,IAAA,oBAAoB,CAAC,UAAmB,EAAA;AACtC,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;YAC1D,IAAI,MAAM,EAAE,IAAI,KAAK,YAAY,IAAI,MAAM,EAAE,IAAI,KAAK,iBAAiB,EAAE;AACvE,gBAAA,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,kBAAkB,CAAC,YAAiB,EAAE,oBAAyB,EAAA;AAC7D,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACvE,YAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;gBACpE,IAAI,oBAAoB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;AAC/C,oBAAA,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;AAC1B,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAC9B;AAED,IAAA,YAAY,CAAC,YAAqB,EAAA;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KAClC;IAED,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,EAAE,SAAS,CAAC;AACpD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;gBACtB,IAAI,GAAG,EAAE,mBAAmB,IAAI,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE;AAChE,oBAAA,MAAM,QAAQ,GAAG,GAAG,EAAE,mBAAmB,CAAC,MAAM,CAC9C,CAAC,GAAQ,KAAK,GAAG,EAAE,QAAQ,CAC5B,CAAC;AACF,oBAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;oBACxD,IAAI,CAAC,oBAAoB,GAAG,CAAG,EAAA,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAC/C,CAAC,CACF,CAAM,GAAA,EAAA,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAChC,iBAAA;aACF;AACF,SAAA,CAAC,CAAC;KACJ;IACD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,gBAAgB,EAAE,cAAc,EAAE,EAAE,SAAS,CAAC;AACjD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;aAC7B;AACD,YAAA,KAAK,EAAE,CAAC,GAAU,KAAI;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;aACzD;AACF,SAAA,CAAC,CAAC;KACJ;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,uBAAuB,GAAG;AAC7B,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EACL,iGAAiG;AACnG,YAAA,MAAM,EAAE,oBAAoB;AAC5B,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,UAAU,EAAE,IAAI;SACjB,CAAC;KACH;;AAGD,IAAA,gBAAgB,CAAC,KAAa,EAAA;QAC5B,MAAM,UAAU,GACd,yGAAyG,CAAC;QAC5G,MAAM,GAAG,GACP,UAAU;aACT,KAAK,KAAK,aAAa;AACtB,kBAAE,CAA4I,0IAAA,CAAA;kBAC5I,EAAE,CAAC,CAAC;QACV,IAAI,CAAC,uBAAuB,GAAG;AAC7B,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,MAAM,EAAE,KAAK;SACd,CAAC;KACH;IAED,wBAAwB,GAAA;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,EAAE;YACrE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,sBAAsB,CAAC;YAC/D,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,+BAA+B,CAAC;AACzE,SAAA;KACF;;AAGD;;;AAGG;IACH,oBAAoB,GAAA;QAClB,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,aAAa,CAAC;AAC3D,QAAA,IAAG,EAAE,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,EAAE;AAC7C,YAAA,IAAI,CAAC,qBAAqB;iBACvB,wBAAwB,CAAC,EAAE,CAAC;AAC5B,iBAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAC9B,aAAC,CAAC,CAAC;AACN,SAAA;KACF;AAEC,IAAA,iBAAiB,CAAC,GAAQ,EAAA;QACpB,MAAM,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC1C,QAAA,MAAM,cAAc,GAAG;YACrB,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG;AACnC,YAAA,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa;AACnC,YAAA,iBAAiB,EAAE;AACjB,gBAAA,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa;AACxB,gBAAA,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe;AACvC,gBAAA,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc;AACjC,aAAA;AACD,YAAA,gBAAgB,EAAE,eAAe;SAClC,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,GAAG,cAAc,CAAC;KAEhD;+GA90BY,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAxX,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAzJ,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAkhB,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,2BAAA,EAAA,EAAA,EAAA,KAAA,EAAAhhB,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAihB,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,u+ECzC7C,0knBAqTM,EAAA,MAAA,EAAA,CAAA,w2OAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/gB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4F,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyY,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2C,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,6BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,6BAAA,EAAA,eAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,gBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2CAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA/hB,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAgiB,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD5QO,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,uCAAuC,EAAA,QAAA,EAAA,0knBAAA,EAAA,MAAA,EAAA,CAAA,w2OAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;wTA0BxC,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAOG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAOG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAIN,mBAAmB,EAAA,CAAA;sBAHlB,KAAK;;sBAEL,KAAK;gBAcG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAgBgC,aAAa,EAAA,CAAA;sBAAlD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAEpC,cAAc,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAG5C,wBAAwB,EAAA,CAAA;sBADvB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAGtD,UAAU,EAAA,CAAA;sBADT,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAEF,UAAU,EAAA,CAAA;sBAArD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACnB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;gBACwB,WAAW,EAAA,CAAA;sBAAvD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACtB,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;gBACM,iBAAiB,EAAA,CAAA;sBAAzC,SAAS;uBAAC,YAAY,CAAA;gBAEvB,2BAA2B,EAAA,CAAA;sBAD1B,SAAS;uBAAC,YAAY,CAAA;gBAGvB,kBAAkB,EAAA,CAAA;sBADjB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAEP,OAAO,EAAA,CAAA;sBAA/C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAEvC,SAAS,EAAA,CAAA;sBADR,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAEhB,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBAOd,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAI+C,gBAAgB,EAAA,CAAA;sBAApE,YAAY;uBAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBA8TnD,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ME9d9B,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAJZ,YAAA,EAAA,CAAA,mBAAmB,CACxB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAElB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAHjB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA,CAAA;;;MCDY,8BAA8B,CAAA;AAEzC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,mECP3C,unEA0DM,EAAA,MAAA,EAAA,CAAA,2wCAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDnDO,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,unEAAA,EAAA,MAAA,EAAA,CAAA,2wCAAA,CAAA,EAAA,CAAA;;;MEI5B,qBAAqB,CAAA;AAMU,IAAA,mBAAmB,CAAC,KAAoB,EAAA;AAChF,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC1B,YAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC7B,SAAA;KACF;AACD,IAAA,WAAA,GAAA;AARU,QAAA,IAAA,CAAA,MAAM,GAAyB,IAAI,YAAY,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;KAO9C;IAEhB,QAAQ,GAAA;QACN,UAAU,CAAC,MAAI;YACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B,EAAC,IAAI,CAAC,CAAA;KACR;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAC7B;AAED,IAAA,kBAAkB,CAAC,KAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;+GAzBU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,4PCPlC,kxDAiDA,EAAA,MAAA,EAAA,CAAA,wzDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnnB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Ca,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,kxDAAA,EAAA,MAAA,EAAA,CAAA,wzDAAA,CAAA,EAAA,CAAA;0EAKpB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEmC,mBAAmB,EAAA,CAAA;sBAA5D,YAAY;uBAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEH7B,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EALd,YAAA,EAAA,CAAA,qBAAqB,CAC1B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAJnB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,YAAY,CAAC;oBAEvB,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA,CAAA;;;MCGY,wBAAwB,CAAA;IAsBnC,WAAoB,CAAA,QAAyB,EACnC,aAA4B,EAC5B,MAAc,EACd,KAAqB,EAC7B,gBAAkC,EAC1B,aAA4B,EAAA;QALlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACnC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAErB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAzBtC,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAG,CAAA,GAAA,GAAG,KAAK,CAAC;QACZ,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;QACd,IAAG,CAAA,GAAA,GAAG,KAAK,CAAC;QACZ,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAoB,CAAA,oBAAA,GAAG,EAAE,CAAA;QAChB,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAA;QAClB,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAA;QACpB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;AAGzB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QAG1C,IAAO,CAAA,OAAA,GAAG,EAAE,CAAA;AAWV,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,MAAM,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,uBAAuB,EAAE;AAC3C,YAAA,IAAI,CAAC,OAAO,GAAG,0BAA0B,CAAA;AAC1C,SAAA;KAEF;IAED,QAAQ,GAAA;AACP,QAAA,MAAO,IAAI,GAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,MAAM,CAAC,CAAC;QAC/E,IAAG,CAAC,IAAI,CAAC,IAAI,KAAG,IAAI,IAAI,IAAI,CAAC,IAAI,KAAG,SAAS,MAAK,IAAI,CAAC,IAAI,KAAG,IAAI,IAAI,IAAI,CAAC,IAAI,KAAG,SAAS,CAAC;gBACpF,IAAI,CAAC,QAAQ,IAAE,IAAI,CAAC,QAAQ,CAAC,EAAC;AACpC,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC;AACtC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1B,YAAA,YAAY,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAA;AAC3C,SAAA;KACL;AAED,IAAA,eAAe,CAAC,KAAe,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;AACvI,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;AACnC,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;AAC7D,SAAA;KACF;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,MAAM,UAAU,GAAG,IAAI,QAAQ,EAAE,CAAC;YAClC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,UAAU,CAAA;AACrD,YAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAC7E,gBAAA,IAAI,GAAG,EAAE;AACP,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,iBAAA;aACF,EAAE,GAAG,IAAG;AACP,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8GAA8G,EAAE,OAAO,CAAC,CAAC;AAC9I,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,MAAM,UAAU,GAAG,IAAI,QAAQ,EAAE,CAAC;QAClC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,UAAU,CAAA;AACrD,QAAA,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACjF,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAE1B,aAAA;SACF,EAAE,GAAG,IAAG;AACP,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAEzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8GAA8G,EAAE,OAAO,CAAC,CAAC;AAC9I,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,aAAa,CAAC,KAAS,EAAA;AACtB,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;KAClC;AAED,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,KAAK,KAAK,OAAO,EAAE;;AAErB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;AACtD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACpC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AACzB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAChF,gBAAA,IAAI,GAAG,EAAE;AACP,oBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,6BAA6B,GAAG,IAAI,CAAC,QAAQ,CAAA;oBACxE,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAElD,iBAAA;aACF,EAAE,GAAG,IAAG;AACP,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8GAA8G,EAAE,OAAO,CAAC,CAAC;AAC9I,aAAC,CAAC,CAAC;AAEJ,SAAA;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE;YAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,6BAA6B,GAAG,IAAI,CAAC,QAAQ,CAAA;YACxE,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClD,SAAA;aAAM,IAAI,KAAK,KAAK,KAAK,EAAE;;YAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,0BAA0B,GAAG,IAAI,CAAC,QAAQ,CAAA;YACrE,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClD,SAAA;QACD,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7C;IACD,cAAc,GAAA;AACZ,QAAA,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,EAAC,IAAI,CAAC,oBAAoB,EAAC,IAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;AAC1I,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;KACvB;+GAzIU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA8F,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAnC,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAud,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,iSCZrC,k9vBAyRA,EAAA,MAAA,EAAA,CAAA,4oJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvd,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD7Qa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,k9vBAAA,EAAA,MAAA,EAAA,CAAA,4oJAAA,CAAA,EAAA,CAAA;wOAcvB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MEvBI,cAAc,CAAA;AAEzB,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;QAClC,IAAG,KAAK,CAAC,iBAAiB,EAAE;AAC1B,YAAA,OAAO,CAA8F,2FAAA,EAAA,KAAK,CAAC,iBAAiB,gBAAgB,CAAA;AAC7I,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;KACF;+GARU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA,CAAA;;;MCaY,oBAAoB,CAAA;IAiB/B,WACU,CAAA,qBAA4C,EACxC,MAAuB,EAAA;QAD3B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAjB7C,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QACtB,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;AAEX,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;QAEhD,IAAc,CAAA,cAAA,GAAe,EAAE,CAAC;QAChC,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QACnB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QAEd,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QAEf,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAEhB,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AAKlB,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;KACrE;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;KAC/B;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KACpD;AAED,IAAA,sBAAsB,CAAC,EAAO,EAAA;AAC5B,QAAA,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACnD,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,SAAS,CAC7D,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC6J,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,eAAe,GAAGA,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,aAAa,GAAGA,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,QAAQ,GAAGA,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,SAAS,GAAGA,WAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AAC/B,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,CACF,CAAC;KACH;AAED,IAAA,uBAAuB,CAAC,MAAW,EAAA;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACpC;AACD,IAAA,WAAW,CAAC,IAAS,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,qBAAqB;aACvB,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AAC3D,aAAA,SAAS,CACR,CAAC,GAAQ,KAAI;AACX,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAACA,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,aAAa,GAAGA,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,aAAa,GAAGA,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,QAAQ,GAAGA,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAClC,CAAC,EAAO,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CACjC,CAAC;AACF,YAAA,IAAI,CAAC,SAAS,GAAGA,WAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,EACD,CAAC,GAAG,KAAI;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,CACF,CAAC;KACL;+GAjFU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjL,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAjD,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,oPCjBjC,2tPAgIsD,EAAA,MAAA,EAAA,CAAA,2oUAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4E,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+H,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzH,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAiD,IAAA,CAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAoJ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA6Z,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD/GzC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,2tPAAA,EAAA,MAAA,EAAA,CAAA,2oUAAA,CAAA,EAAA,CAAA;;0BAuBzB,QAAQ;4CAlBF,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEdI,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAJV,YAAA,EAAA,CAAA,iBAAiB,CACtB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAHf,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;MCEY,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EALpB,YAAA,EAAA,CAAA,2BAA2B,CAChC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAE1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAJzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;oBAC3C,OAAO,EAAE,CAAC,YAAY,CAAC;oBAEvB,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACvC,iBAAA,CAAA;;;MCHY,iBAAiB,CAAA;AAE5B,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,IAAI,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAA,IAAG,IAAI,CAAC,CAAC,CAAC,EAAE;AACV,YAAA,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;AACxB,SAAA;QACD,IAAG,KAAK,EAAE,MAAM,EAAE;AACd,YAAA,OAAO,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;KACF;+GAZU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAjB,iBAAiB,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,eAAe;AACtB,iBAAA,CAAA;;;MCiBY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBAZ3B,qBAAqB;YACrB,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAGrB,YAAY,CAAA,EAAA,OAAA,EAAA,CAGZ,qBAAqB;YACrB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAIZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAFlB,SAAA,EAAA,CAAC,mBAAmB,CAAC,YAN9B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAQH,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAd9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,qBAAqB;wBACrB,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;wBACrB,qBAAqB;AACtB,qBAAA;oBACD,SAAS,EAAE,CAAC,mBAAmB,CAAC;AACjC,iBAAA,CAAA;;;MCdY,yBAAyB,CAAA;AAEpC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,6DCPtC,m5FAyCM,EAAA,MAAA,EAAA,CAAA,8xDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApnB,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6jB,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDlCO,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,m5FAAA,EAAA,MAAA,EAAA,CAAA,8xDAAA,CAAA,EAAA,CAAA;;;gCEItB,iBAAiB,CAAA;AAG5B,IAAA,WAAA,GAAA;QAFA,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KAEA;AAEhB,IAAA,QAAQ,MAAW;+GALR,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,qDCP9B,klBAYA,EAAA,MAAA,EAAA,CAAA,s3CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDLaC,mBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,klBAAA,EAAA,MAAA,EAAA,CAAA,s3CAAA,CAAA,EAAA,CAAA;;;AE8B3B;MAwDa,aAAa,CAAA;+GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBApDtB,uBAAuB;YACvB,8BAA8B;YAC9B,wBAAwB;YACxB,2BAA2B;YAC3B,0BAA0B;YAC1B,6BAA6B;YAC7B,0BAA0B;YAC1B,8BAA8B;YAC9B,wBAAwB;YACxB,iCAAiC;YACjC,uBAAuB;YACvB,sBAAsB;YACtB,+BAA+B;YAC/B,wBAAwB;YACxB,0BAA0B;YAC1B1O,kBAAgB;AAChB,YAAA0O,mBAAiB,aAGjB,YAAY;YACZ,aAAa;YACb,aAAa;YACb,YAAY;;YAEZ,mBAAmB;YACnB,eAAe;YACflmB,cAAY;YACZ,kBAAkB;YAClB,2BAA2B;YAC3B,YAAY;AACZ,YAAA4P,wBAAsB,aAGtB,uBAAuB;YACvB,8BAA8B;YAC9B,wBAAwB;YACxB,2BAA2B;YAC3B,0BAA0B;YAC1B,6BAA6B;YAC7B,0BAA0B;YAC1B,8BAA8B;YAC9B,wBAAwB;YACxB,iCAAiC;YACjC,uBAAuB;YACvB,sBAAsB;YACtB,+BAA+B;YAC/B,wBAAwB;YACxB,0BAA0B;YAC1B4H,kBAAgB;YAChB0O,mBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAjCtB,YAAY;YACZ,aAAa;YACb,aAAa;YACb,YAAY;;YAEZ,mBAAmB;YACnB,eAAe;YACflmB,cAAY;YACZ,kBAAkB;YAClB,2BAA2B;YAC3B,YAAY;YACZ4P,wBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAsBb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAtDzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,uBAAuB;wBACvB,8BAA8B;wBAC9B,wBAAwB;wBACxB,2BAA2B;wBAC3B,0BAA0B;wBAC1B,6BAA6B;wBAC7B,0BAA0B;wBAC1B,8BAA8B;wBAC9B,wBAAwB;wBACxB,iCAAiC;wBACjC,uBAAuB;wBACvB,sBAAsB;wBACtB,+BAA+B;wBAC/B,wBAAwB;wBACxB,0BAA0B;wBAC1B4H,kBAAgB;wBAChB0O,mBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,YAAY;;wBAEZ,mBAAmB;wBACnB,eAAe;wBACflmB,cAAY;wBACZ,kBAAkB;wBAClB,2BAA2B;wBAC3B,YAAY;wBACZ4P,wBAAsB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,uBAAuB;wBACvB,8BAA8B;wBAC9B,wBAAwB;wBACxB,2BAA2B;wBAC3B,0BAA0B;wBAC1B,6BAA6B;wBAC7B,0BAA0B;wBAC1B,8BAA8B;wBAC9B,wBAAwB;wBACxB,iCAAiC;wBACjC,uBAAuB;wBACvB,sBAAsB;wBACtB,+BAA+B;wBAC/B,wBAAwB;wBACxB,0BAA0B;wBAC1B4H,kBAAgB;wBAChB0O,mBAAiB;AAClB,qBAAA;AACF,iBAAA,CAAA;;;MCtBY,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,iBAvChC,yBAAyB;YACzB,iBAAiB;YACjB,eAAe;YACf,mBAAmB;YACnB,gBAAgB;YAChB,yBAAyB;YACzB,sBAAsB;YACtB,uBAAuB;YACvB,sBAAsB;YACtB,6BAA6B;YAC7B1O,kBAAgB;YAChB,uBAAuB;YACvB,mBAAmB;AACnB,YAAA,2BAA2B,aAG3B,YAAY;YACZ,aAAa;YACbzX,iBAAe;YACf,aAAa;YACb,2BAA2B;YAC3B,kBAAkB;YAClB,aAAa;YACb6P,wBAAsB;AACtB,YAAA,WAAW,aAGX,yBAAyB;YACzB,iBAAiB;YACjB,eAAe;YACf,mBAAmB;YACnB,gBAAgB;YAChB,yBAAyB;YACzB,sBAAsB;YACtB,uBAAuB;YACvB,sBAAsB;YACtB4H,kBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAvBhC,YAAY;YACZ,aAAa;YACbzX,iBAAe;YACf,aAAa;YACb,2BAA2B;YAC3B,kBAAkB;YAClB,aAAa;YACb6P,wBAAsB;YACtB,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAeF,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAzCnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,yBAAyB;wBACzB,iBAAiB;wBACjB,eAAe;wBACf,mBAAmB;wBACnB,gBAAgB;wBAChB,yBAAyB;wBACzB,sBAAsB;wBACtB,uBAAuB;wBACvB,sBAAsB;wBACtB,6BAA6B;wBAC7B4H,kBAAgB;wBAChB,uBAAuB;wBACvB,mBAAmB;wBACnB,2BAA2B;AAC5B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACbzX,iBAAe;wBACf,aAAa;wBACb,2BAA2B;wBAC3B,kBAAkB;wBAClB,aAAa;wBACb6P,wBAAsB;wBACtB,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,yBAAyB;wBACzB,iBAAiB;wBACjB,eAAe;wBACf,mBAAmB;wBACnB,gBAAgB;wBAChB,yBAAyB;wBACzB,sBAAsB;wBACtB,uBAAuB;wBACvB,sBAAsB;wBACtB4H,kBAAgB;AACjB,qBAAA;AACF,iBAAA,CAAA;;;MCzDY,gBAAgB,CAAA;AAG3B,IAAA,WAAA,GAAA;QAFA,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KAEA;AAEhB,IAAA,QAAQ,MAAW;+GALR,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,mDCR7B,mbAYA,EAAA,MAAA,EAAA,CAAA,4sDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDJa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,mbAAA,EAAA,MAAA,EAAA,CAAA,4sDAAA,CAAA,EAAA,CAAA;;;MEGZ,iBAAiB,CAAA;AAG5B,IAAA,WAAA,GAAA;QAFA,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KAEA;AAEhB,IAAA,QAAQ,MAAW;+GALR,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,qDCP9B,4bAcA,EAAA,MAAA,EAAA,CAAA,otDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDPa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,4bAAA,EAAA,MAAA,EAAA,CAAA,otDAAA,CAAA,EAAA,CAAA;;;MEkEd,WAAW,CAAA;+GAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,iBAxCpB,uBAAuB;YACvB,iBAAiB;YACjB,oBAAoB;YACpB,mBAAmB;YACnB,uBAAuB;YACvB,iBAAiB;YACjB,0BAA0B;YAC1B,gBAAgB;YAChB,eAAe;YACf,wBAAwB;YACxBtG,mBAAiB;YACjB,4BAA4B;YAC5B,gBAAgB;YAChB,iBAAiB;AACjB,YAAA,0BAA0B,aAG1B,YAAY;YACZ,aAAa;YACb,aAAa;YACb,eAAe;AACf,YAAA,WAAW,aAGX,uBAAuB;YACvB,iBAAiB;YACjB,oBAAoB;YACpB,mBAAmB;YACnB,uBAAuB;YACvB,iBAAiB;YACjB,0BAA0B;YAC1B,gBAAgB;YAChB,eAAe;YACf,wBAAwB;YACxBA,mBAAiB;YACjB,gBAAgB;YAChB,iBAAiB;YACjB,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAGjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YAvBpB,YAAY;YACZ,aAAa;YACb,aAAa;YACb,eAAe;YACf,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAmBF,WAAW,EAAA,UAAA,EAAA,CAAA;kBA1CvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,uBAAuB;wBACvB,iBAAiB;wBACjB,oBAAoB;wBACpB,mBAAmB;wBACnB,uBAAuB;wBACvB,iBAAiB;wBACjB,0BAA0B;wBAC1B,gBAAgB;wBAChB,eAAe;wBACf,wBAAwB;wBACxBA,mBAAiB;wBACjB,4BAA4B;wBAC5B,gBAAgB;wBAChB,iBAAiB;wBACjB,0BAA0B;AAC3B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,eAAe;wBACf,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,uBAAuB;wBACvB,iBAAiB;wBACjB,oBAAoB;wBACpB,mBAAmB;wBACnB,uBAAuB;wBACvB,iBAAiB;wBACjB,0BAA0B;wBAC1B,gBAAgB;wBAChB,eAAe;wBACf,wBAAwB;wBACxBA,mBAAiB;wBACjB,gBAAgB;wBAChB,iBAAiB;wBACjB,0BAA0B;AAC3B,qBAAA;AACF,iBAAA,CAAA;;;MCNY,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBAnC7B,4BAA4B;YAC5B,sBAAsB;YACtB,yBAAyB;YACzB,wBAAwB;YACxB,2BAA2B;YAC3B,wBAAwB;YACxB,sBAAsB;YACtB,qBAAqB;YACrB,oBAAoB;YACpB,6BAA6B;AAC7B,YAAA,sBAAsB,aAGtB,YAAY;YACZ,WAAW;YACX,aAAa;YACb,aAAa;YACb,eAAe;YACf,kBAAkB;AAClB,YAAA,2BAA2B,aAG3B,4BAA4B;YAC5B,sBAAsB;YACtB,yBAAyB;YACzB,wBAAwB;YACxB,2BAA2B;YAC3B,wBAAwB;YACxB,sBAAsB;YACtB,qBAAqB;YACrB,oBAAoB;YACpB,6BAA6B;YAC7B,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAtB7B,YAAY;YACZ,WAAW;YACX,aAAa;YACb,aAAa;YACb,eAAe;YACf,kBAAkB;YAClB,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAgBlB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBArChC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,4BAA4B;wBAC5B,sBAAsB;wBACtB,yBAAyB;wBACzB,wBAAwB;wBACxB,2BAA2B;wBAC3B,wBAAwB;wBACxB,sBAAsB;wBACtB,qBAAqB;wBACrB,oBAAoB;wBACpB,6BAA6B;wBAC7B,sBAAsB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,aAAa;wBACb,eAAe;wBACf,kBAAkB;wBAClB,2BAA2B;AAC5B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,4BAA4B;wBAC5B,sBAAsB;wBACtB,yBAAyB;wBACzB,wBAAwB;wBACxB,2BAA2B;wBAC3B,wBAAwB;wBACxB,sBAAsB;wBACtB,qBAAqB;wBACrB,oBAAoB;wBACpB,6BAA6B;wBAC7B,sBAAsB;AACvB,qBAAA;AACF,iBAAA,CAAA;;;MCxDY,aAAa,CAAA;AAExB,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAe,EAAA;QACpC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;AACzD,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;+GATU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA,CAAA;;;MCGY,qBAAqB,CAAA;AAEhC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,yDCPlC,ilFA6DA,EAAA,MAAA,EAAA,CAAA,6oJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3S,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtDa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,ilFAAA,EAAA,MAAA,EAAA,CAAA,6oJAAA,CAAA,EAAA,CAAA;;;MEYlB,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EARd,YAAA,EAAA,CAAA,qBAAqB,CAElC,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAN3B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMH,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;AACrC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;AACtB,qBAAA;AACF,iBAAA,CAAA;;;MCiFY,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,iBA9C/B,kCAAkC;YAClC,qBAAqB;YACrB,uBAAuB;YACvB,2BAA2B;YAC3B,wBAAwB;YACxB,4BAA4B;YAC5B,sBAAsB;YACtB,sBAAsB;YACtB,yBAAyB;YACzB,yBAAyB;YACzB,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,gBAAgB;YAChB,gBAAgB;YAChB,kBAAkB;YAClB,kBAAkB;YAClB,aAAa;YACb,yBAAyB;YACzB,+BAA+B;YAC/B,mBAAmB;YACnB,wBAAwB;YACxB,uBAAuB;YACvB,sBAAsB;AACtB,YAAA,UAAU,aAGV,YAAY;YACZ,aAAa;YACb,aAAa;YACb,cAAc;YACd,YAAY;;YAEZ,mBAAmB;YACnBwB,iBAAe;YACfC,cAAY;YACZ,WAAW;YACX,aAAa;YACb,uBAAuB;YACvB,WAAW;YACX,oBAAoB;AACpB,YAAA,kBAAkB,aAEV,kCAAkC,CAAA,EAAA,CAAA,CAAA,EAAA;AAGjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAnB/B,YAAY;YACZ,aAAa;YACb,aAAa;YACb,cAAc;YACd,YAAY;;YAEZ,mBAAmB;YACnBD,iBAAe;YACfC,cAAY;YACZ,WAAW;YACX,aAAa;YACb,uBAAuB;YACvB,WAAW;YACX,oBAAoB;YACpB,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKT,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAhDlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,kCAAkC;wBAClC,qBAAqB;wBACrB,uBAAuB;wBACvB,2BAA2B;wBAC3B,wBAAwB;wBACxB,4BAA4B;wBAC5B,sBAAsB;wBACtB,sBAAsB;wBACtB,yBAAyB;wBACzB,yBAAyB;wBACzB,aAAa;wBACb,cAAc;wBACd,iBAAiB;wBACjB,gBAAgB;wBAChB,gBAAgB;wBAChB,kBAAkB;wBAClB,kBAAkB;wBAClB,aAAa;wBACb,yBAAyB;wBACzB,+BAA+B;wBAC/B,mBAAmB;wBACnB,wBAAwB;wBACxB,uBAAuB;wBACvB,sBAAsB;wBACtB,UAAU;AACX,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,cAAc;wBACd,YAAY;;wBAEZ,mBAAmB;wBACnBD,iBAAe;wBACfC,cAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,uBAAuB;wBACvB,WAAW;wBACX,oBAAoB;wBACpB,kBAAkB;AACnB,qBAAA;oBACD,OAAO,EAAE,CAAC,kCAAkC,CAAC;;AAE9C,iBAAA,CAAA;;;MCpFY,mBAAmB,CAAA;;;;;IAO9B,WAAoB,CAAA,MAAiB,EAAQ,YAAyB,EAAA;QAAlD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAQ,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QANtE,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QACP,IAAQ,CAAA,QAAA,GAAG,WAAW,CAAA;KAK2C;AAC1E,IAAA,QAAQ,MAAY;AAEpB,IAAA,UAAU,CAAC,UAAmB,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB,EAAE,IAAI,CAAC,CAAC;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAC/B;+GAhBU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAsP,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,wFCVhC,k/BAiBA,EAAA,MAAA,EAAA,CAAA,0vEAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDPa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,k/BAAA,EAAA,MAAA,EAAA,CAAA,0vEAAA,CAAA,EAAA,CAAA;qHAMjB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEFK,kBAAkB,CAAA;IAG7B,WAAoB,CAAA,MAAiB,EAAQ,YAAyB,EAAA;QAAlD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAQ,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QAFtE,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAA;KAC8D;IAE3E,QAAQ,GAAA;KACP;AACD,IAAA,QAAQ,CAAC,UAAmB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB,EAAE,IAAI,CAAC,CAAC;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAC/B;+GAbU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,qDCV/B,4lCAiBA,EAAA,MAAA,EAAA,CAAA,0vEAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDPa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,4lCAAA,EAAA,MAAA,EAAA,CAAA,0vEAAA,CAAA,EAAA,CAAA;;;MEMd,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBAJd,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,CAE9E,EAAA,OAAA,EAAA,CAAA,YAAY,aADZ,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGxE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,CAAC;oBACzF,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,CAAC;oBACpF,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA,CAAA;;;MCOY,uBAAuB,CAAA;IAclC,IAAiC,qBAAqB,CAAC,QAAa,EAAA;AAClE,QAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;QACnC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KACxD;IAaD,IAA4B,gBAAgB,CAAC,OAAY,EAAA;AACvD,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC;QACtC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;YAC/C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AACrD,YAAA,GAAG,EAAE,iBAAiB;kBAClB,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC;kBACvD,IAAI,CAAC;AACX,SAAC,CAAC,CAAC;KACJ;AA2ED,IAAA,WAAA,CAAoB,qBAA4C,EAAA;QAA5C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QApHhE,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QAIN,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;;QAGjC,IAA0B,CAAA,0BAAA,GAAU,EAAE,CAAC;QACvC,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAC/B,IAAsB,CAAA,sBAAA,GAAQ,EAAE,CAAC;QAKxB,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QAItB,IAAI,CAAA,IAAA,GAAW,QAAQ,CAAC;AAsBjC,QAAA,IAAA,CAAA,sBAAsB,GAAQ;AAC5B,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AACF,QAAA,IAAA,CAAA,WAAW,GAAgB;AACzB,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,gCAAgC,EAAE,CAAC;AACnC,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,0BAA0B,EAAE,CAAC;AAC7B,YAAA,wBAAwB,EAAE,CAAC;AAC3B,YAAA,qCAAqC,EAAE,CAAC;AACxC,YAAA,2BAA2B,EAAE,CAAC;AAC9B,YAAA,+BAA+B,EAAE,CAAC;AAClC,YAAA,6BAA6B,EAAE,CAAC;AAChC,YAAA,gBAAgB,EAAE,CAAC;AACnB,YAAA,uBAAuB,EAAE,CAAC;SAC3B,CAAC;AAEF,QAAA,IAAA,CAAA,mBAAmB,GAAQ;AACzB,YAAA,gCAAgC,EAAE,CAAC;AACnC,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,0BAA0B,EAAE,CAAC;AAC7B,YAAA,wBAAwB,EAAE,CAAC;SAC5B,CAAC;AAEF,QAAA,IAAA,CAAA,YAAY,GAAiB;AAC3B,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,kBAAkB,EAAE,EAAE;SACvB,CAAC;QAEF,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAEvB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAoB,CAAA,oBAAA,GAAW,EAAE,CAAC;QAElC,IAAS,CAAA,SAAA,GACP,aAAa,CAAC;QAChB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;AAGzB,QAAA,IAAA,CAAA,iBAAiB,GAAG;AAClB,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,MAAM,EAAE,CAAC;SACV,CAAC;QAEF,IAA0B,CAAA,0BAAA,GAAY,KAAK,CAAC;QAC5C,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;QAC7B,IAA0B,CAAA,0BAAA,GAAW,0MAA0M,CAAC;QAChP,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;QACvC,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAsB,CAAA,sBAAA,GAAQ,EAAE,CAAC;QACjC,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;QAC7B,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAA2B,CAAA,2BAAA,GAAG,KAAK,CAAC;AAE1B,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;AACzC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QAC1C,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAsc1B,IAAsB,CAAA,sBAAA,GAAU,EAAE,CAAC;QAoNnC,IAAa,CAAA,aAAA,GAAkC,UAAU,CAAC;KAxpBW;IAErE,QAAQ,GAAA;QACN,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC9D,mCAAmC,CACpC,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;YACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,kBAAkB,EAAE;gBAClE,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AACzE,aAAA;AACD,YAAA,QAAQ,IAAI,CAAC,cAAc,EAAE,WAAW;AACtC,gBAAA,KAAK,CAAC;AACJ,oBAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;oBAC1B,MAAM;AACR,gBAAA,KAAK,CAAC;AACJ,oBAAA,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;oBAC/B,MAAM;AACR,gBAAA,KAAK,CAAC;AACJ,oBAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;oBAC7B,MAAM;AACR,gBAAA,KAAK,CAAC;AACJ,oBAAA,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC;oBACrC,MAAM;AACR,gBAAA;AACE,oBAAA,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;oBAC/B,MAAM;AACT,aAAA;YACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;;YAE/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;;AAE3B,SAAA;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,SAAA;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,CAAC,sBAAsB,GAAG;YAC5B,QAAQ,EAAE,IAAI,CAAC,cAAc;AAC7B,YAAA,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM;kBACtC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACvC,kBAAE,EAAE;SACP,CAAC;QAEF,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IACD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;;QAE9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,IAAI,CAAC,qBAAqB;AACvB,aAAA,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC;AAChD,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC;gBAE/B,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG,aAAa,CAAC,MAAM,CACzD,CAAC,GAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAChE,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;oBAC5D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC7C,iBAAC,CAAC,CAAC;aACJ;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;AACF,SAAA,CAAC,CAAC;KACN;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,SAAA;KACF;AACD,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,oBAAoB,IAAI,KAAK,EAAE;AACtC,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1C,SAAA;KACF;IAED,aAAa,CAAC,KAAU,EAAE,OAAY,EAAA;AACpC,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;;AAE5C,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,mCAAmC,CAAC,EAAE;gBACvE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM;AAC3C,sBAAE,IAAI;uBACH,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;AACrC,aAAA;;AAED,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;;AAExB,SAAA;KACF;AAED;;;;;AAKG;IACH,sBAAsB,CAAC,KAAU,EAAE,OAAY,EAAA;AAC7C,QAAA,IAAI,KAAK,EAAE;YACT,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAC3D,CAAC,EAAO,KAAK,EAAE,EAAE,WAAW,KAAK,OAAO,EAAE,WAAW,CACtD,CAAC;AACF,YAAA,IAAI,cAAc,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE;gBACzD,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC3D,aAAA;AACF,SAAA;AAAM,aAAA;YACL,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAC3D,CAAC,EAAO,KAAK,EAAE,EAAE,WAAW,KAAK,OAAO,EAAE,WAAW,CACtD,CAAC;AACF,YAAA,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;gBACzB,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;AACxD,aAAA;AACD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAClD,CAAC,EAAO,KAAK,EAAE,KAAK,OAAO,EAAE,GAAG,CACjC,CAAC;AACF,YAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC/C,aAAA;AACD,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAEhC,IACE,IAAI,CAAC,cAAc;gBACnB,IAAI,CAAC,cAAc,EAAE,WAAW,KAAK,OAAO,EAAE,WAAW,EACzD;;AAEA,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAClC,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;;AAEnD,aAAA;;YAGD,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC3D,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;YACvE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;AACtD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC1B,SAAA;KACF;AAED;;;;;;AAMG;IACH,iBAAiB,CAAC,KAAU,EAAE,OAAY,EAAA;QACxC,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;YACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AACtD,YAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;AAC9B,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,EAAE;AACV,gBAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC1B,aAAA;AACD,YAAA,IAAI,CAAC,0BAA0B;AAC7B,gBAAA,0MAA0M,CAAC;AAC7M,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;AAC9B,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5C,SAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,oBAAoB,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACpC,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAC3D,CAAC,EAAO,KACN,EAAE,EAAE,WAAW;AACf,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,WAAW,CACzD,CAAC;AACF,YAAA,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;gBACzB,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;AACxD,aAAA;AACD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAClD,CAAC,EAAO,KAAK,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,GAAG,CACnE,CAAC;AACF,YAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC/C,aAAA;AACD,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC5C,IAAI,CAAC,sBAAsB,CACzB,IAAI,EACJ,IAAI,CAAC,kBAAkB,EAAE,MAAM;kBAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;kBACzC,EAAE,CACP,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM;kBACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;kBACzC,EAAE,CAAC;AACP,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACpC,SAAA;AAAM,aAAA,IAAI,KAAK,EAAE;;AAEhB,YAAA,IAAI,CAAC,sBAAsB,CACzB,IAAI,CAAC,kBAAkB,GAAG,KAAK,GAAG,IAAI,EACtC,IAAI,CAAC,kBAAkB,EAAE,MAAM;kBAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;kBACzC,EAAE,CACP,CAAC;AACF,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACpC,SAAA;AAAM,aAAA;YACL,IAAI,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;;AAEzB,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM;kBACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;kBACzC,EAAE,CAAC;AACP,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACpC,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACjC;AAED,IAAA,mBAAmB,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAC1C,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,EAAE;gBACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;oBAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACvC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,iBAAC,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,gBAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;;gBAE9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC3D,iBAAA;AAED,gBAAA,IAAI,CAAC,qBAAqB;AACvB,qBAAA,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC;AAChD,qBAAA,SAAS,CAAC;AACT,oBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,wBAAA,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC;wBAE/B,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG,GAAG,CAAC,IAAI,CAAC;AAChD,wBAAA,aAAa,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;4BACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC7C,yBAAC,CAAC,CAAC;AACH,wBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;qBACrB;AACD,oBAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,wBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,wBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;qBACrB;AACF,iBAAA,CAAC,CAAC;AACN,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,SAAA;KACF;IAED,wBAAwB,GAAA;AACtB,QAAA,IACE,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM;AAC3C,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAC9B;AACA,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;aAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,EAAE;AACvD,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,eAAe,CAAC;AACxB,SAAA;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC/B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,EAAE,IAAI,CACpD,CAAC,EAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,CAClC,CAAC;QAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,IAAI,YAAY,EAAE;AACzD,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,SAAA;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,IAAI,CAAC,sBAAsB,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE;AACpE,gBAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG;oBACrC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;iBACnD,CAAC;AACF,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACvD,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,iBAAC,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAC1C,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;KACF;AAED,IAAA,SAAS,CACP,IAAkE,EAAA;AAElE,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;;QAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,UAAU,CAAC,KAAU,EAAE,IAA4B,EAAA;AACjD,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM;AACT,SAAA;KACF;AAED,IAAA,eAAe,CAAC,YAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CACpB,aAAa,EACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CACvC,CAAC;AACF,QAAA,IAAI,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YAC7C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACzD,SAAA;;AAED,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;;AAE/D,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,gBAAgB,EAAE;YAC3C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;AACpD,SAAA;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC3D,SAAA;QAED,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;AAC3D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;gBAC7C,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;gBACjD,IAAI,CAAC,WAAW,CAAC,gCAAgC;oBAC/C,GAAG,CAAC,gCAAgC,CAAC;gBACvC,IAAI,CAAC,WAAW,CAAC,sBAAsB,GAAG,GAAG,CAAC,sBAAsB,CAAC;gBACrE,IAAI,CAAC,WAAW,CAAC,0BAA0B;oBACzC,GAAG,CAAC,0BAA0B,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,wBAAwB;oBACvC,GAAG,CAAC,wBAAwB,CAAC;AAC/B,gBAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,GAAG,EAAE,gBAAgB;sBACrD,GAAG,EAAE,gBAAgB;sBACrB,CAAC,CAAC;AACN,gBAAA,IAAI,CAAC,WAAW,CAAC,uBAAuB,GAAG,GAAG,EAAE,uBAAuB;sBACnE,GAAG,EAAE,uBAAuB;sBAC5B,CAAC,CAAC;AACN,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,gBAAgB,CAAC,YAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;;AAE9B,QAAA,IAAI,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YAC7C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACzD,SAAA;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC3D,SAAA;QACD,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;AAChE,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,mBAAmB,CAAC,0BAA0B;oBACjD,GAAG,EAAE,0BAA0B,CAAC;gBAClC,IAAI,CAAC,mBAAmB,CAAC,wBAAwB;oBAC/C,GAAG,EAAE,wBAAwB,CAAC;gBAChC,IAAI,CAAC,mBAAmB,CAAC,gCAAgC;oBACvD,GAAG,EAAE,gCAAgC,CAAC;gBACxC,IAAI,CAAC,mBAAmB,CAAC,sBAAsB;oBAC7C,GAAG,EAAE,sBAAsB,CAAC;AAC9B,gBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;aACjC;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;aACjC;AACF,SAAA,CAAC,CAAC;KACJ;AAGD,IAAA,iBAAiB,CAAC,WAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;;AAE9B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAChE,QAAA,IAAI,WAAW,EAAE,MAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE;YACpD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACjE,SAAA;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,IAAI,CAAC,qBAAqB;AACvB,aAAA,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC9D,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;AAClD,gBAAA,IAAI,CAAC,sBAAsB,GAAG,GAAG,EAAE,sBAAsB,EAAE,MAAM;sBAC7D,GAAG,EAAE,sBAAsB;sBAC3B,EAAE,CAAC;AACP,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACD,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACF,SAAA,CAAC,CAAC;AACL,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;AAED,IAAA,WAAW,MAAM;IAEjB,cAAc,CAAC,IAAS,EAAE,QAAa,EAAA;AACrC,QAAA,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACpD,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,OAAY,KAAK,OAAO,IAAI,QAAQ,CAAC,WAAW,CAClD,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAClE,CAAC,GAAQ,KAAK,GAAG,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CACtD,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC9D,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CACrD,CAAC,GAAQ,KAAK,GAAG,IAAI,QAAQ,EAAE,WAAW,CAC3C,CAAC;YACF,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAClD,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAClE,CAAC,GAAQ,KAAK,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CACnD,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC9D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACtC,CAAC,OAAY,KAAK,OAAO,IAAI,KAAK,CAAC,WAAW,CAC/C,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACnC;IAED,KAAK,GAAA;AACH,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,MAAM;cACtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;cACvC,EAAE,CAAC;AACP,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM;cACvD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;cACpC,SAAS,CAAC;AACd,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,EAAE,MAAM;cACjE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;cAC1C,EAAE,CAAC;AACP,QAAA,IACE,IAAI,CAAC,sBAAsB,EAAE,MAAM;AACnC,YAAA,IAAI,CAAC,yBAAyB,EAAE,MAAM,EACtC;AACA,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,gBAAA,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;AACnD,gBAAA,aAAa,EAAE,sBAAsB;AACtC,aAAA,CAAC,CAAC;AACJ,SAAA;;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACjD,IAAI,CAAC,sBAAsB,CAC5B,CAAC;AACF,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,OAAO,EAAE,IAAI,CAAC,cAAc;gBAC5B,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAC7C,aAAa,EAAE,IAAI,CAAC,sBAAsB;AAC3C,aAAA,CAAC,CAAC;;AAEJ,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACjD,IAAI,CAAC,sBAAsB,CAC5B,CAAC;AACF,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,OAAO,EAAE,IAAI,CAAC,cAAc;gBAC5B,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAC7C,aAAa,EAAE,IAAI,CAAC,sBAAsB;AAC3C,aAAA,CAAC,CAAC;;AAEJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;AACzC,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAC3D,CAAC,EAAO,KAAK,EAAE,EAAE,WAAW,KAAK,KAAK,EAAE,WAAW,CACpD,CAAC;AACF,QAAA,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;YACzB,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;AACxD,SAAA;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAClD,CAAC,EAAO,KAAK,EAAE,KAAK,KAAK,EAAE,GAAG,CAC/B,CAAC;AACF,QAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC/C,SAAA;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,KAAK,KAAK,EAAE,GAAG,EAAE;AAC3C,YAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,MAAM,EAAE;gBACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;AACtD,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC1B,aAAA;AACF,SAAA;;AAGD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;;QAEvB,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;KACzD;IAED,uBAAuB,CAAC,KAAe,EAAE,WAAoB,EAAA;;AAE3D,QAAA,QAAQ,WAAW;AACjB,YAAA,KAAK,CAAC;gBACJ,KAAK;AACH,sBAAE,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE;AAChD,sBAAE,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE,CAAC;gBACnD,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,KAAK;AACH,sBAAE,IAAI,CAAC,WAAW,CAAC,+BAA+B,EAAE;AACpD,sBAAE,IAAI,CAAC,WAAW,CAAC,+BAA+B,EAAE,CAAC;gBACvD,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,KAAK;AACH,sBAAE,IAAI,CAAC,WAAW,CAAC,6BAA6B,EAAE;AAClD,sBAAE,IAAI,CAAC,WAAW,CAAC,6BAA6B,EAAE,CAAC;gBACrD,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,KAAK;AACH,sBAAE,IAAI,CAAC,WAAW,CAAC,qCAAqC,EAAE;AAC1D,sBAAE,IAAI,CAAC,WAAW,CAAC,qCAAqC,EAAE,CAAC;gBAC7D,MAAM;AACT,SAAA;KACF;AAED;;;;;;;;;;;;;;AAcG;IACH,uBAAuB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC1D,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM;kBACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;kBACvC,EAAE,CAAC;AACP,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM;kBACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC;kBACvC,EAAE,CAAC;AACP,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,sBAAsB;kBACxD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC;kBAC3C,EAAE,CAAC;AACR,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAC9B,SAAA;KACF;AAGD,IAAA,gBAAgB,CAAC,GAAkC,EAAA;AACjD,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;+GAjxBU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxO,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,wrBClBpC,u+tBA6kBA,EAAA,MAAA,EAAA,CAAA,ulnBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwE,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkjB,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gCAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjX,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5G,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8d,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArK,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD3jBa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,u+tBAAA,EAAA,MAAA,EAAA,CAAA,ulnBAAA,CAAA,EAAA,CAAA;yGAStB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAM2B,qBAAqB,EAAA,CAAA;sBAArD,KAAK;uBAAC,oBAAoB,CAAA;gBAIlB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACsB,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;gBACG,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;gBAMC,gBAAgB,EAAA,CAAA;sBAA3C,KAAK;uBAAC,eAAe,CAAA;gBAmFZ,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;ME5HI,kBAAkB,CAAA;AAI7B,IAAA,WAAA,GAAA;QAHA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;KACC;IAEjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;KAChC;+GAfU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,sDCR/B,u7HAiHA,EAAA,MAAA,EAAA,CAAA,2iLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1d,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgH,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gCAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtG,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0M,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApL,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDzGa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,u7HAAA,EAAA,MAAA,EAAA,CAAA,2iLAAA,CAAA,EAAA,CAAA;;;MEGf,iBAAiB,CAAA;AAK5B,IAAA,WAAA,GAAA;AAJU,QAAA,IAAA,CAAA,MAAM,GAAuB,IAAI,YAAY,EAAO,CAAC;QAGtD,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KACT;IAEjB,QAAQ,GAAA;KACP;+GARU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,wJCP9B,+rBAQmB,EAAA,MAAA,EAAA,CAAA,uZAAA,EAAA,g5pEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDN,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,+rBAAA,EAAA,MAAA,EAAA,CAAA,uZAAA,EAAA,g5pEAAA,CAAA,EAAA,CAAA;0EAKX,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACE,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;AETR,MAAM,qBAAqB,GAAa;AACtC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;MAQW,eAAe,CAAA;AAP5B,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AAMtC,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAS,KAAI,GAAG,CAAC;AAC9B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAC;AAqBtB,KAAA;AAnBC,IAAA,UAAU,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,KAAK,CAAA;KAC9B;AACD,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IACD,YAAY,GAAA;AAEV,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;;KAElB;+GA5BU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAHf,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,CAAC,qBAAqB,CAAC,0BCXpC,oxCAmCA,EAAA,MAAA,EAAA,CAAA,s1CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,EAGP,SAAA,EAAA,CAAC,qBAAqB,CAAC,UAC3B,CAAC,UAAU,EAAC,SAAS,EAAC,gBAAgB,EAAC,OAAO,EAAC,UAAU,CAAC,EAAA,QAAA,EAAA,oxCAAA,EAAA,MAAA,EAAA,CAAA,s1CAAA,CAAA,EAAA,CAAA;8BAGvD,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MERI,eAAe,CAAA;AAE1B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,mDCP5B,wbAYM,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDLO,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,wbAAA,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA,CAAA;;;MEMZ,iBAAiB,CAAA;AAQ5B,IAAA,WAAA,GAAA;AAPU,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAItC,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAShB,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;;QAEpB,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;;QAEzB,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;;QAEtB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;;QAExB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;;QAGvB,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QAEpB,IAAe,CAAA,eAAA,GAAQ,IAAI,CAAC;QAC5B,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;;QAEzB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;;QAEhB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QASX,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;KAnCR;IAEjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;IAoBD,IAAmB,OAAO,CAAC,KAAU,EAAA;AACnC,QAAA,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,SAAA;KACF;IAED,IAAuB,gBAAgB,CAAC,KAAU,EAAA;AAChD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CACpC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,EACjC,KAAK,CACN,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE;AAC1D,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;AACzC,SAAA;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED;;;;;;AAMG;IACH,gBAAgB,CAAC,IAA4C,EAAE,EAAQ,EAAA;AACrE,QAAA,QAAQ,IAAI;YACV,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;gBACvE,MAAM;AACP,aAAA;YACD,KAAK,QAAQ,EAAE;gBACb,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAC5B,IAAI,GAAG,CAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAChD,CAAC;gBACF,MAAM;AACP,aAAA;YACD,KAAK,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,MAAM;AACP,aAAA;AACF,SAAA;KACF;AAED,IAAA,SAAS,CAAC,GAAQ,EAAA;AAChB,QAAA,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/D,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,SAAA;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW;AACd,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;KAC7E;AACD;;;;;AAKG;AACH,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAC9B,CAAC,GAAQ,KACP,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,WAAW;YAC5C,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,OAAO,CAC3C,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAC9B,IAAI,GAAG,CAAQ;YACb,GAAG,IAAI,CAAC,cAAc;AACtB,YAAA,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC;AAC3C,SAAA,CAAC,CACH,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAC3B,IAAI,GAAG,CAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAC9D,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CACpC,CAAC,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,EACvC,KAAK,CACN,CAAC;KACH;AAED;;;;;AAKG;IACH,UAAU,CAAC,GAAQ,EAAE,OAAY,EAAA;AAC/B,QAAA,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI;cACzB,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC;cAC5C,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACrD;AAED;;;;;;AAMG;IACH,uBAAuB,CAAC,MAAwB,EAAE,OAAY,EAAA;QAC5D,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CACpC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EACrC,KAAK,CACN,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;AACnE,SAAA;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CACtC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,OAAO,EAAE,GAAG,CACxC,CAAC;AACF,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAC5C,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,OAAO,EAAE,GAAG,CACxC,CAAC;gBACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACxC,CAAC,GAAQ,KAAK,GAAG,KAAK,OAAO,EAAE,GAAG,CACnC,CAAC;AACH,aAAA;AACF,SAAA;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,QAAQ,GAAA;QACN,IACE,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE;YACxC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,EACnC;AACA,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC9B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpC,SAAA;KACF;AACD,IAAA,aAAa,CAAC,GAAiB,EAAA;QAC7B,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpC,SAAA;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC/B,SAAA;KACF;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;AAED;;;;;;;AAOG;IACH,YAAY,CAAC,KAAU,EAAE,GAAW,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC,IAAI,CACf,KAAK;AACF,aAAA,MAAM,CACL,CAAC,GAAQ,EAAE,IAAS,MAClB,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CACnD,EACD,IAAI,GAAG,EAAE,CACV;aACA,MAAM,EAAE,CACZ,CAAC;KACH;;AAGD,IAAA,cAAc,CAAC,UAAe,EAAA;QAC5B,IAAI,UAAU,IAAI,YAAY,EAAE;YAC9B,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,gBAAA,OAAO,kBAAkB,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,wBAAwB,CAAC;AACjC,aAAA;AACF,SAAA;QACD,IAAI,UAAU,IAAI,cAAc,EAAE;YAChC,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,gBAAA,OAAO,oBAAoB,CAAC;AAC7B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,0BAA0B,CAAC;AACnC,aAAA;AACF,SAAA;QACD,IAAI,UAAU,IAAI,aAAa,EAAE;YAC/B,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,gBAAA,OAAO,kBAAkB,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,UAAU,CAAC;AACnB,aAAA;AACF,SAAA;QACD,IAAI,UAAU,IAAI,eAAe,EAAE;YACjC,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,gBAAA,OAAO,oBAAoB,CAAC;AAC7B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,UAAU,CAAC;AACnB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;+GAjPU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,0TCT9B,06RA8NA,EAAA,MAAA,EAAA,CAAA,47VAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmD,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgQ,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+R,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA3kB,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrNa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,06RAAA,EAAA,MAAA,EAAA,CAAA,47VAAA,CAAA,EAAA,CAAA;0EAKX,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACE,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBA8Ba,OAAO,EAAA,CAAA;sBAAzB,KAAK;uBAAC,MAAM,CAAA;gBAQJ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACiB,gBAAgB,EAAA,CAAA;sBAAtC,KAAK;uBAAC,UAAU,CAAA;;;MElCN,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAhB,gBAAgB,EAAA,YAAA,EAAA,CAVzB,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAGnB,YAAY;AACZ,YAAA,WAAW,aAGX,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAPzB,YAAY;YACZ,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;AACpB,qBAAA;AACF,iBAAA,CAAA;;;MCTY,iBAAiB,CAAA;AAG5B,IAAA,WAAA,CAAoB,IAAgB,EAAU,WAAwB,EAAc,MAAuB,EAAA;QAAvF,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAAU,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AACpE,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAE7B,SAAA;KACF;AAED,IAAA,sBAAsB,CAAC,EAAS,EAAA;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACzF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAC,6CAA6C,GAAC,EAAE,EAAC,EAAC,OAAO,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5H;AACD,IAAA,qBAAqB,CAAC,OAAY,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACzF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,qEAAqE,EAAE,OAAO,EAAG,EAAC,OAAO,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/J;IAED,iBAAiB,CAAC,OAAY,EAAE,EAAU,EAAA;AACxC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACzF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,gEAAgE,GAAC,EAAE,EAAE,OAAO,EAAG,EAAC,OAAO,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAClK;AAED,IAAA,wBAAwB,CAAC,EAAU,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACzF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,kCAAkC,GAAC,EAAE,EAAE,EAAE,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9H;+GA3BU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAvE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAI0E,QAAQ;;;MCLtE,yBAAyB,CAAA;AAEpC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,yDCPtC,wbAYM,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDLO,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,wbAAA,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA,CAAA;;;MEIlB,4BAA4B,CAAA;AAEvC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,6DCPzC,ohBAcM,EAAA,MAAA,EAAA,CAAA,8/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDPO,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,ohBAAA,EAAA,MAAA,EAAA,CAAA,8/BAAA,CAAA,EAAA,CAAA;;;MEItB,UAAU,CAAA;AAiBrB,IAAA,WAAA,GAAA;QAfS,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;QAMtB,IAAS,CAAA,SAAA,GAAkB,EAAE,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAElB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAI,YAAY,EAAE,CAAC;QAIjE,IAAI,CAAC,cAAc,GAAG,4BAA4B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC9D;AAED,IAAA,QAAQ,MAAW;AAEnB,IAAA,cAAc,CAAC,QAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;KACrC;AAED,IAAA,WAAW,CAAC,KAAoB,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACtB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,iBAAA;gBACD,OAAO;AACR,aAAA;YACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAC,KAAK,CAAC,CAAC;AACpD,SAAA;KACF;AAGD,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;AAC1B,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE;YAC5H,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACvG,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC1C;AACD,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;AAC9F,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,OAAO;AACR,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,EAAC,IAAI,CAAC,CAAC;AACvD,aAAA;AACF,SAAA;KACF;IAGD,qBAAqB,CAAC,IAAS,EAAC,UAAkB,EAAA;AAChD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACjE,YAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChE,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,aAAA;AAAM,iBAAA;AACL,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,iBAAA;AACF,aAAA;AACF,SAAA;aAAM,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AAChD,YAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5D,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChE,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,aAAA;AACF,SAAA;AAED,QAAA,IAAG,UAAU,EAAC;YACZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,SAAA;KAEF;+GArGU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,4TCPvB,khDAoCM,EAAA,MAAA,EAAA,CAAA,wsJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD7BO,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,khDAAA,EAAA,MAAA,EAAA,CAAA,wsJAAA,CAAA,EAAA,CAAA;0EAMb,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAII,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEVI,yBAAyB,CAAA;IA2BpC,IAAiC,WAAW,CAAC,KAAU,EAAA;AACrD,QAAA,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;;YAExC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAU,KAAI;gBAC1D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;;AAE7C,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAeD,WACU,CAAA,iBAAoC,EACpC,IAAiB,EAAA;QADjB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QApD3B,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAElB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QACP,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACxB,IAAc,CAAA,cAAA,GAAkB,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,iBAAiB,GAAG;AAClB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,eAAe,EAAE,EAAE;SACpB,CAAC;QAEF,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAEhB,QAAA,IAAA,CAAA,kBAAkB,GAAQ;AACxB,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,WAAW,EAAE,CAAC;SACf,CAAC;QACF,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAajB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAElB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QAEvB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QACT,IAAsB,CAAA,sBAAA,GAAQ,EAAE,CAAC;AAEhC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;AAExC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;QAEhD,IAAqB,CAAA,qBAAA,GAAQ,EAAE,CAAC;QAwKhC,IAA+B,CAAA,+BAAA,GAAQ,EAAE,CAAC;QAC1C,IAAqB,CAAA,qBAAA,GAAQ,EAAE,CAAC;QAChC,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;AApK3B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACvB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;AAED,IAAA,OAAO,CAAC,GAAQ,EAAA;QACd,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC;AAC/D,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;gBACjB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,gBAAA,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;aAChC;AACF,SAAA,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;AAED;;;;AAIG;IACH,WAAW,CAAC,KAAa,EAAE,EAAO,EAAA;QAChC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC5B,SAAA;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;AAED,IAAA,cAAc,CAAC,UAAe,EAAA;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,SAAS,CACpD,CAAC,GAAQ,KAAK,GAAG,CAAC,EAAE,KAAK,UAAU,CACpC,CAAC;AACF,QAAA,IACE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,EAClD;AACA,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC9C,CAAC,GAAG,KAAK,GAAG,KAAK,UAAU,CAC5B,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACpC,SAAA;KACF;;AAED;;;AAGG;AACH,IAAA,eAAe,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClD,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;;AAGD;;;AAGG;AACH,IAAA,kBAAkB,CAAC,MAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,GAAG,CAAC;AACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,MAAM,CAAC;AAC7C,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,MAAM,CAAC;QAC5C,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;;AAGD;;;AAGG;AACH,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,GAAG,CAAC;AACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,KAAK,CAAC;AAC/C,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;;IAGD,yBAAyB,GAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAC7C,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;AAE9B,YAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE;;gBAEtC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;oBAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAC9B,CAAC,UAAe,KAAK,UAAU,CAAC,EAAE,KAAK,GAAG,CAAC,WAAW,CACvD,CAAC;AACF,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACvC,iBAAC,CAAC,CAAC;;;;;AAKJ,aAAA;AAED,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACxB,SAAC,CAAC,CAAC;KACN;;AAID;;;AAGG;AACH,IAAA,iBAAiB,CAAC,EAAU,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,YAAY,EAAE,EAAE;SACjB,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,GAAe,KAAI;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,SAAS,CACpD,CAAC,GAAQ,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,CAC5B,CAAC;AACF,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG;AACnD,oBAAA,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;iBAChB,CAAC;AACH,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE;gBACtC,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAChC,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAChD,CAAC,GAAQ,KAAK,GAAG,CAAC,WAAW,KAAK,EAAE,CACrC,CAAC;;;;;;;AAOH,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAMD;;;;;AAKG;AACH,IAAA,gBAAgB,CAAC,GAAQ,EAAE,OAAY,EAAE,QAAa,EAAA;AACpD,QAAA,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAChD,CAAC,GAAQ,KAAK,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE,CAC9C,CAAC;AACF,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,MAAM,yBAAyB,GAC7B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClD,gBAAA,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CACjE,yBAAyB,EACzB,IAAI,CACL,CAAC;gBACF,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACnE,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAC9B,WAAW,EAAE,QAAQ,CAAC,EAAE;oBACxB,aAAa,EAAE,CAAC,OAAO,CAAC;AACzB,iBAAA,CAAC,CAAC;gBAEH,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACnE,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,aAAA;AACF,SAAA;AAAM,aAAA;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAChD,CAAC,GAAQ,KAAK,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE,CAC9C,CAAC;AACF,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,aAAa;oBAC7C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,MAAM,CACpD,CAAC,UAAe,KAAK,UAAU,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAClD,CAAC;gBACJ,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACnE,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAChC,gBAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,MAAM,KAAK,CAAC,EAAE;oBACjE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC5C,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;oBACnE,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,qBAAqB;AAC9D,aAAA,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC,CAAC;cACnD,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,WAAW,CAAC;AACpC,aAAA,IAAI,EAAE,CAAC;AACV,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB;aACpD,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC;AAChE,aAAA,IAAI,EAAE,CAAC;AACV,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,qBAAqB;AACjD,aAAA,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,CAAC;AAC5D,aAAA,IAAI,EAAE,CAAC;KACX;;;IAMD,IAAI,GAAA;QACF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KAC1D;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC9B;AAED;;;;;;;AAOG;IACH,YAAY,CAAC,KAAU,EAAE,GAAW,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC,IAAI,CACf,KAAK;AACF,aAAA,MAAM,CACL,CAAC,GAAQ,EAAE,IAAS,MAClB,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CACnD,EACD,IAAI,GAAG,EAAE,CACV;aACA,MAAM,EAAE,CACZ,CAAC;KACH;+GA3TU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAqjB,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAArkB,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,0RCXtC,kiaAoUA,EAAA,MAAA,EAAA,CAAA,grdAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxD,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+H,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhE,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgmB,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzN,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzN,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkb,yBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDzTa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,kiaAAA,EAAA,MAAA,EAAA,CAAA,grdAAA,CAAA,EAAA,CAAA;8HASpB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAsB2B,WAAW,EAAA,CAAA;sBAA3C,KAAK;uBAAC,oBAAoB,CAAA;gBAgBlB,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBAEI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAEG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEjDI,gBAAgB,CAAA;AAG3B,IAAA,WAAA,CAAoB,IAAgB,EAAU,WAAwB,EAAc,MAAuB,EAAA;QAAvF,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAAU,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AACpE,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,SAAA;KACF;IAGD,mBAAmB,GAAA;AACjB,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,iBAAiB,EAAC,EAAC,OAAO,EAAC,CAAC,CAAC,IAAI,CAAC7oB,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAClG;AACD,IAAA,wBAAwB,CAAC,OAAW,EAAA;AAClC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACzF,IAAI,WAAW,GAAG,CAAA,MAAA,EAAS,OAAO,EAAE,IAAI,CAAA,eAAA,EAAkB,OAAO,EAAE,IAAI,CAAA,CAAE,CAAA;QACzE,IAAG,OAAO,CAAC,MAAM,EAAC;AAAC,YAAA,WAAW,IAAI,CAAS,MAAA,EAAA,OAAO,CAAC,MAAM,EAAE,CAAA;AAAC,SAAA;AAC5D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,YAAY,GAAC,WAAW,EAAC,EAAC,OAAO,EAAC,CAAC,CAAC,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACzG;AAED,IAAA,yBAAyB,CAAC,EAAS,EAAA;;AAEjC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACzF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,aAAa,GAAC,EAAE,EAAC,EAAC,OAAO,EAAC,CAAC,CAAC,IAAI,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACjG;+GAzBU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAI0E,QAAQ;;;MCLtE,wBAAwB,CAAA;AAEnC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,wDCPrC,wbAYM,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDLO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,wbAAA,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA,CAAA;;;MEEjB,SAAS,CAAA;AACpB,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;QAClC,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,YAAA,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,SAAA;KACF;+GAPU,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAT,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAA;;;MCCY,qBAAqB,CAAA;AAChC,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AACpD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AAClD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;AACrC,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;+GAVU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAArB,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,mBAAmB;AAC1B,iBAAA,CAAA;;;MCEY,iBAAiB,CAAA;AAC5B,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;AAClC,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AACpD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AAClD,QAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,IACE,UAAU,EAAE,MAAM;AAClB,YAAA,WAAW,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAClE;AACA,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;+GAbU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAjB,iBAAiB,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAA;;;MCAY,aAAa,CAAA;IAGxB,SAAS,CAAC,KAAU,EAAE,IAAU,EAAA;AAC9B,QAAA,IAAG,CAAC,KAAK;AAAC,YAAA,OAAO,IAAI,CAAC;AACtB,QAAA,IAAG,CAAC,IAAI;AAAC,YAAA,OAAO,KAAK,CAAC;AAEtB,QAAA,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAE1B,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAQ,KAAG;AAC5B,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,SAAC,CAAC,CAAC;KACJ;+GAZU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA,CAAA;;;MCMY,+BAA+B,CAAA;IAI1C,IAAgC,YAAY,CAAC,KAAU,EAAA;AACrD,QAAA,IAAI,KAAK,IAAI,KAAK,EAAE,GAAG,EAAE;AACvB,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,YAAA,IAAI,CAAC,mBAAmB;AACtB,gBAAA,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAC3D,KAAK,EAAE,IAAI,CACV,IAAI,CAAC,CAAC;AACT,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,QAAQ,CAAC;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;KACF;AAID,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAnB5C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AAC5B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;QAC3B,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC;QAczB,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QAajB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAc,CAAA,cAAA,GAAQ,IAAI,CAAC;QAW3B,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AACf,QAAA,IAAA,CAAA,mBAAmB,GAAG;AACpB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,IAAI,EAAE,CAAC;SACR,CAAC;QACF,IAAW,CAAA,WAAA,GAAuC,oBAAoB,CAAC;QACvE,IAAmB,CAAA,mBAAA,GAKT,aAAa,CAAC;AAExB,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,MAAM,EAAE,CAAC;SACV,CAAC;QAEF,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QA6CxB,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;;QAgB9B,IAAqB,CAAA,qBAAA,GAAG,EAAE,CAAC;QAC3B,IAAqB,CAAA,qBAAA,GAAQ,IAAI,CAAC;QAClC,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;QACtB,IAAO,CAAA,OAAA,GAAQ,EAAE,CAAC;QAClB,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;QACnB,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QACrB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QA0HpB,IAAsB,CAAA,sBAAA,GAAQ,EAAE,CAAC;KA1O0B;IAE3D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;IAID,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC;AACpD,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;aAC3B;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;;aAEnB;AACF,SAAA,CAAC,CAAC;KACJ;AAuBD,IAAA,UAAU,CACR,IAAkE,EAAA;AAElE,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,yBAAyB;AAC5B,cAAE,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE;cAC5C,IAAI,CAAC;QACT,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QACjD,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;AAED,IAAA,WAAW,CAAC,GAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;IAED,0BAA0B,GAAA;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,gBAAgB;AACnD,aAAA,wBAAwB,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAClD,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;AACzB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;AACF,SAAA,CAAC,CAAC;KACN;IAED,eAAe,CAAC,GAAQ,EAAE,SAAc,EAAA;AACtC,QAAA,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACpC,SAAA;KACF;AAGD,IAAA,uBAAuB,CAAC,SAAc,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,GAAG,EAAE;AAC/C,YAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC/B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS,EAAE,GAAG,CAAC;AAC3C,SAAA;KACF;IAED,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACnC;IAYD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,gBAAgB;AAClB,aAAA,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC;AACtD,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;AACjB,gBAAA,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;AACjC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;AACF,SAAA,CAAC,CAAC;KACN;AAED,IAAA,gBAAgB,CAAC,eAAoB,EAAA;QACnC,IAAI,UAAU,GAAQ,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAC1D,CAAC,OAAY,KAAI;YACf,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,EAAO,KAAI;AACxC,gBAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtB,aAAC,CAAC,CAAC;AACL,SAAC,CACF,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACxD,QAAA,IAAI,eAAe,EAAE;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACrD,SAAA;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5D,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,mBAAmB;AACtB,YAAA,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;KAC/D;AACD,IAAA,SAAS,CAAC,GAAQ,EAAA;AAChB,QAAA,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC7B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACtB,SAAA;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IACD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;KAC1D;IAED,UAAU,CAAC,GAAQ,EAAE,OAAY,EAAA;AAC/B,QAAA,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI;cACzB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;cACnC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC5C;IACD,cAAc,CAAC,MAAwB,EAAE,OAAY,EAAA;QACnD,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5D,SAAA;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAChC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,OAAO,EAAE,GAAG,CACxC,CAAC;AACF,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAChC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,KAAK,OAAO,EAAE,GAAG,CACxC,CAAC;AACF,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5D,aAAA;AACF,SAAA;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,cAAc,CAAC,GAAQ,EAAE,OAAY,EAAA;AACnC,QAAA,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI;cACzB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC;cACvC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAChD;IACD,kBAAkB,CAAC,MAAwB,EAAE,OAAY,EAAA;QACvD,IAAI,MAAM,KAAK,KAAK,EAAE;AACpB,YAAA,MAAM,cAAc,GAAG,OAAO,EAAE,YAAY,CAAC;AAC7C,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAC9B,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,EACpC,KAAK,CACN,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5D,SAAA;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;AAC9B,YAAA,MAAM,gBAAgB,GAAG,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAO,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAChC,CAAC,GAAQ,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAClD,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5D,SAAA;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,oBAAoB,EAAE;AAC7C,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBACb,GAAG,IAAI,CAAC,iBAAiB;gBACzB,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAChC,CAAC,GAAQ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAClD;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAED,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC;AACzC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACpB,SAAA;KACF;AAED,IAAA,yBAAyB,CAAC,QAAa,EAAA;AACrC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjE,IAAI,KAAK,GAAG,CAAC,IAAI,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;YAC/C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC9C,SAAA;KACF;IACD,YAAY,CAAC,KAAU,EAAE,GAAW,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC,IAAI,CACf,KAAK;AACF,aAAA,MAAM,CACL,CAAC,GAAQ,EAAE,IAAS,MAClB,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CACnD,EACD,IAAI,GAAG,EAAE,CACV;aACA,MAAM,EAAE,CACZ,CAAC;KACH;+GAlRU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAuoB,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,gMCV5C,wjrBAihBA,EAAA,MAAA,EAAA,CAAA,6+lBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAroB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyB,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6mB,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAviB,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgQ,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwS,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDvgBa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,wjrBAAA,EAAA,MAAA,EAAA,CAAA,6+lBAAA,CAAA,EAAA,CAAA;oGAK9B,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACE,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAC0B,YAAY,EAAA,CAAA;sBAA3C,KAAK;uBAAC,mBAAmB,CAAA;;;METf,sBAAsB,CAAA;IAEjC,SAAS,CAAC,YAAwB,EAAE,WAAmB,EAAA;QACrD,IAAG,YAAY,EAAE,MAAM,EAAE;AACvB,YAAA,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;AACpF,YAAA,IAAG,KAAK,GAAG,CAAC,CAAC,EAAE;AACb,gBAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,aAAa,CAAA;AACzC,aAAA;AACF,SAAA;AAED,QAAA,OAAQ,EAAE,CAAA;KACX;+GAXU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;AAC3B,iBAAA,CAAA;;;MCAY,UAAU,CAAA;IACrB,SAAS,CAAC,KAAY,EAAE,UAAkB,EAAA;QACxC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QACD,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QACtC,IAAG,KAAK,EAAE,MAAM,EAAC;AACjB,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAO,KAAI;AAC9B,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC/D,aAAC,CAAC,CAAC;AACJ,SAAA;AAAI,aAAA;AACF,YAAA,OAAO,EAAE,CAAC;AACZ,SAAA;KACA;+GAhBU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA,CAAA;;;ACuCD;AACA;MA0Ea,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAArB,qBAAqB,EAAA,YAAA,EAAA;;YArE9B,iBAAiB;YACjB,kBAAkB;YAClB,iBAAiB;YACjB,sBAAsB;YACtB,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjBtc,mBAAiB;YACjB,uBAAuB;YACvB,UAAU;YACV,sBAAsB;YACtB,YAAY;YACZ,iBAAiB;YACjB,yBAAyB;YACzB,yBAAyB;YACzB,4BAA4B;YAC5B,UAAU;YACV,+BAA+B;YAC/B,oBAAoB;YACpB,eAAe;YACf,wBAAwB;YACxB,SAAS;YACT,qBAAqB;YACrB,iBAAiB;YACjB,aAAa;YACb,sBAAsB;YACtB,sBAAsB;AACtB,YAAA,UAAU,aAIV,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,WAAW;YACX,YAAY;YACZ,eAAe;YACf,uBAAuB;YACvB,aAAa;YACb,YAAY;YACZ,WAAW;AACX,YAAA,WAAW,aAIX,WAAW;YACX,iBAAiB;YACjB,kBAAkB;YAClB,iBAAiB;YACjB,sBAAsB;YACtB,eAAe;YACf,kBAAkB;YAClBA,mBAAiB;YACjB,iBAAiB;YACjB,gBAAgB;YAChB,uBAAuB;YACvB,sBAAsB;YACtB,YAAY;YACZ,iBAAiB;YACjB,yBAAyB;YACzB,UAAU;YACV,+BAA+B;YAC/B,oBAAoB;YACpB,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAKb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAtC9B,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,WAAW;YACX,YAAY;YACZ,eAAe;YACf,uBAAuB;YACvB,aAAa;YACb,YAAY;YACZ,WAAW;AACX,YAAA,WAAW,EAaX,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAcP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAxEjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;;wBAEZ,iBAAiB;wBACjB,kBAAkB;wBAClB,iBAAiB;wBACjB,sBAAsB;wBACtB,eAAe;wBACf,kBAAkB;wBAClB,iBAAiB;wBACjBA,mBAAiB;wBACjB,uBAAuB;wBACvB,UAAU;wBACV,sBAAsB;wBACtB,YAAY;wBACZ,iBAAiB;wBACjB,yBAAyB;wBACzB,yBAAyB;wBACzB,4BAA4B;wBAC5B,UAAU;wBACV,+BAA+B;wBAC/B,oBAAoB;wBACpB,eAAe;wBACf,wBAAwB;wBACxB,SAAS;wBACT,qBAAqB;wBACrB,iBAAiB;wBACjB,aAAa;wBACb,sBAAsB;wBACtB,sBAAsB;wBACtB,UAAU;;AAEX,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,gBAAgB;wBAChB,aAAa;wBACb,WAAW;wBACX,YAAY;wBACZ,eAAe;wBACf,uBAAuB;wBACvB,aAAa;wBACb,YAAY;wBACZ,WAAW;wBACX,WAAW;;AAEZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,iBAAiB;wBACjB,kBAAkB;wBAClB,iBAAiB;wBACjB,sBAAsB;wBACtB,eAAe;wBACf,kBAAkB;wBAClBA,mBAAiB;wBACjB,iBAAiB;wBACjB,gBAAgB;wBAChB,uBAAuB;wBACvB,sBAAsB;wBACtB,YAAY;wBACZ,iBAAiB;wBACjB,yBAAyB;wBACzB,UAAU;wBACV,+BAA+B;wBAC/B,oBAAoB;wBACpB,sBAAsB;;;AAGvB,qBAAA;AACF,iBAAA,CAAA;;;MC/GY,eAAe,CAAA;AAE1B,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,IAAW,EAAA;QAClC,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/B;+GAJU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAf,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACpB,iBAAA,CAAA;;;MCYY,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EATxB,YAAA,EAAA,CAAA,wBAAwB,CAGxB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YANxB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMH,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,wBAAwB;AACzB,qBAAA;AACF,iBAAA,CAAA;;;MCkBY,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAf,eAAe,EAAA,YAAA,EAAA,CAjBX,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAExC,YAAY;YACZ,WAAW;YACX,kBAAkB;YAClB,sBAAsB;YACtB,mBAAmB;YACnB,kBAAkB;YAClB,WAAW;YACX,iBAAiB;YACjB,mBAAmB;YACnB,wBAAwB;YACxB,aAAa;AACb,YAAA,mBAAmB,aAEX,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAE1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAfxB,YAAY;YACZ,WAAW;YACX,kBAAkB;YAClB,sBAAsB;YACtB,mBAAmB;YACnB,kBAAkB;YAClB,WAAW;YACX,iBAAiB;YACjB,mBAAmB;YACnB,wBAAwB;YACxB,aAAa;YACb,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIV,eAAe,EAAA,UAAA,EAAA,CAAA;kBAlB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;AAC3C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,kBAAkB;wBAClB,sBAAsB;wBACtB,mBAAmB;wBACnB,kBAAkB;wBAClB,WAAW;wBACX,iBAAiB;wBACjB,mBAAmB;wBACnB,wBAAwB;wBACxB,aAAa;wBACb,mBAAmB;AACpB,qBAAA;oBACD,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACvC,iBAAA,CAAA;;;MCfY,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EATzB,YAAA,EAAA,CAAA,mBAAmB,CAGnB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YANzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMH,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;AACpB,qBAAA;AACF,iBAAA,CAAA;;;MCLY,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAZ,YAAY,EAAA,YAAA,EAAA,CAJR,eAAe,CACpB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAC1C,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAEd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAHb,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGzC,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,CAAC;AAC/B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC;oBACrD,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;MCCY,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAJb,YAAA,EAAA,CAAA,kBAAkB,EAAE,aAAa,EAAE,iCAAiC,CACzE,EAAA,OAAA,EAAA,CAAA,YAAY,CACZ,EAAA,OAAA,EAAA,CAAA,kBAAkB,EAAE,aAAa,EAAE,iCAAiC,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAHlB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,kBAAkB,EAAE,aAAa,EAAE,iCAAiC,CAAC;oBACpF,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,aAAa,EAAE,iCAAiC,CAAC;AAChF,iBAAA,CAAA;;;MCwBY,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAxB,wBAAwB,EAAA,YAAA,EAAA,CAjBpB,+BAA+B,CAAA,EAAA,OAAA,EAAA,CAE5C,YAAY;YACZ,WAAW;YACX,WAAW;YACX,iBAAiB;YACjBlL,iBAAe;YACfC,cAAY;YACZ,aAAa;YACb,aAAa;YACbM,kBAAgB;YAChB,aAAa;YACb,YAAY;AACZ,YAAA,iBAAiB,aAET,+BAA+B,CAAA,EAAA,CAAA,CAAA,EAAA;AAE9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAfjC,YAAY;YACZ,WAAW;YACX,WAAW;YACX,iBAAiB;YACjBP,iBAAe;YACfC,cAAY;YACZ,aAAa;YACb,aAAa;YACbM,kBAAgB;YAChB,aAAa;YACb,YAAY;YACZ,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIR,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAlBpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,+BAA+B,CAAC;AAC/C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,WAAW;wBACX,iBAAiB;wBACjBP,iBAAe;wBACfC,cAAY;wBACZ,aAAa;wBACb,aAAa;wBACbM,kBAAgB;wBAChB,aAAa;wBACb,YAAY;wBACZ,iBAAiB;AAClB,qBAAA;oBACD,OAAO,EAAE,CAAC,+BAA+B,CAAC;AAC3C,iBAAA,CAAA;;;MCVY,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBAb1B,sBAAsB;AACtB,YAAA,4BAA4B,aAG5B,YAAY;YACZ,WAAW;AACX,YAAA,aAAa,aAGb,sBAAsB;YACtB,4BAA4B,CAAA,EAAA,CAAA,CAAA,EAAA;AAGnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAT1B,YAAY;YACZ,WAAW;YACX,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAOJ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAf7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,sBAAsB;wBACtB,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,sBAAsB;wBACtB,4BAA4B;AAC7B,qBAAA;AACF,iBAAA,CAAA;;;MCjBY,uBAAuB,CAAA;IAClC,SAAS,CAAC,KAAe,EAAE,IAAW,EAAA;QACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3C,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;KAC5D;+GANU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAvB,uBAAuB,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,qBAAqB;AAC5B,iBAAA,CAAA;;;MCMY,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAnB,mBAAmB,EAAA,YAAA,EAAA,CAJf,uBAAuB,EAAE,gBAAgB,aAC9C,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,uBAAuB,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAExC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;oBACzD,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;AACrD,iBAAA,CAAA;;;MCyBY,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAjBhB,YAAA,EAAA,CAAA,0BAA0B,EAAE,2BAA2B,aAEpE,YAAY;YACZ,aAAa;YACb,aAAa;YACbN,cAAY;YACZ,aAAa;YACb,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,WAAW;YACX,WAAW;YACXD,iBAAe;YACf,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAEV,0BAA0B,EAAE,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAEtD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAf7B,YAAY;YACZ,aAAa;YACb,aAAa;YACbC,cAAY;YACZ,aAAa;YACb,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,WAAW;YACX,WAAW;YACXD,iBAAe;YACf,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIT,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAlBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,0BAA0B,EAAE,2BAA2B,CAAC;AACvE,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACbC,cAAY;wBACZ,aAAa;wBACb,iBAAiB;wBACjB,iBAAiB;wBACjB,mBAAmB;wBACnB,WAAW;wBACX,WAAW;wBACXD,iBAAe;wBACf,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,0BAA0B,EAAE,2BAA2B,CAAC;AACnE,iBAAA,CAAA;;;MCtBY,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAhB,gBAAgB,EAAA,YAAA,EAAA,CAJZ0F,mBAAiB,CAAA,EAAA,OAAA,EAAA,CACtB,YAAY,EAAE,gBAAgB,EAAE1F,iBAAe,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAC9D0F,mBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAHjB,OAAA,EAAA,CAAA,YAAY,EAAoB1F,iBAAe,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAG7D,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC0F,mBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE1F,iBAAe,EAAE,aAAa,CAAC;oBACzE,OAAO,EAAE,CAAC0F,mBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;MCcY,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAZf,YAAA,EAAA,CAAA,sBAAsB,EAAE,oBAAoB,aAEzD,YAAY;YACZ,gBAAgB;YAChB1F,iBAAe;YACf,gBAAgB;YAChB,aAAa;YACb,aAAa;AACb,YAAA,aAAa,aAEL,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAErB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAV5B,YAAY;YAEZA,iBAAe;YACf,gBAAgB;YAChB,aAAa;YACb,aAAa;YACb,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIJ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;AAC5D,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChBA,iBAAe;wBACf,gBAAgB;wBAChB,aAAa;wBACb,aAAa;wBACb,aAAa;AAChB,qBAAA;oBACC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA,CAAA;;;MCFY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAlB,kBAAkB,EAAA,YAAA,EAAA,CAXd,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAGlC,WAAW;YACX,WAAW;YACX,iBAAiB;YACjB,aAAa;YACb,YAAY;AACZ,YAAAA,iBAAe,aAPP,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAUpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAR3B,WAAW;YACX,WAAW;YACX,iBAAiB;YACjB,aAAa;YACb,YAAY;YACZA,iBAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGN,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;AAChC,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,WAAW;wBACX,iBAAiB;wBACjB,aAAa;wBACb,YAAY;wBACZA,iBAAe;AAChB,qBAAA;AACF,iBAAA,CAAA;;;MCQY,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAvB,uBAAuB,EAAA,YAAA,EAAA,CAdnB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAEvC,YAAY;YACZ,iBAAiB;YACjBA,iBAAe;YACf,WAAW;YACX,gBAAgB;YAChBC,cAAY;YACZ,WAAW;YACX,YAAY;AACZ,YAAA,aAAa,aAEL,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAEzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAZhC,YAAY;YACZ,iBAAiB;YACjBD,iBAAe;YACf,WAAW;YACX,gBAAgB;YAChBC,cAAY;YACZ,WAAW;YACX,YAAY;YACZ,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIJ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAfnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;AAC1C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,iBAAiB;wBACjBD,iBAAe;wBACf,WAAW;wBACX,gBAAgB;wBAChBC,cAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACtC,iBAAA,CAAA;;;MCTY,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA7B,6BAA6B,EAAA,YAAA,EAAA,CANzB,gCAAgC,EAAE,4BAA4B,aAInE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAEA,cAAY,EAAED,iBAAe,EAAEO,kBAAgB,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CAH1G,gCAAgC,EAAE,4BAA4B,CAAA,EAAA,CAAA,CAAA,EAAA;AAK7D,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,EAF9B,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAEN,cAAY,EAAED,iBAAe,EAAEO,kBAAgB,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEzG,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,gCAAgC,EAAE,4BAA4B,CAAC;AAC9E,oBAAA,OAAO,EAAE,CAAC,gCAAgC,EAAE,4BAA4B;AAEvE,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAEN,cAAY,EAAED,iBAAe,EAAEO,kBAAgB,EAAE,WAAW,CAAC;AACtH,iBAAA,CAAA;;;MCQY,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA3B,2BAA2B,EAAA,YAAA,EAAA,CAbvB,8BAA8B,CAAA,EAAA,OAAA,EAAA,CAE3C,YAAY;YACZ,iBAAiB;YACjBP,iBAAe;YACf,WAAW;YACXC,cAAY;YACZM,kBAAgB;YAChB,WAAW;AACX,YAAA,6BAA6B,aAErB,8BAA8B,CAAA,EAAA,CAAA,CAAA,EAAA;AAE7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YAXpC,YAAY;YACZ,iBAAiB;YACjBP,iBAAe;YACf,WAAW;YACXC,cAAY;YACZM,kBAAgB;YAChB,WAAW;YACX,6BAA6B,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIpB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAdvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,8BAA8B,CAAC;AAC9C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,iBAAiB;wBACjBP,iBAAe;wBACf,WAAW;wBACXC,cAAY;wBACZM,kBAAgB;wBAChB,WAAW;wBACX,6BAA6B;AAC9B,qBAAA;oBACD,OAAO,EAAE,CAAC,8BAA8B,CAAC;AAC1C,iBAAA,CAAA;;;MCjBY,kBAAkB,CAAA;AAE3B,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;KACjC;IAED,eAAe,GAAA;;AAEX,QAAA,MAAM,CAAC,UAAU,CAAC,MAAK;AACnB,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAClC,SAAC,CAAC,CAAC;KACN;+GAVQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA,CAAA;;;MCAY,yBAAyB,CAAA;AAEpC,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QADzB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;KACE;AACvC,IAAA,WAAW,CAAC,MAAoB,EAAA;QAC9B,IAAG,MAAM,EAAE,mBAAmB,IAAI,MAAM,EAAE,mBAAmB,EAAE,YAAY,KAAK,IAAI,EAAC;YAChF,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,SAAA;KACF;IACD,eAAe,GAAA;;QAEb,IAAI,CAAC,KAAK,EAAE,CAAC;KAEhB;IAED,KAAK,GAAA;QACH,IAAG,IAAI,CAAC,mBAAmB,EAAC;AAC1B,YAAA,MAAM,CAAC,UAAU,CAAC,MAAK;AACrB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAClC,aAAC,CAAC,CAAC;AACF,SAAA;KACA;+GApBU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AAClC,iBAAA,CAAA;iGAEU,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;;;MCMK,iBAAiB,CAAA;AAH9B,IAAA,WAAA,GAAA;AAKY,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;AA0BjD,KAAA;;AAvBuC,IAAA,UAAU,CAAC,GAAO,EAAA;QACtD,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACtB;;AAG6C,IAAA,WAAW,CAAC,GAAO,EAAA;QAC/D,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;;AAGwC,IAAA,MAAM,CAAC,GAAO,EAAA;QACrD,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;AACnC,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,SAAA;KACF;+GA3BU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA,CAAA;8BAE8B,QAAQ,EAAA,CAAA;sBAApC,WAAW;uBAAC,cAAc,CAAA;gBACjB,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAG+B,UAAU,EAAA,CAAA;sBAA/C,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAOU,WAAW,EAAA,CAAA;sBAAxD,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAOI,MAAM,EAAA,CAAA;sBAA9C,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC1BrB,kBAAkB,CAAA;AAG7B,IAAA,SAAS,CAAC,KAAU,EAAA;AAClB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;QAC/C,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACjC,QAAA,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;KAEvB;+GARU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACxB,iBAAA,CAAA;8BAIC,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCmBrB,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,iBAhB9B,qBAAqB;YACrB,kBAAkB;YAClB,yBAAyB;YACzB,iBAAiB;YACjB,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAEV,YAAY,CAAA,EAAA,OAAA,EAAA,CAEpB,qBAAqB;YACrB,kBAAkB;YAClB,yBAAyB;YACzB,iBAAiB;YACjB,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAIT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAVtB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAUX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAlBjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,qBAAqB;wBACrB,kBAAkB;wBAClB,yBAAyB;wBACzB,iBAAiB;wBACjB,kBAAkB;AACnB,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE;wBACP,qBAAqB;wBACrB,kBAAkB;wBAClB,yBAAyB;wBACzB,iBAAiB;wBACjB,kBAAkB;AACnB,qBAAA;AACD,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;MCsEY,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBA9CzB,iBAAiB;YACjB,qBAAqB;YACrB,iBAAiB;YACjB,gBAAgB;YAChB,yBAAyB;YACzB,oBAAoB;YACpB,gBAAgB;YAChB,oBAAoB;YACpB,oBAAoB;YACpB,kBAAkB;YAClB,qBAAqB;YACrB,mBAAmB;YACnB,qBAAqB;YACrB,qBAAqB;YACrB,+BAA+B;YAC/B,sBAAsB;YACtB,mBAAmB;YACnB,yBAAyB;YACzB,+BAA+B;AAC/B,YAAA,eAAe,aAGf,YAAY;YACZ,aAAa;YACb,iBAAiB;YACjBP,iBAAe;YACf,kBAAkB;YAClB,mBAAmB;YACnB,aAAa;YACb,gBAAgB;YAChB,mBAAmB;YACnB,WAAW;YACX,YAAY;YACZ,uBAAuB;YACvB,aAAa;YACb,wBAAwB;YACxB,2BAA2B;YAC3B,qBAAqB;YACrB,kBAAkB;YAClB,WAAW;YACX,uBAAuB;YACvB,wBAAwB;AACxB,YAAA,YAAY,aAEJ,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAxBzB,YAAY;YACZ,aAAa;YACb,iBAAiB;YACjBA,iBAAe;YACf,kBAAkB;YAClB,mBAAmB;YACnB,aAAa;YACb,gBAAgB;YAChB,mBAAmB;YACnB,WAAW;YACX,YAAY;YACZ,uBAAuB;YACvB,aAAa;YACb,wBAAwB;YACxB,2BAA2B;YAC3B,qBAAqB;YACrB,kBAAkB;YAClB,WAAW;YACX,uBAAuB;YACvB,wBAAwB;YACxB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAhD5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;wBACjB,qBAAqB;wBACrB,iBAAiB;wBACjB,gBAAgB;wBAChB,yBAAyB;wBACzB,oBAAoB;wBACpB,gBAAgB;wBAChB,oBAAoB;wBACpB,oBAAoB;wBACpB,kBAAkB;wBAClB,qBAAqB;wBACrB,mBAAmB;wBACnB,qBAAqB;wBACrB,qBAAqB;wBACrB,+BAA+B;wBAC/B,sBAAsB;wBACtB,mBAAmB;wBACnB,yBAAyB;wBACzB,+BAA+B;wBAC/B,eAAe;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,iBAAiB;wBACjBA,iBAAe;wBACf,kBAAkB;wBAClB,mBAAmB;wBACnB,aAAa;wBACb,gBAAgB;wBAChB,mBAAmB;wBACnB,WAAW;wBACX,YAAY;wBACZ,uBAAuB;wBACvB,aAAa;wBACb,wBAAwB;wBACxB,2BAA2B;wBAC3B,qBAAqB;wBACrB,kBAAkB;wBAClB,WAAW;wBACX,uBAAuB;wBACvB,wBAAwB;wBACxB,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA,CAAA;;;MC7EY,aAAa,CAAA;+GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EATtB,YAAA,EAAA,CAAA,oBAAoB,CAGpB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YANtB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMH,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;MCaY,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBAhB1B,oBAAoB;AACpB,YAAA,sBAAsB,aAGtB,YAAY;YACZ,WAAW;YACXA,iBAAe;YACf,YAAY;YACZ,aAAa;YACb,aAAa;AACb,YAAA,WAAW,aAGX,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAZ1B,YAAY;YACZ,WAAW;YACXA,iBAAe;YACf,YAAY;YACZ,aAAa;YACb,aAAa;YACb,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMF,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAlB7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,sBAAsB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACXA,iBAAe;wBACf,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,WAAW;AACd,qBAAA;AACC,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;MCtBY,yBAAyB,CAAA;AACpC,IAAA,SAAS,CAAC,cAAmB,EAAE,GAAG,YAAmB,EAAA;QACnD,OAAO;AACH,YAAA,YAAY,EAAE,cAAc;AAC5B,YAAA,MAAM,EAAE,cAAc;SACzB,CAAA;KACF;+GANU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAzB,yBAAyB,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA,CAAA;;;MCEY,aAAa,CAAA;AACxB,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAG,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC;QACvB,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;KACvD;+GAJU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA,CAAA;;;MC0RY,2BAA2B,CAAA;IAC/B,OAAO,OAAO,CACnB,iBAAiC,EAAA;QAEjC,OAAO;AACL,YAAA,QAAQ,EAAE,2BAA2B;YACrC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;SACtE,CAAC;KACH;+GARU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,iBA/IpC,gCAAgC;YAChC,qBAAqB;YACrB,2BAA2B;YAC3B,uBAAuB;YACvB,mBAAmB;YACnB,kBAAkB;YAClB,sBAAsB;YACtB,qBAAqB;YACrB,4BAA4B;YAC5B,2BAA2B;YAC3B,wBAAwB;YACxB,iBAAiB;YACjB,oBAAoB;YACpB,0BAA0B;YAC1B,6BAA6B;YAC7B,wBAAwB;YACxB,wBAAwB;YACxB,2BAA2B;YAC3B,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,2BAA2B;YAC3B,0BAA0B;YAC1B,wBAAwB;YACxB,yBAAyB;YACzB,wBAAwB;YACxB,gCAAgC;YAChC,yBAAyB;YACzB,qBAAqB;YACrB,2BAA2B;YAC3B,yBAAyB;YACzB,8BAA8B;YAC9B,2BAA2B;YAC3B,kCAAkC;YAClC,+BAA+B;YAC/B,mCAAmC;YACnC,8BAA8B;YAC9B,mCAAmC;YACnC,2BAA2B;YAC3B,mBAAmB;YACnBpB,YAAU;YACV,kBAAkB;YAClB,wBAAwB;YACxB,sBAAsB;YACtB,oBAAoB;YACpB,8BAA8B;YAC9B,2BAA2B;YAC3B,cAAc;YACd,cAAc;YACd,cAAc;YACd,iBAAiB;YACjB,mCAAmC;YACnC,eAAe;YACf,0BAA0B;YAC1B,wBAAwB;YACxB,wBAAwB;YACxB,2BAA2B;YAC3B,2BAA2B;YAC3B,uBAAuB;YACvB,6BAA6B;YAC7B,gCAAgC;YAChC,uBAAuB;YACvB,wBAAwB;YACxB,kBAAkB;YAClB,2BAA2B;YAC3B,qCAAqC;YACrC,6BAA6B;YAC7B,eAAe;YACf,aAAa;YACb,iCAAiC;YACjC,8BAA8B;YAC9B,2BAA2B;YAC3B,+BAA+B;YAC/B,oCAAoC;YACpC,+BAA+B;YAC/B,iCAAiC;YACjC,iCAAiC;YACjC,gCAAgC;YAChC,8BAA8B;YAC9B,+BAA+B;YAC/B,2CAA2C;YAC3C,yCAAyC;YACzC,oCAAoC;YACpC,yBAAyB;YACzB,wBAAwB;YACxB,qBAAqB;YACrB,6BAA6B;YAC7B,2BAA2B;YAC3B,oBAAoB;YACpB,qBAAqB;YACrB,4BAA4B;YAC5B,sBAAsB;YACtB,yBAAyB;AACzB,YAAA,aAAa,aAGb,mBAAmB;YACnB,sBAAsB;YACtB,mBAAmB;YACnB,YAAY;YACZoB,iBAAe;YACf,aAAa;YACb,aAAa;YACb,gBAAgB;YAChB,WAAW;YACX,YAAY;YACZ,2BAA2B;YAC3B,kBAAkB;YAClBC,cAAY;YACZ,aAAa;YACb,kBAAkB;YAClB,cAAc;YACd,gBAAgB;YAChB,wBAAwB;YACxB,kBAAkB;YAClB,kBAAkB;YAClBM,kBAAgB;YAChB,sBAAsB;YACtB,kBAAkB;YAClB,uBAAuB;YACvB,qBAAqB;YACrB,eAAe;YACf,eAAe;YACf,YAAY;YACZ,WAAW;YACX,iBAAiB;YACjB,uBAAuB;YACvB,gBAAgB;YAChB,sBAAsB;YACtB,gBAAgB;YAChB,iBAAiB;YACjB,oBAAoB;YACpB,gBAAgB;YAChB,uBAAuB;YACvB,kBAAkB;YAClB,6BAA6B;YAC7B,wBAAwB;YACxB,iBAAiB;YACjB,0BAA0B;AAC1B,YAAA,iBAAiB,aAET,gCAAgC,CAAA,EAAA,CAAA,CAAA,EAAA;AAE/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YA/CpC,mBAAmB;YACnB,sBAAsB;YACtB,mBAAmB;YACnB,YAAY;YACZP,iBAAe;YACf,aAAa;YACb,aAAa;YACb,gBAAgB;YAChB,WAAW;YACX,YAAY;YACZ,2BAA2B;YAC3B,kBAAkB;YAClBC,cAAY;YACZ,aAAa;YACb,kBAAkB;YAClB,cAAc;YACd,gBAAgB;YAChB,wBAAwB;YACxB,kBAAkB;YAClB,kBAAkB;YAClBM,kBAAgB;YAChB,sBAAsB;YACtB,kBAAkB;YAClB,uBAAuB;YACvB,qBAAqB;YACrB,eAAe;YACf,eAAe;YACf,YAAY;YACZ,WAAW;YACX,iBAAiB;YACjB,uBAAuB;YACvB,gBAAgB;YAChB,sBAAsB;YACtB,gBAAgB;YAChB,iBAAiB;YACjB,oBAAoB;YACpB,gBAAgB;YAChB,uBAAuB;YACvB,kBAAkB;YAClB,6BAA6B;YAC7B,wBAAwB;YACxB,iBAAiB;YACjB,0BAA0B;YAC1B,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIR,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAjJvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,gCAAgC;wBAChC,qBAAqB;wBACrB,2BAA2B;wBAC3B,uBAAuB;wBACvB,mBAAmB;wBACnB,kBAAkB;wBAClB,sBAAsB;wBACtB,qBAAqB;wBACrB,4BAA4B;wBAC5B,2BAA2B;wBAC3B,wBAAwB;wBACxB,iBAAiB;wBACjB,oBAAoB;wBACpB,0BAA0B;wBAC1B,6BAA6B;wBAC7B,wBAAwB;wBACxB,wBAAwB;wBACxB,2BAA2B;wBAC3B,uBAAuB;wBACvB,wBAAwB;wBACxB,yBAAyB;wBACzB,2BAA2B;wBAC3B,0BAA0B;wBAC1B,wBAAwB;wBACxB,yBAAyB;wBACzB,wBAAwB;wBACxB,gCAAgC;wBAChC,yBAAyB;wBACzB,qBAAqB;wBACrB,2BAA2B;wBAC3B,yBAAyB;wBACzB,8BAA8B;wBAC9B,2BAA2B;wBAC3B,kCAAkC;wBAClC,+BAA+B;wBAC/B,mCAAmC;wBACnC,8BAA8B;wBAC9B,mCAAmC;wBACnC,2BAA2B;wBAC3B,mBAAmB;wBACnB3B,YAAU;wBACV,kBAAkB;wBAClB,wBAAwB;wBACxB,sBAAsB;wBACtB,oBAAoB;wBACpB,8BAA8B;wBAC9B,2BAA2B;wBAC3B,cAAc;wBACd,cAAc;wBACd,cAAc;wBACd,iBAAiB;wBACjB,mCAAmC;wBACnC,eAAe;wBACf,0BAA0B;wBAC1B,wBAAwB;wBACxB,wBAAwB;wBACxB,2BAA2B;wBAC3B,2BAA2B;wBAC3B,uBAAuB;wBACvB,6BAA6B;wBAC7B,gCAAgC;wBAChC,uBAAuB;wBACvB,wBAAwB;wBACxB,kBAAkB;wBAClB,2BAA2B;wBAC3B,qCAAqC;wBACrC,6BAA6B;wBAC7B,eAAe;wBACf,aAAa;wBACb,iCAAiC;wBACjC,8BAA8B;wBAC9B,2BAA2B;wBAC3B,+BAA+B;wBAC/B,oCAAoC;wBACpC,+BAA+B;wBAC/B,iCAAiC;wBACjC,iCAAiC;wBACjC,gCAAgC;wBAChC,8BAA8B;wBAC9B,+BAA+B;wBAC/B,2CAA2C;wBAC3C,yCAAyC;wBACzC,oCAAoC;wBACpC,yBAAyB;wBACzB,wBAAwB;wBACxB,qBAAqB;wBACrB,6BAA6B;wBAC7B,2BAA2B;wBAC3B,oBAAoB;wBACpB,qBAAqB;wBACrB,4BAA4B;wBAC5B,sBAAsB;wBACtB,yBAAyB;wBACzB,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,sBAAsB;wBACtB,mBAAmB;wBACnB,YAAY;wBACZoB,iBAAe;wBACf,aAAa;wBACb,aAAa;wBACb,gBAAgB;wBAChB,WAAW;wBACX,YAAY;wBACZ,2BAA2B;wBAC3B,kBAAkB;wBAClBC,cAAY;wBACZ,aAAa;wBACb,kBAAkB;wBAClB,cAAc;wBACd,gBAAgB;wBAChB,wBAAwB;wBACxB,kBAAkB;wBAClB,kBAAkB;wBAClBM,kBAAgB;wBAChB,sBAAsB;wBACtB,kBAAkB;wBAClB,uBAAuB;wBACvB,qBAAqB;wBACrB,eAAe;wBACf,eAAe;wBACf,YAAY;wBACZ,WAAW;wBACX,iBAAiB;wBACjB,uBAAuB;wBACvB,gBAAgB;wBAChB,sBAAsB;wBACtB,gBAAgB;wBAChB,iBAAiB;wBACjB,oBAAoB;wBACpB,gBAAgB;wBAChB,uBAAuB;wBACvB,kBAAkB;wBAClB,6BAA6B;wBAC7B,wBAAwB;wBACxB,iBAAiB;wBACjB,0BAA0B;wBAC1B,iBAAiB;AAClB,qBAAA;oBACD,OAAO,EAAE,CAAC,gCAAgC,CAAC;AAC5C,iBAAA,CAAA;;;AC9RD;;AAEG;;ACFH;;AAEG;;;;"}