{"version":3,"file":"netgrif-components-core.mjs","sources":["../../../projects/netgrif-components-core/src/lib/material/material.module.ts","../../../projects/netgrif-components-core/src/lib/covalent/covalent.module.ts","../../../projects/netgrif-components-core/src/lib/currency/currency.module.ts","../../../projects/netgrif-components-core/src/lib/logger/services/log-level.ts","../../../projects/netgrif-components-core/src/lib/logger/models/log-entry.ts","../../../projects/netgrif-components-core/src/lib/logger/publishers/log-publisher.ts","../../../projects/netgrif-components-core/src/lib/logger/publishers/console-log-publisher.ts","../../../projects/netgrif-components-core/src/lib/logger/publishers/local-storage-log-publisher.ts","../../../projects/netgrif-components-core/src/lib/configuration/configuration.service.ts","../../../projects/netgrif-components-core/src/lib/logger/services/log-publisher.service.ts","../../../projects/netgrif-components-core/src/lib/logger/services/logger.service.ts","../../../projects/netgrif-components-core/src/lib/logger/public-api.ts","../../../projects/netgrif-components-core/src/lib/data-fields/date-field/models/custom-date-adapter.ts","../../../projects/netgrif-components-core/src/lib/user/models/user.ts","../../../projects/netgrif-components-core/src/lib/authentication/services/authentication-method.service.ts","../../../projects/netgrif-components-core/src/lib/authentication/session/null-storage.ts","../../../projects/netgrif-components-core/src/lib/utility/loading-emitter.ts","../../../projects/netgrif-components-core/src/lib/authentication/session/services/session-idle-timer.service.ts","../../../projects/netgrif-components-core/src/lib/authentication/session/services/session.service.ts","../../../projects/netgrif-components-core/src/lib/authentication/models/user.transformer.ts","../../../projects/netgrif-components-core/src/lib/authentication/services/authentication/authentication.service.ts","../../../projects/netgrif-components-core/src/lib/utility/pagination/pagination-params.ts","../../../projects/netgrif-components-core/src/lib/resources/abstract-endpoint/abstract-resource.service.ts","../../../projects/netgrif-components-core/src/lib/resources/resource-provider.service.ts","../../../projects/netgrif-components-core/src/lib/resources/engine-endpoint/user-resource.service.ts","../../../projects/netgrif-components-core/src/lib/authentication/anonymous/anonymous.service.ts","../../../projects/netgrif-components-core/src/lib/user/services/user.service.ts","../../../projects/netgrif-components-core/src/lib/snack-bar/models/abstract-snack-bar.component.ts","../../../projects/netgrif-components-core/src/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.ts","../../../projects/netgrif-components-core/src/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.html","../../../projects/netgrif-components-core/src/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.ts","../../../projects/netgrif-components-core/src/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.html","../../../projects/netgrif-components-core/src/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.ts","../../../projects/netgrif-components-core/src/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.html","../../../projects/netgrif-components-core/src/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.ts","../../../projects/netgrif-components-core/src/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.html","../../../projects/netgrif-components-core/src/lib/snack-bar/models/snack-bar-enums.ts","../../../projects/netgrif-components-core/src/lib/snack-bar/models/injection-token-snackbar.ts","../../../projects/netgrif-components-core/src/lib/snack-bar/services/snack-bar.service.ts","../../../projects/netgrif-components-core/src/lib/user/services/user-preference.service.ts","../../../projects/netgrif-components-core/src/lib/translate/language.service.ts","../../../projects/netgrif-components-core/src/lib/translate/translate-interceptor.ts","../../../projects/netgrif-components-core/src/lib/translate/translate-lib.module.ts","../../../projects/netgrif-components-core/src/lib/data-fields/data-fields.module.ts","../../../projects/netgrif-components-core/src/lib/data-fields/models/data-field-portal-data-injection-token.ts","../../../projects/netgrif-components-core/src/lib/data-fields/base-component/abstract-base-data-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/models/invalid-data-policy-token.ts","../../../projects/netgrif-components-core/src/lib/data-fields/models/abstract-data-field-component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/boolean-field/abstract-boolean-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/models/component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/models/update-strategy.ts","../../../projects/netgrif-components-core/src/lib/data-fields/models/abstract-data-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/boolean-field/models/boolean-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/boolean-field/boolean-default-field/abstract-boolean-default-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/button-field/abstract-button-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/button-field/models/button-field.ts","../../../projects/netgrif-components-core/src/lib/dialog/models/abstract-dialog.component.ts","../../../projects/netgrif-components-core/src/lib/dialog/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/netgrif-components-core/src/lib/dialog/components/confirm-dialog/confirm-dialog.component.html","../../../projects/netgrif-components-core/src/lib/dialog/components/alert-dialog/alert-dialog.component.ts","../../../projects/netgrif-components-core/src/lib/dialog/components/alert-dialog/alert-dialog.component.html","../../../projects/netgrif-components-core/src/lib/dialog/components/prompt-dialog/prompt-dialog.component.ts","../../../projects/netgrif-components-core/src/lib/dialog/components/prompt-dialog/prompt-dialog.component.html","../../../projects/netgrif-components-core/src/lib/dialog/services/dialog.service.ts","../../../projects/netgrif-components-core/src/lib/data-fields/button-field/button-default-field/abstract-button-default-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/data-field-template/models/wrapped-boolean.ts","../../../projects/netgrif-components-core/src/lib/data-fields/models/template-appearance.ts","../../../projects/netgrif-components-core/src/lib/navigation/quick-panel/components/paper-view.service.ts","../../../projects/netgrif-components-core/src/lib/registry/component-registry.service.ts","../../../projects/netgrif-components-core/src/lib/data-fields/data-field-template/abstract-data-field-template.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/date-field/abstract-date-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/time-instance-abstract-field/models/abstract-time-instance-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/date-field/date-default-field/abstract-date-default-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/date-time-field/abstract-date-time-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/date-time-field/date-time-default-field/abstract-date-time-default-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/enumeration-field/abstract-enumeration-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.ts","../../../projects/netgrif-components-core/src/lib/task-content/model/field-type-resource.ts","../../../projects/netgrif-components-core/src/lib/data-fields/enumeration-field/models/enumeration-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-filter-property.ts","../../../projects/netgrif-components-core/src/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/case-ref-field/model/case-ref-field.ts","../../../projects/netgrif-components-core/src/lib/header/models/default-headers-token.ts","../../../projects/netgrif-components-core/src/lib/data-fields/case-ref-field/model/case-ref-injection-tokens.ts","../../../projects/netgrif-components-core/src/lib/search/models/base-filter-injection-token.ts","../../../projects/netgrif-components-core/src/lib/filter/models/filter.ts","../../../projects/netgrif-components-core/src/lib/filter/models/merge-operator.ts","../../../projects/netgrif-components-core/src/lib/filter/models/filter-type.ts","../../../projects/netgrif-components-core/src/lib/filter/models/merged-filter.ts","../../../projects/netgrif-components-core/src/lib/filter/models/simple-filter.ts","../../../projects/netgrif-components-core/src/lib/user/models/view-id-injection-tokens.ts","../../../projects/netgrif-components-core/src/lib/user/services/view-id.service.ts","../../../projects/netgrif-components-core/src/lib/data-fields/case-ref-field/model/abstract-case-ref-base-field-component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/enumeration-field/enumeration-caseref-field/abstract-enumeration-caseref-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/file-field/abstract-file-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/file-field/models/file-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/file-field/models/file-field-constants.ts","../../../projects/netgrif-components-core/src/lib/data-fields/models/abstract-file-field-default-component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/models/text-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/number-field/models/number-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/multichoice-field/models/multichoice-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/date-field/models/date-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/date-time-field/models/date-time-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/user-field/models/user-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/user-field/models/user-value.ts","../../../projects/netgrif-components-core/src/lib/data-fields/file-list-field/models/file-list-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/models/text-area-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/task-ref-field/model/task-ref-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/enumeration-field/models/dynamic-enumeration-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/filter-field/models/filter-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/i18n-field/models/i18n-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/user-list-field/models/user-list-field.ts","../../../projects/netgrif-components-core/src/lib/data-fields/user-list-field/models/user-list-value.ts","../../../projects/netgrif-components-core/src/lib/utility/base64.ts","../../../projects/netgrif-components-core/src/lib/data-fields/string-collection-field/models/string-collection-field.ts","../../../projects/netgrif-components-core/src/lib/task-content/services/field-converter.service.ts","../../../projects/netgrif-components-core/src/lib/resources/engine-endpoint/task-resource.service.ts","../../../projects/netgrif-components-core/src/lib/event/model/event-constants.ts","../../../projects/netgrif-components-core/src/lib/event/services/event.service.ts","../../../projects/netgrif-components-core/src/lib/data-fields/file-field/file-default-field/abstract-file-default-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/file-list-field/abstract-file-list-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/file-list-field/file-list-default-field/abstract-file-list-default-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/multichoice-field/abstract-multichoice-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/multichoice-field/multichoice-autocomplete-field/multichoice-autocomplete-filter-property.ts","../../../projects/netgrif-components-core/src/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/multichoice-field/multichoice-caseref-field/abstract-multichoice-caseref-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/number-field/abstract-number-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/number-field/abstract-number-errors.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/number-field/number-decimal-field/abstract-number-decimal-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/abstract-text-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/abstract-text-errors.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/abstract-dashboard-text-field.component.ts","../../../projects/netgrif-components-core/src/lib/dashboard/cards/model/dashboard-card-types.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/dashboard-line-chart-text-field/abstract-dashboard-line-chart-text-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/dashboard-pie-chart-text-field/abstract-dashboard-pie-chart-text-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/dashboard-bar-chart-text-field/abstract-dashboard-bar-chart-text-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/dashboard-iframe-text-field/abstract-dashboard-iframe-text-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/dashboard-portal-text-field/abstract-dashboard-portal-text-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/user-field/abstract-user-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/user-field/user-default-field/abstract-user-default-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/filter-field/abstract-filter-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/filter-field/models/filter-field-injection-token.ts","../../../projects/netgrif-components-core/src/lib/search/models/boolean-operator.ts","../../../projects/netgrif-components-core/src/lib/search/models/query/query.ts","../../../projects/netgrif-components-core/src/lib/search/models/predicate/predicate.ts","../../../projects/netgrif-components-core/src/lib/search/models/predicate/editable-predicate.ts","../../../projects/netgrif-components-core/src/lib/search/models/predicate/editable-elementary-predicate.ts","../../../projects/netgrif-components-core/src/lib/utility/incrementing-counter.ts","../../../projects/netgrif-components-core/src/lib/search/models/predicate/editable-clause-predicate.ts","../../../projects/netgrif-components-core/src/lib/search/models/predicate/predicate-with-generator.ts","../../../projects/netgrif-components-core/src/lib/search/models/predicate/editable-predicate-with-generator.ts","../../../projects/netgrif-components-core/src/lib/search/models/predicate/editable-clause-predicate-with-generators.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/operators.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/operator.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/equals.ts","../../../projects/netgrif-components-core/src/lib/utility/clear-time-information.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/in-range-date.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/equals-date.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/in-range-date-time.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/equals-date-time.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/in-range.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/is-null.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/less-than.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/less-than-date.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/less-than-date-time.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/like.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/more-than.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/more-than-date.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/more-than-date-time.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/not-equals.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/not-equals-date.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/substring.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/less-than-equal.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/more-than-equal.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/more-than-equal-date.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/more-than-equal-date-time.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/less-than-equal-date.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/less-than-equal-date-time.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator/not-equals-date-time.ts","../../../projects/netgrif-components-core/src/lib/search/operator-service/operator-resolver.service.ts","../../../projects/netgrif-components-core/src/lib/search/operator-service/operator.service.ts","../../../projects/netgrif-components-core/src/lib/search/search-keyword-resolver-service/search-index-resolver.service.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/categories.ts","../../../projects/netgrif-components-core/src/lib/search/models/predicate/elementary-predicate.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/search-input-type.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator-template-part-type.ts","../../../projects/netgrif-components-core/src/lib/search/models/operator-template-part.ts","../../../projects/netgrif-components-core/src/lib/search/models/configuration-input.ts","../../../projects/netgrif-components-core/src/lib/utility/of-void.ts","../../../projects/netgrif-components-core/src/lib/moment/time-formats.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/category.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-search.enum.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/autocomplete-category.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/no-configuration-autocomplete-category.ts","../../../projects/netgrif-components-core/src/lib/utility/pagination/page-has-content.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/user-autocomplete.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/no-configuration-user-autocomplete-category.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-author.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/no-configuration-category.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-creation-date.ts","../../../projects/netgrif-components-core/src/lib/search/models/datafield-map-key.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-process.ts","../../../projects/netgrif-components-core/src/lib/search/models/search-index.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-dataset.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/net-attribute-autocomplete-category.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-net-attribute-autocomplete-category.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-role.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-simple-dataset.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-task.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-title.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-visual-id.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-string-id.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/task/task-assignee.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/task/task-process.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/task/task-net-attribute-autocomplete-category.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/task/task-role.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/task/task-task.ts","../../../projects/netgrif-components-core/src/lib/search/models/category/case/case-creation-date-time.ts","../../../projects/netgrif-components-core/src/lib/search/category-factory/category-resolver.service.ts","../../../projects/netgrif-components-core/src/lib/process/net.ts","../../../projects/netgrif-components-core/src/lib/utility/process-message-response.ts","../../../projects/netgrif-components-core/src/lib/resources/engine-endpoint/petri-net-resource.service.ts","../../../projects/netgrif-components-core/src/lib/process/process.service.ts","../../../projects/netgrif-components-core/src/lib/allowed-nets/services/allowed-nets.service.ts","../../../projects/netgrif-components-core/src/lib/search/category-factory/category-factory.ts","../../../projects/netgrif-components-core/src/lib/search/search-service/search.service.ts","../../../projects/netgrif-components-core/src/lib/data-fields/filter-field/abstract-filter-field-content.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-view-constants.ts","../../../projects/netgrif-components-core/src/lib/data-fields/filter-field/abstract-filter-field-tab-view.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/filter-field/abstract-filter-field-tab-view-content.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/filter-field/filter-default-field/abstract-filter-default-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/i18n-field/abstract-i18n-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/i18n-field/language-icons.service.ts","../../../projects/netgrif-components-core/src/lib/data-fields/i18n-field/abstract-i18n-errors.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/user-list-field/abstract-user-list-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/user-list-field/user-list-default-field/abstract-user-list-default-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/task-ref-field/abstract-task-ref-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/task-ref-field/model/task-ref-dashboard-constants.ts","../../../projects/netgrif-components-core/src/lib/data-fields/task-ref-field/model/task-ref-dashboard-tile-constants.ts","../../../projects/netgrif-components-core/src/lib/task/models/task-operations-injection-token.ts","../../../projects/netgrif-components-core/src/lib/utility/call-chain/after-action.ts","../../../projects/netgrif-components-core/src/lib/resources/engine-endpoint/case-resource.service.ts","../../../projects/netgrif-components-core/src/lib/utility/call-chain/call-chain.service.ts","../../../projects/netgrif-components-core/src/lib/task-content/services/task-content.service.ts","../../../projects/netgrif-components-core/src/lib/task/services/task-handling-service.ts","../../../projects/netgrif-components-core/src/lib/task-content/model/task-event-notification.ts","../../../projects/netgrif-components-core/src/lib/task-content/model/task-event.ts","../../../projects/netgrif-components-core/src/lib/event-queue/model/queued-event.ts","../../../projects/netgrif-components-core/src/lib/task/services/task-request-state.service.ts","../../../projects/netgrif-components-core/src/lib/task-content/services/task-event.service.ts","../../../projects/netgrif-components-core/src/lib/task/services/selected-case.service.ts","../../../projects/netgrif-components-core/src/lib/event-queue/services/event-queue.service.ts","../../../projects/netgrif-components-core/src/lib/user/services/user-comparator.service.ts","../../../projects/netgrif-components-core/src/lib/changed-fields/services/changed-fields.service.ts","../../../projects/netgrif-components-core/src/lib/registry/front-action-registry.service.ts","../../../projects/netgrif-components-core/src/lib/actions/services/front-action.service.ts","../../../projects/netgrif-components-core/src/lib/task/services/task-data.service.ts","../../../projects/netgrif-components-core/src/lib/data-fields/task-ref-field/task-ref-dashboard-field/task-ref-dashboard-tile/abstract-task-ref-dashboard-tile.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/task-ref-field/task-ref-dashboard-field/abstract-task-ref-dashboard-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/task-ref-field/task-ref-list-field/abstract-task-ref-list-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/string-collection-field/string-collection-default-field/abstract-string-collection-default-field.component.ts","../../../projects/netgrif-components-core/src/lib/data-fields/models/boolean-label-enabled-token.ts","../../../projects/netgrif-components-core/src/lib/data-fields/models/material-appearance.ts","../../../projects/netgrif-components-core/src/lib/data-fields/task-ref-field/model/task-ref-components.ts","../../../projects/netgrif-components-core/src/lib/authentication/models/public-api.ts","../../../projects/netgrif-components-core/src/lib/routing/redirect-service/redirect.service.ts","../../../projects/netgrif-components-core/src/lib/authentication/services/authentication-interceptor.ts","../../../projects/netgrif-components-core/src/lib/authentication/services/methods/null-authentication/null-authentication.service.ts","../../../projects/netgrif-components-core/src/lib/authentication/services/methods/basic-authentication/basic-authentication.service.ts","../../../projects/netgrif-components-core/src/lib/authentication/authentication.factory.ts","../../../projects/netgrif-components-core/src/lib/authentication/services/anonymous-authentication-interceptor.ts","../../../projects/netgrif-components-core/src/lib/authentication/authentication.module.ts","../../../projects/netgrif-components-core/src/lib/authentication/services/guard/authentication-guard.service.ts","../../../projects/netgrif-components-core/src/lib/authentication/services/public-api.ts","../../../projects/netgrif-components-core/src/lib/authentication/profile/profile.module.ts","../../../projects/netgrif-components-core/src/lib/authentication/profile/services/profile.service.ts","../../../projects/netgrif-components-core/src/lib/authentication/profile/public-api.ts","../../../projects/netgrif-components-core/src/lib/authentication/session/public-api.ts","../../../projects/netgrif-components-core/src/lib/authentication/sign-up/sign-up.module.ts","../../../projects/netgrif-components-core/src/lib/authentication/sign-up/services/sign-up.service.ts","../../../projects/netgrif-components-core/src/lib/authentication/sign-up/public-api.ts","../../../projects/netgrif-components-core/src/lib/utility/service/spinner-overlay.service.ts","../../../projects/netgrif-components-core/src/lib/authentication/components/abstract-authentication-overlay.ts","../../../projects/netgrif-components-core/src/lib/authentication/components/abstract-session-idle.component.ts","../../../projects/netgrif-components-core/src/lib/authentication/public-api.ts","../../../projects/netgrif-components-core/src/lib/user/models/public-api.ts","../../../projects/netgrif-components-core/src/lib/user/services/user-list.service.ts","../../../projects/netgrif-components-core/src/lib/navigation/navigation-drawer/abstract-navigation-resizable-drawer.component.ts","../../../projects/netgrif-components-core/src/lib/user/components/user-card/abstract-user-card.component.ts","../../../projects/netgrif-components-core/src/lib/user/profile/abstract-profile.component.ts","../../../projects/netgrif-components-core/src/lib/user/public-api.ts","../../../projects/netgrif-components-core/src/lib/panel/configuration/config-params.ts","../../../projects/netgrif-components-core/src/lib/utility/service/case-list-font-color.service.ts","../../../projects/netgrif-components-core/src/lib/panel/abstract-panel.component.ts","../../../projects/netgrif-components-core/src/lib/resources/types/nae-date-type.ts","../../../projects/netgrif-components-core/src/lib/header/case-header/case-menta-enum.ts","../../../projects/netgrif-components-core/src/lib/header/models/header-column.ts","../../../projects/netgrif-components-core/src/lib/header/services/overflow.service.ts","../../../projects/netgrif-components-core/src/lib/panel/abstract/panel-with-header-binding.ts","../../../projects/netgrif-components-core/src/lib/panel/abstract/panel-with-immediate-data.ts","../../../projects/netgrif-components-core/src/lib/utility/get-immediate-data.ts","../../../projects/netgrif-components-core/src/lib/process/permissions.ts","../../../projects/netgrif-components-core/src/lib/view/abstract/page-load-request-context.ts","../../../projects/netgrif-components-core/src/lib/utility/loading-with-filter-emitter.ts","../../../projects/netgrif-components-core/src/lib/utility/array-to-observable.ts","../../../projects/netgrif-components-core/src/lib/view/case-view/models/new-case-configuration-injection-token.ts","../../../projects/netgrif-components-core/src/lib/header/models/user-changes/header-change-type.ts","../../../projects/netgrif-components-core/src/lib/view/abstract/sortable-view.ts","../../../projects/netgrif-components-core/src/lib/utility/pagination/pagination-sort.ts","../../../projects/netgrif-components-core/src/lib/dialog/injection-tokens.ts","../../../projects/netgrif-components-core/src/lib/task-content/model/policy.ts","../../../projects/netgrif-components-core/src/lib/authorization/permission/permission.service.ts","../../../projects/netgrif-components-core/src/lib/view/case-view/service/case-view-service.ts","../../../projects/netgrif-components-core/src/lib/panel/case-panel/abstract-case-panel.component.ts","../../../projects/netgrif-components-core/src/lib/header/task-header/task-meta-enum.ts","../../../projects/netgrif-components-core/src/lib/panel/task-panel/models/disable-functions.ts","../../../projects/netgrif-components-core/src/lib/view/task-view/models/injection-token-task-force-open.ts","../../../projects/netgrif-components-core/src/lib/tabs/tab-data-injection-token/tab-data-injection-token.ts","../../../projects/netgrif-components-core/src/lib/view/task-view/models/task-endpoint.ts","../../../projects/netgrif-components-core/src/lib/view/task-view/models/injection-token-task-endpoint.ts","../../../projects/netgrif-components-core/src/lib/view/task-view/models/task-view-configuration-injection-token.ts","../../../projects/netgrif-components-core/src/lib/view/task-view/service/task-view.service.ts","../../../projects/netgrif-components-core/src/lib/task/services/assign-task.service.ts","../../../projects/netgrif-components-core/src/lib/side-menu/models/side-menu-size.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/injection-tokens.ts","../../../projects/netgrif-components-core/src/lib/side-menu/side-menu-injection-token.ts","../../../projects/netgrif-components-core/src/lib/side-menu/models/portal-wrapper.ts","../../../projects/netgrif-components-core/src/lib/side-menu/models/side-menu-ref.ts","../../../projects/netgrif-components-core/src/lib/side-menu/models/side-menu-control.ts","../../../projects/netgrif-components-core/src/lib/side-menu/net-version-visible-injection-token.ts","../../../projects/netgrif-components-core/src/lib/side-menu/services/side-menu.service.ts","../../../projects/netgrif-components-core/src/lib/task/services/delegate-task.service.ts","../../../projects/netgrif-components-core/src/lib/task/services/cancel-task.service.ts","../../../projects/netgrif-components-core/src/lib/task/services/finish-task.service.ts","../../../projects/netgrif-components-core/src/lib/task/services/data-focus-policy.service.ts","../../../projects/netgrif-components-core/src/lib/task/services/finish-policy.service.ts","../../../projects/netgrif-components-core/src/lib/task/services/assign-policy.service.ts","../../../projects/netgrif-components-core/src/lib/task/models/subject-task-operations.ts","../../../projects/netgrif-components-core/src/lib/panel/task-panel/abstract-task-panel.component.ts","../../../projects/netgrif-components-core/src/lib/panel/abstract/tabbed-virtual-scroll.component.ts","../../../projects/netgrif-components-core/src/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.component.ts","../../../projects/netgrif-components-core/src/lib/panel/task-panel-list/abstract-task-list.component.ts","../../../projects/netgrif-components-core/src/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.ts","../../../projects/netgrif-components-core/src/lib/header/workflow-header/workflow-meta-enum.ts","../../../projects/netgrif-components-core/src/lib/view/workflow-view/models/injection-token-workflow-service.ts","../../../projects/netgrif-components-core/src/lib/view/workflow-view/workflow-view.service.ts","../../../projects/netgrif-components-core/src/lib/panel/workflow-panel/abstract-workflow-panel.component.ts","../../../projects/netgrif-components-core/src/lib/panel/immediate/model/filter-text-injection-token.ts","../../../projects/netgrif-components-core/src/lib/panel/immediate/abstract-immediate-filter-text.component.ts","../../../projects/netgrif-components-core/src/lib/panel/immediate/abstract-immediate-filter-text-content.component.ts","../../../projects/netgrif-components-core/src/lib/panel/panel-item/abstract-panel-item.component.ts","../../../projects/netgrif-components-core/src/lib/panel/task-panel-single/abstract-single-task.component.ts","../../../projects/netgrif-components-core/src/lib/panel/public-api.ts","../../../projects/netgrif-components-core/src/lib/configuration/public-api.ts","../../../projects/netgrif-components-core/src/lib/forms/email-submission/abstract-email-submission-form.component.ts","../../../projects/netgrif-components-core/src/lib/forms/login/abstract-login-form.component.ts","../../../projects/netgrif-components-core/src/lib/forms/models/password.validator.ts","../../../projects/netgrif-components-core/src/lib/forms/min-password-length-token.ts","../../../projects/netgrif-components-core/src/lib/forms/models/abstract-registration.component.ts","../../../projects/netgrif-components-core/src/lib/forms/registration/abstract-registration-form.component.ts","../../../projects/netgrif-components-core/src/lib/forms/forgotten-password/abstract-forgotten-password.component.ts","../../../projects/netgrif-components-core/src/lib/forms/change-password/abstract-change-password.component.ts","../../../projects/netgrif-components-core/src/lib/toolbar/abstract-toolbar.component.ts","../../../projects/netgrif-components-core/src/lib/tabs/classes/tab-label-stream.ts","../../../projects/netgrif-components-core/src/lib/tabs/classes/opened-tab.ts","../../../projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts","../../../projects/netgrif-components-core/src/lib/routing/view-service/view.service.ts","../../../projects/netgrif-components-core/src/lib/tabs/tab-view/abstract-tab-view.component.ts","../../../projects/netgrif-components-core/src/lib/tabs/tab-creation-detector/abstract-tab-creation-detector.component.ts","../../../projects/netgrif-components-core/src/lib/navigation/model/size-menu-injection-token.ts","../../../projects/netgrif-components-core/src/lib/navigation/model/group-navigation-constants.ts","../../../projects/netgrif-components-core/src/lib/navigation/service/uri-resource.service.ts","../../../projects/netgrif-components-core/src/lib/groups/services/next-group.service.ts","../../../projects/netgrif-components-core/src/lib/groups/services/active-group.service.ts","../../../projects/netgrif-components-core/src/lib/navigation/service/uri.service.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/import-net/abstract-import-net.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/new-case/abstract-new-case.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/user-assign/abstract-user-assign.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/user-assign/base-user-assign-list/abstract-base-user-assign-list.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/user-assign/user-assign-list/abstract-user-assign-list.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/user-assign/abstract-multi-user-assign.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/user-assign/multi-user-assign-list/abstract-multi-user-assign-list.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/user-assign/multi-user-assign-list/multi-user-assign-item/abstract-multi-user-assign-item.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/abstract-user-assign-item.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/filter-selector/model/filtered-array.ts","../../../projects/netgrif-components-core/src/lib/filter/filter.repository.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/filter-selector/abstract-filter-selector.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/filter-selector/filter-selector-list-item/abstract-filter-selector-list-item.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/option-selector/abstract-option-selector.component.ts","../../../projects/netgrif-components-core/src/lib/view/abstract/view-with-headers.ts","../../../projects/netgrif-components-core/src/lib/view/task-view/abstract-task-view.ts","../../../projects/netgrif-components-core/src/lib/filter/models/user-filter-constants.ts","../../../projects/netgrif-components-core/src/lib/utility/get-field.ts","../../../projects/netgrif-components-core/src/lib/filter/user-filters.service.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/save-filter/abstract-save-filter.component.ts","../../../projects/netgrif-components-core/src/lib/header/models/header-type.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/new-case/model/new-case-injection-data.ts","../../../projects/netgrif-components-core/src/lib/view/case-view/abstract-case-view.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/load-filter/abstract-load-filter.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/user-impersonate/abstract-user-impersonate.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/content-components/public-api.ts","../../../projects/netgrif-components-core/src/lib/side-menu/side-menu-container/abstract-side-menu-container.component.ts","../../../projects/netgrif-components-core/src/lib/side-menu/public-api.ts","../../../projects/netgrif-components-core/src/lib/dialog/components/alert-dialog/alert-dialog.module.ts","../../../projects/netgrif-components-core/src/lib/dialog/components/confirm-dialog/confirm-dialog.module.ts","../../../projects/netgrif-components-core/src/lib/dialog/components/prompt-dialog/prompt-dialog.module.ts","../../../projects/netgrif-components-core/src/lib/dialog/dialog.module.ts","../../../projects/netgrif-components-core/src/lib/dialog/public-api.ts","../../../projects/netgrif-components-core/src/lib/header/models/header-mode.ts","../../../projects/netgrif-components-core/src/lib/header/header-state.ts","../../../projects/netgrif-components-core/src/lib/header/abstract-header-service.ts","../../../projects/netgrif-components-core/src/lib/header/case-header/case-header.service.ts","../../../projects/netgrif-components-core/src/lib/header/task-header/task-header.service.ts","../../../projects/netgrif-components-core/src/lib/header/workflow-header/workflow-header.service.ts","../../../projects/netgrif-components-core/src/lib/search/header-search-service/header-search.service.ts","../../../projects/netgrif-components-core/src/lib/utility/stop-propagation.ts","../../../projects/netgrif-components-core/src/lib/header/abstract-header.component.ts","../../../projects/netgrif-components-core/src/lib/header/header-modes/abstract-header-mode.component.ts","../../../projects/netgrif-components-core/src/lib/header/header-modes/sort-mode/abstract-sort-mode.component.ts","../../../projects/netgrif-components-core/src/lib/header/header-modes/edit-mode/abstract-edit-mode.component.ts","../../../projects/netgrif-components-core/src/lib/header/header-modes/loading-mode/abstract-loading-mode.component.ts","../../../projects/netgrif-components-core/src/lib/header/header-modes/search-mode/abstract-search-mode.component.ts","../../../projects/netgrif-components-core/src/lib/header/public-api.ts","../../../projects/netgrif-components-core/src/lib/resources/engine-endpoint/dashboard-resource.service.ts","../../../projects/netgrif-components-core/src/lib/resources/engine-endpoint/ldap-group-resource.service.ts","../../../projects/netgrif-components-core/src/lib/resources/engine-endpoint/public/public-case-resource.service.ts","../../../projects/netgrif-components-core/src/lib/resources/engine-endpoint/public/public-petri-net-resource.service.ts","../../../projects/netgrif-components-core/src/lib/resources/engine-endpoint/public/public-task-resource.service.ts","../../../projects/netgrif-components-core/src/lib/resources/interface/data-groups.ts","../../../projects/netgrif-components-core/src/lib/resources/interface/field-alignment.ts","../../../projects/netgrif-components-core/src/lib/resources/public-api.ts","../../../projects/netgrif-components-core/src/lib/navigation/quick-panel/components/abstract-quick-panel.component.ts","../../../projects/netgrif-components-core/src/lib/navigation/quick-panel/components/internal-link/abstract-internal-link.component.ts","../../../projects/netgrif-components-core/src/lib/navigation/quick-panel/components/logout-shortcut/abstract-logout-shortcut.component.ts","../../../projects/netgrif-components-core/src/lib/navigation/quick-panel/components/language-selector/abstract-language-selector.component.ts","../../../projects/netgrif-components-core/src/lib/navigation/quick-panel/public-api.ts","../../../projects/netgrif-components-core/src/lib/authorization/role/role-guard.service.ts","../../../projects/netgrif-components-core/src/lib/authorization/authority/authority-guard.service.ts","../../../projects/netgrif-components-core/src/lib/authorization/group/group-guard.service.ts","../../../projects/netgrif-components-core/src/lib/authorization/permission/access.service.ts","../../../projects/netgrif-components-core/src/lib/routing/dynamic-navigation-route-provider/dynamic-navigation-route-provider.service.ts","../../../projects/netgrif-components-core/src/lib/navigation/navigation-tree/abstract-navigation-tree.component.ts","../../../projects/netgrif-components-core/src/lib/navigation/navigation-drawer/abstract-navigation-drawer.component.ts","../../../projects/netgrif-components-core/src/commons/import-to-add.ts","../../../projects/netgrif-components-core/src/commons/angular-cli-devkit-core-strings.ts","../../../projects/netgrif-components-core/src/commons/view-class-info.ts","../../../projects/netgrif-components-core/src/lib/navigation/model/group-navigation-component-resolver-component-injection-token.ts","../../../projects/netgrif-components-core/src/lib/routing/routing-builder/routing-builder.service.ts","../../../projects/netgrif-components-core/src/lib/navigation/model/navigation-configs.ts","../../../projects/netgrif-components-core/src/lib/impersonation/models/user-impersonation-constants.ts","../../../projects/netgrif-components-core/src/lib/impersonation/services/impersonation.service.ts","../../../projects/netgrif-components-core/src/lib/impersonation/services/impersonation-user-select.service.ts","../../../projects/netgrif-components-core/src/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.ts","../../../projects/netgrif-components-core/src/lib/navigation/navigation-rail/abstract-navigation-rail.component.ts","../../../projects/netgrif-components-core/src/lib/utility/destroy-subscription.ts","../../../projects/netgrif-components-core/src/lib/navigation/model/filter-case-injection-token.ts","../../../projects/netgrif-components-core/src/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.ts","../../../projects/netgrif-components-core/src/lib/navigation/group-navigation-component-resolver/abstract-group-navigation-component-resolver.component.ts","../../../projects/netgrif-components-core/src/lib/navigation/breadcrumbs/abstract-breadcrumbs.component.ts","../../../projects/netgrif-components-core/src/lib/search/models/component-configuration/search-mode.ts","../../../projects/netgrif-components-core/src/lib/navigation/utility/navigation-item-task-utility-methods.ts","../../../projects/netgrif-components-core/src/lib/allowed-nets/services/factory/allowed-nets-service-factory.ts","../../../projects/netgrif-components-core/src/lib/allowed-nets/services/base-allowed-nets.service.ts","../../../projects/netgrif-components-core/src/lib/navigation/utility/filter-extraction.service.ts","../../../projects/netgrif-components-core/src/lib/navigation/model/uri-resource.ts","../../../projects/netgrif-components-core/src/lib/navigation/group-navigation-component-resolver/group-navigation-view-id-segment-factory.ts","../../../projects/netgrif-components-core/src/lib/navigation/public-api.ts","../../../projects/netgrif-components-core/src/lib/view/tree-case-view/model/tree-petriflow-identifiers.ts","../../../projects/netgrif-components-core/src/lib/view/tree-case-view/tree-component/model/case-tree-node.ts","../../../projects/netgrif-components-core/src/lib/view/abstract/netgrif-paginator-intl.ts","../../../projects/netgrif-components-core/src/lib/view/case-view/models/autoswitch-token.ts","../../../projects/netgrif-components-core/src/lib/view/case-view/models/open-existing-tab-token.ts","../../../projects/netgrif-components-core/src/lib/view/case-view/tabbed-case-view.ts","../../../projects/netgrif-components-core/src/lib/view/task-view/tabbed-task-view.ts","../../../projects/netgrif-components-core/src/lib/view/tree-case-view/tree-component/model/tree-configuration-injection-token.ts","../../../projects/netgrif-components-core/src/lib/view/tree-case-view/tree-case-view.service.ts","../../../projects/netgrif-components-core/src/lib/utility/result-with-after-actions.ts","../../../projects/netgrif-components-core/src/lib/utility/refresh-tree.ts","../../../projects/netgrif-components-core/src/lib/view/tree-case-view/tree-component/case-tree.service.ts","../../../projects/netgrif-components-core/src/lib/view/tree-case-view/tree-task-content/tree-task-content.service.ts","../../../projects/netgrif-components-core/src/lib/view/task-view/service/public-task-loading.service.ts","../../../projects/netgrif-components-core/src/lib/view/workflow-view/abstract-workflow-view.component.ts","../../../projects/netgrif-components-core/src/lib/view/case-view/components/default-case-list/abstract-default-case-list.component.ts","../../../projects/netgrif-components-core/src/lib/view/case-view/components/case-list/abstract-case-list.component.ts","../../../projects/netgrif-components-core/src/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.ts","../../../projects/netgrif-components-core/src/lib/view/tree-case-view/tree-component/abstract-tree.component.ts","../../../projects/netgrif-components-core/src/lib/view/tree-case-view/tree-component/add-child-node/abstract-add-child-node.component.ts","../../../projects/netgrif-components-core/src/lib/view/tree-case-view/tree-component/remove-node/abstract-remove-node.component.ts","../../../projects/netgrif-components-core/src/lib/view/tree-case-view/tree-task-content/abstract-tree-task-content.component.ts","../../../projects/netgrif-components-core/src/lib/view/task-view/abstract-single-task-view.component.ts","../../../projects/netgrif-components-core/src/lib/view/public-api.ts","../../../projects/netgrif-components-core/src/lib/process/public-process.service.ts","../../../projects/netgrif-components-core/src/lib/dashboard/cards/model/custom-dashboard-model/dashboard-multi-data.ts","../../../projects/netgrif-components-core/src/lib/dashboard/cards/model/custom-dashboard-model/dashboard-single-data.ts","../../../projects/netgrif-components-core/src/lib/dashboard/cards/count-card/abstract-count-card.ts","../../../projects/netgrif-components-core/src/lib/dashboard/cards/iframe-card/abstract-iframe-card.ts","../../../projects/netgrif-components-core/src/lib/dashboard/cards/custom-card/abstract-custom-card.ts","../../../projects/netgrif-components-core/src/lib/utility/grid-layout/model/grid-filler.ts","../../../projects/netgrif-components-core/src/lib/utility/grid-layout/grid-layout-helper.ts","../../../projects/netgrif-components-core/src/lib/dashboard/dashboard-content/abstract-dashboard-content.ts","../../../projects/netgrif-components-core/src/lib/dashboard/public-api.ts","../../../projects/netgrif-components-core/src/lib/filter/models/filters-filter-injection-token.ts","../../../projects/netgrif-components-core/src/lib/filter/public-api.ts","../../../projects/netgrif-components-core/src/lib/snack-bar/snack-bar.module.ts","../../../projects/netgrif-components-core/src/lib/snack-bar/public-api.ts","../../../projects/netgrif-components-core/src/lib/search/models/predicate/clause-predicate.ts","../../../projects/netgrif-components-core/src/lib/search/advanced-search-component-initialization-service/advanced-search-component-initialization.service.ts","../../../projects/netgrif-components-core/src/lib/search/models/component-configuration/search-component-configuration-injection-token.ts","../../../projects/netgrif-components-core/src/lib/search/category-factory/search-categories-injection-token.ts","../../../projects/netgrif-components-core/src/lib/search/search-component/abstract-search.component.ts","../../../projects/netgrif-components-core/src/lib/search/fulltext-search-component/abstract-fulltext-search.component.ts","../../../projects/netgrif-components-core/src/lib/search/advanced-search-component/abstract-advanced-search.component.ts","../../../projects/netgrif-components-core/src/lib/search/search-clause-component/abstract-search-clause.component.ts","../../../projects/netgrif-components-core/src/lib/search/search-predicate-component/abstract-search-predicate.component.ts","../../../projects/netgrif-components-core/src/lib/search/search-operand-input-component/abstract-search-operand-input.component.ts","../../../projects/netgrif-components-core/src/lib/search/search-configuration-input-component/abstract-search-configuration-input.component.ts","../../../projects/netgrif-components-core/src/lib/search/category-factory/default-categories-factories.ts","../../../projects/netgrif-components-core/src/lib/search/category-factory/default-search-categories.module.ts","../../../projects/netgrif-components-core/src/lib/search/public-api.ts","../../../projects/netgrif-components-core/src/lib/translate/default-language-injection-token.ts","../../../projects/netgrif-components-core/src/lib/admin/role-assignment/services/ProcessList.ts","../../../projects/netgrif-components-core/src/lib/admin/role-assignment/services/role-assignment.service.ts","../../../projects/netgrif-components-core/src/lib/admin/role-assignment/abstract-role-assignment.component.ts","../../../projects/netgrif-components-core/src/lib/admin/user-invite/services/user-invite.service.ts","../../../projects/netgrif-components-core/src/lib/admin/user-invite/services/organization-list.service.ts","../../../projects/netgrif-components-core/src/lib/admin/user-invite/abstract-user-invite.component.ts","../../../projects/netgrif-components-core/src/lib/groups/services/ldap-group-list.service.ts","../../../projects/netgrif-components-core/src/lib/admin/role-assignment-ldap-group/services/role-assignment-ldap-group.service.ts","../../../projects/netgrif-components-core/src/lib/admin/role-assignment-ldap-group/abstract-ldap-group-role-assignment.component.ts","../../../projects/netgrif-components-core/src/lib/admin/public-api.ts","../../../projects/netgrif-components-core/src/lib/utility/pagination/load-all-pages.ts","../../../projects/netgrif-components-core/src/lib/utility/navigation-item-task-filter-factory.ts","../../../projects/netgrif-components-core/src/lib/utility/navigation-item-task-search-categories-factory.ts","../../../projects/netgrif-components-core/src/lib/utility/navigation-item-default-headers-factory.ts","../../../projects/netgrif-components-core/src/lib/utility/is-empty.pipe.ts","../../../projects/netgrif-components-core/src/lib/utility/is-non-empty.pipe.ts","../../../projects/netgrif-components-core/src/lib/utility/contains.pipe.ts","../../../projects/netgrif-components-core/src/lib/utility/directives/let.directive.ts","../../../projects/netgrif-components-core/src/lib/utility/utility.module.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/mocks/mock-authentication.service.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/mocks/mock-user-preference.service.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/mocks/mock-user-resource.service.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/mocks/mock-user.service.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/mocks/mock-authentication-method-service.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/mocks/mock-sign-up.service.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/mocks/mock-user-autocomplete-value.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-task.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-case.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-immediate-data.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-page.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-net.ts","../../../projects/netgrif-components-core/src/lib/resources/interface/data-group-layout.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-datagroup.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-field.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-case-outcome.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-task-outcome.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-get-data-outcome.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-set-data-outcome.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/create-mock-petri-net-outcome.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/utility/configure-category.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/search-category-mock-dependencies.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/test-config.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/test-factory-methods.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/test-view-service.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/mocks/mock-endpoint.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/test-mock-dependencies.module.ts","../../../projects/netgrif-components-core/src/lib/utility/tests/mocks/mock-profile.service.ts","../../../projects/netgrif-components-core/src/lib/routing/public-api.ts","../../../projects/netgrif-components-core/src/lib/task-content/services/single-task-content.service.ts","../../../projects/netgrif-components-core/src/lib/task-content/services/unlimited-task-content.service.ts","../../../projects/netgrif-components-core/src/lib/task-content/model/task-content-element-type.ts","../../../projects/netgrif-components-core/src/lib/task-content/model/async-rendering-configuration-injection-token.ts","../../../projects/netgrif-components-core/src/lib/task-content/model/subgrid.ts","../../../projects/netgrif-components-core/src/lib/task-content/task-content/abstract-task-content.component.ts","../../../projects/netgrif-components-core/src/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.ts","../../../projects/netgrif-components-core/src/lib/task-content/public-api.ts","../../../projects/netgrif-components-core/src/lib/task/models/null-task-operations.ts","../../../projects/netgrif-components-core/src/lib/task/public-api.ts","../../../projects/netgrif-components-core/src/lib/authorization/public-api.ts","../../../projects/netgrif-components-core/src/lib/public/factories/public-factory-resolver.ts","../../../projects/netgrif-components-core/src/lib/public/factories/get-net-and-create-case.ts","../../../projects/netgrif-components-core/src/lib/public/factories/public-search-factory.ts","../../../projects/netgrif-components-core/src/lib/public/services/public-url-resolver.service.ts","../../../projects/netgrif-components-core/src/lib/legal/legal-notice/abstract-legal-notice.component.ts","../../../projects/netgrif-components-core/src/lib/event-queue/public-api.ts","../../../projects/netgrif-components-core/src/lib/event/public-api.ts","../../../projects/netgrif-components-core/src/lib/impersonation/services/impersonation-user-resource.service.ts","../../../projects/netgrif-components-core/src/lib/impersonation/services/impersonation-user-list.service.ts","../../../projects/netgrif-components-core/src/lib/impersonation/public-api.ts","../../../projects/netgrif-components-core/src/lib/actions/model/router-action-definitions.ts","../../../projects/netgrif-components-core/src/lib/actions/model/task-action-definitions.ts","../../../projects/netgrif-components-core/src/lib/actions/front-action.module.ts","../../../projects/netgrif-components-core/src/lib/providers/process-service/process-service.provider.ts","../../../projects/netgrif-components-core/src/lib/providers/petrinet-resource/petrinet-resource-service.provider.ts","../../../projects/netgrif-components-core/src/lib/providers/task-resource/task-resource-service.provider.ts","../../../projects/netgrif-components-core/src/lib/providers/case-resource/case-resource-service.provider.ts","../../../projects/netgrif-components-core/src/lib/providers/base-filter/base-filter-factory.provider.ts","../../../projects/netgrif-components-core/src/lib/export/services/export.service.ts","../../../projects/netgrif-components-core/src/lib/export/public-api.ts","../../../projects/netgrif-components-core/src/public-api.ts","../../../projects/netgrif-components-core/src/netgrif-components-core.ts"],"sourcesContent":["import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DragDropModule} from '@angular/cdk/drag-drop';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {CdkStepperModule} from '@angular/cdk/stepper';\nimport {CdkTableModule} from '@angular/cdk/table';\nimport {CdkTreeModule} from '@angular/cdk/tree';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {ScrollingModule} from '@angular/cdk/scrolling';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {FlexLayoutModule} from '@angular/flex-layout';\nimport {MatMomentDateModule} from '@angular/material-moment-adapter';\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\nimport {MatBadgeModule} from '@angular/material/badge';\nimport {MatBottomSheetModule} from '@angular/material/bottom-sheet';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport {MatChipsModule} from '@angular/material/chips';\nimport {MatStepperModule} from '@angular/material/stepper';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport {MatDividerModule} from '@angular/material/divider';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport {MatGridListModule} from '@angular/material/grid-list';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatListModule} from '@angular/material/list';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatPaginatorModule} from '@angular/material/paginator';\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport {MatRadioModule} from '@angular/material/radio';\nimport {MatOptionModule, MatRippleModule} from '@angular/material/core';\nimport {MatSliderModule} from '@angular/material/slider';\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\nimport {MatSortModule} from '@angular/material/sort';\nimport {MatTableModule} from '@angular/material/table';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {MatTreeModule} from '@angular/material/tree';\nimport {MatFormFieldModule} from '@angular/material/form-field';\n\n@NgModule({\n    declarations: [],\n    imports: [\n        CommonModule,\n        FlexLayoutModule\n    ],\n    exports: [\n        FlexLayoutModule,\n        A11yModule,\n        CdkStepperModule,\n        CdkTableModule,\n        CdkTreeModule,\n        DragDropModule,\n        MatAutocompleteModule,\n        MatBadgeModule,\n        MatBottomSheetModule,\n        MatButtonModule,\n        MatButtonToggleModule,\n        MatCardModule,\n        MatCheckboxModule,\n        MatChipsModule,\n        MatStepperModule,\n        MatDatepickerModule,\n        MatDialogModule,\n        MatDividerModule,\n        MatExpansionModule,\n        MatGridListModule,\n        MatIconModule,\n        MatInputModule,\n        MatListModule,\n        MatMenuModule,\n        MatMomentDateModule,\n        MatPaginatorModule,\n        MatProgressBarModule,\n        MatProgressSpinnerModule,\n        MatRadioModule,\n        MatRippleModule,\n        MatSelectModule,\n        MatSidenavModule,\n        MatSliderModule,\n        MatSlideToggleModule,\n        MatSnackBarModule,\n        MatSortModule,\n        MatTableModule,\n        MatTabsModule,\n        MatToolbarModule,\n        MatTooltipModule,\n        MatTreeModule,\n        PortalModule,\n        ScrollingModule,\n        MatOptionModule,\n        MatFormFieldModule,\n        FormsModule,\n        ReactiveFormsModule,\n    ]\n})\nexport class MaterialModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CovalentMarkdownModule} from '@covalent/markdown';\n\n@NgModule({\n    exports: [\n        CovalentMarkdownModule\n    ]\n})\nexport class CovalentModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule, CurrencyPipe, DecimalPipe, registerLocaleData} from '@angular/common';\nimport en from '@angular/common/locales/en';\nimport sk from '@angular/common/locales/sk';\nimport de from '@angular/common/locales/de';\n\n\n@NgModule({\n    declarations: [],\n    imports: [\n        CommonModule\n    ],\n    providers: [CurrencyPipe, DecimalPipe]\n})\nexport class CurrencyModule {\n\n    constructor() {\n        registerLocaleData(en);\n        registerLocaleData(sk);\n        registerLocaleData(de);\n    }\n}\n","export enum LogLevel {\n    ALL = 0,\n    DEBUG = 1,\n    INFO = 2,\n    WARN = 3,\n    ERROR = 4,\n    OFF = 6\n}\n","import {LogLevel} from '../services/log-level';\n\n/**\n * Log entry configuration.\n * All attributes are optional.\n * Attributes that are not present in the configuration object are set to their default value.\n */\nexport interface LogEntryConfiguration {\n    logWithDate?: boolean;\n    serializeParams?: boolean;\n    includeLogLevel?: boolean;\n\n    [k: string]: any;\n}\n\nexport class LogEntry {\n\n    public readonly date: Date;\n    public readonly level: LogLevel;\n    public readonly message: string;\n    public readonly params: object;\n    public readonly config: LogEntryConfiguration;\n\n    /**\n     * Log entry class\n     * @param level - Log level of this entry\n     * @param message - message to write to the log\n     * @param params - additional parameters to write into the log\n     * @param config - extra class configuration\n     */\n    constructor(level: LogLevel, message: string, params?: object, config?: LogEntryConfiguration) {\n        this.date = new Date();\n        this.level = level;\n        this.message = message;\n        this.params = params;\n        const defaults: LogEntryConfiguration = {\n            logWithDate: true,\n            serializeParams: true,\n            includeLogLevel: true\n        };\n        this.config = {...defaults, ...config};\n    }\n\n    get levelString(): string {\n        return LogLevel[this.level.toString()];\n    }\n\n    /**\n     * Serialization of additional parameters of the entry.\n     * @return Serialized JSON\n     */\n    private serializeParams(): string {\n        if (!this.config.serializeParams) {\n            return '';\n        }\n        return JSON.stringify(this.params);\n    }\n\n    /**\n     * Stringify log entry. According to configuration entry can include time, log level and extra parameters\n     * @return Log string\n     */\n    toString(): string {\n        let str = '';\n        if (this.config.logWithDate) {\n            str += '[' + this.date.toISOString() + '] ';\n        }\n        if (this.config.includeLogLevel) {\n            str += '<' + this.levelString + '> ';\n        }\n        str += this.message;\n        if (this.config.serializeParams && this.params) {\n            if (this.params instanceof Array) {\n                if (this.params.length !== 0) {\n                    str += ' , params: ' + this.serializeParams();\n                }\n            } else {\n                str += ' , params: ' + this.serializeParams();\n            }\n        }\n        return str;\n    }\n\n}\n","import {LogEntry} from '../models/log-entry';\nimport {LogPublisherService} from '../services/log-publisher.service';\n\nexport abstract class LogPublisher {\n\n    protected location: string;\n\n    constructor(publisherService: LogPublisherService) {\n        publisherService\n            .register(this)\n            .subscribe(entry => {\n                if (entry) {\n                    this.log(entry);\n                }\n            });\n    }\n\n    abstract log(entry: LogEntry): void;\n\n    abstract clear(): void;\n}\n","import {LogPublisher} from './log-publisher';\nimport {LogEntry} from '../models/log-entry';\nimport {LogPublisherService} from '../services/log-publisher.service';\nimport {LogLevel} from '../services/log-level';\n\n\nexport class ConsoleLogPublisher extends LogPublisher {\n\n    constructor(publisherService: LogPublisherService) {\n        super(publisherService);\n    }\n\n    clear(): void {\n        console.clear();\n    }\n\n    log(entry: LogEntry): void {\n        if (!entry) {\n            return;\n        }\n        switch (entry.level) {\n            case LogLevel.DEBUG:\n                console.debug(entry.toString());\n                break;\n            case LogLevel.ERROR:\n                console.error(entry.toString());\n                break;\n            case LogLevel.INFO:\n                console.info(entry.toString());\n                break;\n            case LogLevel.WARN:\n                console.warn(entry.toString());\n                break;\n            default:\n                console.log(entry.toString());\n        }\n    }\n\n}\n","import {LogPublisher} from './log-publisher';\nimport {LogEntry} from '../models/log-entry';\nimport {LogPublisherService} from '../services/log-publisher.service';\n\nexport class LocalStorageLogPublisher extends LogPublisher {\n\n    public static readonly DEFAULT_KEY = 'application-log';\n\n    constructor(publisherService: LogPublisherService, logKey?: string) {\n        super(publisherService);\n        this.location = !logKey ? LocalStorageLogPublisher.DEFAULT_KEY : logKey;\n    }\n\n    clear(): void {\n        localStorage.removeItem(this.location);\n    }\n\n    log(entry: LogEntry): void {\n        if (!entry) {\n            return;\n        }\n        const logString: string = localStorage.getItem(this.location);\n        let log: Array<LogEntry>;\n        if (!logString) {\n            log = [];\n        } else {\n            log = JSON.parse(logString);\n        }\n        log.push(entry);\n        try {\n            localStorage.setItem(this.location, JSON.stringify(log));\n        } catch (e) {\n            const deleted: LogEntry = log.splice(0, 1)[0];\n            console.debug('Log entry from ' + deleted.date.toISOString() + ' was deleted from the LocalStorage \\'' + this.location + '\\'');\n            try {\n                localStorage.setItem(this.location, JSON.stringify(log));\n            } catch (ex) {\n                console.error(ex);\n                throw new Error(ex.message);\n            }\n        }\n    }\n\n}\n","import {NetgrifApplicationEngine, Services, View, Views} from '../../commons/schema';\nimport {Observable, of} from 'rxjs';\n\nexport abstract class ConfigurationService {\n\n    private readonly _dataFieldConfiguration: Services['dataFields'];\n\n    protected constructor(protected configuration: NetgrifApplicationEngine) {\n        this.resolveEndpointURLs();\n        this._dataFieldConfiguration = this.getConfigurationSubtree(['services', 'dataFields']);\n    }\n\n    public getAsync(): Observable<NetgrifApplicationEngine> {\n        return of(this.get());\n    }\n\n    /**\n     * Calls to this method should be avoided as creating a deep copy of the configuration has a large overhead\n     *\n     * @returns a deep copy of the entire configuration object\n     */\n    public get(): NetgrifApplicationEngine {\n        return this.createConfigurationCopy();\n    }\n\n    /**\n     * Get view configuration from nae.json for view at given config path.\n     * @param viewConfigPath configuration path to the requested view. No leading backslash.\n     * @return requested configuration if it exists. `undefined` otherwise.\n     */\n    public getViewByPath(viewConfigPath: string): View | undefined {\n        const viewPathSegments = viewConfigPath.split('/');\n        const configTreePathSegments = ['views'];\n        for (let i = 0; i < viewPathSegments.length; i++) {\n            if (i > 0) {\n                configTreePathSegments.push('children');\n            }\n            configTreePathSegments.push(viewPathSegments[i]);\n        }\n        return this.getConfigurationSubtree(configTreePathSegments);\n    }\n\n    /**\n     * Get view configuration from nae.json for view at given url.\n     * @param url to the requested view. Necessary backslash.\n     * @return requested configuration if it exists. `undefined` otherwise.\n     */\n    public getViewByUrl(url: string): View | undefined {\n        const views = this.getViewsCopy();\n        if (!views) {\n            return undefined;\n        }\n        let map: Map<string, View> = new Map();\n        map = this.getChildren(views, map, '');\n        if (map.get(url) === undefined) {\n            for (const [key, value] of map) {\n                if (key.includes('/**') && url.includes(key.split('/**')[0]))\n                    return value;\n            }\n        }\n        return map.get(url);\n    }\n\n    private getChildren(views: Views, map: Map<string, View>, prefix: string): Map<string, View> {\n        Object.keys(views).forEach(view => {\n            if (!!views[view].routing.path) {\n                prefix = prefix.charAt(prefix.length - 1) === '/' ?\n                    prefix.length > 1 ? prefix.substring(0, prefix.length - 2) : '' :\n                    prefix;\n                const viewPath = views[view].routing.path.charAt(0) === '/' ?\n                    views[view].routing.path.length > 1 ? views[view].routing.path.substring(1) : '' :\n                    views[view].routing.path;\n                map.set(\n                    views[view].routing.match ?\n                        prefix + '/' + viewPath + '/**' :\n                        prefix + '/' + viewPath,\n                    views[view]);\n            }\n            if (views[view].children) {\n                this.getChildren(views[view].children, map, prefix + '/' + views[view].routing.path);\n            }\n        });\n        return map;\n    }\n\n    /**\n     * Get all URLs/paths of views with specified layout.\n     * @param layout Search views with this layout\n     * @returns Paths with prefixed '/' of all views with specified layout, empty array otherwise.\n     */\n    public getPathsByView(layout: string): Array<string> {\n        const config = this.createConfigurationCopy() as NetgrifApplicationEngine;\n        const result = [];\n        if (!config.views) {\n            return result;\n        }\n        Object.values(config.views).forEach(view => {\n            result.push(...this.getView(layout, view).map(path => '/' + path));\n        });\n\n        return result;\n    }\n\n    public getConfigurationSubtreeByPath(path: string) : any | undefined {\n        return this.getConfigurationSubtree(path.split('.'));\n    }\n\n    /**\n     * @param pathSegments the keys specifying the path trough the configuration that should be accessed\n     * @returns a deep copy of a specified subsection of the configuration object, or `undefined` if such subsection doesn't exist.\n     * Calling this method with an empty array as argument is equivalent to calling the [get()]{@link ConfigurationService#get} method.\n     */\n    public getConfigurationSubtree(pathSegments: Array<string>): any | undefined {\n        let root = this.configuration;\n        for (const segment of pathSegments) {\n            if (root[segment] === undefined) {\n                return undefined;\n            }\n            root = root[segment];\n        }\n        return this.deepCopy(root);\n    }\n\n    /**\n     * @returns the appropriate template configuration for data fields, or `undefined` if such configuration is not present.\n     */\n    public getDatafieldConfiguration(): Services['dataFields'] | undefined {\n        if (this._dataFieldConfiguration === undefined) {\n            return undefined;\n        }\n        return {...this._dataFieldConfiguration};\n    }\n\n    /**\n     * Resolves the URL addresses of backend endpoints based on the provided configuration.\n     *\n     * If the URLs begin with either `http://`, or `https://` the provided URL will be used.\n     *\n     * If not, then the URLs are considered to be relative to the location of the frontend application and it's URL will be used\n     * as the base path. `/api` is appended automatically.\n     */\n    protected resolveEndpointURLs() {\n        if (this.configuration?.providers?.auth?.address === undefined) {\n            throw new Error(`'provider.auth.address' is a required property and must be present in the configuration!`);\n        }\n        this.configuration.providers.auth.address = this.resolveURL(this.configuration.providers.auth.address);\n\n        if (this.configuration?.providers?.resources === undefined) {\n            throw new Error(`'provider.resources' is a required property and must be present in the configuration!`);\n        }\n        if (Array.isArray(this.configuration.providers.resources)) {\n            this.configuration.providers.resources.forEach(resource => {\n                if (resource?.address === undefined) {\n                    throw new Error(`Resources defined in 'provider.resources' must define an address property!`);\n                }\n                resource.address = this.resolveURL(resource.address);\n            });\n        } else {\n            if (this.configuration?.providers?.resources?.address === undefined) {\n                throw new Error(`Resources defined in 'provider.resources' must define an address property!`);\n            }\n            this.configuration.providers.resources.address = this.resolveURL(this.configuration.providers.resources.address);\n        }\n    }\n\n    /**\n     * Resolves a single URL address.\n     *\n     * If the URL begins with either `http://`, or `https://` the provided URL will be used.\n     *\n     * If not, then the URL is considered to be relative to the location of the frontend application and it's URL will be used\n     * as the base path. `/api` is appended automatically.\n     *\n     * @param configURL value from the configuration file\n     * @returns the resolved URL\n     */\n    protected resolveURL(configURL: string): string {\n        if (configURL.startsWith('http://') || configURL.startsWith('https://')) {\n            return configURL;\n        } else {\n            return location.origin + '/api' + configURL;\n        }\n    }\n\n    /**\n     * @returns the services configuration, or `undefined` if such configuration is not present.\n     */\n    public getServicesConfiguration(): Services | undefined {\n        const subtree = this.getConfigurationSubtree(['services']) as Services;\n        return subtree !== undefined ? this.deepCopy(subtree) as Services : undefined;\n    }\n\n    /**\n     * @returns the value stored in the [onLogoutRedirect]{@link Services#auth.onLogoutRedirect} attribute if defined.\n     * If not and the deprecated attribute [logoutRedirect]{@link Services#auth.logoutRedirect} is defined then its value is returned.\n     * Otherwise, `undefined` is returned.\n     */\n    public getOnLogoutPath(): string | undefined {\n        return this.configuration?.services?.auth?.onLogoutRedirect ?? this.configuration?.services?.auth?.logoutRedirect;\n    }\n\n    /**\n     * @returns the value stored in the [toLoginRedirect]{@link Services#auth.toLoginRedirect} attribute if defined.\n     * If not and the deprecated attribute [loginRedirect]{@link Services#auth.loginRedirect} is defined then its value is returned.\n     * Otherwise, `undefined` is returned.\n     */\n    public getToLoginPath(): string | undefined {\n        return this.configuration?.services?.auth?.toLoginRedirect ?? this.configuration?.services?.auth?.loginRedirect;\n    }\n\n    /**\n     * @returns the value stored in the [onLoginRedirect]{@link Services#auth.onLoginRedirect} attribute if defined.\n     * Otherwise, `undefined` is returned.\n     */\n    public getOnLoginPath(): string | undefined {\n        return this.configuration?.services?.auth?.onLoginRedirect;\n    }\n\n    private getView(searched: string, view: View): Array<string> {\n        const paths = [];\n        if (!!view.layout && view.layout.name === searched) {\n            paths.push(view.routing.path);\n        }\n        if (view.children && Object.keys(view.children).length !== 0) {\n            Object.values(view.children).forEach(child => {\n                paths.push(...this.getView(searched, child).map(path => view.routing.path + '/' + path));\n            });\n        }\n        return paths;\n    }\n\n    /**\n     * @param endpointKey the attribute name of the endpoint address in `nae.json`\n     * @returns the endpoint address or `undefined` if such endpoint is not defined in `nae.json`\n     */\n    public resolveProvidersEndpoint(endpointKey: string): string {\n        const config = this.configuration;\n        if (!config\n            || !config.providers\n            || !config.providers.auth\n            || !config.providers.auth.address\n            || !config.providers.auth.endpoints\n            || !config.providers.auth.endpoints[endpointKey]) {\n            throw new Error('Authentication provider address is not set!');\n        }\n        return config.providers.auth.address + config.providers.auth.endpoints[endpointKey];\n    }\n\n    private createConfigurationCopy(): any {\n        return this.deepCopy(this.configuration);\n    }\n\n    private getViewsCopy(): Views {\n        return this.getConfigurationSubtree(['views']) as Views;\n    }\n\n    private deepCopy(obj: object): object {\n        return JSON.parse(JSON.stringify(obj));\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {LogPublisher} from '../publishers/log-publisher';\nimport {BehaviorSubject, Observable, of} from 'rxjs';\nimport {LogEntry} from '../models/log-entry';\nimport {ConsoleLogPublisher} from '../publishers/console-log-publisher';\nimport {LocalStorageLogPublisher} from '../publishers/local-storage-log-publisher';\nimport {ConfigurationService} from '../../configuration/configuration.service';\n\nexport const PUBLISHERS = {\n    console: ConsoleLogPublisher,\n    localStorage: LocalStorageLogPublisher,\n    backend: null\n};\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class LogPublisherService implements OnDestroy {\n\n    // public static instance: LogPublisherService;\n\n    private readonly _log: BehaviorSubject<LogEntry>;\n    private readonly _publishers: Array<LogPublisher>;\n\n    constructor(config: ConfigurationService) {\n        // LogPublisherService.instance = this;\n        this._log = new BehaviorSubject<LogEntry>(null);\n        this._publishers = [];\n        const serviceConfig = config.get().services;\n        if (serviceConfig && serviceConfig.log && serviceConfig.log.publishers) {\n            Object.keys(PUBLISHERS).filter(p => serviceConfig.log.publishers.includes(p) && PUBLISHERS[p])\n                .forEach(key => new PUBLISHERS[key](this));\n        }\n    }\n\n    ngOnDestroy(): void {\n        this._log.complete();\n    }\n\n    get publishers(): Array<LogPublisher> {\n        return this._publishers;\n    }\n\n    register(publisher: LogPublisher): Observable<LogEntry> {\n        if (!publisher) {\n            return of(null);\n        }\n        this._publishers.push(publisher);\n        return this._log;\n    }\n\n    publish(entry: LogEntry): void {\n        if (!entry) {\n            return;\n        }\n        this._log.next(entry);\n    }\n\n    clearAll(): void {\n        this._publishers.forEach(publisher => publisher.clear());\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {LogEntry, LogEntryConfiguration} from '../models/log-entry';\nimport {LogPublisherService} from './log-publisher.service';\nimport {LogLevel} from './log-level';\nimport {ConfigurationService} from '../../configuration/configuration.service';\n\nexport interface LoggerConfiguration extends LogEntryConfiguration {\n    level?: LogLevel;\n}\n\nexport abstract class AbstractLoggerService {\n\n    protected readonly config: LoggerConfiguration;\n    protected readonly publisher: LogPublisherService;\n\n    protected constructor(private publisherService: LogPublisherService, _config: ConfigurationService) {\n        this.publisher = publisherService;\n        this.config = {\n            logWithDate: true,\n            serializeParams: true,\n            level: LogLevel.ALL\n        };\n        const servicesConfig = _config.get().services;\n        if (servicesConfig && servicesConfig.log) {\n            this.config = Object.assign(this.config, servicesConfig.log, {level: this.resolveLevel(servicesConfig.log.level)});\n        }\n    }\n\n    public get level() {\n        return this.config.level;\n    }\n\n    protected shouldLog(level: LogLevel): boolean {\n        return (level >= this.level && level !== LogLevel.OFF) || this.level === LogLevel.ALL;\n    }\n\n    protected writeToLog(level: LogLevel, message: string, params: object): void {\n        if (!this.shouldLog(level)) {\n            return;\n        }\n        const entry = new LogEntry(level, message, params, this.config);\n        this.publisher.publish(entry);\n    }\n\n    public info(message: string, ...params: Array<any>): void {\n        this.writeToLog(LogLevel.INFO, message, params);\n    }\n\n    public debug(message: string, ...params: Array<any>): void {\n        this.writeToLog(LogLevel.DEBUG, message, params);\n    }\n\n    public warn(message: string, ...params: Array<any>): void {\n        this.writeToLog(LogLevel.WARN, message, params);\n    }\n\n    public error(message: string, ...params: Array<any>): void {\n        this.writeToLog(LogLevel.ERROR, message, params);\n    }\n\n    public log(level: LogLevel, message: string, ...param: Array<any>): void {\n        this.writeToLog(level, message, param);\n    }\n\n    private resolveLevel(level: string): LogLevel {\n        if (!level) {\n            return LogLevel.OFF;\n        }\n        return LogLevel[level] as LogLevel;\n    }\n}\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class LoggerService extends AbstractLoggerService {\n\n    constructor(publisherService: LogPublisherService, config: ConfigurationService) {\n        super(publisherService, config);\n    }\n}\n","\n/* SERVICES */\nexport * from './services/logger.service';\nexport * from './services/log-publisher.service';\n\n/* CLASSES */\nexport * from './models/log-entry';\nexport * from './publishers/log-publisher';\nexport * from './publishers/console-log-publisher';\nexport * from './publishers/local-storage-log-publisher';\nexport {LogLevel} from './services/log-level';\n\n","import {MomentDateAdapter} from '@angular/material-moment-adapter';\nimport {Injectable} from '@angular/core';\n\n@Injectable()\nexport class CustomDateAdapter extends MomentDateAdapter {\n    getFirstDayOfWeek(): number {\n        return 1;\n    }\n}\n","import {ProcessRole} from '../../resources/interface/process-role';\nimport {IUser} from './iuser';\n\n/**\n * The user object that is used by the frontend in its logic.\n */\nexport class User implements IUser {\n\n    constructor(\n        public id: string,\n        public email: string,\n        public firstName: string,\n        public lastName: string,\n        public authorities: Array<string>,\n        public roles: Array<ProcessRole>,\n        public groups?: Array<string>,\n        public nextGroups?: Array<string>,\n        public impersonated?: User\n    ) {\n    }\n\n    get fullName() {\n        return this.firstName + ' ' + this.lastName;\n    }\n\n    /**\n     * Synonym for `firstName`.\n     */\n    public get name(): string {\n        return this.firstName;\n    }\n\n    /**\n     * Synonym for `lastName`.\n     */\n    public get surname(): string {\n        return this.lastName;\n    }\n\n    /**\n     * @returns `true` if the User object represents an empty user, `false` otherwise.\n     */\n    public isEmpty(): boolean {\n        return this.id === '';\n    }\n\n    /**\n     * @returns self if no impersonated user is present, or impersonated user otherwise\n     */\n    public getSelfOrImpersonated(): User {\n        return this.isImpersonating() ? this.impersonated : this;\n    }\n\n    /**\n     * @returns true if user is impersonating another user\n     */\n    public isImpersonating(): boolean {\n        return !!this.impersonated;\n    }\n}\n","import {Observable} from 'rxjs';\nimport {Credentials} from '../models/credentials';\nimport {UserResource} from '../../resources/interface/user-resource';\n\nexport abstract class AuthenticationMethodService {\n\n    constructor() {\n    }\n\n    abstract login(credentials: Credentials): Observable<UserResource>;\n\n    abstract logout(): Observable<object>;\n}\n","export class NullStorage implements Storage {\n    [name: string]: any;\n\n    readonly length: number;\n\n    clear(): void {\n    }\n\n    getItem(key: string): string | null {\n        return null;\n    }\n\n    key(index: number): string | null {\n        return null;\n    }\n\n    removeItem(key: string): void {\n    }\n\n    setItem(key: string, value: string): void {\n    }\n\n}\n","import {BehaviorSubject} from 'rxjs';\n\nexport class LoadingEmitter extends BehaviorSubject<boolean> {\n\n    constructor(initial = false) {\n        super(initial);\n    }\n\n    public get isActive(): boolean {\n        return this.getValue();\n    }\n\n    public on() {\n        this.next(true);\n    }\n\n    public off() {\n        this.next(false);\n    }\n\n    public toggle() {\n        this.next(!this.getValue());\n    }\n}\n","import {Injectable, OnDestroy} from \"@angular/core\";\nimport {interval, Observable, ReplaySubject, Subscription} from \"rxjs\";\nimport {ConfigurationService} from \"../../../configuration/configuration.service\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SessionIdleTimerService implements OnDestroy {\n\n    public static readonly DEFAULT_SESSION_TIMEOUTTIME = 900;\n\n    private readonly _enableService: boolean;\n    private readonly _timeoutSeconds: number;\n    private _count: number = 0;\n    private timerSubscription!: Subscription;\n    private timer: Observable<number> = interval(1000);\n    private _remainSeconds = new ReplaySubject<number>(1);\n\n    public remainSeconds$ = this._remainSeconds.asObservable();\n\n    constructor(private _config: ConfigurationService,) {\n        this._enableService = this._config.getConfigurationSubtreeByPath('providers.auth.sessionTimeoutEnabled') ?? false;\n        this._timeoutSeconds = this._config.getConfigurationSubtreeByPath('providers.auth.sessionTimeout') ?? SessionIdleTimerService.DEFAULT_SESSION_TIMEOUTTIME;\n    }\n\n    startTimer() {\n        if (this._enableService) {\n            this.stopTimer();\n            this._count = this._timeoutSeconds;\n            this.timerSubscription = this.timer.subscribe(n => {\n                if (this._count > 0) {\n                    this._remainSeconds.next(this._count);\n                    this._count--;\n                } else if (this._count == 0) {\n                    this._remainSeconds.next(this._count);\n                    this.stopTimer();\n                }\n            });\n        }\n    }\n\n    stopTimer() {\n        if (this.timerSubscription) {\n            this.timerSubscription.unsubscribe();\n        }\n    }\n\n    resetTimer() {\n        this.startTimer();\n    }\n\n    ngOnDestroy(): void {\n        if (this._enableService) {\n            this.timerSubscription.unsubscribe();\n            this._remainSeconds.unsubscribe();\n        }\n    }\n\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, Observable, throwError} from 'rxjs';\nimport {ConfigurationService} from '../../../configuration/configuration.service';\nimport {NullStorage} from '../null-storage';\nimport {HttpClient, HttpErrorResponse, HttpHeaders} from '@angular/common/http';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {catchError, map, take, tap} from 'rxjs/operators';\nimport {MessageResource} from '../../../resources/interface/message-resource';\nimport {LoadingEmitter} from '../../../utility/loading-emitter';\nimport {SessionIdleTimerService} from \"./session-idle-timer.service\";\n\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SessionService implements OnDestroy {\n\n    public static readonly SESSION_TOKEN_STORAGE_KEY = 'naet';\n    public static readonly SESSION_BEARER_HEADER_DEFAULT = 'X-Auth-Token';\n\n    private _session$: BehaviorSubject<string>;\n    private _storage: Storage;\n    private readonly _sessionHeader: string;\n    private _verified: boolean;\n    private _verifying: LoadingEmitter;\n    private _initialized: LoadingEmitter;\n\n    constructor(private _config: ConfigurationService,\n                private _log: LoggerService,\n                private _http: HttpClient,\n                private idleTimerService: SessionIdleTimerService) {\n        this._storage = this.resolveStorage(this._config.get().providers.auth['sessionStore']);\n        this._sessionHeader = this._config.get().providers.auth.sessionBearer ?\n            this._config.get().providers.auth.sessionBearer : SessionService.SESSION_BEARER_HEADER_DEFAULT;\n        this._session$ = new BehaviorSubject<string>(null);\n        this._verified = false;\n        this.idleTimerService.stopTimer()\n        this._verifying = new LoadingEmitter();\n        this._initialized = new LoadingEmitter(false);\n        setTimeout(() => {\n            this.load();\n        });\n    }\n\n    ngOnDestroy(): void {\n        this._session$.complete();\n        this._verifying.complete();\n    }\n\n    get session$(): Observable<string> {\n        return this._session$.asObservable();\n    }\n\n    set sessionToken(sessionToken: string) {\n        this._session$.next(sessionToken);\n        this._storage.setItem(SessionService.SESSION_TOKEN_STORAGE_KEY,\n            btoa(SessionService.SESSION_TOKEN_STORAGE_KEY + ':' + sessionToken));\n    }\n\n    get sessionToken(): string {\n        return this._session$.getValue();\n    }\n\n    get sessionHeader(): string {\n        return this._sessionHeader;\n    }\n\n    get verified(): boolean {\n        return this._verified;\n    }\n\n    get verifying(): Observable<boolean> {\n        return this._verifying.asObservable();\n    }\n\n    get isVerifying(): boolean {\n        return this._verifying.isActive;\n    }\n\n    get isInitialized(): boolean {\n        return this._initialized.isActive;\n    }\n\n    get initializing(): Observable<boolean> {\n        return this._initialized.asObservable();\n    }\n\n    public setVerifiedToken(sessionToken: string) {\n        this._log.warn('Session token without explicit verification was set');\n        this.idleTimerService.resetTimer()\n        this._verified = true;\n        this.sessionToken = sessionToken;\n    }\n\n    public clear(): void {\n        this.idleTimerService.stopTimer()\n        this._verified = false;\n        this.sessionToken = '';\n        this._storage.removeItem(SessionService.SESSION_TOKEN_STORAGE_KEY);\n    }\n\n    public verify(token?: string): Observable<boolean> {\n        this._verifying.on();\n        token = !!token ? token : this.sessionToken;\n\n        const authConfig = this._config.get().providers.auth;\n        let url = authConfig.address;\n        url += authConfig.endpoints && authConfig.endpoints['verification'] ? authConfig.endpoints['verification'] :\n            (authConfig.endpoints && authConfig.endpoints['login'] ? authConfig.endpoints['login'] : '');\n        if (!url || url === authConfig.address) {\n            this.clear();\n            this._verifying.off();\n            this._initialized.on();\n            return throwError(new Error('Cannot verify session token. ' +\n                'Login URL is not defined in the config [nae.providers.auth.endpoints.login].'));\n        } else {\n            return this._http.get<MessageResource>(url, {\n                headers: new HttpHeaders().set(this._sessionHeader, token),\n                observe: 'response'\n            }).pipe(\n                catchError(error => {\n                    if (error instanceof HttpErrorResponse && error.status === 401) {\n                        this._log.warn('Authentication token is invalid. Clearing session token');\n                        this.clear();\n                    }\n                    this._verifying.off();\n                    this.idleTimerService.stopTimer()\n                    this._initialized.on();\n                    return throwError(error);\n                }),\n                map(response => {\n                    this._log.debug(response.body.success);\n                    this._verified = true;\n                    this.idleTimerService.resetTimer()\n                    this._initialized.on();\n                    this.sessionToken = token;\n                    return true;\n                }),\n                tap(_ => this._verifying.off())\n            );\n        }\n    }\n\n    protected load(): string {\n        let token = this._storage.getItem(SessionService.SESSION_TOKEN_STORAGE_KEY);\n        this._verified = false;\n        this.idleTimerService.stopTimer()\n        if (token) {\n            token = this.resolveToken(token);\n            this.sessionToken = token;\n            this.verify(token).pipe(take(1)).subscribe(ver => {\n                this._log.debug('Token ' + token + ' verified status: ' + ver);\n            });\n        } else {\n            this._initialized.on();\n        }\n        return '';\n    }\n\n    private resolveToken(raw: string): string {\n        return raw ? atob(raw).split(':')[1] : '';\n    }\n\n    private resolveStorage(storage: string): any {\n        switch (storage) {\n            case 'local':\n                return localStorage;\n            case 'session':\n                return sessionStorage;\n            case 'null':\n                return new NullStorage();\n            default:\n                return localStorage;\n        }\n    }\n}\n","import {User} from '../../user/models/user';\nimport {Transformer} from './transformer';\nimport {Injectable} from '@angular/core';\nimport {UserResource} from '../../resources/interface/user-resource';\nimport {Authority} from '../../resources/interface/authority';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class UserTransformer implements Transformer<UserResource, User> {\n\n    protected transformAuthorities(authorities: Array<Authority>): Array<string> {\n        return !authorities ? [] : authorities.map(a => a.authority);\n    }\n\n    public transform(user: UserResource): User {\n        const groups: Array<string> = []; // TODO groups parsing\n\n        return new User(\n            user.id,\n            user.email,\n            user.name,\n            user.surname,\n            this.transformAuthorities(user.authorities),\n            user.processRoles,\n            groups,\n            user.nextGroups,\n            user.impersonated ? this.transform(user.impersonated) : undefined);\n\n    }\n\n}\n","import {Credentials} from '../../models/credentials';\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {AuthenticationMethodService} from '../authentication-method.service';\nimport {BehaviorSubject, Observable, of, Subscription} from 'rxjs';\nimport {ConfigurationService} from '../../../configuration/configuration.service';\nimport {catchError, map, tap} from 'rxjs/operators';\nimport {User} from '../../../user/models/user';\nimport {UserTransformer} from '../../models/user.transformer';\nimport {SessionService} from '../../session/services/session.service';\nimport {UserResource} from '../../../resources/interface/user-resource';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class AuthenticationService implements OnDestroy {\n\n    protected static readonly IDENTIFICATION_ATTRIBUTE = 'id';\n\n    protected _authenticated$: BehaviorSubject<boolean>;\n    protected subSession: Subscription;\n\n    constructor(protected _auth: AuthenticationMethodService,\n                protected _config: ConfigurationService,\n                protected _sessionService: SessionService,\n                protected _userTransformer: UserTransformer) {\n        this._authenticated$ = new BehaviorSubject<boolean>(false);\n        this.subSession = this._sessionService.session$.subscribe(token => {\n            this._authenticated$.next(!!token && token.length !== 0 && this._sessionService.verified);\n        });\n    }\n\n    login(credentials: Credentials): Observable<User> {\n        return this._auth.login(credentials).pipe(\n            tap((user: UserResource) => {\n                this._authenticated$.next(!!user[AuthenticationService.IDENTIFICATION_ATTRIBUTE]);\n            }),\n            map((user: UserResource) => this._userTransformer.transform(user)),\n            catchError(error => {\n                console.error(error);\n                return of(null);\n            })\n        );\n    }\n\n    logout(): Observable<object> {\n        return this._auth.logout().pipe(\n            tap(() => {\n                this._authenticated$.next(false);\n                this._sessionService.clear();\n            }),\n            catchError(error => {\n                console.error(error);\n                return of(error);\n            })\n        );\n    }\n\n    get isAuthenticated(): boolean {\n        return this._authenticated$.getValue();\n    }\n\n    get authenticated$(): Observable<boolean> {\n        return this._authenticated$.asObservable();\n    }\n\n    ngOnDestroy(): void {\n        this.subSession.unsubscribe();\n        this._authenticated$.complete();\n    }\n}\n","/**\n * Constants for pagination configuration of HTTP requests.\n */\nexport enum PaginationParams {\n    /**\n     * Size of page - maximal number of elements per page.\n     */\n    PAGE_SIZE = 'size',\n    /**\n     * Requested page index. 0 based.\n     */\n    PAGE_NUMBER = 'page',\n    /**\n     * Sort configuration of the requested page. Use the {@link createSortParam} function to generate the value for this attribute.\n     */\n    PAGE_SORT = 'sort'\n}\n","import {ResourceProvider} from '../resource-provider.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {Page} from '../interface/page';\nimport {Pagination} from '../interface/pagination';\nimport {PaginationParams} from '../../utility/pagination/pagination-params';\n\n/**\n * The class that contains behavior common to all resource services.\n *\n * Mostly endpoint URL resolution and utility functions for response parsing.\n */\nexport abstract class AbstractResourceService {\n\n    private readonly _SERVER_URL: string;\n\n    /**\n     * @param resourceName the identifier of the desired endpoint from configuration, found in\n     * {@link SetAuthAndResourcesAddress}.[resources]{@link Resources}.\n     * @param _resourceProvider `ResourceProvider` instance\n     * @param _configService `ConfigurationService` instance\n     */\n    protected constructor(resourceName: string,\n                          protected _resourceProvider: ResourceProvider,\n                          protected _configService: ConfigurationService) {\n        this._SERVER_URL = this.getResourceAddress(resourceName);\n    }\n\n    protected get SERVER_URL(): string {\n        return this._SERVER_URL;\n    }\n\n    /**\n     * Get URL form nae.json - resources\n     * @param name - ID property\n     */\n    protected getResourceAddress(name: string): string {\n        let URL = '';\n\n        const resourcesArray = this._configService.getConfigurationSubtree(['providers', 'resources']);\n\n        if (resourcesArray instanceof Array) {\n            resourcesArray.forEach(resource => {\n                if (resource.name === name) {\n                    URL = resource.address;\n                }\n            });\n        } else {\n            if (resourcesArray.name === name) {\n                URL = resourcesArray.address;\n            }\n        }\n        return URL;\n    }\n\n    /**\n     * Parses a response `r` into a {@link Page} instance\n     * @param r - response object\n     * @param propertiesParams - plural form of the resource name, that is used to extract the data. Eg. \"cases\".\n     */\n    protected getResourcePage<T>(r: any, propertiesParams: string): Page<T> {\n        if (!r) {\n            return r;\n        }\n        const defaultPage: Pagination = {\n            number: -1,\n            size: 0,\n            totalPages: 0,\n            totalElements: 0\n        };\n\n        return {\n            content: this.changeType<Array<T>>(r, propertiesParams),\n            pagination: r.hasOwnProperty(PaginationParams.PAGE_NUMBER) ? r.page : defaultPage\n        };\n    }\n\n    /**\n     * Extracts data from the response `r` into an object with better usability.\n     * @param r - response object\n     * @param propertiesParams - plural form of the resource name, that is used to extract the data. Eg. \"cases\".\n     */\n    protected changeType<T>(r: any, propertiesParams: string): T {\n        if (!r) {\n            return r;\n        }\n        if (r.hasOwnProperty('_embedded')) {\n            return propertiesParams && r._embedded.hasOwnProperty(propertiesParams) ? r._embedded[propertiesParams] : r._embedded;\n        } else {\n            return r;\n        }\n    }\n}\n","import {HttpClient, HttpEvent, HttpEventType, HttpHeaders, HttpParams, HttpProgressEvent, HttpResponse} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {Injectable} from '@angular/core';\nimport {MessageResource} from './interface/message-resource';\n\n\nexport type Headers =\n    HttpHeaders | {\n    [header: string]: string | Array<string>;\n};\n\nexport type Params = HttpParams | ObjectParams;\n\nexport type ResponseType = 'json' | 'hal';\n\nexport interface ObjectParams {\n    [param: string]: string | Array<string>;\n}\n\nexport enum ProgressType {\n    UPLOAD = 'upload',\n    DOWNLOAD = 'download'\n}\n\nexport interface ProviderProgress {\n    type: ProgressType;\n    loaded: number;\n    total?: number;\n    progress?: number;\n}\n\n\nexport abstract class AbstractResourceProvider {\n\n    protected constructor(protected httpClient: HttpClient) {\n    }\n\n    private static addLastSlash(link: string): string {\n        if (link.length > 0) {\n            return link.charAt(link.length - 1) === '/' ? link : link + '/';\n        } else {\n            throw Error('No define api url');\n        }\n    }\n\n    private static removeFirstSlash(link: string): string {\n        return link.charAt(0) === '/' ? link.length > 1 ? link.substring(1, link.length) : '' : link;\n    }\n\n\n    public static sanitizeUrl(endpoint?: string, url?: string): string {\n        if (endpoint.includes('http://') || (endpoint.includes('https://'))) {\n            if (url) {\n                if (endpoint.includes(url)) {\n                    return endpoint;\n                } else {\n                    return url.includes('https://') ? 'https://' +\n                        endpoint.replace(/(^\\w+:|^)\\/\\//, '') : 'http://' +\n                        endpoint.replace(/(^\\w+:|^)\\/\\//, '');\n                }\n            } else {\n                return endpoint;\n            }\n        } else {\n            if (url) {\n                return AbstractResourceProvider.addLastSlash(url) + AbstractResourceProvider.removeFirstSlash(endpoint);\n            } else {\n                throw Error('No define endpoint');\n            }\n        }\n    }\n\n    /**\n     * Combines two instances of {@link Params} type into one.\n     * If a parameter is declared in both instances uses the value of the `highPriorityParams` in the result.\n     * @param highPriorityParams parameters with the higher priority\n     * @param lowPriorityParams parameters with the lower priority\n     * @returns combination of botch parameters. Uses the value of the higher priority parameters if the keys are in conflict.\n     */\n    public static combineParams(highPriorityParams: Params, lowPriorityParams: Params): HttpParams {\n        const importantParams = highPriorityParams instanceof HttpParams ?\n            ResourceProvider.convertHttpParamsToObjectParams(highPriorityParams) :\n            highPriorityParams;\n        const params = lowPriorityParams instanceof HttpParams ?\n            ResourceProvider.convertHttpParamsToObjectParams(lowPriorityParams) :\n            {...lowPriorityParams};\n        Object.assign(params, importantParams);\n        return new HttpParams({fromObject: params});\n    }\n\n    /**\n     * Converts {@link HttpParams} instance into a simple object.\n     * @param params instance to convert\n     * @returns simple object with keys and values from the input argument\n     */\n    public static convertHttpParamsToObjectParams(params: HttpParams): ObjectParams {\n        const result = {};\n        params.keys().forEach(key => {\n            const values = params.getAll(key);\n            if (values.length === 1) {\n                result[key] = values[0];\n            } else {\n                result[key] = values;\n            }\n        });\n        return result;\n    }\n\n    public static getProgress(event: HttpProgressEvent): ProviderProgress {\n        return {\n            type: event.type === HttpEventType.UploadProgress ? ProgressType.UPLOAD : ProgressType.DOWNLOAD,\n            loaded: event.loaded,\n            total: event.total,\n            progress: event.loaded && event.total ? Math.round(event.loaded * 100 / event.total) : undefined\n        };\n    }\n\n    public static processMessageResource(response: MessageResource | HttpResponse<MessageResource>): MessageResource {\n        const resource: MessageResource = (response as HttpResponse<MessageResource>).type === HttpEventType.Response ?\n            (response as HttpResponse<MessageResource>).body : response as MessageResource;\n        if (!!resource && resource.error) {\n            throw new Error(resource.error);\n        }\n        return resource;\n    }\n\n    public get$<T>(endpoint?: string, url ?: string, params ?: Params, headers ?: Headers,\n                   responseType ?: ResponseType): Observable<T> {\n        return this.httpClient.get<T>(AbstractResourceProvider.sanitizeUrl(endpoint, url),\n            {\n                headers,\n                params,\n                responseType: 'json',\n                observe: 'body'\n            });\n    }\n\n    public getBlob$(endpoint?: string, url ?: string, params ?: Params, headers?: Headers): Observable<HttpEvent<Blob>> {\n        return this.httpClient.get(AbstractResourceProvider.sanitizeUrl(endpoint, url),\n            {\n                params,\n                headers,\n                observe: 'events',\n                responseType: 'blob',\n                reportProgress: true\n            });\n    }\n\n    public post$<T>(endpoint?: string, url ?: string, body ?: object, params ?: Params, headers ?: Headers,\n                    responseType ?: ResponseType): Observable<T> {\n        return this.httpClient.post<T>(AbstractResourceProvider.sanitizeUrl(endpoint, url),\n            body,\n            {\n                headers,\n                params,\n                responseType: 'json',\n                observe: 'body'\n            });\n    }\n\n    public postWithEvent$<T>(endpoint?: string, url ?: string, body ?: object, params ?: Params, headers?: Headers,\n                             responseType ?: ResponseType): Observable<HttpEvent<T>> {\n        return this.httpClient.post<T>(AbstractResourceProvider.sanitizeUrl(endpoint, url),\n            body,\n            {\n                params,\n                headers,\n                responseType: 'json',\n                observe: 'events',\n                reportProgress: true\n            });\n    }\n\n    public put$<T>(endpoint?: string, url ?: string, body ?: object, params ?: Params, headers ?: Headers,\n                   responseType ?: ResponseType): Observable<T> {\n        return this.httpClient.put<T>(AbstractResourceProvider.sanitizeUrl(endpoint, url),\n            body,\n            {\n                headers,\n                params,\n                responseType: 'json',\n                observe: 'body'\n            });\n    }\n\n    public delete$<T>(endpoint?: string, url?: string, params ?: Params, headers ?: Headers,\n                      responseType ?: ResponseType, body?: object,): Observable<T> {\n        return this.httpClient.delete<T>(AbstractResourceProvider.sanitizeUrl(endpoint, url), {\n            headers,\n            params,\n            responseType: 'json',\n            observe: 'body',\n            body\n        });\n    }\n}\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class ResourceProvider extends AbstractResourceProvider {\n    constructor(httpClient: HttpClient) {\n        super(httpClient);\n    }\n\n}\n","import {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {Params, ResourceProvider} from '../resource-provider.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {MessageResource} from '../interface/message-resource';\nimport {Authority} from '../interface/authority';\nimport {Preferences} from '../interface/preferences';\nimport {Page} from '../interface/page';\nimport {GroupsInterface} from '../interface/group';\nimport {AbstractResourceService} from '../abstract-endpoint/abstract-resource.service';\nimport {UserResource} from '../interface/user-resource';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class UserResourceService extends AbstractResourceService {\n\n    constructor(provider: ResourceProvider, configService: ConfigurationService) {\n        super('user', provider, configService);\n    }\n\n    /**\n     * Assign authority to the user\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/user/{id}/authority/assign\n     */\n    public assignAuthority(userId: string, body: object, params?: Params): Observable<MessageResource> {\n        return this._resourceProvider.post$('user/' + userId + '/authority/assign', this.SERVER_URL, body, params,\n            {'Content-Type': 'text/plain'})\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Assign role to the user\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/user/{id}/role/assign\n     */\n    public assignRoles(userId: string, body: object, params?: Params): Observable<MessageResource> {\n        return this._resourceProvider.post$('user/' + userId + '/role/assign', this.SERVER_URL, body, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get all authorities of the system\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/user/authority\n     */\n    public getAllAuthorities(): Observable<Array<Authority>> {\n        return this._resourceProvider.get$('user/authority', this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, 'authorities')));\n    }\n\n    /**\n     * Get all users\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/user\n     */\n    public getAll(params?: Params): Observable<Page<UserResource>> {\n        return this._resourceProvider.get$('user', this.SERVER_URL, params)\n            .pipe(map(r => this.getResourcePage<UserResource>(r, 'users')));\n    }\n\n    /**\n     * Get all users with specified roles\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/user/role\n     */\n    public getAllWithRole(body: object, params?: Params): Observable<Array<UserResource>> {\n        return this._resourceProvider.post$('user/role', this.SERVER_URL, body, params)\n            .pipe(map(r => this.changeType(r, 'users')));\n    }\n\n    /**\n     * Get logged user\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/user/me\n     */\n    public getLoggedUser(params?: Params): Observable<UserResource> {\n        return this._resourceProvider.get$('user/me', this.SERVER_URL, params).pipe(\n                map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get logged user\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/user/me\n     */\n    public getPublicLoggedUser(params?: Params): Observable<UserResource> {\n        return this._resourceProvider.get$('public/user/me', this.SERVER_URL, params).pipe(\n            map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get user by id\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/user/{id}\n     */\n    public getUser(userId: string, params?: Params): Observable<UserResource> {\n        return this._resourceProvider.get$('user/' + userId, this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get user's preferences\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/user/preferences\n     */\n    public getPreferences(params?: Params): Observable<Preferences> {\n        return this._resourceProvider.get$('user/preferences', this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Set user's preferences\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/user/preferences\n     */\n    public setPreferences(body: object, params?: Params): Observable<MessageResource> {\n        return this._resourceProvider.post$('user/preferences', this.SERVER_URL, body, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get user's preferences\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/user/preferences\n     */\n    public getPublicPreferences(params?: Params): Observable<Preferences> {\n        return this._resourceProvider.get$('public/user/preferences', this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Set user's preferences\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/user/preferences\n     */\n    public setPublicPreferences(body: object, params?: Params): Observable<MessageResource> {\n        return this._resourceProvider.post$('public/user/preferences', this.SERVER_URL, body, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Generic user search\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/user/search\n     */\n    public search(body: object, params?: Params): Observable<Page<UserResource>> {\n        return this._resourceProvider.post$('user/search', this.SERVER_URL, body, params)\n            .pipe(map(r => this.getResourcePage<UserResource>(r, 'users')));\n    }\n\n    /**\n     * Update user\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/user/{id}\n     */\n    public updateUser(userId: string, body: object, params?: Params): Observable<UserResource> {\n        return this._resourceProvider.post$('user/' + userId, this.SERVER_URL, body, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * get all groups\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/group/all\n     */\n    public getAllGroups(params?: Params): Observable<GroupsInterface> {\n        return this._resourceProvider.get$('group/all', this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {NullStorage} from '../session/null-storage';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class AnonymousService implements OnDestroy {\n\n    public static readonly JWT_BEARER_HEADER_DEFAULT = 'X-Jwt-Token';\n    protected readonly _jwtHeader: string;\n    protected _storage: Storage;\n    protected _tokenSet: BehaviorSubject<boolean>;\n\n    constructor(protected _config: ConfigurationService) {\n        this._jwtHeader = this._config.get().providers.auth.jwtBearer ?\n            this._config.get().providers.auth.jwtBearer : AnonymousService.JWT_BEARER_HEADER_DEFAULT;\n        this._storage = this.resolveStorage(this._config.get().providers.auth['local']);\n        this._tokenSet = new BehaviorSubject<boolean>(false);\n    }\n\n    get jwtHeader(): string {\n        return this._jwtHeader;\n    }\n\n    get tokenSet(): Observable<boolean> {\n        return this._tokenSet.asObservable();\n    }\n\n    public getToken(): string {\n        return this._storage.getItem(this._jwtHeader);\n    }\n\n    public setToken(token: string): void {\n        this._storage.setItem(this._jwtHeader, token);\n        if (!this._tokenSet.getValue())\n            this._tokenSet.next(true);\n    }\n\n    public removeToken(): void {\n        this._storage.removeItem(this._jwtHeader);\n        this._tokenSet.next(false);\n    }\n\n    ngOnDestroy(): void {\n        localStorage.removeItem(this._jwtHeader);\n        this._tokenSet.complete();\n    }\n\n    protected resolveStorage(storage: string): any {\n        switch (storage) {\n            case 'local':\n                return localStorage;\n            case 'session':\n                return sessionStorage;\n            case 'null':\n                return new NullStorage();\n            default:\n                return localStorage;\n        }\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {Observable, ReplaySubject, Subscription} from 'rxjs';\nimport {ProcessRole} from '../../resources/interface/process-role';\nimport {User} from '../models/user';\nimport {Credentials} from '../../authentication/models/credentials';\nimport {take, tap} from 'rxjs/operators';\nimport {AuthenticationService} from '../../authentication/services/authentication/authentication.service';\nimport {UserResourceService} from '../../resources/engine-endpoint/user-resource.service';\nimport {UserTransformer} from '../../authentication/models/user.transformer';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {HttpErrorResponse} from '@angular/common/http';\nimport {SessionService} from '../../authentication/session/services/session.service';\nimport {UserResource} from '../../resources/interface/user-resource';\nimport {AnonymousService} from '../../authentication/anonymous/anonymous.service';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class UserService implements OnDestroy {\n\n    protected _user: User;\n    protected _userChange$: ReplaySubject<User>;\n    protected _anonymousUserChange$: ReplaySubject<User>;\n    protected _loginCalled: boolean;\n    protected _subAuth: Subscription;\n    protected _subAnonym: Subscription;\n    private _publicLoadCalled: boolean;\n\n    public readonly GLOBAL_ROLE_PREFIX = 'global_';\n\n    constructor(protected _authService: AuthenticationService,\n                protected _userResource: UserResourceService,\n                protected _userTransform: UserTransformer,\n                protected _log: LoggerService,\n                protected _session: SessionService,\n                protected _anonymousService: AnonymousService) {\n        this._user = this.emptyUser();\n        this._loginCalled = false;\n        this._userChange$ = new ReplaySubject<User>(1);\n        this._anonymousUserChange$ = new ReplaySubject<User>(1);\n        setTimeout(() => {\n            this._subAuth = this._authService.authenticated$.subscribe(auth => {\n                if (auth && !this._loginCalled) {\n                    this.loadUser();\n                } else if (!auth) {\n                    this.clearUser();\n                    this.publishUserChange();\n                }\n            });\n        });\n        this._subAnonym = this._anonymousService.tokenSet.subscribe(token => {\n            if (token) {\n                this.loadPublicUser();\n            } else {\n                this.clearUser();\n                this.publishAnonymousUserChange();\n            }\n        });\n    }\n\n    get user() {\n        return this._user;\n    }\n\n    get user$(): Observable<User> {\n        return this._userChange$.asObservable();\n    }\n\n    get anonymousUser(): User {\n        return this.anonymousUser;\n    }\n\n    get anonymousUser$(): Observable<User> {\n        return this._anonymousUserChange$.asObservable();\n    }\n\n    ngOnDestroy(): void {\n        this._userChange$.complete();\n        this._anonymousUserChange$.complete();\n        this._subAuth.unsubscribe();\n        this._subAnonym.unsubscribe();\n    }\n\n    /**\n     * Check if user has specified authority.\n     * @param authority - If provided authority is array of authorities.\n     *                    Method make intersection of the provided authorities and user's authorities.\n     *                    If calculated intersection isn't empty returns true, otherwise false.\n     */\n    public hasAuthority(authority: Array<string> | string): boolean {\n        const user = this._user.getSelfOrImpersonated();\n        if (!authority || !user.authorities) {\n            return false;\n        }\n        if (authority instanceof Array) {\n            return authority.some(a => user.authorities.some(u => u === a));\n        } else {\n            return user.authorities.some(a => a === authority);\n        }\n    }\n\n    public hasRole(role: ProcessRole): boolean {\n        const user = this._user.getSelfOrImpersonated();\n        if (!role || !user.roles) {\n            return false;\n        }\n        return user.roles.some(r => r === role);\n    }\n\n    /**\n     * Checks whether the user has role with a specific stringId\n     * @param roleStringId ID of the role we want to check\n     */\n    public hasRoleById(roleStringId: string): boolean {\n        const user = this._user.getSelfOrImpersonated();\n        if (!roleStringId || !user.roles) {\n            return false;\n        }\n        return user.roles.some(r => r.stringId === roleStringId);\n    }\n\n    /**\n     * Checks whether the user has a role with the specified identifier in a process with the specified identifier (any version),\n     * or if the role is global (with prefix 'global_').\n     * @param roleIdentifier identifier (import ID) of the role we want to check\n     * @param netIdentifier identifier (import ID) of the process the role is defined in\n     */\n    public hasRoleByIdentifier(roleIdentifier: string, netIdentifier: string): boolean {\n        const user = this._user.getSelfOrImpersonated();\n        if (!roleIdentifier || !user.roles) {\n            return false;\n        }\n\n        return user.roles.some(r => {\n            const matchesRole = r.importId === roleIdentifier;\n            const isGlobalRole = r.importId.startsWith(this.GLOBAL_ROLE_PREFIX);\n            const matchesNet = r.netImportId === netIdentifier;\n            return matchesRole && (isGlobalRole || matchesNet);\n        });\n    }\n\n    /**\n     * Checks whether the user has role with the specified name in a process with the specified identifier (any version)\n     * @param roleName name of the role we want to check\n     * @param netIdentifier identifier (import ID) of the process the role is defined in\n     */\n    public hasRoleByName(roleName: string, netIdentifier: string): boolean {\n        const user = this._user.getSelfOrImpersonated();\n        if (!roleName || !netIdentifier || !user.roles) {\n            return false;\n        }\n        return user.roles.some(r => r.netImportId === netIdentifier && r.name === roleName);\n    }\n\n    public login(credentials: Credentials): Observable<User> {\n        this._loginCalled = true;\n        return this._authService.login(credentials).pipe(\n            tap((authUser: User) => {\n                this._user = authUser;\n                this._loginCalled = false;\n                this.publishUserChange();\n            })\n        );\n    }\n\n    public logout(): Observable<object> {\n        return this._authService.logout().pipe(\n            tap(() => {\n                this._user = this.emptyUser();\n                this.publishUserChange();\n            })\n        );\n    }\n\n    public reload(): void {\n        this.loadUser();\n    }\n\n    protected emptyUser() {\n        return new User('', '', '', '', [], [], [], []);\n    }\n\n    protected loadUser(): void {\n        this._userResource.getLoggedUser().pipe(take(1)).subscribe((user: UserResource) => {\n            if (user) {\n                const backendUser = {...user, id: user.id.toString()};\n                this._user = this._userTransform.transform(backendUser);\n                this.publishUserChange();\n            }\n        }, error => {\n            if (error instanceof HttpErrorResponse && error.status === 401) {\n                this._log.debug('Authentication token is invalid. Clearing stream');\n                this._session.clear();\n            } else {\n                this._log.error('Loading logged user has failed! Initialisation has not be completed successfully!', error);\n            }\n        });\n    }\n\n    public loadPublicUser(): void {\n        this._userResource.getPublicLoggedUser().pipe(take(1)).subscribe((user: UserResource) => {\n            if (user) {\n                const backendUser = {...user, id: user.id.toString()};\n                this._user = this._userTransform.transform(backendUser);\n                this.publishAnonymousUserChange();\n            }\n        }, error => {\n            this._log.error('Loading logged user has failed! Initialisation has not be completed successfully!', error);\n            this._publicLoadCalled = false;\n        });\n    }\n\n    public clearUser() {\n        this._user = this.emptyUser();\n    }\n\n    public isUserEmpty(user: User): boolean {\n        return !user || (!user.id && user.roles.length === 0);\n    }\n\n    public isCurrentUserEmpty(): boolean {\n        return this.isUserEmpty(this.user)\n    }\n\n    protected publishUserChange(): void {\n        this._userChange$.next(this.user);\n    }\n\n    protected publishAnonymousUserChange(): void {\n        this._anonymousUserChange$.next(this.user);\n    }\n}\n","import {Component, Inject} from '@angular/core';\nimport {SnackBarInjectionData} from './snack-bar-injection-data';\nimport {MAT_SNACK_BAR_DATA, MatSnackBarRef} from '@angular/material/snack-bar';\n\n@Component({\n    selector: 'ncc-abstract-snackbar',\n    template: ''\n})\nexport abstract class SnackBarComponent<T> {\n\n    protected constructor(public snackBarRef: MatSnackBarRef<T>, @Inject(MAT_SNACK_BAR_DATA) public data: SnackBarInjectionData) {\n    }\n\n    onDismiss() {\n        this.snackBarRef.dismiss();\n    }\n}\n","import {Component, Inject} from '@angular/core';\nimport {SnackBarComponent} from '../../models/abstract-snack-bar.component';\nimport {SnackBarInjectionData} from '../../models/snack-bar-injection-data';\nimport {MAT_SNACK_BAR_DATA, MatSnackBarRef} from '@angular/material/snack-bar';\n\n@Component({\n    selector: 'ncc-generic-snack-bar',\n    templateUrl: './generic-snack-bar.component.html',\n    styleUrls: ['./generic-snack-bar.component.scss']\n})\nexport class GenericSnackBarComponent extends SnackBarComponent<GenericSnackBarComponent> {\n\n    constructor(public snackBarRef: MatSnackBarRef<GenericSnackBarComponent>,\n                @Inject(MAT_SNACK_BAR_DATA) public data: SnackBarInjectionData) {\n        super(snackBarRef, data);\n    }\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"snack-bar-container\">\n    <mat-icon color=\"accent\" class=\"snack-bar-icon-margin\">{{data.matIconName}}</mat-icon>\n    <span>{{data.message}}</span>\n    <div fxFlex></div>\n    <button *ngIf=\"data.closable\" mat-icon-button (click)=\"onDismiss()\">\n        <mat-icon class=\"snack-bar-close-icon\">close</mat-icon>\n    </button>\n</div>\n","import {Component, Inject} from '@angular/core';\nimport {SnackBarComponent} from '../../models/abstract-snack-bar.component';\nimport {SnackBarInjectionData} from '../../models/snack-bar-injection-data';\nimport {MAT_SNACK_BAR_DATA, MatSnackBarRef} from '@angular/material/snack-bar';\n\n@Component({\n    selector: 'ncc-success-snack-bar',\n    templateUrl: './success-snack-bar.component.html',\n    styleUrls: ['./success-snack-bar.component.scss']\n})\nexport class SuccessSnackBarComponent extends SnackBarComponent<SuccessSnackBarComponent> {\n\n    constructor(public snackBarRef: MatSnackBarRef<SuccessSnackBarComponent>,\n                @Inject(MAT_SNACK_BAR_DATA) public data: SnackBarInjectionData) {\n        super(snackBarRef, data);\n    }\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"snack-bar-container\">\n    <mat-icon class=\"snack-bar-icon-margin success-color\">{{data.matIconName}}</mat-icon>\n    <span>{{data.message}}</span>\n    <div fxFlex></div>\n    <button *ngIf=\"data.closable\" mat-icon-button (click)=\"onDismiss()\">\n        <mat-icon class=\"snack-bar-close-icon\">close</mat-icon>\n    </button>\n</div>\n","import {Component, Inject} from '@angular/core';\nimport {SnackBarComponent} from '../../models/abstract-snack-bar.component';\nimport {SnackBarInjectionData} from '../../models/snack-bar-injection-data';\nimport {MAT_SNACK_BAR_DATA, MatSnackBarRef} from '@angular/material/snack-bar';\n\n@Component({\n    selector: 'ncc-error-snack-bar',\n    templateUrl: './error-snack-bar.component.html',\n    styleUrls: ['./error-snack-bar.component.scss']\n})\nexport class ErrorSnackBarComponent extends SnackBarComponent<ErrorSnackBarComponent> {\n\n    constructor(public snackBarRef: MatSnackBarRef<ErrorSnackBarComponent>,\n                @Inject(MAT_SNACK_BAR_DATA) public data: SnackBarInjectionData) {\n        super(snackBarRef, data);\n    }\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"snack-bar-container\">\n    <mat-icon color=\"warn\" class=\"snack-bar-icon-margin\">{{data.matIconName}}</mat-icon>\n    <span>{{data.message}}</span>\n    <div fxFlex></div>\n    <button *ngIf=\"data.closable\" mat-icon-button (click)=\"onDismiss()\">\n        <mat-icon class=\"snack-bar-close-icon\">close</mat-icon>\n    </button>\n</div>\n","import {Component, Inject} from '@angular/core';\nimport {SnackBarComponent} from '../../models/abstract-snack-bar.component';\nimport {SnackBarInjectionData} from '../../models/snack-bar-injection-data';\nimport {MAT_SNACK_BAR_DATA, MatSnackBarRef} from '@angular/material/snack-bar';\n\n@Component({\n    selector: 'ncc-warning-snack-bar',\n    templateUrl: './warning-snack-bar.component.html',\n    styleUrls: ['./warning-snack-bar.component.scss']\n})\nexport class WarningSnackBarComponent extends SnackBarComponent<WarningSnackBarComponent> {\n\n    constructor(public snackBarRef: MatSnackBarRef<WarningSnackBarComponent>,\n                @Inject(MAT_SNACK_BAR_DATA) public data: SnackBarInjectionData) {\n        super(snackBarRef, data);\n    }\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"snack-bar-container\">\n    <mat-icon class=\"snack-bar-icon-margin warning-color\">{{data.matIconName}}</mat-icon>\n    <span>{{data.message}}</span>\n    <div fxFlex></div>\n    <button *ngIf=\"data.closable\" mat-icon-button (click)=\"onDismiss()\">\n        <mat-icon class=\"snack-bar-close-icon\">close</mat-icon>\n    </button>\n</div>\n","export enum SnackBarVerticalPosition {\n    BOTTOM = 'bottom',\n    TOP = 'top'\n}\n\nexport enum SnackBarHorizontalPosition {\n    LEFT = 'left',\n    CENTER = 'center',\n    RIGHT = 'right'\n}\n","import {InjectionToken} from '@angular/core';\nimport {SnackBarHorizontalPosition, SnackBarVerticalPosition} from './snack-bar-enums';\n\nexport const NAE_SNACKBAR_VERTICAL_POSITION = new InjectionToken<SnackBarVerticalPosition>('NaeSnackBarVerticalPosition');\nexport const NAE_SNACKBAR_HORIZONTAL_POSITION = new InjectionToken<SnackBarHorizontalPosition>('NaeSnackBarHorizontalPosition');\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {GenericSnackBarComponent} from '../components/generic-snack-bar/generic-snack-bar.component';\nimport {SuccessSnackBarComponent} from '../components/success-snack-bar/success-snack-bar.component';\nimport {ErrorSnackBarComponent} from '../components/error-snack-bar/error-snack-bar.component';\nimport {WarningSnackBarComponent} from '../components/warning-snack-bar/warning-snack-bar.component';\nimport {SnackBarInjectionData} from '../models/snack-bar-injection-data';\nimport {MatSnackBar, MatSnackBarConfig, MatSnackBarRef} from '@angular/material/snack-bar';\nimport {SnackBarHorizontalPosition, SnackBarVerticalPosition} from '../models/snack-bar-enums';\nimport {NAE_SNACKBAR_HORIZONTAL_POSITION, NAE_SNACKBAR_VERTICAL_POSITION} from '../models/injection-token-snackbar';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SnackBarService {\n\n    private _defaultTimeout = 2.5;\n    private _verticalPosition: SnackBarVerticalPosition;\n    private _horizontalPosition: SnackBarHorizontalPosition;\n\n    constructor(private _snackBar: MatSnackBar,\n                @Optional() @Inject(NAE_SNACKBAR_VERTICAL_POSITION) naeVerticalPosition: SnackBarVerticalPosition,\n                @Optional() @Inject(NAE_SNACKBAR_HORIZONTAL_POSITION) naeHorizontalPosition: SnackBarHorizontalPosition) {\n        this._verticalPosition = SnackBarVerticalPosition.BOTTOM;\n        this._horizontalPosition = SnackBarHorizontalPosition.CENTER;\n        if (naeVerticalPosition) {\n            this._verticalPosition = naeVerticalPosition;\n        }\n        if (naeHorizontalPosition) {\n            this._horizontalPosition = naeHorizontalPosition;\n        }\n    }\n\n    public openSuccessSnackBar(message: string,\n                               verticalPosition = this._verticalPosition,\n                               horizontalPosition = this._horizontalPosition,\n                               durationInSeconds = this._defaultTimeout,\n                               config?: MatSnackBarConfig<SnackBarInjectionData>): MatSnackBarRef<SuccessSnackBarComponent> {\n        return this._snackBar.openFromComponent(SuccessSnackBarComponent, Object.assign({\n            data: {\n                message,\n                matIconName: 'done',\n                closable: false\n            },\n            duration: durationInSeconds * 1000,\n            horizontalPosition,\n            verticalPosition\n        }, config));\n    }\n\n    public openErrorSnackBar(message: string,\n                             verticalPosition = this._verticalPosition,\n                             horizontalPosition = this._horizontalPosition,\n                             // durationInSeconds = this._defaultTimeout,\n                             config?: MatSnackBarConfig<SnackBarInjectionData>): MatSnackBarRef<ErrorSnackBarComponent> {\n        return this._snackBar.openFromComponent(ErrorSnackBarComponent, Object.assign({\n            data: {\n                message,\n                matIconName: 'error',\n                closable: true\n            },\n            // duration: durationInSeconds * 1000, // Error has to be acknowledged to be closed\n            horizontalPosition,\n            verticalPosition\n        }, config));\n    }\n\n    public openWarningSnackBar(message: string,\n                               verticalPosition = this._verticalPosition,\n                               horizontalPosition = this._horizontalPosition,\n                               durationInSeconds = this._defaultTimeout,\n                               config?: MatSnackBarConfig<SnackBarInjectionData>): MatSnackBarRef<WarningSnackBarComponent> {\n        return this._snackBar.openFromComponent(WarningSnackBarComponent, Object.assign({\n            data: {\n                message,\n                matIconName: 'warning',\n                closable: false\n            },\n            duration: durationInSeconds * 1000,\n            horizontalPosition,\n            verticalPosition\n        }, config));\n    }\n\n    public openGenericSnackBar(message: string,\n                               matIconName: string,\n                               verticalPosition = this._verticalPosition,\n                               horizontalPosition = this._horizontalPosition,\n                               durationInSeconds = this._defaultTimeout,\n                               config?: MatSnackBarConfig<SnackBarInjectionData>): MatSnackBarRef<GenericSnackBarComponent> {\n        return this._snackBar.openFromComponent(GenericSnackBarComponent, Object.assign({\n            data: {\n                message,\n                matIconName,\n                closable: true\n            },\n            duration: durationInSeconds * 1000,\n            horizontalPosition,\n            verticalPosition\n        }, config));\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {Preferences} from '../../resources/interface/preferences';\nimport {UserService} from './user.service';\nimport {UserResourceService} from '../../resources/engine-endpoint/user-resource.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {Observable, Subject, Subscription} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {debounceTime} from 'rxjs/operators';\n\nconst DRAWER_DEFAULT_WIDTH = 200;\nconst DRAWER_DEBOUNCE = 1000;\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class UserPreferenceService implements OnDestroy {\n\n    protected _preferences: Preferences;\n    protected _preferencesChanged$: Subject<void>;\n    protected _sub: Subscription;\n    protected _subAnonym: Subscription;\n    public _drawerWidthChanged$: Subject<number>;\n    protected _anonym: boolean;\n\n    constructor(protected _userService: UserService,\n                protected _userResourceService: UserResourceService,\n                protected _logger: LoggerService,\n                protected _snackbar: SnackBarService,\n                protected _translate: TranslateService) {\n        this._preferences = this._emptyPreferences();\n        this._preferencesChanged$ = new Subject<void>();\n        this._drawerWidthChanged$ = new Subject<number>();\n        this._anonym = false;\n\n        this._sub = this._userService.user$.subscribe(loggedUser => {\n            if (loggedUser && loggedUser.id !== '') {\n                this._userResourceService.getPreferences().subscribe(prefs => {\n                        this._preferences = this._emptyPreferences();\n                        Object.assign(this._preferences, prefs);\n                        this._preferencesChanged$.next();\n                    }\n                );\n            } else {\n                this._preferences = this._emptyPreferences();\n                this._preferencesChanged$.next();\n            }\n        });\n\n        this._subAnonym = this._userService.anonymousUser$.subscribe(loggedUser => {\n            if (loggedUser && loggedUser.id !== '') {\n                this._userResourceService.getPublicPreferences().subscribe(prefs => {\n                        this._preferences = this._emptyPreferences();\n                        Object.assign(this._preferences, prefs);\n                        this._preferencesChanged$.next();\n                        this._anonym = true;\n                    }\n                );\n            } else {\n                this._preferences = this._emptyPreferences();\n                this._preferencesChanged$.next();\n                this._anonym = false;\n            }\n        });\n\n        this._drawerWidthChanged$.asObservable().pipe(\n            debounceTime(DRAWER_DEBOUNCE)\n        ).subscribe(newWidth => {\n            this.drawerWidth = newWidth;\n        });\n    }\n\n    ngOnDestroy(): void {\n        this._sub.unsubscribe();\n        this._preferencesChanged$.complete();\n    }\n\n    public setTaskFilters(viewId: string, value: Array<string>): void {\n        this._preferences.taskFilters[viewId] = value;\n        this._savePreferences();\n    }\n\n    public getTaskFilters(viewId: string): Array<string> | undefined {\n        return this._preferences.taskFilters[viewId];\n    }\n\n    public setCaseFilters(viewId: string, value: Array<string>): void {\n        this._preferences.caseFilters[viewId] = value;\n        this._savePreferences();\n    }\n\n    public getCaseFilters(viewId: string): Array<string> | undefined {\n        return this._preferences.caseFilters[viewId];\n    }\n\n    public setHeaders(viewId: string, value: Array<string>): void {\n        this._preferences.headers[viewId] = value;\n        this._savePreferences();\n    }\n\n    public getHeaders(viewId: string): Array<string> | undefined {\n        return this._preferences.headers[viewId];\n    }\n\n    public setLocale(locale: string): void {\n        this._preferences.locale = locale;\n        this._savePreferences();\n    }\n\n    public getLocale(): string {\n        return this._preferences.locale;\n    }\n\n    set drawerWidth(drawerWidth: number) {\n        this._preferences.drawerWidth = drawerWidth;\n        this._savePreferences();\n    }\n\n    get drawerWidth(): number {\n        return this._preferences.drawerWidth;\n    }\n\n    public get preferencesChanged$(): Observable<void> {\n        return this._preferencesChanged$.asObservable();\n    }\n\n    protected _savePreferences(): void {\n        if (!this._anonym) {\n            this._userResourceService.setPreferences(this._preferences).subscribe(resultMessage => {\n                this.resultMessage(resultMessage);\n            });\n        } else {\n            this._userResourceService.setPublicPreferences(this._preferences).subscribe(resultMessage => {\n                this.resultMessage(resultMessage);\n            });\n        }\n    }\n\n    protected resultMessage(resultMessage): void {\n        if (typeof resultMessage.success === 'string') {\n            this._snackbar.openSuccessSnackBar(this._translate.instant('preferences.snackbar.saveSuccess'));\n        } else {\n            this._snackbar.openErrorSnackBar(this._translate.instant('preferences.snackbar.saveFailure'));\n            this._logger.error('User preferences failed to save', resultMessage);\n        }\n    }\n\n    protected _emptyPreferences(): Preferences {\n        return {\n            drawerWidth: DRAWER_DEFAULT_WIDTH,\n            headers: {},\n            caseFilters: {},\n            taskFilters: {}\n        };\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport en from '../../assets/i18n/en.json';\nimport sk from '../../assets/i18n/sk.json';\nimport de from '../../assets/i18n/de.json';\nimport {TranslateService, TranslationChangeEvent} from '@ngx-translate/core';\nimport {Observable, Subject, Subscription} from 'rxjs';\nimport {UserPreferenceService} from '../user/services/user-preference.service';\nimport {LoggerService} from '../logger/services/logger.service';\n\nexport interface Translation {\n    key: string,\n    translation: any\n}\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class LanguageService implements OnDestroy {\n\n    protected _translations: Array<Translation>;\n    protected _langChange$: Subject<string>;\n    protected subPreference: Subscription;\n    protected subTranslate: Subscription;\n    protected _defaultLanguage: string = 'en';\n\n    constructor(protected _translate: TranslateService,\n                protected _preferenceService: UserPreferenceService,\n                protected _logger: LoggerService) {\n        this._translations = [\n            { key: 'en', translation: en },\n            { key: 'sk', translation: sk },\n            { key: 'de', translation: de }\n        ];\n        this._translate.addLangs(this._translations.map(trans => trans.key));\n        this._translations.forEach(trans => {\n            this._translate.setTranslation(trans.key, trans.translation, true);\n        })\n        this._translate.setDefaultLang(this._defaultLanguage);\n        this._langChange$ = new Subject<string>();\n\n        this.checkLocalStorage();\n\n        setTimeout(() => {\n            if (this._preferenceService) {\n                this.subPreference = this._preferenceService.preferencesChanged$.subscribe(() => {\n                    const preferredLang = this._preferenceService.getLocale();\n                    if (preferredLang !== undefined && preferredLang !== this._translate.currentLang) {\n                        this.setLanguage(preferredLang);\n                    }\n                });\n            }\n        });\n\n\n        this.subTranslate = _translate.onLangChange.subscribe((event: TranslationChangeEvent) => {\n            this._logger.debug('Language changed to ' + event.lang);\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.subTranslate.unsubscribe();\n        if (this.subPreference) {\n            this.subPreference.unsubscribe();\n        }\n    }\n\n    protected checkLocalStorage() {\n        const lang = localStorage.getItem('Language');\n        if (lang === null) {\n            const browserLang = this._translate.getBrowserLang();\n            this.setLanguage(browserLang);\n        } else {\n            this.setLanguage(lang);\n        }\n    }\n\n    public setDefaultLang(lang: string) {\n        if (this.checkIfLangExists(lang)) {\n            this._defaultLanguage = lang;\n        } else {\n            this._logger.error(lang + \" Language doesn't exists!\");\n        }\n    }\n\n    public setLanguage(lang: string, saveToPreferences = false) {\n        this._translate.use( this.checkIfLangExists(lang) ? lang : this._defaultLanguage);\n        if (saveToPreferences) {\n            this._preferenceService.setLocale(lang);\n        }\n        localStorage.setItem('Language', this.checkIfLangExists(lang) ? lang : this._defaultLanguage);\n        this._langChange$.next(this.checkIfLangExists(lang) ? lang : this._defaultLanguage);\n    }\n\n    public addLanguage(lang: string, translation: Object) {\n        this._translate.addLangs([lang]);\n        this._translate.setTranslation(lang, translation, true);\n        this._translations.push({key: lang, translation})\n    }\n\n    public removeLanguage(lang: string) {\n        const index = this._translations.findIndex(value => value.key === lang);\n        if (index !== -1) {\n            if (this._translate.currentLang === lang && this._translate.currentLang !== this._defaultLanguage) {\n                this.setLanguage(this._defaultLanguage);\n            }\n            this._translations.splice(index, 1);\n        }\n    }\n\n    public getTranslations(): Array<Translation> {\n        return this._translations;\n    }\n\n    getLanguage() {\n        return this._translate.currentLang;\n    }\n\n    public getLangChange$(): Observable<string> {\n        return this._langChange$.asObservable();\n    }\n\n    protected checkIfLangExists(lang: string): boolean {\n        return this._translations.some(value => value.key === lang);\n    }\n\n\n}\n","import {\n    HttpEvent,\n    HttpHandler,\n    HttpInterceptor,\n    HttpRequest\n} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {Injectable} from '@angular/core';\nimport {LanguageService} from './language.service';\n\n@Injectable()\nexport class TranslateInterceptor implements HttpInterceptor {\n\n    constructor(private _select: LanguageService) {\n    }\n\n    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n        req = req.clone({\n            headers: req.headers.set('Accept-Language', this._select.getLanguage())\n        });\n        return next.handle(req);\n    }\n}\n\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslateLoader, TranslateModule, TranslatePipe, TranslateService, TranslateStore} from '@ngx-translate/core';\nimport {HTTP_INTERCEPTORS, HttpClient} from '@angular/common/http';\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\nimport {LanguageService} from './language.service';\nimport {TranslateInterceptor} from './translate-interceptor';\n\nexport function HttpLoaderFactory(http: HttpClient) {\n    return new TranslateHttpLoader(http);\n}\n\n@NgModule({\n    declarations: [],\n    imports: [\n        CommonModule,\n        TranslateModule.forChild({\n            loader: {\n                provide: TranslateLoader,\n                useFactory: (HttpLoaderFactory),\n                deps: [HttpClient]\n            }\n        })\n    ],\n    exports: [TranslateModule],\n    providers: [\n        TranslateService,\n        TranslatePipe,\n        TranslateStore,\n        LanguageService,\n        {provide: HTTP_INTERCEPTORS, useClass: TranslateInterceptor, multi: true},\n    ]\n})\nexport class TranslateLibModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FlexLayoutModule} from '@angular/flex-layout';\nimport {MaterialModule} from '../material/material.module';\nimport {HttpClientModule} from '@angular/common/http';\nimport {AngularResizeEventModule} from 'angular-resize-event';\nimport {CovalentModule} from '../covalent/covalent.module';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {CustomDateAdapter} from './date-field/models/custom-date-adapter';\nimport {NgxMatDatetimePickerModule} from '@angular-material-components/datetime-picker';\nimport {NgxMatMomentModule} from '@angular-material-components/moment-adapter';\nimport {TranslateLibModule} from '../translate/translate-lib.module';\nimport {DateAdapter} from '@angular/material/core';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        FlexLayoutModule,\n        MaterialModule,\n        CovalentModule,\n        AngularResizeEventModule,\n        HttpClientModule,\n        ReactiveFormsModule,\n        NgxMatDatetimePickerModule,\n        NgxMatMomentModule,\n        TranslateLibModule\n    ],\n    providers: [\n        {provide: DateAdapter, useClass: CustomDateAdapter}\n    ]\n})\nexport class DataFieldsModule {\n\n}\n","import {InjectionToken} from \"@angular/core\";\nimport {DataField} from \"./abstract-data-field\";\nimport {FormControl} from \"@angular/forms\";\nimport {WrappedBoolean} from \"../data-field-template/models/wrapped-boolean\";\n\nexport interface DataFieldPortalData<T extends DataField<unknown>> {\n    dataField: T;\n    showLargeLayout: WrappedBoolean;\n    formControlRef: FormControl;\n    additionalFieldProperties?: {\n      [k:string]: string | number;\n    };\n}\n\nexport const DATA_FIELD_PORTAL_DATA = new InjectionToken<DataFieldPortalData<DataField<unknown>>>('DataFieldPortalData');\n","import {Component, Inject, Input, OnDestroy, Optional} from \"@angular/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../models/data-field-portal-data-injection-token\";\nimport {DataField} from \"../models/abstract-data-field\";\nimport {FormControl} from \"@angular/forms\";\nimport {WrappedBoolean} from \"../data-field-template/models/wrapped-boolean\";\n\n@Component({\n    selector: 'ncc-base-data-field',\n    template: ''\n})\nexport abstract class AbstractBaseDataFieldComponent<T extends DataField<unknown>> implements OnDestroy {\n\n    @Input() public dataField: T;\n    @Input() public formControlRef: FormControl;\n    @Input() public showLargeLayout: WrappedBoolean;\n\n    constructor(@Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<T>) {\n        if (!!dataFieldPortalData) {\n            this.dataField = dataFieldPortalData.dataField;\n            this.formControlRef = dataFieldPortalData.formControlRef;\n            this.showLargeLayout = dataFieldPortalData.showLargeLayout;\n            if (!this.dataField.initialized) {\n                this.formControlRef = new FormControl('', {updateOn: this.dataField.getUpdateOnStrategy()});\n                this.dataField.registerFormControl(this.formControlRef)\n            }\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.dataField.disconnectFormControl();\n    }\n\n    public checkPropertyInComponent(property: string): boolean {\n        return !!this.dataField?.component?.properties\n            && property in this.dataField.component.properties;\n    }\n\n    public hasTitle(): boolean {\n        return this.dataField.title !== undefined && this.dataField.title !== '';\n    }\n\n    public hasHint(): boolean {\n        return this.dataField.description !== undefined && this.dataField.description !== '';\n    }\n}\n","import {InjectionToken} from '@angular/core';\n\n/**\n * Whether invalid data values should be sent to backend or not. Invalid data is NOT set to backend by default.\n * You can use this InjectionToken to override this behavior in a specific application scope.\n *\n * This token is ultimately injected by individual data fields, so this option can be in theory applied at a very low level of granularity.\n * The library implementation doesn't allow access to such low level components, so a custom implementation is necessary to provide this\n * token at such low level. Applying the token to individual task views is achievable with the default implementation.\n */\nexport const NAE_INFORM_ABOUT_INVALID_DATA = new InjectionToken<boolean>('NaeInformAboutInvalidData');\n","import {DataField} from './abstract-data-field';\nimport {FormControl} from '@angular/forms';\nimport {Component, Inject, Input, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from './invalid-data-policy-token';\n\n/**\n * @deprecated as of v6.4.0\n * Holds the common functionality for all DataFieldComponents.\n */\n@Component({\n    selector: 'ncc-abstract-datafield',\n    template: ''\n})\nexport abstract class AbstractDataFieldComponent implements OnInit, OnDestroy {\n\n    /**\n     * The Model object that this Component should render.\n     * It should be overridden in each class that extends this one, to provide a more specific type.\n     */\n    @Input() dataField: DataField<any>;\n    @Input() taskOffset = 0;\n    /**\n     * @ignore\n     * See [formControl]{@link AbstractDataFieldComponent#formControl}\n     */\n    protected _formControl: FormControl;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) protected _informAboutInvalidData: boolean | null) {\n        this._formControl = new FormControl('', { updateOn: 'blur' });\n    }\n\n    /**\n     * Registers the {@link FormControl} to the provided data field.\n     *\n     * See [DataField.registerFormControl]{@link DataField#registerFormControl} form more information.\n     */\n    ngOnInit(): void {\n        this.dataField.registerFormControl(this._formControl);\n        this.dataField.sendInvalidValues = this._informAboutInvalidData;\n    }\n\n    ngOnDestroy(): void {\n        this.dataField.disconnectFormControl();\n    }\n\n    /**\n     * The [FormControl]{@link https://angular.io/api/forms/FormControl} object that should be used to control any rendered forms.\n     */\n    public get formControl(): FormControl {\n        return this._formControl;\n    }\n\n    public hasTitle(): boolean {\n        return this.dataField.title !== undefined && this.dataField.title !== '';\n    }\n}\n","import {Component, Inject, Input, Optional} from '@angular/core';\nimport {BooleanField} from './models/boolean-field';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {FormControl} from '@angular/forms';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\n\n/**\n * @deprecated\n * */\n@Component({\n    selector: 'ncc-abstract-boolean-field',\n    template: ''\n})\nexport abstract class AbstractBooleanFieldComponent extends AbstractDataFieldComponent {\n\n    @Input() dataField: BooleanField;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n        this._formControl = new FormControl('');\n    }\n}\n","import {Properties} from './properties';\nimport {Icon} from './icon';\n\nexport const DEFAULT = \"default\";\n\nexport enum ComponentPrefixes {\n    BOOLEAN = 'boolean-',\n    BUTTON = 'button-',\n    DATE = 'date-',\n    DATE_TIME = 'date-time-',\n    ENUMERATION = 'enumeration-',\n    FILE = 'file-',\n    FILE_LIST = 'file-list-',\n    FILTER = 'filter-',\n    I18N = 'i18n-',\n    MULTICHOICE = 'multichoice-',\n    NUMBER = 'number-',\n    TASK_REF = 'task-ref-',\n    CASE_REF = 'case-ref-',\n    TEXT = 'text-',\n    USER = 'user-',\n    USER_LIST = 'user-list-',\n    STRING_COLLECTION = 'string-collection-',\n}\n\nexport interface Component {\n    name: string;\n    properties?: Properties;\n    optionIcons?: Array<Icon>;\n}\n","export type UpdateOnStrategy = 'change' | 'blur' | 'submit';\nexport enum UpdateStrategy {\n    CHANGE = 'change',\n    BLUR = 'blur',\n    SUBMIT = 'submit'\n}\n\n","import {Behavior} from './behavior';\nimport {BehaviorSubject, Observable, Subject, Subscription} from 'rxjs';\nimport {FormControl, ValidatorFn, Validators} from '@angular/forms';\nimport {Change} from './changed-fields';\nimport {distinctUntilChanged, filter, take} from 'rxjs/operators';\nimport {Layout} from './layout';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {Component, DEFAULT} from './component';\nimport {Validation} from './validation';\nimport {ElementRef} from \"@angular/core\";\nimport {UpdateOnStrategy, UpdateStrategy} from \"./update-strategy\";\n\n/**\n * Holds the logic common to all data field Model objects.\n * @typeparam T - type of the `value` property of the data field\n */\nexport abstract class DataField<T> {\n    /**\n     * @ignore\n     * Current value of the data field\n     */\n    protected _value: BehaviorSubject<T>;\n    /**\n     * @ignore\n     * Previous value of the data field\n     */\n    protected _previousValue: BehaviorSubject<T>;\n    /**\n     * @ignore\n     * Whether the data field Model object was initialized, we push that info into stream\n     *\n     * See [registerFormControl()]{@link DataField#registerFormControl} for more information.\n     */\n    protected _initialized$: BehaviorSubject<boolean>;\n    /**\n     * @ignore\n     * Whether the field fulfills all of it's validators.\n     */\n    private _valid: boolean;\n    /**\n     * @ignore\n     * Whether the `value` of the field changed recently. The flag is cleared when changes are send to backend.\n     */\n    private _changed: boolean;\n    /**\n     * @ignore\n     * Data field subscribes this stream.\n     * The data field updates it's Validators, validity and enabled/disabled according to it's behavior.\n     */\n    protected _update: Subject<void>;\n    /**\n     * @ignore\n     * Data field subscribes this stream. When a `true` value is received the data field disables itself.\n     * When a `false`value is received data field disables/enables itself based on it's behavior.\n     */\n    protected _block: Subject<boolean>;\n    /**\n     * @ignore\n     * When a `true` value is there, the data field is disabled.\n     * When a `false` value is received, data field is disabled/enabled based on it's behavior.\n     */\n    protected _blocked: boolean;\n    /**\n     * @ignore\n     * Data field subscribes this stream. Sets the state of the data field to \"touched\" or \"untouched\" (`true`/`false`).\n     * Validity of the data field is not checked in an \"untouched\" state.\n     * All fields are touched before a task is finished to check their validity.\n     */\n    protected _touch: Subject<boolean>;\n    protected _updateSubscription: Subscription;\n    protected _blockSubscription: Subscription;\n    protected _touchSubscription: Subscription;\n    protected _formControlValueSubscription: Subscription;\n    protected _myValueSubscription: Subscription;\n    /**\n     * @ignore\n     * Appearance of dataFields, possible values - outline, standard, fill, legacy\n     */\n    public materialAppearance: string;\n    /**\n     * @ignore\n     * Whether the field fulfills required validator.\n     */\n    private _validRequired: boolean;\n    /**\n     * Whether invalid field values should be sent to backend.\n     */\n    private _sendInvalidValues = true;\n    /**\n     * Flag that is set during reverting\n     */\n    private _reverting = false;\n\n    /**\n     * Validators resolved from field validations\n     */\n    protected _validators: Array<ValidatorFn>;\n\n    /**\n     * Stores the last subscription to the [_initialized$]{@link AbstractDataField#_initialized$} Stream, to prevent multiple block events\n     * from executing at the same time\n     */\n    protected _initializedSubscription: Subscription;\n\n    /**\n     * @ignore\n     * Whether the changes from has been requested. The flag is cleared when changes are received from backend.\n     */\n    private _waitingForResponse: boolean;\n\n    /**\n     * Stores a copy of the fields layout, that can be modified by the layouting algorithm as needed\n     * without affecting the base configuration.\n     */\n    protected _localLayout: Layout;\n\n    /**\n     * Listens for layout changes\n     */\n    protected layoutSubject: BehaviorSubject<Layout>;\n\n    /**\n     * Reference to rendered element\n     * */\n    private _input: ElementRef;\n\n    /**\n     * Reference to form control\n     * */\n    private _formControlRef: FormControl;\n\n    /**\n     * change of component\n     * */\n    private _componentChange$: Subject<Component>;\n\n    /**\n     * @param _stringId - ID of the data field from backend\n     * @param _title - displayed title of the data field from backend\n     * @param initialValue - initial value of the data field\n     * @param _behavior - data field behavior\n     * @param _placeholder - placeholder displayed in the datafield\n     * @param _description - tooltip of the datafield\n     * @param _layout - information regarding the component rendering\n     * @param validations\n     * @param _component - component data of datafield\n     * @param _parentTaskId - stringId of parent task, only defined if field is loaded using {@link TaskRefField}\n     * @param _parentCaseId - stringId of parent case, only defined if field is loaded using {@link TaskRefField}\n     */\n    protected constructor(private _stringId: string, private _title: string, initialValue: T,\n                          private _behavior: Behavior, private _placeholder?: string,\n                          private _description?: string, private _layout?: Layout, public validations?: Array<Validation>,\n                          private _component?: Component, private _parentTaskId?: string, private _parentCaseId?: string) {\n        this._value = new BehaviorSubject<T>(initialValue);\n        this._previousValue = new BehaviorSubject<T>(initialValue);\n        this._initialized$ = new BehaviorSubject<boolean>(false);\n        this._valid = true;\n        this._changed = false;\n        this._waitingForResponse = false;\n        this._update = new Subject<void>();\n        this._block = new Subject<boolean>();\n        this._touch = new Subject<boolean>();\n        this._componentChange$ = new Subject<Component>();\n        this._validRequired = true;\n        this.layoutSubject = new BehaviorSubject<Layout>(_layout);\n        this.resetLocalLayout();\n    }\n\n    get stringId(): string {\n        return this._stringId;\n    }\n\n    set title(title: string) {\n        this._title = title;\n    }\n\n    get title(): string {\n        return this._title;\n    }\n\n    set placeholder(placeholder: string) {\n        this._placeholder = placeholder;\n    }\n\n    get placeholder(): string | undefined {\n        return this._placeholder;\n    }\n\n    set description(desc: string) {\n        this._description = desc;\n    }\n\n    get description(): string {\n        return this._description;\n    }\n\n    set behavior(behavior: Behavior) {\n        this._behavior = behavior;\n    }\n\n    get behavior(): Behavior {\n        return this._behavior;\n    }\n\n    get value(): T {\n        return this._value.getValue();\n    }\n\n    set value(value: T) {\n        if (!this.valueEquality(this._value.getValue(), value) && !this._reverting) {\n            this._changed = true;\n            this._waitingForResponse = true;\n            this.resolvePrevValue(value);\n        }\n        this._value.next(value);\n        this._reverting = false;\n    }\n\n    get parentTaskId(): string {\n        return this._parentTaskId;\n    }\n\n    get parentCaseId(): string {\n        return this._parentCaseId;\n    }\n\n    get previousValue() {\n        return this._previousValue.getValue();\n    }\n\n    set previousValue(value: T) {\n        this._previousValue.next(value);\n    }\n\n    public valueWithoutChange(value: T) {\n        this._changed = false;\n        this._value.next(value);\n    }\n\n    set layout(layout: Layout) {\n        this._layout = layout;\n        this.layoutSubject.next(layout);\n    }\n\n    get layout(): Layout {\n        return this._layout;\n    }\n\n    get localLayout(): Layout {\n        return this._localLayout;\n    }\n\n    get disabled(): boolean {\n        return !!this._behavior.visible && !this._behavior.editable;\n    }\n\n    get initialized(): boolean {\n        return this._initialized$.value;\n    }\n\n    get initialized$(): Observable<boolean> {\n        return this._initialized$.asObservable();\n    }\n\n    set valid(set: boolean) {\n        this._valid = set;\n    }\n\n    get valid(): boolean {\n        return this._valid;\n    }\n\n    set changed(set: boolean) {\n        this._changed = set;\n    }\n\n    get changed(): boolean {\n        return this._changed;\n    }\n\n    set block(set: boolean) {\n        if (this._initializedSubscription !== undefined && !this._initializedSubscription.closed) {\n            this._initializedSubscription.unsubscribe();\n        }\n        this._initializedSubscription = this.initialized$.pipe(filter(i => i), take(1)).subscribe(() => {\n            this._block.next(set);\n        });\n    }\n\n    set touch(set: boolean) {\n        this._touch.next(set);\n    }\n\n    get touch$(): Observable<boolean> {\n        return this._touch.asObservable();\n    }\n\n    get component(): Component {\n        return this._component;\n    }\n\n    set component(component: Component) {\n        this._component = component;\n        this._componentChange$.next(component);\n    }\n\n    public componentChange$(): Observable<Component> {\n        return this._componentChange$.asObservable();\n    }\n\n    public revertToPreviousValue(): void {\n        this.changed = false;\n        this._reverting = true;\n        this.value = this.previousValue;\n    }\n\n    set validRequired(set: boolean) {\n        this._validRequired = set;\n    }\n\n    get validRequired(): boolean {\n        return this._validRequired;\n    }\n\n    get sendInvalidValues(): boolean {\n        return this._sendInvalidValues;\n    }\n\n    set sendInvalidValues(value: boolean | null) {\n        this._sendInvalidValues = value === null || value;\n    }\n\n    get waitingForResponse(): boolean {\n        return this._waitingForResponse;\n    }\n\n    set waitingForResponse(value: boolean) {\n        this._waitingForResponse = value;\n    }\n\n    public update(): void {\n        this._update.next();\n    }\n\n    public valueChanges(): Observable<T> {\n        return this._value.asObservable();\n    }\n\n    set reverting(set: boolean) {\n        this._reverting = set;\n    }\n\n    get reverting(): boolean {\n        return this._reverting;\n    }\n\n    public focus(): void {\n        if (!!this._input) {\n            this._input.nativeElement.focus();\n        }\n    }\n\n    get input(): ElementRef {\n        return this._input;\n    }\n\n    set input(value: ElementRef) {\n        this._input = value;\n    }\n\n    get formControlRef(): FormControl {\n        return this._formControlRef;\n    }\n\n    set formControlRef(formControl: FormControl) {\n        this._formControlRef = formControl;\n    }\n\n    public getUpdateOnStrategy(): UpdateOnStrategy {\n        return UpdateStrategy.BLUR;\n    }\n\n    /**\n     * This function resolve type of component for HTML\n     * @returns type of component in string\n     */\n    public getComponentType(): string {\n        return this.component?.name ?? DEFAULT;\n    }\n\n    public abstract getTypedComponentType(): string;\n\n    public destroy(): void {\n        this._value.complete();\n        this._previousValue.complete();\n        this._update.complete();\n        this._touch.complete();\n        this._block.complete();\n        this._initialized$.complete();\n        this.layoutSubject.complete();\n    }\n\n    public registerFormControl(formControl: FormControl): void {\n        if (this.initialized) {\n            throw new Error('Data field can be initialized only once!'\n                + ' Disconnect the previous form control before initializing the data field again!');\n        }\n\n        this.formControlRef = formControl;\n        formControl.setValidators(this.resolveFormControlValidators());\n\n        this._formControlValueSubscription = formControl.valueChanges.pipe(\n            distinctUntilChanged(this.valueEquality)\n        ).subscribe(newValue => {\n            this._valid = this._determineFormControlValidity(formControl);\n            this.value = newValue;\n        });\n\n        this._myValueSubscription = this._value.pipe(\n            distinctUntilChanged(this.valueEquality)\n        ).subscribe(newValue => {\n            this._valid = this._determineFormControlValidity(formControl);\n            formControl.setValue(newValue);\n            this.update();\n        });\n\n        this.updateFormControlState(formControl);\n        this._initialized$.next(true);\n        this._changed = false;\n        this._waitingForResponse = false;\n    }\n\n    public disconnectFormControl(): void {\n        if (!this.initialized) {\n            return;\n        }\n        this._initialized$.next(false);\n        const subs = [\n            this._updateSubscription,\n            this._blockSubscription,\n            this._touchSubscription,\n            this._formControlValueSubscription,\n            this._myValueSubscription\n        ];\n        for (const sub of subs) {\n            if (sub) {\n                sub.unsubscribe();\n            }\n        }\n    }\n\n    protected updateFormControlState(formControl: FormControl): void {\n        formControl.setValue(this.value);\n        this.subscribeToInnerSubjects(formControl);\n        this.update();\n    }\n\n    protected subscribeToInnerSubjects(formControl: FormControl) {\n        this._updateSubscription = this._update.subscribe(() => {\n            this.validRequired = this.calculateValidity(true, formControl);\n            this.valid = this.calculateValidity(false, formControl);\n            if (!this._blocked) {\n                this.disabled ? formControl.disable() : formControl.enable();\n            }\n        });\n\n        this._blockSubscription = this._block.subscribe(bool => {\n            if (bool) {\n                this._blocked = true;\n                formControl.disable();\n            } else {\n                this._blocked = false;\n                this.disabled ? formControl.disable() : formControl.enable();\n            }\n        });\n\n        this._touchSubscription = this._touch.subscribe(bool => {\n            if (bool) {\n                formControl.markAsTouched();\n            } else {\n                formControl.markAsUntouched();\n            }\n        });\n    }\n\n    /**\n     * Computes whether the FormControl si valid.\n     * @param formControl check form control\n     */\n    protected _determineFormControlValidity(formControl: FormControl): boolean {\n        // disabled form controls are marked as invalid as per W3C standard, this solves that problem\n        return formControl.disabled || formControl.valid;\n    }\n\n    /**\n     * Creates Validator objects based on field `behavior`. Only the `required` behavior is resolved by default.\n     * Required is resolved as `Validators.required`.\n     * If you need to resolve additional Validators or need a different resolution for the `required` Validator override this method.\n     *\n     * See {@link Behavior} for information about data field behavior.\n     *\n     * See {@link ValidatorFn} and {@link Validators} for information about Validators.\n     *\n     * Alternatively see [Form Validation guide]{@link https://angular.io/guide/form-validation#reactive-form-validation} from Angular.\n     */\n    protected resolveFormControlValidators(): Array<ValidatorFn> {\n        const result = [];\n\n        if (this.behavior.required) {\n            result.push(Validators.required);\n        }\n\n        if (this.validations) {\n            if (this._validators) {\n                result.push(...this._validators);\n            } else {\n                this._validators = this.resolveValidations();\n                result.push(...this._validators);\n            }\n        }\n\n        return result;\n    }\n\n    public replaceValidations(validations: Array<Validation>) {\n        this.clearValidators();\n        this.validations = validations;\n    }\n\n    public clearValidators(): void {\n        this._validators = null;\n    }\n\n    protected resolveValidations(): Array<ValidatorFn> {\n        return [];\n    }\n\n    /**\n     * Determines if two values of the data field are equal.\n     *\n     * `a === b` equality is used by default. If you want different behavior override this method.\n     * @param a - first compared value\n     * @param b - second compared value\n     */\n    protected valueEquality(a: T, b: T): boolean {\n        return a === b || (Number.isNaN(a) && Number.isNaN(b));\n    }\n\n    /**\n     * Updates the state of this data field model object.\n     * @param change - object describing the changes - returned from backend\n     *\n     * Also see {@link ChangedFields}.\n     */\n    public applyChange(change: Change): void {\n        Object.keys(change).forEach(changedAttribute => {\n            switch (changedAttribute) {\n                case 'value':\n                    this.value = change[changedAttribute];\n                    break;\n                case 'behavior':\n                    Object.assign(this.behavior, change[changedAttribute]);\n                    this.update();\n                    break;\n                default:\n                    throw new Error(`Unknown attribute '${changedAttribute}' in change object`);\n            }\n        });\n    }\n\n    public resolveAppearance(config: ConfigurationService): void {\n        let appearance = 'outline';\n        if (this.layout && this.layout.appearance) {\n            appearance = this.layout.appearance;\n        } else {\n            const datafieldConfiguration = config.getDatafieldConfiguration();\n            if (datafieldConfiguration && datafieldConfiguration.appearance) {\n                appearance = datafieldConfiguration.appearance;\n            }\n        }\n        this.materialAppearance = appearance;\n\n        /* Listen for changes of layout in future */\n        this.layoutSubject.subscribe(layout => {\n            if (this.layout && this.layout.appearance) {\n                this.materialAppearance = this.layout.appearance;\n            }\n        });\n    }\n\n    public resolvePrevValue(value: T): void {\n        if (this._value.getValue() !== undefined\n            && this._value.getValue() !== value) {\n            this._previousValue.next(this._value.getValue());\n        }\n    }\n\n    protected calculateValidity(forValidRequired: boolean, formControl: FormControl): boolean {\n        const isDisabled = formControl.disabled;\n        if (forValidRequired) {\n            formControl.enable();\n        }\n        formControl.clearValidators();\n        if (forValidRequired) {\n            formControl.setValidators(this.behavior.required ? [Validators.required] : []);\n        } else {\n            formControl.setValidators(this.resolveFormControlValidators());\n        }\n        formControl.updateValueAndValidity();\n        const validity = this._determineFormControlValidity(formControl);\n        isDisabled ? formControl.disable() : formControl.enable();\n        return validity;\n    }\n\n    public isInvalid(formControl: FormControl): boolean {\n        return !formControl.disabled && !formControl.valid && formControl.touched;\n    }\n\n    /**\n     * Copies the layout settings into the local layout.\n     */\n    public resetLocalLayout(): void {\n        if (this._layout !== undefined) {\n            this._localLayout = {...this._layout};\n        } else {\n            this._localLayout = undefined;\n        }\n    }\n}\n","import {Behavior} from '../../models/behavior';\nimport {AbstractControl, ValidationErrors, ValidatorFn} from '@angular/forms';\nimport {Layout} from '../../models/layout';\nimport {Validation} from '../../models/validation';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {DataField} from '../../models/abstract-data-field';\nimport {UpdateOnStrategy, UpdateStrategy} from \"../../models/update-strategy\";\n\nexport enum BooleanFieldValidation {\n    REQUIRED_TRUE = 'requiredTrue',\n    REQUIRED = 'required'\n}\n\nexport class BooleanField extends DataField<boolean> {\n\n    constructor(stringId: string, title: string, value: boolean, behavior: Behavior, placeholder?: string,\n                description?: string, layout?: Layout, validations?: Array<Validation>, component?: Component, parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, component, parentTaskId);\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.BOOLEAN + this.getComponentType();\n    }\n\n    public getUpdateOnStrategy(): UpdateOnStrategy {\n        return UpdateStrategy.CHANGE;\n    }\n\n    protected resolveValidations(): Array<ValidatorFn> {\n        const result = [];\n\n        this.validations.forEach(item => {\n            if (item.validationRule.includes(BooleanFieldValidation.REQUIRED_TRUE)) {\n                result.push(this.requiredTrue);\n            }\n        });\n\n        return result;\n    }\n\n    private requiredTrue(control: AbstractControl): ValidationErrors | null {\n        return control.value === true ? null : {requiredTrue: true};\n    }\n}\n","import {Component, Inject, Optional} from \"@angular/core\";\nimport {BooleanField, BooleanFieldValidation} from \"../models/boolean-field\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\n\n@Component({\n    selector: 'ncc-abstract-boolean-default-field',\n    template: ''\n})\nexport abstract class AbstractBooleanDefaultFieldComponent extends AbstractBaseDataFieldComponent<BooleanField> {\n\n    constructor(protected _translate: TranslateService,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<BooleanField>) {\n        super(dataFieldPortalData);\n    }\n\n    public getErrorMessage() {\n        if (this.formControlRef.hasError(BooleanFieldValidation.REQUIRED)) {\n            return this._translate.instant('dataField.validations.required');\n        } else if (this.formControlRef.hasError(BooleanFieldValidation.REQUIRED_TRUE)) {\n            return this.resolveErrorMessage(this.dataField, BooleanFieldValidation.REQUIRED_TRUE,\n                this._translate.instant('dataField.validations.requiredTrue'));\n        }\n        return '';\n    }\n\n    public createValueLabel(): string {\n        return this._translate.instant('dataField.values.boolean.' + this.dataField.value);\n    }\n\n    private resolveErrorMessage(dataField: BooleanField, search: string, generalMessage: string) {\n        const validation = dataField.validations.find(value => value.validationRule.includes(search));\n        if (validation.validationMessage && validation.validationMessage !== '') {\n            return validation.validationMessage;\n        }\n        return generalMessage;\n    }\n}\n","import {Component, Inject, Input, Optional} from '@angular/core';\nimport {ButtonField} from './models/button-field';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\n\n/**\n * @deprecated\n * */\n@Component({\n    selector: 'ncc-abstract-button-field',\n    template: ''\n})\nexport abstract class AbstractButtonFieldComponent extends AbstractDataFieldComponent {\n\n    @Input() dataField: ButtonField;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n}\n","import {DataField} from '../../models/abstract-data-field';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {Component, ComponentPrefixes, DEFAULT} from '../../models/component';\nimport {Validation} from '../../models/validation';\n\nexport enum ButtonFieldValidation {\n    REQUIRED = 'required'\n}\n\nexport class ButtonField extends DataField<number> {\n\n    constructor(stringId: string, title: string, behavior: Behavior, value?: number, placeholder?: string,\n                description?: string, layout?: Layout, validations?: Array<Validation>, component?: Component,\n                parentTaskId?: string) {\n        super(stringId, title, (value === undefined) ? 0 : value, behavior, placeholder, description,\n            layout, validations, component, parentTaskId);\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.BUTTON + DEFAULT;\n    }\n}\n","import {Component, Inject} from '@angular/core';\nimport {DialogData} from './DialogData';\nimport {DialogResult} from './DialogResult';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\n\n/** Abstract dialog for all types of dialog components is used for data injection and dialog reference holding. */\n@Component({\n    selector: 'ncc-abstract-dialog',\n    template: ''\n})\nexport abstract class AbstractDialogComponent<T> {\n    /**\n     * Only injecting.\n     * @param dialogRef Reference to a dialog opened via the MatDialog service.\n     * @param data Injected data that was passed in to a dialog.\n     */\n    protected constructor(public dialogRef: MatDialogRef<T, DialogResult>, @Inject(MAT_DIALOG_DATA) public data: DialogData) {\n    }\n\n    /** On close dialog or on click answer button closed current open modal dialog. */\n    public abstract onClose(isSubmitted?: boolean);\n\n}\n","import {Component, Inject} from '@angular/core';\nimport {AbstractDialogComponent} from '../../models/abstract-dialog.component';\nimport {DialogResult} from '../../models/DialogResult';\nimport {DialogData} from '../../models/DialogData';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\n\n/**\n * Question modal dialog with its own layout (which asks the user a question with two answers - yes or no)\n * based on a material design that injected data and inherits from an [AbstractDialog]{@link AbstractDialogComponent}.\n */\n@Component({\n    selector: 'ncc-question-dialog',\n    templateUrl: './confirm-dialog.component.html',\n    styleUrls: ['./confirm-dialog.component.scss']\n})\nexport class ConfirmDialogComponent extends AbstractDialogComponent<ConfirmDialogComponent> {\n\n    public choice: boolean;\n    public parsedContent: SafeHtml;\n\n    /**\n     * Only injecting.\n     * @param dialogRef Reference to a dialog opened via the MatDialog service.\n     * @param data Injected data that was passed in to a dialog.\n     * @param sanitizer sanitize HTML\n     */\n    constructor(public dialogRef: MatDialogRef<ConfirmDialogComponent, DialogResult>,\n                @Inject(MAT_DIALOG_DATA) public data: DialogData, private sanitizer: DomSanitizer) {\n        super(dialogRef, data);\n        this.choice = false;\n        if (data && data.content) {\n            this.parsedContent = sanitizer.bypassSecurityTrustHtml(data.content.replace('\\\\n', '<br>'));\n        } else {\n            this.parsedContent = sanitizer.bypassSecurityTrustHtml('');\n        }\n    }\n\n    public onClose(isSubmitted: boolean) {\n        this.dialogRef.close({\n            confirmed: isSubmitted\n        });\n    }\n\n}\n","<h1 mat-dialog-title>{{data.title}}</h1>\n\n<div mat-dialog-content class=\"dialog-container dialog-content-margin\" [innerHTML]=\"parsedContent\"></div>\n\n<mat-dialog-actions fxLayoutAlign=\"end\">\n    <button mat-button color=\"warn\" (click)=\"onClose(false)\">{{data.negativeLabel}}</button>\n    <button mat-flat-button color=\"primary\" (click)=\"onClose(true)\">{{data.positiveLabel}}</button>\n</mat-dialog-actions>\n","import {Component, Inject} from '@angular/core';\nimport {AbstractDialogComponent} from '../../models/abstract-dialog.component';\nimport {DialogData} from '../../models/DialogData';\nimport {DialogResult} from '../../models/DialogResult';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\n\n/**\n * Simple modal dialog with its own layout (which only shows information) based on a material design\n * that injected data and inherits from an [AbstractDialog]{@link AbstractDialogComponent}.\n */\n@Component({\n    selector: 'ncc-simple-dialog',\n    templateUrl: './alert-dialog.component.html',\n    styleUrls: ['./alert-dialog.component.scss']\n})\nexport class AlertDialogComponent extends AbstractDialogComponent<AlertDialogComponent> {\n    /**\n     * Only injecting.\n     * @param dialogRef Reference to a dialog opened via the MatDialog service.\n     * @param data Injected data that was passed in to a dialog.\n     */\n    constructor(public dialogRef: MatDialogRef<AlertDialogComponent, DialogResult>,\n                @Inject(MAT_DIALOG_DATA) public data: DialogData) {\n        super(dialogRef, data);\n    }\n\n    onClose() {\n        this.dialogRef.close({});\n    }\n\n}\n","<h1 mat-dialog-title>{{data.title}}</h1>\n\n<div mat-dialog-content class=\"dialog-container dialog-content-margin\">{{data.content}}</div>\n\n<mat-dialog-actions fxLayoutAlign=\"end\">\n    <button mat-button color=\"primary\" (click)=\"onClose()\">OK</button>\n</mat-dialog-actions>\n","import {Component, Inject} from '@angular/core';\nimport {AbstractDialogComponent} from '../../models/abstract-dialog.component';\nimport {DialogResult} from '../../models/DialogResult';\nimport {DialogData} from '../../models/DialogData';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\n\n/**\n * Question modal dialog with its own layout (which asks the user a question and wait for the answer)\n * based on a material design that injected data and inherits from an [AbstractDialog]{@link AbstractDialogComponent}.\n */\n@Component({\n    selector: 'ncc-question-dialog-with-answer',\n    templateUrl: './prompt-dialog.component.html',\n    styleUrls: ['./prompt-dialog.component.scss']\n})\nexport class PromptDialogComponent extends AbstractDialogComponent<PromptDialogComponent> {\n    /** Set submit button to disabled or enabled according to the user answer. */\n    public disableButton = true;\n    public prompt: string;\n    public submitClick: boolean;\n\n    /**\n     * Only injecting.\n     * @param dialogRef Reference to a dialog opened via the MatDialog service.\n     * @param data Injected data that was passed in to a dialog.\n     */\n    constructor(public dialogRef: MatDialogRef<PromptDialogComponent, DialogResult>,\n                @Inject(MAT_DIALOG_DATA) public data: DialogData) {\n        super(dialogRef, data);\n    }\n\n    onClose(isSubmitted: boolean) {\n        this.dialogRef.close(isSubmitted ? {\n            prompt: this.prompt\n        } : {});\n    }\n\n}\n","<h1 mat-dialog-title>{{data.title}}</h1>\n\n<div mat-dialog-content class=\"dialog-container dialog-content-margin netgrif-input netgrif-input-fix\">\n    <span>{{data.content}}</span>\n    <br>\n    <mat-form-field class=\"dialog-prompt-margin\" appearance=\"outline\">\n        <mat-label>{{data.placeholder}}</mat-label>\n        <input matInput [(ngModel)]=\"prompt\" (ngModelChange)=\"disableButton = !prompt || prompt.trim().length === 0\">\n    </mat-form-field>\n</div>\n\n<mat-dialog-actions fxLayoutAlign=\"end\">\n    <button mat-button (click)=\"onClose(false)\">{{ 'dialog.close' | translate}}</button>\n    <button mat-flat-button color=\"primary\" [disabled]=\"disableButton\" (click)=\"onClose(true)\">{{ 'dialog.submit' | translate}}</button>\n</mat-dialog-actions>\n","import {Injectable} from '@angular/core';\nimport {ConfirmDialogComponent} from '../components/confirm-dialog/confirm-dialog.component';\nimport {AlertDialogComponent} from '../components/alert-dialog/alert-dialog.component';\nimport {PromptDialogComponent} from '../components/prompt-dialog/prompt-dialog.component';\nimport {DialogData} from '../models/DialogData';\nimport {DialogResult} from '../models/DialogResult';\nimport {MatDialog, MatDialogConfig, MatDialogRef} from '@angular/material/dialog';\n\n/**  Service to open own modal interacting dialog components based on Material Design via [MatDialog]{@link MatDialog} service. */\n@Injectable({\n    providedIn: 'root'\n})\nexport class DialogService {\n    /**\n     * Only inject service.\n     * @param dialog Service to open Material Design modal dialogs.\n     */\n    constructor(private dialog: MatDialog) {\n    }\n\n    /**\n     * Open the alert modal dialog and show his content.\n     * Alert dialog should be used to show the user a crucial message.\n     * @param title Dialog title.\n     * @param content Informs user about message.\n     * @param configMatDialog Extra configuration options.\n     * @returns Reference to the newly-opened alert dialog. When dialog closes an empty object is returned.\n     */\n    public openAlertDialog(title: string, content: string,\n                           configMatDialog?: MatDialogConfig<DialogData>): MatDialogRef<AlertDialogComponent, DialogResult> {\n        return this.dialog.open<AlertDialogComponent, DialogData, DialogResult>(AlertDialogComponent,\n            Object.assign({\n                data: {\n                    title,\n                    content\n                }\n            }, configMatDialog)\n        );\n    }\n\n    /**\n     * Open question model dialog with positive and negative answer button.\n     * @param title Dialog title.\n     * @param question Question forming the idea of the whole dialogue with the user.\n     * @param negativeChoiceLabel Negative answer label\n     * @param positiveChoiceLabel Positive answer label\n     * @param configMatDialog Extra configuration options.\n     * @returns Reference to the newly-opened question dialog. When dialog is closed made choice is returned.\n     */\n    openConfirmDialog(title: string, question: string, negativeChoiceLabel: string, positiveChoiceLabel: string,\n                      configMatDialog?: MatDialogConfig<DialogData>): MatDialogRef<ConfirmDialogComponent, DialogResult> {\n        return this.dialog.open<ConfirmDialogComponent, DialogData, DialogResult>(ConfirmDialogComponent,\n            Object.assign({\n                data: {\n                    title,\n                    content: question,\n                    negativeLabel: negativeChoiceLabel,\n                    positiveLabel: positiveChoiceLabel\n                }\n            }, configMatDialog)\n        );\n    }\n\n    /**\n     * Open question model dialog with answer from user as message response.\n     * @param title Dialog title.\n     * @param question Question forming the idea of the whole dialogue with the user.\n     * @param placeholder Label for answer input box.\n     * @param configMatDialog Extra configuration options.\n     * @returns Reference to the newly-opened question with answer dialog.\n     */\n    openPromptDialog(title: string, question: string, placeholder: string, configMatDialog?: MatDialogConfig<DialogData>) {\n        return this.dialog.open(PromptDialogComponent,\n            Object.assign({\n                data: {\n                    title,\n                    content: question,\n                    placeholder\n                }\n            }, configMatDialog)\n        );\n    }\n}\n","import {Component, Inject, Optional} from \"@angular/core\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {ButtonField, ButtonFieldValidation} from \"../models/button-field\";\nimport {take} from \"rxjs/operators\";\nimport {DialogService} from \"../../../dialog/services/dialog.service\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\n\n\n@Component({\n    selector: 'ncc-abstract-button-default-field',\n    template: ''\n})\nexport abstract class AbstractButtonDefaultFieldComponent extends AbstractBaseDataFieldComponent<ButtonField> {\n\n    constructor(protected _translate: TranslateService,\n                protected _dialogService: DialogService,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<ButtonField>) {\n        super(dataFieldPortalData);\n    }\n\n    public getErrorMessage() {\n        if (this.formControlRef.hasError(ButtonFieldValidation.REQUIRED)) {\n            return this._translate.instant('dataField.validations.required');\n        }\n    }\n\n    /**\n     * Function checks if button is icon type\n     * @returns true if component type is 'fab', 'minifab' or 'icon'\n     */\n    public isIconTypeButton(): boolean {\n        return this.dataField.getComponentType() === 'fab' || this.dataField.getComponentType() === 'minifab' || this.dataField.getComponentType() === 'icon';\n    }\n\n    /**\n     * This function depends on type of component, if had dialogText provided in component, then its open a dialog with that text\n     */\n    public resolveValue(): void {\n        if (!!this.dataField.component?.properties?.dialogText && this.dataField.component?.properties?.dialogTitle) {\n            const dialogRef = this._dialogService.openConfirmDialog(this.dataField.component.properties.dialogTitle,\n                this.dataField.component.properties.dialogText, this._translate.instant('dialog.close'),\n                this._translate.instant('dialog.submit'));\n            dialogRef.afterClosed().pipe(take(1)).subscribe(result => {\n                if (result?.confirmed) {\n                    this.formControlRef.setValue(this.formControlRef.value + 1);\n                }\n            });\n        } else {\n            this.formControlRef.setValue(this.formControlRef.value + 1);\n        }\n    }\n}\n","/**\n * This class wraps a `boolean` variable into an object, so it can be passed by reference rather than by value to other objects.\n */\nexport class WrappedBoolean {\n    public value: boolean;\n}\n","/**\n * Preferred layout of the displayed data field.\n *\n * `MATERIAL` - displays the material form field at 100% width of the available space.\n *\n * `NETGRIF` - displays the field at 100% width if the total width is bellow a given threshold (by default 250px).\n * Displays the field title on the left and the form filed on the right sharing the width 50:50 otherwise.\n * The form filed still uses material design with this setting.\n */\nexport enum TemplateAppearance {\n    MATERIAL = 'material',\n    NETGRIF = 'netgrif',\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class PaperViewService {\n    private _paperView: boolean;\n\n    constructor() {\n        const paper = localStorage.getItem('PaperView');\n        if (paper === null) {\n            this._paperView = false;\n            localStorage.setItem('PaperView', 'false');\n        } else {\n            if ( paper === 'true' ) {\n                this._paperView = true;\n            } else if ( paper === 'false' ) {\n                this._paperView = false;\n            } else {\n                this._paperView = false;\n                localStorage.setItem('PaperView', 'false');\n            }\n        }\n    }\n\n    set paperView(bool: boolean) {\n        this._paperView = bool;\n        localStorage.setItem('PaperView', `${bool}`);\n    }\n\n    get paperView(): boolean {\n        return this._paperView;\n    }\n}\n","import { Injectable, Injector, Type } from '@angular/core';\nimport {ComponentPortal} from '@angular/cdk/portal';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class ComponentRegistryService {\n\n    protected registry: Map<string, (injector: Injector) => ComponentPortal<any>>;\n    protected typeRegistry: Map<string, Type<any>>;\n\n    constructor() {\n        this.registry = new Map<string, (injector: Injector) => ComponentPortal<any>>();\n        this.typeRegistry = new Map<string, Type<any>>();\n    }\n\n    public register(component: string, factory: (injector: Injector) => ComponentPortal<any>): void {\n        this.registry.set(component, factory);\n    }\n\n    public registerType(key: string, type: Type<any>): void {\n        this.typeRegistry.set(key, type);\n    }\n\n    public contains(component: string): boolean {\n        return this.registry.has(component);\n    }\n\n    public get(component: string, injector?: Injector): ComponentPortal<any> {\n        if (!this.registry.has(component)) {\n            return undefined\n        }\n        return this.registry.get(component)(injector);\n    }\n\n    public getType(key: string): Type<any> {\n        if (!this.typeRegistry.has(key)) {\n            return undefined\n        }\n        return this.typeRegistry.get(key);\n    }\n}\n","import {Component, ElementRef, Injector, Input, OnInit, TemplateRef, ViewChild} from '@angular/core';\nimport {WrappedBoolean} from './models/wrapped-boolean';\nimport {DataField} from '../models/abstract-data-field';\nimport {TemplateAppearance} from '../models/template-appearance';\nimport {PaperViewService} from '../../navigation/quick-panel/components/paper-view.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {FormControl} from \"@angular/forms\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {ComponentRegistryService} from \"../../registry/component-registry.service\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../models/data-field-portal-data-injection-token\";\nimport {ButtonField} from '../button-field/models/button-field';\n\n/**\n * Provides a responsive layout to data fields where their appearance can change based on the width of space they have available.\n *\n * If the width of the available space is less than the `layoutChangeWidthBreakpoint` then the provided `dataFieldTemplate` is displayed at\n * 100% width. If the width is greater or equal to the breakpoint the datafield template occupies the right half and the left half contains\n * it's title.\n *\n * If the datafield's layout is set to `TemplateAppearance.MATERIAL` the field always occupies 100% of the available space\n * regardless of it's width.\n *\n * See {@link DataField} and {@link TemplateAppearance} for more information.\n */\n\n@Component({\n    selector: 'ncc-abstract-datafield-template',\n    template: ''\n})\nexport abstract class AbstractDataFieldTemplateComponent implements OnInit {\n\n    /**\n     * Content of the datafield that should be displayed in the template\n     */\n    @Input() public dataFieldTemplate: TemplateRef<any>;\n    /**\n     * If the available space has a width smaller that this breakpoint the datafield will fill 100% of the available space.\n     *\n     * The breakpoint is only taken into consideration if `TemplateAppearance.NETGRIF` is set on the data field.\n     *\n     * See [DataField.layout]{@link DataField#layout} for more information.\n     */\n    @Input() public layoutChangeWidthBreakpoint = 250;\n    /**\n     * Field offset defined by task\n     */\n    @Input() public offset = 0;\n\n    @Input() private _additionalFieldProperties: { [ k: string ]: string | number };\n\n    @ViewChild('dataFieldContainer') container: ElementRef;\n    protected _dataField: DataField<any>;\n    protected _isConfiguredNetgrifTemplate = true;\n    protected _isNetgrifTemplate = true;\n    protected _componentPortal: ComponentPortal<any>;\n\n    /**\n     * @ignore\n     * The value determines whether the layout should be \"small\" or not. Data field fills 100% of the width in \"small\" layout.\n     */\n    protected _showLargeLayout: WrappedBoolean = new WrappedBoolean();\n\n    protected constructor(protected _paperView: PaperViewService,\n                          protected _config: ConfigurationService,\n                          protected _componentRegistry: ComponentRegistryService,\n                          protected injector: Injector) {\n        const configuredTemplate = this._config.getDatafieldConfiguration();\n        this._isConfiguredNetgrifTemplate = configuredTemplate\n            && configuredTemplate.template\n            && configuredTemplate.template === TemplateAppearance.NETGRIF;\n    }\n\n    public ngOnInit() {\n        if (!!this._dataField && !!this._dataField.layout && !!this._dataField.layout.offset) {\n            this.offset += this._dataField.layout.offset;\n        }\n        this._showLargeLayout.value = this.evaluateTemplate();\n        this._dataField.resolveAppearance(this._config);\n    }\n\n    get showLargeLayout(): WrappedBoolean {\n        return this._showLargeLayout;\n    }\n\n    /**\n     * Datafield model object that should be displayed in the template\n     */\n    @Input() set dataField(dataField: DataField<any>) {\n        this._dataField = dataField;\n        if (this._dataField.layout && this._dataField.layout.template) {\n            this._isNetgrifTemplate = this._dataField.layout.template === TemplateAppearance.NETGRIF;\n        } else {\n            this._isNetgrifTemplate = this._isConfiguredNetgrifTemplate;\n        }\n        this._componentPortal = this.resolveComponentPortal(this.dataField, this.showLargeLayout, this.dataField.formControlRef, this.additionalFieldProperties)\n    }\n\n    get dataField(): DataField<any> {\n        return this._dataField;\n    }\n\n    get componentPortal(): ComponentPortal<any> {\n        return this._componentPortal;\n    }\n\n\n    get additionalFieldProperties(): {[k:string]: string | number} {\n        return this._additionalFieldProperties;\n    }\n\n    @Input()\n    set additionalFieldProperties(value: {[k:string]: string | number}) {\n        this._additionalFieldProperties = value;\n    }\n\n    /**\n     * Function that is called when the Component changes dimension and\n     * determines whether the \"small\" or \"large\" layout should be displayed.\n     * @param event - event containing the new width of this Component\n     */\n    public evaluateTemplateCondition(): boolean {\n        (this.container && this.container.nativeElement && this.container.nativeElement.offsetWidth) ?\n            this._showLargeLayout.value =\n                this.container.nativeElement.offsetWidth  >= this.layoutChangeWidthBreakpoint && this.evaluateTemplate() :\n            this._showLargeLayout.value = this.evaluateTemplate();\n        return this._showLargeLayout.value;\n    }\n\n\n    public hasComponent(): boolean {\n        return this._componentRegistry.contains(this.dataField.getTypedComponentType());\n    }\n\n    public resolveComponentPortal(dataField: DataField<any>, showLargeLayout: WrappedBoolean, formControlRef: FormControl, additionalFieldProperties?: {[k:string]: string | number}): ComponentPortal<any> {\n        if (this.hasComponent()) {\n            const portalInjector = Injector.create({\n                providers: [\n                    {\n                        provide: DATA_FIELD_PORTAL_DATA,\n                        useValue: {\n                            dataField: dataField,\n                            showLargeLayout: showLargeLayout,\n                            formControlRef: formControlRef,\n                            additionalFieldProperties\n                        } as DataFieldPortalData<any>\n                    }],\n                parent: this.injector\n            });\n            return this._componentRegistry.get(this.dataField.getTypedComponentType(), portalInjector);\n        }\n        return undefined;\n    }\n\n    /**\n     * @returns `false` if the data field uses the `TemplateAppearance.MATERIAL` and `true` otherwise.\n     */\n    protected evaluateTemplate(): boolean {\n        if (!this._dataField) {\n            return true;\n        }\n        return this._isNetgrifTemplate;\n    }\n\n    public isPaperView(): boolean {\n        return this._paperView.paperView;\n    }\n}\n","import {Component, Inject, Input, Optional} from '@angular/core';\nimport {DateField} from './models/date-field';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\nimport {AbstractDataFieldComponent} from \"../models/abstract-data-field-component\";\n\n/**\n * @deprecated as of v6.4.0\n * */\n@Component({\n    selector: 'ncc-abstract-date-field',\n    template: ''\n})\nexport abstract class AbstractDateFieldComponent extends AbstractDataFieldComponent{\n\n    @Input() public dataField: DateField;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n}\n","import {Behavior} from '../../models/behavior';\nimport {FormControl, ValidatorFn, Validators} from '@angular/forms';\nimport moment, {Moment} from 'moment';\nimport {Layout} from '../../models/layout';\nimport {Component} from '../../models/component';\nimport {DataField} from '../../models/abstract-data-field';\n\nexport enum AbstractTimeInstanceFieldValidation {\n    BETWEEN = 'between',\n    WORKDAY = 'workday',\n    WEEKEND = 'weekend',\n    REQUIRED = 'required',\n    VALID_BETWEEN = 'validBetween',\n    VALID_WORKDAY = 'validWorkday',\n    VALID_WEEKEND = 'validWeekend'\n}\n\nexport abstract class AbstractTimeInstanceField extends DataField<Moment> {\n\n    public min: Moment;\n    public max: Moment;\n\n    protected constructor(stringId: string, title: string, value: Moment, behavior: Behavior, placeholder?: string,\n                          description?: string, layout?: Layout, validations?: any, component?: Component, parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, component, parentTaskId);\n    }\n\n    public static isEqual(a: Moment, b: Moment, granularity?: moment.unitOfTime.StartOf): boolean {\n        return (!a && !b) || (!!a && !!b && a.isSame(b, granularity));\n    }\n\n    /**\n     * Parse date from string:\n     * date is string 'past' - return string 'past'\n     * date is string 'future' - return string 'future'\n     * date is string 'today'/'now' - return moment instance of current date/time\n     * date is string build by combination of 'today'/'now'+/-ISO8601 (eg. today-P1DT1H) - return parsed moment instance of date\n     * date is string of specific date - return moment instance of this specific date\n     * @param date - string that should be parsed\n     */\n    public static parseDate(date: string) {\n        if (date.includes('past')) {\n            return 'past';\n        } else if (date.includes('future')) {\n            return 'future';\n        } else if (date.includes('today') || date.includes('now')) {\n            if (date.includes('+') || date.includes('-')) {\n                const difference = date.includes('+') ? date.split('+')[1] : date.split('-')[1];\n                if (date.includes('today')) {\n                    return date.includes('+') ? moment().startOf('day').add(moment.duration(difference))\n                        : moment().startOf('day').subtract(moment.duration(difference));\n                }\n                if (date.includes('now')) {\n                    return date.includes('+') ? moment().add(moment.duration(difference)) : moment().subtract(moment.duration(difference));\n                }\n            }\n            return date.includes('today') ? moment().startOf('day') : moment();\n        } else {\n            const newDate = moment(date);\n            return newDate.isValid ? newDate : null;\n        }\n    }\n\n    protected resolveValidations(): Array<ValidatorFn> {\n        const result = [];\n\n        this.validations.forEach(item => {\n            if (item.validationRule.includes(AbstractTimeInstanceFieldValidation.BETWEEN)) {\n                const tmp = item.validationRule.split(' ');\n                const ranges = tmp[1].split(',');\n\n                const start = AbstractTimeInstanceField.parseDate(ranges[0]);\n                const end = AbstractTimeInstanceField.parseDate(ranges[1]);\n\n                if (start && end) {\n                    if (start === 'past' && moment(end).isValid()) {\n                        result.push(this.validFromPast(moment(end)));\n                        this.max = moment(end);\n                    } else if (end === 'future' && moment(start).isValid()) {\n                        result.push(this.validToFuture(moment(start)));\n                        this.min = moment(start);\n                    } else if (moment(start).isValid() && moment(end).isValid()) {\n                        result.push(this.validBetween(moment(start), moment(end)));\n                        this.min = moment(start);\n                        this.max = moment(end);\n                    }\n                }\n            } else if (item.validationRule.includes(AbstractTimeInstanceFieldValidation.WORKDAY)) {\n                result.push(this.validWorkday);\n            } else if (item.validationRule.includes(AbstractTimeInstanceFieldValidation.WEEKEND)) {\n                result.push(this.validWeekend);\n            }\n        });\n\n        return result;\n    }\n\n    protected validFromPast(range: Moment): ValidatorFn {\n        return (fc: FormControl): { [key: string]: any } | null => fc.value > range ? {validBetween: true} : null;\n    }\n\n    protected validToFuture(range: Moment): ValidatorFn {\n        return (fc: FormControl): { [key: string]: any } | null => fc.value < range ? {validBetween: true} : null;\n    }\n\n    protected validBetween(first: Moment, second: Moment): ValidatorFn {\n        return (fc: FormControl): { [key: string]: any } | null => fc.value < first || fc.value > second ? {validBetween: true} : null;\n    }\n\n    protected validWorkday(fc: FormControl) {\n        const dayOfWeek = !!fc.value ? fc.value.isoWeekday() : null;\n        return dayOfWeek === 6 || dayOfWeek === 7 ? {validWorkday: true} : null;\n    }\n\n    protected validWeekend(fc: FormControl) {\n        const dayOfWeek = !!fc.value ? fc.value.isoWeekday() : null;\n        return dayOfWeek >= 1 && dayOfWeek <= 5 ? {validWeekend: true} : null;\n    }\n}\n","import {AbstractTimeInstanceField, AbstractTimeInstanceFieldValidation} from './models/abstract-time-instance-field';\nimport {TranslateService} from '@ngx-translate/core';\nimport moment, {Moment} from 'moment';\nimport {AbstractBaseDataFieldComponent} from \"../base-component/abstract-base-data-field.component\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../models/data-field-portal-data-injection-token\";\nimport {Component, Inject, OnDestroy, Optional} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE} from '@angular/material/core';\nimport {LanguageService} from '../../translate/language.service';\nimport {Subscription} from 'rxjs';\n\n@Component({\n    selector: 'ncc-abstract-time-instance-field',\n    template: ''\n})\nexport abstract class AbstractTimeInstanceFieldComponent<T extends AbstractTimeInstanceField> extends AbstractBaseDataFieldComponent<T> implements OnDestroy {\n\n    protected _subLang: Subscription;\n    protected constructor(protected _translate: TranslateService,\n                          protected _adapter: DateAdapter<any>,\n                          @Inject(MAT_DATE_LOCALE) protected _locale: string,\n                          protected _languageService: LanguageService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<T>) {\n        super(dataFieldPortalData);\n        if (this._locale !== this._languageService.getLanguage()) {\n            this.setLangToAdapter(this._languageService.getLanguage());\n        }\n        this._subLang = this._languageService.getLangChange$().subscribe(lang => {\n            if (this._locale !== lang) {\n                this.setLangToAdapter(lang);\n            }\n        });\n    }\n    ngOnDestroy() {\n        super.ngOnDestroy();\n        this._subLang.unsubscribe();\n    }\n\n    public setLangToAdapter(lang: string) {\n        this._locale = lang\n        this._adapter.setLocale(this._locale);\n    }\n\n    public buildErrorMessage(dataField: AbstractTimeInstanceField) {\n        if (this.formControlRef.hasError(AbstractTimeInstanceFieldValidation.REQUIRED)) {\n            return this._translate.instant('dataField.validations.required');\n        }\n        if (this.formControlRef.hasError(AbstractTimeInstanceFieldValidation.VALID_BETWEEN)) {\n            const tmp = dataField.validations.find(value =>\n                value.validationRule.includes(AbstractTimeInstanceFieldValidation.BETWEEN)\n            ).validationRule.split(' ');\n            const parts = tmp[1].split(',');\n            let left = AbstractTimeInstanceField.parseDate(parts[0]);\n            let right = AbstractTimeInstanceField.parseDate(parts[1]);\n            left = moment.isMoment(left) ? (left as Moment).format('DD.MM.YYYY HH:mm:ss') : left;\n            right = moment.isMoment(right) ? (right as Moment).format('DD.MM.YYYY HH:mm:ss') : right;\n            if (left === 'past') {\n                return this.resolveErrorMessage(dataField, AbstractTimeInstanceFieldValidation.BETWEEN,\n                    this._translate.instant('dataField.validations.datePast', {right}));\n            }\n            if (right === 'future') {\n                return this.resolveErrorMessage(dataField, AbstractTimeInstanceFieldValidation.BETWEEN,\n                    this._translate.instant('dataField.validations.dateFuture', {left}));\n            }\n            return this.resolveErrorMessage(dataField, AbstractTimeInstanceFieldValidation.BETWEEN,\n                this._translate.instant('dataField.validations.dateRange', {left, right}));\n        }\n        if (this.formControlRef.hasError(AbstractTimeInstanceFieldValidation.VALID_WORKDAY)) {\n            return this.resolveErrorMessage(\n                dataField, AbstractTimeInstanceFieldValidation.WORKDAY, this._translate.instant('dataField.validations.workday')\n            );\n        }\n        if (this.formControlRef.hasError(AbstractTimeInstanceFieldValidation.VALID_WEEKEND)) {\n            return this.resolveErrorMessage(\n                dataField, AbstractTimeInstanceFieldValidation.WEEKEND, this._translate.instant('dataField.validations.weekend')\n            );\n        }\n        return '';\n    }\n\n    protected resolveErrorMessage(dataField: AbstractTimeInstanceField, search: string, generalMessage: string) {\n        const validation = dataField.validations.find(value => value.validationRule.includes(search));\n        if (validation.validationMessage && validation.validationMessage !== '') {\n            return validation.validationMessage;\n        }\n        return generalMessage;\n    }\n\n}\n","import {Component, Inject, Optional} from \"@angular/core\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {DateField} from \"../models/date-field\";\nimport {\n    AbstractTimeInstanceFieldComponent\n} from \"../../time-instance-abstract-field/abstract-time-instance-field.component\";\nimport {DateAdapter, MAT_DATE_LOCALE} from \"@angular/material/core\";\nimport {LanguageService} from \"../../../translate/language.service\";\n\n@Component({\n    selector: 'ncc-abstract-date-default-field',\n    template: ''\n})\nexport abstract class AbstractDateDefaultFieldComponent extends AbstractTimeInstanceFieldComponent<DateField> {\n\n    constructor(protected _translate: TranslateService,\n                protected _adapter: DateAdapter<any>,\n                @Inject(MAT_DATE_LOCALE) protected _locale: string,\n                protected _languageService: LanguageService,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<DateField>) {\n        super(_translate, _adapter, _locale, _languageService, dataFieldPortalData)\n    }\n\n    getErrorMessage() {\n        return this.buildErrorMessage(this.dataField);\n    }\n}\n","import {Component, Inject, Input, Optional} from '@angular/core';\nimport {DateTimeField} from './models/date-time-field';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\nimport {AbstractDataFieldComponent} from \"../models/abstract-data-field-component\";\n\n/**\n * @deprecated as of v6.4.0\n * */\n@Component({\n    selector: 'ncc-abstract-date-time-field',\n    template: ''\n})\nexport abstract class AbstractDateTimeFieldComponent extends AbstractDataFieldComponent {\n\n    @Input() public dataField: DateTimeField;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n}\n","import {Component, Inject, Optional} from \"@angular/core\";\nimport {\n    AbstractTimeInstanceFieldComponent\n} from \"../../time-instance-abstract-field/abstract-time-instance-field.component\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {DateTimeField} from \"../models/date-time-field\";\nimport {NgxMatDateAdapter} from \"@angular-material-components/datetime-picker\";\nimport {MAT_DATE_LOCALE} from \"@angular/material/core\";\nimport {LanguageService} from \"../../../translate/language.service\";\n\n@Component({\n    selector: 'ncc-abstract-date-time-default-field',\n    template: ''\n})\nexport abstract class AbstractDateTimeDefaultFieldComponent extends AbstractTimeInstanceFieldComponent<DateTimeField> {\n\n    constructor(protected _translate: TranslateService,\n                protected _adapter: NgxMatDateAdapter<any>,\n                @Inject(MAT_DATE_LOCALE) protected _locale: string,\n                protected _languageService: LanguageService,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<DateTimeField>) {\n        super(_translate, _adapter, _locale, _languageService, dataFieldPortalData)\n    }\n\n    getErrorMessage() {\n        return this.buildErrorMessage(this.dataField);\n    }\n}\n","import {Component, Inject, Input, Optional} from '@angular/core';\nimport {EnumerationField} from './models/enumeration-field';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {FormControl} from '@angular/forms';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\n\n/**\n * @deprecated\n * */\n@Component({\n    selector: 'ncc-abstract-enumeration-field',\n    template: ''\n})\nexport abstract class AbstractEnumerationFieldComponent extends AbstractDataFieldComponent {\n\n    @Input() dataField: EnumerationField;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n        this._formControl = new FormControl('');\n    }\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {EnumerationField} from '../models/enumeration-field';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\n\n@Component({\n    selector: 'ncc-abstract-enumeration-select-field',\n    template: ''\n})\nexport abstract class AbstractEnumerationSelectFieldComponent extends AbstractBaseDataFieldComponent<EnumerationField>{\n\n    constructor(@Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<EnumerationField>) {\n        super(dataFieldPortalData);\n    }\n}\n\n","import {Component, Inject, Optional} from '@angular/core';\nimport {EnumerationField} from '../models/enumeration-field';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\n\n@Component({\n    selector: 'ncc-abstract-enumeration-list-field',\n    template: ''\n})\nexport abstract class AbstractEnumerationListFieldComponent extends AbstractBaseDataFieldComponent<EnumerationField>{\n\n    constructor(@Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<EnumerationField>) {\n        super(dataFieldPortalData);\n    }\n\n    resetEnum(): void {\n        this.formControlRef.reset();\n    }\n}\n","/**\n * Contains types of renderable data fields.\n */\nexport enum FieldTypeResource {\n    BOOLEAN = 'boolean',\n    TEXT = 'text',\n    NUMBER = 'number',\n    ENUMERATION = 'enumeration',\n    MULTICHOICE = 'multichoice',\n    DATE = 'date',\n    DATE_TIME = 'dateTime',\n    USER = 'user',\n    USER_LIST = 'userList',\n    BUTTON = 'button',\n    FILE = 'file',\n    FILE_LIST = 'fileList',\n    ENUMERATION_MAP = 'enumeration_map',\n    MULTICHOICE_MAP = 'multichoice_map',\n    TASK_REF = 'taskRef',\n    CASE_REF = 'caseRef',\n    FILTER = 'filter',\n    I18N = 'i18n',\n    STRING_COLLECTION = 'stringCollection'\n}\n","import {DataField} from '../../models/abstract-data-field';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {AbstractControl, ValidationErrors, ValidatorFn, Validators} from '@angular/forms';\nimport {FieldTypeResource} from '../../../task-content/model/field-type-resource';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {Validation} from '../../models/validation';\nimport {Observable, Subject} from \"rxjs\";\nimport {debounceTime} from \"rxjs/operators\";\nimport {UpdateOnStrategy, UpdateStrategy} from \"../../models/update-strategy\";\n\nexport interface EnumerationFieldValue {\n    key: string;\n    value: string;\n}\n\nexport enum EnumerationFieldValidation {\n    WRONG_VALUE = 'wrongValue',\n    REQUIRED = 'required'\n}\n\nexport class EnumerationField extends DataField<string> {\n    protected REQUEST_DEBOUNCE_TIME = 600;\n    protected _updatedChoices: Subject<void>;\n\n    constructor(stringId: string, title: string, value: string,\n                protected _choices: Array<EnumerationFieldValue>, behavior: Behavior, placeholder?: string, description?: string,\n                layout?: Layout, protected readonly _fieldType = FieldTypeResource.ENUMERATION,\n                validations?: Array<Validation>, component?: Component, parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, component, parentTaskId);\n        this._updatedChoices = new Subject<void>();\n    }\n\n    set choices(choices: Array<EnumerationFieldValue>) {\n        this._choices = choices;\n    }\n\n    get choices(): Array<EnumerationFieldValue> {\n        return this._choices;\n    }\n\n    get fieldType(): FieldTypeResource {\n        return this._fieldType;\n    }\n\n    public getUpdateOnStrategy(): UpdateOnStrategy {\n        return UpdateStrategy.CHANGE;\n    }\n\n    public valueChanges(): Observable<string> {\n        return this._value.pipe(debounceTime(this.REQUEST_DEBOUNCE_TIME));\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.ENUMERATION + this.getComponentType();\n    }\n\n    get updatedChoices(): Observable<void> {\n        return this._updatedChoices.asObservable();\n    }\n\n    public updateChoice(): void {\n        this._updatedChoices.next();\n    }\n\n    public destroy(): void {\n        super.destroy();\n        this._updatedChoices.complete();\n    }\n\n    protected resolveFormControlValidators(): Array<ValidatorFn> {\n        const result = [];\n\n        if (this.behavior.required) {\n            result.push(Validators.required);\n        }\n        result.push((control: AbstractControl) => this.checkKey(control));\n\n        return result;\n    }\n\n    private checkKey(control: AbstractControl): ValidationErrors | null {\n        if (this._choices === undefined || this._choices.length === 0 || control.value === '' || control.value === undefined) {\n            return null;\n        }\n        return this._choices.find(choice => choice.key === control.value || control.value === null) ? null : {wrongValue: true};\n    }\n}\n","export enum EnumerationAutocompleteFilterProperty {\n    PREFIX='prefix',\n    SUBSTRING='substring'\n}\n","import {Component, ElementRef, Inject, OnDestroy, OnInit, Optional, ViewChild} from '@angular/core';\nimport {Observable, of} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\nimport {EnumerationField, EnumerationFieldValidation, EnumerationFieldValue} from '../models/enumeration-field';\nimport {TranslateService} from '@ngx-translate/core';\nimport {EnumerationAutocompleteFilterProperty} from \"./enumeration-autocomplete-filter-property\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\n\n@Component({\n    selector: 'ncc-abstract-enumeration-autocomplete-field',\n    template: ''\n})\nexport abstract class AbstractEnumerationAutocompleteSelectFieldComponent extends AbstractBaseDataFieldComponent<EnumerationField> implements OnInit, OnDestroy {\n\n    @ViewChild('input') text: ElementRef;\n    filteredOptions: Observable<Array<EnumerationFieldValue>>;\n\n    constructor(protected _translate: TranslateService,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<EnumerationField>) {\n        super(dataFieldPortalData);\n    }\n\n    ngOnInit() {\n        this.filteredOptions = this.formControlRef.valueChanges.pipe(\n            startWith(''),\n            map(value => this._filter(value))\n        );\n    }\n\n    ngOnDestroy(): void {\n        this.filteredOptions = undefined;\n    }\n\n    protected filterType(): string | undefined {\n        if (this.checkPropertyInComponent('filter')) {\n            return this.dataField.component.properties.filter;\n        }\n    }\n\n    protected _filter(value: string): Array<EnumerationFieldValue> {\n        let filterType = this.filterType()?.toLowerCase()\n        switch (filterType) {\n            case EnumerationAutocompleteFilterProperty.SUBSTRING:\n                return this._filterInclude(value);\n            case EnumerationAutocompleteFilterProperty.PREFIX:\n                return this._filterIndexOf(value);\n            default:\n                return this._filterIndexOf(value);\n        }\n    }\n\n    protected _filterInclude(value: string): Array<EnumerationFieldValue> {\n        const filterValue = value?.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n        return this.dataField.choices.filter(option =>\n            option.value.toLowerCase()\n                .normalize('NFD')\n                .replace(/[\\u0300-\\u036f]/g, '')\n                .includes(filterValue));\n    }\n\n\n    /**\n     * Function to filter out matchless options without accent and case-sensitive differences\n     * @param  value to compare matching options\n     * @return  return matched options\n     */\n    protected _filterIndexOf(value: string): Array<EnumerationFieldValue> {\n        const filterValue = value?.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n\n        return this.dataField.choices.filter(option => option.value.toLowerCase().normalize('NFD')\n            .replace(/[\\u0300-\\u036f]/g, '').indexOf(filterValue) === 0);\n    }\n\n    change() {\n        if (this.text.nativeElement.value !== undefined) {\n            this.filteredOptions = of(this._filter(this.text.nativeElement.value));\n        }\n    }\n\n    public renderSelection = (key) => {\n        if (key !== undefined && key !== '' && key !== null) {\n            if (this.dataField.choices.find(choice => choice.key === key)) {\n                return this.dataField.choices.find(choice => choice.key === key).value;\n            }\n        }\n        return key;\n    }\n\n    public buildErrorMessage() {\n        if (this.formControlRef.hasError(EnumerationFieldValidation.REQUIRED)) {\n            return this._translate.instant('dataField.validations.required');\n        }\n        if (this.formControlRef.hasError(EnumerationFieldValidation.WRONG_VALUE)) {\n            return this._translate.instant('dataField.validations.enumeration');\n        }\n    }\n}\n","import {\n    AfterViewChecked,\n    Component,\n    ElementRef,\n    Inject, OnDestroy,\n    OnInit,\n    Optional,\n    QueryList,\n    ViewChildren\n} from '@angular/core';\nimport {EnumerationField} from '../models/enumeration-field';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\nimport {Subscription} from 'rxjs';\n\n@Component({\n    selector: 'ncc-abstract-enumeration-stepper-field',\n    template: ''\n})\nexport abstract class AbstractEnumerationStepperFieldComponent extends AbstractBaseDataFieldComponent<EnumerationField> implements OnInit, AfterViewChecked, OnDestroy {\n\n    @ViewChildren('oneStep') steps: QueryList<ElementRef>;\n    public arrowStepper: boolean;\n    protected subComp: Subscription;\n\n    constructor(protected ref: ElementRef,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<EnumerationField>) {\n        super(dataFieldPortalData);\n        this.arrowStepper = false;\n    }\n\n    ngOnInit() {\n        this.arrowStepper = this.dataField.component?.properties?.arrowStepper === 'true';\n        this.subComp = this.dataField.componentChange$().subscribe(() => {\n            this.arrowStepper = this.dataField.component?.properties?.arrowStepper === 'true';\n        });\n    }\n\n    canShowDoneIcon(index: number): boolean {\n        return index <= this.dataField.choices.findIndex(choice => choice.key === this.dataField.value);\n    }\n\n    isSelected(key: string): boolean {\n        return key === this.dataField.value;\n    }\n\n    ngAfterViewChecked() {\n        if (!!this.steps && !!this.steps.toArray()) {\n            const width = this.ref.nativeElement.parentElement.offsetWidth;\n            const maxWidth = (width + (this.dataField.choices.length - 1) * 20) / this.dataField.choices.length;\n            this.steps.toArray().forEach(step => {\n                step.nativeElement.style.maxWidth = maxWidth >= 72 ? maxWidth + 'px' : '72px';\n            });\n        }\n    }\n\n    setStepperValue(key: string) {\n        if (!this.formControlRef.disabled) {\n            this.formControlRef.setValue(key);\n        }\n    }\n\n    public hasTitle(): boolean {\n        return this.dataField.title !== undefined && this.dataField.title !== '';\n    }\n\n    public resolveValue(key: string): string {\n        return this.dataField.choices.find(k => k.key === key)?.value;\n    }\n\n    ngOnDestroy() {\n        super.ngOnDestroy();\n        this.subComp.unsubscribe();\n    }\n}\n","import {DataField} from '../../models/abstract-data-field';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {Validation} from '../../models/validation';\n\nexport class CaseRefField extends DataField<Array<string>> {\n\n    constructor(stringId: string, title: string, initialValue: Array<string>, behavior: Behavior,\n                placeholder?: string, description?: string, layout?: Layout, validations?: Array<Validation>, component?: Component,\n                parentTaskId?: string) {\n        super(stringId, title, initialValue, behavior, placeholder, description, layout, validations, component, parentTaskId);\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.CASE_REF + this.getComponentType();\n    }\n}\n","import {InjectionToken} from '@angular/core';\nexport const NAE_DEFAULT_HEADERS = new InjectionToken<Array<string>>('NaeDefaultHeaders');\n","import {InjectionToken} from '@angular/core';\nimport {CaseRefField} from './case-ref-field';\n\nexport const NAE_CASE_REF_CREATE_CASE = new InjectionToken<boolean>('NaeCaseRefCreateCase');\nexport const NAE_CASE_REF_SEARCH = new InjectionToken<boolean>('NaeCaseRefSearch');\nexport const NAE_CASE_REF_DATAFIELD = new InjectionToken<CaseRefField>('NaeCaseRefDatafield');\n","import {InjectionToken} from '@angular/core';\nimport {BaseFilter} from './base-filter';\n\n/**\n * Provides the base filter of a {@link SearchService}\n */\nexport const NAE_BASE_FILTER = new InjectionToken<BaseFilter>('NaeBaseFilter');\n","import {MergeOperator} from './merge-operator';\nimport {TaskSearchRequestBody} from './task-search-request-body';\nimport {CaseSearchRequestBody} from './case-search-request-body';\nimport {FilterType} from './filter-type';\nimport {Params} from '../../resources/resource-provider.service';\n\n/**\n * Abstraction of backend search requests that defines a limited set of operations on them.\n */\nexport abstract class Filter {\n\n    /**\n     * If no name is provided the filter will be identified by it's ID when necessary.\n     * @param _id identifier of the filter\n     * @param _type type of resources that the filter can query\n     * @param _title human readable filter name\n     */\n    protected constructor(protected _id: string, protected readonly _type: FilterType, protected readonly _title: string = '') {\n    }\n\n    /**\n     * Unique filter identifier\n     */\n    public get id(): string {\n        return this._id;\n    }\n\n    public set id(id: string) {\n        this._id = id;\n    }\n\n    /**\n     * Determines the type of resource this Filter can filter.\n     */\n    public get type(): FilterType {\n        return this._type;\n    }\n\n    /**\n     * Human readable filter title.\n     *\n     * Defaults to empty string.\n     */\n    public get title(): string {\n        return this._title;\n    }\n\n    /**\n     * Creates a deep copy of the filter object.\n     * @returns deep copy of the filter object\n     */\n    public abstract clone(): Filter;\n\n    /**\n     * Combines two filters together with the given operator.\n     * @param filter filter that should be combined with this filter\n     * @param operator operator that is used to combine the two filters\n     * @returns a new filter that is the combination of this filter and the filter passed trough the argument.\n     * Library implementation always returns a {@link MergedFilter} object instance.\n     */\n    public abstract merge(filter: Filter, operator: MergeOperator): Filter;\n\n    /**\n     * @returns search request body specified by this filter. Type of the result is determined by the `type` of the Filter instance.\n     */\n    public abstract getRequestBody():\n        TaskSearchRequestBody | CaseSearchRequestBody | Array<TaskSearchRequestBody> | Array<CaseSearchRequestBody>;\n\n    /**\n     * @returns `true` if at least one of the filter bodies contains the `query` attribute. Returns `false` otherwise.\n     */\n    public abstract bodyContainsQuery(): boolean;\n\n    /**\n     * Returns the necessary request params for the filter. Default implementation returns an empty object.\n     * The params are added on top of the request when sending it to the backend by the respective service methods.\n     * @returns an empty object `{}`\n     */\n    public getRequestParams(): Params {\n        return {};\n    }\n\n    /**\n     * Creates a deep copy of a simple object.\n     * @param obj object that should be copied\n     * @returns a deep copy of the argument\n     */\n    protected deepCopy(obj: object): object {\n        return JSON.parse(JSON.stringify(obj));\n    }\n}\n","/**\n * Determines whether the combination of Filters is an union (AND) or an intersection (OR).\n *\n * See {@link MergedFilter} for more information.\n */\nexport enum MergeOperator {\n    AND = 'AND',\n    OR = 'OR',\n}\n","/**\n * Determines the type of resource the Filter can search for.\n *\n * See {@link Filter} for more information.\n */\nexport enum FilterType {\n    TASK = 'Task',\n    CASE = 'Case',\n}\n","import {Filter} from './filter';\nimport {MergeOperator} from './merge-operator';\nimport {TaskSearchRequestBody} from './task-search-request-body';\nimport {CaseSearchRequestBody} from './case-search-request-body';\nimport {FilterType} from './filter-type';\nimport {Params} from '../../resources/resource-provider.service';\nimport {MergedFilterParams} from './merged-filter-params';\n\n/**\n * Represents an union or an intersection of {@link SimpleFilter}s and allows limited manipulation with it.\n */\nexport class MergedFilter extends Filter {\n\n    /**\n     * @ignore\n     * Stores the underlying filter data\n     */\n    private readonly _filters: Array<CaseSearchRequestBody> | Array<TaskSearchRequestBody>;\n\n    /**\n     * Creates a filter with the provided body and the provided type\n     * @param filterBody the body of the new filter\n     * @param operator the merge operator that is used to combine the filters\n     * @param type the type of the new filter. Type must match the type of the body.\n     * @returns a filter with the given body, operator and type. `id` of the new filter is set to an empty string.\n     */\n    public static fromQuery(filterBody: Array<CaseSearchRequestBody> | Array<TaskSearchRequestBody>, operator: MergeOperator,\n                            type: FilterType): Filter {\n        return new MergedFilter('', type, filterBody, operator);\n    }\n\n    /**\n     * Creates a case filter with the provided body\n     * @param filterBody the body of the new filter\n     * @param operator the merge operator that is used to combine the filters\n     * @returns a case filter with the given body and operator. `id` of the new filter is set to an empty string.\n     */\n    public static fromCaseQuery(filterBody: Array<CaseSearchRequestBody>, operator: MergeOperator): Filter {\n        return MergedFilter.fromQuery(filterBody, operator, FilterType.CASE);\n    }\n\n    /**\n     * Creates a task filter with the provided body\n     * @param filterBody the body of the new filter\n     * @param operator the merge operator that is used to combine the filters\n     * @returns a task filter with the given body and operator. `id` of the new filter is set to an empty string.\n     */\n    public static fromTaskQuery(filterBody: Array<TaskSearchRequestBody>, operator: MergeOperator): Filter {\n        return MergedFilter.fromQuery(filterBody, operator, FilterType.TASK);\n    }\n\n    /**\n     * @param id identifier of the filter\n     * @param type type of resources that the filter can query\n     * @param filterBodies `Array` of search requests matching this filter's type\n     * @param _operator boolean operator that is used to combine the filters\n     * @param title human readable filter name\n     */\n    constructor(id: string, type: FilterType, filterBodies: Array<CaseSearchRequestBody> | Array<TaskSearchRequestBody>,\n                protected _operator: MergeOperator, title?: string) {\n        super(id, type, title);\n        this._filters = [];\n        filterBodies.forEach(body => {\n            this._filters.push(this.deepCopy(body));\n        });\n    }\n\n    public set operator(operator: MergeOperator) {\n        this._operator = operator;\n    }\n\n    public get operator(): MergeOperator {\n        return this._operator;\n    }\n\n    /**\n     * See [Filter.clone()]{@link Filter#clone}\n     */\n    clone(): Filter {\n        return new MergedFilter(this.id, this.type, this._filters, this._operator, this.title);\n    }\n\n    /**\n     * Filters that are merged must share the same type and the same merge operator.\n     *\n     * See [Filter.merge()]{@link Filter#merge} for information about parameters.\n     */\n    merge(filter: Filter, operator: MergeOperator): MergedFilter {\n        if (filter.type !== this.type) {\n            throw new Error('Can\\'t merge filters with different types');\n        }\n        if (this._operator !== operator || (filter instanceof MergedFilter && filter._operator !== this._operator)) {\n            throw new Error('Can\\'t merge filters with different merge operators');\n        }\n\n        const id = `${this.id}${operator === MergeOperator.AND ? '&' : '|'}${filter.id}`;\n\n        const combinedFilters: Array<CaseSearchRequestBody> | Array<TaskSearchRequestBody> = [];\n        combinedFilters.push(...this._filters);\n        const otherFilters = filter.getRequestBody();\n        if (Array.isArray(otherFilters)) {\n            combinedFilters.push(...otherFilters);\n        } else {\n            combinedFilters.push(otherFilters);\n        }\n\n        return new MergedFilter(id, this.type, combinedFilters, this._operator);\n    }\n\n    /**\n     * See [Filter.getRequestBody()]{@link Filter#getRequestBody}\n     */\n    getRequestBody(): Array<TaskSearchRequestBody> | Array<CaseSearchRequestBody> {\n        return this.deepCopy(this._filters) as Array<CaseSearchRequestBody> | Array<TaskSearchRequestBody>;\n    }\n\n    /**\n     * See [Filter.bodyContainsQuery()]{@link Filter#bodyContainsQuery}\n     */\n    bodyContainsQuery(): boolean {\n        return this._filters.some(f => f.query !== undefined && f.query !== null);\n    }\n\n    /**\n     * Returns the necessary request params for the filter.\n     * @returns params with `operation` set to either `AND` or `OR` based on this object's `_operator` property.\n     *\n     * See {@link MergedFilterParams} for more information.\n     */\n    getRequestParams(): MergedFilterParams & Params {\n        return {\n            operation: this._operator\n        };\n    }\n}\n","import {Filter} from './filter';\nimport {MergeOperator} from './merge-operator';\nimport {MergedFilter} from './merged-filter';\nimport {TaskSearchRequestBody} from './task-search-request-body';\nimport {CaseSearchRequestBody} from './case-search-request-body';\nimport {FilterType} from './filter-type';\n\n/**\n * Holds backend search request data and allows limited manipulation with it.\n */\nexport class SimpleFilter extends Filter {\n\n    /**\n     * @ignore\n     * Stores the underlying filter data\n     */\n    private readonly _filter: CaseSearchRequestBody | TaskSearchRequestBody;\n\n    /**\n     * Create an empty filter of provided type\n     * @param type type of resources that the filter can query\n     * @returns a filter with empty body of the provided type. `id` of the new filter is set to an empty string.\n     */\n    public static empty(type: FilterType): Filter {\n        return new SimpleFilter('', type, {});\n    }\n\n    /**\n     * Equivalent to calling `SimpleFilter.empty(FilterType.CASE)`.\n     * @returns a filter with empty body that can be used to search cases\n     */\n    public static emptyCaseFilter(): Filter {\n        return SimpleFilter.empty(FilterType.CASE);\n    }\n\n    /**\n     * Equivalent to calling `SimpleFilter.empty(FilterType.TASK)`.\n     * @returns a filter with empty body that can be used to search tasks\n     */\n    public static emptyTaskFilter(): Filter {\n        return SimpleFilter.empty(FilterType.TASK);\n    }\n\n    /**\n     * Creates a filter with the provided body and the provided type\n     * @param filterBody the body of the new filter\n     * @param type the type of the new filter. Type must match the type of the body.\n     * @returns a filter with the given body and type. `id` of the new filter is set to an empty string.\n     */\n    public static fromQuery(filterBody: CaseSearchRequestBody | TaskSearchRequestBody, type: FilterType): Filter {\n        return new SimpleFilter('', type, filterBody);\n    }\n\n    /**\n     * Creates a case filter with the provided body\n     * @param filterBody the body of the new filter\n     * @returns a case filter with the given body. `id` of the new filter is set to an empty string.\n     */\n    public static fromCaseQuery(filterBody: CaseSearchRequestBody): Filter {\n        return SimpleFilter.fromQuery(filterBody, FilterType.CASE);\n    }\n\n    /**\n     * Creates a task filter with the provided body\n     * @param filterBody the body of the new filter\n     * @returns a task filter with the given body. `id` of the new filter is set to an empty string.\n     */\n    public static fromTaskQuery(filterBody: TaskSearchRequestBody): Filter {\n        return SimpleFilter.fromQuery(filterBody, FilterType.TASK);\n    }\n\n    /**\n     * @param id identifier of the filter\n     * @param type type of resources that the filter can query\n     * @param filterBody search request matching this filter's `type`\n     * @param title human readable filter name\n     */\n    constructor(id: string, type: FilterType, filterBody: CaseSearchRequestBody | TaskSearchRequestBody, title?: string) {\n        super(id, type, title);\n        this._filter = this.deepCopy(filterBody);\n    }\n\n    /**\n     * See [Filter.clone()]{@link Filter#clone}\n     */\n    clone(): Filter {\n        return new SimpleFilter(this.id, this.type, this._filter, this.title);\n    }\n\n    /**\n     * See [Filter.merge()]{@link Filter#merge}\n     */\n    merge(filter: Filter, operator: MergeOperator): MergedFilter {\n        const temp = new MergedFilter(this.id, this.type, [this._filter], operator, this.title);\n        return temp.merge(filter, operator);\n    }\n\n    /**\n     * See [Filter.bodyContainsQuery()]{@link Filter#bodyContainsQuery}\n     */\n    bodyContainsQuery(): boolean {\n        return this._filter.query !== undefined && this._filter.query !== null;\n    }\n\n    /**\n     * See [Filter.getRequestBody()]{@link Filter#getRequestBody}\n     */\n    getRequestBody(): TaskSearchRequestBody | CaseSearchRequestBody {\n        return this.deepCopy(this._filter) as CaseSearchRequestBody | TaskSearchRequestBody;\n    }\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const NAE_VIEW_ID = new InjectionToken<string>('NaeViewId');\nexport const NAE_VIEW_ID_SEGMENT = new InjectionToken<string>('NaeViewIdSegment');\n","import {Inject, Injectable, Injector, Optional, SkipSelf} from '@angular/core';\nimport {NAE_VIEW_ID_SEGMENT} from '../models/view-id-injection-tokens';\n\n@Injectable()\nexport class ViewIdService {\n\n    public static readonly VIEW_ID_SEGMENT_SEPARATOR = '-';\n\n    protected _viewId: string;\n\n    constructor(@Optional() @SkipSelf() parentInjector: Injector, @Inject(NAE_VIEW_ID_SEGMENT) idSegment: string) {\n        this._viewId = '';\n        if (parentInjector !== null) {\n            const parentIdService = parentInjector.get(ViewIdService, null);\n            if (parentIdService !== null) {\n                this._viewId = parentIdService.viewId + ViewIdService.VIEW_ID_SEGMENT_SEPARATOR;\n            }\n        }\n        this._viewId += idSegment;\n    }\n\n    public get viewId(): string {\n        return this._viewId;\n    }\n}\n","import {AbstractBaseDataFieldComponent} from '../../base-component/abstract-base-data-field.component';\nimport {CaseRefField} from './case-ref-field';\nimport { Inject, Injector, Optional, Type} from '@angular/core';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from '../../models/data-field-portal-data-injection-token';\nimport {CaseSearchRequestBody} from '../../../filter/models/case-search-request-body';\nimport {NAE_DEFAULT_HEADERS} from '../../../header/models/default-headers-token';\nimport {NAE_CASE_REF_CREATE_CASE, NAE_CASE_REF_DATAFIELD, NAE_CASE_REF_SEARCH} from './case-ref-injection-tokens';\nimport {NAE_BASE_FILTER} from '../../../search/models/base-filter-injection-token';\nimport {SimpleFilter} from '../../../filter/models/simple-filter';\nimport {BaseFilter} from '../../../search/models/base-filter';\nimport {NAE_VIEW_ID_SEGMENT} from '../../../user/models/view-id-injection-tokens';\nimport {ViewIdService} from '../../../user/services/view-id.service';\nimport {DataField} from '../../models/abstract-data-field';\n\nexport abstract class AbstractCaseRefBaseFieldComponent<T extends DataField<unknown>> extends AbstractBaseDataFieldComponent<T> {\n\n    public componentPortal: ComponentPortal<any>;\n\n    protected constructor(protected injector: Injector,\n                          protected caseViewType: Type<any>,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<T>) {\n        super(dataFieldPortalData);\n    }\n\n    createFilter(filterValue: string | string[]) {\n        let portalInjector;\n        const filterProperty: boolean = this.dataField?.component?.properties?.filter === 'true';\n        let query: CaseSearchRequestBody;\n        if (filterProperty) {\n            query = JSON.parse(this.dataField?.component?.properties?.filterQuery) as CaseSearchRequestBody;\n        }\n        let providers = [\n            {\n                provide: NAE_DEFAULT_HEADERS, useValue: this.dataField.component?.properties?.headers?.split(',')\n            },\n            {\n                provide: NAE_CASE_REF_CREATE_CASE, useValue: this.dataField.component?.properties?.createCase === 'true'\n            },\n            {\n                provide: NAE_CASE_REF_SEARCH, useValue: this.dataField.component?.properties?.search === 'true'\n            },\n            {\n                provide: NAE_BASE_FILTER,\n                useValue: { filter: SimpleFilter.fromCaseQuery((filterProperty && query ? query : {stringId: filterValue})) } as BaseFilter\n            },\n            {\n                provide: NAE_VIEW_ID_SEGMENT,\n                useValue: this.dataField.parentCaseId + '_' + this.dataField.parentTaskId + '_' + this.dataField.stringId\n            },\n            { provide: ViewIdService, useClass: ViewIdService }\n        ];\n        if (this.dataField instanceof CaseRefField) {\n            providers.push({\n                provide: NAE_CASE_REF_DATAFIELD,\n                useValue: this.dataField\n            })\n        }\n        portalInjector = Injector.create({\n            providers,\n            parent: this.injector\n        });\n        this.componentPortal = new ComponentPortal(this.caseViewType, null, portalInjector);\n    }\n}\n\n","import {AfterViewInit, Component, Inject, Injector, OnDestroy, Optional, Type} from \"@angular/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {EnumerationField} from '../models/enumeration-field';\nimport {Subscription} from 'rxjs';\nimport {AbstractCaseRefBaseFieldComponent} from '../../case-ref-field/model/abstract-case-ref-base-field-component';\n\n@Component({\n    selector: 'ncc-abstract-case-ref-default',\n    template: ''\n})\nexport abstract class AbstractEnumerationCaseRefComponent extends AbstractCaseRefBaseFieldComponent<EnumerationField> implements AfterViewInit, OnDestroy {\n\n    protected _sub: Subscription;\n    protected _subComp: Subscription;\n\n    protected constructor(protected injector: Injector,\n                          protected caseViewType: Type<any>,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<EnumerationField>) {\n        super(injector, caseViewType, dataFieldPortalData);\n    }\n\n    ngAfterViewInit(): void {\n        this.callCreateFilter();\n        this._sub = this.dataField.updatedChoices.subscribe(() => {\n            this.callCreateFilter();\n        });\n        this._subComp = this.dataField.componentChange$().subscribe(() => {\n            this.callCreateFilter();\n        });\n    }\n\n    protected callCreateFilter() {\n        this.createFilter(this.dataField.choices.length > 0 ? this.dataField.choices.map(value => value.key) : '');\n    }\n\n    ngOnDestroy() {\n        super.ngOnDestroy();\n        this._sub.unsubscribe();\n        this._subComp.unsubscribe();\n    }\n\n}\n","import {\n    Component,\n    Inject, Input,\n    Optional,\n} from '@angular/core';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\n\n/**\n * @deprecated\n * */\n/**\n * Component that is created in the body of the task panel accord on the Petri Net, which must be bind properties.\n */\n@Component({\n    selector: 'ncc-abstract-file-field',\n    template: ''\n})\nexport abstract class AbstractFileFieldComponent extends AbstractDataFieldComponent  {\n\n    @Input() taskId: string;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n}\n","import {DataField} from '../../models/abstract-data-field';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {FileFieldValue} from './file-field-value';\nimport {Observable, Subject} from 'rxjs';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {FormControl} from '@angular/forms';\nimport {Validation} from '../../models/validation';\nimport {ChangedFieldsMap} from '../../../event/services/interfaces/changed-fields-map';\nimport {distinctUntilChanged} from 'rxjs/operators';\n\n/**\n * Supported types of files a user can select through a file picker.\n */\nexport enum FileUploadMIMEType {\n    IMAGE = 'image/*',\n    VIDEO = 'video/*',\n    AUDIO = 'audio/*',\n    PDF = '.pdf',\n    JPG_JPEG = '.jpg,.jpeg',\n    XML = '.xml',\n    DOC_DOCX = '.doc,.docx',\n    XLS_XLSX = '.xls,.xlsx'\n}\n\n/**\n * Supported types for file preview\n */\nexport enum FilePreviewType {\n    pdf,\n    jpg,\n    jpeg,\n    png\n}\n\n/**\n * Extended structure for file by name and extension.\n */\nexport interface FileUploadDataModel {\n    file: File;\n    name: string;\n    extension: string;\n}\n\n/**\n * Holds information represent file field implements in Petri Net\n */\nexport class FileField extends DataField<FileFieldValue> {\n    /**\n     * Specifies the size of all uploaded files in bytes.\n     *\n     * It is an indicator for checking the oversized size in the Petri Net.\n     */\n    public filesSize = 0;\n\n    /**\n     * Used to forward the result of the upload file backend call to the task content\n     */\n    private _changedFields$: Subject<ChangedFieldsMap>;\n\n    public downloaded: boolean;\n\n    set value(value: FileFieldValue) {\n        if (!this.valueEquality(this._value.getValue(), value) && !this.reverting) {\n            this.changed = true;\n            this.waitingForResponse = true;\n            this.resolvePrevValue(value ?? {});\n        }\n        this._value.next(value ?? {});\n        this.reverting = false;\n    }\n\n    get value(): FileFieldValue {\n        return this._value.getValue();\n    }\n\n    get updated(): Observable<void> {\n        return this._update.asObservable();\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.FILE + this.getComponentType();\n    }\n\n    public valueWithoutChange(value: FileFieldValue) {\n        this.changed = false;\n        this._value.next(value ?? {});\n    }\n\n    /**\n     * Create new instance for file field with all his properties.\n     *\n     * Placeholder is a substitute for the value name if not set value.\n     */\n    constructor(stringId: string, title: string, behavior: Behavior, value?: FileFieldValue, placeholder?: string, description?: string,\n                layout?: Layout, private _maxUploadSizeInBytes?: number,\n                private _allowTypes?: string | FileUploadMIMEType | Array<FileUploadMIMEType>,\n                validations?: Array<Validation>, component?: Component, parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, component, parentTaskId);\n        this._changedFields$ = new Subject<ChangedFieldsMap>();\n    }\n\n    get maxUploadSizeInBytes(): number {\n        return this._maxUploadSizeInBytes;\n    }\n\n    get allowTypes(): string {\n        return this._allowTypes instanceof Array ? this._allowTypes.toString() : this._allowTypes;\n    }\n\n    get changedFields$(): Observable<ChangedFieldsMap> {\n        return this._changedFields$.asObservable();\n    }\n\n    public emitChangedFields(change: ChangedFieldsMap): void {\n        this._changedFields$.next(change);\n    }\n\n    protected valueEquality(a: FileFieldValue, b: FileFieldValue): boolean {\n        let file = JSON.stringify(a) === JSON.stringify(b);\n        if (a && a.file && b && b.file) {\n            file = a.file.name === b.file.name;\n        }\n        return (!a && !b) || (!!a && !!b && a.name === b.name && file);\n    }\n\n    public registerFormControl(formControl: FormControl): void {\n        if (this.initialized) {\n            throw new Error('Data field can be initialized only once!'\n                + ' Disconnect the previous form control before initializing the data field again!');\n        }\n        this.formControlRef = formControl;\n        formControl.setValidators(this.resolveFormControlValidators());\n\n        this._myValueSubscription = this._value.pipe(\n            distinctUntilChanged(this.valueEquality)\n        ).subscribe(newValue => {\n            this.valid = this._determineFormControlValidity(formControl);\n            formControl.setValue(newValue?.name ?? '');\n            this.update();\n        });\n\n        this.updateFormControlState(formControl);\n        this._initialized$.next(true);\n        this.changed = false;\n        this.waitingForResponse = false;\n    }\n\n    protected updateFormControlState(formControl: FormControl): void {\n        this.subscribeToInnerSubjects(formControl);\n        this.update();\n    }\n}\n","export const PREVIEW = 'preview';\n\nexport const PREVIEW_BUTTON = 'preview_button';\n\nexport const FILE_FIELD_HEIGHT = 75;\n\nexport const FILE_FIELD_PADDING = 16;\n","import {Component, ElementRef, Inject, Input, Optional, ViewChild} from '@angular/core';\nimport {AbstractBaseDataFieldComponent} from '../base-component/abstract-base-data-field.component';\nimport {FileField, FileUploadMIMEType} from '../file-field/models/file-field';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from './data-field-portal-data-injection-token';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {FileListField} from '../file-list-field/models/file-list-field';\n\n@Component({\n    selector: 'ncc-abstract-file-field-default-component',\n    template: ''\n})\nexport abstract class AbstractFileFieldDefaultComponent<T extends FileField | FileListField> extends AbstractBaseDataFieldComponent<T> {\n\n    private labelWidth: number;\n    public cutProperty: string;\n    /**\n     * Task mongo string id is binding property from parent component.\n     */\n    @Input() public taskId: string;\n    /**\n     * File picker element reference from component template that is initialized after view init.\n     */\n    @ViewChild('fileUploadInput') public fileUploadEl: ElementRef<HTMLInputElement>;\n\n    protected constructor(protected _log: LoggerService,\n                          protected _snackbar: SnackBarService,\n                          protected _translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<T>) {\n        super(dataFieldPortalData);\n    }\n\n    protected checkAllowedTypes(): boolean {\n        const files = this.fileUploadEl?.nativeElement?.files;\n        let bool: boolean = true;\n        for (let i = 0; i < files?.length; i++) {\n            if (!this.checkTypes(files.item(i).type)) {\n                this._log.error('File ' + files.item(i).name + ' cannot be uploaded. Its type is not allowed');\n                this._snackbar.openErrorSnackBar(this._translate.instant('dataField.file.notAllowed', {fileName: files.item(i).name}));\n                bool = false;\n            }\n        }\n        if (!bool) {\n            this.fileUploadEl.nativeElement.value = '';\n        }\n        return bool;\n    }\n\n    protected checkTypes(itemType: string) {\n        if (this.dataField.allowTypes === undefined || this.dataField.allowTypes === null) {\n            this._log.debug(`Types are not provided, returning true`);\n            return true;\n        }\n        const type = itemType.includes(\"/\") ? itemType.split(\"/\")[1] : itemType;\n        if (this.dataField.allowTypes.includes(type)) {\n            return true;\n        }\n        if (this.dataField.allowTypes.includes(FileUploadMIMEType.IMAGE) && itemType.includes(\"image/\")) {\n            return true;\n        }\n        if (this.dataField.allowTypes.includes(FileUploadMIMEType.VIDEO) && itemType.includes(\"video/\")) {\n            return true;\n        }\n        if (this.dataField.allowTypes.includes(FileUploadMIMEType.AUDIO) && itemType.includes(\"audio/\")) {\n            return true;\n        }\n        return false;\n    }\n\n    public getCutProperty(label): string {\n        if (this.labelWidth !== label.offsetWidth) {\n            this.labelWidth = label.offsetWidth;\n            const calculatedWidth = 'calc(0.5em + ' + label.offsetWidth / 4 * 3 + 'px)';\n            this.cutProperty = `polygon(0 0, 0 100%, 100% 100%, 100% 0%, ${calculatedWidth} 0, ${calculatedWidth} 3px, 0.5em 3px, 0.5em 0)`;\n        }\n        return this.cutProperty;\n    }\n\n    protected resolveParentTaskId(): string {\n        return !!this.dataField.parentTaskId ? this.dataField.parentTaskId : this.taskId;\n    }\n\n    protected resolveMaxSizeMessage() {\n        if (this.dataField?.component?.properties?.maxSizeMessage) {\n            this._snackbar.openErrorSnackBar(this._translate.instant(this.dataField?.component?.properties?.maxSizeMessage));\n        } else {\n            this._snackbar.openErrorSnackBar(\n                this._translate.instant('dataField.snackBar.maxFilesSizeExceeded') + this.dataField.maxUploadSizeInBytes * 0.000001 + 'MB'\n            );\n        }\n    }\n}\n","import {Behavior} from '../../models/behavior';\nimport {FormControl, ValidatorFn, Validators} from '@angular/forms';\nimport {Layout} from '../../models/layout';\nimport {Validation} from '../../models/validation';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {DataField} from '../../models/abstract-data-field';\n\nexport enum TextFieldView {\n    DEFAULT = 'default',\n    TEXTAREA = 'textarea',\n    RICHTEXTAREA = 'richtextarea',\n    HTMLTEXTAREA = 'htmltextarea'\n}\n\n/**\n * A collection of Text field component names supported by the application engine.\n */\nexport enum TextFieldComponent {\n    PASSWORD = 'password',\n    TEXT_AREA = 'textarea',\n    RICH_TEXT_AREA = 'richtextarea',\n    HTML_TEXT_AREA = 'htmltextarea',\n    DASHBOARD_LINE_CHART = 'dashboard_line_chart',\n    DASHBOARD_PIE_CHART = 'dashboard_pie_chart',\n    DASHBOARD_BAR_CHART = 'dashboard_bar_chart',\n    DASHBOARD_IFRAME = 'dashboard_iframe',\n    DASHBOARD_PORTAL = 'dashboard_portal',\n}\n\nexport enum TextAreaHeight {\n    OUTLINE = 20,\n    FILL_STANDARD = 22\n}\n\nexport enum TextFieldValidation {\n    REQUIRED = 'required',\n    MIN_LENGTH = 'minLength',\n    MAX_LENGTH = 'maxLength',\n    VALID_MIN_LENGTH = 'minlength',\n    VALID_MAX_LENGTH = 'maxlength',\n    PATTERN = 'pattern',\n    REGEX = 'regex',\n    VALID_TEL_NUMBER = 'validTelNumber',\n    TEL_NUMBER = 'telNumber',\n    EMAIL = 'email'\n}\n\nexport class TextField extends DataField<string> {\n    public static FIELD_HEIGHT = 67;\n\n    constructor(stringId: string, title: string, value: string, behavior: Behavior, placeholder?: string,\n                description?: string, layout?: Layout, validations?: Array<Validation>, _component?: Component,\n                parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, _component, parentTaskId);\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.TEXT + this.getComponentType();\n    }\n    protected resolveValidations(): Array<ValidatorFn> {\n        const result = [];\n\n        this.validations.forEach(item => {\n            if (item.validationRule.includes(TextFieldValidation.MIN_LENGTH)) {\n                const tmp = item.validationRule.split(' ');\n                if (tmp[1] !== undefined) {\n                    const length = parseInt(tmp[1], 10);\n                    if (!isNaN(length)) {\n                        result.push(Validators.minLength(length));\n                    }\n                }\n            } else if (item.validationRule.includes(TextFieldValidation.MAX_LENGTH)) {\n                const tmp = item.validationRule.split(' ');\n                if (tmp[1] !== undefined) {\n                    const length = parseInt(tmp[1], 10);\n                    if (!isNaN(length)) {\n                        result.push(Validators.maxLength(length));\n                    }\n                }\n            } else if (item.validationRule.includes(TextFieldValidation.REGEX)) {\n                if (item.validationRule.startsWith('regex ')) {\n                    result.push(Validators.pattern(new RegExp(item.validationRule.substring(6, item.validationRule.length ))));\n                } else if (item.validationRule.startsWith('regex(\"')) {\n                    result.push(Validators.pattern(new RegExp(item.validationRule.substring(7, item.validationRule.length - 2))));\n                }\n            } else if (item.validationRule.includes(TextFieldValidation.EMAIL)) {\n                result.push(Validators.email);\n            } else if (item.validationRule.includes(TextFieldValidation.TEL_NUMBER)) {\n                result.push(this.validTelNumber);\n            }\n        });\n\n        return result;\n    }\n\n    private validTelNumber(fc: FormControl) {\n        if (!(new RegExp(/^(?:\\+?(\\d{1,3}))?([-. (]*(\\d{3})[-. )]*)?((\\d{3})[-. ]*(\\d{2,4})(?:[-.x ]*(\\d+))?)$/).test(fc.value))) {\n            return ({validTelNumber: true});\n        } else {\n            return null;\n        }\n    }\n}\n","import {Behavior} from '../../models/behavior';\nimport {FormControl, ValidatorFn} from '@angular/forms';\nimport {Layout} from '../../models/layout';\nimport {Validation} from '../../models/validation';\nimport {FormatFilter} from '../../models/format-filter';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {DataField} from '../../models/abstract-data-field';\n\nexport enum NumberFieldValidation {\n    ODD = 'odd',\n    EVEN = 'even',\n    POSITIVE = 'positive',\n    NEGATIVE = 'negative',\n    DECIMAL = 'decimal',\n    IN_RANGE = 'inrange',\n    INF = 'inf',\n    REQUIRED = 'required',\n    VALID_ODD = 'validOdd',\n    VALID_EVEN = 'validEven',\n    VALID_POSITIVE = 'validPositive',\n    VALID_NEGATIVE = 'validNegative',\n    VALID_DECIMAL = 'validDecimal',\n    VALID_IN_RANGE = 'validInRange'\n}\n\nexport class NumberField extends DataField<number> {\n    public _formatFilter: FormatFilter;\n\n    constructor(stringId: string, title: string, value: number, behavior: Behavior, validations?: Array<Validation>, placeholder?: string,\n                description?: string, layout?: Layout, format?: FormatFilter, component?: Component, parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, component, parentTaskId);\n        this._formatFilter = format;\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.NUMBER + this.getComponentType();\n    }\n    protected resolveValidations(): Array<ValidatorFn> {\n        const result = [];\n\n        this.validations.forEach(item => {\n            if (item.validationRule.includes(NumberFieldValidation.ODD)) {\n                result.push(this.validOdd);\n            } else if (item.validationRule.includes(NumberFieldValidation.EVEN)) {\n                result.push(this.validEven);\n            } else if (item.validationRule.includes(NumberFieldValidation.POSITIVE)) {\n                result.push(this.validPositive);\n            } else if (item.validationRule.includes(NumberFieldValidation.NEGATIVE)) {\n                result.push(this.validNegative);\n            } else if (item.validationRule.includes(NumberFieldValidation.DECIMAL)) {\n                result.push(this.validDecimal);\n            } else if (item.validationRule.includes(NumberFieldValidation.IN_RANGE)) {\n                const tmp = item.validationRule.split(' ');\n                const ranges = tmp[1].split(',');\n                const first = parseFloat(ranges[0]);\n                const second = parseFloat(ranges[1]);\n\n                if (isNaN(first) && !isNaN(second) && ranges[0].includes(NumberFieldValidation.INF)) {\n                    result.push(this.validInRangeSmaller(second));\n                } else if (isNaN(second) && !isNaN(first) && ranges[1].includes(NumberFieldValidation.INF)) {\n                    result.push(this.validInRangeBigger(first));\n                } else if (!isNaN(first) && !isNaN(second)) {\n                    result.push(this.validInRange(first, second));\n                }\n            }\n        });\n\n        return result;\n    }\n\n    private validOdd(fc: FormControl) {\n        if ((fc.value % 2) === 0) { return ({validOdd: true}); } else { return (null); }\n    }\n\n    private validEven(fc: FormControl) {\n        if ((fc.value % 2) !== 0) { return ({validEven: true}); } else { return (null); }\n    }\n\n    private validPositive(fc: FormControl) {\n        if (fc.value < 0) { return ({validPositive: true}); } else { return (null); }\n    }\n\n    private validNegative(fc: FormControl) {\n        if (fc.value >= 0) { return ({validNegative: true}); } else { return (null); }\n    }\n\n    private validDecimal(fc: FormControl) {\n        if (fc.value % 1 !== 0) { return ({validDecimal: true}); } else { return (null); }\n    }\n\n    private validInRangeSmaller(range: number): ValidatorFn {\n        return (fc: FormControl): {[key: string]: any} | null => {\n            if (fc.value > range) { return ({validInRange: true}); } else { return (null); }\n        };\n    }\n\n    private validInRangeBigger(range: number): ValidatorFn {\n        return (fc: FormControl): {[key: string]: any} | null => {\n            if (fc.value < range) { return ({validInRange: true}); } else { return (null); }\n        };\n    }\n\n    private validInRange(first: number, second: number): ValidatorFn {\n        return (fc: FormControl): {[key: string]: any} | null => {\n            if (fc.value < first || fc.value > second) { return ({validInRange: true}); } else { return (null); }\n        };\n    }\n}\n","import {DataField} from '../../models/abstract-data-field';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {FieldTypeResource} from '../../../task-content/model/field-type-resource';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {Validation} from '../../models/validation';\nimport {UpdateOnStrategy, UpdateStrategy} from \"../../models/update-strategy\";\nimport {Observable, Subject} from 'rxjs';\n\nexport interface MultichoiceFieldValue {\n    key: string;\n    value: string;\n}\n\nexport class MultichoiceField  extends DataField<Array<string>> {\n\n    protected _updatedChoices: Subject<void>;\n\n    constructor(stringId: string, title: string, values: Array<string>, private _choices: Array<MultichoiceFieldValue>,\n                behavior: Behavior, placeholder?: string, description?: string, layout?: Layout,\n                private readonly _fieldType = FieldTypeResource.MULTICHOICE, validations?: Array<Validation>,\n                component?: Component, parentTaskId?: string) {\n        super(stringId, title, values, behavior, placeholder, description, layout, validations, component, parentTaskId);\n        this._updatedChoices = new Subject<void>();\n    }\n\n    set choices(choices: Array<MultichoiceFieldValue>) {\n        this._choices = choices;\n    }\n\n    get choices(): Array<MultichoiceFieldValue> {\n        return this._choices;\n    }\n\n    get fieldType(): FieldTypeResource {\n        return this._fieldType;\n    }\n\n    get updatedChoices(): Observable<void> {\n        return this._updatedChoices.asObservable();\n    }\n\n    public updateChoice(): void {\n        this._updatedChoices.next();\n    }\n\n    public getUpdateOnStrategy(): UpdateOnStrategy {\n        return UpdateStrategy.CHANGE;\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.MULTICHOICE + this.getComponentType();\n    }\n\n    protected valueEquality(a: Array<string>, b: Array<string>): boolean {\n        // we assume that multichoice options are always given in the same order\n        return (!a && !b) || (\n            !!a\n            && !!b\n            && a.length === b.length\n            && a.every( (element, index) => element === b[index])\n        );\n    }\n}\n","import {Behavior} from '../../models/behavior';\nimport {Moment} from 'moment';\nimport {AbstractTimeInstanceField} from '../../time-instance-abstract-field/models/abstract-time-instance-field';\nimport {Layout} from '../../models/layout';\nimport {Validation} from '../../models/validation';\nimport {Component, ComponentPrefixes} from '../../models/component';\n\nexport class DateField extends AbstractTimeInstanceField {\n\n    constructor(stringId: string, title: string, value: Moment, behavior: Behavior, placeholder?: string,\n                description?: string, layout?: Layout, validations?: Array<Validation>, component?: Component, parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, component, parentTaskId);\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.DATE + this.getComponentType();\n    }\n\n    protected valueEquality(a: Moment, b: Moment): boolean {\n        return AbstractTimeInstanceField.isEqual(a, b, 'day');\n    }\n}\n","import {Behavior} from '../../models/behavior';\nimport {Moment} from 'moment';\nimport {AbstractTimeInstanceField} from '../../time-instance-abstract-field/models/abstract-time-instance-field';\nimport {Layout} from '../../models/layout';\nimport {Validation} from '../../models/validation';\nimport {Component, ComponentPrefixes} from '../../models/component';\n\nexport class DateTimeField extends AbstractTimeInstanceField {\n\n    constructor(stringId: string, title: string, value: Moment, behavior: Behavior, placeholder?: string,\n                description?: string, layout?: Layout, validations?: Array<Validation>, component?: Component, parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, component, parentTaskId);\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.DATE_TIME + this.getComponentType();\n    }\n\n    protected valueEquality(a: Moment, b: Moment): boolean {\n        return AbstractTimeInstanceField.isEqual(a, b, 'minute');\n    }\n}\n","import {DataField} from '../../models/abstract-data-field';\nimport {UserValue} from './user-value';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {ProcessRole} from '../../../resources/interface/process-role';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {Validation} from '../../models/validation';\n\nexport class UserField extends DataField<UserValue> {\n    constructor(stringId: string, title: string, behavior: Behavior, value: UserValue, private _roles: Array<ProcessRole>,\n                placeholder?: string, description?: string, layout?: Layout, validations?: Array<Validation>, component?: Component,\n                parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, component, parentTaskId);\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.USER + this.getComponentType();\n    }\n    get roles(): Array<ProcessRole> {\n        return this._roles;\n    }\n\n    protected valueEquality(a: UserValue, b: UserValue): boolean {\n        return (!a && !b) || (!!a && !!b && a.email === b.email);\n    }\n}\n","/**\n * Used by [UserField]{@link UserField} and [UserAssignComponent]{@link AbstractUserAssignComponent}.\n *\n * Represents the value of the user.\n */\nexport class UserValue {\n    /**\n     * An object that represents the selected user in {@link UserField} and [UserAssignComponent]{@link AbstractUserAssignComponent}.\n     * @param _id the id of the selected user\n     * @param _name the first name of the selected user\n     * @param _surname the surname of the selected user\n     * @param _email email of the selected user\n     */\n    constructor(private _id: string, private _name: string, private _surname: string, private _email: string) {\n    }\n\n    get id(): string {\n        return this._id;\n    }\n\n    get name(): string {\n        return this._name;\n    }\n\n    get surname(): string {\n        return this._surname;\n    }\n\n    get fullName(): string {\n        return this._name + ' ' + this._surname;\n    }\n\n    get email(): string {\n        return this._email;\n    }\n}\n","import {Observable, Subject} from 'rxjs';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {FileUploadMIMEType} from '../../file-field/models/file-field';\nimport {DataField} from '../../models/abstract-data-field';\nimport {FileListFieldValue} from './file-list-field-value';\nimport {Validation} from '../../models/validation';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {FormControl} from '@angular/forms';\nimport {ChangedFieldsMap} from '../../../event/services/interfaces/changed-fields-map';\nimport {distinctUntilChanged} from 'rxjs/operators';\n\nexport enum FileListFieldValidation {\n    MAX_FILES = 'maxFiles'\n}\n\nexport class FileListField extends DataField<FileListFieldValue> {\n    /**\n     * Used to forward the result of the upload file backend call to the task content\n     */\n    private _changedFields$: Subject<ChangedFieldsMap>;\n    public downloaded: Array<string>;\n\n    set value(value: FileListFieldValue) {\n        if (!this.valueEquality(this._value.getValue(), value) && !this.reverting) {\n            this.changed = true;\n            this.waitingForResponse = true;\n            this.resolvePrevValue(value ?? {namesPaths: []});\n        }\n        this._value.next(value ?? {namesPaths: []});\n        this.reverting = false;\n    }\n\n    get value(): FileListFieldValue {\n        return this._value.getValue();\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.FILE_LIST + this.getComponentType();\n    }\n\n    public valueWithoutChange(value: FileListFieldValue) {\n        this.changed = false;\n        this._value.next(value ?? {namesPaths: []});\n    }\n\n    /**\n     * Create new instance for file field with all his properties.\n     *\n     * Placeholder is a substitute for the value name if not set value.\n     */\n    constructor(stringId: string, title: string, behavior: Behavior, value?: FileListFieldValue, placeholder?: string, description?: string,\n                layout?: Layout, validations?: Array<Validation>, private _maxUploadSizeInBytes?: number,\n                private _allowTypes?: string | FileUploadMIMEType | Array<FileUploadMIMEType>,\n                component?: Component, parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, component, parentTaskId);\n        this._changedFields$ = new Subject<ChangedFieldsMap>();\n        this.downloaded = new Array<string>();\n    }\n\n    get maxUploadSizeInBytes(): number {\n        return this._maxUploadSizeInBytes;\n    }\n\n    get allowTypes(): string {\n        return this._allowTypes instanceof Array ? this._allowTypes.toString() : this._allowTypes;\n    }\n\n    get changedFields$(): Observable<ChangedFieldsMap> {\n        return this._changedFields$.asObservable();\n    }\n\n    public emitChangedFields(change: ChangedFieldsMap): void {\n        this._changedFields$.next(change);\n    }\n\n    /**\n     * We assume that files are always given in the same order.\n     */\n    protected valueEquality(a: FileListFieldValue, b: FileListFieldValue): boolean {\n        let array = (JSON.stringify(a) === '{}' || !a.namesPaths || a.namesPaths.length === 0) &&\n            (JSON.stringify(b) === '{}' || !b.namesPaths || b.namesPaths.length === 0);\n        if (a && a.namesPaths && a.namesPaths.length !== 0 && b && b.namesPaths && b.namesPaths.length !== 0) {\n            array = a.namesPaths.every((element, index) => element.name === b.namesPaths[index].name);\n        }\n        return (!a && !b) || (!!a && !!b && array);\n    }\n\n    public registerFormControl(formControl: FormControl): void {\n        if (this.initialized) {\n            throw new Error('Data field can be initialized only once!'\n                + ' Disconnect the previous form control before initializing the data field again!');\n        }\n\n        this.formControlRef = formControl;\n        formControl.setValidators(this.resolveFormControlValidators());\n\n        this._myValueSubscription = this._value.pipe(\n            distinctUntilChanged(this.valueEquality)\n        ).subscribe(newValue => {\n            this.valid = this._determineFormControlValidity(formControl);\n            formControl.setValue(!newValue || !newValue.namesPaths ? '' : newValue.namesPaths.map(namePath => {\n                return namePath.name;\n            }).join('/'));\n            this.update();\n        });\n\n        this.updateFormControlState(formControl);\n        this._initialized$.next(true);\n        this.changed = false;\n        this.waitingForResponse = false;\n    }\n\n    protected updateFormControlState(formControl: FormControl): void {\n        this.subscribeToInnerSubjects(formControl);\n        this.update();\n    }\n}\n","import {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {Validation} from '../../models/validation';\nimport {TextField} from './text-field';\nimport {Observable} from 'rxjs';\nimport {debounceTime} from 'rxjs/operators';\nimport {Component} from '../../models/component';\n\nexport class TextAreaField extends TextField {\n    private SEARCH_DEBOUNCE_TIME = 600;\n\n    constructor(stringId: string, title: string, value: string, behavior: Behavior, placeholder?: string, description?: string,\n                layout?: Layout, validations?: Array<Validation>, component?: Component, parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, component, parentTaskId);\n    }\n\n    public valueChanges(): Observable<string> {\n        return this._value.pipe(debounceTime(this.SEARCH_DEBOUNCE_TIME));\n    }\n}\n","import {DataField} from '../../models/abstract-data-field';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {Validation} from '../../models/validation';\nimport {TaskRefDashboardTile} from './task-ref-dashboard-tile';\n\nexport class TaskRefField extends DataField<Array<string>> {\n\n    protected _dashboardTiles?: Array<TaskRefDashboardTile>;\n    private _dashboardRows?: number;\n    private _dashboardCols?: number;\n\n    constructor(stringId: string, title: string, initialValue: Array<string>, behavior: Behavior,\n                placeholder?: string, description?: string, layout?: Layout, validations?: Array<Validation>, component?: Component,\n                parentTaskId?: string) {\n        super(stringId, title, initialValue, behavior, placeholder, description, layout, validations, component, parentTaskId);\n    }\n\n    get dashboardTiles(): Array<TaskRefDashboardTile> {\n        return this._dashboardTiles;\n    }\n\n    set dashboardTiles(value: Array<TaskRefDashboardTile>) {\n        this._dashboardTiles = value;\n    }\n\n    get dashboardRows(): number {\n        return this._dashboardRows;\n    }\n\n    set dashboardRows(value: number) {\n        this._dashboardRows = value;\n    }\n\n    get dashboardCols(): number {\n        return this._dashboardCols;\n    }\n\n    set dashboardCols(value: number) {\n        this._dashboardCols = value;\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.TASK_REF + this.getComponentType();\n    }\n}\n","import {EnumerationField, EnumerationFieldValue} from './enumeration-field';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {FieldTypeResource} from '../../../task-content/model/field-type-resource';\nimport {Component} from '../../models/component';\nimport {ValidatorFn, Validators} from '@angular/forms';\nimport {Observable, Subject} from 'rxjs';\nimport {debounceTime} from 'rxjs/operators';\nimport {LoadingEmitter} from '../../../utility/loading-emitter';\nimport {Validation} from '../../models/validation';\n\nexport class DynamicEnumerationField extends EnumerationField {\n    protected REQUEST_DEBOUNCE_TIME = 600;\n    protected _choicesChange$: Subject<void>;\n    protected _loading: LoadingEmitter;\n\n    constructor(stringId: string, title: string, value: string,\n                protected _choices: Array<EnumerationFieldValue>, behavior: Behavior, placeholder?: string, description?: string,\n                layout?: Layout, protected readonly _fieldType = FieldTypeResource.ENUMERATION,\n                validations?: Array<Validation>, component?: Component, parentTaskId?: string) {\n        super(stringId, title, value, _choices, behavior, placeholder, description, layout, _fieldType, validations,\n            component, parentTaskId);\n        this._choicesChange$ = new Subject<void>();\n        this._loading = new LoadingEmitter();\n    }\n\n    set choices(choices: Array<EnumerationFieldValue>) {\n        this._choices = choices;\n        this._choicesChange$.next();\n    }\n\n    get choices(): Array<EnumerationFieldValue> {\n        return this._choices;\n    }\n\n    set loading(bool: boolean) {\n        bool ? this._loading.on() : this._loading.off();\n    }\n\n    get loading() {\n        return this._loading.isActive;\n    }\n\n    get choicesChange$() {\n        return this._choicesChange$.asObservable();\n    }\n\n    public valueChanges(): Observable<string> {\n        return this._value.pipe(debounceTime(this.REQUEST_DEBOUNCE_TIME));\n    }\n\n    protected resolveFormControlValidators(): Array<ValidatorFn> {\n        const result = [];\n\n        if (this.behavior.required) {\n            result.push(Validators.required);\n        }\n\n        return result;\n    }\n}\n","import {DataField} from '../../models/abstract-data-field';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {FilterMetadata} from '../../../search/models/persistance/filter-metadata';\nimport {Validation} from '../../models/validation';\n\nexport class FilterField extends DataField<string> {\n\n    constructor(stringId: string, title: string,\n                initialValue: string, private _filterMetadata: FilterMetadata, private _allowedNets: Array<string>,\n                behavior: Behavior, placeholder: string, description: string, layout?: Layout,\n                validations?: Array<Validation>, component?: Component, parentTaskId?: string) {\n        super(stringId, title, initialValue, behavior, placeholder, description, layout, validations, component, parentTaskId);\n    }\n\n    get filterMetadata(): FilterMetadata {\n        return this._filterMetadata;\n    }\n\n    get allowedNets(): Array<string> {\n        return this._allowedNets;\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.FILTER + this.getComponentType();\n    }\n}\n","import {DataField} from '../../models/abstract-data-field';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {Validation} from '../../models/validation';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport {I18nFieldTranslations, I18nFieldValue} from './i18n-field-value';\nimport {Observable} from 'rxjs';\nimport {FormControl, ValidatorFn} from '@angular/forms';\n\nexport enum I18nFieldValidation {\n    TRANSLATION_REQUIRED = 'translationRequired',\n    TRANSLATION_ONLY = 'translationOnly',\n    REQUIRED_I18N = 'requiredI18n'\n}\n\nexport const DEFAULT_LANGUAGE_CODE = 'xx';\n\nexport class I18nField extends DataField<I18nFieldValue> {\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.I18N + this.getComponentType();\n    }\n    private static defaultValueNonEquality(a: I18nFieldValue, b: I18nFieldValue): boolean {\n        return (!(!a.defaultValue && !b.defaultValue)\n            && (\n                (!a.defaultValue && !!b.defaultValue)\n                || (!b.defaultValue && !!a.defaultValue)\n                || (a.defaultValue !== b.defaultValue)\n            ));\n    }\n\n    private static keyNonEquality(a: I18nFieldValue, b: I18nFieldValue): boolean {\n        return (!(!a.key && !b.key) && ((!a.key && !!b.key) || (!b.key && !!a.key) || (a.key !== b.key)));\n    }\n\n    private static translationsNonEquality(a: I18nFieldValue, b: I18nFieldValue): boolean {\n        return (!(!a.translations && !b.translations)\n            && ((!a.translations && !!b.translations) || (!b.translations && !!a.translations)));\n    }\n\n    private static translationsEquality(a: I18nFieldValue, b: I18nFieldValue): boolean {\n        const aKeys = !!a.translations ? Object.keys(a.translations).sort() : [];\n        const bKeys = !!b.translations ? Object.keys(b.translations).sort() : [];\n        if (aKeys.length !== bKeys.length\n            || !aKeys.every((element, index) => {\n                return element === bKeys[index];\n            })) {\n            return false;\n        }\n        for (const k in a.translations) {\n            if (a.translations[k] !== b.translations[k]) {\n                return false;\n            }\n        }\n        return true;\n    }\n\n    public static toObject(templateValue: I18nFieldValue): I18nFieldTranslations {\n        const object = {};\n        object[DEFAULT_LANGUAGE_CODE] = templateValue?.defaultValue ?? \"\";\n        if (!!templateValue) {\n            for (const k in templateValue.translations) {\n                if (Object.prototype.hasOwnProperty.call(templateValue.translations, k)) {\n                    object[k] = templateValue.translations[k];\n                }\n            }\n        }\n        return object;\n    }\n\n    public static fromObject(templateValue: I18nFieldTranslations, templateKey: string): I18nFieldValue {\n        const i18nObject = {\n            defaultValue: templateValue[DEFAULT_LANGUAGE_CODE],\n            key: templateKey,\n            translations: {}\n        };\n        for (const [key, value] of Object.entries(templateValue)) {\n            if (key === DEFAULT_LANGUAGE_CODE) {\n                continue;\n            }\n            i18nObject.translations[key] = value;\n        }\n        return i18nObject as I18nFieldValue;\n    }\n\n    constructor(stringId: string, title: string, value: I18nFieldValue | string, behavior: Behavior, placeholder?: string,\n                description?: string, layout?: Layout, validations?: Array<Validation>, _component?: Component) {\n        if (typeof value === 'string') {\n            value = {defaultValue: value};\n        }\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, _component);\n    }\n\n    protected valueEquality(a: I18nFieldValue, b: I18nFieldValue): boolean {\n        if (!a && !b) {\n            return true;\n        }\n        if ((!a && !!b) || (!b && !!a)) {\n            return false;\n        }\n        if ((!a.defaultValue && !b.defaultValue) && (!a.translations && !b.translations) && (!a.key && !b.key)) {\n            return true;\n        }\n        if (I18nField.defaultValueNonEquality(a, b) || I18nField.keyNonEquality(a, b) || I18nField.translationsNonEquality(a, b)) {\n            return false;\n        }\n        return I18nField.translationsEquality(a, b);\n    }\n\n    get updated(): Observable<void> {\n        return this._update.asObservable();\n    }\n\n    protected calculateValidity(forValidRequired: boolean, formControl: FormControl): boolean {\n        const isDisabled = formControl.disabled;\n        if (forValidRequired) {\n            formControl.enable();\n        }\n        formControl.clearValidators();\n        if (forValidRequired) {\n            formControl.setValidators(this.behavior.required ? [this.validRequiredI18n] : []);\n        } else {\n            formControl.setValidators(this.resolveFormControlValidators());\n        }\n        formControl.updateValueAndValidity();\n        const validity = this._determineFormControlValidity(formControl);\n        isDisabled ? formControl.disable() : formControl.enable();\n        return validity;\n    }\n\n    protected resolveFormControlValidators(): Array<ValidatorFn> {\n        const result = [];\n\n        if (this.behavior.required) {\n            result.push(this.validRequiredI18n);\n        }\n\n        if (this.validations) {\n            if (this._validators) {\n                result.push(...this._validators);\n            } else {\n                this._validators = this.resolveValidations();\n                result.push(...this._validators);\n            }\n        }\n\n        return result;\n    }\n\n    protected resolveValidations(): Array<ValidatorFn> {\n        const result = [];\n\n        this.validations.forEach(item => {\n            if (item.validationRule.includes(I18nFieldValidation.TRANSLATION_REQUIRED)) {\n                const tmp = item.validationRule.split(' ');\n                if (tmp[1] !== undefined) {\n                    result.push(this.validTranslationRequired(tmp[1].replace(' ', '').split(',')));\n                }\n            }\n            if (item.validationRule.includes(I18nFieldValidation.TRANSLATION_ONLY)) {\n                const tmp = item.validationRule.split(' ');\n                if (tmp[1] !== undefined) {\n                    result.push(this.validTranslationOnly(tmp[1].replace(' ', '').split(',')));\n                }\n            }\n        });\n\n        return result;\n    }\n\n    private validTranslationRequired(countries: Array<string>): ValidatorFn {\n        return (fc: FormControl): { [key: string]: any } | null => {\n            return countries.every(languageCode => languageCode in fc.value.translations)\n                ? null : ({translationRequired: true});\n        };\n    }\n\n    private validTranslationOnly(countries: Array<string>): ValidatorFn {\n        return (fc: FormControl): { [key: string]: any } | null => {\n            return Object.keys(fc.value.translations).every(translation => countries.includes(translation))\n                ? null : ({translationOnly: true});\n        };\n    }\n\n    private validRequiredI18n(fc: FormControl): { [k: string]: boolean } {\n        return (fc.value.defaultValue === '' && !!fc.value?.translations && Object.keys(fc.value.translations).length === 0)\n            ? ({requiredI18n: true}) : null;\n    }\n}\n","import { DataField } from '../../models/abstract-data-field';\nimport { Behavior } from '../../models/behavior';\nimport { Layout } from '../../models/layout';\nimport { Validation } from '../../models/validation';\nimport {Component, ComponentPrefixes} from '../../models/component';\nimport { UserListValue } from './user-list-value';\nimport {AbstractControl, FormControl, ValidatorFn} from \"@angular/forms\";\nimport {ProcessRole} from \"../../../resources/interface/process-role\";\n\nexport class UserListField extends DataField<UserListValue> {\n\n    constructor(stringId: string, title: string, behavior: Behavior, value: UserListValue, private _roles: Array<ProcessRole>,\n                placeholder?: string, description?: string, layout?: Layout, validations?: Array<Validation>, component?: Component,\n                parentTaskId?: string) {\n        super(stringId, title, value, behavior, placeholder, description, layout, validations, component, parentTaskId);\n    }\n\n    get roles(): Array<ProcessRole> {\n        return this._roles;\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.USER_LIST + this.getComponentType();\n    }\n\n    protected valueEquality(a: UserListValue, b: UserListValue): boolean {\n        return (!a && !b) ||\n            (!!a && !!b && a.userValues.size === b.userValues.size);\n    }\n\n    protected calculateValidity(forValidRequired: boolean, formControl: FormControl): boolean {\n        const isDisabled = formControl.disabled;\n        if (forValidRequired) {\n            formControl.enable();\n        }\n        formControl.clearValidators();\n        if (forValidRequired) {\n            formControl.setValidators(this.behavior.required ? [this.requiredTrue] : []);\n        } else {\n            formControl.setValidators(this.resolveFormControlValidators());\n        }\n        formControl.updateValueAndValidity();\n        const validity = this._determineFormControlValidity(formControl);\n        isDisabled ? formControl.disable() : formControl.enable();\n        return validity;\n    }\n\n\n    protected resolveFormControlValidators(): Array<ValidatorFn> {\n        const result = [];\n\n        if (this.behavior.required) {\n            result.push(this.requiredTrue);\n        }\n\n        if (this.validations) {\n            if (this._validators) {\n                result.push(...this._validators);\n            } else {\n                this._validators = this.resolveValidations();\n                result.push(...this._validators);\n            }\n        }\n\n        return result;\n    }\n\n    private requiredTrue(control: AbstractControl): { [k: string]: boolean } {\n        return !!control.value && !!control.value._userValues && control.value._userValues.size > 0 ? null : {requiredUserList: true};\n    }\n\n}\n","/**\n * Used by [UserListField]{@link UserListField}.\n *\n * Represents the value of the user list.\n */\nimport { UserValue } from '../../user-field/models/user-value';\n\nexport class UserListValue {\n\n    private _userValues: Map<string, UserValue>;\n\n    constructor(userValues: Map<string, UserValue>) {\n        this._userValues = userValues;\n    }\n\n    get userValues(): Map<string, UserValue> {\n        return this._userValues;\n    }\n\n    set userValues(value: Map<string, UserValue>) {\n        this._userValues = value;\n    }\n\n    public addUserValue(value: UserValue): void {\n        this._userValues.set(value.id, value);\n    }\n\n    public addUserValues(value: Map<string, UserValue>): void {\n        value.forEach((v, k) => this._userValues.set(k, v))\n    }\n\n    public getLast(): UserValue {\n        if (this._userValues.size == 0) {\n            return new UserValue('', '', '', '');\n        }\n        return Array.from(this._userValues.values()).pop();\n    }\n\n    public toString(): string {\n        const userNames = Array.from(this._userValues.values()).reduce((acc, curr) => acc + curr.fullName + ',', '')\n        return userNames.slice(0, userNames.lastIndexOf(','))\n    }\n\n    public removeUserValue(userId: string): void {\n        this._userValues.delete(userId);\n    }\n\n\n}\n","import * as Buffer from 'buffer';\n\n\nexport function encodeBase64(text: string): string {\n    return Buffer.Buffer.from(text).toString('base64');\n}\n\nexport function decodeBase64(encoded: string): string {\n    return Buffer.Buffer.from(encoded, 'base64').toString('utf-8');\n}\n","import {DataField} from '../../models/abstract-data-field';\nimport {Behavior} from '../../models/behavior';\nimport {Layout} from '../../models/layout';\nimport {Validation} from '../../models/validation';\nimport {Component, ComponentPrefixes} from '../../models/component';\n\nexport class StringCollectionField extends DataField<Array<string>> {\n\n    constructor(stringId: string, title: string, initialValue: Array<string>, behavior: Behavior,\n                placeholder?: string, description?: string, layout?: Layout, validations?: Array<Validation>, component?: Component,\n                parentTaskId?: string) {\n        super(stringId, title, initialValue, behavior, placeholder, description, layout, validations, component, parentTaskId);\n    }\n\n    public getTypedComponentType(): string {\n        return ComponentPrefixes.STRING_COLLECTION + this.getComponentType();\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {DataFieldResource} from '../model/resource-interface';\nimport {DataField} from '../../data-fields/models/abstract-data-field';\nimport {BooleanField} from '../../data-fields/boolean-field/models/boolean-field';\nimport {TextField} from '../../data-fields/text-field/models/text-field';\nimport {NumberField} from '../../data-fields/number-field/models/number-field';\nimport {EnumerationField, EnumerationFieldValue} from '../../data-fields/enumeration-field/models/enumeration-field';\nimport {MultichoiceField, MultichoiceFieldValue} from '../../data-fields/multichoice-field/models/multichoice-field';\nimport {DateField} from '../../data-fields/date-field/models/date-field';\nimport {DateTimeField} from '../../data-fields/date-time-field/models/date-time-field';\nimport {UserField} from '../../data-fields/user-field/models/user-field';\nimport {ButtonField} from '../../data-fields/button-field/models/button-field';\nimport {FileField, FileUploadMIMEType} from '../../data-fields/file-field/models/file-field';\nimport moment from 'moment';\nimport {UserValue} from '../../data-fields/user-field/models/user-value';\nimport {FieldTypeResource} from '../model/field-type-resource';\nimport {FileListField} from '../../data-fields/file-list-field/models/file-list-field';\nimport {TextAreaField} from '../../data-fields/text-field/models/text-area-field';\nimport {Component} from '../../data-fields/models/component';\nimport {TaskRefField} from '../../data-fields/task-ref-field/model/task-ref-field';\nimport {DynamicEnumerationField} from '../../data-fields/enumeration-field/models/dynamic-enumeration-field';\nimport {FilterField} from '../../data-fields/filter-field/models/filter-field';\nimport {I18nField} from '../../data-fields/i18n-field/models/i18n-field';\nimport {UserListField} from '../../data-fields/user-list-field/models/user-list-field';\nimport {UserListValue} from '../../data-fields/user-list-field/models/user-list-value';\nimport {decodeBase64, encodeBase64} from \"../../utility/base64\";\nimport {CaseRefField} from '../../data-fields/case-ref-field/model/case-ref-field';\nimport {StringCollectionField} from '../../data-fields/string-collection-field/models/string-collection-field';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class FieldConverterService {\n    private textFieldNames = [ 'richtextarea', 'htmltextarea', 'editor', 'htmlEditor' ]\n\n    constructor() {\n    }\n\n    public toClass(item: DataFieldResource): DataField<any> {\n        switch (item.type) {\n            case FieldTypeResource.BOOLEAN:\n                return new BooleanField(item.stringId, item.name, item.value as boolean, item.behavior,\n                    item.placeholder, item.description, item.layout, item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.TEXT:\n                if (this.textFieldNames.includes(item.component?.name)) {\n                    return new TextAreaField(item.stringId, item.name, this.resolveTextValue(item, item.value), item.behavior,\n                        item.placeholder, item.description, item.layout, item.validations, item.component, item.parentTaskId);\n                }\n                return new TextField(item.stringId, item.name, this.resolveTextValue(item, item.value), item.behavior, item.placeholder,\n                    item.description, item.layout, item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.NUMBER:\n                return new NumberField(item.stringId, item.name, item.value as number, item.behavior, item.validations, item.placeholder,\n                    item.description, item.layout, item.formatFilter, this.resolveNumberComponent(item), item.parentTaskId);\n            case FieldTypeResource.ENUMERATION:\n            case FieldTypeResource.ENUMERATION_MAP:\n                return this.resolveEnumField(item);\n            case FieldTypeResource.MULTICHOICE:\n                return new MultichoiceField(item.stringId, item.name, item.value, this.resolveMultichoiceChoices(item),\n                    item.behavior, item.placeholder, item.description, item.layout, item.type, item.validations,\n                    item.component, item.parentTaskId);\n            case FieldTypeResource.MULTICHOICE_MAP:\n                return new MultichoiceField(item.stringId, item.name, item.value, this.resolveMultichoiceOptions(item),\n                    item.behavior, item.placeholder, item.description, item.layout,\n                    item.type, item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.DATE:\n                let date;\n                if (item.value) {\n                    date = moment(new Date(item.value[0], item.value[1] - 1, item.value[2]));\n                }\n                return new DateField(item.stringId, item.name, date, item.behavior, item.placeholder,\n                    item.description, item.layout, item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.DATE_TIME:\n                let dateTime;\n                if (item.value) {\n                    dateTime = moment(new Date(item.value[0], item.value[1] - 1, item.value[2], item.value[3], item.value[4]));\n                }\n                return new DateTimeField(item.stringId, item.name, dateTime, item.behavior,\n                    item.placeholder, item.description, item.layout, item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.USER:\n                let user;\n                if (item.value) {\n                    user = new UserValue(item.value.id, item.value.name, item.value.surname, item.value.email);\n                }\n                return new UserField(item.stringId, item.name, item.behavior, user,\n                    item.roles, item.placeholder, item.description, item.layout, item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.USER_LIST:\n                let userListValue = new UserListValue(new Map<string, UserValue>());\n                if (item.value) {\n                    item.value.userValues.forEach(u => userListValue.addUserValue(new UserValue(u.id, u.name, u.surname, u.email)));\n                }\n                return new UserListField(item.stringId, item.name, item.behavior, userListValue,\n                    item.roles, item.placeholder, item.description, item.layout, item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.BUTTON:\n                return new ButtonField(item.stringId, item.name, item.behavior, item.value as number,\n                    item.placeholder, item.description, item.layout, item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.FILE:\n                return new FileField(item.stringId, item.name, item.behavior, item.value ? item.value : {},\n                    item.placeholder, item.description, item.layout, this.resolveByteSize(item.component?.properties?.maxSize),\n                    this.resolveAllowedTypes(item.component?.properties?.allowTypes?.split(\",\")), item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.FILE_LIST:\n                return new FileListField(item.stringId, item.name, item.behavior, item.value ? item.value : {},\n                    item.placeholder, item.description, item.layout, item.validations, this.resolveByteSize(item.component?.properties?.maxSize),\n                    this.resolveAllowedTypes(item.component?.properties?.allowTypes?.split(\",\")), item.component,\n                    item.parentTaskId);\n            case FieldTypeResource.TASK_REF:\n                return new TaskRefField(item.stringId, item.name, item.value ? item.value : [], item.behavior,\n                    item.placeholder, item.description, item.layout, item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.CASE_REF:\n                return new CaseRefField(item.stringId, item.name, item.value ? item.value : [], item.behavior,\n                    item.placeholder, item.description, item.layout, item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.FILTER:\n                return new FilterField(item.stringId, item.name, item.value ?? '', item.filterMetadata, item.allowedNets,\n                    item.behavior, item.placeholder, item.description, item.layout, item.validations, item.component, item.parentTaskId);\n            case FieldTypeResource.I18N:\n                return new I18nField(item.stringId, item.name, item.value ?? {defaultValue: ''}, item.behavior, item.placeholder,\n                    item.description, item.layout, item.validations, item.component);\n            case FieldTypeResource.STRING_COLLECTION:\n                return new StringCollectionField(item.stringId, item.name, item.value ? item.value : [], item.behavior,\n                    item.placeholder, item.description, item.layout, item.validations, item.component, item.parentTaskId);\n        }\n    }\n\n    public resolveType(item: DataField<any>): FieldTypeResource {\n        if (item instanceof BooleanField) {\n            return FieldTypeResource.BOOLEAN;\n        } else if (item instanceof ButtonField) {\n            return FieldTypeResource.BUTTON;\n        } else if (item instanceof TextField) {\n            return FieldTypeResource.TEXT;\n        } else if (item instanceof NumberField) {\n            return FieldTypeResource.NUMBER;\n        } else if (item instanceof DateField) {\n            return FieldTypeResource.DATE;\n        } else if (item instanceof DateTimeField) {\n            return FieldTypeResource.DATE_TIME;\n        } else if (item instanceof FileField) {\n            return FieldTypeResource.FILE;\n        } else if (item instanceof FileListField) {\n            return FieldTypeResource.FILE_LIST;\n        } else if (item instanceof UserField) {\n            return FieldTypeResource.USER;\n        } else if (item instanceof UserListField) {\n            return FieldTypeResource.USER_LIST;\n        } else if (item instanceof TaskRefField) {\n            return FieldTypeResource.TASK_REF;\n        } else if (item instanceof EnumerationField || item instanceof MultichoiceField) {\n            return item.fieldType;\n        } else if (item instanceof FilterField) {\n            return FieldTypeResource.FILTER;\n        } else if (item instanceof I18nField) {\n            return FieldTypeResource.I18N;\n        } else if (item instanceof CaseRefField) {\n            return FieldTypeResource.CASE_REF;\n        } else if (item instanceof StringCollectionField) {\n            return FieldTypeResource.STRING_COLLECTION;\n        }\n    }\n\n    public formatValueForBackend(field: DataField<any>, value: any): any {\n        if (this.resolveType(field) === FieldTypeResource.TEXT && value === null) {\n            return null;\n        }\n        if (this.resolveType(field) === FieldTypeResource.TEXT && field.component && field.component.name === 'password') {\n            return encodeBase64(value);\n        }\n        if (value === null) {\n            return null;\n        }\n        if (value === undefined) {\n            return;\n        }\n        if (this.resolveType(field) === FieldTypeResource.DATE) {\n            if (moment.isMoment(value)) {\n                return value.format('YYYY-MM-DD');\n            }\n        }\n        if (this.resolveType(field) === FieldTypeResource.USER) {\n            return value.id;\n        }\n        if (this.resolveType(field) === FieldTypeResource.USER_LIST) {\n            return [...value.userValues.keys()];\n        }\n        if (this.resolveType(field) === FieldTypeResource.DATE_TIME) {\n            if (moment.isMoment(value)) {\n                return value.format('DD.MM.YYYY HH:mm:ss');\n            }\n        }\n        return value;\n    }\n\n    protected resolveNumberComponent(numberField: DataFieldResource): Component {\n        let numberComponent = {name: 'default', properties: undefined};\n        if (numberField.component !== undefined) {\n            numberComponent = {\n                name: numberField.component.name,\n                properties: numberField.component.properties\n            };\n        }\n        return numberComponent;\n    }\n\n    /**\n     * Resolves `enumeration` and `eunumeration_map` fields into their appropriate class instances\n     * @param enumField enumeration field resource\n     */\n    protected resolveEnumField(enumField: DataFieldResource): EnumerationField {\n        const options = enumField.type === FieldTypeResource.ENUMERATION\n            ? this.resolveEnumChoices(enumField)\n            : this.resolveEnumOptions(enumField);\n        if (enumField.component && enumField.component.name === 'autocomplete_dynamic') {\n            return new DynamicEnumerationField(enumField.stringId, enumField.name, enumField.value, options,\n                enumField.behavior, enumField.placeholder, enumField.description, enumField.layout,\n                enumField.type, enumField.validations, enumField.component, enumField.parentTaskId);\n        } else {\n            return new EnumerationField(enumField.stringId, enumField.name, enumField.value, options,\n                enumField.behavior, enumField.placeholder, enumField.description, enumField.layout,\n                enumField.type, enumField.validations, enumField.component, enumField.parentTaskId);\n        }\n    }\n\n    /**\n     * This function is used to parse enumeration options from the `choices` attribute\n     * @param enumField enumeration field resource object who's choices we want to resolve\n     * @returns the options for the enumeration field\n     */\n    protected resolveEnumChoices(enumField: DataFieldResource): Array<EnumerationFieldValue> {\n        const enumChoices = [];\n        if (enumField.choices instanceof Array) {\n            enumField.choices.forEach(it => {\n                enumChoices.push({key: it, value: it} as EnumerationFieldValue);\n            });\n        } else {\n            Object.keys(enumField.choices).forEach(key => {\n                enumChoices.push({key, value: enumField.choices[key]} as EnumerationFieldValue);\n            });\n        }\n        return enumChoices;\n    }\n\n    /**\n     * This function is used to parse enumeration options from the `options` attribute\n     * @param enumField enumeration field resource object who's options we want to resolve\n     * @returns the options for the enumeration field\n     */\n    protected resolveEnumOptions(enumField: DataFieldResource): Array<EnumerationFieldValue> {\n        return Object.entries(enumField.options).map(entry => ({key: entry[0], value: entry[1]}));\n    }\n\n    /**\n     * This function is used to parse multichoice options from the `choices` attribute\n     * @param multiField multichoice field resource object who's options we want to resolve\n     * @returns the options for the multichoice field\n     */\n    protected resolveMultichoiceChoices(multiField: DataFieldResource): Array<MultichoiceFieldValue> {\n        const choicesMulti: Array<MultichoiceFieldValue> = [];\n        if (multiField.choices instanceof Array) {\n            multiField.choices.forEach(it => {\n                choicesMulti.push({key: it, value: it} as MultichoiceFieldValue);\n            });\n        } else {\n            Object.keys(multiField.choices).forEach(key => {\n                choicesMulti.push({key, value: multiField.choices[key]} as MultichoiceFieldValue);\n            });\n        }\n        return choicesMulti;\n    }\n\n    /**\n     * This function is used to parse enumeration options from the `options` attribute\n     * @param multiField multichoice field resource object who's options we want to resolve\n     * @returns the options for the multichoice field\n     */\n    protected resolveMultichoiceOptions(multiField: DataFieldResource): Array<MultichoiceFieldValue> {\n        return Object.entries(multiField.options).map(entry => ({key: entry[0], value: entry[1]}));\n    }\n\n    public formatValueFromBackend(field: DataField<any>, value: any): any {\n        if (value === null) {\n            return null;\n        }\n        if (value === undefined) {\n            return;\n        }\n        if (this.resolveType(field) === FieldTypeResource.TEXT && field.component && field.component.name === 'password') {\n            return decodeBase64(value);\n        }\n        if (this.resolveType(field) === FieldTypeResource.DATE) {\n            return moment(new Date(value[0], value[1] - 1, value[2]));\n        }\n        if (this.resolveType(field) === FieldTypeResource.USER) {\n            return new UserValue(value.id, value.name, value.surname, value.email);\n        }\n        if (this.resolveType(field) === FieldTypeResource.DATE_TIME) {\n            return moment(new Date(value[0], value[1] - 1, value[2], value[3], value[4]));\n        }\n        if (this.resolveType(field) === FieldTypeResource.MULTICHOICE) {\n            const array = [];\n            value.forEach(v => {\n                if (v.defaultValue) {\n                    array.push(v.defaultValue);\n                } else {\n                    array.push(v);\n                }\n            });\n            return array;\n        }\n        if (this.resolveType(field) === FieldTypeResource.USER_LIST && !!value) {\n            return new UserListValue(new Map(value.userValues.map(v => [v.id, v])));\n        }\n        return value;\n    }\n\n    protected resolveTextValue(field: DataFieldResource, value: string): string {\n        if (field.component !== undefined && field.component.name === 'password' && value !== '' && value !== undefined) {\n            return decodeBase64(value);\n        }\n        return value;\n    }\n\n    protected resolveAllowedTypes(allowTypes: string[]) {\n        return allowTypes?.length > 0 ? (allowTypes.length > 1 ? allowTypes as FileUploadMIMEType[] : allowTypes[0]) : null\n    }\n\n    protected resolveByteSize(bytesSize) {\n        return bytesSize !== undefined ? bytesSize : null;\n    }\n}\n","import {ConfigurationService} from '../../configuration/configuration.service';\nimport {Injectable} from '@angular/core';\nimport {Params, ProviderProgress, ResourceProvider} from '../resource-provider.service';\nimport {Observable} from 'rxjs';\nimport {Count} from '../interface/count';\nimport {EventOutcomeMessageResource, MessageResource} from '../interface/message-resource';\nimport {filter, map} from 'rxjs/operators';\nimport {TaskReference} from '../interface/task-reference';\nimport {Task} from '../interface/task';\nimport {CountService} from '../abstract-endpoint/count-service';\nimport {Filter} from '../../filter/models/filter';\nimport {FilterType} from '../../filter/models/filter-type';\nimport { HttpEventType, HttpParams } from '@angular/common/http';\nimport {Page} from '../interface/page';\nimport {FieldConverterService} from '../../task-content/services/field-converter.service';\nimport {TaskSetDataRequestBody} from '../interface/task-set-data-request-body';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {AbstractResourceService} from '../abstract-endpoint/abstract-resource.service';\nimport {DataGroup} from '../interface/data-groups';\nimport {DataField} from '../../data-fields/models/abstract-data-field';\nimport {GetDataGroupsEventOutcome} from '../../event/model/event-outcomes/data-outcomes/get-data-groups-event-outcome';\nimport {FileFieldRequest} from \"../interface/file-field-request-body\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class TaskResourceService extends AbstractResourceService implements CountService {\n\n    constructor(provider: ResourceProvider,\n                configService: ConfigurationService,\n                protected _fieldConverter: FieldConverterService,\n                protected _logger: LoggerService) {\n        super('task', provider, configService);\n    }\n\n    /**\n     *  Count tasks by provided criteria\n     *  POST\n     *  {{baseUrl}}/api/task/count\n     */\n    public count(filterParam: Filter): Observable<Count> {\n        if (filterParam.type !== FilterType.TASK) {\n            throw new Error('Provided filter doesn\\'t have type TASK');\n        }\n        return this._resourceProvider.post$('task/count', this.SERVER_URL, filterParam.getRequestBody(), filterParam.getRequestParams())\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get all tasks\n     * GET\n     * {{baseUrl}}/api/task\n     */\n    public getAllTask(): Observable<Array<Task>> {\n        return this._resourceProvider.get$('task', this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, 'tasks')));\n    }\n\n    /**\n     * Assign task\n     * GET\n     */\n    // {{baseUrl}}/api/task/assign/:id\n    public assignTask(taskId: string): Observable<EventOutcomeMessageResource> {\n        return this._resourceProvider.get$('task/assign/' + taskId, this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Cancel task\n     * GET\n     */\n    // {{baseUrl}}/api/task/cancel/:id\n    public cancelTask(taskId: string): Observable<EventOutcomeMessageResource> {\n        return this._resourceProvider.get$('task/cancel/' + taskId, this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Delegate task\n     * POST\n     */\n    // {{baseUrl}}/api/task/delegate/:id\n    public delegateTask(taskId: string, body: object): Observable<EventOutcomeMessageResource> {\n        return this._resourceProvider.post$('task/delegate/' + taskId, this.SERVER_URL, body, undefined, {'Content-Type': 'text/plain'})\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Finish task\n     * GET\n     */\n    // {{baseUrl}}/api/task/finish/:id\n    public finishTask(taskId: string): Observable<EventOutcomeMessageResource> {\n        return this._resourceProvider.get$('task/finish/' + taskId, this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Searches tasks trough the Elastic endpoint.\n     * POST\n     * @param filterParam filter used to search the tasks. Must be of type `TASK`.\n     * @param params Additional parameters\n     */\n    // {{baseUrl}}/api/task/search_es\n    public searchTask(filterParam: Filter, params?: Params): Observable<Page<Task>> {\n        if (filterParam.type !== FilterType.TASK) {\n            throw new Error('Provided filter doesn\\'t have type TASK');\n        }\n        params = ResourceProvider.combineParams(filterParam.getRequestParams(), params);\n        return this._resourceProvider.post$('task/search_es', this.SERVER_URL, filterParam.getRequestBody(), params)\n            .pipe(map(r => this.getResourcePage<Task>(r, 'tasks')));\n    }\n\n    /**\n     * Searches tasks trough the Mongo endpoint.\n     * POST\n     * @param filterParam filter used to search the tasks. Must be of type `TASK`.\n     * Note that the `query` attribute of the filter cannot be used with this endpoint.\n     * Attempting to use it will display a warning and remove the attribute from the request.\n     * @param params Additional request parameters\n     */\n    // {{baseUrl}}/api/task/search\n    public getTasks(filterParam: Filter, params?: Params): Observable<Page<Task>> {\n        if (filterParam.type !== FilterType.TASK) {\n            throw new Error('Provided filter doesn\\'t have type TASK');\n        }\n\n        if (filterParam.bodyContainsQuery()) {\n            throw new Error('getTasks endpoint cannot be queried with filters that contain the \\'query\\' attribute');\n        }\n\n        params = ResourceProvider.combineParams(filterParam.getRequestParams(), params);\n        return this._resourceProvider.post$('task/search', this.SERVER_URL, filterParam.getRequestBody(), params)\n            .pipe(map(r => this.getResourcePage<Task>(r, 'tasks')));\n    }\n\n    // ----------- CASE ----------\n    /**\n     * Get all tasks by cases\n     * POST\n     */\n    // {{baseUrl}}/api/task/case\n    public getAllTasksByCases(body: object): Observable<Array<Task>> { // TODO: ??\n        return this._resourceProvider.post$('task/case', this.SERVER_URL, body)\n            .pipe(map(r => this.changeType(r, 'tasks')));\n    }\n\n    /**\n     * Get tasks of the case\n     * GET\n     */\n    // {{baseUrl}}/api/task/case/:id\n    public getAllTasksByCase(caseId: string): Observable<Array<TaskReference>> {\n        return this._resourceProvider.get$('task/case/' + caseId, this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    // ----------- MY Task ----------\n    /**\n     * Get all tasks assigned to logged user\n     * GET\n     */\n    // {{baseUrl}}/api/task/my\n    public getAllMyTasks(): Observable<Array<Task>> {\n        return this._resourceProvider.get$('task/my', this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get all finished tasks by logged user\n     * GET\n     */\n    // {{baseUrl}}/api/task/my/finished\n    public getAllFinishedTask(): Observable<Array<Task>> {\n        return this._resourceProvider.get$('task/my/finished', this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get all task data\n     *\n     * GET\n     *\n     * If you don't want to parse the response yourself use [getData]{@link TaskResourceService#getData} instead.\n     *\n     * @returns the raw backend response without any additional processing\n     */\n    // {{baseUrl}}/api/task/:id/data\n    public rawGetData(taskId: string): Observable<EventOutcomeMessageResource> {\n        return this._resourceProvider.get$('task/' + taskId + '/data', this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     *  Get all task data\n     *\n     *  GET\n     *\n     *  If you want to process the raw backend response use [rawGetData]{@link TaskResourceService#rawGetData} instead.\n     *\n     * @param taskId ID of the task who's data should be retrieved from the server\n     * @returns processed data groups of the given task. If the task has no data an empty array will be returned.\n     */\n    public getData(taskId: string): Observable<Array<DataGroup>> {\n        return this.rawGetData(taskId).pipe(\n            map((responseOutcome: EventOutcomeMessageResource) => {\n                if (responseOutcome.error) {\n                    throw new Error(responseOutcome.error);\n                }\n\n                const dataGroupsArray = this.changeType((responseOutcome.outcome as GetDataGroupsEventOutcome).data, 'dataGroups');\n                if (!Array.isArray(dataGroupsArray)) {\n                    return [];\n                }\n                const result = [];\n                dataGroupsArray.forEach(dataGroupResource => {\n                    const dataFields: Array<DataField<any>> = [];\n                    if (!dataGroupResource.fields._embedded) {\n                        return; // continue\n                    }\n                    const fields = [];\n                    Object.keys(dataGroupResource.fields._embedded).forEach(localizedFields => {\n                        fields.push(...dataGroupResource.fields._embedded[localizedFields]);\n                    });\n                    fields.sort((a, b) => a.order - b.order);\n                    dataFields.push(...fields.map(dataFieldResource => this._fieldConverter.toClass(dataFieldResource)));\n                    const dataGroupObject: DataGroup = {\n                        fields: dataFields,\n                        stretch: dataGroupResource.stretch,\n                        title: dataGroupResource.title,\n                        layout: dataGroupResource.layout,\n                        alignment: dataGroupResource.alignment,\n                    };\n                    if (dataGroupResource.parentTaskId !== undefined) {\n                        dataGroupObject.parentTaskId = dataGroupResource.parentTaskId;\n                        dataGroupObject.parentTransitionId = dataGroupResource.parentTransitionId;\n                        dataGroupObject.parentTaskRefId = dataGroupResource.parentTaskRefId;\n                        dataGroupObject.nestingLevel = dataGroupResource.nestingLevel;\n                    }\n                    if (dataGroupResource.parentCaseId !== undefined) {\n                        dataGroupObject['parentCaseId'] = dataGroupResource.parentCaseId;\n                    }\n                    result.push(dataGroupObject);\n                });\n                return result;\n            })\n        );\n    }\n\n    /**\n     * Set task data\n     * POST\n     */\n    // {{baseUrl}}/api/task/:id/data\n    public setData(taskId: string, body: TaskSetDataRequestBody): Observable<EventOutcomeMessageResource> {\n        return this._resourceProvider.post$('task/' + taskId + '/data', this.SERVER_URL, body)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    // ------------- FILE ------------\n    /**\n     * Download task file field value\n     * GET\n     */\n    // {{baseUrl}}/api/task/:id/file/:field         - for file field\n    // {{baseUrl}}/api/task/:id/file/:field/:name   - for file list field\n    public downloadFile(taskId: string, params: HttpParams): Observable<ProviderProgress | Blob> {\n        const url = `task/${taskId}/file${params?.has(\"fileName\") ? '/named' : ''}`;\n        return this._resourceProvider.getBlob$(url, this.SERVER_URL, params).pipe(\n            map(event => {\n                switch (event.type) {\n                    case HttpEventType.DownloadProgress:\n                        return ResourceProvider.getProgress(event);\n                    case HttpEventType.Response:\n                        return event.body;\n                    default:\n                        return undefined;\n                }\n            }),\n            filter(value => !!value)\n        );\n    }\n\n    /**\n     * Upload file into the task\n     * POST\n     */\n    // {{baseUrl}}/api/task/:id/file/:field     - for file field\n    // {{baseUrl}}/api/task/:id/files/:field    - for file list field\n    public uploadFile(taskId: string, body: object, multipleFiles: boolean):\n        Observable<ProviderProgress | EventOutcomeMessageResource> {\n        const url = `task/${taskId}/${multipleFiles ? 'files' : 'file'}`;\n        return this._resourceProvider.postWithEvent$<EventOutcomeMessageResource>(url, this.SERVER_URL, body).pipe(\n            map(event => {\n                switch (event.type) {\n                    case HttpEventType.UploadProgress:\n                        return ResourceProvider.getProgress(event);\n                    case HttpEventType.Response:\n                        return event.body;\n                    default:\n                        return undefined;\n                }\n            }),\n            filter(value => !!value)\n        );\n    }\n\n    /**\n     * Delete file from the task\n     * DELETE\n     */\n    public deleteFile(taskId: string, body?: FileFieldRequest): Observable<MessageResource> {\n        const url = `task/${taskId}/file${body?.fileName ? '/named' : ''}`;\n        return this._resourceProvider.delete$(url, this.SERVER_URL, {}, {}, 'json', body).pipe(\n            map(r => this.changeType(r, undefined))\n        );\n    }\n\n    /**\n     * Download task file preview for field value\n     * GET\n     */\n    // {{baseUrl}}/api/task/:id/file_preview/:field\n    public downloadFilePreview(taskId: string, params: HttpParams): Observable<ProviderProgress | Blob> {\n        const url = `task/${taskId}/file_preview`;\n        return this._resourceProvider.getBlob$(url, this.SERVER_URL, params).pipe(\n            map(event => {\n                switch (event.type) {\n                    case HttpEventType.DownloadProgress:\n                        return ResourceProvider.getProgress(event);\n                    case HttpEventType.Response:\n                        return event.body;\n                    default:\n                        return undefined;\n                }\n            }),\n            filter(value => !!value)\n        );\n    }\n}\n","export enum EventConstants {\n\n    /**\n     * Changed fields parameter of {@link SetDataEventOutcome}\n     */\n    CHANGED_FIELDS = 'changedFields',\n    /**\n     * Front actions parameter of {@link EventOutcome}\n     */\n    FRONT_ACTIONS = 'frontActions'\n}\n","import {Injectable} from '@angular/core';\nimport {EventOutcome} from '../../resources/interface/event-outcome';\nimport {ChangedFields, FrontAction} from '../../data-fields/models/changed-fields';\nimport {SetDataEventOutcome} from '../model/event-outcomes/data-outcomes/set-data-event-outcome';\nimport {ChangedFieldsMap} from './interfaces/changed-fields-map';\nimport {EventConstants} from '../model/event-constants';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class EventService {\n\n    constructor() {\n    }\n\n    public parseChangedFieldsFromOutcomeTree(outcome: EventOutcome): ChangedFieldsMap {\n        const changedFieldsMap: ChangedFieldsMap = {};\n        if (!!outcome.outcomes && outcome.outcomes.length > 0) {\n            return this.parseChangedFieldsFromOutcomeTreeRecursive(outcome.outcomes, changedFieldsMap);\n        } else return changedFieldsMap;\n    }\n\n    private parseChangedFieldsFromOutcomeTreeRecursive(outcomes: Array<EventOutcome>,\n                                                       changedFieldsMap: ChangedFieldsMap): ChangedFieldsMap {\n        outcomes.forEach(childOutcome => {\n            if (EventConstants.CHANGED_FIELDS in childOutcome\n                && !!(childOutcome as SetDataEventOutcome).aCase\n                && !!(childOutcome as SetDataEventOutcome).task) {\n                const setDataOutcome: SetDataEventOutcome = childOutcome as SetDataEventOutcome;\n                const outcomeChangedFields: ChangedFields = (childOutcome as SetDataEventOutcome).changedFields.changedFields;\n                const caseId = setDataOutcome.aCase.stringId;\n                if (!Object.keys(changedFieldsMap).includes(caseId)) {\n                    changedFieldsMap[caseId] = {};\n                }\n                const taskId = setDataOutcome.task.stringId;\n                if (!Object.keys(changedFieldsMap[caseId]).includes(taskId)) {\n                    changedFieldsMap[caseId][taskId] = {\n                        taskId\n                    };\n                }\n                Object.keys(outcomeChangedFields).forEach(fieldId => {\n                    if (Object.keys(changedFieldsMap[caseId][taskId]).includes(fieldId)) {\n                        Object.keys(outcomeChangedFields[fieldId]).forEach(attribute => {\n                            changedFieldsMap[caseId][taskId][fieldId][attribute] = outcomeChangedFields[fieldId][attribute];\n                        });\n                    } else {\n                        changedFieldsMap[caseId][taskId][fieldId] = setDataOutcome.changedFields.changedFields[fieldId];\n                    }\n                });\n            }\n            if (!!childOutcome.outcomes && childOutcome.outcomes.length > 0) {\n                this.parseChangedFieldsFromOutcomeTreeRecursive(childOutcome.outcomes, changedFieldsMap);\n            }\n        });\n        return changedFieldsMap;\n    }\n\n    public parseFrontActionsFromOutcomeTree(outcome: EventOutcome): Array<FrontAction> {\n        const frontActions: Array<FrontAction> = [];\n        if (!!outcome.outcomes && outcome.outcomes.length > 0) {\n            return this.parseFrontActionsFromOutcomeTreeRecursive(outcome.outcomes, frontActions);\n        } else return frontActions;\n    }\n\n    private parseFrontActionsFromOutcomeTreeRecursive(outcomes: Array<EventOutcome>,\n                                                      frontActions: Array<FrontAction>): Array<FrontAction> {\n        outcomes.forEach(childOutcome => {\n            if (EventConstants.FRONT_ACTIONS in childOutcome) {\n                const childFrontActions: Array<FrontAction> = (childOutcome as EventOutcome).frontActions;\n\n                if (!!childFrontActions) {\n                    frontActions.push(...childFrontActions)\n                }\n            }\n            if (!!childOutcome.outcomes && childOutcome.outcomes.length > 0) {\n                this.parseFrontActionsFromOutcomeTreeRecursive(childOutcome.outcomes, frontActions);\n            }\n        });\n        return frontActions;\n    }\n\n}\n","import {\n    AfterViewInit,\n    Component,\n    ElementRef,\n    Inject,\n    OnDestroy,\n    OnInit,\n    Optional,\n    ViewChild\n} from \"@angular/core\";\nimport {FileField, FilePreviewType} from \"../models/file-field\";\nimport {DomSanitizer, SafeUrl} from \"@angular/platform-browser\";\nimport {BehaviorSubject, Subscription} from \"rxjs\";\nimport {TaskResourceService} from \"../../../resources/engine-endpoint/task-resource.service\";\nimport {LoggerService} from \"../../../logger/services/logger.service\";\nimport {SnackBarService} from \"../../../snack-bar/services/snack-bar.service\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {EventService} from \"../../../event/services/event.service\";\nimport {EventOutcomeMessageResource} from \"../../../resources/interface/message-resource\";\nimport {ProgressType, ProviderProgress} from \"../../../resources/resource-provider.service\";\nimport {ChangedFieldsMap} from \"../../../event/services/interfaces/changed-fields-map\";\nimport {HttpParams} from \"@angular/common/http\";\nimport {take} from \"rxjs/operators\";\nimport {ResizedEvent} from \"angular-resize-event\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {FILE_FIELD_HEIGHT, FILE_FIELD_PADDING, PREVIEW, PREVIEW_BUTTON} from '../models/file-field-constants';\nimport {FileFieldRequest} from \"../../../resources/interface/file-field-request-body\";\nimport {AbstractFileFieldDefaultComponent} from '../../models/abstract-file-field-default-component';\n\nexport interface FileState {\n    progress: number;\n    uploading: boolean;\n    downloading: boolean;\n    completed: boolean;\n    error: boolean;\n}\n\n@Component({\n    selector: 'ncc-abstract-file-default-fied',\n    template: ''\n})\nexport abstract class AbstractFileDefaultFieldComponent extends AbstractFileFieldDefaultComponent<FileField> implements OnInit, AfterViewInit, OnDestroy {\n    /**\n     * The width of the default file preview border in pixels. The `px` string is appended in the code.\n     */\n    public static readonly DEFAULT_PREVIEW_BORDER_WIDTH = 0;\n    /**\n     * The CSS style attribute of the default file preview border.\n     */\n    public static readonly DEFAULT_PREVIEW_BORDER_STYLE = 'none';\n    /**\n     * The CSS color string of the default file preview border.\n     */\n    public static readonly DEFAULT_PREVIEW_BORDER_COLOR = 'black';\n\n    public state: FileState;\n\n    /**\n     * Image field view element reference from component template that is initialized after view init.\n     */\n    @ViewChild('imageEl') public imageEl: ElementRef;\n\n    @ViewChild('imageDiv') public imageDivEl: ElementRef;\n    /**\n     * If file type can be displayed\n     */\n    public isDisplayable = false;\n    /**\n     * Max height of preview\n     */\n    private maxHeight: string;\n    /**\n     * Store file for preview\n     */\n    private fileForPreview: Blob;\n    /**\n     * Url of preview file\n     */\n    public previewSource: SafeUrl;\n    /**\n     * Store file to show/download\n     */\n    private fileForDownload: Blob;\n    /**\n     * Full size file url\n     */\n    public fullSource: BehaviorSubject<SafeUrl>;\n    /**\n     * Extension of file to preview\n     */\n    public previewExtension: FilePreviewType;\n    /**\n     * Form control subscription\n     */\n    private updatedFieldSubscription: Subscription;\n\n    public isFilePreview = false;\n    public isFilePreviewButton = false;\n\n    /**\n     * Only inject services.\n     * @param _taskResourceService Provides to download a file from the backend\n     * @param _log Logger service\n     * @param _snackbar Snackbar service to notify user\n     * @param _translate Translate service for I18N\n     * @param _eventService used for parsing of backend response\n     * Option injected trough `NAE_INFORM_ABOUT_INVALID_DATA` InjectionToken\n     * @param _sanitizer Sanitize url of image preview\n     * @param dataFieldPortalData Field and form control data if field is provided with portal\n     */\n    protected constructor(protected _taskResourceService: TaskResourceService,\n                          protected _log: LoggerService,\n                          protected _snackbar: SnackBarService,\n                          protected _translate: TranslateService,\n                          protected _eventService: EventService,\n                          protected _sanitizer: DomSanitizer,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<FileField>) {\n        super(_log, _snackbar, _translate, dataFieldPortalData);\n        this.state = this.defaultState;\n        this.fullSource = new BehaviorSubject<SafeUrl>(null);\n        this.taskId = dataFieldPortalData.additionalFieldProperties.taskId as string;\n    }\n\n    /**\n     * Set :\n     *  - File field to [FileFieldService]{@link FileFieldService}\n     *  - Display name\n     */\n    ngOnInit() {\n        this.isFilePreview = this.dataField?.component?.name === PREVIEW;\n        this.isFilePreviewButton = this.dataField?.component?.name === PREVIEW_BUTTON;\n    }\n\n    ngAfterViewInit() {\n        if (this.fileUploadEl) {\n            this.fileUploadEl.nativeElement.onchange = () => {\n                this.upload();\n            };\n        }\n        if (this.isFilePreview) {\n            if (!!this.imageDivEl) {\n                if (!this.isEmpty()) {\n                    this.initializePreviewIfDisplayable();\n                }\n            }\n        }\n        if (this.isFilePreviewButton) {\n            if (!this.isEmpty()) {\n                this.initializePreviewIfDisplayable();\n            }\n        }\n        this.updatedFieldSubscription = this.dataField.updated.subscribe(() => {\n            this.previewSource = undefined;\n            if (!!this.isFilePreview && !!this.dataField?.value?.name) {\n                this.fileForDownload = undefined;\n                this.fileForPreview = undefined;\n                this.initializePreviewIfDisplayable();\n            }\n            if (!!this.isFilePreviewButton && !!this.dataField?.value?.name) {\n                this.fileForDownload = undefined;\n                this.fileForPreview = undefined;\n                this.initializePreviewIfDisplayable();\n            }\n        })\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.fullSource.complete();\n        this.updatedFieldSubscription.unsubscribe();\n    }\n\n    public chooseFile() {\n        if (this.state.uploading || this.formControlRef.disabled) {\n            return;\n        }\n        this.fileUploadEl.nativeElement.click();\n    }\n\n    /**\n     * Call after click on file field.\n     *\n     * If file field has no file uploaded\n     * [FilesUploadComponent]{@link AbstractFilesUploadComponent} via [SideMenu]{@link SideMenuService} opens.\n     *\n     * Otherwise opens a file picker from which the user can select files.\n     */\n    public upload() {\n        if (!this.fileUploadEl.nativeElement.files || this.fileUploadEl.nativeElement.files.length === 0) {\n            return;\n        }\n        if (!this.taskId) {\n            this._log.error('File cannot be uploaded. No task is set to the field.');\n            return;\n        }\n        if (this.dataField.value?.name &&\n            this.fileUploadEl.nativeElement.files.item(0).name === this.dataField.value?.name) {\n            this._log.error('User chose the same file. Uploading skipped');\n            this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.wontUploadSameFile'));\n            this.fileUploadEl.nativeElement.value = '';\n            return;\n        }\n        if (this.dataField.maxUploadSizeInBytes &&\n            this.dataField.maxUploadSizeInBytes < this.fileUploadEl.nativeElement.files.item(0).size) {\n            this._log.error('File cannot be uploaded. Maximum size of file exceeded.');\n            this.resolveMaxSizeMessage();\n            this.fileUploadEl.nativeElement.value = '';\n            return;\n        }\n        if (!this.checkAllowedTypes()) {\n            return;\n        }\n        this.state = this.defaultState;\n        this.state.uploading = true;\n        const fileFormData = new FormData();\n        const fileToUpload = this.fileUploadEl.nativeElement.files.item(0) as File;\n        fileFormData.append('file', fileToUpload);\n        fileFormData.append('data', new Blob([JSON.stringify(this.createRequestBody())], {type: 'application/json'}));\n        this._taskResourceService.uploadFile(this.taskId, fileFormData, false)\n            .subscribe((response: EventOutcomeMessageResource) => {\n                if ((response as ProviderProgress).type && (response as ProviderProgress).type === ProgressType.UPLOAD) {\n                    this.state.progress = (response as ProviderProgress).progress;\n                } else {\n                    this.state.completed = true;\n                    this.state.uploading = false;\n                    this.state.progress = 0;\n\n                    if (response.error) {\n                        this.state.error = true;\n                        this._log.error(\n                            `File [${this.dataField.stringId}] ${this.fileUploadEl.nativeElement.files.item(0)} uploading has failed!`, response.error\n                        );\n                        if (response.error) {\n                            this._snackbar.openErrorSnackBar(this._translate.instant(response.error));\n                        } else {\n                            this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.fileUploadFailed'));\n                        }\n                    } else {\n                        const changedFieldsMap: ChangedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(response.outcome);\n                        this.dataField.emitChangedFields(changedFieldsMap);\n                        this._log.debug(\n                            `File [${this.dataField.stringId}] ${this.fileUploadEl.nativeElement.files.item(0).name} was successfully uploaded`\n                        );\n                        this.state.error = false;\n                        this.dataField.downloaded = false;\n                        this.dataField.value.name = fileToUpload.name;\n                        if (this.isFilePreview) {\n                            this.initializePreviewIfDisplayable();\n                        }\n                        this.fullSource.next(undefined);\n                        this.fileForDownload = undefined;\n                        this.formControlRef.setValue(this.dataField.value.name);\n                    }\n                    this.dataField.touch = true;\n                    this.dataField.update();\n                    this.fileUploadEl.nativeElement.value = '';\n                }\n            }, error => {\n                this.state.completed = true;\n                this.state.error = true;\n                this.state.uploading = false;\n                this.state.progress = 0;\n                this._log.error(\n                    `File [${this.dataField.stringId}] ${this.fileUploadEl.nativeElement.files.item(0)} uploading has failed!`, error\n                );\n                if (error?.error?.message) {\n                    this._snackbar.openErrorSnackBar(this._translate.instant(error.error.message));\n                } else {\n                    this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.fileUploadFailed'));\n                }\n                this.dataField.touch = true;\n                this.dataField.update();\n                this.fileUploadEl.nativeElement.value = '';\n            });\n    }\n\n    public download() {\n        if (!this.checkFileBeforeDownload()) {\n            return;\n        }\n        if (!!this.fileForDownload) {\n            this.downloadViaAnchor(this.fileForDownload);\n            return;\n        }\n        this.state = this.defaultState;\n        this.state.downloading = true;\n        let params = new HttpParams();\n        params = params.set(\"fieldId\", this.dataField.stringId);\n        this._taskResourceService.downloadFile(this.resolveParentTaskId(), params).subscribe(response => {\n            if (!(response as ProviderProgress).type || (response as ProviderProgress).type !== ProgressType.DOWNLOAD) {\n                this._log.debug(`File [${this.dataField.stringId}] ${this.dataField.value.name} was successfully downloaded`);\n                this.downloadViaAnchor(response as Blob);\n                if (this.isFilePreview) {\n                    this.initDownloadFile(response);\n                }\n                this.state.downloading = false;\n                this.state.progress = 0;\n                this.dataField.downloaded = true;\n            }\n        }, error => {\n            this._log.error(`Downloading file [${this.dataField.stringId}] ${this.dataField.value.name} has failed!`, error);\n            this._snackbar.openErrorSnackBar(\n                this.dataField.value.name + ' ' + this._translate.instant('dataField.snackBar.downloadFail')\n            );\n            this.state.downloading = false;\n            this.state.progress = 0;\n        });\n    }\n\n    private initDownloadFile(response: Blob | ProviderProgress) {\n        if (response instanceof Blob) {\n            if (this.previewExtension === FilePreviewType.pdf) {\n                this.fileForDownload = new Blob([response], {type: 'application/pdf'});\n                this.fullSource.next(this._sanitizer.bypassSecurityTrustResourceUrl(URL.createObjectURL(this.fileForDownload)));\n            } else {\n                this.fileForDownload = new Blob([response], {type: 'application/octet-stream'});\n                this.fullSource.next(this._sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(this.fileForDownload)));\n            }\n        }\n    }\n\n    protected downloadViaAnchor(blob: Blob): void {\n        const a = document.createElement('a');\n        document.body.appendChild(a);\n        a.setAttribute('style', 'display: none');\n        if (!this.fileForDownload) {\n            blob = new Blob([blob], {type: 'application/octet-stream'});\n        }\n        const url = window.URL.createObjectURL(!!this.fileForDownload ? this.fileForDownload : blob);\n        a.href = url;\n        a.download = this.dataField.value.name;\n        a.click();\n        window.URL.revokeObjectURL(url);\n        document.body.removeChild(a);\n    }\n\n    public deleteFile() {\n        if (!this.dataField.value?.name) {\n            return;\n        }\n        if (!this.taskId) {\n            this._log.error('File cannot be deleted. No task is set to the field.');\n            return;\n        }\n\n        this._taskResourceService.deleteFile(this.taskId, this.createRequestBody()).pipe(take(1)).subscribe(response => {\n            if (response.success) {\n                const filename = this.dataField.value.name;\n                this.dataField.value = {};\n                this.formControlRef.setValue('');\n                this.dataField.update();\n                this.dataField.downloaded = false;\n                this.fullSource.next(undefined);\n                this.fileForDownload = undefined;\n                this.previewSource = undefined;\n                this.fileForPreview = undefined;\n                this._log.debug(`File [${this.dataField.stringId}] ${filename} was successfully deleted`);\n                this.formControlRef.markAsTouched();\n            } else {\n                this._log.error(`Deleting file [${this.dataField.stringId}] ${this.dataField.value.name} has failed!`, response.error);\n                this._snackbar.openErrorSnackBar(\n                    this.dataField.value.name + ' ' + this._translate.instant('dataField.snackBar.fileDeleteFailed')\n                );\n            }\n        });\n    }\n\n    isEmpty(): boolean {\n        return !this.dataField.value?.name;\n    }\n\n    protected createRequestBody(): FileFieldRequest {\n        return {\n            parentTaskId: this.resolveParentTaskId(),\n            fieldId: this.dataField.stringId\n        };\n    }\n\n    protected get defaultState(): FileState {\n        return {\n            progress: 0,\n            completed: false,\n            error: false,\n            uploading: false,\n            downloading: false\n        };\n    }\n\n    /**\n     * Construct display name.\n     */\n    public constructDisplayName(): string {\n        if (!!this.dataField) {\n            if (!!this.dataField.value && !!this.dataField.value.name) {\n                return this.dataField.value.name;\n            } else if (!!this.dataField.placeholder) {\n                return this.dataField.placeholder;\n            }\n        }\n        return this._translate.instant('dataField.file.noFile');\n    }\n\n    /**\n     * Initialize file field image from backend if it is image type.\n     */\n    protected initFileFieldImage() {\n        if (!this.checkFileBeforeDownload()) {\n            return;\n        }\n        this.state.downloading = true;\n        let params = new HttpParams()\n        params = params.set(\"fieldId\", this.dataField.stringId);\n        this._taskResourceService.downloadFilePreview(this.resolveParentTaskId(), params).subscribe(response => {            if (response instanceof Blob) {\n                this._log.debug(`Preview of file [${this.dataField.stringId}] ${this.dataField.value.name} was successfully downloaded`);\n                this.fileForPreview = new Blob([response], {type: 'application/octet-stream'});\n                this.previewSource = this._sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(this.fileForPreview));\n            }\n            if (response == null || response instanceof Blob) {\n                this.state.downloading = false;\n            }\n        }, error => {\n            this._log.error(`Downloading file [${this.dataField.stringId}] ${this.dataField.value.name} has failed!`, error);\n            this._snackbar.openErrorSnackBar(\n                this.dataField.value.name + ' ' + this._translate.instant('dataField.snackBar.downloadFail')\n            );\n            this.state.downloading = false;\n            this.state.progress = 0;\n        });\n    }\n\n    protected checkFileBeforeDownload() {\n        if (this.isEmpty()) {\n            return false;\n        }\n        if (!this.taskId) {\n            this._log.error('File cannot be downloaded. No task is set to the field.');\n            return false;\n        }\n        return true;\n    }\n\n    public showPreviewDialog() {\n        if (!this.checkFileBeforeDownload()) {\n            return;\n        }\n        let params = new HttpParams();\n        params = params.set(\"fieldId\", this.dataField.stringId);\n        this._taskResourceService.downloadFile(this.resolveParentTaskId(), params).subscribe(response => {            if (!(response as ProviderProgress).type || (response as ProviderProgress).type !== ProgressType.DOWNLOAD) {\n                this._log.debug(`File [${this.dataField.stringId}] ${this.dataField.value.name} was successfully downloaded`);\n                this.initDownloadFile(response);\n            }\n        }, error => {\n            this._log.error(`Downloading file [${this.dataField.stringId}] ${this.dataField.value.name} has failed!`, error);\n            this._snackbar.openErrorSnackBar(\n                this.dataField.value.name + ' ' + this._translate.instant('dataField.snackBar.downloadFail')\n            );\n            this.state.progress = 0;\n        });\n    }\n\n    public changeMaxWidth(event: ResizedEvent) {\n        if (!!this.imageEl) {\n            this.imageEl.nativeElement.style.maxWidth = event.newRect.width + 'px';\n        }\n    }\n\n    protected initializePreviewIfDisplayable() {\n        const extension = this.dataField.value.name.split('.').reverse()[0];\n        this.isDisplayable = Object.values(FilePreviewType).includes(extension as any);\n        if (this.isDisplayable) {\n            this.previewExtension = FilePreviewType[extension];\n            this.initFileFieldImage();\n        }\n    }\n\n    public getHeight() {\n        return this.dataField.layout?.rows && this.dataField.layout?.rows !== 1 ?\n            (this.dataField.layout.rows) * FILE_FIELD_HEIGHT - FILE_FIELD_PADDING : FILE_FIELD_HEIGHT - FILE_FIELD_PADDING;\n    }\n\n    public getPreviewBorderWidth(): string {\n        if (this.borderPropertyEnabled('borderWidth')) {\n            return this.dataField.component.properties.borderWidth + 'px';\n        }\n        return `${AbstractFileDefaultFieldComponent.DEFAULT_PREVIEW_BORDER_WIDTH}px`;\n    }\n\n    public getPreviewBorderStyle(): string {\n        if (this.borderPropertyEnabled('borderStyle')) {\n            return this.dataField.component.properties.borderStyle;\n        }\n        return AbstractFileDefaultFieldComponent.DEFAULT_PREVIEW_BORDER_STYLE;\n    }\n\n    public getPreviewBorderColor(): string {\n        if (this.borderPropertyEnabled('borderColor')) {\n            return this.dataField.component.properties.borderColor;\n        }\n        return AbstractFileDefaultFieldComponent.DEFAULT_PREVIEW_BORDER_COLOR;\n    }\n\n    public isBorderLGBTQ(): boolean {\n        if (this.borderPropertyEnabled('borderLGBTQ')) {\n            return this.dataField.component.properties.borderLGBTQ === 'true';\n        }\n        return false;\n    }\n\n    public isBorderDefault(): boolean {\n        if (this.borderPropertyEnabled('borderEnabled')) {\n            return this.dataField.component.properties.borderEnabled === 'true';\n        }\n        return false;\n    }\n\n    public borderPropertyEnabled(property: string): boolean {\n        return !!this.dataField.component && !!this.dataField.component.properties && property in this.dataField.component.properties;\n    }\n\n    public hasTitle(): boolean {\n        return this.dataField.title !== undefined && this.dataField.title !== '';\n    }\n\n    public hasHint(): boolean {\n        return this.dataField.description !== undefined && this.dataField.description !== '';\n    }\n}\n","import {\n    Component,\n    Inject,\n    Input,\n    Optional,\n} from '@angular/core';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {FileListField} from './models/file-list-field';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\n\n/**\n * @deprecated\n * */\n@Component({\n    selector: 'ncc-abstract-filelist-field',\n    template: ''\n})\nexport abstract class AbstractFileListFieldComponent extends AbstractDataFieldComponent {\n\n    @Input() public dataField: FileListField;\n\n    @Input() taskId: string;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n\n}\n","import {\n    AfterViewInit,\n    Component,\n    ElementRef,\n    Inject,\n    Input,\n    OnDestroy,\n    OnInit,\n    Optional,\n    ViewChild\n} from \"@angular/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {FileListField, FileListFieldValidation} from \"../models/file-list-field\";\nimport {Subscription} from \"rxjs\";\nimport {TaskResourceService} from \"../../../resources/engine-endpoint/task-resource.service\";\nimport {LoggerService} from \"../../../logger/services/logger.service\";\nimport {SnackBarService} from \"../../../snack-bar/services/snack-bar.service\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {EventService} from \"../../../event/services/event.service\";\nimport {FileFieldIdBody} from \"../../models/file-field-id-body\";\nimport {EventOutcomeMessageResource} from \"../../../resources/interface/message-resource\";\nimport {ProgressType, ProviderProgress} from \"../../../resources/resource-provider.service\";\nimport {ChangedFieldsMap} from \"../../../event/services/interfaces/changed-fields-map\";\nimport {HttpParams} from \"@angular/common/http\";\nimport {take} from \"rxjs/operators\";\nimport {FileFieldValue} from \"../../file-field/models/file-field-value\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\nimport {FileFieldRequest} from \"../../../resources/interface/file-field-request-body\";\nimport {AbstractFileFieldDefaultComponent} from '../../models/abstract-file-field-default-component';\n\nexport interface FilesState {\n    progress: number;\n    uploading: boolean;\n    downloading: boolean;\n    completed: boolean;\n    error: boolean;\n}\n\n\n@Component({\n    selector: 'ncc-abstract-file-list-default-field',\n    template: ''\n})\nexport abstract class AbstractFileListDefaultFieldComponent extends AbstractFileFieldDefaultComponent<FileListField> implements OnInit, AfterViewInit, OnDestroy {\n\n    public uploadedFiles: Array<string>;\n    public state: FilesState;\n    private valueChange$: Subscription;\n\n    /**\n     * Values from file list field validation (eg. maxFiles 5)\n     * maxFilesNumber - maximum uploadable files\n     * maxFilesMessage - error message if number of files is exceeded\n     */\n    protected maxFilesNumber: number;\n    protected maxFilesMessage: string;\n\n    protected constructor(protected _taskResourceService: TaskResourceService,\n                          protected _log: LoggerService,\n                          protected _snackbar: SnackBarService,\n                          protected _translate: TranslateService,\n                          protected _eventService: EventService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<FileListField>) {\n        super(_log, _snackbar, _translate, dataFieldPortalData);\n        this.state = this.defaultState;\n        this.uploadedFiles = new Array<string>();\n        this.maxFilesNumber = Number.POSITIVE_INFINITY;\n        this.taskId = dataFieldPortalData.additionalFieldProperties.taskId as string;\n    }\n\n    ngOnInit(): void {\n        this.valueChange$ = this.dataField.valueChanges().subscribe(() => {\n            this.parseResponse();\n        });\n        if (this.dataField.validations && this.dataField.validations.length !== 0) {\n            const val = this.dataField.validations.find(validation =>\n                validation.validationRule.includes(FileListFieldValidation.MAX_FILES)\n            );\n            if (val && val.validationRule.split(' ').length === 2 && !isNaN(parseInt(val.validationRule.split(' ')[1], 10))) {\n                this.maxFilesNumber = parseInt(val.validationRule.split(' ')[1], 10);\n                this.maxFilesMessage = val.validationMessage && val.validationMessage !== '' ? val.validationMessage : null;\n            }\n        }\n    }\n\n    /**\n     * Set file picker and image elements to [FileFieldService]{@link FileFieldService}.\n     *\n     * Initialize file image.\n     */\n    ngAfterViewInit(): void {\n        if (this.fileUploadEl) {\n            this.fileUploadEl.nativeElement.onchange = () => {\n                this.upload();\n            };\n        }\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.valueChange$.unsubscribe();\n    }\n\n    public chooseFile() {\n        if (this.state.uploading || this.formControlRef.disabled) {\n            return;\n        }\n        this.fileUploadEl.nativeElement.click();\n    }\n\n    /**\n     * Call after click on file field.\n     *\n     * If file field has no file uploaded\n     * [FilesUploadComponent]{@link AbstractFilesUploadComponent} via [SideMenu]{@link SideMenuService} opens.\n     *\n     * Otherwise opens a file picker from which the user can select files.\n     */\n    public upload() {\n        if (!this.fileUploadEl.nativeElement.files || this.fileUploadEl.nativeElement.files.length === 0) {\n            return;\n        }\n        if (!this.taskId) {\n            this._log.error('File cannot be uploaded. No task is set to the field.');\n            return;\n        }\n        if (this.fileUploadEl.nativeElement.files.length + this.uploadedFiles.length > this.maxFilesNumber) {\n            this._snackbar.openErrorSnackBar(this.maxFilesMessage ? this.maxFilesMessage :\n                this._translate.instant('dataField.snackBar.maxFilesExceeded') + this.maxFilesNumber\n            );\n            this.fileUploadEl.nativeElement.value = '';\n            return;\n        }\n\n        let filesToUpload = Array.from(this.fileUploadEl.nativeElement.files);\n        let sum = 0;\n        filesToUpload.forEach(item => sum += item.size);\n        if (this.dataField.maxUploadSizeInBytes &&\n            this.dataField.maxUploadSizeInBytes < sum) {\n            this._log.error('Files cannot be uploaded. Maximum size of files exceeded.');\n            this.resolveMaxSizeMessage();\n            this.fileUploadEl.nativeElement.value = '';\n            return;\n        }\n\n        if (this.dataField.value?.namesPaths && this.dataField.value?.namesPaths.length !== 0) {\n            this.dataField.value.namesPaths.forEach(namePath => {\n                filesToUpload = filesToUpload.filter(fileToUpload => fileToUpload.name !== namePath.name);\n            });\n            if (filesToUpload.length === 0) {\n                this._log.error('User chose the same files that are already uploaded. Uploading skipped');\n                this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.wontUploadSameFiles'));\n                this.fileUploadEl.nativeElement.value = '';\n                return;\n            }\n        }\n\n        if (!this.checkAllowedTypes()) {\n            return;\n        }\n\n        this.state = this.defaultState;\n        this.state.uploading = true;\n        const fileFormData = new FormData();\n\n        filesToUpload.forEach(fileToUpload => {\n            fileFormData.append('files', fileToUpload);\n        });\n        const requestBody: FileFieldRequest = {\n            parentTaskId: this.resolveParentTaskId(),\n            fieldId: this.dataField.stringId,\n        }\n        fileFormData.append('data', new Blob([JSON.stringify(requestBody)], {type: 'application/json'}));\n        this._taskResourceService.uploadFile(this.taskId, fileFormData, true).subscribe((response: EventOutcomeMessageResource) => {\n                if ((response as ProviderProgress).type && (response as ProviderProgress).type === ProgressType.UPLOAD) {\n                    this.state.progress = (response as ProviderProgress).progress;\n                } else {\n                    this.state.completed = true;\n                    this.state.uploading = false;\n                    this.state.progress = 0;\n                    this._log.debug(\n                        `Files [${this.dataField.stringId}] were successfully uploaded`\n                    );\n                    if (response.error) {\n                        this.state.error = true;\n                        this._log.error(\n                            `File [${this.dataField.stringId}] ${this.fileUploadEl.nativeElement.files.item(0)} uploading has failed!`, response.error\n                        );\n                        if (response.error) {\n                            this._snackbar.openErrorSnackBar(this._translate.instant(response.error));\n                        } else {\n                            this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.fileUploadFailed'));\n                        }\n                    } else {\n                        const changedFieldsMap: ChangedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(response.outcome);\n                        this.dataField.emitChangedFields(changedFieldsMap);\n                        this.state.error = false;\n                        filesToUpload.forEach(fileToUpload => {\n                            this.uploadedFiles.push(fileToUpload.name);\n                            this.dataField.value.namesPaths.push({name: fileToUpload.name});\n                            this.formControlRef.setValue(this.dataField.value.namesPaths.map(namePath => {\n                                return namePath['name'];\n                            }).join('/'));\n                        });\n                    }\n                    this.dataField.touch = true;\n                    this.dataField.update();\n                    this.fileUploadEl.nativeElement.value = '';\n                }\n            }, error => {\n                this.state.completed = true;\n                this.state.error = true;\n                this.state.uploading = false;\n                this.state.progress = 0;\n                if (error?.error?.message) {\n                    this._snackbar.openErrorSnackBar(this._translate.instant(error.error.message));\n                } else {\n                    this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.fileUploadFailed'));\n                }\n                this._log.error(\n                    `File [${this.dataField.stringId}] ${this.fileUploadEl.nativeElement.files.item(0)} uploading has failed!`, error\n                );\n                this.dataField.touch = true;\n                this.dataField.update();\n                this.fileUploadEl.nativeElement.value = '';\n            });\n    }\n\n    public download(fileName: string) {\n        if (!this.dataField.value?.namesPaths?.find(namePath => namePath.name === fileName)) {\n            return;\n        }\n        if (!this.taskId) {\n            this._log.error('File cannot be downloaded. No task is set to the field.');\n            return;\n        }\n\n        this.state = this.defaultState;\n        this.state.downloading = true;\n        let params = new HttpParams();\n        params = params.set(\"fieldId\", this.dataField.stringId);\n        params = params.set(\"fileName\", fileName);\n        this._taskResourceService.downloadFile(this.resolveParentTaskId(), params).subscribe(response => {\n            if ((response as ProviderProgress).type && (response as ProviderProgress).type === ProgressType.DOWNLOAD) {\n                this.state.progress = (response as ProviderProgress).progress;\n            } else {\n                this._log.debug(`File [${this.dataField.stringId}] ${fileName} was successfully downloaded`);\n                this.downloadViaAnchor(response as Blob, fileName);\n                this.state.downloading = false;\n                this.state.progress = 0;\n                this.dataField.downloaded.push(fileName);\n            }\n        }, error => {\n            this._log.error(`Downloading file [${this.dataField.stringId}] ${fileName} has failed!`, error);\n            this._snackbar.openErrorSnackBar(fileName + ' ' + this._translate.instant('dataField.snackBar.downloadFail'));\n            this.state.downloading = false;\n            this.state.progress = 0;\n        });\n    }\n\n    protected downloadViaAnchor(blob: Blob, fileName: string): void {\n        const a = document.createElement('a');\n        document.body.appendChild(a);\n        a.setAttribute('style', 'display: none');\n        blob = new Blob([blob], {type: 'application/octet-stream'});\n        const url = window.URL.createObjectURL(blob);\n        a.href = url;\n        a.download = fileName;\n        a.click();\n        window.URL.revokeObjectURL(url);\n        document.body.removeChild(a);\n    }\n\n    public deleteFile(fileName: string) {\n        if (!this.dataField.value?.namesPaths?.find(namePath => namePath.name === fileName)) {\n            return;\n        }\n        if (!this.taskId) {\n            this._log.error('File cannot be deleted. No task is set to the field.');\n            return;\n        }\n        const requestBody: FileFieldRequest = {\n            parentTaskId: this.resolveParentTaskId(),\n            fieldId: this.dataField.stringId,\n            fileName\n        }\n        this._taskResourceService.deleteFile(this.taskId, requestBody).pipe(take(1)).subscribe((response: EventOutcomeMessageResource) => {\n            if (response.success) {\n                const changedFieldsMap: ChangedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(response.outcome);\n                this.dataField.emitChangedFields(changedFieldsMap);\n                this.fileUploadEl.nativeElement.value = '';\n                this.uploadedFiles = this.uploadedFiles.filter(uploadedFile => uploadedFile !== fileName);\n                if (this.dataField.value.namesPaths) {\n                    this.dataField.value.namesPaths = this.dataField.value.namesPaths.filter(namePath => namePath.name !== fileName);\n                    this.formControlRef.setValue(this.dataField.value.namesPaths.map(namePath => {\n                        return namePath['name'];\n                    }).join('/'));\n                    this.dataField.update();\n                }\n                this.dataField.downloaded = this.dataField.downloaded.filter(one => one !== fileName);\n                this._log.debug(`File [${this.dataField.stringId}] ${fileName} was successfully deleted`);\n                this.formControlRef.markAsTouched();\n            } else {\n                this._log.error(`Deleting file [${this.dataField.stringId}] ${fileName} has failed!`, response.error);\n                this._snackbar.openErrorSnackBar(\n                    fileName + ' ' + this._translate.instant('dataField.snackBar.fileDeleteFailed')\n                );\n            }\n        });\n    }\n\n    protected get defaultState(): FilesState {\n        return {\n            progress: 0,\n            completed: false,\n            error: false,\n            uploading: false,\n            downloading: false\n        };\n    }\n\n    /**\n     * Construct display name.\n     */\n    public constructDisplayName(): string {\n        if (!!this.dataField && !!this.dataField.placeholder) {\n            return this.dataField.placeholder;\n        }\n        return this._translate.instant('dataField.file.noFile');\n    }\n\n    protected parseResponse(): void {\n        if (this.dataField.value) {\n            if (!!this.dataField.value.namesPaths && this.dataField.value.namesPaths.length !== 0) {\n                this.uploadedFiles = new Array<string>();\n                this.dataField.value.namesPaths.forEach(namePath => {\n                    this.uploadedFiles.push(namePath.name);\n                });\n            } else {\n                this.dataField.value.namesPaths = new Array<FileFieldValue>();\n            }\n            this.uploadedFiles = this.dataField.value.namesPaths.map(namePath => namePath.name);\n        }\n    }\n}\n","import {Component, Inject, Input, Optional} from '@angular/core';\nimport {MultichoiceField} from './models/multichoice-field';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {FormControl} from '@angular/forms';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\n\n/**\n * @deprecated\n * */\n@Component({\n    selector: 'ncc-abstract-multichoice-field',\n    template: ''\n})\nexport abstract class AbstractMultichoiceFieldComponent extends AbstractDataFieldComponent {\n\n  @Input() dataField: MultichoiceField;\n\n  protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n      super(informAboutInvalidData);\n      this._formControl = new FormControl('');\n  }\n}\n","export enum MultichoiceAutocompleteFilterProperty {\n    PREFIX='prefix',\n    SUBSTRING='substring'\n}\n","import {Component, ElementRef, Inject, OnDestroy, OnInit, Optional, ViewChild} from '@angular/core';\nimport {MultichoiceField, MultichoiceFieldValue} from '../models/multichoice-field';\nimport {COMMA, ENTER} from '@angular/cdk/keycodes';\nimport {MatChipInputEvent} from '@angular/material/chips';\nimport {Observable, of, Subscription} from 'rxjs';\nimport {MultichoiceAutocompleteFilterProperty} from './multichoice-autocomplete-filter-property';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\n\n@Component({\n    selector: 'ncc-abstract-multichoice-autocomplete-field',\n    template: ''\n})\nexport abstract class AbstractMultichoiceAutocompleteFieldComponentComponent extends AbstractBaseDataFieldComponent<MultichoiceField> implements OnInit, OnDestroy {\n\n    @ViewChild('input') input: ElementRef;\n\n    separatorKeysCodes: number[] = [ENTER, COMMA];\n\n    subscriptionChangeData$: Subscription;\n\n    filteredOptions: Observable<Array<MultichoiceFieldValue>>;\n\n    constructor(@Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<MultichoiceField>) {\n        super(dataFieldPortalData);\n    }\n\n    ngOnInit() {\n        this.subscriptionChangeData$ = this.formControlRef.valueChanges.subscribe(newVal => {\n            this.filteredOptions = of(this._filter(newVal ?? '').filter((option) => !this.dataField.value?.includes(option.key)));\n        })\n    }\n\n    ngOnDestroy(): void {\n        this.filteredOptions = undefined;\n        this.subscriptionChangeData$.unsubscribe();\n    }\n\n    add(event: MatChipInputEvent): void {\n        const value = event['key'] ?? '';\n\n        if (value) {\n            this.dataField.value = this.dataField.value === null ? [] : this.dataField.value\n            const choiceArray = [...this.dataField.value];\n            choiceArray.push(value);\n            this.dataField.value = choiceArray;\n            this.input.nativeElement.value = '';\n            this.change();\n        } else {\n            this.input.nativeElement.value = '';\n            this.change();\n        }\n    }\n\n    remove(value: string): void {\n        const index = this.dataField.value.indexOf(value);\n\n        if (index >= 0) {\n            const choiceArray = [...this.dataField.value];\n            choiceArray.splice(index, 1);\n            this.dataField.value = choiceArray;\n            this.change();\n        }\n    }\n\n    change() {\n        if (this.input.nativeElement.value !== undefined) {\n            this.filteredOptions = of(this._filter(this.input.nativeElement.value).filter((option) => !this.dataField.value?.includes(option.key)));\n        }\n    }\n\n    protected filterType(): string | undefined {\n        if (this.checkPropertyInComponent('filter')) {\n            return this.dataField.component.properties.filter;\n        }\n    }\n\n    protected _filter(value: string): Array<MultichoiceFieldValue> {\n        let filterType = this.filterType()?.toLowerCase()\n        switch (filterType) {\n            case MultichoiceAutocompleteFilterProperty.SUBSTRING:\n                return this._filterInclude(value);\n            case MultichoiceAutocompleteFilterProperty.PREFIX:\n                return this._filterIndexOf(value);\n            default:\n                return this._filterIndexOf(value);\n        }\n    }\n\n    protected _filterInclude(value: string): Array<MultichoiceFieldValue> {\n        if (Array.isArray(value)) {\n            value = '';\n        }\n        const filterValue = value?.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n        return this.dataField.choices.filter(option => option.value.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').includes(filterValue));\n    }\n\n    protected _filterIndexOf(value: string): Array<MultichoiceFieldValue> {\n        if (Array.isArray(value)) {\n            value = '';\n        }\n        const filterValue = value?.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n\n        return this.dataField.choices.filter(option => option.value.toLowerCase().normalize('NFD')\n            .replace(/[\\u0300-\\u036f]/g, '').indexOf(filterValue) === 0);\n    }\n\n    public renderSelection = (key) => {\n        if (key !== undefined && key !== '' && key !== null) {\n            const choice = this.dataField.choices.find(c => c.key === key);\n            if (choice) {\n                return choice.value\n            }\n        }\n        return key;\n    }\n\n    public getValueFromKey(key: string): string | undefined {\n        return this.dataField.choices.find(choice => choice.key === key)?.value;\n    }\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {MultichoiceField} from '../models/multichoice-field';\nimport {FormControl} from '@angular/forms';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\n\n@Component({\n    selector: 'ncc-abstract-multichoice-list-field',\n    template: ''\n})\nexport abstract class AbstractMultichoiceListFieldComponent extends AbstractBaseDataFieldComponent<MultichoiceField> {\n\n    selected: Array<string>;\n    validate: FormControl;\n\n    constructor(@Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<MultichoiceField>) {\n        super(dataFieldPortalData);\n    }\n}\n","import {AfterViewInit, Component, Inject, Injector, OnDestroy, Optional, Type} from \"@angular/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {MultichoiceField} from '../models/multichoice-field';\nimport {AbstractCaseRefBaseFieldComponent} from '../../case-ref-field/model/abstract-case-ref-base-field-component';\nimport {Subscription} from 'rxjs';\n\n@Component({\n    selector: 'ncc-abstract-case-ref-default',\n    template: ''\n})\nexport abstract class AbstractMultichoiceCaseRefComponent extends AbstractCaseRefBaseFieldComponent<MultichoiceField> implements AfterViewInit, OnDestroy {\n\n    public componentPortal: ComponentPortal<any>;\n    protected _sub: Subscription;\n    protected _subComp: Subscription;\n\n    protected constructor(protected injector: Injector,\n                          protected caseViewType: Type<any>,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<MultichoiceField>) {\n        super(injector, caseViewType, dataFieldPortalData);\n    }\n\n    ngAfterViewInit(): void {\n        this.callCreateFilter();\n        this._sub = this.dataField.updatedChoices.subscribe(() => {\n            this.callCreateFilter();\n        });\n        this._subComp = this.dataField.componentChange$().subscribe(() => {\n            this.callCreateFilter();\n        });\n    }\n\n    protected callCreateFilter() {\n        this.createFilter(this.dataField.choices.length > 0 ? this.dataField.choices.map(value => value.key) : '');\n    }\n\n    ngOnDestroy() {\n        super.ngOnDestroy();\n        this._sub.unsubscribe();\n        this._subComp.unsubscribe();\n    }\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {MultichoiceField} from '../models/multichoice-field';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\n\n@Component({\n    selector: 'ncc-abstract-multichoice-select-field',\n    template: ''\n})\nexport abstract class AbstractMultichoiceSelectFieldComponent extends AbstractBaseDataFieldComponent<MultichoiceField> {\n\n    constructor(@Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<MultichoiceField>) {\n        super(dataFieldPortalData);\n    }\n\n}\n","import {Component, Inject, Input, Optional} from '@angular/core';\nimport {NumberField} from './models/number-field';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {TranslateService} from '@ngx-translate/core';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\n\n/**\n * @deprecated\n * */\n@Component({\n    selector: 'ncc-abstract-number-field',\n    template: ''\n})\nexport abstract class AbstractNumberFieldComponent extends AbstractDataFieldComponent {\n\n    @Input() public dataField: NumberField;\n\n    protected constructor(protected _translate: TranslateService,\n                          @Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n\n}\n","import {NumberField, NumberFieldValidation} from './models/number-field';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Component, Inject, Optional} from '@angular/core';\nimport {AbstractBaseDataFieldComponent} from \"../base-component/abstract-base-data-field.component\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../models/data-field-portal-data-injection-token\";\n\n@Component({\n    selector: 'ncc-abstract-number-errors-field',\n    template: ''\n})\nexport abstract class AbstractNumberErrorsComponent extends AbstractBaseDataFieldComponent<NumberField>{\n\n    protected constructor(protected _translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<NumberField>) {\n        super(dataFieldPortalData);\n    }\n\n    getErrorMessage() {\n        if (this.formControlRef.hasError(NumberFieldValidation.REQUIRED)) {\n            return this._translate.instant('dataField.validations.required');\n        }\n        if (this.formControlRef.hasError(NumberFieldValidation.VALID_ODD)) {\n            return this.resolveErrorMessage(NumberFieldValidation.ODD, this._translate.instant('dataField.validations.odd'));\n        }\n        if (this.formControlRef.hasError(NumberFieldValidation.VALID_EVEN)) {\n            return this.resolveErrorMessage(NumberFieldValidation.EVEN, this._translate.instant('dataField.validations.even'));\n        }\n        if (this.formControlRef.hasError(NumberFieldValidation.VALID_POSITIVE)) {\n            return this.resolveErrorMessage(NumberFieldValidation.POSITIVE, this._translate.instant('dataField.validations.positive'));\n        }\n        if (this.formControlRef.hasError(NumberFieldValidation.VALID_NEGATIVE)) {\n            return this.resolveErrorMessage(NumberFieldValidation.NEGATIVE, this._translate.instant('dataField.validations.negative'));\n        }\n        if (this.formControlRef.hasError(NumberFieldValidation.VALID_DECIMAL)) {\n            return this.resolveErrorMessage(NumberFieldValidation.DECIMAL, this._translate.instant('dataField.validations.decimal'));\n        }\n        if (this.formControlRef.hasError(NumberFieldValidation.VALID_IN_RANGE)) {\n            const tmp = this.dataField.validations.find(value =>\n                value.validationRule.includes(NumberFieldValidation.IN_RANGE)\n            ).validationRule.split(' ');\n            return this.resolveErrorMessage(\n                NumberFieldValidation.IN_RANGE, this._translate.instant('dataField.validations.inrange', {range: tmp[1]})\n            );\n        }\n        return '';\n    }\n\n    resolveErrorMessage(search: string, generalMessage: string) {\n        const validation = this.dataField.validations.find(value => value.validationRule.includes(search));\n        if (validation.validationMessage && validation.validationMessage !== '') {\n            return validation.validationMessage;\n        }\n        return generalMessage;\n    }\n}\n","import {AfterViewInit, Component, Inject, Optional} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {CurrencyPipe, getCurrencySymbol} from '@angular/common';\nimport {AbstractNumberErrorsComponent} from '../abstract-number-errors.component';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {NumberField} from \"../models/number-field\";\n\n@Component({\n    selector: 'ncc-abstract-currency-field',\n    template: ''\n})\nexport abstract class AbstractCurrencyNumberFieldComponent extends AbstractNumberErrorsComponent implements AfterViewInit {\n\n    transformedValue: string;\n    fieldType: string;\n    public readonly NUMBER_TYPE = 'number';\n    public readonly TEXT_TYPE = 'text';\n    public readonly WHITESPACE = ' ';\n\n    protected constructor(protected _currencyPipe: CurrencyPipe, translateService: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<NumberField>) {\n        super(translateService, dataFieldPortalData);\n    }\n\n    ngAfterViewInit() {\n        setTimeout(() => {\n            this.fieldType = this.TEXT_TYPE;\n            this.transformedValue = this.transformCurrency(this.dataField.value?.toString());\n            this.dataField.valueChanges().subscribe(value => {\n                if (value !== undefined && value !== null) {\n                    if (this.fieldType === this.TEXT_TYPE) {\n                        this.transformedValue = this.transformCurrency(value.toString()) + this.WHITESPACE;\n                    }\n                } else {\n                    this.transformedValue = '';\n                }\n            });\n        })\n    }\n\n    transformToText(event: Event) {\n        const target = (event.target as HTMLInputElement);\n        this.fieldType = this.TEXT_TYPE;\n        this.transformedValue = this.transformCurrency(target.value);\n    }\n\n    transformToNumber() {\n        this.fieldType = this.NUMBER_TYPE;\n        this.transformedValue = !!this.dataField.value ? this.dataField.value.toString() : '0';\n    }\n\n    getCurrencySymbol(): string {\n        if (this.dataField._formatFilter === undefined) {\n            return getCurrencySymbol(this.dataField.component.properties['code'],\n                'wide', this.dataField.component.properties['locale']);\n        }\n        return getCurrencySymbol(this.dataField._formatFilter.code, 'wide', this.dataField._formatFilter.locale);\n    }\n\n    isNumberType(): boolean {\n        return this.fieldType === this.NUMBER_TYPE;\n    }\n\n    private transformCurrency(value: string | undefined): string {\n        value = !!value ? value : '0';\n        if (this.dataField._formatFilter === undefined) {\n            return this._currencyPipe.transform(\n                parseFloat(value),\n                this.dataField.component.properties['code'],\n                'symbol',\n                '1.' + this.dataField.component.properties['fractionSize'] + '-' + this.dataField.component.properties['fractionSize'],\n                this.dataField.component.properties['locale']);\n        }\n        return this._currencyPipe.transform(\n            parseFloat(value),\n            this.dataField._formatFilter.code,\n            'symbol',\n            '1.' + this.dataField._formatFilter.fractionSize + '-' + this.dataField._formatFilter.fractionSize,\n            this.dataField._formatFilter.locale);\n    }\n}\n","import {TranslateService} from '@ngx-translate/core';\nimport {AbstractNumberErrorsComponent} from '../abstract-number-errors.component';\nimport {Component, Inject, Optional} from '@angular/core';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {NumberField} from \"../models/number-field\";\n\n@Component({\n    selector: 'ncc-abstract-number-default-field',\n    template: ''\n})\nexport abstract class AbstractDefaultNumberFieldComponent extends AbstractNumberErrorsComponent {\n\n    protected constructor(translateService: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<NumberField>) {\n        super(translateService, dataFieldPortalData);\n    }\n}\n","import {AfterViewInit, ChangeDetectorRef, Component, Inject, Optional} from \"@angular/core\";\nimport {AbstractNumberErrorsComponent} from \"../abstract-number-errors.component\";\nimport {DecimalPipe} from \"@angular/common\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {NumberField} from \"../models/number-field\";\n\n@Component({\n    selector: 'ncc-abstract-number-decimal-field',\n    template: ''\n})\nexport abstract class AbstractNumberDecimalFieldComponent extends AbstractNumberErrorsComponent implements AfterViewInit {\n\n    transformedValue: string;\n    fieldType: string;\n    public readonly NUMBER_TYPE = 'number';\n    public readonly TEXT_TYPE = 'text';\n    public readonly WHITESPACE = ' ';\n\n    protected constructor(protected _decimalPipe: DecimalPipe,\n                          _translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<NumberField>) {\n        super(_translate, dataFieldPortalData);\n    }\n\n    ngAfterViewInit() {\n        setTimeout(() => {\n            this.fieldType = this.TEXT_TYPE;\n            this.transformedValue = this.transformDecimal(this.dataField.value?.toString());\n            this.dataField.valueChanges().subscribe(value => {\n                if (value !== undefined && value !== null) {\n                    if (this.fieldType === this.TEXT_TYPE) {\n                        this.transformedValue = this.transformDecimal(value.toString());\n                    }\n                } else {\n                    this.transformedValue = '';\n                }\n            });\n        })\n    }\n\n    transformToText(event: Event) {\n        const target = (event.target as HTMLInputElement);\n        this.fieldType = this.TEXT_TYPE;\n        this.transformedValue = this.transformDecimal(target.value);\n    }\n\n    transformToNumber() {\n        this.fieldType = this.NUMBER_TYPE;\n        this.transformedValue = !!this.dataField.value ? this.dataField.value.toString() : '0';\n    }\n\n    isNumberType(): boolean {\n        return this.fieldType === this.NUMBER_TYPE;\n    }\n\n    private transformDecimal(value: string | undefined): string {\n        value = !!value ? value : '0';\n        if (!!this.dataField.component) {\n            return this._decimalPipe.transform(\n                parseFloat(value),\n                this.dataField.component.properties['digitsInfo'],\n                this.dataField.component.properties['locale']);\n        }\n        return value;\n    }\n}\n","import {Component, Inject, Input, Optional} from '@angular/core';\nimport {TextField} from './models/text-field';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\n\n@Component({\n    selector: 'ncc-abstract-text-field',\n    template: ''\n})\nexport abstract class AbstractTextFieldComponent extends AbstractDataFieldComponent {\n\n    @Input() dataField: TextField;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n}\n","import {FormControl} from '@angular/forms';\nimport {TextField, TextFieldValidation} from './models/text-field';\nimport {TranslateService} from '@ngx-translate/core';\nimport {TextAreaField} from './models/text-area-field';\nimport {Component, Inject, Optional} from \"@angular/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../base-component/abstract-base-data-field.component\";\n\n@Component({\n    selector: 'ncc-text-errors',\n    template: ''\n})\nexport abstract class AbstractTextErrorsComponent<T extends TextField> extends AbstractBaseDataFieldComponent<T>{\n\n    protected constructor(protected _translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<T>) {\n        super(dataFieldPortalData);\n    }\n\n    protected buildErrorMessage(textField: TextField | TextAreaField, formControlRef: FormControl) {\n        if (formControlRef.hasError(TextFieldValidation.REQUIRED)) {\n            return this._translate.instant('dataField.validations.required');\n        }\n        if (formControlRef.hasError(TextFieldValidation.VALID_MIN_LENGTH)) {\n            return this.resolveErrorMessage(textField, TextFieldValidation.MIN_LENGTH,\n                this._translate.instant('dataField.validations.minLength', {length: formControlRef.errors.minlength.requiredLength}));\n        }\n        if (formControlRef.hasError(TextFieldValidation.VALID_MAX_LENGTH)) {\n            return this.resolveErrorMessage(textField, TextFieldValidation.MAX_LENGTH,\n                this._translate.instant('dataField.validations.maxLength', {length: formControlRef.errors.maxlength.requiredLength}));\n        }\n        if (formControlRef.hasError(TextFieldValidation.PATTERN)) {\n            return this.resolveErrorMessage(textField, TextFieldValidation.REGEX, this._translate.instant('dataField.validations.pattern'));\n        }\n        if (formControlRef.hasError(TextFieldValidation.VALID_TEL_NUMBER)) {\n            return this.resolveErrorMessage(\n                textField, TextFieldValidation.TEL_NUMBER, this._translate.instant('dataField.validations.phone')\n            );\n        }\n        if (formControlRef.hasError(TextFieldValidation.EMAIL)) {\n            return this.resolveErrorMessage(textField, TextFieldValidation.EMAIL, this._translate.instant('dataField.validations.email'));\n        }\n        return '';\n    }\n\n    protected resolveErrorMessage(textField: TextField | TextAreaField, search: string, generalMessage: string) {\n        const validation = textField.validations.find(value => value.validationRule.includes(search));\n        if (validation.validationMessage && validation.validationMessage !== '') {\n            return validation.validationMessage;\n        }\n        return generalMessage;\n    }\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {TextField} from '../models/text-field';\nimport {TranslateService} from '@ngx-translate/core';\nimport {AbstractTextErrorsComponent} from '../abstract-text-errors.component';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\n\n@Component({\n    selector: 'ncc-abstract-simple-text-field',\n    template: ''\n})\nexport abstract class AbstractSimpleTextFieldComponent extends AbstractTextErrorsComponent<TextField> {\n\n    constructor(protected _translate: TranslateService,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TextField>) {\n        super(_translate, dataFieldPortalData);\n    }\n\n    public getErrorMessage() {\n        return this.buildErrorMessage(this.dataField, this.formControlRef);\n    }\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {AbstractTextErrorsComponent} from '../abstract-text-errors.component';\nimport {TextAreaField} from '../models/text-area-field';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\n\n@Component({\n    selector: 'ncc-abstract-rich-text-field',\n    template: ''\n})\nexport abstract class AbstractRichTextareaFieldComponent extends AbstractTextErrorsComponent<TextAreaField> {\n\n    // TODO BUG: update on blur dont working, switch back to update on ngModel\n    constructor(protected _translate: TranslateService,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TextAreaField>) {\n        super(_translate, dataFieldPortalData);\n    }\n\n    public getErrorMessage() {\n        return this.buildErrorMessage(this.dataField, this.formControlRef);\n    }\n}\n","import {Component, Inject, OnInit, Optional} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {AbstractTextErrorsComponent} from '../abstract-text-errors.component';\nimport {TextAreaField} from '../models/text-area-field';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\n\n@Component({\n    selector: 'ncc-abstract-html-area-field',\n    template: ''\n})\nexport abstract class AbstractHtmlTextareaFieldComponent extends AbstractTextErrorsComponent<TextAreaField> implements OnInit {\n\n    public quillModules = {\n        toolbar: [\n            ['bold', 'italic', 'underline', 'strike'],        // toggled buttons\n            ['blockquote', 'code-block'],\n            [{ list: 'ordered'}, { list: 'bullet' }],      // ordered/unordered list\n            [{ script: 'sub'}, { script: 'super' }],      // superscript/subscript\n            [{ indent: '-1'}, { indent: '+1' }],          // outdent/indent\n\n            [{ header: [1, 2, 3, 4, 5, 6, false] }],\n\n            [{ color: [] }, { background: [] }],          // dropdown with defaults from theme\n            [{ font: [] }],\n            [{ align: '' }, { align: 'center' }, { align: 'right' }, { align: 'justify' }],     // alignment buttons\n\n            ['clean'],                                         // remove formatting button\n\n            ['link', 'image', 'video']                         // link and image, video\n        ]\n    };\n\n    public disabledDisplay: SafeHtml;\n\n    constructor(protected _translate: TranslateService, protected _sanitizer: DomSanitizer,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TextAreaField>) {\n        super(_translate, dataFieldPortalData);\n    }\n\n    ngOnInit(): void {\n        this.disabledDisplay = this.sanitizeValue();\n        this.dataField.valueChanges().subscribe(() => {\n            this.disabledDisplay = this.sanitizeValue();\n        });\n    }\n\n    protected sanitizeValue(): SafeHtml {\n        return this._sanitizer.bypassSecurityTrustHtml(this.dataField.value !== undefined ? this.dataField.value : '');\n    }\n\n    public getErrorMessage() {\n        return this.buildErrorMessage(this.dataField, this.formControlRef);\n    }\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {TextField} from '../models/text-field';\nimport {TranslateService} from '@ngx-translate/core';\nimport {AbstractTextErrorsComponent} from '../abstract-text-errors.component';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\n\n@Component({\n    selector: 'ncc-abstract-password-text-field',\n    template: ''\n})\nexport abstract class AbstractPasswordTextFieldComponent extends AbstractTextErrorsComponent<TextField> {\n\n    constructor(protected _translate: TranslateService,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TextField>) {\n        super(_translate, dataFieldPortalData);\n    }\n\n    public getErrorMessage() {\n        return this.buildErrorMessage(this.dataField, this.formControlRef);\n    }\n}\n","import {AfterViewInit, Component, Inject, Optional} from '@angular/core';\nimport {ElementRef, NgZone, ViewChild} from '@angular/core';\nimport {TextAreaHeight, TextField} from '../models/text-field';\nimport {TranslateService} from '@ngx-translate/core';\nimport {take} from 'rxjs/operators';\nimport {CdkTextareaAutosize} from '@angular/cdk/text-field';\nimport {AbstractTextErrorsComponent} from '../abstract-text-errors.component';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {TextAreaField} from \"../models/text-area-field\";\n\n@Component({\n    selector: 'ncc-abstract-text-area-field',\n    template: ''\n})\nexport abstract class AbstractTextareaFieldComponent extends AbstractTextErrorsComponent<TextField> implements AfterViewInit {\n\n    @ViewChild('dynamicTextArea') dynamicTextArea: CdkTextareaAutosize;\n    @ViewChild('textArea') textArea: ElementRef<HTMLTextAreaElement>;\n\n    constructor(protected _translate: TranslateService, protected _ngZone: NgZone,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TextAreaField>) {\n        super(_translate, dataFieldPortalData);\n    }\n\n    ngAfterViewInit() {\n        this.triggerResize();\n        this.textArea.nativeElement.style.minHeight = this.getHeight() + 'px';\n        if (parseInt(this.textArea.nativeElement.style.height, 10) < this.getHeight()) {\n            this.textArea.nativeElement.style.height = this.getHeight() + 'px';\n        }\n    }\n\n    public getHeight() {\n        const oneHeight = this.dataField.layout && this.dataField.layout.appearance === 'outline' ?\n            TextAreaHeight.OUTLINE : TextAreaHeight.FILL_STANDARD;\n        return this.dataField.layout?.rows && this.dataField.layout?.rows !== 1 ?\n            (this.dataField.layout.rows - 1) * TextField.FIELD_HEIGHT + oneHeight : oneHeight;\n    }\n\n    triggerResize() {\n        this._ngZone.onStable.pipe(take(1))\n            .subscribe(() => this.dynamicTextArea.resizeToFitContent(true));\n    }\n\n    public getErrorMessage() {\n        return this.buildErrorMessage(this.dataField, this.formControlRef);\n    }\n}\n","import {Component, Inject, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {AbstractTextErrorsComponent} from './abstract-text-errors.component';\nimport {TextField} from './models/text-field';\nimport {CustomCard} from '../../dashboard/cards/model/custom-dashboard-model/custom-card';\nimport {Subscription} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../models/data-field-portal-data-injection-token\";\n\n@Component({\n    selector: 'ncc-abstract-dashboard-text-field',\n    template: ''\n})\nexport abstract class AbstractDashboardTextFieldComponent extends AbstractTextErrorsComponent<TextField> implements OnInit, OnDestroy {\n    public card?: CustomCard;\n    public initialized: boolean = false;\n    protected _sub: Subscription;\n\n    protected constructor(translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TextField>) {\n        super(translate, dataFieldPortalData);\n    }\n\n    ngOnInit(): void {\n        if (this.formControlRef.value !== undefined) {\n            this.card = this.createCard(this.formControlRef.value);\n            this.initialized = true;\n        }\n        this._sub = this.formControlRef.valueChanges.subscribe(newVal => {\n            this.card = this.createCard(newVal);\n            this.initialized = true;\n        });\n    }\n\n    ngOnDestroy(): void {\n        this._sub.unsubscribe();\n    }\n\n    protected abstract createCard(textFieldValue: string): CustomCard;\n\n    public getErrorMessage() {\n        return this.buildErrorMessage(this.dataField, this.formControlRef);\n    }\n}\n","export enum DashboardCardTypes {\n    BLANK = 'blank',\n    COUNT = 'count',\n    GRAPH = 'graph',\n    IFRAME = 'iframe',\n    PIE = 'pie',\n    LINE = 'line',\n    LINEARGAUGE = 'lineargauge',\n    BAR = 'bar',\n    PORTAL = 'portal',\n    DEFAULT = 'default'\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {CustomCard} from '../../../dashboard/cards/model/custom-dashboard-model/custom-card';\nimport {DashboardCardTypes} from '../../../dashboard/cards/model/dashboard-card-types';\nimport {FilterType} from '../../../filter/models/filter-type';\nimport {AbstractDashboardTextFieldComponent} from '../abstract-dashboard-text-field.component';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {TextField} from \"../models/text-field\";\n\n@Component({\n    selector: 'ncc-abstract-dashboard-line-chart-text-field',\n    template: ''\n})\nexport abstract class AbstractDashboardLineChartTextFieldComponent extends AbstractDashboardTextFieldComponent {\n\n    protected constructor(translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TextField>) {\n        super(translate, dataFieldPortalData);\n    }\n\n    protected createCard(textFieldValue: string): CustomCard {\n        const parsedValue = JSON.parse(textFieldValue) as CustomCard;\n        return {\n            type: DashboardCardTypes.LINE,\n            query: parsedValue.query,\n            title: parsedValue.title,\n            xAxisLabel: parsedValue.xAxisLabel,\n            yAxisLabel: parsedValue.yAxisLabel,\n            resourceType: !!parsedValue.resourceType ? parsedValue.resourceType : FilterType.CASE,\n            layout: {x: 0, y: 0, rows: 1, cols: 1}\n        };\n    }\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {CustomCard} from '../../../dashboard/cards/model/custom-dashboard-model/custom-card';\nimport {DashboardCardTypes} from '../../../dashboard/cards/model/dashboard-card-types';\nimport {FilterType} from '../../../filter/models/filter-type';\nimport {AbstractDashboardTextFieldComponent} from '../abstract-dashboard-text-field.component';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {TextField} from \"../models/text-field\";\n\n@Component({\n    selector: 'ncc-abstract-dashboard-pie-chart-text-field',\n    template: ''\n})\nexport abstract class AbstractDashboardPieChartTextFieldComponent extends AbstractDashboardTextFieldComponent {\n\n    protected constructor(translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TextField>) {\n        super(translate, dataFieldPortalData);\n    }\n\n    protected createCard(textFieldValue: string): CustomCard {\n        const parsedValue = JSON.parse(textFieldValue) as CustomCard;\n        return {\n            type: DashboardCardTypes.PIE,\n            query: parsedValue.query,\n            title: parsedValue.title,\n            resourceType: !!parsedValue.resourceType ? parsedValue.resourceType : FilterType.CASE,\n            layout: {x: 0, y: 0, rows: 1, cols: 1}\n        };\n    }\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {CustomCard} from '../../../dashboard/cards/model/custom-dashboard-model/custom-card';\nimport {TranslateService} from '@ngx-translate/core';\nimport {DashboardCardTypes} from '../../../dashboard/cards/model/dashboard-card-types';\nimport {FilterType} from '../../../filter/models/filter-type';\nimport {AbstractDashboardTextFieldComponent} from '../abstract-dashboard-text-field.component';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {TextField} from \"../models/text-field\";\n\n@Component({\n    selector: 'ncc-abstract-dashboard-bar-chart-text-field',\n    template: ''\n})\nexport abstract class AbstractDashboardBarChartTextFieldComponent extends AbstractDashboardTextFieldComponent {\n\n    protected constructor(translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TextField>) {\n        super(translate, dataFieldPortalData);\n    }\n\n    protected createCard(textFieldValue: string): CustomCard {\n        const parsedValue = JSON.parse(textFieldValue) as CustomCard;\n        return {\n            type: DashboardCardTypes.BAR,\n            query: parsedValue.query,\n            title: parsedValue.title,\n            xAxisLabel: parsedValue.xAxisLabel,\n            yAxisLabel: parsedValue.yAxisLabel,\n            resourceType: !!parsedValue.resourceType ? parsedValue.resourceType : FilterType.CASE,\n            layout: {x: 0, y: 0, rows: 1, cols: 1}\n        };\n    }\n\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {DashboardCardTypes} from '../../../dashboard/cards/model/dashboard-card-types';\nimport {CustomIframeCard} from '../../../dashboard/cards/model/custom-dashboard-model/custom-iframe-card';\nimport {AbstractDashboardTextFieldComponent} from '../abstract-dashboard-text-field.component';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {TextField} from \"../models/text-field\";\n\n@Component({\n    selector: 'ncc-abstract-dashboard-iframe-text-field',\n    template: ''\n})\nexport abstract class AbstractDashboardIframeTextFieldComponent extends AbstractDashboardTextFieldComponent {\n\n    public card?: CustomIframeCard;\n\n    protected constructor(translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TextField>) {\n        super(translate, dataFieldPortalData);\n    }\n\n    protected createCard(textFieldValue: string): CustomIframeCard {\n        return {\n            url: textFieldValue,\n            type: DashboardCardTypes.IFRAME,\n            layout: {x: 0, y: 0, rows: 1, cols: 1}\n        };\n    }\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {CustomCard} from '../../../dashboard/cards/model/custom-dashboard-model/custom-card';\nimport {DashboardCardTypes} from '../../../dashboard/cards/model/dashboard-card-types';\nimport {AbstractDashboardTextFieldComponent} from '../abstract-dashboard-text-field.component';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {TextField} from \"../models/text-field\";\n\n@Component({\n    selector: 'ncc-abstract-dashboard-pie-chart-text-field',\n    template: ''\n})\nexport abstract class AbstractDashboardPortalTextFieldComponent extends AbstractDashboardTextFieldComponent {\n\n    protected constructor(translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TextField>) {\n        super(translate, dataFieldPortalData);\n    }\n\n    protected createCard(textFieldValue: string): CustomCard {\n        return {\n            type: DashboardCardTypes.PORTAL,\n            componentName: textFieldValue,\n            layout: {x: 0, y: 0, rows: 1, cols: 1}\n        };\n    }\n}\n","import {Component, Inject, Input, OnInit, Optional} from '@angular/core';\nimport {UserField} from './models/user-field';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\n\n/**\n * @deprecated as of v6.4.0\n * */\n/**\n * Component that is created in the body of the task panel accord on the Petri Net, which must be bind properties.\n */\n@Component({\n    selector: 'ncc-abstract-user-field',\n    template: ''\n})\nexport abstract class AbstractUserFieldComponent extends AbstractDataFieldComponent implements OnInit {\n\n    @Input() public dataField: UserField;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n}\n","import {Component, Inject, Optional} from \"@angular/core\";\nimport {SnackBarService} from \"../../../snack-bar/services/snack-bar.service\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {UserListInjectedData} from \"../../../side-menu/content-components/user-assign/model/user-list-injected-data\";\nimport {UserValue} from \"../models/user-value\";\nimport {UserField} from \"../models/user-field\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\nimport {MatDialog} from '@angular/material/dialog';\n\n@Component({\n    selector: 'ncc-abstract-user-default-field',\n    template: ''\n})\nexport abstract class AbstractUserDefaultFieldComponent extends AbstractBaseDataFieldComponent<UserField>{\n\n    private labelWidth: number;\n    public cutProperty: string;\n\n    /**\n     * Inject services.\n     * @param _dialog Service to open and close [UserAssignDialogComponent]{@link UserAssignDialogComponent} with user data.\n     * @param _snackbar Service to displaying information to the user.\n     * @param _translate Service to translate text.\n     * @param informAboutInvalidData whether the backend should be notified about invalid values.\n     * Option injected trough `NAE_INFORM_ABOUT_INVALID_DATA` InjectionToken\n     */\n    protected constructor(protected _dialog: MatDialog,\n                          protected _snackbar: SnackBarService,\n                          protected _translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<UserField>) {\n        super(dataFieldPortalData);\n    }\n\n    /**\n     * Call after click on user field button.\n     *\n     * Open [UserAssignComponent]{@link AbstractUserAssignComponent} in side menu with data represents preselected user from backend.\n     *\n     * After close side menu, the snackbar info will be displayed either for the unselected user or the selected one.\n     */\n    public selectAbstractUser(component) {\n        let valueReturned = false;\n        const dialogRef = this._dialog.open(component, {\n            panelClass: \"dialog-responsive\",\n            data: {roles: this.dataField.roles, value: this.dataField.value} as UserListInjectedData,\n        });\n        dialogRef.afterClosed().subscribe($event => {\n            if ($event.data) {\n                this.dataField.value = $event.data as UserValue;\n                this._snackbar.openGenericSnackBar(\n                    this._translate.instant('dataField.snackBar.userAssigned', {userName: this.dataField.value.fullName}),\n                    'how_to_reg'\n                );\n                valueReturned = true;\n            } else if (!valueReturned) {\n                this._snackbar.openWarningSnackBar(this._translate.instant('dataField.snackBar.notSelectedUser'));\n            }\n        });\n    }\n\n    public deleteUser() {\n        this.dataField.value = null;\n    }\n\n    public getCutProperty(i18nLabel): string {\n        if (this.labelWidth !== i18nLabel.offsetWidth) {\n            this.labelWidth = i18nLabel.offsetWidth;\n            const calculatedWidth = 'calc(0.5em + ' + i18nLabel.offsetWidth / 4 * 3 + 'px)';\n            this.cutProperty = `polygon(0 0, 0 100%, 100% 100%, 100% 0%, ${calculatedWidth} 0, ${calculatedWidth} 6%, 0.5em 6%, 0.5em 0)`;\n        }\n        return this.cutProperty;\n    }\n\n}\n","import {Component, OnInit, Inject, Optional, OnDestroy} from '@angular/core';\nimport {EnumerationField} from '../models/enumeration-field';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\nimport {Subscription} from 'rxjs';\n\n@Component({\n    selector: 'ncc-abstract-enumerataion-icon-field',\n    template: ''\n})\nexport abstract class AbstractEnumerationIconFieldComponent extends AbstractBaseDataFieldComponent<EnumerationField> implements OnInit, OnDestroy{\n    public horizontal: boolean;\n    protected arrow: boolean;\n    protected divider: boolean;\n    protected subComp: Subscription;\n\n    constructor(@Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<EnumerationField>) {\n        super(dataFieldPortalData);\n    }\n\n    ngOnInit(): void {\n        this.checkProperties();\n        this.subComp = this.dataField.componentChange$().subscribe(() => {\n            this.checkProperties();\n        })\n    }\n\n    checkProperties() {\n        this.horizontal = this.dataField.component?.properties?.horizontal === 'true';\n        this.arrow = this.dataField.component?.properties?.arrow === 'true';\n        this.divider = this.dataField.component?.properties?.divider === 'true';\n    }\n\n    resolveIconValue(key: string) {\n        return this.dataField.component?.optionIcons.find(icon => icon.key === key)?.value;\n    }\n\n    resolveIconType(key: string) {\n        return this.dataField.component?.optionIcons.find(icon => icon.key === key)?.type;\n    }\n\n    isArrow() {\n        return this.arrow;\n    }\n\n    isDivider() {\n        return this.divider;\n    }\n\n    setEnumValue(key: string) {\n        if (!this.formControlRef.disabled) {\n            this.formControlRef.setValue(key);\n        }\n    }\n\n    isSelected(key: string): boolean {\n        return key === this.dataField.value;\n    }\n\n    ngOnDestroy() {\n        super.ngOnDestroy();\n        this.subComp.unsubscribe();\n    }\n}\n","import {\n    AfterViewInit,\n    Component,\n    ElementRef,\n    Inject,\n    OnDestroy,\n    OnInit,\n    Optional,\n    ViewChild\n} from '@angular/core';\nimport {Observable, of, Subscription} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {map, startWith} from 'rxjs/operators';\nimport {DynamicEnumerationField} from '../models/dynamic-enumeration-field';\nimport {EnumerationFieldValidation, EnumerationFieldValue} from '../models/enumeration-field';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\n\n@Component({\n    selector: 'ncc-abstract-enumeration-autocomplete-dynamic-field',\n    template: ''\n})\nexport abstract class AbstractEnumerationAutocompleteDynamicFieldComponent extends AbstractBaseDataFieldComponent<DynamicEnumerationField> implements OnInit, OnDestroy, AfterViewInit {\n\n    @ViewChild('input') text: ElementRef;\n    filteredOptions: Observable<Array<EnumerationFieldValue>>;\n    choiceSubscription: Subscription;\n\n    constructor(protected _translate: TranslateService,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<DynamicEnumerationField>) {\n        super(dataFieldPortalData);\n    }\n\n    ngOnInit() {\n        this.filteredOptions = this.formControlRef.valueChanges.pipe(\n            startWith(''),\n            map(() => this.dataField.choices)\n        );\n\n       this.choiceSubscription = this.dataField.choicesChange$.subscribe(() => {\n            this.filteredOptions = of(this.dataField.choices);\n        });\n    }\n\n    ngAfterViewInit(): void {\n        this.dataField.input = this.text;\n    }\n\n    ngOnDestroy(): void {\n        this.filteredOptions = undefined;\n        this.choiceSubscription.unsubscribe();\n    }\n\n    change() {\n        if (this.text.nativeElement.value !== undefined) {\n            this.filteredOptions = of(this.dataField.choices);\n        }\n    }\n\n    public renderSelection = (key) => {\n        if (key !== undefined && key !== '' && key !== null) {\n            if (this.dataField.choices.find(choice => choice.key === key)) {\n                return this.dataField.choices.find(choice => choice.key === key).value;\n            }\n        }\n        return key;\n    }\n\n    public buildErrorMessage() {\n        if (this.formControlRef.hasError(EnumerationFieldValidation.REQUIRED)) {\n            return this._translate.instant('dataField.validations.required');\n        }\n    }\n\n}\n","import {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {Component, Inject, Input, OnInit, Optional} from '@angular/core';\nimport {FilterField} from './models/filter-field';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\n\n/**\n * @deprecated\n * */\n@Component({\n    selector: 'ncc-abstract-filter-field',\n    template: ''\n})\nexport abstract class AbstractFilterFieldComponent extends AbstractDataFieldComponent implements OnInit {\n\n    @Input() dataField: FilterField;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n}\n","import {InjectionToken} from '@angular/core';\nimport {FilterField} from './filter-field';\n\n/**\n * Provides access to the {@link FilterField} instance for dependency injection inside\n * an {@link AbstractFilterFieldComponent} implementation.\n */\nexport const NAE_FILTER_FIELD = new InjectionToken<FilterField>('NaeFilterField');\n","// TODO 23.4.2020 - Same as MergeOperator for Filters, should these Enums be kept separate, or should just one exist?\n/**\n * Determines the way {@link Predicate}s are combined together.\n */\nexport enum BooleanOperator {\n    AND = 'AND',\n    OR = 'OR'\n}\n","import {BooleanOperator} from '../boolean-operator';\n\n/**\n * Abstraction of queries, so that their implementation can be replaced as needed.\n */\nexport class Query {\n    /**\n     * @param _value see [value]{@link Query#value} for the specification of this attribute.\n     * @param _empty use `true` if the Query object represents an empty query\n     */\n    constructor(private _value: string, private _empty = false) {\n        if (!this._value || this._value === '') {\n            this._empty = true;\n        }\n    }\n\n    /**\n     * @returns an Elastic search Query string query wrapped in braces.\n     *\n     * See Elasticsearch's\n     * [documentation]{@link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html}\n     * for more information about Query string queries.\n     */\n    public get value(): string {\n        return this._value;\n    }\n\n    /**\n     * @returns whether this Query object represents an empty query or not\n     */\n    public get isEmpty(): boolean {\n        return this._empty;\n    }\n\n    /**\n     * Combines multiple queries into one with the provided operator.\n     * @param queries queries that should be combined. Empty queries in the input array are ignored.\n     * @param operator operator that is used to combine the queries\n     * @returns a single query that is the combination of the non-empty queries in the input array. If the input array is empty an\n     * [empty query]{@link Query#emptyQuery} will be returned.\n     */\n    public static combineQueries(queries: Array<Query>, operator: BooleanOperator): Query {\n        const realQueries = queries.filter(q => !q.isEmpty);\n        if (realQueries.length === 0) {\n            return Query.emptyQuery();\n        }\n        if (realQueries.length === 1) {\n            return new Query(realQueries[0].value);\n        }\n        const combinedQuery = realQueries.map(q => q.value).join(` ${operator} `);\n        return new Query(`(${combinedQuery})`);\n    }\n\n    /**\n     * Returns a `Query` with it's `value` set to an empty string.\n     */\n    public static emptyQuery(): Query {\n        return new Query('', true);\n    }\n\n    /**\n     * @param query the query that should be compared\n     * @returns `true` if and only if the queries are equal.\n     * Returns `false` if the queries are not equal, or if attempting to tell the queries apart is too complicated.\n     * More specifically the method can always tell apart empty queries and if poth queries are non-empty then their values are compared.\n     */\n    public equals(query: Query): boolean {\n        if (this.isEmpty && query.isEmpty) {\n            return true;\n        }\n        if (this.isEmpty || query.isEmpty) {\n            return false;\n        }\n        return this.value === query.value;\n    }\n}\n","import {Query} from '../query/query';\nimport {GeneratorMetadata} from '../persistance/generator-metadata';\nimport {FilterTextSegment} from '../persistance/filter-text-segment';\nimport {BooleanOperator} from '../boolean-operator';\n\n/**\n * Building block of search queries. Represents any node in a tree of predicates, that are combined with {@link BooleanOperator}s to create\n * a search query.\n *\n * See {@link SearchService} for more information.\n */\nexport abstract class Predicate {\n\n    protected _visible: boolean;\n    protected _metadataGenerator: () => GeneratorMetadata | undefined;\n    protected _filterTextSegmentsGenerator: () => Array<FilterTextSegment>;\n\n    /**\n     * @param initiallyVisible whether the predicate should be initially displayed or not\n     */\n    protected constructor(initiallyVisible = true) {\n        this._visible = !!initiallyVisible;\n        this._metadataGenerator = () => {\n            throw new Error('This predicate has no metadata generator registered!');\n        };\n        this._filterTextSegmentsGenerator = () => {\n            return [];\n        };\n    }\n\n    /**\n     * @returns whether the Predicate should be displayed, or not\n     */\n    public get isVisible(): boolean {\n        return this._visible;\n    }\n\n    /**\n     * @returns the {@link Query} object that corresponds to the `Query` for the entire subtree of Predicates, with\n     * this Predicate as it's root node.\n     */\n    public abstract get query(): Query;\n\n    /**\n     * Combines the text segments of the predicates with the given operator and wraps the individual predicates in brackets optionaly\n     * @param predicates sources of text segments that are to be combined with a boolean operator\n     * @param operator boolean operator used to combine the individual predicate text segments\n     * @param wrapWithBrackets whether the individual predicate text segments should be wrapped in braces or not\n     * (if only one predicate is provided it is never wrapped)\n     */\n    public static combineTextSegmentsWithBooleanOperator(predicates: IterableIterator<Predicate> | Array<Predicate>,\n                                                         operator: BooleanOperator,\n                                                         wrapWithBrackets = false): Array<FilterTextSegment> {\n        const result: Array<FilterTextSegment> = [];\n        let first = true;\n        let hasTwo = false;\n        for (const predicate of predicates) {\n            const textSegments = predicate.createFilterTextSegments();\n            if (textSegments.length > 0) {\n                if (!first) {\n                    if (!hasTwo && wrapWithBrackets) {\n                        result.unshift({segment: '('});\n                        hasTwo = true;\n                    }\n                    if (wrapWithBrackets) {\n                        result.push({segment: ')'});\n                    }\n                    result.push({segment: operator === BooleanOperator.AND ? 'search.and' : 'search.or', uppercase: true});\n                    if (wrapWithBrackets) {\n                        result.push({segment: '('});\n                    }\n                }\n                result.push(...textSegments);\n                first = false;\n            }\n        }\n        if (hasTwo && wrapWithBrackets) {\n            result.push({segment: ')'});\n        }\n        return result;\n    }\n\n    /**\n     * Sets the predicates state to `visible`\n     */\n    public show(): void {\n        this._visible = true;\n    }\n\n    public setMetadataGenerator(metadataGenerator: () => GeneratorMetadata | undefined) {\n        this._metadataGenerator = metadataGenerator;\n    }\n\n    /**\n     * @returns an object containing the necessary information for the reconstruction of the entire predicate tree in serializable form.\n     * Returns `undefined` if the predicate tree rooted at this node is incomplete and would evaluate into an empty filter.\n     */\n    public createGeneratorMetadata(): GeneratorMetadata | undefined {\n        return this._metadataGenerator();\n    }\n\n    public setFilterTextSegmentsGenerator(filterTextSegmentsGenerator: () => Array<FilterTextSegment>) {\n        this._filterTextSegmentsGenerator = filterTextSegmentsGenerator;\n    }\n\n    /**\n     * @returns an Array containing text segments representing the content of this predicate.\n     * The default implementation returns an empty array.\n     */\n    public createFilterTextSegments(): Array<FilterTextSegment> {\n        return this._filterTextSegmentsGenerator();\n    }\n}\n","import {Predicate} from './predicate';\nimport {Subject} from 'rxjs';\n\n/**\n * Base class for editable predicates that allows them to notify their parent predicate tree nodes about updates to their queries.\n */\nexport abstract class EditablePredicate extends Predicate {\n\n    protected _parentNotifier: Subject<void>;\n\n    protected constructor(parentNotifier?: Subject<void>, initiallyVisible = true) {\n        super(initiallyVisible);\n        this._parentNotifier = parentNotifier;\n    }\n\n    /**\n     * Notify the parent `Predicate` that this `Predicate` updated its `Query`\n     */\n    protected notifyParentPredicate(): void {\n        if (this._parentNotifier && !this._parentNotifier.isStopped) {\n            this._parentNotifier.next();\n        }\n    }\n\n    public set parentNotifier(parentNotifier: Subject<void>) {\n        this._parentNotifier = parentNotifier;\n    }\n\n    public destroy() {\n        this._parentNotifier.complete();\n    }\n}\n","import {Subject} from 'rxjs';\nimport {Query} from '../query/query';\nimport {EditablePredicate} from './editable-predicate';\n\n/**\n * A simple, editable type of `Predicate`. Represents a leaf node in the predicate tree, that can change the `Query` it holds\n * and can notify the parent tree node about changes.\n */\nexport class EditableElementaryPredicate extends EditablePredicate {\n\n    protected _query: Query;\n\n    constructor(parentNotifier?: Subject<void>, initiallyVisible = true) {\n        super(parentNotifier, initiallyVisible);\n        this._query = Query.emptyQuery();\n    }\n\n    get query(): Query {\n        return this._query;\n    }\n\n    set query(query: Query) {\n        this._query = query;\n        this.notifyParentPredicate();\n    }\n}\n","/**\n * A counter that returns an incremented value, whenever it is called\n */\nexport class IncrementingCounter {\n    private i = 0;\n\n    /**\n     * @returns a number one greater than the previous number. The first call to this method returns `0`.\n     */\n    public next(): number {\n        return this.i++;\n    }\n\n    /**\n     * @returns the last returned number. If no call to [next()]{@link IncrementingCounter#next} has been made, returns `-1`.\n     */\n    public lastUsed(): number {\n        return this.i - 1;\n    }\n}\n","import {BooleanOperator} from '../boolean-operator';\nimport {Subject} from 'rxjs';\nimport {EditableElementaryPredicate} from './editable-elementary-predicate';\nimport {IncrementingCounter} from '../../../utility/incrementing-counter';\nimport {Query} from '../query/query';\nimport {EditablePredicate} from './editable-predicate';\nimport {Predicate} from './predicate';\n\n\n/**\n * A complex, editable `Predicate`. Represents an inner node in the predicate tree, that can process changes of `Query` objects\n * held by its child nodes. It can notify the parent tree node about changes to the held `Query`.\n */\nexport class EditableClausePredicate extends EditablePredicate {\n\n    protected _predicates: Map<number, Predicate>;\n    protected _childUpdated$: Subject<void>;\n    protected _childCounter: IncrementingCounter;\n    protected _query: Query;\n\n    constructor(protected _operator: BooleanOperator,\n                parentNotifier?: Subject<void>,\n                initiallyVisible = true,\n                protected _bracketSubPredicateText = false) {\n        super(parentNotifier, initiallyVisible);\n        this._predicates = new Map<number, Predicate>();\n        this._childUpdated$ = new Subject<void>();\n        this._childCounter = new IncrementingCounter();\n        this._query = Query.emptyQuery();\n        this.initializeFilterTextSegmentsGenerator();\n\n        this._childUpdated$.subscribe(() => {\n            this.updateQueryAndNotify();\n        });\n    }\n\n    get query(): Query {\n        return this._query;\n    }\n\n    public destroy(): void {\n        super.destroy();\n        this._childUpdated$.complete();\n    }\n\n    public show() {\n        super.show();\n        this.showAll();\n    }\n\n    /**\n     * Shows the predicates with the given ids. Skips ids that don't exist.\n     * @param predicateIds the ids of the predicates that should be shown.\n     */\n    public showPredicates(predicateIds: Array<number>): void {\n        predicateIds.forEach(id => {\n            if (this._predicates.has(id)) {\n                this._predicates.get(id).show();\n            }\n        });\n    }\n\n    /**\n     * Adds new child predicate of type {@link EditableElementaryPredicate}\n     * @param initiallyVisible whether the new predicate should be initially visible\n     */\n    addNewElementaryPredicate(initiallyVisible = true): number {\n        return this.addPredicate(new EditableElementaryPredicate(this._childUpdated$, initiallyVisible));\n    }\n\n    /**\n     * Adds new child predicate of type {@link EditableClausePredicate}\n     * @param operator the operator of the child clause predicate\n     * @param initiallyVisible whether the new predicate should be initially visible\n     */\n    addNewClausePredicate(operator: BooleanOperator, initiallyVisible = true): number {\n        return this.addPredicate(new EditableClausePredicate(operator, this._childUpdated$, initiallyVisible));\n    }\n\n    /**\n     * Generates an id for the new predicate, adds it into the map and updates the query\n     *\n     * If you want to add an editable predicate, use one of the other methods, so that this predicate can react to changes.\n     * @param predicate the new predicate\n     */\n    public addPredicate(predicate: Predicate): number {\n        const id = this._childCounter.next();\n        this._predicates.set(id, predicate);\n        this.updateQueryAndNotify();\n        return id;\n    }\n\n    removePredicate(id: number): boolean {\n        const r = this._predicates.delete(id);\n        this.updateQueryAndNotify();\n        return r;\n    }\n\n    public getPredicateMap(): Map<number, Predicate> {\n        return this._predicates;\n    }\n\n    /**\n     * Updates the `Query` and notifies the parent.\n     */\n    protected updateQueryAndNotify(): void {\n        this.updateQuery();\n        this.notifyParentPredicate();\n    }\n\n    /**\n     * Updates the value of the [_query]{@link ClausePredicate#_query} attribute.\n     *\n     * See [combineQueries()]{@link Query#combineQueries} for more information.\n     */\n    protected updateQuery(): void {\n        this._query = Query.combineQueries(this.queries, this._operator);\n    }\n\n    /**\n     * @returns the `Array` of {@link Query} objects stored within this object's [_predicates]{@link ClausePredicate#_predicates} attribute.\n     */\n    protected get queries(): Array<Query> {\n        return Array.from(this._predicates.values()).map(p => p.query);\n    }\n\n    /**\n     * Sets this predicate and all its sub-predicates to visible.\n     */\n    protected showAll(): void {\n        for (const p of this._predicates.values()) {\n            p.show();\n        }\n    }\n\n    private initializeFilterTextSegmentsGenerator() {\n        this._filterTextSegmentsGenerator = () => {\n            return Predicate.combineTextSegmentsWithBooleanOperator(this._predicates.values(),\n                this._operator, this._bracketSubPredicateText);\n        };\n    }\n}\n","import {Predicate} from './predicate';\nimport {Category} from '../category/category';\nimport {Query} from '../query/query';\nimport {EditableElementaryPredicate} from './editable-elementary-predicate';\n\n/**\n * A predicate wrapper, that can contain a generator of a Predicate.\n *\n * This class is used to transfer search predicates added by other means into the search GUI.\n */\nexport class PredicateWithGenerator extends Predicate {\n\n    /**\n     * @param _predicate the wrapped predicate\n     * @param _generator the `Category` instance that generates this predicate.\n     * If a generator is provided, the predicate is marked as initially hidden.\n     * @param initiallyVisible overrides the initial visibility inferred from the presence/absence of the generator\n     */\n    constructor(protected _predicate: Predicate, protected _generator?: Category<any>, initiallyVisible?: boolean) {\n        super();\n        this._visible = initiallyVisible ?? !_generator;\n        this.initializeMetadataGenerator();\n        this.initializeFilterTextSegmentsGenerator();\n    }\n\n    get query(): Query {\n        return this._predicate.query;\n    }\n\n    /**\n     * Can only be called if the wrapped predicate allows setting of the query.\n     * Throws an error otherwise.\n     * @param query the new query\n     */\n    set query(query: Query) {\n        if (this._predicate instanceof EditableElementaryPredicate) {\n            this._predicate.query = query;\n        } else {\n            throw new Error('The wrapped predicate cannot have its query set');\n        }\n    }\n\n    /**\n     * @returns the Category that generates the predicate, or `undefined` if none was provided during the creation of this instance.\n     */\n    get generator(): Category<any> {\n        return this._generator;\n    }\n\n    /**\n     * @returns the wrapped Predicate\n     */\n    public getWrappedPredicate(): Predicate {\n        return this._predicate;\n    }\n\n    /**\n     * @returns result [getWrappedPredicate()]{@link PredicateWithGenerator#getWrappedPredicate}\n     */\n    public get wrappedPredicate(): Predicate {\n        return this.getWrappedPredicate();\n    }\n\n    show() {\n        super.show();\n        this._predicate.show();\n    }\n\n    /**\n     * Cleans-up the inner state of this object.\n     */\n    public destroy(): void {\n        if (this._generator !== undefined) {\n            this.generator.destroy();\n        }\n    }\n\n    private initializeMetadataGenerator() {\n        this._metadataGenerator = () => {\n            try {\n                return this._predicate.createGeneratorMetadata();\n            } catch (e) {\n                if (this._generator && this._generator.providesPredicate) {\n                    return this._generator.createMetadata();\n                }\n                throw e;\n            }\n        };\n    }\n\n    private initializeFilterTextSegmentsGenerator() {\n        this._filterTextSegmentsGenerator = () => {\n            const segments = this._predicate.createFilterTextSegments();\n            if (segments.length > 0) {\n                return segments;\n            }\n            if (this._generator && this._generator.providesPredicate) {\n                return this._generator.createFilterTextSegments();\n            }\n            return [];\n        };\n    }\n}\n","import {Category} from '../category/category';\nimport {PredicateWithGenerator} from './predicate-with-generator';\nimport {EditableElementaryPredicate} from './editable-elementary-predicate';\nimport {Subject} from 'rxjs';\nimport {EditablePredicate} from './editable-predicate';\n\n/**\n * An editable predicate wrapper, that can contain a generator of a Predicate.\n *\n * This class is used to transfer editable search predicates added by other means into the search GUI and\n * bind them to the search predicate update notifications.\n */\nexport class EditablePredicateWithGenerator extends PredicateWithGenerator {\n\n    /**\n     * Creates a new `EditablePredicateWithGenerator` instance from a generator.\n     *\n     * The created wrapped {@link EditablePredicate} instance has no parent notifier set.\n     * If you want it to send notifications to a parent predicate you must add it yourself.\n     * @param generator the generator generating the predicate\n     * @param initiallyVisible whether the predicate is initially visible\n     * @returns a new `EditablePredicateWithGenerator` instance, with the predicate set to the predicate generated by the generator.\n     * If the generator generates no predicate, it will be set to an empty predicate.\n     */\n    constructor(generator: Category<any>, initiallyVisible?: boolean) {\n        const predicate = new EditableElementaryPredicate(undefined, initiallyVisible);\n        if (generator.providesPredicate) {\n            predicate.query = generator.generatedPredicate.query;\n        }\n        super(predicate, generator, initiallyVisible);\n    }\n\n    /**\n     * Sets the `parentNotifier` on the wrapped {@link EditablePredicate} instance.\n     */\n    public set parentNotifier(parentNotifier: Subject<void>) {\n        this.getWrappedPredicate().parentNotifier = parentNotifier;\n    }\n\n    getWrappedPredicate(): EditablePredicate {\n        return super.getWrappedPredicate() as EditablePredicate;\n    }\n}\n","import {EditableClausePredicate} from './editable-clause-predicate';\nimport {BooleanOperator} from '../boolean-operator';\nimport {Subject} from 'rxjs';\nimport {PredicateWithGenerator} from './predicate-with-generator';\nimport {Predicate} from './predicate';\nimport {Category} from '../category/category';\nimport {EditablePredicateWithGenerator} from './editable-predicate-with-generator';\n\nexport class EditableClausePredicateWithGenerators extends EditableClausePredicate {\n\n    protected _predicates: Map<number, PredicateWithGenerator>;\n\n    constructor(operator: BooleanOperator, parentNotifier?: Subject<void>, initiallyVisible = true, bracketSubPredicateText = false) {\n        super(operator, parentNotifier, initiallyVisible, bracketSubPredicateText);\n        this._metadataGenerator = () => {\n            const result = [];\n            for (const predicate of this._predicates.values()) {\n                const metadata = predicate.createGeneratorMetadata();\n                if (metadata !== undefined) {\n                    result.push(metadata);\n                }\n            }\n            return result.length > 0 ? result : undefined;\n        };\n    }\n\n    addNewClausePredicate(operator: BooleanOperator, initiallyVisible = true): number {\n        return this.addPredicate(new EditableClausePredicateWithGenerators(operator, this._childUpdated$, initiallyVisible));\n    }\n\n    addPredicate(predicate: Predicate, initiallyVisible = true): number {\n        return super.addPredicate(new PredicateWithGenerator(predicate, undefined, initiallyVisible));\n    }\n\n    /**\n     * Creates a new editable predicate from the provided generator {@link Category} instance,\n     * connects it to the update notifications stream and adds it to the predicate subtree.\n     * @param generator\n     * @param initiallyVisible\n     */\n    addNewPredicateFromGenerator(generator: Category<any>, initiallyVisible = true): number {\n        const predicate = new EditablePredicateWithGenerator(generator, initiallyVisible);\n        predicate.parentNotifier = this._childUpdated$;\n        return super.addPredicate(predicate);\n    }\n\n    getPredicateMap(): Map<number, PredicateWithGenerator> {\n        return this._predicates;\n    }\n\n    /**\n     * Cleans-up the inner state of this object\n     */\n    destroy(): void {\n        super.destroy();\n        for (const predicate of this._predicates.values()) {\n            predicate.destroy();\n        }\n    }\n}\n","/**\n * Represents the available {@link Operator} classes in a serializable form.\n */\nexport enum Operators {\n    EQUALS = 'equals',\n    EQUALS_DATE = 'equals_date',\n    EQUALS_DATE_TIME = 'equals_date_time',\n    IN_RANGE = 'in_range',\n    IN_RANGE_DATE = 'in_range_date',\n    IN_RANGE_DATE_TIME = 'in_range_date_time',\n    IS_NULL = 'is_null',\n    LESS_THAN = 'less_than',\n    LESS_THAN_DATE = 'less_than_date',\n    LESS_THAN_DATE_TIME = 'less_than_date_time',\n    LESS_THAN_EQUAL = 'less_than_equal',\n    LESS_THAN_EQUAL_DATE = 'less_than_equal_date',\n    LESS_THAN_EQUAL_DATE_TIME = 'less_than_equal_date_time',\n    LIKE = 'like',\n    MORE_THAN = 'more_than',\n    MORE_THAN_DATE = 'more_than_date',\n    MORE_THAN_DATE_TIME = 'more_than_date_time',\n    MORE_THAN_EQUAL = 'more_than_equal',\n    MORE_THAN_EQUAL_DATE = 'more_than_equal_date',\n    MORE_THAN_EQUAL_DATE_TIME = 'more_than_equal_date_time',\n    NOT_EQUALS = 'not_equals',\n    NOT_EQUALS_DATE = 'not_equals_date',\n    NOT_EQUALS_DATE_TIME = 'not_equals_date_time',\n    SUBSTRING = 'substring',\n}\n","import {EscapeResult} from '../escape-result';\nimport {Query} from '../query/query';\nimport {BooleanOperator} from '../boolean-operator';\nimport {WrapResult} from '../wrap-result';\nimport {Operators} from './operators';\n\n/**\n * Represents the low level abstraction of query generation that is responsible for the creation of queries themselves.\n *\n * Operators are ment to be stateless and held as singleton instances, as they can be shared without any issues.\n * This library uses the {@link OperatorService} to store the singleton instances, but you can use your own solution,\n * or instantiate them multiple times if you prefer.\n *\n * @typeparam T type of arguments this Operator can generate queries from\n */\nexport abstract class Operator<T> {\n\n    /**\n     * Represents the placeholder \"block\" in operator display names.\n     */\n    public static readonly INPUT_PLACEHOLDER = '';\n\n    /**\n     * Reserved characters for Elasticsearch queries. These characters can be escaped with a `\\` character.\n     */\n    private static readonly ESCAPABLE_CHARACTERS = new Set(\n        ['+', '-', '=', '&', '|', '!', '(', ')', '{', '}', '[', ']', '^', '\"', '~', '*', '?', ':', '\\\\', '/']);\n\n    /**\n     * Reserved characters for Elasticsearch queries. These characters cannot be escaped and must be removed from queries.\n     */\n    private static readonly UNESCAPABLE_CHARACTERS = new Set(['<', '>']);\n\n    /**\n     * Determines the arity of the operator, that is the number of arguments/operands it takes.\n     */\n    private readonly _numberOfOperands: number;\n\n    /**\n     * The operator symbol that is used to generate the query.\n     */\n    private readonly _operatorSymbols: string;\n\n    protected constructor(numberOfOperands: number, operatorSymbols = '') {\n        this._numberOfOperands = numberOfOperands;\n        this._operatorSymbols = operatorSymbols;\n    }\n\n    /**\n     * Escapes all escapable Elasticsearch symbols. Removes all unescapable Elasticsearch symbols.\n     *\n     * For a list of symbols see Elasticsearch's Query string query\n     * [doc]{@link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#_reserved_characters}.\n     * @param input user input that should have special characters escaped\n     * @returns user input with the escapable characters escaped and the unescapable characters removed\n     */\n    public static escapeInput(input: string): EscapeResult {\n        if (typeof input === 'string') {\n            let escaped = false;\n            let output = '';\n            for (let i = 0; i < input.length; i++) {\n                if (Operator.UNESCAPABLE_CHARACTERS.has(input.charAt(i)))\n                    continue;\n                if (Operator.ESCAPABLE_CHARACTERS.has(input.charAt(i))) {\n                    output += '\\\\';\n                    escaped = true;\n                }\n                output += input.charAt(i);\n            }\n            return {value: output, wasEscaped: escaped};\n        }\n        return {value: input, wasEscaped: false};\n    }\n\n    /**\n     * Creates a Query string query string literal with the provided arguments.\n     * @param elasticKeyword Elasticsearch index keyword for the field you want to query\n     * @param arg The value that you want to query the property for\n     * @param operator The operator you want to use to query the indexed field. Consult the Elasticsearch's\n     * [documentation]{@link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html}\n     * for more information.\n     * @returns combines the input strings by this pattern: `([elasticKeyword]:[operator][arg])`\n     */\n    public static query(elasticKeyword: string, arg: string, operator: string): string {\n        return `(${elasticKeyword}:${operator}${arg})`;\n    }\n\n    /**\n     * Applies the provided function to all keywords and combines the resulting queries with an `OR` operator.\n     * @param elasticKeywords keywords that the function is call on\n     * @param queryConstructor function that generates a `Query` object for each keyword\n     */\n    public static forEachKeyword(elasticKeywords: Array<string>, queryConstructor: (keyword: string) => Query): Query {\n        const simpleQueries = [];\n        elasticKeywords.forEach(keyword => {\n            simpleQueries.push(queryConstructor(keyword));\n        });\n        return Query.combineQueries(simpleQueries, BooleanOperator.OR);\n    }\n\n    /**\n     * If the value contains a space character, or if `force` is set to `true`.\n     * @param input user input that should be wrapped with double quotes\n     * @param forceWrap if set to `true` the value will be wrapped regardless of it's content\n     */\n    public static wrapInputWithQuotes(input: string, forceWrap = false): WrapResult {\n        if (typeof input === 'string' && (input.includes(' ') || forceWrap))\n            return {value: `\"${input}\"`, wasWrapped: true};\n        else\n            return {value: input, wasWrapped: false};\n    }\n\n    /**\n     * @returns the arity of the operator.\n     */\n    public get numberOfOperands(): number {\n        return this._numberOfOperands;\n    }\n\n    /**\n     * Simple implementation of query generation. Will not be suitable for all Operator derivatives.\n     *\n     * Escapes the first argument from the `args` array, calls the [query()]{@link Operator#query} function for each `keyword` and combines\n     * the results with an `OR` operator.\n     * @returns query that wos constructed with the given arguments and keywords. Returns an empty query if no arguments are provided.\n     */\n    public createQuery(elasticKeywords: Array<string>, args: Array<T>, escapeArgs = true): Query {\n        this.checkArgumentsCount(args);\n        return Operator.forEachKeyword(elasticKeywords, (keyword: string) => {\n            const escapedValue = escapeArgs ?\n                Operator.escapeInput(args[0] as unknown as string) : ({value: args[0] as unknown as string, wasEscaped: false});\n            const wrappedValue = Operator.wrapInputWithQuotes(escapedValue.value, escapedValue.wasEscaped);\n            const queryString = Operator.query(keyword, wrappedValue.value, this._operatorSymbols);\n            return new Query(queryString);\n        });\n    }\n\n    /**\n     * The name template is used when generating search GUI, and so the arity of the operator should match the number of\n     * {@link INPUT_PLACEHOLDER} constant occurrences in the returned array.\n     *\n     * @returns an array of translation paths that represent the operator name, as it should be displayed to the user.\n     * The {@link INPUT_PLACEHOLDER} constant (or any falsy value) can be used to place visual input placeholder blocks in the\n     * operator name where user input is expected.\n     */\n    public abstract getOperatorNameTemplate(): Array<string>;\n\n    /**\n     * @returns the operator class in a serializable form\n     */\n    public abstract serialize(): Operators | string;\n\n    /**\n     * Checks whether the provided array contains at leas as many arguments, as is the operators number of operands.\n     * Throws an error if not enough arguments is provided.\n     * @param args an array of potential operands\n     */\n    protected checkArgumentsCount(args: Array<any>): void {\n        if (args.length < this.numberOfOperands) {\n            throw new Error(`At least ${this.numberOfOperands} arguments must be provided to `\n                + `create a query with ${this.numberOfOperands} operands!`);\n        }\n    }\n}\n","import {Operator} from './operator';\nimport {Operators} from './operators';\n\n/**\n * Strict equality operator. Will match if the field has the exact same value as the input.\n * Can be used with keyword fields and different types,\n * but it is not recommended to use it with date and datetime fields as an exact timestamp match would be required.\n * For timestamps use {@link EqualsDate} or {@link EqualsDateTime} instead.\n */\nexport class Equals extends Operator<string | number> {\n    constructor() {\n        // query string queries don't use a special symbol for strict equality\n        super(1, '');\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.equals', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.EQUALS;\n    }\n}\n","import {Moment} from 'moment';\n\n/**\n * Sets milliseconds, seconds, minutes and hours of the provided Moment object to 0\n * @param date object that we want to clear time information from\n */\nexport function clearTimeInformation(date: Moment): void {\n    date.milliseconds(0);\n    date.seconds(0);\n    date.minutes(0);\n    date.hours(0);\n}\n","import {Operator} from './operator';\nimport {Moment} from 'moment';\nimport {Query} from '../query/query';\nimport moment from 'moment';\nimport {clearTimeInformation} from '../../../utility/clear-time-information';\nimport {Operators} from './operators';\n\n/**\n * Range operator for indexed fields that store a date in timestamp format.\n *\n * Will create a range query that matches every timestamp from the midnight of the first day (included)\n * to the midnight of the day after the second day (excluded).\n */\nexport class InRangeDate extends Operator<Moment> {\n    constructor() {\n        super(2);\n    }\n\n    /**\n     * Creates a query as specified by the [classes]{@link InRangeDate} documentation.\n     * See [super.createQuery()]{@link Operator#createQuery} for more information.\n     * @param elasticKeywords keywords of the fields that should be queried.\n     * If more than one is provided then queries for every keyword will be generated and combined with an OR operator.\n     * @param args start and end date for the range. Any time information will be ignored use {@link InRangeDateTime}\n     * if you want a date time query instead. The two dates must be in ascending order, if not the behavior is undefined.\n     */\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        this.checkArgumentsCount(args);\n        const arg1 = moment(args[0]);\n        clearTimeInformation(arg1);\n        const arg2 = moment(args[1]);\n        clearTimeInformation(arg2);\n        arg2.date(arg2.date() + 1); // moment handles rollover\n        return Operator.forEachKeyword(elasticKeywords, (keyword: string) => {\n            return new Query(`(${keyword}:[${arg1.valueOf()} TO ${arg2.valueOf()}})`);\n        });\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.inRange.from', Operator.INPUT_PLACEHOLDER, 'search.operator.inRange.to', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.IN_RANGE_DATE;\n    }\n}\n","import {Operator} from './operator';\nimport {Moment} from 'moment';\nimport {Query} from '../query/query';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {InRangeDate} from './in-range-date';\nimport {Operators} from './operators';\n\n/**\n * Equality operator for indexed fields that store a date in timestamp format.\n *\n * Will create a range query that matches every timestamp from the midnight of the selected day (included)\n * to the midnight of the next day (excluded).\n */\nexport class EqualsDate extends Operator<Moment> {\n\n    protected dateRange: InRangeDate;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.dateRange = operators.getOperator(InRangeDate) as InRangeDate;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        this.checkArgumentsCount(args);\n        return this.dateRange.createQuery(elasticKeywords, [args[0], args[0]]);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.equals', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.EQUALS_DATE;\n    }\n}\n","import {Operator} from './operator';\nimport moment, {Moment} from 'moment';\nimport {Query} from '../query/query';\nimport {Operators} from './operators';\n\n/**\n * Range operator for indexed fields that store a date time in timestamp format.\n *\n * Will create a range query that matches every timestamp from the 0th millisecond of the first date time object (included)\n * to the 0th millisecond of the next minute after the minute in the second date time object (excluded).\n */\nexport class InRangeDateTime extends Operator<Moment> {\n    constructor() {\n        super(2);\n    }\n\n    /**\n     * Creates a query as specified by the [classes]{@link InRangeDate} documentation.\n     * See [super.createQuery()]{@link Operator#createQuery} for more information.\n     * @param elasticKeywords keywords of the fields that should be queried.\n     * If more than one is provided then queries for every keyword will be generated and combined with an OR operator.\n     * @param args start and end date for the range. If you want to ignore the time information use {@link InRangeDate}\n     * Operator instead. The two date time objects must be in ascending order, if not the behavior is undefined.\n     */\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        this.checkArgumentsCount(args);\n        const arg1 = moment(args[0]);\n        arg1.milliseconds(0);\n        arg1.seconds(0);\n        const arg2 = moment(args[1]);\n        arg2.milliseconds(0);\n        arg2.seconds(0);\n        arg2.minutes(arg2.minutes() + 1); // moment handles rollover\n        return Operator.forEachKeyword(elasticKeywords, (keyword: string) => {\n            return new Query(`(${keyword}:[${arg1.valueOf()} TO ${arg2.valueOf()}})`);\n        });\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.inRange.from', Operator.INPUT_PLACEHOLDER, 'search.operator.inRange.to', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.IN_RANGE_DATE_TIME;\n    }\n}\n","import {InRangeDateTime} from './in-range-date-time';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Moment} from 'moment';\nimport {Query} from '../query/query';\nimport {Operator} from './operator';\nimport {Operators} from './operators';\n\n/**\n * Equality operator for indexed fields that store a date time object in timestamp format.\n *\n * Will create a range query that matches every timestamp from the 0th millisecond of the selected date time object (included)\n * to the 0th millisecond after of the next minute after the minute of the date time object (excluded).\n */\nexport class EqualsDateTime extends Operator<Moment> {\n\n    protected dateTimeRange: InRangeDateTime;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.dateTimeRange = operators.getOperator(InRangeDateTime) as InRangeDateTime;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        this.checkArgumentsCount(args);\n        return this.dateTimeRange.createQuery(elasticKeywords, [args[0], args[0]]);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.equals', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.EQUALS_DATE_TIME;\n    }\n}\n","import {Operator} from './operator';\nimport {Query} from '../query/query';\nimport {Operators} from './operators';\n\n/**\n * A range operator for numeric fields, with closed interval on both sides of the range.\n */\nexport class InRange extends Operator<number> {\n    constructor() {\n        super(2);\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<number>): Query {\n        this.checkArgumentsCount(args);\n        return Operator.forEachKeyword(elasticKeywords, keyword => new Query(`(${keyword}:[${args[0]} TO ${args[1]}])`));\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.inRange.from', Operator.INPUT_PLACEHOLDER, 'search.operator.inRange.to', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.IN_RANGE;\n    }\n}\n","import {Operator} from './operator';\nimport {Query} from '../query/query';\nimport {Operators} from './operators';\n\n/**\n * An operator that can be used on any field and matches entries with null or empty string values.\n *\n * Beware that if any additional constraints should be applied to the generated query the results may behave strangely.\n * Consult the [createQueryWithConstraint()]{@link IsNull#createQueryWithConstraint} method for more information.\n */\nexport class IsNull extends Operator<any> {\n    constructor() {\n        super(0);\n    }\n\n    /**\n     * @param elasticKeywords the queried fields\n     * @returns Generates a query that matches null fields and fields with empty string values.\n     */\n    createQuery(elasticKeywords: Array<string>): Query {\n        return Operator.forEachKeyword(elasticKeywords,\n            keyword => new Query(`(${this.nullQueryString(keyword)}OR${this.emptyStringQueryString(keyword)})`)\n        );\n    }\n\n    /**\n     * Counterintuitively elasticsearch query string queries behave weirdly when combining the queries with operators such as `AND`.\n     * Because of this the following query:\n     *\n     *    (dataSet.text_0.value:\"\")\n     *\n     * returns an empty result set.\n     *\n     * But query that should be intuitively more constraining:\n     *\n     *     (dataSet.text_0.value:\"\") AND (processId:600168ccf68fea5241ae5e62)\n     *\n     * will return a non empty and expected result.\n     *\n     * This method exists to combat this issue and add the, sometimes necessary, constraint into the query generated by this operator.\n     *\n     * @param elasticKeywords the queried fields\n     * @param constraint a constraining query that is distributively applied into the query generated by this operator.\n     * If an empty query is provided the result will be the same as calling [createQuery()]{@link IsNull#createQuery}.\n     * @returns a query with distributively applied constraint query\n     */\n    createQueryWithConstraint(elasticKeywords: Array<string>, constraint: Query): Query {\n        if (constraint.isEmpty) {\n            return this.createQuery(elasticKeywords);\n        }\n\n        return Operator.forEachKeyword(elasticKeywords,\n            keyword => new Query(\n            `((${this.nullQueryString(keyword)}AND${constraint.value})OR(${this.emptyStringQueryString(keyword)}AND${constraint.value}))`\n            )\n        );\n    }\n\n    /**\n     * @param elasticKeyword the queried field\n     * @returns a string representation of the query that checks whether the field is null\n     */\n    protected nullQueryString(elasticKeyword: string): string {\n        return `(!(_exists_:${elasticKeyword}))`;\n    }\n\n    /**\n     * @param elasticKeyword the queried field\n     * @returns a string representation of the query that checks whether the field has an empty string value\n     */\n    protected emptyStringQueryString(elasticKeyword: string): string {\n        return `(${elasticKeyword}:\"\")`;\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.isNull'];\n    }\n\n    serialize(): Operators | string {\n        return Operators.IS_NULL;\n    }\n}\n","import {Operator} from './operator';\nimport {Operators} from './operators';\n\n/**\n * A strict less than operator for numeric fields.\n */\nexport class LessThan extends Operator<number> {\n    constructor() {\n        super(1, '<');\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.lessThan', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.LESS_THAN;\n    }\n}\n","import {Operator} from './operator';\nimport moment, {Moment} from 'moment';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Query} from '../query/query';\nimport {clearTimeInformation} from '../../../utility/clear-time-information';\nimport {LessThan} from './less-than';\nimport {Operators} from './operators';\n\n/**\n * A strict less than operator for Date fields\n */\nexport class LessThanDate extends Operator<Moment> {\n\n    protected lessThan: LessThan;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.lessThan = operators.getOperator(LessThan) as LessThan;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        this.checkArgumentsCount(args);\n        const arg = moment(args[0]);\n        clearTimeInformation(arg);\n        return this.lessThan.createQuery(elasticKeywords, [arg.valueOf()]);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.lessThan', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.LESS_THAN_DATE;\n    }\n}\n","import {Operator} from './operator';\nimport moment, {Moment} from 'moment';\nimport {LessThan} from './less-than';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Query} from '../query/query';\nimport {Operators} from './operators';\n\n/**\n * A strict less than operator for DateTime fields\n */\nexport class LessThanDateTime extends Operator<Moment> {\n\n    protected lessThan: LessThan;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.lessThan = operators.getOperator(LessThan) as LessThan;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        this.checkArgumentsCount(args);\n        const arg = moment(args[0]);\n        arg.milliseconds(0);\n        arg.seconds(0);\n        return this.lessThan.createQuery(elasticKeywords, [arg.valueOf()]);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.lessThan', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.LESS_THAN_DATE_TIME;\n    }\n}\n","import {Operator} from './operator';\nimport {Query} from '../query/query';\nimport {Operators} from './operators';\n\n/**\n * A fuzzy search operator for string fields.\n *\n * Behaves differently for strings with spaces and without.\n * With spaces searches for matches containing the tokenized strings.\n * Without spaces searches for strings within the default edit distance.\n * See [docs]{@link https://www.elastic.co/guide/en/elasticsearch/reference/6.6/query-dsl-query-string-query.html#_fuzziness}\n * for more information.\n */\nexport class Like extends Operator<string> {\n    constructor() {\n        super(1);\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<string>): Query {\n        this.checkArgumentsCount(args);\n        const escaped = Operator.escapeInput(args[0]);\n        return Operator.forEachKeyword(elasticKeywords,\n            keyword => escaped.wasEscaped ? new Query(`(${keyword}:${escaped.value})`) : new Query(`(${keyword}:${escaped.value}~)`));\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.like', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.LIKE;\n    }\n}\n","import {Operator} from './operator';\nimport {Operators} from './operators';\n\n/**\n * A strict greater than operator for numeric fields.\n */\nexport class MoreThan extends Operator<number> {\n    constructor() {\n        super(1, '>');\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.moreThan', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.MORE_THAN;\n    }\n}\n","import {Operator} from './operator';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Query} from '../query/query';\nimport {MoreThan} from './more-than';\nimport moment, {Moment} from 'moment';\nimport {clearTimeInformation} from '../../../utility/clear-time-information';\nimport {Operators} from './operators';\n\n/**\n * A strict greater than operator for Date fields\n */\nexport class MoreThanDate extends Operator<Moment> {\n\n    protected moreThan: MoreThan;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.moreThan = operators.getOperator(MoreThan) as MoreThan;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        this.checkArgumentsCount(args);\n        const arg = moment(args[0]);\n        clearTimeInformation(arg);\n        arg.date(arg.date() + 1);\n        arg.milliseconds(-1);\n        return this.moreThan.createQuery(elasticKeywords, [arg.valueOf()]);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.moreThan', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.MORE_THAN_DATE;\n    }\n}\n","import {Operator} from './operator';\nimport moment, {Moment} from 'moment';\nimport {MoreThan} from './more-than';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Query} from '../query/query';\nimport {Operators} from './operators';\n\n/**\n * A strict greater than operator for DateTime fields\n */\nexport class MoreThanDateTime extends Operator<Moment> {\n\n    protected moreThan: MoreThan;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.moreThan = operators.getOperator(MoreThan) as MoreThan;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        this.checkArgumentsCount(args);\n        const arg = moment(args[0]);\n        arg.milliseconds(0);\n        arg.seconds(0);\n        arg.minutes(arg.minutes() + 1);\n        arg.milliseconds(-1);\n        return this.moreThan.createQuery(elasticKeywords, [arg.valueOf()]);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.moreThan', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.MORE_THAN_DATE_TIME;\n    }\n}\n","import {Operator} from './operator';\nimport {Equals} from './equals';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Query} from '../query/query';\nimport {Operators} from './operators';\n\n/**\n * Inequality operator. Will match if the field has a different value than the input.\n * Can be used with keyword fields and different types. We don't recommend using this operator with date and datetime fields\n * as an exact timestamp mismatch would be required.\n * For Date needs use {@link NotEqualsDate} instead.\n */\nexport class NotEquals extends Operator<string | number> {\n\n    protected equals: Equals;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.equals = operators.getOperator(Equals) as Equals;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<string | number>): Query {\n        const equalsQuery = this.equals.createQuery(elasticKeywords, args);\n        if (equalsQuery.isEmpty) {\n            return equalsQuery;\n        }\n        return new Query(`(!${equalsQuery.value})`);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.notEquals', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.NOT_EQUALS;\n    }\n}\n","import {Operator} from './operator';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Query} from '../query/query';\nimport {EqualsDate} from './equals-date';\nimport {Moment} from 'moment';\nimport {Operators} from './operators';\n\n/**\n * Inequality operator for Date fields. Will match if the field has a date with different day than the provided date.\n */\nexport class NotEqualsDate extends Operator<Moment> {\n\n    protected equals: EqualsDate;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.equals = operators.getOperator(EqualsDate) as EqualsDate;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        const equalsQuery = this.equals.createQuery(elasticKeywords, args);\n        if (equalsQuery.isEmpty) {\n            return equalsQuery;\n        }\n        return new Query(`(!${equalsQuery.value})`);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.notEquals', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.NOT_EQUALS_DATE;\n    }\n}\n","import {Operator} from './operator';\nimport {Query} from '../query/query';\nimport {Operators} from './operators';\n\n/**\n * Operator that matches if the input is a substring of some value.\n * Can only be used on fields that are texts and are not indexed as keywords.\n */\nexport class Substring extends Operator<string> {\n    constructor() {\n        super(1);\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<string>): Query {\n        this.checkArgumentsCount(args);\n        // TODO IMPROVEMENT 27.4.2020 - we could use regular expressions to search for substrings which would solve the unintuitive\n        //  behavior that occurs when we search for strings that contain spaces. We need to escape the input string in a special way\n        //  if we choose to do this\n        const escapedValue = Operator.escapeInput(args[0]).value.replace(/ /g, '\\\\ ');\n        return Operator.forEachKeyword(elasticKeywords, keyword => new Query(`(${keyword}:*${escapedValue}*)`));\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.substring', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.SUBSTRING;\n    }\n}\n","import {Operator} from './operator';\nimport {Operators} from './operators';\n\n/**\n * Less or equal than operator for numeric fields\n */\nexport class LessThanEqual extends Operator<number> {\n\n    constructor() {\n        super(1, '<=');\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.lessThanEqual', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.LESS_THAN_EQUAL;\n    }\n\n\n}\n","import {Operator} from './operator';\nimport {Operators} from './operators';\n\n/**\n * Greater or equal than operator for numeric fields\n */\nexport class MoreThanEqual extends Operator<number> {\n\n    constructor() {\n        super(1, '>=');\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.moreThanEqual', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.LESS_THAN_EQUAL;\n    }\n\n\n}\n","import {Operator} from './operator';\nimport moment, {Moment} from 'moment';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {MoreThanEqual} from './more-than-equal';\nimport {Operators} from './operators';\nimport {Query} from '../query/query';\nimport {clearTimeInformation} from '../../../utility/clear-time-information';\n\n/**\n * Greater or equal than operator for Date fields\n */\nexport class MoreThanEqualDate extends Operator<Moment> {\n\n    protected moreThanEqual: MoreThanEqual;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.moreThanEqual = operators.getOperator(MoreThanEqual) as MoreThanEqual;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        this.checkArgumentsCount(args);\n        const arg = moment(args[0]);\n        clearTimeInformation(arg);\n        return this.moreThanEqual.createQuery(elasticKeywords, [arg.valueOf()]);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.moreThanEqual', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.MORE_THAN_EQUAL_DATE;\n    }\n\n}\n","import {Operator} from './operator';\nimport moment, {Moment} from 'moment';\nimport {MoreThanEqual} from './more-than-equal';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Operators} from './operators';\nimport {Query} from '../query/query';\n\n/**\n * Greater or equal than operator for Datetime fields\n */\nexport class MoreThanEqualDateTime extends Operator<Moment> {\n\n    protected moreThanEqual: MoreThanEqual;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.moreThanEqual = operators.getOperator(MoreThanEqual) as MoreThanEqual;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<moment.Moment>): Query {\n        this.checkArgumentsCount(args);\n        const arg = moment(args[0]);\n        arg.milliseconds(0);\n        arg.seconds(0);\n        return this.moreThanEqual.createQuery(elasticKeywords, [arg.valueOf()]);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.moreThanEqual', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.MORE_THAN_EQUAL_DATE_TIME;\n    }\n\n\n}\n","import {Operator} from './operator';\nimport moment, {Moment} from 'moment';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Query} from '../query/query';\nimport {Operators} from './operators';\nimport {LessThanDate} from './less-than-date';\n\n/**\n * Less or equal than operator for Date fields\n */\nexport class LessThanEqualDate extends Operator<Moment> {\n\n    protected lessThan: LessThanDate;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.lessThan = operators.getOperator(LessThanDate) as LessThanDate;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        this.checkArgumentsCount(args);\n        const arg = moment(args[0]);\n        arg.date(arg.date() + 1);\n        return this.lessThan.createQuery(elasticKeywords, [arg]);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.lessThanEqual', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.LESS_THAN_EQUAL_DATE;\n    }\n\n}\n","import {Operator} from './operator';\nimport moment, {Moment} from 'moment';\nimport {LessThanEqual} from './less-than-equal';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Operators} from './operators';\nimport {Query} from '../query/query';\n\n/**\n * Greater or equal than operator for Datetime fields\n */\nexport class LessThanEqualDateTime extends Operator<Moment> {\n\n    protected lessThanEqual: LessThanEqual;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.lessThanEqual = operators.getOperator(LessThanEqual) as LessThanEqual;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<moment.Moment>): Query {\n        this.checkArgumentsCount(args);\n        const arg = moment(args[0]);\n        arg.milliseconds(0);\n        arg.seconds(0);\n        return this.lessThanEqual.createQuery(elasticKeywords, [arg.valueOf()]);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.lessThanEqual', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.LESS_THAN_DATE_TIME;\n    }\n\n\n}\n","import {Operator} from './operator';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Query} from '../query/query';\nimport {Moment} from 'moment';\nimport {Operators} from './operators';\nimport {EqualsDateTime} from './equals-date-time';\n\nexport class NotEqualsDateTime extends Operator<Moment> {\n\n    protected equals: EqualsDateTime;\n\n    constructor(operators: OperatorService) {\n        super(1);\n        this.equals = operators.getOperator(EqualsDateTime) as EqualsDateTime;\n    }\n\n    createQuery(elasticKeywords: Array<string>, args: Array<Moment>): Query {\n        const equalsQuery = this.equals.createQuery(elasticKeywords, args);\n        if (equalsQuery.isEmpty) {\n            return equalsQuery;\n        }\n        return new Query(`(!${equalsQuery.value})`);\n    }\n\n    getOperatorNameTemplate(): Array<string> {\n        return ['search.operator.notEquals', Operator.INPUT_PLACEHOLDER];\n    }\n\n    serialize(): Operators | string {\n        return Operators.NOT_EQUALS_DATE_TIME;\n    }\n}\n","import {Injectable, Type} from '@angular/core';\nimport {Operator} from '../models/operator/operator';\nimport {Operators} from '../models/operator/operators';\nimport {Equals} from '../models/operator/equals';\nimport {EqualsDate} from '../models/operator/equals-date';\nimport {EqualsDateTime} from '../models/operator/equals-date-time';\nimport {InRange} from '../models/operator/in-range';\nimport {InRangeDate} from '../models/operator/in-range-date';\nimport {InRangeDateTime} from '../models/operator/in-range-date-time';\nimport {IsNull} from '../models/operator/is-null';\nimport {LessThan} from '../models/operator/less-than';\nimport {LessThanDate} from '../models/operator/less-than-date';\nimport {LessThanDateTime} from '../models/operator/less-than-date-time';\nimport {Like} from '../models/operator/like';\nimport {MoreThan} from '../models/operator/more-than';\nimport {MoreThanDate} from '../models/operator/more-than-date';\nimport {MoreThanDateTime} from '../models/operator/more-than-date-time';\nimport {NotEquals} from '../models/operator/not-equals';\nimport {NotEqualsDate} from '../models/operator/not-equals-date';\nimport {Substring} from '../models/operator/substring';\nimport {LessThanEqual} from '../models/operator/less-than-equal';\nimport {MoreThanEqual} from '../models/operator/more-than-equal';\nimport {MoreThanEqualDate} from '../models/operator/more-than-equal-date';\nimport {MoreThanEqualDateTime} from '../models/operator/more-than-equal-date-time';\nimport {LessThanEqualDate} from '../models/operator/less-than-equal-date';\nimport {LessThanEqualDateTime} from '../models/operator/less-than-equal-date-time';\nimport {NotEqualsDateTime} from '../models/operator/not-equals-date-time';\n\n/**\n * A service that resolves {@link Operators} (or custom string) into a concrete (@link Operator) implementation class.\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class OperatorResolverService {\n\n    /**\n     * Resolves the operators in the {@link Operators} enum into their corresponding classes.\n     * Passes all unresolved values into the [toCustomClass()]{@link OperatorResolverService#toCustomClass} method.\n     * @param operator a serialized representation of the {@link Operator} class\n     */\n    public toClass(operator: Operators | string): Type<Operator<any>> | undefined {\n        switch (operator) {\n            default:\n                return this.toCustomClass(operator);\n            case Operators.EQUALS:\n                return Equals;\n            case Operators.EQUALS_DATE:\n                return EqualsDate;\n            case Operators.EQUALS_DATE_TIME:\n                return EqualsDateTime;\n            case Operators.IN_RANGE:\n                return InRange;\n            case Operators.IN_RANGE_DATE:\n                return InRangeDate;\n            case Operators.IN_RANGE_DATE_TIME:\n                return InRangeDateTime;\n            case Operators.IS_NULL:\n                return IsNull;\n            case Operators.LESS_THAN:\n                return LessThan;\n            case Operators.LESS_THAN_DATE:\n                return LessThanDate;\n            case Operators.LESS_THAN_DATE_TIME:\n                return LessThanDateTime;\n            case Operators.LESS_THAN_EQUAL:\n                return LessThanEqual;\n            case Operators.LESS_THAN_EQUAL_DATE:\n                return LessThanEqualDate;\n            case Operators.LESS_THAN_EQUAL_DATE_TIME:\n                return LessThanEqualDateTime;\n            case Operators.LIKE:\n                return Like;\n            case Operators.MORE_THAN:\n                return MoreThan;\n            case Operators.MORE_THAN_DATE:\n                return MoreThanDate;\n            case Operators.MORE_THAN_DATE_TIME:\n                return MoreThanDateTime;\n            case Operators.MORE_THAN_EQUAL:\n                return MoreThanEqual;\n            case Operators.MORE_THAN_EQUAL_DATE:\n                return MoreThanEqualDate;\n            case Operators.MORE_THAN_EQUAL_DATE_TIME:\n                return MoreThanEqualDateTime;\n            case Operators.NOT_EQUALS:\n                return NotEquals;\n            case Operators.NOT_EQUALS_DATE:\n                return NotEqualsDate;\n            case Operators.NOT_EQUALS_DATE_TIME:\n                return NotEqualsDateTime;\n            case Operators.SUBSTRING:\n                return Substring;\n        }\n    }\n\n    /**\n     * Should resolve any custom operators into their corresponding class objects.\n     *\n     * If you implement any custom {@link Operator} classes, you should override this method to resolve them after serialization.\n     *\n     * @param operator the serialized string provided by your [Operator.serialize()]{@link Operator#serialize} implementation\n     * @returns `undefined`\n     */\n    protected toCustomClass(operator: string): Type<Operator<any>> | undefined {\n        return undefined;\n    }\n}\n","import {Injectable, Type} from '@angular/core';\nimport {Operator} from '../models/operator/operator';\nimport {Operators} from '../models/operator/operators';\nimport {OperatorResolverService} from './operator-resolver.service';\n\n/**\n * Stores, provides and creates {@link Operator} implementations to be used in the project as singleton objects.\n * Passes reference to itself to all Operators it creates, so they can use it if they want to.\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class OperatorService {\n\n    private _operators: Map<Type<Operator<any>>, Operator<any>>;\n\n    constructor(protected _operatorResolver: OperatorResolverService) {\n        this._operators = new Map<Type<Operator<any>>, Operator<any>>();\n    }\n\n    public getOperator(operatorClass: Type<Operator<any>>): Operator<any> {\n        this.createOperatorIfNotInMap(operatorClass);\n        return this._operators.get(operatorClass);\n    }\n\n    public getFromMetadata(metadata: Operators | string): Operator<any> {\n        return this.getOperator(this._operatorResolver.toClass(metadata));\n    }\n\n    private createOperatorIfNotInMap(operatorClass: Type<Operator<any>>): void {\n        if (!this._operators.has(operatorClass)) {\n            this._operators.set(operatorClass, new operatorClass(this));\n        }\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {SearchIndex} from '../models/search-index';\n\n/**\n * A utility service that aims to provide elasticsearch query string query index names for data set queries.\n *\n * If your app uses a customised elasticsearch database mapping for Case objects, that affects the way data fields are indexed you must\n * provide an updated version of this service, so that search can generate correct queries.\n *\n * You are encouraged to use this service when creating {@link Filter}s, with elastic query string queries, so that future changes to the\n * default mapping don't affect your existing code.\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class SearchIndexResolverService {\n\n    public readonly KEYWORD = '.keyword';\n\n    constructor() { }\n\n    /**\n     * Constructs the index name for the specified field.\n     *\n     * Note that almost all combinations are valid and will not throw an error when used to query the database, but not all combinations are\n     * used by the application engine. The {@link SearchIndex} class has some information about which field types map to which indices, but\n     * you should consult the backend documentation for more reliable information.\n     * @param dataFieldIdentifier import ID of the queried data field\n     * @param index the queried index\n     * @param keyword whether the keyword of a TEXT index should be queried\n     * @returns the full name of the specified index\n     */\n  public getIndex(dataFieldIdentifier: string, index: SearchIndex, keyword = false): string {\n      return `dataSet.${dataFieldIdentifier}.${index}${keyword ? this.KEYWORD : ''}`;\n  }\n\n    /**\n     * Constructs the index name for the specified core field.\n     *\n     * Note that almost all combinations are valid and will not throw an error when used to query the database, but not all combinations are\n     * used by the application engine. The {@link SearchIndex} class has some information about which field types map to which indices, but\n     * you should consult the backend documentation for more reliable information.\n     * @param index the queried index\n     * @param keyword whether the keyword of a TEXT index should be queried\n     * @returns the full name of the specified index\n     */\n  public getCoreIndex(index: string, keyword = false): string {\n      return `${index}${keyword ? this.KEYWORD : ''}`;\n  }\n}\n","/**\n * Represents the available {@link Category} classes in a serializable form.\n */\nexport enum Categories {\n    // Case categories\n    CASE_AUTHOR = 'case_author',\n    CASE_CREATION_DATE = 'case_creation_date',\n    CASE_CREATION_DATE_TIME = 'case_creation_date_time',\n    CASE_DATASET = 'case_dataset',\n    CASE_PROCESS = 'case_process',\n    CASE_ROLE = 'case_role',\n    CASE_SIMPLE_DATASET = 'case_simple_dataset',\n    CASE_TASK = 'case_task',\n    CASE_TITLE = 'case_title',\n    CASE_VISUAL_ID = 'case_visual_id',\n    CASE_STRING_ID = 'case_string_id',\n\n    // Task categories\n    TASK_ASSIGNEE = 'task_assignee',\n    TASK_PROCESS = 'task_process',\n    TASK_ROLE = 'task_role',\n    TASK_TASK = 'task_task',\n}\n","import {Predicate} from './predicate';\nimport {Query} from '../query/query';\n\n/**\n * The simples type of `Predicate`. Represents a leaf node in the predicate tree.\n */\nexport class ElementaryPredicate extends Predicate {\n\n    constructor(protected _query: Query, initiallyVisible = true) {\n        super(initiallyVisible);\n    }\n\n    get query(): Query {\n        return this._query;\n    }\n\n}\n","/**\n * The various input types the search component can display and the search categories can use to generate search predicates.\n */\nexport enum SearchInputType {\n    TEXT = 'text',\n    AUTOCOMPLETE = 'autocomplete',\n    DATE = 'date',\n    DATE_TIME = 'dateTime',\n    NUMBER = 'number',\n    BOOLEAN = 'boolean',\n    OPERATOR = 'operator',\n}\n","/**\n * Type of a processed operator template part/segment.\n */\nexport enum OperatorTemplatePartType {\n    /**\n     * Template segment that represents an input field.\n     */\n    INPUT = 'input',\n    /**\n     * Template segment that represents a text display\n     */\n    TEXT = 'text',\n}\n","import {OperatorTemplatePartType} from './operator-template-part-type';\nimport {FormControl} from '@angular/forms';\n\n/**\n * Represents a process operator template part/segment.\n *\n * Is used to be iterated over by ngFor to display a combination of text segments and user inputs that together create an operator input GUI\n */\nexport class OperatorTemplatePart {\n    protected _type: OperatorTemplatePartType;\n    protected _content: string | FormControl;\n\n    /**\n     * The\n     * @param part either the displayed text or a `FormControl` object, that represents the operator template segment.\n     * @param id for ngFor trackBy comparison\n     * @param first whether it is the first input in the template\n     */\n    constructor(part: string | FormControl, public id: number, public first = false) {\n        this._content = part;\n        this._type = typeof part === 'string' ? OperatorTemplatePartType.TEXT : OperatorTemplatePartType.INPUT;\n    }\n\n    /**\n     * @returns [TEXT]{@link OperatorTemplatePartType#TEXT} if the segment is a text (content has type `string`),\n     * or [INPUT]{@link OperatorTemplatePartType#INPUT} if the segment is an input field (content has type `FormControl`)\n     */\n    public get type(): OperatorTemplatePartType {\n        return this._type;\n    }\n\n    public get content(): string | FormControl {\n        return this._content;\n    }\n}\n","import {SearchInputType} from './category/search-input-type';\nimport {FormControl} from '@angular/forms';\nimport {Observable} from 'rxjs';\nimport {SearchAutocompleteOption} from './category/search-autocomplete-option';\nimport {filter, map, startWith} from 'rxjs/operators';\n\n/**\n * Represents a search category configuration input.\n *\n * Should handle all the logic related to autocomplete search configuration inputs.\n * If this class has its `type` set to `OPERATOR` it works mostly as a placeholder object, because the\n * operator and operand selection logic is handled by the {@link Category} class.\n * This behavior might be changed in future releases.\n */\nexport class ConfigurationInput {\n\n    protected _formControl: FormControl;\n\n    protected _filteredOptions$: Observable<Array<SearchAutocompleteOption<unknown>>>;\n\n    /**\n     * @param type the type of the configuration input\n     * @param label the translation path for the label of the input\n     * @param displayBold whether the configuration input should be displayed in bold after selection or not\n     * @param _autocompleteOptions the autocomplete options that are available in this configuration input\n     * @param filterOptions a method that receives the keys of the available options and should return\n     * the appropriately filtered autocomplete options\n     */\n    constructor(public type: SearchInputType.AUTOCOMPLETE | SearchInputType.OPERATOR,\n                public label: string,\n                public displayBold: boolean,\n                protected _autocompleteOptions: Map<string, Array<unknown>>,\n                filterOptions: (optionKeys: Array<string>, newValue: string) => Array<SearchAutocompleteOption<unknown>>) {\n        this._formControl = new FormControl();\n\n        this._filteredOptions$ = this._formControl.valueChanges.pipe(\n            startWith(''),\n            filter(newValue => typeof newValue === 'string'),\n            map(newValue => {\n                return filterOptions(Array.from(this._autocompleteOptions.keys()), newValue);\n\n            })\n        );\n    }\n\n    public get formControl(): FormControl {\n        return this._formControl;\n    }\n\n    public get isOptionSelected(): boolean {\n        return !!this._formControl.value && (typeof this._formControl.value !== 'string');\n    }\n\n    public get selectedOptionTranslatePath(): string {\n        return this.isOptionSelected ? this._formControl.value.text : '';\n    }\n\n    public get filteredOptions$(): Observable<Array<SearchAutocompleteOption<unknown>>> {\n        return this._filteredOptions$;\n    }\n\n    /**\n     * Value changes of the encapsulated `FormControl` object\n     */\n    public valueChanges$(): Observable<any> {\n        return this._formControl.valueChanges;\n    }\n\n    public clear(): void {\n        this._formControl.setValue(undefined);\n    }\n}\n","import {Observable} from 'rxjs';\n\n/**\n * This function is meant to work as a call to rxjs's `of` function without any arguments\n * @returns a void Observable, that calls next once and then completes\n */\nexport function ofVoid(): Observable<void> {\n    return new Observable<void>(o => {\n        o.next();\n        o.complete();\n    });\n}\n","export const DATE_FORMAT_STRING = 'DD.MM.YYYY';\nexport const DATE_TIME_FORMAT_STRING = 'DD.MM.YYYY HH:mm';\n\n// https://momentjs.com/docs/#/displaying/format/\nexport const DATE_FORMAT = {\n    parse: {\n        dateInput: DATE_FORMAT_STRING,\n    },\n    display: {\n        dateInput: DATE_FORMAT_STRING,\n        monthYearLabel: 'MMM YYYY',\n        dateA11yLabel: 'Do MMMM YYYY',\n        monthYearA11yLabel: 'MMMM YYYY',\n    },\n};\n\nexport const DATE_TIME_FORMAT = {\n    parse: {\n        dateInput: DATE_TIME_FORMAT_STRING,\n    },\n    display: {\n        dateInput: DATE_TIME_FORMAT_STRING,\n        monthYearLabel: 'MMM YYYY',\n        dateA11yLabel: 'Do MMMM YYYY HH:mm',\n        monthYearA11yLabel: 'MMMM YYYY',\n    },\n};\n","import {Operator} from '../operator/operator';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {Query} from '../query/query';\nimport {ElementaryPredicate} from '../predicate/elementary-predicate';\nimport {SearchInputType} from './search-input-type';\nimport {FormControl} from '@angular/forms';\nimport {BehaviorSubject, forkJoin, Observable, of, ReplaySubject} from 'rxjs';\nimport {debounceTime, defaultIfEmpty, map} from 'rxjs/operators';\nimport {OperatorTemplatePart} from '../operator-template-part';\nimport {IncrementingCounter} from '../../../utility/incrementing-counter';\nimport {ConfigurationInput} from '../configuration-input';\nimport {CategoryGeneratorMetadata, CategoryMetadataConfiguration} from '../persistance/generator-metadata';\nimport {Categories} from './categories';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {Operators} from '../operator/operators';\nimport {ofVoid} from '../../../utility/of-void';\nimport {FilterTextSegment} from '../persistance/filter-text-segment';\nimport {DATE_FORMAT_STRING, DATE_TIME_FORMAT_STRING} from '../../../moment/time-formats';\nimport {Type} from '@angular/core';\n\n/**\n * The top level of abstraction in search query generation. Represents a set of indexed fields that can be searched.\n * Encapsulates the the state and logic of the query construction process.\n *\n * As opposed to {@link Operator}s Categories are not stateless and shouldn't be shared.\n * A single Category instance is capable of holding the state of one {@link EditablePredicate},\n * or can be used as a builder to form an unlimited amount of [ElementaryPredicates]{@link ElementaryPredicate}.\n *\n * You can use {@link CategoryFactory} to get instances of Category classes.\n * Alternatively you can use the [clone()]{@Link Category#clone} method to duplicate an existing instance.\n *\n * If you want to make your own Category class you have to make sure that the constructor takes {@link OperatorService} as it's first\n * argument and {@link LoggerService} as it's second argument. Alternatively you can make your own implementation of the\n * {@link CategoryFactory} so, that your style of constructors is supported.\n *\n * @typeparam T type of objects the category expects to generate queries from\n */\nexport abstract class Category<T> {\n\n    /**\n     * The {@link CategoryMetadataConfiguration} key for this Category's {@link Operator}\n     */\n    protected static readonly OPERATOR_METADATA = 'operator';\n\n    /**\n     * Contains the `FormControl` object that is used to drive the operator selection.\n     *\n     * The category can subscribe to it if it wishes to react to the selection change by the user.\n     */\n    protected _operatorFormControl: FormControl;\n\n    /**\n     * Stores the `FormControl` objects that are pushed into the observable when the number of operands changes.\n     */\n    protected _operandsFormControls: Array<FormControl>;\n\n    /**\n     * Contains the `FormControl` objects that can be used to input search arguments.\n     */\n    protected _operandsFormControls$: ReplaySubject<Array<FormControl> | undefined>;\n\n    /**\n     * Contains the operator template parts that make up the operands GUI.\n     */\n    protected _operatorTemplate$: BehaviorSubject<Array<OperatorTemplatePart> | undefined>;\n\n    /**\n     * Generates IDs for template parts supplied to ng for.\n     */\n    protected _trackByIdGenerator: IncrementingCounter;\n\n    /**\n     * Emit a new `Predicate` if the `Category` is in a state that it can be created.\n     * Emits `undefined` if the `Category` is not in such state.\n     */\n    protected _generatedPredicate$: BehaviorSubject<ElementaryPredicate | undefined>;\n\n    /**\n     * Utility variable that can be used as value for the [configurationInputs$]{@link Category#configurationInputs$} `Observable`.\n     */\n    protected readonly _OPERATOR_INPUT: ConfigurationInput;\n\n    /**\n     * The constructor fills the values of all protected fields and then calls the [initializeCategory()]{@link Category#initializeCategory}\n     * method. If you want to override the category creation behavior override that method.\n     *\n     * @param _elasticKeywords Elasticsearch keywords that should be queried by queries generated with this category\n     * @param _allowedOperators Operators that can be used to generated queries on the above keywords\n     * @param translationPath path to the translation string\n     * @param _inputType input field type that should be used to enter operator arguments for this category\n     * @param _log used to record information about incorrect use of this class\n     * @param _operatorService used to resolve serialized operators during deserialization\n     */\n    protected constructor(protected readonly _elasticKeywords: Array<string>,\n                          protected readonly _allowedOperators: Array<Operator<any>>,\n                          public readonly translationPath: string,\n                          protected readonly _inputType: SearchInputType,\n                          protected _log: LoggerService,\n                          protected _operatorService: OperatorService) {\n        this._OPERATOR_INPUT = new ConfigurationInput(\n            SearchInputType.OPERATOR,\n            'search.operator.name',\n            false,\n            new Map<string, Array<unknown>>(),\n            () => {\n                throw new Error('ConfigurationInput of type OPERATOR is a placeholder!'\n                    + ' Use operator related methods from the Category class instead.');\n            }\n        );\n\n        this._operatorFormControl = this._OPERATOR_INPUT.formControl;\n        this._operandsFormControls$ = new ReplaySubject<Array<FormControl> | undefined>(1);\n        this._operatorTemplate$ = new BehaviorSubject<Array<OperatorTemplatePart> | undefined>(undefined);\n        this._operandsFormControls = [];\n        this._trackByIdGenerator = new IncrementingCounter();\n        this._generatedPredicate$ = new BehaviorSubject<ElementaryPredicate | undefined>(undefined);\n        this.initializeCategory();\n\n        this.operandsFormControls$.pipe(\n            map(formControls => {\n                if (!formControls) {\n                    return undefined;\n                }\n\n                const parts = this.selectedOperator.getOperatorNameTemplate();\n                const fcs = [...formControls];\n                let first = true;\n                return parts.map(part => {\n                    const template = new OperatorTemplatePart(part ? part : fcs.shift(),\n                        this._trackByIdGenerator.next(),\n                        part ? undefined : first);\n                    if (!part) {\n                        first = false;\n                    }\n                    return template;\n                });\n            })\n        ).subscribe(template => {\n            this._operatorTemplate$.next(template);\n        });\n    }\n\n    /**\n     * Cleans up the internal state of the object before its destruction.\n     *\n     * The developer must call this method at an appropriate moment, as this object cannot hook into the Angular lifecycle.\n     */\n    public destroy(): void {\n        this._operandsFormControls$.complete();\n        this._operatorTemplate$.complete();\n        this._generatedPredicate$.complete();\n    }\n\n    /**\n     * Configuration input represent the steps that are necessary to configure the category.\n     * The last input must always be of type [OPERATOR]{@link SearchInputType#OPERATOR}.\n     * Selecting the operator completes the configuration of the category and the arguments inputs\n     * (based on category input type and operator arity) are displayed.\n     *\n     * Beware that while most categories always return the same constant it must not always be the case.\n     *\n     * @returns the required input type for configuration steps of this category\n     */\n    public abstract get configurationInputs$(): Observable<Array<ConfigurationInput>>;\n\n    /**\n     * If you use the `Category` class as a sort of PredicateBuilder, then you want to use the\n     * [generatePredicate()]{@link Category#generatePredicate} method instead.\n     *\n     * This stream publishes either a new `Predicate` object or `undefined` based on changes to the `FormControls` that are\n     * managed by this class. If (based on user input) the `Category` reaches a state when construction of a `Predicate` is possible\n     * it will emit this `Predicate`. If it reaches a state when the `Predicate` can not longer be created `undefined` is emitted.\n     */\n    public get generatedPredicate$(): Observable<ElementaryPredicate | undefined> {\n        return this._generatedPredicate$.asObservable();\n    }\n\n    /**\n     * Returns the {@link Predicate} currently generated by the Category.\n     *\n     * For more information see [generatedPredicate$]{@link Category#generatedPredicate$}.\n     */\n    public get generatedPredicate(): ElementaryPredicate | undefined {\n        return this._generatedPredicate$.getValue();\n    }\n\n    /**\n     * Beware that while most categories always return the same constant it is not a requirement.\n     * An example for such behavior is the {@link CaseDataset} category, where the argument input type depends\n     * on the selected data field type.\n     *\n     * @returns the required input type for arguments for this category\n     */\n    public get inputType(): SearchInputType {\n        return this._inputType;\n    }\n\n    /**\n     * @returns the set of Operators that can be used with this category. Iteration order determines the display order.\n     */\n    public get allowedOperators(): Array<Operator<any>> {\n        const result = [];\n        result.push(...this._allowedOperators);\n        return result;\n    }\n\n    /**\n     * @returns the currently selected operator or `undefined` if no operator is selected.\n     */\n    public get selectedOperator(): Operator<any> {\n        return this._operatorFormControl.value;\n    }\n\n    /**\n     * @returns an array of `FormControl` objects that contains as many controls as is the arity of the selected operator.\n     * Calling this method multiple times will return the same `FormControl` instances.\n     * When no operator is selected `undefined` is emitted.\n     */\n    public get operandsFormControls$(): Observable<Array<FormControl> | undefined> {\n        return this._operandsFormControls$.asObservable();\n    }\n\n    /**\n     * A new value is emitted whenever the selected operator changes. `undefined` is emitted if no operator is selected.\n     *\n     * @returns [operators template]{@link Operator#getOperatorNameTemplate} in processed form fit for GUI rendering\n     */\n    public get operatorTemplate$(): Observable<Array<OperatorTemplatePart> | undefined> {\n        return this._operatorTemplate$.asObservable();\n    }\n\n    /**\n     * @returns whether the category is fully configured and represents a valid predicate or not\n     */\n    public get providesPredicate(): boolean {\n        return !!this._generatedPredicate$.getValue();\n    }\n\n    /**\n     * @returns the set of Elasticsearch keywords that should be queried by queries generated with this category.\n     * The method can be overridden if the keywords are not static and change based on some additional selection (eg. Data fields)\n     */\n    protected get elasticKeywords(): Array<string> {\n        const result = [];\n        result.push(...this._elasticKeywords);\n        return result;\n    }\n\n    /**\n     * @returns the arity of the selected operator. Throws an error if no operator is selected.\n     */\n    protected get selectedOperatorArity(): number {\n        if (!this.isOperatorSelected()) {\n            throw new Error('An operator mus be selected before its arity can be resolved!');\n        }\n        return this.selectedOperator.numberOfOperands;\n    }\n\n    /**\n     * Changes the state of the Category. Category can create queries when an {@link Operator} is selected.\n     *\n     * This method is useful if you want to use the Category class as predicate builder.\n     *\n     * @param operatorIndex index in the [allowedOperators]{@link Category#allowedOperators} array of the {@link Operator} that\n     * should be selected\n     */\n    public selectOperator(operatorIndex: number): void {\n        const operators = this.allowedOperators;\n        if (operatorIndex < 0 || operatorIndex >= operators.length) {\n            this._log.warn(`The provided 'operatorIndex' is out of range.`);\n            return;\n        }\n        this._operatorFormControl.setValue(operators[operatorIndex]);\n    }\n\n    /**\n     * Changes the state of the Category and generates a query if all necessary operands were set.\n     *\n     * If you are using the category as a builder. Consider using the [generatePredicate()]{@link Category#generatePredicate}\n     * method instead.\n     *\n     * @param userInput values entered by the user. The length of the array should match the\n     * [arity]{@link Operator#_numberOfOperands} of the selected Operator.\n     */\n    public setOperands(userInput: Array<T>): void {\n        const range = Math.min(userInput.length, this._operandsFormControls.length);\n        if (range < userInput.length) {\n            this._log.warn(`${userInput.length} operands are being set, but only ${range} inputs are available!`\n                + ' Extra operands will be ignored.');\n        }\n        for (let i = 0; i < range; i++) {\n            this._operandsFormControls[i].setValue(userInput[i]);\n        }\n        if (range !== 0) {\n            this.operandValueChanges(range - 1);\n        }\n    }\n\n    /**\n     * Resets the state of the Category, deselecting any selected category and removing other state\n     * information if the Category defines them.\n     *\n     * This method can be used to reset the state of the category after each predicate constructed,\n     * effectively turning the category instance into a predicate builder.\n     */\n    public reset(): void {\n        this.clearOperatorSelection();\n        this._operandsFormControls.forEach(fc => {\n            fc.setValue(undefined);\n        });\n    }\n\n    /**\n     * Calls the [createQuery]{@link Operator#createQuery} method on the selected Operator.\n     *\n     * Throws an Error if no Operator is selected.\n     *\n     * Override this method if the query should be generated in some other way.\n     * @param userInput values entered by the user. The length of the array should match the\n     * [arity]{@link Operator#_numberOfOperands} of the selected Operator.\n     * @returns the Query generated by the selected Operator\n     */\n    protected generateQuery(userInput: Array<T>): Query {\n        if (!this.isOperatorSelected()) {\n            throw new Error('Category cannot generate a Query if no Operator is selected');\n        }\n        return this._operatorFormControl.value.createQuery(this.elasticKeywords, userInput as unknown as Array<string>);\n    }\n\n    /**\n     * Calls the [generateQuery]{@link Category#generateQuery} method and creates an {@link ElementaryPredicate} with the result.\n     * @param userInput values entered by the user. The length of the array should match the\n     * [arity]{@link Operator#_numberOfOperands} of the selected Operator.\n     * @returns Predicate with {@link Query} generated by this object's [generateQuery]{@link Category#generateQuery} method\n     */\n    public generatePredicate(userInput: Array<T>): ElementaryPredicate {\n        return new ElementaryPredicate(this.generateQuery(userInput));\n    }\n\n    /**\n     * Selects the default operator that should be used for query generation, when no Operator selection is provided to the user.\n     *\n     * The default implementation selects the first operator in the [_allowedOperators]{@link Category#allowedOperators} array.\n     *\n     * See [selectOperator()]{@link Category#selectOperator} for more information.\n     */\n    public selectDefaultOperator(): void {\n        this.selectOperator(0);\n    }\n\n    /**\n     * @returns the translation string path for the text that should be displayed in the input placeholder\n     */\n    public abstract get inputPlaceholder(): string;\n\n    /**\n     * @returns whether the category text should be rendered with bold text when selected\n     */\n    public abstract get displayBold(): boolean;\n\n    /**\n     * @returns whether an operator is currently selected or not.\n     */\n    public isOperatorSelected(): boolean {\n        return !!this._operatorFormControl.value;\n    }\n\n    /**\n     * Deselects the currently selected operator (if any)\n     */\n    public clearOperatorSelection(): void {\n        this._operatorFormControl.setValue(undefined);\n    }\n\n    /**\n     * Creates a duplicate of the current category object. Note that a duplicate is NOT a clone.\n     * The state of the returned category is not necessarily the same as the state of this category.\n     *\n     * @returns a category instance of the same type as this category in its initial state.\n     */\n    public abstract duplicate(): Category<T>;\n\n    /**\n     * Provides the necessary information for the serialisation of this category's state.\n     *\n     * Not every state must be preservable. The default library implementation supports only the preservation of the final state when the\n     * Category is generating a predicate object.\n     *\n     * @returns an object containing all the necessary information for the reconstruction of this category's state,\n     * barring information about allowed nets. Returns `undefined` if the category is not in a state that generates a predicate.\n     * See [providesPredicate()]{@link Category#providesPredicate}.\n     */\n    public createMetadata(): CategoryGeneratorMetadata | undefined {\n        if (!this.providesPredicate) {\n            return undefined;\n        }\n        return {\n            category: this.serializeClass(),\n            configuration: this.createMetadataConfiguration(),\n            values: this.createMetadataValues()\n        };\n    }\n\n    /**\n     * Restores the saved state contained in the provided metadata.\n     *\n     * @param metadata the metadata created by calling the [createMetadata()]{@link Category#createMetadata} method\n     *\n     * @returns an Observable. When the Observable emits the category has finished restoring its state.\n     */\n    public loadFromMetadata(metadata: CategoryGeneratorMetadata): Observable<void> {\n        const result$ = new ReplaySubject<void>(1);\n        this.loadConfigurationFromMetadata(metadata.configuration).subscribe(() => {\n            this.loadValuesFromMetadata(metadata.values).subscribe(() => {\n                result$.next();\n                result$.complete();\n            });\n        });\n        return result$.asObservable();\n    }\n\n    /**\n     * This method is calle in the constructor. Apart from calling this method, the constructor only creates instances to fill the protected\n     * fields of this class.\n     *\n     * The default implementation manages creation of operand `FormControl` instances and manages subscriptions to them.\n     *\n     * You can override this method to change the initialization of your category without having to rewrite the base\n     * constructor from scratch.\n     */\n    protected initializeCategory(): void {\n        this._operatorFormControl.valueChanges.subscribe((newOperator: Operator<any>) => {\n            this._operandsFormControls.forEach(fc => {\n                fc.setValue(undefined);\n            });\n\n            if (!newOperator) {\n                // undefined is next-ed into the stream. Marked as code smell by sonar when explicitly stated\n                this._operandsFormControls$.next();\n                if (this._operandsFormControls.length === 0) {\n                    this._generatedPredicate$.next(undefined);\n                }\n                return;\n            }\n\n            if (newOperator.numberOfOperands > this._operandsFormControls.length) {\n                while (this._operandsFormControls.length < newOperator.numberOfOperands) {\n                    const fc = new FormControl();\n                    const currentLength = this._operandsFormControls.length;\n                    fc.valueChanges.pipe(debounceTime(600)).subscribe(() => {\n                        this.operandValueChanges(currentLength);\n                    });\n                    this._operandsFormControls.push(fc);\n                }\n            }\n\n            this._operandsFormControls$.next(this._operandsFormControls.slice(0, newOperator.numberOfOperands));\n\n            if (newOperator.numberOfOperands === 0) {\n                this._generatedPredicate$.next(this.generatePredicate([]));\n            }\n        });\n    }\n\n    /**\n     * The method that is (by default) called whenever an operand `FormControl` changes its value.\n     *\n     * @param operandIndex the index of the operand that changed its value\n     */\n    protected operandValueChanges(operandIndex: number): void {\n        if (!this.isOperatorSelected()) {\n            this._generatedPredicate$.next(undefined);\n            return;\n        }\n        if (operandIndex >= this.selectedOperatorArity) {\n            return;\n        }\n\n        for (let i = 0; i < this.selectedOperatorArity; i++) {\n            if (!this.isOperandValueSelected(this._operandsFormControls[i].value)) {\n                if (this._generatedPredicate$.getValue()) {\n                    this._generatedPredicate$.next(undefined);\n                }\n                return;\n            }\n        }\n\n        this._generatedPredicate$.next(this.generatePredicate(this._operandsFormControls.map(fc => this.transformCategoryValue(fc.value))));\n    }\n\n    /**\n     * @returns the category class in a serializable form\n     *\n     * @deprecated in 5.6.0 - Category serialisation should be done by utilising the {@link CategoryResolverService} instead\n     */\n    abstract serializeClass(): Categories | string;\n\n    /**\n     * The default implementation serializes only the operator.\n     * If the category contains additional configuration, this method must be extended.\n     *\n     * @returns an object containing all the necessary information for the reconstruction of the configuration of this category instance\n     */\n    protected createMetadataConfiguration(): CategoryMetadataConfiguration {\n        return {\n            [Category.OPERATOR_METADATA]: this.selectedOperator.serialize()\n        };\n    }\n\n    /**\n     * The default implementation returns the value of all operand form control objects up to the current number of operands.\n     * To serialize value of each operand the [serializeOperandValue()]{@link Category#serializeOperandValue} method is used.\n     *\n     * If the values used by this category are not serializable, then either this method, or the `serializeOperandValue` method,\n     * must be overridden.\n     *\n     * @returns an array containing values input by the user in a serializable form\n     */\n    protected createMetadataValues(): Array<unknown> {\n        const result = [];\n        for (let i = 0; i < this.selectedOperatorArity; i++) {\n            result.push(this.serializeOperandValue(this._operandsFormControls[i]));\n        }\n        return result;\n    }\n\n    /**\n     * @param valueFormControl FormControl object of one operand\n     * @returns the value of the operand in a serialized form. The default implementation returns the FormControls `value` attribute.\n     */\n    protected serializeOperandValue(valueFormControl: FormControl): unknown {\n        return valueFormControl.value;\n    }\n\n    /**\n     * Restored the saved configuration from the metadata created by the\n     * [createMetadataConfiguration()]{@link Category#createMetadataConfiguration} method.\n     *\n     * The default implementation restores only the saved operator.\n     *\n     * If the Category overrides the serialization method, it must override this method as well.\n     *\n     * @param configuration the serialized configuration\n     *\n     * @returns an Observable. When the Observable emits the category has finished loading its configuration.\n     */\n    protected loadConfigurationFromMetadata(configuration: CategoryMetadataConfiguration): Observable<void> {\n        const resolvedOperator = this._operatorService.getFromMetadata(configuration[Category.OPERATOR_METADATA] as Operators | string);\n        this.selectOperator(this.allowedOperators.findIndex(op => op === resolvedOperator));\n        return ofVoid();\n    }\n\n    /**\n     * The default implementation sets the provided values into this Category's operand form controls.\n     *\n     * An operator must be set before calling this method! Otherwise an error will be thrown.\n     *\n     * If the number of values doesn't match the arity of the selected operator an error will be thrown!\n     *\n     * If this Category overrides the [serializeOperandValue()]{@link Category#serializeOperandValue}, it must also\n     * override its deserialization counterpart - [deserializeOperandValue()]{@link #Category#deserializeOperandValue}!\n     *\n     * @param values the serialized values that should be loaded into this Category instance\n     *\n     * @returns an Observable. When the Observable emits the category has finished loading its values.\n     */\n    protected loadValuesFromMetadata(values: Array<unknown>): Observable<void> {\n        if (!this.isOperatorSelected()) {\n            throw new Error('An operator must be selected before Category values can be resolved from metadata!');\n        }\n        if (this.selectedOperatorArity !== values.length) {\n            throw new Error(`The arity of the selected operator (${this.selectedOperatorArity\n            }) doesn't match the number of the provided values (${values.length})!`);\n        }\n        const deserializedValuesObservables = values.map(v => this.deserializeOperandValue(v));\n        const result$ = new ReplaySubject<void>(1);\n        forkJoin(deserializedValuesObservables).pipe(defaultIfEmpty([])).subscribe(deserializedValues => {\n            this.setOperands(deserializedValues);\n            result$.next();\n            result$.complete();\n        });\n        return result$.asObservable();\n    }\n\n    /**\n     * @param value the serialized output of the [serializeOperandValue()]{@link Category#serializeOperandValue} method\n     * @returns an `Observable` that emits the deserialized value, that can be set as FormControl value and then completes\n     *\n     * This method may throw na error if the value cannot be deserialized.\n     */\n    protected deserializeOperandValue(value: unknown): Observable<any> {\n        return of(value);\n    }\n\n    /**\n     * @param newValue the value of the `FormControl` object that we want to test\n     * @returns `true` if the newly selected value is a valid value, `false` otherwise.\n     */\n    protected abstract isOperandValueSelected(newValue: any): boolean;\n\n    /**\n     * Performs a transformation of the `FormControl` value before passing it into the selected `Operator` for query generation.\n     * It is mostly useful only for AutocompleteCategories, where the selected value of the FormControl is an object.\n     *\n     * The default implementation performs an identity transformation - returns the input.\n     * @param value the FormControlValue\n     * @returns the value used for query generation\n     */\n    protected transformCategoryValue(value: any): T {\n        return value;\n    }\n\n    /**\n     * @returns an Array containing text segments representing the content of the predicate generated by this category\n     */\n    public createFilterTextSegments(): Array<FilterTextSegment> {\n        if (!this.providesPredicate) {\n            return [];\n        }\n        return [\n            {segment: this.translationPath, bold: this.displayBold},\n            ...this.createConfigurationFilterTextSegments(),\n            ...this.createOperatorFilterTextSegments()\n        ];\n    }\n\n    /**\n     * @returns an Array containing text segments representing the configuration inputs of this category\n     */\n    protected abstract createConfigurationFilterTextSegments(): Array<FilterTextSegment>;\n\n    /**\n     * @returns an Array containing text segments representing the operators with operands of this category\n     */\n    protected createOperatorFilterTextSegments(): Array<FilterTextSegment> {\n        const result: Array<FilterTextSegment> = [];\n        let operandIndex = 0;\n        for (const segment of this.selectedOperator.getOperatorNameTemplate()) {\n            if (segment === Operator.INPUT_PLACEHOLDER) {\n                result.push(this.createOperandFilterTextSegment(operandIndex));\n                operandIndex++;\n            } else {\n                result.push({segment});\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @returns filter text segment representing the operand value at the specified index\n     */\n    protected createOperandFilterTextSegment(operandIndex: number): FilterTextSegment {\n        let segment;\n        const operand = this._operandsFormControls[operandIndex].value;\n        switch (this.inputType) {\n            case SearchInputType.AUTOCOMPLETE:\n                segment = operand.text;\n                break;\n            case SearchInputType.DATE:\n                segment = operand.format(DATE_FORMAT_STRING);\n                break;\n            case SearchInputType.DATE_TIME:\n                segment = operand.format(DATE_TIME_FORMAT_STRING);\n                break;\n            default:\n                segment = operand;\n                break;\n        }\n        return {segment, bold: true};\n    }\n\n    /**\n     * Checks for selected operator\n     * @param operatorClass the operator to be checked\n     * @return boolean of the statement\n     */\n    protected isSelectedOperator(operatorClass: Type<any>): boolean {\n        return this.selectedOperator === this._operatorService.getOperator(operatorClass);\n    }\n}\n","/**\n * Contains the identifiers of the queried elastic search indices.\n */\nexport enum CaseSearch {\n    CREATION_DATE = 'creationDateSortable',\n    PROCESS_IDENTIFIER = 'processIdentifier',\n    TASK_ID = 'taskIds',\n    TITLE = 'title',\n    VISUAL_ID = 'visualId',\n    ENABLED_ROLES = 'enabledRoles',\n    AUTHOR = 'author',\n    STRING_ID = 'stringId',\n}\n","import {Category} from './category';\nimport {Operator} from '../operator/operator';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {SearchInputType} from './search-input-type';\nimport {SearchAutocompleteOption} from './search-autocomplete-option';\nimport {BehaviorSubject, combineLatest, Observable, ReplaySubject} from 'rxjs';\nimport {filter, map, startWith, take} from 'rxjs/operators';\nimport {AutocompleteOptions} from './autocomplete-options';\nimport {FormControl} from '@angular/forms';\nimport {OperatorService} from '../../operator-service/operator.service';\n\n/**\n * Represents a Search Category whose values are a known set. The value selection is done with an autocomplete field.\n *\n * @typeparam T type of the object that the autocomplete option values use and in turn is used to generate queries\n */\nexport abstract class AutocompleteCategory<T> extends Category<Array<T>> implements AutocompleteOptions {\n\n    /**\n     * Autocomplete categories usually require a map to represent mapping of display names\n     * of their options to objects that are needed to construct their queries.\n     *\n     * You are not required to use this map when you implement your own Category,\n     * but it comes with helpful functions and might save you some time.\n     *\n     * See [options()]{@link AutocompleteCategory#options} and [addToMap()]{@link AutocompleteCategory#addToMap}.\n     */\n    protected _optionsMap: Map<string, Array<T>>;\n\n    protected _options$: BehaviorSubject<Array<SearchAutocompleteOption<Array<T>>>>;\n\n    private readonly _timeoutId: number;\n\n    protected constructor(elasticKeywords: Array<string>,\n                          allowedOperators: Array<Operator<any>>,\n                          translationPath: string,\n                          log: LoggerService,\n                          operatorService: OperatorService) {\n        super(elasticKeywords, allowedOperators, translationPath, SearchInputType.AUTOCOMPLETE, log, operatorService);\n        this._optionsMap = new Map<string, Array<T>>();\n        this._options$ = new BehaviorSubject<Array<SearchAutocompleteOption<Array<T>>>>([]);\n        // timeout is used to bypass javascript object initialization bugs.\n        // Injected properties of inherited classes were not set in the function call.\n        this._timeoutId = setTimeout(() => {\n            this.createOptions();\n        });\n    }\n\n    destroy() {\n        super.destroy();\n        this._options$.complete();\n        clearTimeout(this._timeoutId);\n    }\n\n    /**\n     * Options the user can select from for this search Category.\n     */\n    public get options(): Array<SearchAutocompleteOption<Array<T>>> {\n        return this._options$.value;\n    }\n\n    /**\n     * An Observable of the options the user can select from for this search Category.\n     *\n     * The Observable is updated when the base set of options changes, not when the available options are\n     * filtered, see [filterOptions()]{@link AutocompleteCategory#filterOptions}.\n     *\n     * The Observable initially contains an empty array and the options may appear at a later point in time\n     * (based on the concrete AutocompleteCategory subclass implementation)\n     */\n    public get options$(): Observable<Array<SearchAutocompleteOption<Array<T>>>> {\n        return this._options$.asObservable();\n    }\n\n    /**\n     * Publishes a new value in the [_options$]{@link AutocompleteCategory#_options$} Subject generated from the\n     * [_optionsMap]{@link AutocompleteCategory#_optionsMap}.\n     *\n     * The default implementation iterates trough the [_optionsMap]{@link AutocompleteCategory#_optionsMap} and\n     * creates options with the keys as [text]{@link SearchAutocompleteOption#text}\n     * and values as [value]{@link SearchAutocompleteOption#value}.\n     */\n    protected updateOptions(): void {\n        const result = [];\n        for (const entry of this._optionsMap.entries()) {\n            result.push(this.createSearchAutocompleteOption(entry[0], entry[1]));\n        }\n        this._options$.next(result);\n    }\n\n    /**\n     * Populates the [_options]{@link AutocompleteCategory#_options} field with options for this category.\n     *\n     * You must call this method yourself in an appropriate place of Category creation.\n     */\n    protected abstract createOptions(): void;\n\n    /**\n     * The function that is used to filter shown options in the autocomplete field.\n     *\n     * By default the options that start with the input string are returned (case insensitive).\n     *\n     * By default a new value is emitted, whenever either the user input or the base set of options changes.\n     * @param userInput user search input\n     * @returns options that satisfy the autocomplete condition\n     */\n    public filterOptions(userInput: Observable<string | SearchAutocompleteOption<Array<T>>>):\n        Observable<Array<SearchAutocompleteOption<Array<T>>>> {\n        return combineLatest([\n            userInput.pipe(\n                startWith(''),\n                map(input => typeof input === 'string' ? input.toLocaleLowerCase() : input.text)\n            ),\n            this.options$\n        ]).pipe(\n            map(([input, options]) => {\n                return options.filter(o => o.text.toLocaleLowerCase().startsWith(input));\n            })\n        );\n    }\n\n    /**\n     * Adds a new entry or pushes value into an existing entry.\n     * When a new entry is created, it is created as an Array of one element.\n     * @param key where in the map should the value be added\n     * @param value the value that should be added to the map\n     */\n    protected addToMap(key: any, value: T): void {\n        if (this._optionsMap.has(key)) {\n            this._optionsMap.get(key).push(value);\n        } else {\n            this._optionsMap.set(key, [value]);\n        }\n    }\n\n    protected isOperandValueSelected(newValue: SearchAutocompleteOption<Array<T>> | string): boolean {\n        return !(!newValue || typeof newValue === 'string');\n    }\n\n    /**\n     * Performs a transformation of the `FormControl` value before passing it into the selected `Operator` for query generation.\n     * It is mostly useful only for AutocompleteCategories, where the selected value of the FormControl is an object.\n     *\n     * The default AutocompleteCategory implementation returns the {@link SearchAutocompleteOption} `value` attribute.\n     * @param value the FormControlValue\n     * @returns the value used for query generation\n     */\n    protected transformCategoryValue(value: SearchAutocompleteOption<Array<T>>): Array<T> {\n        return value.value;\n    }\n\n    protected serializeOperandValue(valueFormControl: FormControl): unknown {\n        return (valueFormControl.value as SearchAutocompleteOption<unknown>).text;\n    }\n\n    /**\n     * @param text the serialized output of the [serializeOperandValue()]{@link Category#serializeOperandValue} method\n     * @returns the deserialized value, that can be set as FormControl value\n     *\n     * This method throws na error if the serialized value is not one of the autocomplete options.\n     */\n    protected deserializeOperandValue(text: unknown): Observable<any> {\n        const result$ = new ReplaySubject(1);\n        this.options$.pipe(filter(o => o.length > 0), take(1)).subscribe(() => {\n            const value = this._optionsMap.get(text as string);\n            if (value === undefined) {\n                throw new Error(`The serialized autocomplete value '${value\n                }' does not map to any autocomplete options and cannot be deserialized!`);\n            }\n            result$.next(this.createSearchAutocompleteOption(text as string, value));\n            result$.complete();\n        });\n        return result$.asObservable();\n    }\n\n    protected createSearchAutocompleteOption(text: string, value: Array<T>): SearchAutocompleteOption<Array<T>> {\n        return {text, value};\n    }\n}\n","import {AutocompleteCategory} from './autocomplete-category';\nimport {Operator} from '../operator/operator';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {Observable, of} from 'rxjs';\nimport {FormControl} from '@angular/forms';\nimport {ConfigurationInput} from '../configuration-input';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {FilterTextSegment} from '../persistance/filter-text-segment';\n\n/**\n * A utility class that exists for inheritance by simpler category instances.\n *\n * The only configuration input is an [OPERATOR]{@link SearchInputType#OPERATOR} and a `FormControl` instance is available for it as well.\n *\n * For regular [Categories]{@link Category} use {@link NoConfigurationCategory} instead.\n */\nexport abstract class NoConfigurationAutocompleteCategory<T> extends AutocompleteCategory<T> {\n\n    protected constructor(elasticKeywords: Array<string>, allowedOperators: Array<Operator<any>>,\n                          translationPath: string, log: LoggerService, operatorService: OperatorService) {\n        super(elasticKeywords, allowedOperators, translationPath, log, operatorService);\n    }\n\n    /**\n     * Always returns an array with only the [OPERATOR]{@link SearchInputType#OPERATOR} constant.\n     */\n    get configurationInputs$(): Observable<Array<ConfigurationInput>> {\n        return of([this._OPERATOR_INPUT]);\n    }\n\n    /**\n     * @returns No configuration categories are displayed with bold text\n     */\n    get displayBold(): boolean {\n        return true;\n    }\n\n    getActiveInputFormControl(inputIndex: number): FormControl {\n        if (inputIndex === 0) {\n            return this._operatorFormControl;\n        }\n        throw new Error(`Illegal inputIndex '${inputIndex}'. This category has only one configuration input!`);\n    }\n\n    protected createConfigurationFilterTextSegments(): Array<FilterTextSegment> {\n        return [];\n    }\n}\n","import {Page} from '../../resources/interface/page';\n\n/**\n * @param page a {@link Page} of objects returned by backend\n * @returns returns `true` if the page is defined and has content with non-zero length. Returns `false` otherwise.\n */\nexport function hasContent(page: Page<unknown> | undefined): boolean {\n    return !!page && !!page.content && Array.isArray(page.content) && page.content.length > 0;\n}\n","import {AutocompleteOptions} from './autocomplete-options';\nimport {Observable, of} from 'rxjs';\nimport {SearchAutocompleteOption} from './search-autocomplete-option';\nimport {UserResourceService} from '../../../resources/engine-endpoint/user-resource.service';\nimport {debounceTime, map, startWith, switchMap} from 'rxjs/operators';\nimport {hasContent} from '../../../utility/pagination/page-has-content';\nimport {OptionalDependencies} from '../../category-factory/optional-dependencies';\nimport {FormControl} from '@angular/forms';\n\n/**\n * Contains implementation of querying the backend for user information.\n *\n * Should be used by all search categories that want to search by users to ensure the necessary code is kept in one place.\n */\nexport class UserAutocomplete implements AutocompleteOptions {\n\n    public static readonly USER_ICON = 'account_circle';\n\n    public static readonly USER_ME_ICON = 'person_pin_circle'; // person_pin, person_pin_circle\n\n    public static readonly USER_ME_TEMPLATE = '<<me>>';\n\n    private static readonly _i18n = 'search.category.userMe';\n\n\n    protected _userResourceService: UserResourceService;\n\n    /**\n     * @param optionalDependencies search OptionalDependencies\n     * @param _includeMe whether the pseudo-user \"ME\" should be included in the search results\n     */\n    constructor(optionalDependencies: OptionalDependencies, protected _includeMe = true) {\n        this._userResourceService = optionalDependencies.userResourceService;\n    }\n\n    filterOptions(userInput: Observable<string | SearchAutocompleteOption<Array<string>>>):\n        Observable<Array<SearchAutocompleteOption<Array<string>>>> {\n\n        return userInput.pipe(\n            startWith(''),\n            debounceTime(600),\n            switchMap(input => {\n                if (typeof input === 'string') {\n                    return this._userResourceService.search({fulltext: input}).pipe(\n                        map(page => {\n                            if (hasContent(page)) {\n                                const options = page.content.map(\n                                    user => ({text: user.fullName, value: [user.id], icon: UserAutocomplete.USER_ICON})\n                                );\n\n                                if (this._includeMe) {\n                                    options.unshift({\n                                        text: UserAutocomplete._i18n,\n                                        value: [UserAutocomplete.USER_ME_TEMPLATE],\n                                        icon: UserAutocomplete.USER_ME_ICON\n                                    });\n                                }\n\n                                return options;\n                            }\n                            return [];\n                        })\n                    );\n                } else {\n                    return of([input]);\n                }\n            })\n        );\n    }\n\n    public serializeOperandValue(valueFormControl: FormControl): any {\n        const autocompleteValue = valueFormControl.value as SearchAutocompleteOption<Array<string>>;\n        return {text: autocompleteValue.text, value: autocompleteValue.value};\n    }\n\n    public deserializeOperandValue(savedOption: SearchAutocompleteOption<Array<string>>):\n        Observable<SearchAutocompleteOption<Array<string>>> {\n        return of({...savedOption, icon: this.isUserMeTemplate(savedOption) ? UserAutocomplete.USER_ME_ICON : UserAutocomplete.USER_ICON});\n    }\n\n    private isUserMeTemplate(option: SearchAutocompleteOption<Array<string>>): boolean {\n        return !!option?.value\n            && Array.isArray(option.value)\n            && option.value.length === 1\n            && option.value[0] === UserAutocomplete.USER_ME_TEMPLATE;\n    }\n}\n","import {NoConfigurationAutocompleteCategory} from './no-configuration-autocomplete-category';\nimport {UserAutocomplete} from './user-autocomplete';\nimport {Operator} from '../operator/operator';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {OptionalDependencies} from '../../category-factory/optional-dependencies';\nimport {Observable} from 'rxjs';\nimport {SearchAutocompleteOption} from './search-autocomplete-option';\nimport {Query} from '../query/query';\nimport {FormControl} from '@angular/forms';\n\nexport abstract class NoConfigurationUserAutocompleteCategory extends NoConfigurationAutocompleteCategory<string> {\n\n    private _userAutocomplete: UserAutocomplete;\n\n    protected constructor(elasticKeywords: Array<string>, allowedOperators: Array<Operator<any>>,\n                          translationPath: string, log: LoggerService, operatorService: OperatorService,\n                          private _className, protected _optionalDependencies: OptionalDependencies) {\n        super(elasticKeywords, allowedOperators, translationPath, log, operatorService);\n        this._userAutocomplete = new UserAutocomplete(this._optionalDependencies);\n    }\n\n    protected createOptions(): void {\n    }\n\n    filterOptions(userInput: Observable<string | SearchAutocompleteOption<Array<string>>>):\n        Observable<Array<SearchAutocompleteOption<Array<string>>>> {\n\n        return this._userAutocomplete.filterOptions(userInput);\n    }\n\n    protected generateQuery(userInput: Array<Array<string>>): Query {\n        if (this.selectedOperator.numberOfOperands !== 1) {\n            throw new Error(`Only unary operators are currently supported by the ${this._className} implementation`);\n        }\n        return this.selectedOperator.createQuery(this.elasticKeywords, Array.isArray(userInput[0]) ? userInput[0] : userInput, false);\n    }\n\n    protected serializeOperandValue(valueFormControl: FormControl): any {\n        return this._userAutocomplete.serializeOperandValue(valueFormControl);\n    }\n\n    protected deserializeOperandValue(savedOption: SearchAutocompleteOption<Array<string>>):\n        Observable<SearchAutocompleteOption<Array<string>>> {\n        return this._userAutocomplete.deserializeOperandValue(savedOption);\n    }\n}\n","import {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {Equals} from '../../operator/equals';\nimport {NotEquals} from '../../operator/not-equals';\nimport {Categories} from '../categories';\nimport {CaseSearch} from './case-search.enum';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\nimport {NoConfigurationUserAutocompleteCategory} from '../no-configuration-user-autocomplete-category';\n\n\nexport class CaseAuthor extends NoConfigurationUserAutocompleteCategory {\n\n    private static readonly _i18n = 'search.category.case.author';\n\n    constructor(operators: OperatorService, logger: LoggerService, optionalDependencies: OptionalDependencies) {\n        super([CaseSearch.AUTHOR],\n            [operators.getOperator(Equals), operators.getOperator(NotEquals)],\n            `${CaseAuthor._i18n}.name`,\n            logger,\n            operators,\n            'CaseAuthor',\n            optionalDependencies);\n    }\n\n    get inputPlaceholder(): string {\n        return `${CaseAuthor._i18n}.placeholder`;\n    }\n\n    duplicate(): CaseAuthor {\n        return new CaseAuthor(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.CASE_AUTHOR;\n    }\n}\n","import {Category} from './category';\nimport {Operator} from '../operator/operator';\nimport {SearchInputType} from './search-input-type';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {Observable, of} from 'rxjs';\nimport {FormControl} from '@angular/forms';\nimport {ConfigurationInput} from '../configuration-input';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {FilterTextSegment} from '../persistance/filter-text-segment';\n\n/**\n * A utility class that exists for inheritance by simpler category instances.\n *\n * The only configuration input is an [OPERATOR]{@link SearchInputType#OPERATOR} and a `FormControl` instance is available for it as well.\n *\n * For [AutocompleteCategories]{@link AutocompleteCategory} use {@link NoConfigurationAutocompleteCategory} instead.\n */\nexport abstract class NoConfigurationCategory<T> extends Category<T> {\n\n    protected constructor(elasticKeywords: Array<string>, allowedOperators: Array<Operator<any>>,\n                          translationPath: string, inputType: SearchInputType, log: LoggerService,\n                          operatorService: OperatorService) {\n        super(elasticKeywords, allowedOperators, translationPath, inputType, log, operatorService);\n    }\n\n    /**\n     * Always returns an array with only the [OPERATOR]{@link SearchInputType#OPERATOR} constant.\n     */\n    get configurationInputs$(): Observable<Array<ConfigurationInput>> {\n        return of([this._OPERATOR_INPUT]);\n    }\n\n    /**\n     * @returns No configuration categories are displayed with bold text\n     */\n    get displayBold(): boolean {\n        return true;\n    }\n\n    getActiveInputFormControl(inputIndex: number): FormControl {\n        if (inputIndex === 0) {\n            return this._operatorFormControl;\n        }\n        throw new Error(`Illegal inputIndex '${inputIndex}'. This category has only one configuration input!`);\n    }\n\n    protected isOperandValueSelected(newValue: any): boolean {\n        return !!newValue;\n    }\n\n    protected createConfigurationFilterTextSegments(): Array<FilterTextSegment> {\n        return [];\n    }\n}\n","import moment, {Moment} from 'moment';\nimport {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {EqualsDate} from '../../operator/equals-date';\nimport {SearchInputType} from '../search-input-type';\nimport {NoConfigurationCategory} from '../no-configuration-category';\nimport {NotEqualsDate} from '../../operator/not-equals-date';\nimport {MoreThanDate} from '../../operator/more-than-date';\nimport {LessThanDate} from '../../operator/less-than-date';\nimport {InRangeDate} from '../../operator/in-range-date';\nimport {Categories} from '../categories';\nimport {FormControl} from '@angular/forms';\nimport {Observable, of} from 'rxjs';\nimport {MoreThanEqualDate} from '../../operator/more-than-equal-date';\nimport {LessThanEqualDate} from '../../operator/less-than-equal-date';\nimport {CaseSearch} from './case-search.enum';\n\nexport class CaseCreationDate extends NoConfigurationCategory<Moment> {\n\n    private static readonly _i18n = 'search.category.case.creationDate';\n\n    constructor(operators: OperatorService, logger: LoggerService) {\n        super([CaseSearch.CREATION_DATE],\n            [\n                operators.getOperator(EqualsDate),\n                operators.getOperator(NotEqualsDate),\n                operators.getOperator(MoreThanDate),\n                operators.getOperator(MoreThanEqualDate),\n                operators.getOperator(LessThanDate),\n                operators.getOperator(LessThanEqualDate),\n                operators.getOperator(InRangeDate)\n            ],\n            `${CaseCreationDate._i18n}.name`,\n            SearchInputType.DATE,\n            logger,\n            operators);\n    }\n\n    get inputPlaceholder(): string {\n        return `${CaseCreationDate._i18n}.placeholder`;\n    }\n\n    duplicate(): CaseCreationDate {\n        return new CaseCreationDate(this._operatorService, this._log);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.CASE_CREATION_DATE;\n    }\n\n    protected serializeOperandValue(valueFormControl: FormControl): unknown {\n        return valueFormControl.value.valueOf();\n    }\n\n    protected deserializeOperandValue(value: unknown): Observable<any> {\n        return of(moment(value));\n    }\n}\n","import {SearchAutocompleteOption} from './category/search-autocomplete-option';\n\n/**\n * Objects that represent keys to the map of available data fields in {@link CaseDataset} search category.\n *\n * Since javascript maps don't support objects as keys this class has a serialized form, that is used as a `string` key.\n *\n * This class also acts as an autocomplete option when the target datafield is selected. The real data fields are then extracted from the\n * map to which this object is a key.\n */\nexport class DatafieldMapKey implements SearchAutocompleteOption<string> {\n\n    public static serializedForm(type: string, title: string): string {\n        return `${type}#${title}`;\n    }\n\n    public static parse(serializedMapKey: string): DatafieldMapKey {\n        const parts = serializedMapKey.split('#');\n        return new DatafieldMapKey(parts.shift(), parts.join('#'));\n    }\n\n    constructor(protected _inputType, protected _title) {\n    }\n\n    public get title(): string {\n        return this._title;\n    }\n\n    public get type(): string {\n        return this._inputType;\n    }\n\n    public get icon(): string {\n        switch (this._inputType) {\n            case 'boolean':\n                return 'toggle_off';\n            case 'date':\n                return 'today';\n            case 'enumeration':\n                return 'radio_button_checked';\n            case 'file':\n                return 'insert_drive_file';\n            case 'fileList':\n                return 'file_copy';\n            case 'multichoice':\n                return 'check_box';\n            case 'number':\n                return 'looks_one';\n            case 'user':\n                return 'person';\n            case 'userList':\n                return 'people';\n            case 'dateTime':\n                return 'schedule';\n            default:\n                return 'text_format';\n        }\n    }\n\n    /**\n     * Alias for [toSerializedForm()]{@link DatafieldMapKey#toSerializedForm}\n     */\n    public get value(): string {\n        return this.toSerializedForm();\n    }\n\n    /**\n     * Alias for [title]{@link DatafieldMapKey#title}\n     */\n    public get text(): string {\n        return this.title;\n    }\n\n    public toSerializedForm(): string {\n        return DatafieldMapKey.serializedForm(this._inputType, this._title);\n    }\n}\n","import {Query} from '../../query/query';\nimport {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {Equals} from '../../operator/equals';\nimport {BooleanOperator} from '../../boolean-operator';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\nimport {NoConfigurationAutocompleteCategory} from '../no-configuration-autocomplete-category';\nimport {NotEquals} from '../../operator/not-equals';\nimport {Categories} from '../categories';\nimport {Subscription} from 'rxjs';\nimport {CaseSearch} from './case-search.enum';\n\nexport class CaseProcess extends NoConfigurationAutocompleteCategory<string> {\n\n    private static readonly _i18n = 'search.category.case.process';\n\n    protected _uniqueOptionsMap: Map<string, Set<string>>;\n    private _allowedNetsSub: Subscription;\n    private _destroyed: boolean;\n\n    constructor(operators: OperatorService, logger: LoggerService, protected _optionalDependencies: OptionalDependencies) {\n        super([CaseSearch.PROCESS_IDENTIFIER],\n            [operators.getOperator(Equals), operators.getOperator(NotEquals)],\n            `${CaseProcess._i18n}.name`,\n            logger,\n            operators);\n        this._uniqueOptionsMap = new Map<string, Set<string>>();\n    }\n\n    destroy() {\n        super.destroy();\n        if (this._allowedNetsSub && !this._allowedNetsSub.closed) {\n            this._allowedNetsSub.unsubscribe();\n        }\n        this._destroyed = true;\n    }\n\n    protected createOptions(): void {\n        if (this._destroyed) {\n            return;\n        }\n\n        this._allowedNetsSub = this._optionalDependencies.allowedNetsService.allowedNets$.subscribe(allowedNets => {\n            this._optionsMap.clear();\n            allowedNets.forEach(petriNet => {\n                if (this.isUniqueOption(petriNet.title, petriNet.identifier)) {\n                    this.addToMap(petriNet.title, petriNet.identifier);\n                }\n            });\n            this.updateOptions();\n        });\n    }\n\n    /**\n     * Checks whether the provided option is unique and updates the list of unique options with it.\n     * @param key autocomplete option key\n     * @param value autocomplete option value\n     * @returns `true` if the option has not yet been checked as unique. `false` if the option has been checked before.\n     */\n    protected isUniqueOption(key: string, value: string): boolean {\n        if (!this._uniqueOptionsMap.has(key)) {\n            this._uniqueOptionsMap.set(key, new Set<string>([value]));\n            return true;\n        }\n        if (this._uniqueOptionsMap.get(key).has(value)) {\n            return false;\n        } else {\n            this._uniqueOptionsMap.get(key).add(value);\n            return true;\n        }\n    }\n\n    protected generateQuery(userInput: Array<Array<string>>): Query {\n        if (this.selectedOperator.numberOfOperands !== 1) {\n            throw new Error('Only unary operators are currently supported by the CaseProcess implementation');\n        }\n        const operand = userInput[0];\n        const queries = operand.map(id => this.selectedOperator.createQuery(this.elasticKeywords, [id]));\n        return Query.combineQueries(queries, BooleanOperator.OR);\n    }\n\n    get inputPlaceholder(): string {\n        return `${CaseProcess._i18n}.placeholder`;\n    }\n\n    duplicate(): CaseProcess {\n        return new CaseProcess(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.CASE_PROCESS;\n    }\n}\n","export enum SearchIndex {\n    /**\n     * Indexed as TEXT\n     *\n     * Used by all fields\n     */\n    FULLTEXT = 'fulltextValue',\n    /**\n     * Indexed as BOOLEAN\n     *\n     * Used by BooleanFields\n     */\n    BOOLEAN = 'booleanValue',\n    /**\n     * Indexed as DATE\n     *\n     * Used by both Date and DateTime Fields\n     */\n    DATE = 'dateValue',\n    /**\n     * Indexed as LONG\n     *\n     * Used by both Date and DateTime Fields\n     */\n    TIMESTAMP = 'timestampValue',\n    /**\n     * Indexed as TEXT\n     *\n     * Used by both File and FileList Fields\n     */\n    FILE_NAME = 'fileNameValue',\n    /**\n     * Indexed as KEYWORD\n     *\n     * Used by both File and FileList Fields\n     */\n    FILE_EXTENSION = 'fileExtensionValue',\n    /**\n     * Indexed as TEXT\n     *\n     * Used by Text, Enumeration, EnumerationMap, Multichoice and MultichoiceMap Fields\n     */\n    TEXT = 'textValue',\n    /**\n     * Indexed as KEYWORD\n     *\n     * Used by EnumerationMap and MultichoiceMap Fields\n     */\n    KEY = 'keyValue',\n    /**\n     * Indexed as DOUBLE\n     *\n     * Used by Number Fields\n     */\n    NUMBER = 'numberValue',\n    /**\n     * Indexed as TEXT\n     *\n     * Used by User and UserListFields\n     */\n    EMAIL = 'emailValue',\n    /**\n     * Indexed as TEXT\n     *\n     * Used by User and UserListFields\n     */\n    FULL_NAME = 'fullNameValue',\n    /**\n     * Indexed as LONG\n     *\n     * Used by User and UserListFields\n     */\n    USER_ID = 'userIdValue',\n}\n","import { OperatorService } from '../../../operator-service/operator.service';\nimport { LoggerService } from '../../../../logger/services/logger.service';\nimport { Operator } from '../../operator/operator';\nimport { Query } from '../../query/query';\nimport { OptionalDependencies } from '../../../category-factory/optional-dependencies';\nimport { SearchInputType } from '../search-input-type';\nimport { DatafieldMapKey } from '../../datafield-map-key';\nimport { SearchAutocompleteOption } from '../search-autocomplete-option';\nimport { BooleanOperator } from '../../boolean-operator';\nimport { CaseProcess } from './case-process';\nimport { EqualsDate } from '../../operator/equals-date';\nimport { Substring } from '../../operator/substring';\nimport { EqualsDateTime } from '../../operator/equals-date-time';\nimport { Equals } from '../../operator/equals';\nimport { BehaviorSubject, Observable, of, ReplaySubject, Subscription } from 'rxjs';\nimport { Category } from '../category';\nimport { NotEquals } from '../../operator/not-equals';\nimport { MoreThan } from '../../operator/more-than';\nimport { LessThan } from '../../operator/less-than';\nimport { InRange } from '../../operator/in-range';\nimport { IsNull } from '../../operator/is-null';\nimport { Like } from '../../operator/like';\nimport { NotEqualsDate } from '../../operator/not-equals-date';\nimport { MoreThanDate } from '../../operator/more-than-date';\nimport { LessThanDate } from '../../operator/less-than-date';\nimport { InRangeDate } from '../../operator/in-range-date';\nimport { MoreThanDateTime } from '../../operator/more-than-date-time';\nimport { LessThanDateTime } from '../../operator/less-than-date-time';\nimport { InRangeDateTime } from '../../operator/in-range-date-time';\nimport { AutocompleteOptions } from '../autocomplete-options';\nimport { ConfigurationInput } from '../../configuration-input';\nimport { SearchIndex } from '../../search-index';\nimport { Categories } from '../categories';\nimport { FormControl } from '@angular/forms';\nimport moment, { Moment } from 'moment';\nimport { CategoryMetadataConfiguration } from '../../persistance/generator-metadata';\nimport { MoreThanEqual } from '../../operator/more-than-equal';\nimport { LessThanEqual } from '../../operator/less-than-equal';\nimport { MoreThanEqualDate } from '../../operator/more-than-equal-date';\nimport { LessThanEqualDate } from '../../operator/less-than-equal-date';\nimport { MoreThanEqualDateTime } from '../../operator/more-than-equal-date-time';\nimport { LessThanEqualDateTime } from '../../operator/less-than-equal-date-time';\nimport { FilterTextSegment } from '../../persistance/filter-text-segment';\nimport { UserAutocomplete } from '../user-autocomplete';\n\ninterface Datafield {\n    netIdentifier: string;\n    fieldId: string;\n    fieldType: string;\n}\n\nexport class CaseDataset extends Category<Datafield> implements AutocompleteOptions {\n\n    private static readonly _i18n = 'search.category.case.dataset';\n    protected static DISABLED_TYPES = ['button', 'taskRef', 'caseRef', 'filter'];\n    protected static readonly DATAFIELD_METADATA = 'datafield';\n    private static readonly AUTOCOMPLETE_ICON = 'account_circle';\n\n    protected readonly _DATAFIELD_INPUT: ConfigurationInput;\n\n    protected _processCategory: CaseProcess;\n\n    protected _configurationInputs$: BehaviorSubject<Array<ConfigurationInput>>;\n\n    protected _datafieldOptions: Map<string, Array<Datafield>>;\n\n    private _datafieldOptionsInitialized$: ReplaySubject<void>;\n    private _allowedNetsSub: Subscription;\n    private _userAutocomplete: UserAutocomplete;\n\n    public static FieldTypeToInputType(fieldType: string): SearchInputType {\n        switch (fieldType) {\n            case 'date':\n                return SearchInputType.DATE;\n            case 'dateTime':\n                return SearchInputType.DATE_TIME;\n            case 'number':\n                return SearchInputType.NUMBER;\n            case 'boolean':\n                return SearchInputType.BOOLEAN;\n            case 'user':\n                return SearchInputType.AUTOCOMPLETE;\n            default:\n                return SearchInputType.TEXT;\n        }\n    }\n\n    constructor(operators: OperatorService, logger: LoggerService, protected _optionalDependencies: OptionalDependencies) {\n        super(undefined,\n            undefined,\n            `${CaseDataset._i18n}.name`,\n            undefined,\n            logger,\n            operators);\n\n        this._processCategory = this._optionalDependencies.categoryFactory.get(CaseProcess) as CaseProcess;\n        this._processCategory.selectDefaultOperator();\n\n        this._datafieldOptions = new Map<string, Array<Datafield>>();\n        this._userAutocomplete = new UserAutocomplete(this._optionalDependencies);\n        this.createDatafieldOptions();\n\n        this._DATAFIELD_INPUT = new ConfigurationInput(\n            SearchInputType.AUTOCOMPLETE,\n            'search.category.case.dataset.placeholder.field',\n            true,\n            this._datafieldOptions,\n            (mapKeys, newValue) => {\n                return mapKeys.map(serializedMapKey => DatafieldMapKey.parse(serializedMapKey))\n                    .filter(mapKey => mapKey.title.toLocaleLowerCase().startsWith(newValue));\n            }\n        );\n\n        this._configurationInputs$ = new BehaviorSubject<Array<ConfigurationInput>>([this._DATAFIELD_INPUT]);\n\n        this._DATAFIELD_INPUT.valueChanges$().subscribe(newValue => {\n            if (newValue === undefined || typeof newValue === 'string') {\n                this._configurationInputs$.next([this._DATAFIELD_INPUT]);\n            } else if (this._configurationInputs$.getValue().length === 1) {\n                this._configurationInputs$.next([this._DATAFIELD_INPUT, this._OPERATOR_INPUT]);\n            }\n            this._operatorFormControl.setValue(undefined);\n        });\n    }\n\n    destroy() {\n        super.destroy();\n        this._configurationInputs$.complete();\n        this._datafieldOptionsInitialized$.complete();\n        if (this._allowedNetsSub && !this._allowedNetsSub.closed) {\n            this._allowedNetsSub.unsubscribe();\n        }\n        this._processCategory.destroy();\n    }\n\n    get configurationInputs$(): Observable<Array<ConfigurationInput>> {\n        return this._configurationInputs$.asObservable();\n    }\n\n    public get inputType(): SearchInputType {\n        if (!this.hasSelectedDatafields) {\n            throw new Error('Input type of arguments cannot be determined before selecting a data field during the configuration.');\n        }\n        return CaseDataset.FieldTypeToInputType(this._selectedDatafields[0].fieldType);\n    }\n\n    /**\n     * The allowed operators are dependant on the selected data field.\n     *\n     * Beware that if you want to change the order of the allowed operators, then you must also update the\n     * [selectDefaultOperator()]{@link Category#selectDefaultOperator} method, so that default operator for each data field type matches\n     * the default operator of the {@link CaseSimpleDataset} search category. Otherwise the transition of header search into the search GUI\n     * won't work properly.\n     */\n    public get allowedOperators(): Array<Operator<any>> {\n        if (!this.hasSelectedDatafields) {\n            return [];\n        }\n        switch (this._selectedDatafields[0].fieldType) {\n            case 'number':\n                return [\n                    this._operatorService.getOperator(Equals),\n                    this._operatorService.getOperator(NotEquals),\n                    this._operatorService.getOperator(MoreThan),\n                    this._operatorService.getOperator(MoreThanEqual),\n                    this._operatorService.getOperator(LessThan),\n                    this._operatorService.getOperator(LessThanEqual),\n                    this._operatorService.getOperator(InRange),\n                    this._operatorService.getOperator(IsNull)\n                ];\n            case 'boolean':\n                return [\n                    this._operatorService.getOperator(Equals),\n                    this._operatorService.getOperator(NotEquals)\n                ];\n            case 'user':\n            case 'userList':\n                return [\n                    this._operatorService.getOperator(Equals),\n                    this._operatorService.getOperator(NotEquals),\n                    this._operatorService.getOperator(IsNull)\n                ];\n            case 'date':\n                return [\n                    this._operatorService.getOperator(EqualsDate),\n                    this._operatorService.getOperator(NotEqualsDate),\n                    this._operatorService.getOperator(MoreThanDate),\n                    this._operatorService.getOperator(MoreThanEqualDate),\n                    this._operatorService.getOperator(LessThanDate),\n                    this._operatorService.getOperator(LessThanEqualDate),\n                    this._operatorService.getOperator(InRangeDate),\n                    this._operatorService.getOperator(IsNull)\n                ];\n            case 'dateTime':\n                return [\n                    this._operatorService.getOperator(EqualsDateTime),\n                    this._operatorService.getOperator(MoreThanDateTime),\n                    this._operatorService.getOperator(MoreThanEqualDateTime),\n                    this._operatorService.getOperator(LessThanDateTime),\n                    this._operatorService.getOperator(LessThanEqualDateTime),\n                    this._operatorService.getOperator(InRangeDateTime),\n                    this._operatorService.getOperator(IsNull)\n                ];\n            default:\n                return [\n                    this._operatorService.getOperator(Substring),\n                    this._operatorService.getOperator(Equals),\n                    this._operatorService.getOperator(NotEquals),\n                    this._operatorService.getOperator(IsNull),\n                    this._operatorService.getOperator(Like)\n                ];\n        }\n    }\n\n    /**\n     * @returns `CaseDataset` category is not displayed in bold for better readability\n     */\n    get displayBold(): boolean {\n        return false;\n    }\n\n    public get hasSelectedDatafields(): boolean {\n        return this._DATAFIELD_INPUT.isOptionSelected;\n    }\n\n    protected get _selectedDatafields(): Array<Datafield> {\n        return this._datafieldOptions.get(this._DATAFIELD_INPUT.formControl.value.value);\n    }\n\n    public reset() {\n        super.reset();\n        this._DATAFIELD_INPUT.clear();\n    }\n\n    duplicate(): CaseDataset {\n        return new CaseDataset(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    protected get elasticKeywords(): Array<string> {\n        if (!this.hasSelectedDatafields) {\n            return [];\n        } else {\n            return this._selectedDatafields.map(datafield => this.resolveElasticKeyword(datafield));\n        }\n    }\n\n    protected resolveElasticKeyword(datafield: Datafield): string {\n        const resolver = this._optionalDependencies.searchIndexResolver;\n        switch (datafield.fieldType) {\n            case 'number':\n                return resolver.getIndex(datafield.fieldId, SearchIndex.NUMBER);\n            case 'date':\n            case 'dateTime':\n                return resolver.getIndex(datafield.fieldId, SearchIndex.TIMESTAMP);\n            case 'boolean':\n                return resolver.getIndex(datafield.fieldId, SearchIndex.BOOLEAN);\n            case 'file':\n            case 'fileList':\n                return resolver.getIndex(datafield.fieldId, SearchIndex.FILE_NAME,\n                    this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring)\n                    || this.isSelectedOperator(IsNull));\n            case 'user':\n            case 'userList':\n                return resolver.getIndex(datafield.fieldId, SearchIndex.USER_ID);\n            case 'i18n':\n                return resolver.getIndex(datafield.fieldId, SearchIndex.TEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring)\n                    || this.isSelectedOperator(IsNull));\n            default:\n                return resolver.getIndex(datafield.fieldId, SearchIndex.FULLTEXT,\n                    this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring)\n                    || this.isSelectedOperator(IsNull));\n        }\n    }\n\n    get inputPlaceholder(): string {\n        if (!this.hasSelectedDatafields) {\n            return `${CaseDataset._i18n}.placeholder.field`;\n        }\n        return `${CaseDataset._i18n}.placeholder.value`;\n    }\n\n    protected get datafieldOptionsInitialized$(): Observable<void> {\n        return this._datafieldOptionsInitialized$.asObservable();\n    }\n\n    protected generateQuery(userInput: Array<unknown>): Query {\n        let queryGenerationStrategy;\n        if (this.isSelectedOperator(IsNull)) {\n            queryGenerationStrategy = (d, _) => this.isNullOperatorQueryGenerationStrategy(d);\n        } else if (this.inputType === SearchInputType.AUTOCOMPLETE) {\n            queryGenerationStrategy = (d, ui) => this.standardQueryGenerationStrategy(d, ui[0], false);\n        } else {\n            queryGenerationStrategy = (d, ui) => this.standardQueryGenerationStrategy(d, ui);\n        }\n\n        const queries = this._selectedDatafields.map(datafield => queryGenerationStrategy(datafield, userInput));\n        return Query.combineQueries(queries, BooleanOperator.OR);\n    }\n\n    protected standardQueryGenerationStrategy(datafield: Datafield, userInput: Array<unknown>, escapeInput = true): Query {\n        const valueQuery = this.selectedOperator.createQuery(this.elasticKeywords, userInput, escapeInput);\n        const netQuery = this.generateNetConstraint(datafield);\n        return Query.combineQueries([valueQuery, netQuery], BooleanOperator.AND);\n    }\n\n    protected isNullOperatorQueryGenerationStrategy(datafield: Datafield): Query {\n        const constraint = this.generateNetConstraint(datafield);\n        return (this._operatorService.getOperator(IsNull) as IsNull).createQueryWithConstraint(this.elasticKeywords, constraint);\n    }\n\n    protected generateNetConstraint(datafield: Datafield): Query {\n        return this._processCategory.generatePredicate([[datafield.netIdentifier]]).query;\n    }\n\n    protected createDatafieldOptions(): void {\n        this._datafieldOptionsInitialized$ = new ReplaySubject<void>(1);\n        this._allowedNetsSub = this._optionalDependencies.allowedNetsService.allowedNets$.subscribe(allowedNets => {\n            allowedNets.forEach(petriNet => {\n                petriNet.immediateData\n                    .filter(immediateData => {\n                        return immediateData.title !== undefined\n                            && immediateData.title.trim().length > 0\n                            && !CaseDataset.DISABLED_TYPES.includes(immediateData.type);\n                    })\n                    .forEach(immediateData => {\n                        let type = immediateData.type;\n\n                        // for search purposes, enumeration and multichoice maps are equivalent to their simpler counterparts\n                        if (type === 'enumeration_map') {\n                            type = 'enumeration';\n                        } else if (type === 'multichoice_map') {\n                            type = 'multichoice';\n                        }\n\n                        this.addToDatafieldOptionsMap(DatafieldMapKey.serializedForm(immediateData.type, immediateData.title), {\n                            netIdentifier: petriNet.identifier,\n                            fieldId: immediateData.stringId,\n                            fieldType: immediateData.type,\n                        });\n                    });\n            });\n            this._datafieldOptionsInitialized$.next();\n        });\n    }\n\n    filterOptions(userInput: Observable<string | SearchAutocompleteOption<Array<string>>>):\n        Observable<Array<SearchAutocompleteOption<Array<string>>>> {\n\n        if (!this.hasSelectedDatafields) {\n            throw new Error('The category must be fully configured before attempting to get autocomplete options!');\n        }\n        if (this.inputType !== SearchInputType.AUTOCOMPLETE) {\n            throw new Error('Cannot filter options of non-autocomplete operands');\n        }\n\n        return this._userAutocomplete.filterOptions(userInput);\n    }\n\n    public selectDatafields(datafieldMapKey: string, selectDefaultOperator = true): void {\n        if (!this._datafieldOptions.has(datafieldMapKey)) {\n            this._log.warn(`The provided 'datafieldMapKey' (${datafieldMapKey}) does not exist.`);\n            return;\n        }\n        this._DATAFIELD_INPUT.formControl.setValue(DatafieldMapKey.parse(datafieldMapKey));\n        if (selectDefaultOperator) {\n            this.selectDefaultOperator();\n        }\n    }\n\n    /**\n     * Adds a new entry or pushes value into an existing entry.\n     * When a new entry is created, it is created as an Array of one element.\n     * @param key where in the map should the value be added\n     * @param value the value that should be added to the map\n     */\n    protected addToDatafieldOptionsMap(key: string, value: Datafield): void {\n        if (this._datafieldOptions.has(key)) {\n            this._datafieldOptions.get(key).push(value);\n        } else {\n            this._datafieldOptions.set(key, [value]);\n        }\n    }\n\n    protected isOperandValueSelected(newValue: any): boolean {\n        if (!this.isOperatorSelected()) {\n            return false;\n        }\n        let inputType: SearchInputType;\n        try {\n            inputType = this.inputType;\n        } catch (e) {\n            return false;\n        }\n\n        switch (inputType) {\n            case SearchInputType.NUMBER:\n                return typeof newValue === 'number';\n            case SearchInputType.BOOLEAN:\n                return typeof newValue === 'boolean';\n            case SearchInputType.AUTOCOMPLETE:\n                return !(!newValue || typeof newValue === 'string');\n            default:\n                return !!newValue;\n        }\n    }\n\n    /**\n     * Performs a transformation of the `FormControl` value before passing it into the selected `Operator` for query generation.\n     * It is mostly useful only for AutocompleteCategories, where the selected value of the FormControl is an object.\n     *\n     * @param value the FormControlValue\n     * @returns If the selected data field has input type `AUTOCOMPLETE` then returns the {@link SearchAutocompleteOption} `value`\n     * attribute. Otherwise performs an identity operation.\n     */\n    protected transformCategoryValue(value: any): any {\n        if (this.inputType === SearchInputType.AUTOCOMPLETE) {\n            return (value as SearchAutocompleteOption<Array<number>>).value;\n        }\n        return value;\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.CASE_DATASET;\n    }\n\n    protected serializeOperandValue(valueFormControl: FormControl): unknown {\n        switch (this.inputType) {\n            case SearchInputType.AUTOCOMPLETE:\n                return this._userAutocomplete.serializeOperandValue(valueFormControl);\n            case SearchInputType.DATE:\n            case SearchInputType.DATE_TIME:\n                return (valueFormControl.value as Moment).valueOf();\n            default:\n                return super.serializeOperandValue(valueFormControl);\n        }\n    }\n\n    protected createMetadataConfiguration(): CategoryMetadataConfiguration {\n        const config = super.createMetadataConfiguration();\n        config[CaseDataset.DATAFIELD_METADATA] = (this._DATAFIELD_INPUT.formControl.value as DatafieldMapKey).toSerializedForm();\n        return config;\n    }\n\n    protected loadConfigurationFromMetadata(configuration: CategoryMetadataConfiguration): Observable<void> {\n        const result$ = new ReplaySubject<void>(1);\n        this.datafieldOptionsInitialized$.subscribe(() => {\n            const serializedMapKey = configuration[CaseDataset.DATAFIELD_METADATA] as string;\n            this.selectDatafields(serializedMapKey, false);\n            if (!this.hasSelectedDatafields) {\n                throw new Error(`Searched data fields cannot be restored from the provided configuration (${serializedMapKey\n                }). Make sure, that the correct allowed nets are provided in this view.`);\n            }\n            super.loadConfigurationFromMetadata(configuration).subscribe(() => {\n                result$.next();\n                result$.complete();\n            });\n        });\n        return result$.asObservable();\n    }\n\n    protected deserializeOperandValue(value: unknown): Observable<any> {\n        switch (this.inputType) {\n            case SearchInputType.AUTOCOMPLETE:\n                return this._userAutocomplete.deserializeOperandValue(value as SearchAutocompleteOption<Array<string>>);\n            case SearchInputType.DATE:\n            case SearchInputType.DATE_TIME:\n                return of(moment(value as string));\n            default:\n                return super.deserializeOperandValue(value);\n        }\n    }\n\n    protected createConfigurationFilterTextSegments(): Array<FilterTextSegment> {\n        return [{segment: this._configurationInputs$.value[0].formControl.value.text, bold: true}];\n    }\n}\n","import {NoConfigurationAutocompleteCategory} from './no-configuration-autocomplete-category';\nimport {NetAttributePair} from './net-attribute-pair';\nimport {Operator} from '../operator/operator';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {Net} from '../../../process/net';\nimport {NameIdPair} from './name-id-pair';\nimport {Query} from '../query/query';\nimport {BooleanOperator} from '../boolean-operator';\nimport {Category} from './category';\nimport {Subscription} from 'rxjs';\nimport {OperatorService} from '../../operator-service/operator.service';\nimport {OptionalDependencies} from '../../category-factory/optional-dependencies';\n\n/**\n * A utility class for autocomplete search categories that are net specific, such as searching by roles, or tasks.\n *\n * The generated queries combine the ids of the selected attribute with the net id, so that no unexpected results are found.\n */\nexport abstract class NetAttributeAutocompleteCategory extends NoConfigurationAutocompleteCategory<NetAttributePair> {\n\n    private _allowedNetsSub: Subscription;\n    private _destroyed: boolean;\n\n    protected constructor(elasticKeywords: Array<string>,\n                          allowedOperators: Array<Operator<any>>,\n                          translationPath: string,\n                          log: LoggerService,\n                          operatorService: OperatorService,\n                          protected _optionalDependencies: OptionalDependencies) {\n        super(elasticKeywords, allowedOperators, translationPath, log, operatorService);\n    }\n\n    destroy() {\n        super.destroy();\n        if (this._allowedNetsSub && !this._allowedNetsSub.closed) {\n            this._allowedNetsSub.unsubscribe();\n        }\n        this._destroyed = true;\n    }\n\n    protected createOptions(): void {\n        if (this._destroyed) {\n            return;\n        }\n\n        this._allowedNetsSub = this._optionalDependencies.allowedNetsService.allowedNets$.subscribe(allowedNets => {\n            this._optionsMap.clear();\n            allowedNets.forEach(petriNet => {\n                this.extractAttributes(petriNet)\n                    .filter(pair => pair.name && pair.name.trim().length > 0)\n                    .forEach(pair => {\n                        this.addToMap(pair.name, {\n                            netId: this.getPetriNetIdentifier(petriNet),\n                            attributeId: pair.id\n                        });\n                    });\n            });\n            this.updateOptions();\n        });\n    }\n\n    /**\n     * This method should extract the relevant attribute display names and ids.\n     * They will be automatically paired with the net id for further use by this search category.\n     *\n     * @param petriNet Petri net that should have its search relevant attributes extracted\n     * @returns an array of the attribute display name and id pairs\n     */\n    protected abstract extractAttributes(petriNet: Net): Array<NameIdPair>;\n\n    /**\n     *  This method should return the appropriate category instance for searching of processes, so that process queries\n     *  can be generated with it.\n     *\n     *  Currently it can be either the {@link CaseProcess} or the {@link TaskProcess} category class.\n     */\n    protected abstract getProcessCategory(): Category<Array<string>>;\n\n    /**\n     * This method should return the appropriate identifier of a PetriNet.\n     *\n     * Categories that query cases should use process identifier.\n     *\n     * Categories that query tasks should use stringId.\n     *\n     * @param net PetriNet whose identifier should be extracted\n     */\n    protected abstract getPetriNetIdentifier(net: Net): string;\n\n    /**\n     * Generates the query as a combination of the selected attribute pairs.\n     * Each attribute is ANDed with its net id and ORed with other attributes.\n     * @param userInput inputs selected by the user in each of the operand input fields\n     * @returns the Query generated by the selected Operator\n     */\n    protected generateQuery(userInput: Array<Array<NetAttributePair>>): Query {\n        if (userInput.length !== 1) {\n            throw new Error('NetAttributeAutocompleteCategories currently doesn\\'t support operators with arity other than 1!');\n        }\n\n        const matchingPairs = userInput[0];\n\n        const queries = matchingPairs.map(pair => {\n            const taskQuery = this.selectedOperator.createQuery(this.elasticKeywords, [pair.attributeId]);\n            const netQuery = this.getProcessCategory().generatePredicate([[pair.netId]]).query;\n            return Query.combineQueries([taskQuery, netQuery], BooleanOperator.AND);\n        });\n        return Query.combineQueries(queries, BooleanOperator.OR);\n    }\n}\n","import {NetAttributeAutocompleteCategory} from '../net-attribute-autocomplete-category';\nimport {Operator} from '../../operator/operator';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\nimport {CaseProcess} from './case-process';\nimport {Net} from '../../../../process/net';\nimport {Category} from '../category';\nimport {OperatorService} from '../../../operator-service/operator.service';\n\n/**\n * Utility class with the same use as its parent but witch Case search specific methods implemented.\n */\nexport abstract class CaseNetAttributeAutocompleteCategory extends NetAttributeAutocompleteCategory {\n\n    protected _processCategory: CaseProcess;\n\n    protected constructor(elasticKeywords: Array<string>,\n                          allowedOperators: Array<Operator<any>>,\n                          translationPath: string,\n                          log: LoggerService,\n                          operatorService: OperatorService,\n                          optionalDependencies: OptionalDependencies) {\n        super(elasticKeywords, allowedOperators, translationPath, log, operatorService, optionalDependencies);\n        this._processCategory = optionalDependencies.categoryFactory.get(CaseProcess) as CaseProcess;\n        this._processCategory.selectDefaultOperator();\n    }\n\n    destroy() {\n        super.destroy();\n        this._processCategory.destroy();\n    }\n\n    protected getProcessCategory(): Category<Array<string>> {\n        return this._processCategory;\n    }\n\n    protected getPetriNetIdentifier(net: Net): string {\n        return net.identifier;\n    }\n}\n","import {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {Equals} from '../../operator/equals';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\nimport {NotEquals} from '../../operator/not-equals';\nimport {Net} from '../../../../process/net';\nimport {NameIdPair} from '../name-id-pair';\nimport {CaseNetAttributeAutocompleteCategory} from './case-net-attribute-autocomplete-category';\nimport {Categories} from '../categories';\nimport {CaseSearch} from './case-search.enum';\n\nexport class CaseRole extends CaseNetAttributeAutocompleteCategory {\n\n    private static readonly _i18n = 'search.category.case.role';\n\n    constructor(operators: OperatorService, logger: LoggerService, optionalDependencies: OptionalDependencies) {\n        super([CaseSearch.ENABLED_ROLES],\n            [operators.getOperator(Equals), operators.getOperator(NotEquals)],\n            `${CaseRole._i18n}.name`,\n            logger,\n            operators,\n            optionalDependencies);\n    }\n\n    protected extractAttributes(petriNet: Net): Array<NameIdPair> {\n        return petriNet.roles.map(r => ({id: r.stringId, name: r.name}));\n    }\n\n    get inputPlaceholder(): string {\n        return `${CaseRole._i18n}.placeholder`;\n    }\n\n    duplicate(): CaseRole {\n        return new CaseRole(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.CASE_ROLE;\n    }\n}\n","import {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {Query} from '../../query/query';\nimport {Operator} from '../../operator/operator';\nimport {Equals} from '../../operator/equals';\nimport {EqualsDate} from '../../operator/equals-date';\nimport {EqualsDateTime} from '../../operator/equals-date-time';\nimport {Substring} from '../../operator/substring';\nimport {CaseProcess} from './case-process';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\nimport {BooleanOperator} from '../../boolean-operator';\nimport {NoConfigurationCategory} from '../no-configuration-category';\nimport {CaseDataset} from './case-dataset';\nimport {DatafieldMapKey} from '../../datafield-map-key';\nimport {SearchIndex} from '../../search-index';\nimport {Categories} from '../categories';\nimport {CategoryGeneratorMetadata} from '../../persistance/generator-metadata';\nimport {Observable} from 'rxjs';\nimport { NotEquals } from '../../operator/not-equals';\n\n/**\n * This class aims to be a simpler more limited version of the {@link CaseDataset} {@link Category} implementation.\n *\n * It can only generate \"equality\" queries for a single field. The category must be configured before it can be used to generate queries.\n *\n * This category cannot be serialized. If you want to preserve this category's state convert it to {@link CaseDataset}\n * with the [transformToCaseDataset()]{@link CaseSimpleDataset#transformToCaseDataset} method and serialize the result.\n *\n * See [configure]{@link CaseSimpleDataset#configure} for more information.\n */\nexport class CaseSimpleDataset extends NoConfigurationCategory<string> {\n\n    private static readonly _i18n = 'search.category.case.dataset';\n\n    protected _fieldId: string;\n    protected _fieldType: string;\n    protected _netIdentifiers: Array<string>;\n    protected _elasticKeyword: string;\n\n    protected _processCategory: CaseProcess;\n\n    constructor(operators: OperatorService,\n                logger: LoggerService,\n                protected _optionalDependencies: OptionalDependencies) {\n        super(undefined,\n            undefined,\n            `${CaseSimpleDataset._i18n}.name`,\n            undefined,\n            logger,\n            operators);\n\n        this._processCategory = _optionalDependencies.categoryFactory.getWithDefaultOperator(CaseProcess) as CaseProcess;\n    }\n\n    destroy() {\n        super.destroy();\n        this._processCategory.destroy();\n    }\n\n    get inputPlaceholder(): string {\n        return '';\n    }\n\n    public configure(fieldId: string, fieldType: string, netIdentifiers: Array<string>): void {\n        if (!fieldId || !fieldType || !netIdentifiers || netIdentifiers.length === 0) {\n            this._log.error('CaseSimpleDataset must be configured with defined values and a non-empty array');\n            return;\n        }\n        this._fieldId = fieldId;\n        this._fieldType = fieldType;\n        this._netIdentifiers = netIdentifiers;\n        this.resolveElasticKeyword();\n    }\n\n    protected resolveElasticKeyword(): void {\n        const resolver = this._optionalDependencies.searchIndexResolver;\n        switch (this._fieldType) {\n            case 'number':\n                this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.NUMBER);\n                break;\n            case 'date':\n            case 'dateTime':\n                this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.TIMESTAMP);\n                break;\n            case 'boolean':\n                this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.BOOLEAN);\n                break;\n            case 'file':\n            case 'fileList':\n                this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.FILE_NAME, this.isSelectedOperator(Substring));\n                break;\n            case 'user':\n            case 'userList':\n                this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.USER_ID);\n                break;\n            case 'i18n':\n                this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.TEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring))\n                break;\n            default:\n                this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.FULLTEXT, this.isSelectedOperator(Substring));\n        }\n    }\n\n    protected get elasticKeywords(): Array<string> {\n        if (!this._fieldId) {\n            return [];\n        } else {\n            return [this._elasticKeyword];\n        }\n    }\n\n    public get selectedOperator(): Operator<any> {\n        switch (this._fieldType) {\n            case 'number':\n                return this._operatorService.getOperator(Equals);\n            case 'boolean':\n                return this._operatorService.getOperator(Equals);\n            case 'user':\n                return this._operatorService.getOperator(Equals);\n            case 'date':\n                return this._operatorService.getOperator(EqualsDate);\n            case 'dateTime':\n                return this._operatorService.getOperator(EqualsDateTime);\n            default:\n                return this._operatorService.getOperator(Substring);\n        }\n    }\n\n    duplicate(): CaseSimpleDataset {\n        return new CaseSimpleDataset(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    /**\n     * Creates a {@link CaseDataset} instance and configures it so, that the query it generates targets\n     * the selected field, uses the default operator and its operands are what the user provided.\n     *\n     * @param fieldType the type of the field that should be targeted by the transformed Category\n     * @param fieldTitle the title of the field that should be targeted by the transformed Category\n     * @param userInput the operands for the queried field\n     * @returns a new {@link CaseDataset} configured with the provided values\n     */\n    public transformToCaseDataset(fieldType: string, fieldTitle: string, userInput: Array<any>): CaseDataset {\n        const result = this._optionalDependencies.categoryFactory.get(CaseDataset) as CaseDataset;\n        result.selectDatafields(DatafieldMapKey.serializedForm(fieldType, fieldTitle));\n        result.setOperands(userInput);\n        return result;\n    }\n\n    protected generateQuery(userInput: Array<unknown>): Query {\n        const valueQuery = this.selectedOperator.createQuery(this.elasticKeywords, userInput);\n        const netsQuery = Query.combineQueries(\n            this._netIdentifiers.map(id => this._processCategory.generatePredicate([[id]]).query),\n            BooleanOperator.OR\n        );\n        return Query.combineQueries([valueQuery, netsQuery], BooleanOperator.AND);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.CASE_SIMPLE_DATASET;\n    }\n\n    /**\n     * Serialization is not supported. Throws an error.\n     */\n    createMetadata(): never {\n        throw new Error('CaseSimpleDataset does not support serialization!');\n    }\n\n    /**\n     * Deserialization is not supported. Throws an error.\n     */\n    loadFromMetadata(metadata: CategoryGeneratorMetadata): Observable<void> {\n        throw new Error('CaseSimpleDataset does not support deserialization!');\n    }\n}\n","import {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\nimport {Equals} from '../../operator/equals';\nimport {NotEquals} from '../../operator/not-equals';\nimport {NameIdPair} from '../name-id-pair';\nimport {Net} from '../../../../process/net';\nimport {CaseNetAttributeAutocompleteCategory} from './case-net-attribute-autocomplete-category';\nimport {Categories} from '../categories';\nimport {CaseSearch} from './case-search.enum';\n\nexport class CaseTask extends CaseNetAttributeAutocompleteCategory {\n\n    private static readonly _i18n = 'search.category.case.task';\n\n    constructor(operators: OperatorService, logger: LoggerService, optionalDependencies: OptionalDependencies) {\n        super([CaseSearch.TASK_ID],\n            [operators.getOperator(Equals), operators.getOperator(NotEquals)],\n            `${CaseTask._i18n}.name`,\n            logger,\n            operators,\n            optionalDependencies);\n    }\n\n    protected extractAttributes(petriNet: Net): Array<NameIdPair> {\n        return petriNet.transitions.map(t => ({id: t.stringId, name: t.title}));\n    }\n\n    get inputPlaceholder(): string {\n        return `${CaseTask._i18n}.placeholder`;\n    }\n\n    duplicate(): CaseTask {\n        return new CaseTask(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.CASE_TASK;\n    }\n}\n","import {OperatorService} from '../../../operator-service/operator.service';\nimport {Substring} from '../../operator/substring';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {SearchInputType} from '../search-input-type';\nimport {NoConfigurationCategory} from '../no-configuration-category';\nimport {Equals} from '../../operator/equals';\nimport {NotEquals} from '../../operator/not-equals';\nimport {Like} from '../../operator/like';\nimport {Categories} from '../categories';\nimport {CaseSearch} from './case-search.enum';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\n\nexport class CaseTitle extends NoConfigurationCategory<string> {\n\n    private static readonly _i18n = 'search.category.case.title';\n\n    constructor(operators: OperatorService, logger: LoggerService, protected _optionalDependencies?: OptionalDependencies) {\n        super([CaseSearch.TITLE],\n            [\n                operators.getOperator(Substring),\n                operators.getOperator(Equals),\n                operators.getOperator(NotEquals),\n                operators.getOperator(Like)\n            ],\n            `${CaseTitle._i18n}.name`,\n            SearchInputType.TEXT,\n            logger,\n            operators);\n    }\n\n    get inputPlaceholder(): string {\n        return `${CaseTitle._i18n}.placeholder`;\n    }\n\n    duplicate(): CaseTitle {\n        return new CaseTitle(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.CASE_TITLE;\n    }\n\n    protected get elasticKeywords(): Array<string> {\n        if (!!this._optionalDependencies) {\n            const resolver = this._optionalDependencies.searchIndexResolver;\n            return [resolver.getCoreIndex(CaseSearch.TITLE, this.isSelectedOperator(Substring))];\n        } else {\n            return this._elasticKeywords;\n        }\n    }\n}\n","import {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {Substring} from '../../operator/substring';\nimport {SearchInputType} from '../search-input-type';\nimport {NoConfigurationCategory} from '../no-configuration-category';\nimport {Equals} from '../../operator/equals';\nimport {NotEquals} from '../../operator/not-equals';\nimport {Categories} from '../categories';\nimport {CaseSearch} from './case-search.enum';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\n\nexport class CaseVisualId extends NoConfigurationCategory<string> {\n\n    private static readonly _i18n = 'search.category.case.visualId';\n\n    constructor(operators: OperatorService, logger: LoggerService, protected _optionalDependencies?: OptionalDependencies) {\n        super([CaseSearch.VISUAL_ID],\n            [operators.getOperator(Substring), operators.getOperator(Equals), operators.getOperator(NotEquals)],\n            `${CaseVisualId._i18n}.name`,\n            SearchInputType.TEXT,\n            logger,\n            operators);\n    }\n\n    get inputPlaceholder(): string {\n        return `${CaseVisualId._i18n}.placeholder`;\n    }\n\n    duplicate(): CaseVisualId {\n        return new CaseVisualId(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.CASE_VISUAL_ID;\n    }\n\n    protected get elasticKeywords(): Array<string> {\n        if (!!this._optionalDependencies) {\n            const resolver = this._optionalDependencies.searchIndexResolver;\n            return [resolver.getCoreIndex(CaseSearch.VISUAL_ID, this.isSelectedOperator(Substring))];\n        } else {\n            return this._elasticKeywords;\n        }\n    }\n}\n","import {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {Substring} from '../../operator/substring';\nimport {SearchInputType} from '../search-input-type';\nimport {NoConfigurationCategory} from '../no-configuration-category';\nimport {Equals} from '../../operator/equals';\nimport {NotEquals} from '../../operator/not-equals';\nimport {Categories} from '../categories';\nimport {CaseSearch} from './case-search.enum';\n\nexport class CaseStringId extends NoConfigurationCategory<string> {\n\n    private static readonly _i18n = 'search.category.case.stringId';\n\n    constructor(operators: OperatorService, logger: LoggerService) {\n        super([CaseSearch.STRING_ID],\n            [\n                operators.getOperator(Substring),\n                operators.getOperator(Equals),\n                operators.getOperator(NotEquals)\n            ],\n            `${CaseStringId._i18n}.name`,\n            SearchInputType.TEXT,\n            logger,\n            operators);\n    }\n\n    get inputPlaceholder(): string {\n        return `${CaseStringId._i18n}.placeholder`;\n    }\n\n    duplicate(): CaseStringId {\n        return new CaseStringId(this._operatorService, this._log);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.CASE_STRING_ID;\n    }\n}\n","import {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\nimport {Equals} from '../../operator/equals';\nimport {NotEquals} from '../../operator/not-equals';\nimport {IsNull} from '../../operator/is-null';\nimport {Categories} from '../categories';\nimport {NoConfigurationUserAutocompleteCategory} from '../no-configuration-user-autocomplete-category';\n\n\nexport class TaskAssignee extends NoConfigurationUserAutocompleteCategory {\n\n    private static readonly _i18n = 'search.category.task.assignee';\n\n    constructor(operators: OperatorService, logger: LoggerService, optionalDependencies: OptionalDependencies) {\n        super(['userId'],\n            [operators.getOperator(Equals), operators.getOperator(NotEquals), operators.getOperator(IsNull)],\n            `${TaskAssignee._i18n}.name`,\n            logger,\n            operators,\n            'TaskAssignee',\n            optionalDependencies);\n    }\n\n    get inputPlaceholder(): string {\n        return `${TaskAssignee._i18n}.placeholder`;\n    }\n\n    duplicate(): TaskAssignee {\n        return new TaskAssignee(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.TASK_ASSIGNEE;\n    }\n}\n","import {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\nimport {Equals} from '../../operator/equals';\nimport {Query} from '../../query/query';\nimport {BooleanOperator} from '../../boolean-operator';\nimport {NoConfigurationAutocompleteCategory} from '../no-configuration-autocomplete-category';\nimport {NotEquals} from '../../operator/not-equals';\nimport {Categories} from '../categories';\nimport {Subscription} from 'rxjs';\n\nexport class TaskProcess extends NoConfigurationAutocompleteCategory<string> {\n\n    private static readonly _i18n = 'search.category.task.process';\n\n    private _allowedNetsSub: Subscription;\n    private _destroyed: boolean;\n\n    constructor(operators: OperatorService, logger: LoggerService, protected _optionalDependencies: OptionalDependencies) {\n        super(['processId'],\n            [operators.getOperator(Equals), operators.getOperator(NotEquals)],\n            `${TaskProcess._i18n}.name`,\n            logger,\n            operators);\n    }\n\n    destroy() {\n        super.destroy();\n        if (this._allowedNetsSub && !this._allowedNetsSub.closed) {\n            this._allowedNetsSub.unsubscribe();\n        }\n        this._destroyed = true;\n    }\n\n    protected createOptions(): void {\n        if (this._destroyed) {\n            return;\n        }\n\n        this._allowedNetsSub = this._optionalDependencies.allowedNetsService.allowedNets$.subscribe(allowedNets => {\n            this._optionsMap.clear();\n            allowedNets.forEach(petriNet => {\n                this.addToMap(petriNet.title, petriNet.stringId);\n            });\n            this.updateOptions();\n        });\n    }\n\n    protected generateQuery(userInput: Array<Array<string>>): Query {\n        if (this.selectedOperator.numberOfOperands !== 1) {\n            throw new Error('Only unary operators are currently supported by the TaskProcess implementation');\n        }\n        const operand = userInput[0];\n        const queries = operand.map(id => this.selectedOperator.createQuery(this.elasticKeywords, [id]));\n        return Query.combineQueries(queries, BooleanOperator.OR);\n    }\n\n    get inputPlaceholder(): string {\n        return `${TaskProcess._i18n}.placeholder`;\n    }\n\n    duplicate(): TaskProcess {\n        return new TaskProcess(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.TASK_PROCESS;\n    }\n}\n","import {NetAttributeAutocompleteCategory} from '../net-attribute-autocomplete-category';\nimport {Operator} from '../../operator/operator';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\nimport {Net} from '../../../../process/net';\nimport {Category} from '../category';\nimport {TaskProcess} from './task-process';\nimport {OperatorService} from '../../../operator-service/operator.service';\n\n/**\n * Utility class with the same use as its parent but witch Task search specific methods implemented.\n */\nexport abstract class TaskNetAttributeAutocompleteCategory extends NetAttributeAutocompleteCategory {\n    protected _processCategory: TaskProcess;\n\n    protected constructor(elasticKeywords: Array<string>,\n                          allowedOperators: Array<Operator<any>>,\n                          translationPath: string,\n                          log: LoggerService,\n                          operatorService: OperatorService,\n                          optionalDependencies: OptionalDependencies) {\n        super(elasticKeywords, allowedOperators, translationPath, log, operatorService, optionalDependencies);\n        this._processCategory = optionalDependencies.categoryFactory.get(TaskProcess) as TaskProcess;\n        this._processCategory.selectDefaultOperator();\n    }\n\n    destroy() {\n        super.destroy();\n        this._processCategory.destroy();\n    }\n\n    protected getProcessCategory(): Category<Array<string>> {\n        return this._processCategory;\n    }\n\n    protected getPetriNetIdentifier(net: Net): string {\n        return net.stringId;\n    }\n}\n","import {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\nimport {Equals} from '../../operator/equals';\nimport {NotEquals} from '../../operator/not-equals';\nimport {TaskNetAttributeAutocompleteCategory} from './task-net-attribute-autocomplete-category';\nimport {Net} from '../../../../process/net';\nimport {NameIdPair} from '../name-id-pair';\nimport {Categories} from '../categories';\n\nexport class TaskRole extends TaskNetAttributeAutocompleteCategory {\n\n    private static readonly _i18n = 'search.category.task.role';\n\n    constructor(operators: OperatorService, logger: LoggerService, optionalDependencies: OptionalDependencies) {\n        super(['roles'],\n            [operators.getOperator(Equals), operators.getOperator(NotEquals)],\n            `${TaskRole._i18n}.name`,\n            logger,\n            operators,\n            optionalDependencies);\n    }\n\n    protected extractAttributes(petriNet: Net): Array<NameIdPair> {\n        return petriNet.roles.map(r => ({id: r.stringId, name: r.name}));\n    }\n\n    get inputPlaceholder(): string {\n        return `${TaskRole._i18n}.placeholder`;\n    }\n\n    duplicate(): TaskRole {\n        return new TaskRole(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.TASK_ROLE;\n    }\n}\n","import {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {OptionalDependencies} from '../../../category-factory/optional-dependencies';\nimport {Equals} from '../../operator/equals';\nimport {NotEquals} from '../../operator/not-equals';\nimport {TaskNetAttributeAutocompleteCategory} from './task-net-attribute-autocomplete-category';\nimport {Net} from '../../../../process/net';\nimport {NameIdPair} from '../name-id-pair';\nimport {Categories} from '../categories';\n\n\nexport class TaskTask extends TaskNetAttributeAutocompleteCategory {\n\n    private static readonly _i18n = 'search.category.task.task';\n\n    constructor(operators: OperatorService, logger: LoggerService, optionalDependencies: OptionalDependencies) {\n        super(['transitionId'],\n            [operators.getOperator(Equals), operators.getOperator(NotEquals)],\n            `${TaskTask._i18n}.name`,\n            logger,\n            operators,\n            optionalDependencies);\n    }\n\n    protected extractAttributes(petriNet: Net): Array<NameIdPair> {\n        return petriNet.transitions.map(t => ({id: t.stringId, name: t.title}));\n    }\n\n    get inputPlaceholder(): string {\n        return `${TaskTask._i18n}.placeholder`;\n    }\n\n    duplicate(): TaskTask {\n        return new TaskTask(this._operatorService, this._log, this._optionalDependencies);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.TASK_TASK;\n    }\n}\n","import moment, {Moment} from 'moment';\nimport {OperatorService} from '../../../operator-service/operator.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {SearchInputType} from '../search-input-type';\nimport {NoConfigurationCategory} from '../no-configuration-category';\nimport {Categories} from '../categories';\nimport {FormControl} from '@angular/forms';\nimport {Observable, of} from 'rxjs';\nimport {EqualsDateTime} from '../../operator/equals-date-time';\nimport {MoreThanDateTime} from '../../operator/more-than-date-time';\nimport {MoreThanEqualDateTime} from '../../operator/more-than-equal-date-time';\nimport {LessThanEqualDateTime} from '../../operator/less-than-equal-date-time';\nimport {InRangeDateTime} from '../../operator/in-range-date-time';\nimport {LessThanDateTime} from '../../operator/less-than-date-time';\nimport {CaseSearch} from './case-search.enum';\nimport {NotEqualsDateTime} from '../../operator/not-equals-date-time';\n\n\nexport class CaseCreationDateTime extends NoConfigurationCategory<Moment> {\n\n    private static readonly _i18n = 'search.category.case.creationDateTime';\n\n    constructor(operators: OperatorService, logger: LoggerService) {\n        super([CaseSearch.CREATION_DATE],\n            [\n                operators.getOperator(EqualsDateTime),\n                operators.getOperator(NotEqualsDateTime),\n                operators.getOperator(MoreThanDateTime),\n                operators.getOperator(MoreThanEqualDateTime),\n                operators.getOperator(LessThanDateTime),\n                operators.getOperator(LessThanEqualDateTime),\n                operators.getOperator(InRangeDateTime)\n            ],\n            `${CaseCreationDateTime._i18n}.name`,\n            SearchInputType.DATE_TIME,\n            logger,\n            operators);\n    }\n\n    get inputPlaceholder(): string {\n        return `${CaseCreationDateTime._i18n}.placeholder`;\n    }\n\n    duplicate(): CaseCreationDateTime {\n        return new CaseCreationDateTime(this._operatorService, this._log);\n    }\n\n    serializeClass(): Categories | string {\n        return Categories.CASE_CREATION_DATE_TIME;\n    }\n\n    protected serializeOperandValue(valueFormControl: FormControl): unknown {\n        return valueFormControl.value.valueOf();\n    }\n\n    protected deserializeOperandValue(value: unknown): Observable<any> {\n        return of(moment(value));\n    }\n}\n","import {Injectable, Type} from '@angular/core';\nimport {Categories} from '../models/category/categories';\nimport {Category} from '../models/category/category';\nimport {CaseAuthor} from '../models/category/case/case-author';\nimport {CaseCreationDate} from '../models/category/case/case-creation-date';\nimport {CaseDataset} from '../models/category/case/case-dataset';\nimport {CaseProcess} from '../models/category/case/case-process';\nimport {CaseRole} from '../models/category/case/case-role';\nimport {CaseSimpleDataset} from '../models/category/case/case-simple-dataset';\nimport {CaseTask} from '../models/category/case/case-task';\nimport {CaseTitle} from '../models/category/case/case-title';\nimport {CaseVisualId} from '../models/category/case/case-visual-id';\nimport {CaseStringId} from '../models/category/case/case-string-id';\nimport {TaskAssignee} from '../models/category/task/task-assignee';\nimport {TaskProcess} from '../models/category/task/task-process';\nimport {TaskRole} from '../models/category/task/task-role';\nimport {TaskTask} from '../models/category/task/task-task';\nimport {CaseCreationDateTime} from '../models/category/case/case-creation-date-time';\nimport {CategorySerialisationPair} from './category-serialisation-pair';\n\n/**\n * A service that resolves {@link Categories} (or custom string) into a concrete {@link Category} implementation class and vice versa.\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class CategoryResolverService {\n\n    private readonly _classToStringTable;\n    private readonly _stringToClassTable;\n\n    constructor() {\n        this._classToStringTable = {};\n        this._stringToClassTable = {};\n        this.registerDefaultPairings();\n    }\n\n    /**\n     * Registers the default class - serialisation pairings for all the {@link Category} classes provided by this library.\n     */\n    private registerDefaultPairings(): void {\n        [\n            // Case\n            {\n                classReference: CaseAuthor,\n                serialized: Categories.CASE_AUTHOR\n            }, {\n                classReference: CaseCreationDate,\n                serialized: Categories.CASE_CREATION_DATE\n            }, {\n                classReference: CaseCreationDateTime,\n                serialized: Categories.CASE_CREATION_DATE_TIME\n            }, {\n                classReference: CaseDataset,\n                serialized: Categories.CASE_DATASET\n            }, {\n                classReference: CaseProcess,\n                serialized: Categories.CASE_PROCESS\n            }, {\n                classReference: CaseRole,\n                serialized: Categories.CASE_ROLE\n            }, {\n                classReference: CaseSimpleDataset,\n                serialized: Categories.CASE_SIMPLE_DATASET\n            }, {\n                classReference: CaseTask,\n                serialized: Categories.CASE_TASK\n            }, {\n                classReference: CaseTitle,\n                serialized: Categories.CASE_TITLE\n            }, {\n                classReference: CaseVisualId,\n                serialized: Categories.CASE_VISUAL_ID\n            }, {\n                classReference: CaseStringId,\n                serialized: Categories.CASE_STRING_ID\n            },\n            // Task\n            {\n                classReference: TaskAssignee,\n                serialized: Categories.TASK_ASSIGNEE\n            }, {\n                classReference: TaskProcess,\n                serialized: Categories.TASK_PROCESS\n            }, {\n                classReference: TaskRole,\n                serialized: Categories.TASK_ROLE\n            }, {\n                classReference: TaskTask,\n                serialized: Categories.TASK_TASK\n            }\n        ].forEach(pair => this.registerPair(pair));\n    }\n\n    /**\n     * Resolves the categories from the {@link Categories} enum into their corresponding classes.\n     * Passes all unresolved values into the [toCustomClass()]{@link CategoryResolverService#toCustomClass} method - this\n     * behavior is deprecated in 5.6.0.\n     * @param category a serialized representation of the {@link Category} class\n     */\n    public toClass(category: Categories | string): Type<Category<any>> | undefined {\n        return this._stringToClassTable[category] ?? this.toCustomClass(category);\n    }\n\n    /**\n     * Resolves a {@link Category} class or a class instance into its corresponding serialisation.\n     * @param category a class reference or a class instance\n     * @returns the associated serialisation or `undefined` if no serialisation was associated\n     */\n    public serialize(category: Type<Category<any>> | Category<any>): Categories | string | undefined {\n        if (category instanceof Category) {\n            // @ts-ignore\n            return this._classToStringTable[category.constructor];\n        }\n        // @ts-ignore\n        return this._classToStringTable[category];\n    }\n\n    /**\n     * Should resolve any custom categories into their corresponding class objects.\n     *\n     * If you implement any custom {@link Category} classes, you should override this method to resolve them after serialization.\n     *\n     * @param category the serialized string provided by your [Category.serialize()]{@link Category#serializeClass} implementation\n     * @returns `undefined`\n     *\n     * @deprecated in 5.6.0 - use the [registerPair]{@link CategoryResolverService#registerPair} method to register\n     * both transformations instead.\n     */\n    protected toCustomClass(category: string): Type<Category<any>> | undefined {\n        return undefined;\n    }\n\n    /**\n     * Adds the given mapping to the look-up tables\n     *\n     * @returns a new pair where: The class is the previous string association. The string is the previous class association.\n     * One or both of the values in the returned pair may be `undefined`.\n     */\n    protected registerPair(pair: CategorySerialisationPair): CategorySerialisationPair {\n        const associatedClass = this._stringToClassTable[pair.serialized];\n        this._stringToClassTable[pair.serialized] = pair.classReference;\n\n        // non-string/number object keys are supported by javascript but are lacking typescript support\n        // @ts-ignore\n        const associatedString = this._classToStringTable[pair.classReference];\n        // @ts-ignore\n        this._classToStringTable[pair.classReference] = pair.serialized;\n\n        return {\n            classReference: associatedClass,\n            serialized: associatedString\n        };\n    }\n}\n","import {PetriNetReference} from '../resources/interface/petri-net-reference';\nimport {Author} from '../resources/interface/author';\nimport {ImmediateData} from '../resources/interface/immediate-data';\nimport Transition from './transition';\nimport Transaction from './transaction';\nimport NetRole from './netRole';\nimport {Permissions} from './permissions';\nimport {PetriNetReferenceWithPermissions} from './petri-net-reference-with-permissions';\n\n/**\n * @ignore\n */\nexport class Net implements PetriNetReferenceWithPermissions {\n    /**\n     * @ignore\n     */\n    private _stringId: string;\n    /**\n     * @ignore\n     */\n    private _title: string;\n    /**\n     * @ignore\n     */\n    private _identifier: string;\n    /**\n    * @ignore\n    * */\n    private _uriNodeId: string;\n    /**\n     * @ignore\n     */\n    private _version: string;\n    /**\n     * @ignore\n     */\n    private _initials: string;\n    /**\n     * @ignore\n     */\n    private _defaultCaseName: string;\n    /**\n     * @ignore\n     */\n    private _createdDate: Array<number>;\n    /**\n     * @ignore\n     */\n    private _author: Author;\n    /**\n     * @ignore\n     */\n    private _immediateData: Array<ImmediateData>;\n    /**\n     * @ignore\n     */\n    private _transitions: Array<Transition>;\n    /**\n     * @ignore\n     */\n    private _transactions: Array<Transaction>;\n    /**\n     * @ignore\n     */\n    private _roles: Array<NetRole>;\n    /**\n     * @ignore\n     */\n    private _permissions: Permissions;\n    /**\n     * @ignore\n     */\n    constructor(net: PetriNetReference) {\n        this._stringId = net.stringId;\n        this._title = net.title;\n        this._identifier = net.identifier;\n        this._version = net.version;\n        this._initials = net.initials;\n        this._defaultCaseName = net.defaultCaseName;\n        this._createdDate = net.createdDate;\n        this._author = net.author;\n        this._immediateData = net.immediateData;\n        this._transitions = [];\n        this._transactions = [];\n        this._roles = [];\n        this._uriNodeId = net.uriNodeId;\n    }\n\n    get stringId(): string {\n        return this._stringId;\n    }\n\n    set stringId(value: string) {\n        this._stringId = value;\n    }\n\n    get title(): string {\n        return this._title;\n    }\n\n    set title(value: string) {\n        this._title = value;\n    }\n\n    get identifier(): string {\n        return this._identifier;\n    }\n\n    set identifier(value: string) {\n        this._identifier = value;\n    }\n\n    get version(): string {\n        return this._version;\n    }\n\n    set version(value: string) {\n        this._version = value;\n    }\n\n    get initials(): string {\n        return this._initials;\n    }\n\n    set initials(value: string) {\n        this._initials = value;\n    }\n\n    get defaultCaseName(): string {\n        return this._defaultCaseName;\n    }\n\n    set defaultCaseName(value: string) {\n        this._defaultCaseName = value;\n    }\n\n    get createdDate(): Array<number> {\n        return this._createdDate;\n    }\n\n    set createdDate(value: Array<number>) {\n        this._createdDate = value;\n    }\n\n    get author(): Author {\n        return this._author;\n    }\n\n    set author(value: Author) {\n        this._author = value;\n    }\n\n    get immediateData(): Array<ImmediateData> {\n        return this._immediateData;\n    }\n\n    set immediateData(value: Array<ImmediateData>) {\n        this._immediateData = value;\n    }\n\n    get transitions(): Array<Transition> {\n        return this._transitions;\n    }\n\n    set transitions(value: Array<Transition>) {\n        this._transitions = value;\n    }\n\n    get transactions(): Array<Transaction> {\n        return this._transactions;\n    }\n\n    set transactions(value: Array<Transaction>) {\n        this._transactions = value;\n    }\n\n    get roles(): Array<NetRole> {\n        return this._roles;\n    }\n\n    set roles(value: Array<NetRole>) {\n        this._roles = value;\n    }\n\n    get permissions(): Permissions {\n        return this._permissions;\n    }\n\n    set permissions(value: Permissions) {\n        this._permissions = value;\n    }\n\n    get uriNodeId(): string {\n        return this._uriNodeId;\n    }\n\n    set uriNodeId(uriNodeId: string) {\n        this._uriNodeId = uriNodeId;\n    }\n}\n","import {MessageResource} from '../resources/interface/message-resource';\nimport {Observable, of, throwError} from 'rxjs';\n\n/**\n * Transforms a {@link MessageResource} object into a stream containing either the message\n * or an error if the message resource contains an error.\n *\n * Can be used with rxjs' `switchMap` process responses from backend.\n * @param message a {@link MessageResource} object\n */\nexport function processMessageResponse(message: MessageResource): Observable<MessageResource> {\n    if (message.error) {\n        return throwError(new Error(message.error));\n    } else {\n        return of(message);\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {filter, map, switchMap} from 'rxjs/operators';\nimport {PetriNet} from '../interface/petri-net';\nimport {Params, ProviderProgress, ResourceProvider} from '../resource-provider.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport Transition from '../../process/transition';\nimport {HttpEventType, HttpParams} from '@angular/common/http';\nimport Transaction from '../../process/transaction';\nimport {EventOutcomeMessageResource, MessageResource} from '../interface/message-resource';\nimport {PetriNetReference} from '../interface/petri-net-reference';\nimport {PetriNetRequestBody} from '../interface/petri-net-request-body';\nimport {Page} from '../interface/page';\nimport {processMessageResponse} from '../../utility/process-message-response';\nimport {AbstractResourceService} from '../abstract-endpoint/abstract-resource.service';\nimport RolesAndPermissions from '../../process/rolesAndPermissions';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class PetriNetResourceService extends AbstractResourceService {\n\n    constructor(provider: ResourceProvider, configService: ConfigurationService) {\n        super('petrinet', provider, configService);\n    }\n\n    /**\n     * Get All Using Petri Net\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet\n     */\n    public getAll(params?: Params): Observable<Array<PetriNetReference>> {\n        return this._resourceProvider.get$('petrinet', this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, 'petriNetReferences')));\n    }\n\n    /**\n     * Get Data Field References Using\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/data\n     */\n    public getDataPetriNet(body: object): Observable<any> {  // TODO: response\n        return this._resourceProvider.post$('petrinet/data', this.SERVER_URL, body)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get Transition References Using\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/transitions\n     */\n    public getPetriNetTransitions(netId: string): Observable<Array<Transition>> {\n        return this._resourceProvider.get$('/petrinet/transitions', this.SERVER_URL, new HttpParams().set('ids', netId))\n            .pipe(map(r => this.changeType(r, 'transitionReferences')));\n    }\n\n    /**\n     * Get Transaction References Using\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/{id}/transactions\n     */\n    public getPetriNetTransactions(netId: string, params?: Params): Observable<Array<Transaction>> {\n        return this._resourceProvider.get$('/petrinet/' + netId + '/transactions', this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, 'transactions')));\n    }\n\n    /**\n     * Get Roles References Using\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/{id}/roles\n     */\n    public getPetriNetRoles(netId: string, params?: Params): Observable<RolesAndPermissions> {\n        return this._resourceProvider.get$('/petrinet/' + netId + '/roles', this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * get Net File\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/{netId}/file\n     */\n    public getNetFile(netId: string): Observable<ProviderProgress | Blob> {\n        return this._resourceProvider.getBlob$('petrinet/' + netId + '/file', this.SERVER_URL).pipe(\n            map(event => {\n                switch (event.type) {\n                    case HttpEventType.DownloadProgress:\n                        return ResourceProvider.getProgress(event);\n                    case HttpEventType.Response:\n                        return event.body;\n                    default:\n                        return undefined;\n                }\n            }),\n            filter(value => !!value)\n        );\n    }\n\n    /**\n     * get One Net\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/{identifier}/{version}\n     */\n    public getOne(identifier: string, version: string, params?: Params): Observable<PetriNetReference> {\n        return this._resourceProvider.get$('petrinet/' + btoa(identifier) + '/' + version, this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, 'petriNetReferences')));\n    }\n\n    /**\n     * get One Net by ID\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/{id}\n     */\n    public getOneById(netId: string, params?: Params): Observable<PetriNet> {\n        return this._resourceProvider.get$('petrinet/' + netId, this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n\n    /**\n     * import PetriNet\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/import\n     */\n    public importPetriNet(body: FormData, params?: Params): Observable<ProviderProgress | EventOutcomeMessageResource> {\n        return this._resourceProvider.postWithEvent$<MessageResource>('petrinet/import', this.SERVER_URL, body, params).pipe(\n            map(event => {\n                switch (event.type) {\n                    case HttpEventType.UploadProgress:\n                        return ResourceProvider.getProgress(event);\n                    case HttpEventType.Response:\n                        return ResourceProvider.processMessageResource(event);\n                    default:\n                        return undefined;\n                }\n            }),\n            filter(value => !!value)\n        );\n    }\n\n\n    /**\n     * search PetriNets\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/search\n     */\n    public searchPetriNets(body: PetriNetRequestBody, params?: Params): Observable<Page<PetriNetReference>> {\n        return this._resourceProvider.post$('petrinet/search', this.SERVER_URL, body, params)\n            .pipe(map(r => this.getResourcePage<PetriNetReference>(r, 'petriNetReferences')));\n    }\n\n    /**\n     * delete PetriNet\n     *\n     * **Request Type:** DELETE\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/{id}\n     *\n     * @param netId stringId of the deleted Petri Net\n     */\n    public deletePetriNet(netId: string): Observable<MessageResource> {\n        return this._resourceProvider.delete$<MessageResource>('petrinet/' + netId, this.SERVER_URL)\n            .pipe(switchMap(processMessageResponse));\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {forkJoin, Observable, of, ReplaySubject, Subject} from 'rxjs';\nimport {Net} from './net';\nimport {PetriNetResourceService} from '../resources/engine-endpoint/petri-net-resource.service';\nimport {LoggerService} from '../logger/services/logger.service';\nimport Transition from './transition';\nimport Transaction from './transaction';\nimport {catchError, map, switchMap, tap} from 'rxjs/operators';\nimport RolesAndPermissions from './rolesAndPermissions';\nimport {PetriNetReference} from '../resources/interface/petri-net-reference';\nimport {PetriNetReferenceWithPermissions} from './petri-net-reference-with-permissions';\n\nexport interface NetCache {\n    [k: string]: Net;\n}\n\n/**\n * Process service is responsible for loading and caching processes needed for any functionality of an app.\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class ProcessService implements OnDestroy {\n\n    protected readonly _nets: NetCache;\n    protected _netsSubject: Subject<NetCache>;\n    protected _netUpdate: Subject<Net>;\n    protected _requestCache: Map<string, ReplaySubject<Net>>;\n    protected _referenceRequestCache: Map<string, ReplaySubject<PetriNetReferenceWithPermissions>>;\n    public readonly LATEST = 'latest';\n\n    constructor(private _petriNetResource: PetriNetResourceService, private _log: LoggerService) {\n        this._nets = {};\n        this._netsSubject = new Subject<NetCache>();\n        this._netUpdate = new Subject<Net>();\n        this._requestCache = new Map<string, ReplaySubject<Net>>();\n        this._referenceRequestCache = new Map<string, ReplaySubject<PetriNetReferenceWithPermissions>>();\n    }\n\n    ngOnDestroy(): void {\n        this._netsSubject.complete();\n        this._netUpdate.complete();\n        Array.from(this._requestCache.values()).forEach(net => net.complete());\n        Array.from(this._referenceRequestCache.values()).forEach(net => net.complete());\n    }\n\n    /**\n     * Get process nets according to provided identifiers.\n     * If any of the requested processes is not cached it will be loaded from the server and saved for later.\n     * @param identifiers Array of identifiers of requested processes. See {@link Net}\n     * @param forceLoad when set to `true` cached processes will be ignored and a backend request will always be made\n     * (unless another is already pending)\n     * @returns Observable of array of loaded processes. Array is emitted only when every process finished loading.\n     * If any of the processes failed to load it is skipped from the result.\n     */\n    public getNets(identifiers: Array<string>, forceLoad = false): Observable<Array<Net>> {\n        if (identifiers.length === 0) {\n            return of([]);\n        }\n        return forkJoin(identifiers.map(i => {\n            return this.getNet(i, forceLoad);\n        })).pipe(\n            map(nets => nets.filter(n => !!n)),\n            tap(nets => {\n                if (nets.length === 0) {\n                    return;\n                }\n                this._netsSubject.next(this._nets);\n                nets.forEach(n => this._netUpdate.next(n));\n            })\n        );\n    }\n\n    /**\n     * Get process net by identifier.\n     * @param identifier Identifier of the requested process. See {@link Net}\n     * @param forceLoad when set to `true` cached processes will be ignored and a backend request will always be made\n     * (unless another is already pending)\n     * @returns Observable of [the process]{@link Net}. Process is loaded from a server or picked from the cache.\n     */\n    public getNet(identifier: string, forceLoad = false): Observable<Net> {\n        if (!forceLoad && this._nets[identifier]) {\n            this._log.debug(`returning net '${identifier}' from cache`);\n            return of(this._nets[identifier]);\n        }\n        if (this._requestCache.has(identifier)) {\n            this._log.debug(`returning net '${identifier}' from pending requests`);\n            return this._requestCache.get(identifier).asObservable();\n        }\n        this._log.debug(`retrieving net '${identifier}' from backend`);\n        this._requestCache.set(identifier, new ReplaySubject<Net>(1));\n        return this.loadNet(identifier).pipe(\n            tap(net => {\n                const s = this._requestCache.get(identifier);\n                if (s) {\n                    s.next(net);\n                    s.complete();\n                    this._requestCache.delete(identifier);\n                }\n                if (net) {\n                    this.publishUpdate(net);\n                }\n            })\n        );\n    }\n\n    /**\n     * Get process net referencess according to provided identifiers.\n     *\n     * `PetriNetReferences` are not cached.\n     * Each call will result in a new backend request unless a request for the same net is already pending.\n     * @param identifiers Array of identifiers of requested processes. See {@link Net}\n     * @returns Observable of array of loaded processes. Array is emitted only when every process finished loading.\n     * If any of the processes failed to load it is skipped from the result.\n     */\n    public getNetReferences(identifiers: Array<string>): Observable<Array<PetriNetReferenceWithPermissions>> {\n        if (identifiers.length === 0) {\n            return of([]);\n        }\n        return forkJoin(identifiers.map(i => {\n            return this.getNetReference(i);\n        })).pipe(\n            map(references => references.filter(r => !!r))\n        );\n    }\n\n    /**\n     * Get process net reference by identifier.\n     *\n     * `PetriNetReferences` are not cached.\n     * Each call will result in a new backend request unless a request for the same net is already pending.\n     * @param identifier Identifier of the requested process. See {@link Net}\n     * @returns Observable of [the process]{@link Net}. Process is loaded from a server or picked from the cache.\n     */\n    public getNetReference(identifier: string): Observable<PetriNetReferenceWithPermissions> {\n        if (this._referenceRequestCache.has(identifier)) {\n            return this._referenceRequestCache.get(identifier).asObservable();\n        }\n        this._referenceRequestCache.set(identifier, new ReplaySubject<PetriNetReferenceWithPermissions>(1));\n        return this.loadNetReference(identifier).pipe(\n            switchMap(ref => {\n                if (ref !== null) {\n                    return forkJoin({net: of(ref), roles: this.loadRoles(ref.stringId)});\n                } else {\n                    return of({net: ref, roles: undefined});\n                }\n            }),\n            map(result => {\n                if (result.net === null) {\n                    return null;\n                }\n                return {\n                    ...result.net,\n                    roles: result.roles.processRoles,\n                    permissions: result.roles.permissions\n                };\n            }),\n            tap(reference => {\n                const s = this._referenceRequestCache.get(identifier);\n                if (s) {\n                    s.next(reference);\n                    s.complete();\n                    this._referenceRequestCache.delete(identifier);\n                }\n            })\n        );\n    }\n\n    /**\n     * Remove cached process by identifier. If the process is not found nothing happens.\n     * @param identifier Process identifier\n     */\n    public removeNet(identifier: string): void {\n        if (!this._nets[identifier]) {\n            return;\n        }\n        delete this._nets[identifier];\n        this.publishUpdate();\n    }\n\n    /**\n     * Update cached process object. If the process is not found nothing happens. Process object is replaced.\n     * @param net Updated process object.\n     */\n    public updateNet(net: Net): void {\n        if (!this._nets[net.identifier]) {\n            return;\n        }\n        if (!net.transitions.length || !net.transactions.length || !net.roles.length) {\n            forkJoin({\n                transitions: this.loadTransitions(net.stringId),\n                transactions: this.loadTransactions(net.stringId),\n                roles: this.loadRoles(net.stringId)\n            }).subscribe(values => {\n                net.transitions = values.transitions;\n                net.transactions = values.transactions;\n                net.roles = values.roles.processRoles;\n                net.permissions = values.roles.permissions;\n                this._nets[net.identifier] = net;\n                this.publishUpdate(net);\n            }, error => {\n                this._log.error('Failed to load part of Petri net ' + net.title, error);\n                // throw error;\n            });\n        } else {\n            this._nets[net.identifier] = net;\n            this.publishUpdate(net);\n        }\n    }\n\n    /**\n     * Stream of change of the process cache.\n     * New state of cache is emitted every time the cached changed by inserting, updating or deleting a process.\n     * @returns Observable of whole updated cache.\n     */\n    public get nets$(): Observable<NetCache> {\n        return this._netsSubject.asObservable();\n    }\n\n    /**\n     * Stream of change in the process cache.\n     * New state of cache is emitted every time the cached changed by inserting, updating or deleting a process.\n     * @returns Observable of updated or newly loaded process net.\n     */\n    public get netUpdate$(): Observable<Net> {\n        return this._netUpdate.asObservable();\n    }\n\n    public areNetsLoaded(identifiers: Array<string>): boolean {\n        return identifiers.every(identifier => this.isNetLoaded(identifier));\n    }\n\n    public isNetLoaded(identifier: string): boolean {\n        return !!this._nets[identifier];\n    }\n\n    protected loadNet(id: string): Observable<Net> {\n        const returnNet = new ReplaySubject<Net>(1);\n        this.loadNetReference(id).subscribe(net => {\n            if (net === null) {\n                this._log.debug(`loadNetReference for net '${id}' returned null`);\n                returnNet.next(null);\n                returnNet.complete();\n                return;\n            }\n            this._log.debug(`loading net '${id}' transitions, transactions and roles`);\n            forkJoin({\n                transitions: this.loadTransitions(net.stringId),\n                transactions: this.loadTransactions(net.stringId),\n                roles: this.loadRoles(net.stringId)\n            }).subscribe(values => {\n                this._nets[net.identifier] = new Net(net);\n                this._nets[net.identifier].transitions = values.transitions;\n                this._nets[net.identifier].transactions = values.transactions;\n                this._nets[net.identifier].roles = values.roles.processRoles;\n                this._nets[net.identifier].permissions = values.roles.permissions;\n                returnNet.next(this._nets[net.identifier]);\n                returnNet.complete();\n            }, error => {\n                this._log.error('Failed to load part of Petri net ' + net.title, error);\n                returnNet.next(this._nets[net.identifier]);\n                returnNet.complete();\n                // throw error;\n            });\n        });\n        return returnNet.asObservable();\n    }\n\n    protected loadNetReference(id: string): Observable<PetriNetReference> {\n        const returnReference = new ReplaySubject<PetriNetReference>(1);\n        this._petriNetResource.getOne(id, this.LATEST).subscribe(reference => {\n            returnReference.next(!reference.stringId ? null : reference);\n            returnReference.complete();\n            return;\n        }, error => {\n            this._log.error('Failed to load Petri net', error);\n            returnReference.next(null);\n            returnReference.complete();\n        });\n        return returnReference.asObservable();\n    }\n\n    protected loadTransitions(id: string): Observable<Array<Transition>> {\n        return this._petriNetResource.getPetriNetTransitions(id).pipe(\n            map(trans => {\n                if (trans instanceof Array) {\n                    return trans;\n                }\n                return [];\n            }),\n            tap(trans => {\n                if (trans.length === 0) {\n                    this._log.info('References for transitions of net ' + id + ' were not found!');\n                }\n            }),\n            catchError(err => {\n                this._log.error('References for transitions of net ' + id + ' failed to load!', err);\n                throw err;\n            })\n        );\n    }\n\n    protected loadTransactions(id: string): Observable<Array<Transaction>> {\n        return this._petriNetResource.getPetriNetTransactions(id).pipe(\n            map(trans => {\n                if (trans instanceof Array) {\n                    return trans;\n                }\n                return [];\n            }),\n            tap(trans => {\n                if (trans.length === 0) {\n                    this._log.info('References for transactions of net ' + id + ' were not found!');\n                }\n            }),\n            catchError(err => {\n                this._log.error('References for transactions of net ' + id + ' failed to load!', err);\n                throw err;\n            })\n        );\n    }\n\n    protected loadRoles(id: string): Observable<RolesAndPermissions> {\n        return this._petriNetResource.getPetriNetRoles(id).pipe(\n            tap(rolesAndPerm => {\n                if (rolesAndPerm.processRoles.length === 0) {\n                    this._log.info('Roles reference of net ' + id + ' were not found!');\n                }\n            }),\n            catchError(err => {\n                this._log.error('Roles reference of net ' + id + ' failed to load!', err);\n                throw err;\n            })\n        );\n    }\n\n    protected publishUpdate(net?: Net): void {\n        this._netsSubject.next(this._nets);\n        if (net) {\n            this._netUpdate.next(net);\n        }\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {Observable, ReplaySubject, Subscription} from 'rxjs';\nimport {ProcessService} from '../../process/process.service';\nimport {Net} from '../../process/net';\nimport {map, switchMap, tap} from 'rxjs/operators';\n\n/**\n * This service holds the information about the allowed nets for a specific view.\n */\n@Injectable()\nexport class AllowedNetsService implements OnDestroy {\n\n    protected _allowedNets$: ReplaySubject<Array<Net>>;\n    protected _allowedNets: Array<Net>;\n    protected _allowedNetsIdentifiers$: ReplaySubject<Array<string>>;\n    protected _allowedNetsIdentifiers: Array<string>;\n    private subAllowedNets: Subscription;\n\n    /**\n     * The service converts identifiers to {@link Net} objects on its own.\n     *\n     * When a new set of allowed nets is emitted into the input Observable the allowed nets for the view are updated.\n     *\n     * @param allowedNetIdentifiers$ identifiers of the allowed nets\n     * @param _processService process service\n     */\n    constructor(allowedNetIdentifiers$: Observable<Array<string>>, protected _processService: ProcessService) {\n        this._allowedNets$ = new ReplaySubject<Array<Net>>(1);\n        this._allowedNetsIdentifiers$ = new ReplaySubject<Array<string>>(1);\n        this.subAllowedNets = allowedNetIdentifiers$.pipe(\n            tap(identifiers => {\n                this._allowedNetsIdentifiers$.next(identifiers);\n                this._allowedNetsIdentifiers = [...identifiers];\n            }),\n            map(identifiers => this._processService.getNets(identifiers)),\n            switchMap(nets => nets)\n        ).subscribe(nets => {\n            this._allowedNets$.next(nets);\n            this._allowedNets = [...nets];\n        });\n    }\n\n    /**\n     * Emits any time the allowed nets change. The first emission comes after the source observable emits for the first time.\n     *\n     * If a value has already been emitted, subscribing to the stream will provide the last emitted value.\n     */\n    public get allowedNets$(): Observable<Array<Net>> {\n        return this._allowedNets$.asObservable();\n    }\n\n    /**\n     * @returns the current value of the allowed nets. If allowed nets are yet to bee set, `undefined` is returned.\n     */\n    public get allowedNets(): ReadonlyArray<Net> | undefined {\n        return this._allowedNets;\n    }\n\n    /**\n     * Emits any time the allowed nets change. The first emission comes after the source observable emits for the first time.\n     *\n     * If a value has already been emitted, subscribing to the stream will provide the last emitted value.\n     */\n    public get allowedNetsIdentifiers$(): Observable<Array<string>> {\n        return this._allowedNetsIdentifiers$.asObservable();\n    }\n\n    /**\n     * @returns the current value of the allowed nets identifiers. If allowed nets are yet to bee set, `undefined` is returned.\n     */\n    public get allowedNetsIdentifiers(): ReadonlyArray<string> | undefined {\n        return this._allowedNetsIdentifiers;\n    }\n\n    ngOnDestroy(): void {\n        this._allowedNets$.complete();\n        this._allowedNetsIdentifiers$.complete();\n        this.subAllowedNets.unsubscribe();\n    }\n}\n","import {Injectable, Optional, Type} from '@angular/core';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {OperatorService} from '../operator-service/operator.service';\nimport {Category} from '../models/category/category';\nimport {OptionalDependencies} from './optional-dependencies';\nimport {UserResourceService} from '../../resources/engine-endpoint/user-resource.service';\nimport {SearchIndexResolverService} from '../search-keyword-resolver-service/search-index-resolver.service';\nimport {CategoryGeneratorMetadata} from '../models/persistance/generator-metadata';\nimport {CategoryResolverService} from './category-resolver.service';\nimport {AllowedNetsService} from '../../allowed-nets/services/allowed-nets.service';\nimport {Observable, ReplaySubject} from 'rxjs';\n\n/**\n * Can be used to generate {@link Category} class instances.\n *\n * Can only generate instances of Categories that take {@link OperatorService} as their first argument, {@link LoggerService} as their\n * second argument and {@link OptionalDependencies} object is passed as the third. `null` is passed as the third argument otherwise.\n * You can extend this class to support your Categories, but make sure that an injection token for this classes name\n * is still provided for the library components that use it.\n */\n@Injectable()\nexport class CategoryFactory {\n\n    protected _optionalDependencies: OptionalDependencies;\n\n    constructor(protected _operators: OperatorService,\n                protected _log: LoggerService,\n                protected _searchIndexResolverService: SearchIndexResolverService,\n                protected _categoryResolver: CategoryResolverService,\n                protected _allowedNetsService: AllowedNetsService,\n                @Optional() protected _userResourceService: UserResourceService) {\n        this._optionalDependencies = {\n            categoryFactory: this,\n            searchIndexResolver: this._searchIndexResolverService,\n            allowedNetsService: this._allowedNetsService,\n            userResourceService: this._userResourceService,\n        };\n    }\n\n    /**\n     * Create an instance of {@link Category} class.\n     * @param categoryClass the class that should be instantiated\n     * @returns a new instance of the provided class\n     */\n    public get(categoryClass: Type<Category<any>>): Category<any> {\n        return new categoryClass(this._operators, this._log, this._optionalDependencies);\n    }\n\n    /**\n     * Create an instance of {@link Category} class and preselects it's default operator.\n     * @param categoryClass the class that should be instantiated\n     * @returns a new instance of the provided class with the default operator selected\n     */\n    public getWithDefaultOperator(categoryClass: Type<Category<any>>): Category<any> {\n        const category = this.get(categoryClass);\n        category.selectDefaultOperator();\n        return category;\n    }\n\n    /**\n     * Attempts to deserialize the provided `string` into a {@link Category} class,\n     * create an instance from it and preselect it's default operator.\n     * @param serializedCategoryClass the serialized form of a {@Link Category} class\n     * @returns a new instance of the provided class with the default operator selected\n     */\n    public getByNameWithDefaultOperator(serializedCategoryClass: string): Category<any> {\n        return this.getWithDefaultOperator(this._categoryResolver.toClass(serializedCategoryClass));\n    }\n\n    /**\n     * Reconstructs a {@link Category} from saved metadata. The category is NOT in its initial state.\n     * It is in its final state instead and immediately provides a search predicate.\n     * @param metadata - the saved metadata generated by a previous {@link Category} instance\n     * @returns an Observable, that emits the deserialized Category, once the deserialization finishes\n     */\n    public getFromMetadata(metadata: CategoryGeneratorMetadata): Observable<Category<any>> {\n        const result$ = new ReplaySubject<Category<any>>(1);\n        const category = this.get(this._categoryResolver.toClass(metadata.category));\n        category.loadFromMetadata(metadata).subscribe(() => {\n            result$.next(category);\n            result$.complete();\n        });\n        return result$.asObservable();\n    }\n}\n","import {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {BooleanOperator} from '../models/boolean-operator';\nimport {Filter} from '../../filter/models/filter';\nimport {BehaviorSubject, forkJoin, Observable, Subject, Subscription} from 'rxjs';\nimport {Predicate} from '../models/predicate/predicate';\nimport {SimpleFilter} from '../../filter/models/simple-filter';\nimport {MergeOperator} from '../../filter/models/merge-operator';\nimport {PredicateRemovalEvent} from '../models/predicate-removal-event';\nimport {Query} from '../models/query/query';\nimport {distinctUntilChanged, map, tap} from 'rxjs/operators';\nimport {EditableClausePredicateWithGenerators} from '../models/predicate/editable-clause-predicate-with-generators';\nimport {Category} from '../models/category/category';\nimport {PredicateTreeMetadata} from '../models/persistance/generator-metadata';\nimport {NAE_BASE_FILTER} from '../models/base-filter-injection-token';\nimport {BaseFilter} from '../models/base-filter';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {CategoryFactory} from '../category-factory/category-factory';\nimport {FilterType} from '../../filter/models/filter-type';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {FilterMetadata} from '../models/persistance/filter-metadata';\nimport {FilterTextSegment} from '../models/persistance/filter-text-segment';\n\n/**\n * Holds information about the filter that is currently applied to the view component, that provides this services.\n */\n@Injectable()\nexport class SearchService implements OnDestroy {\n\n    /**\n     * {@link Filter} that is applied to the view, even if the user doesn't search anything.\n     */\n    protected _baseFilter: Filter;\n    /**\n     * Holds the {@link Predicate} tree root for user search queries.\n     */\n    protected _rootPredicate: EditableClausePredicateWithGenerators;\n    /**\n     * Holds the {@link Filter} that is currently being applied to the view.\n     */\n    protected _activeFilter: BehaviorSubject<Filter>;\n    /**\n     * Holds the full text {@link Filter} if set, `undefined` otherwise.\n     */\n    protected _fullTextFilter: SimpleFilter | undefined;\n    /**\n     * The index of a removed {@link Predicate} is emmited into this stream\n     */\n    protected _predicateRemoved$: Subject<PredicateRemovalEvent>;\n    protected _loadingFromMetadata$: LoadingEmitter;\n    /**\n     * The `rootPredicate` uses this stream to notify the search service about changes to the held query\n     */\n    private readonly _predicateQueryChanged$: Subject<void>;\n    private readonly subFilter: Subscription;\n\n    /**\n     * The {@link Predicate} tree root uses an [AND]{@link BooleanOperator#AND} operator to combine the Predicates.\n     * @param _log {@link LoggerService}\n     * @param _categoryFactory a {@link CategoryFactory} instance. This dependency is optional.\n     * It is required if we want to load predicate filter from saved metadata\n     * @param baseFilter Filter that should be applied to the view when no searching is being performed.\n     * Injected trough the {@link NAE_BASE_FILTER} injection token.\n     */\n    constructor(protected _log: LoggerService,\n                @Optional() protected _categoryFactory: CategoryFactory,\n                @Inject(NAE_BASE_FILTER) baseFilter: BaseFilter) {\n        if (baseFilter.filter instanceof Filter) {\n            this._baseFilter = baseFilter.filter.clone();\n        } else if (baseFilter.filter instanceof Observable) {\n            this._baseFilter = new SimpleFilter('', baseFilter.filterType, {process: {identifier: '__EMPTY__'}});\n        } else {\n            throw new Error('Unsupported BaseFilter input! You must provide the NAE_BASE_FILTER injection token with proper values!');\n        }\n\n        this._predicateQueryChanged$ = new Subject<void>();\n        this._rootPredicate = new EditableClausePredicateWithGenerators(BooleanOperator.AND, this._predicateQueryChanged$, undefined, true);\n        this._activeFilter = new BehaviorSubject<Filter>(this._baseFilter);\n        this._predicateRemoved$ = new Subject<PredicateRemovalEvent>();\n        this._loadingFromMetadata$ = new LoadingEmitter();\n\n        if (baseFilter.filter instanceof Observable) {\n            this.subFilter = baseFilter.filter.subscribe((filter) => {\n                this._baseFilter = filter.clone();\n                this.updateActiveFilter();\n            });\n        }\n\n        this.predicateQueryChanged$.subscribe(() => {\n            this.updateActiveFilter();\n        });\n    }\n\n    ngOnDestroy(): void {\n        this._predicateRemoved$.complete();\n        this._activeFilter.complete();\n        this._predicateQueryChanged$.complete();\n        if (this.subFilter) {\n            this.subFilter.unsubscribe();\n        }\n        this._loadingFromMetadata$.complete();\n        this._rootPredicate.destroy();\n    }\n\n    /**\n     * @returns the Filter that is currently applied to the view\n     */\n    public get activeFilter(): Filter {\n        return this._activeFilter.getValue();\n    }\n\n    /**\n     * @returns an `Observable` that updates every time the active Filter changes.\n     */\n    public get activeFilter$(): Observable<Filter> {\n        return this._activeFilter.asObservable();\n    }\n\n    /**\n     * @returns `true` if a filter other than the base filter is currently applied.\n     * Returns `false` if only the base filter is currently applied.\n     */\n    public get additionalFiltersApplied(): boolean {\n        return !this._rootPredicate.query.isEmpty || !!this._fullTextFilter;\n    }\n\n    /**\n     * @returns `true` if any visible predicates are applied.\n     * Returns `false` if there are no predicates, or if there are only hidden predicates applied\n     */\n    public get hasVisiblePredicates(): boolean {\n        for (const predicate of this._rootPredicate.getPredicateMap().values()) {\n            if (predicate.isVisible) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * @returns a copy of the base filter\n     */\n    public get baseFilter(): Filter {\n        return this._baseFilter.clone();\n    }\n\n    /**\n     * @returns an Observable that emits the index of the removed predicate whenever a predicate is removed\n     */\n    public get predicateRemoved$(): Observable<PredicateRemovalEvent> {\n        return this._predicateRemoved$.asObservable();\n    }\n\n    /**\n     * @returns the root predicate of the search service, that can be used to generate search requests with custom queries\n     */\n    public get rootPredicate(): EditableClausePredicateWithGenerators {\n        return this._rootPredicate;\n    }\n\n    /**\n     * @returns the type of the filter held in this search service instance\n     */\n    public get filterType(): FilterType {\n        return this.baseFilter.type;\n    }\n\n    /**\n     * @returns whether the search service is currently loading its state from metadata or not.\n     *\n     * See [loadFromMetadata()]{@link SearchService#loadFromMetadata}\n     */\n    public get loadingFromMetadata(): boolean {\n        return this._loadingFromMetadata$.value;\n    }\n\n    /**\n     * @returns an `Observable` that emits `true` if the search service is currently loading its state from metadata,\n     * emits `false` otherwise.\n     *\n     * See [loadFromMetadata()]{@link SearchService#loadFromMetadata}\n     */\n    public get loadingFromMetadata$(): Observable<boolean> {\n        return this._loadingFromMetadata$.asObservable();\n    }\n\n    /**\n     * @returns an Observable that emits whenever the root predicates query changes\n     */\n    protected get predicateQueryChanged$(): Observable<Query> {\n        return this._predicateQueryChanged$.asObservable().pipe(\n            map(() => this._rootPredicate.query),\n            distinctUntilChanged((prev, curr) => prev && prev.equals(curr))\n        );\n    }\n\n    /**\n     * Adds a {@link Predicate} to the Predicate root and updates the active Filter.\n     *\n     * Predicates added this way will not be visible in the search GUI.\n     * If you want to make sure your predicates are visible (and editable)\n     * use the [addGeneratedLeafPredicate()]{@link SearchService#addGeneratedLeafPredicate} method instead.\n     * @param newPredicate Predicate that should be added to the search queries.\n     * @returns the index of the added Predicate\n     */\n    public addPredicate(newPredicate: Predicate): number {\n        return this._rootPredicate.addPredicate(newPredicate, false);\n    }\n\n    /**\n     * Adds a new hidden branch of the predicate tree with a singular leaf node containing the provided Query.\n     *\n     * This can be used to add predicates to the search tree (think header search),\n     * which can be made visible and editable in the search GUI later.\n     * @param generator the generator that is in such state, that it generates the Query, that should be added as branch/leaf.\n     * If the generator doesn't currently generate a query a node with an empty query will be added.\n     */\n    public addGeneratedLeafPredicate(generator: Category<any>): number {\n        const branchId = this._rootPredicate.addNewClausePredicate(BooleanOperator.OR, false);\n        const branch = (\n            this._rootPredicate.getPredicateMap().get(branchId).getWrappedPredicate() as unknown as EditableClausePredicateWithGenerators\n        );\n        branch.addNewPredicateFromGenerator(generator);\n        return branchId;\n    }\n\n    /**\n     * Removes the {@link Predicate} object from the provided index. If the index is invalid does nothing.\n     * Updates the the active Filter if the Predicate tree was affected.\n     * @param index index of the Predicate that should be removed\n     * @param clearInput whether the input, that corresponds to the predicate should be cleared\n     */\n    public removePredicate(index: number, clearInput = true): void {\n        if (this._rootPredicate.removePredicate(index)) {\n            this._predicateRemoved$.next({index, clearInput});\n        }\n    }\n\n    /**\n     * Removes all {@link Predicate} objects that contribute to the search. Updates the active Filter if it was affected.\n     *\n     * @param clearHidden whether the hidden predicates should be cleared as well\n     */\n    public clearPredicates(clearHidden = false): void {\n        if (this._rootPredicate.getPredicateMap().size > 0) {\n            for (const [id, predicate] of this._rootPredicate.getPredicateMap().entries()) {\n                if (clearHidden || predicate.isVisible) {\n                    this.removePredicate(id);\n                }\n            }\n            this.updateActiveFilter();\n        }\n    }\n\n    /**\n     * Adds a {@link Filter} with the [fullText]{@link CaseSearchRequestBody#fullText} attribute set to the provided value.\n     * If full text filter is already set, it will be replaced.\n     * @param searchedSubstring value that should be searched on all full text fields\n     */\n    public setFullTextFilter(searchedSubstring: string): void {\n        const whiteSpacedSubstring = searchedSubstring.replace(/ /g, '\\\\ ');\n        this._fullTextFilter = new SimpleFilter('', this._baseFilter.type, {fullText: whiteSpacedSubstring});\n        this.updateActiveFilter();\n    }\n\n    /**\n     * Clears the full text filter (if set). If the full text filter is not set, does nothing.\n     */\n    public clearFullTextFilter(): void {\n        const wasFulltextSet = this._fullTextFilter !== undefined;\n        this._fullTextFilter = undefined;\n        if (wasFulltextSet) {\n            this.updateActiveFilter();\n        }\n    }\n\n    /**\n     * Shows the predicates with the given ids. Skips ids that don't exist.\n     * @param predicateIds the ids of the predicates that should be shown.\n     */\n    public show(predicateIds: Array<number>): void {\n        this._rootPredicate.showPredicates(predicateIds);\n    }\n\n    /**\n     * Reads the current query from the predicate tree, combines it with the base Filter and full text Filter (if set)\n     * and updates the active Filter.\n     */\n    protected updateActiveFilter(): void {\n        let additionalFilter: Filter;\n        if (!this._rootPredicate.query.isEmpty) {\n            additionalFilter = new SimpleFilter('', this._baseFilter.type, {query: this._rootPredicate.query.value});\n        }\n        if (this._fullTextFilter) {\n            if (additionalFilter) {\n                additionalFilter = additionalFilter.merge(this._fullTextFilter, MergeOperator.AND);\n            } else {\n                additionalFilter = this._fullTextFilter;\n            }\n        }\n        if (additionalFilter) {\n            this._activeFilter.next(this._baseFilter.merge(additionalFilter, MergeOperator.AND));\n        } else {\n            this._activeFilter.next(this._baseFilter.clone());\n        }\n    }\n\n    /**\n     * Loads whole new filter and search cases/tasks based on this filter\n     * @param newFilter whole new filter that should be used for search\n     */\n    public updateWithFullFilter(newFilter: Filter): void {\n        this._activeFilter.next(newFilter);\n    }\n\n    /**\n     * @returns `undefined` if the predicate tree contains no complete query.\n     * Otherwise returns the serialized form of the completed queries in the predicate tree.\n     */\n    public createPredicateMetadata(): PredicateTreeMetadata | undefined {\n        return this._rootPredicate.createGeneratorMetadata() as PredicateTreeMetadata;\n    }\n\n    /**\n     * Replaces the current predicate filter by the one corresponding to the provided generator metadata.\n     *\n     * The {@link CategoryFactory} instance must be provided for this service if we want to use this method. Logs an error and does nothing.\n     *\n     * The `filterType` of this search service must match the `filterType` of the provided metadata. Otherwise an error is thrown.\n     *\n     * @param metadata the serialized state of the predicate tree that should be restored to this search service\n     */\n    public loadFromMetadata(metadata: FilterMetadata) {\n        if (this._categoryFactory === null) {\n            this._log.error('A CategoryFactory instance must be provided for the SearchService'\n                + ' if you want to reconstruct a predicate filter from saved metadata');\n            return;\n        }\n\n        if (metadata.filterType !== this.filterType) {\n            throw Error(`The filter type of the provided metadata (${metadata.filterType\n            }) does not match the filter type of the search service (${this.filterType})!`);\n        }\n\n        this.clearPredicates(true);\n        this._loadingFromMetadata$.on();\n\n        const generatorObservables = [];\n        if (Array.isArray(metadata.predicateMetadata)) {\n            for (const clause of metadata.predicateMetadata) {\n                const branchId = this._rootPredicate.addNewClausePredicate(BooleanOperator.OR);\n                const branchPredicate = (\n                    this._rootPredicate.getPredicateMap().get(branchId)\n                        .getWrappedPredicate() as unknown as EditableClausePredicateWithGenerators\n                );\n                for (const predicate of clause) {\n                    const localBranchReference = branchPredicate;\n                    generatorObservables.push(\n                        this._categoryFactory.getFromMetadata(predicate).pipe(tap(generator => {\n                            localBranchReference.addNewPredicateFromGenerator(generator);\n                        }))\n                    );\n                }\n            }\n        }\n\n        forkJoin(generatorObservables).subscribe(() => {\n            this._loadingFromMetadata$.off();\n            this.updateActiveFilter();\n        });\n    }\n\n    /**\n     * @returns an Array of filter text segments that correspond to the currently displayed completed predicates\n     */\n    public createFilterTextSegments(): Array<FilterTextSegment> {\n        return this._rootPredicate.createFilterTextSegments();\n    }\n}\n","import {Component, Inject, OnDestroy} from '@angular/core';\nimport {NAE_FILTER_FIELD} from './models/filter-field-injection-token';\nimport {FilterField} from './models/filter-field';\nimport {SearchService} from '../../search/search-service/search.service';\nimport {filter, take} from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\n\n@Component({\n    selector: 'ncc-abstract-filtercontent-field',\n    template: ''\n})\nexport abstract class AbstractFilterFieldContentComponent implements OnDestroy {\n\n    public filterLoaded = false;\n\n    private readonly _searchServiceSub: Subscription;\n\n    protected constructor(@Inject(NAE_FILTER_FIELD) protected _filterField: FilterField,\n                          protected _fieldSearchService: SearchService) {\n        this._fieldSearchService.loadFromMetadata(this._filterField.filterMetadata);\n        this._searchServiceSub = this._fieldSearchService.loadingFromMetadata$.pipe(filter(loading => !loading), take(1)).subscribe(() => {\n            this.filterLoaded = true;\n        });\n    }\n\n    public get editable(): boolean {\n        return !!this._filterField.behavior.editable;\n    }\n\n    ngOnDestroy(): void {\n        if (this._searchServiceSub && !this._searchServiceSub.closed) {\n            this._searchServiceSub.unsubscribe();\n        }\n    }\n\n}\n","export enum Dashboard {\n    FILTER_TAB_VIEW_ID = 'filter-tab-view',\n    FILTER_CASE_VIEW_ID = 'filter-case-view',\n    FILTER_TASK_VIEW_ID = 'filter-task-view',\n    FILTER_TAB_VIEW_TITLE_KEY = 'tabTitle',\n    FILTER_TAB_VIEW_ICON_KEY = 'tabIcon',\n    FILTER_TAB_VIEW_COMPONENT_ID = 'filter-tab-view'\n}\n","import { Component, Type } from '@angular/core';\nimport { TabContent } from '../../tabs/interfaces';\n\nimport { Dashboard } from '../text-field/dashboard-portal-text-field/dashboard-view-constants';\nimport { FilterField } from './models/filter-field';\nimport {ComponentRegistryService} from \"../../registry/component-registry.service\";\n\n@Component({\n    selector: 'ncc-abstract-filter-field-tab-view',\n    template: ''\n})\nexport abstract class AbstractFilterFieldTabViewComponent {\n\n    public tabs: Array<TabContent>;\n\n    constructor(protected _registry: ComponentRegistryService,\n                protected _filterField: FilterField,\n                protected _tabContentComponent?: Type<any>,\n                protected _tabViewComponent?: Type<any>) {\n\n        this.tabs = [\n            {\n                label: {\n                    text: this._filterField.filterMetadata[Dashboard.FILTER_TAB_VIEW_TITLE_KEY] ?? this._filterField.title,\n                    icon: this._filterField.filterMetadata[Dashboard.FILTER_TAB_VIEW_ICON_KEY] ?? 'home'\n                },\n                canBeClosed: false,\n                tabContentComponent: this.tabContentComponent(),\n                injectedObject: {\n                    tabViewComponent: this.tabViewComponent(),\n                    tabViewOrder: 0,\n                }\n            }\n        ];\n    }\n\n    public tabContentComponent(): Type<any> {\n        let tabContentComponent: Type<any> = this._tabContentComponent;\n\n        if (!!this._registry.getType(Dashboard.FILTER_CASE_VIEW_ID)) {\n            tabContentComponent = this._registry.getType(Dashboard.FILTER_CASE_VIEW_ID)\n        }\n        return tabContentComponent;\n    };\n\n    public tabViewComponent(): Type<any> {\n        let tabViewComponent: Type<any> = this._tabViewComponent;\n\n        if (!!this._registry.getType(Dashboard.FILTER_TASK_VIEW_ID)) {\n            tabViewComponent = this._registry.getType(Dashboard.FILTER_TASK_VIEW_ID)\n        }\n        return tabViewComponent;\n    };\n}\n","import { AfterViewInit, Component, Inject, Injector} from '@angular/core';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { FilterField } from './models/filter-field';\nimport { NAE_BASE_FILTER } from '../../search/models/base-filter-injection-token';\nimport { SimpleFilter } from '../../filter/models/simple-filter';\nimport { FilterType } from '../../filter/models/filter-type';\nimport { NAE_VIEW_ID_SEGMENT } from '../../user/models/view-id-injection-tokens';\nimport { ViewIdService } from '../../user/services/view-id.service';\nimport { Dashboard } from '../text-field/dashboard-portal-text-field/dashboard-view-constants';\nimport { BaseFilter } from '../../search/models/base-filter';\nimport { NAE_FILTER_FIELD } from './models/filter-field-injection-token';\nimport { SearchService } from '../../search/search-service/search.service';\nimport { AbstractFilterFieldContentComponent } from './abstract-filter-field-content.component';\nimport {ComponentRegistryService} from \"../../registry/component-registry.service\";\n\n@Component({\n    selector: 'ncc-abstract-filter-field-tab-view-content',\n    template: ''\n})\nexport abstract class AbstractFilterFieldTabViewContentComponent extends AbstractFilterFieldContentComponent implements AfterViewInit {\n\n    public componentPortal: ComponentPortal<any>;\n\n    protected constructor(protected registry: ComponentRegistryService,\n                          protected injector: Injector,\n                          @Inject(NAE_FILTER_FIELD) filterField: FilterField,\n                          searchService: SearchService) {\n        super(filterField, searchService)\n    }\n\n    ngAfterViewInit(): void {\n        this.createFilter();\n        this._filterField.valueChanges().subscribe(() => {\n            this.createFilter();\n        });\n    }\n\n    createFilter() {\n        const portalInjector = Injector.create({\n            providers: [\n                {\n                    provide: NAE_FILTER_FIELD,\n                    useValue: this._filterField\n                },\n                {\n                    provide: NAE_BASE_FILTER,\n                    useValue: { filter: SimpleFilter.fromQuery({ query: this._filterField.value }, FilterType.CASE) } as BaseFilter\n                },\n                {\n                    provide: NAE_VIEW_ID_SEGMENT,\n                    useValue: this._filterField.parentCaseId + '_' + this._filterField.parentTaskId + '_' + this._filterField.stringId\n                },\n                { provide: ViewIdService, useClass: ViewIdService }],\n            parent: this.injector\n        });\n        this.componentPortal = this.registry.get(Dashboard.FILTER_TAB_VIEW_ID, portalInjector);\n    }\n}\n","import {Component, Inject, Injector, OnInit, Optional, StaticProvider} from \"@angular/core\";\nimport {ComponentPortal, ComponentType} from \"@angular/cdk/portal\";\nimport {AbstractFilterFieldContentComponent} from \"../abstract-filter-field-content.component\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {FilterField} from \"../models/filter-field\";\nimport {NAE_FILTER_FIELD} from \"../models/filter-field-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\n\n@Component({\n    selector: 'ncc-abstract-filter-default-field',\n    template: ''\n})\nexport abstract class AbstractFilterDefaultFieldComponent extends AbstractBaseDataFieldComponent<FilterField> implements OnInit {\n\n    public initialized: boolean;\n    public portal: ComponentPortal<AbstractFilterFieldContentComponent>;\n\n    constructor(protected _parentInjector: Injector,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<FilterField>) {\n        super(dataFieldPortalData);\n    }\n\n    ngOnInit() {\n        const providers: Array<StaticProvider> = [\n            {provide: NAE_FILTER_FIELD, useValue: this.dataField}\n        ];\n        const injector = Injector.create({providers, parent: this._parentInjector});\n        this.portal = new ComponentPortal(this.getFilterContentComponent(), null, injector);\n        this.initialized = true;\n    }\n\n    public get editable(): boolean {\n        return !!this.dataField.behavior.editable;\n    }\n\n    protected abstract getFilterContentComponent(): ComponentType<AbstractFilterFieldContentComponent>;\n}\n","import {Component, Inject, Input, Optional} from '@angular/core';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\nimport {I18nField} from './models/i18n-field';\n\n/**\n * @deprecated\n * */\n@Component({\n    selector: 'ncc-abstract-i18n-field',\n    template: ''\n})\nexport abstract class AbstractI18nFieldComponent extends AbstractDataFieldComponent {\n\n    @Input() dataField: I18nField;\n\n    constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\nimport {LanguageIcons} from './models/language-icons';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class LanguageIconsService {\n\n    /* eslint-disable */\n    /* tslint:disable */\n    private _languageIcons = {\n        xx: {\n            languageName: 'Default',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" stroke=\"rgb(67.843137%,70.980392%,74.117647%)\" stroke-width=\".04\" class=\"language-svg-icon\"><path d=\"M.02.02h23.957v17.957H.02zm0 0\" fill-rule=\"evenodd\" fill=\"rgb(100%,100%,100%)\"/><g fill=\"none\"><path d=\"M.02.02L23.98 17.98\"/><path d=\"M23.98.02L.02 17.98\"/></g></svg>')\n        },\n        sq: {\n            languageName: 'Albanian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(89.411765%,11.764706%,12.54902%)\"/><g fill=\"rgb(0%,0%,0%)\"><path d=\"M10.199 3.5c-.172 0-.461.055-.457.188-.488-.078-.535.117-.508.297.047-.07.102-.109.148-.113.063-.012.133.012.203.051s.125.094.18.156c-.172.039-.309.012-.441-.008a.66.66 0 0 1-.215-.09c-.059-.039-.074-.078-.16-.164-.102-.105-.211-.074-.18.086.082.152.211.219.375.25.082.012.199.035.336.035s.285-.016.367 0c-.051.031-.105.086-.219.105s-.281-.066-.387-.09c.012.086.125.168.344.215.359.074.656.133.855.242.156.09.293.207.406.348.176.203.188.367.195.402.039.332-.078.52-.297.578a.45.45 0 0 1-.367-.109c-.074-.082-.137-.223-.117-.449.016-.082.113-.312.031-.355a9.76 9.76 0 0 0-1.211-.566c-.094-.039-.168.09-.199.141a1.88 1.88 0 0 1-1.348-.887c-.16-.285-.426 0-.379.273.07.301.297.516.578.676.281.152.637.305.992.301.195.035.191.285-.039.332-.453 0-.816-.008-1.156-.336-.262-.238-.402.043-.332.199.129.492.828.633 1.539.473.277-.043.113.25.035.254-.297.211-.828.418-1.297 0-.211-.168-.359-.031-.277.207.207.617 1.004.484 1.547.188.137-.082.266.098.098.238-.68.473-1.016.48-1.324.301-.383-.156-.414.27-.187.41.25.152.891.039 1.363-.262.203-.148.211.086.082.18-.559.484-.777.613-1.359.535-.289-.023-.285.332-.059.473.309.188.918-.125 1.387-.52.199-.105.23.066.133.273a2.02 2.02 0 0 1-.816.676c-.262.102-.512.086-.687.027-.215-.078-.242.148-.121.352.07.125.367.16.688.047s.668-.383.906-.691c.203-.184.184.059.086.23-.473.75-.91 1.027-1.48.984-.254-.047-.312.148-.152.336.285.234.637.227.953-.008.273-.262.801-.84 1.078-1.145.195-.156.262 0 .199.313-.051.18-.18.375-.535.512-.242.137-.059.328.121.336.102 0 .305-.121.461-.293.203-.23.219-.387.328-.746.105-.172.297-.09.297.09-.094.359-.168.426-.355.57-.176.168.125.227.227.156.289-.195.395-.453.492-.684.074-.164.277-.086.18.188-.223.652-.598.906-1.246 1.043-.066.012-.105.047-.082.121l.262.266-1.133.297-.555-.367c-.051-.117-.074-.305-.367-.176-.195-.09-.289-.055-.398.039.156 0 .227.043.289.117.082.211.27.234.461.176.125.102.187.184.316.289l-.629-.02c-.223-.238-.398-.227-.555-.039-.125.02-.172.02-.254.164.129-.051.211-.066.266-.008.238.137.391.105.508 0l.656.039c-.082.074-.195.113-.281.18-.34-.098-.52.039-.578.313-.047.109-.062.23-.047.348.031-.113.086-.207.184-.262.301.074.414-.051.434-.23.148-.117.367-.145.512-.266l.43.145c.059.188.199.258.422.207.262.008.219.121.242.207.074-.121.07-.246-.094-.359-.062-.16-.195-.234-.367-.141-.168-.047-.207-.113-.375-.164l1.121-.293.285.258c.059.031.109.039.145 0 .258-.375.375-.703.609-.949.094-.105.211-.242.34-.273.063-.02.141-.008.195.047.047.055.09.156.074.309-.027.215-.078.285-.141.414s-.133.207-.211.309c-.152.199-.355.316-.473.395-.242.152-.34.086-.527.074-.238.027-.297.145-.105.305.184.098.348.109.48.082.113-.023.25-.168.348-.246.105-.125.285.023.16.168-.223.262-.437.434-.711.43-.289.039-.234.199-.047.277.344.141.652-.121.809-.297.121-.133.207-.137.188.07-.121.371-.285.512-.555.531-.215-.023-.219.152-.059.262.359.25.621-.18.746-.434.086-.234.223-.125.234.066 0 .262-.109.465-.422.73L12 14.5l.719-8.023L12 5.211c-.074-.066-.328-.367-.395-.41-.027-.023-.035-.039-.004-.055a1.25 1.25 0 0 1 .168-.035c-.148-.156-.285-.203-.57-.285.07-.031.137-.016.348-.023a1.15 1.15 0 0 0-.508-.383c.16-.113.188-.121.348-.25-.25-.02-.496-.066-.734-.145-.141-.066-.293-.109-.449-.125zm.031.313c.141 0 .227.051.227.109s-.086.109-.227.109-.234-.055-.234-.113.09-.105.234-.105zm0 0\"/><path d=\"M13.801 3.5c.172 0 .461.055.457.188.488-.078.535.117.508.297-.047-.07-.102-.109-.148-.113-.062-.012-.133.012-.203.051s-.125.094-.18.156c.172.039.309.012.441-.008a.66.66 0 0 0 .215-.09c.059-.039.074-.078.16-.164.102-.105.211-.074.18.086-.082.152-.211.219-.375.25-.082.012-.199.035-.336.035s-.285-.016-.367 0c.051.031.105.086.219.105s.281-.066.387-.09c-.012.086-.125.168-.344.215-.359.074-.656.133-.855.242-.156.09-.293.207-.406.348-.176.203-.187.367-.195.402-.039.332.078.52.297.578a.45.45 0 0 0 .367-.109c.074-.082.137-.223.117-.449-.016-.082-.113-.312-.031-.355a9.76 9.76 0 0 1 1.211-.566c.094-.039.168.09.199.141a1.88 1.88 0 0 0 1.348-.887c.16-.285.426 0 .379.273-.07.301-.297.516-.578.676-.281.152-.637.305-.992.301-.195.035-.191.285.039.332.453 0 .816-.008 1.156-.336.262-.238.402.043.332.199-.129.492-.828.633-1.539.473-.277-.043-.113.25-.035.254.297.211.828.418 1.297 0 .211-.168.359-.031.277.207-.207.617-1.004.484-1.547.188-.137-.082-.266.098-.098.238.68.473 1.016.48 1.324.301.383-.156.414.27.188.41-.25.152-.891.039-1.363-.262-.203-.148-.211.086-.082.18.559.484.777.613 1.359.535.289-.023.285.332.059.473-.309.188-.918-.125-1.387-.52-.199-.105-.23.066-.133.273a2.02 2.02 0 0 0 .816.676c.262.102.512.086.688.027.215-.078.242.148.121.352-.07.125-.367.16-.687.047s-.668-.383-.906-.691c-.203-.184-.184.059-.086.23.473.75.91 1.027 1.48.984.254-.047.313.148.152.336-.285.234-.637.227-.953-.008-.273-.262-.801-.84-1.078-1.145-.195-.156-.262 0-.199.313.051.18.18.375.535.512.242.137.059.328-.121.336-.102 0-.305-.121-.461-.293-.203-.23-.219-.387-.328-.746-.105-.172-.297-.09-.297.09.094.359.168.426.355.57.176.168-.125.227-.227.156-.289-.195-.395-.453-.492-.684-.074-.164-.277-.086-.18.188.223.652.598.906 1.246 1.043.066.012.105.047.082.121l-.262.266 1.133.297.555-.367c.051-.117.074-.305.367-.176.195-.09.289-.055.398.039-.156 0-.227.043-.289.117-.082.211-.27.234-.461.176-.125.102-.187.184-.316.289l.629-.02c.223-.238.398-.227.555-.039.125.02.172.02.254.164-.129-.051-.211-.066-.266-.008-.238.137-.391.105-.508 0l-.656.039c.082.074.195.113.281.18.34-.098.52.039.578.313.047.109.063.23.047.348-.031-.113-.086-.207-.184-.262-.301.074-.414-.051-.434-.23-.148-.117-.367-.145-.512-.266l-.43.145c-.059.188-.199.258-.422.207-.262.008-.219.121-.242.207-.074-.121-.07-.246.094-.359.063-.16.195-.234.367-.141.168-.047.207-.113.375-.164l-1.121-.293-.285.258c-.059.031-.109.039-.145 0-.258-.375-.375-.703-.609-.949-.094-.105-.211-.242-.34-.273-.062-.02-.141-.008-.195.047-.047.055-.09.156-.074.309.027.215.078.285.141.414s.133.207.211.309c.152.199.355.316.473.395.242.152.34.086.527.074.238.027.297.145.105.305-.184.098-.348.109-.48.082-.113-.023-.25-.168-.348-.246-.105-.125-.285.023-.16.168.223.262.438.434.711.43.289.039.234.199.047.277-.344.141-.652-.121-.809-.297-.121-.133-.207-.137-.187.07.121.371.285.512.555.531.215-.023.219.152.059.262-.359.25-.621-.18-.746-.434-.086-.234-.223-.125-.234.066 0 .262.109.465.422.73L12 14.5l-.719-8.023L12 5.211c.074-.066.328-.367.395-.41.027-.023.035-.039.004-.055a1.25 1.25 0 0 0-.168-.035c.148-.156.285-.203.57-.285-.07-.031-.137-.016-.348-.023a1.15 1.15 0 0 1 .508-.383c-.16-.113-.187-.121-.348-.25.25-.02.496-.066.734-.145.141-.066.293-.109.449-.125zm-.031.313c-.141 0-.227.051-.227.109s.086.109.227.109.234-.055.234-.113-.09-.105-.234-.105zm0 0\"/></g></svg>')\n        },\n        ar: {\n            languageName: 'Arabic',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.ar-B{stroke:rgb(75.294118%,57.647059%,0%)}.ar-C{fill:rgb(100%,100%,100%)}.ar-D{stroke-width:.039}.ar-E{fill:rgb(75.294118%,57.647059%,0%)}.ar-F{stroke-width:.036}.ar-G{stroke-linejoin:round}.ar-H{stroke-width:.033}.ar-I{stroke-width:.027}]]></style><path d=\"M0 12h24v6H0zm0 0\" fill=\"rgb(0%,0%,0%)\"/><path d=\"M0 6h24v6H0zm0 0\" class=\"ar-C\"/><path d=\"M0 0h24v6H0zm0 0\" fill=\"rgb(80.784314%,6.666667%,14.901961%)\"/><path d=\"M12.023 9.07l2.055 1.91-.145-3.465c-.023-.527-.48-.406-.812-.215-.332.215-.719.215-1.121.074-.406.141-.789.141-1.121-.074-.332-.191-.789-.313-.812.215l-.145 3.465zm0 0\" class=\"ar-B ar-C ar-D ar-G\"/><g class=\"ar-E\"><path d=\"M10.305 7.395l-.145 3.371-.238.215.145-3.465a.81.81 0 0 1 .238-.121zm.289.242l-.121 2.816-.238.246.145-3.254c.047.047.188.164.215.191zm.262.215l-.094 2.352-.195.188.121-2.68.168.141zm.285.121l-.094 2.004-.191.152.094-2.23c.047.023.141.074.191.074zm.262 0l-.066 1.668-.195.191.074-1.84c.043 0 .168 0 .188-.02zm2.292-.578l.145 3.371.238.215-.145-3.465a.81.81 0 0 0-.238-.121zm-.289.242l.121 2.816.238.246-.145-3.254c-.047.047-.187.164-.215.191zm-.262.215l.094 2.352.195.188-.121-2.68-.168.141zm-.285.121l.094 2.004.191.152-.094-2.23c-.047.023-.141.074-.191.074zm-.262 0l.066 1.668.195.191-.074-1.84c-.043 0-.168 0-.187-.02zm0 0\"/><path d=\"M12.098 9.449l.285 1.316-.094.094-.102-.074-.16-1.172.07 1.172-.098.121-.094-.121.07-1.172-.164 1.172-.102.074-.094-.094.285-1.312h.195zm0 0\" class=\"ar-B ar-H\"/></g><g class=\"ar-G ar-B\"><path d=\"M11.355 8.875l-.574 2.031.789.117.332-1.527zm0 0\" class=\"ar-C ar-F\"/><g fill=\"none\" class=\"ar-D\"><path d=\"M11.164 9.57l.07.164.371-.352\"/><path d=\"M11.426 9.148l.078.73.234-.313m-.094.121l.129.449m.051-.164l-.262.395m.082.398l-.086-.398-.07-.402-.18.238-.074-.273-.246.254.125.453.172-.281.094.289.18-.277m-.61.492l.16-.223.102.344.145-.242.094.289\"/></g><path d=\"M12.645 8.875l.574 2.031-.789.117-.332-1.527zm0 0\" class=\"ar-C ar-F\"/><g fill=\"none\" class=\"ar-D\"><path d=\"M12.836 9.57l-.07.164-.371-.352\"/><path d=\"M12.574 9.148l-.078.73-.234-.313m.094.121l-.129.449m-.051-.164l.262.395m-.082.398l.086-.398.07-.402.18.238.074-.273.246.254-.125.453-.172-.281-.094.289-.18-.277m.61.492l-.16-.223-.102.344-.145-.242-.094.289\"/></g><g stroke-linecap=\"round\" class=\"ar-C\"><path d=\"M12 11.813c.602 0 1.172-.047 1.508-.141.141-.027.141-.098.141-.195.141-.047.07-.215.168-.215-.102.031-.117-.164-.238-.141 0-.168-.172-.187-.313-.141-.285.094-.789.117-1.266.117-.48-.023-.977-.023-1.266-.121-.141-.043-.309-.023-.309.145-.121-.023-.141.168-.242.141.102 0 .027.172.168.215 0 .098 0 .168.145.195.332.094.906.141 1.504.141zm0 0\" stroke-width=\".072\"/><g class=\"ar-D\"><path d=\"M11.188 10.906c.191.027.406.047.574.027.098 0 .168.164-.027.188a2.49 2.49 0 0 1-.57-.023l-.551-.121c-.168-.07-.047-.211.047-.191a3.44 3.44 0 0 0 .527.121zm1.625 0c-.191.027-.406.047-.57.027-.102 0-.172.164.023.188a2.48 2.48 0 0 0 .57-.023l.551-.121c.168-.07.047-.211-.047-.191a3.44 3.44 0 0 1-.527.121zm0 0\"/><path d=\"M10.59 10.813c-.145-.027-.211.141-.164.238.02-.051.121-.051.141-.098.027-.07-.02-.07.027-.141zm.574.441c0-.098.094-.086.094-.18 0-.047-.023-.121-.07-.121s-.094.043-.098.098c-.02.09.074.105.074.203zm.684-.273c.141 0 .125.188.059.285 0-.07-.121-.098-.121-.145 0-.07.109-.07.062-.141zm1.559-.168c.148-.027.215.141.168.238-.02-.051-.121-.051-.141-.098-.027-.07.02-.07-.027-.141zm-.566.437c0-.098-.098-.086-.098-.18 0-.047.027-.121.074-.121s.094.047.094.098c.023.094-.074.105-.074.203zm-.691-.27c-.141 0-.125.188-.059.285 0-.07.121-.098.121-.145 0-.07-.109-.07-.062-.141zm0 0\"/></g><path d=\"M10.641 10.859c.047 0 .121.023.141.047zm.238.074c.023 0 .117.02.164.047zm.855.094c-.043 0-.141 0-.164.023l.164-.027zm-.258 0c-.027-.027-.121-.027-.168 0zm1.883-.168c-.051 0-.102.02-.141.047zm-.234.074a.46.46 0 0 0-.168.047zm-.859.094c.043 0 .141 0 .168.023l-.168-.027zm.258 0c.027-.027.121-.027.168 0zm0 0\" class=\"ar-I\"/></g></g><g class=\"ar-E\"><path d=\"M10.598 11.238c-.012-.004-.023-.02-.016-.031.004-.02.016-.027.027-.023s.027.02.027.023l-.012.023h-.004c0 .008-.012.008-.023.008zm1.652.117c-.008 0-.02-.016-.02-.02 0-.016.02-.031.031-.031l.023.012c.008.008.008.027-.004.035-.004.008-.023.008-.031 0zm.008.074c-.012-.004-.016-.012-.02-.023s0-.02.016-.027l.012-.008.012.008c.012.008.023.012.023.023s-.012.02-.023.023zm0 0\"/><path d=\"M10.734 11.102c-.012 0-.027.012-.035.016-.02.004-.043.016-.062 0-.016-.004-.039 0-.043.023.004.023.027.031.047.02.012-.016.047-.027.051 0-.016.023-.012.051-.023.07 0 .016-.008.027-.016.039-.016 0-.031 0-.043.012-.016 0-.035.008-.047.023s-.023.035-.027.059c.004.02.031.023.051.027l.059.02.094.027.145.031.016.004c.023.004.031-.016.031-.031l.031-.105c.004-.016.012-.047-.016-.039-.012.008-.027.023-.047.023-.027 0-.012.027 0 .039 0 .016-.004.039-.016.051s-.035 0-.055-.004c-.012 0-.051-.008-.035-.031l.016-.055c.008-.016.008-.039.016-.059-.012-.02-.031.008-.047.012s-.047.008-.027.031c.016.012.004.031 0 .051s-.023.031-.043.02c-.02 0-.047-.016-.031-.031l.016-.055.023-.059c0-.023.008-.039.016-.055 0-.023.016-.039.016-.062zm-.113.219v.023c-.016-.012-.016-.016-.008-.02zm-.027.148c-.016-.012-.012-.02.008-.039.012-.004.016-.004.027.004.02.016.02.023 0 .039-.023.004-.027.004-.035 0zm.09.031c-.016-.004-.023-.02-.02-.035s.012-.016.027-.016c.023 0 .023.004.027.023 0 .012 0 .016-.008.02s-.016.008-.023.008zm2.676 0c-.008-.027-.004-.035.016-.043s.027-.008.035.008.008.023-.004.035c-.004.008-.008.008-.023.008s-.02 0-.023-.004zm-2.551.035c-.012 0-.02-.012-.02-.023s0-.012.008-.02l.02-.004h.016c.016.016.02.027.012.039s-.02.012-.039.008zm.656.031l-.008-.012c0-.016 0-.031.008-.051 0-.016 0-.027.004-.043l.012-.086c0-.016 0-.027.008-.039 0-.027 0-.047.004-.066 0-.012.012-.031.02-.02.012.02.027.031.043.047.012.008 0 .02-.012.023s-.016.016-.016.027l-.004.039c0 .02 0 .039-.008.059v.055l-.008.035c0 .012 0 .027-.012.031s-.023.008-.031 0zm.891-.297l-.039.039c-.02.012.012.02.016.031.008.02.008.035.008.055s.008.031.004.051-.023.016-.035.027c-.016.004-.02.02-.031.031-.004.012-.008.031-.012.047s-.008.027 0 .043l.004.004h.016l.043-.004.113-.008.066-.008c.016.004.027-.012.027-.027-.012-.023-.004-.043-.012-.062s-.004-.043-.008-.062-.02-.027-.031-.016-.027.016-.035.027c-.008.02.02.02.023.031l.004.047c.004.016-.016.016-.031.02s-.035.008-.043-.008-.008-.031-.008-.047c0-.031-.008-.055-.008-.082s-.008-.062-.008-.094c0-.016-.004-.035-.023-.035zm-.02.246h.008v.023l-.008.004c-.023-.004-.023-.012-.016-.02zm-.898-.273c-.012 0-.027.02-.039.016-.027.004-.023.031 0 .039v.023c0 .027-.012.047-.012.07s-.008.051-.008.078c-.008.027-.008.055-.012.082s-.02.016-.035.008v-.031c.004-.023-.016-.031-.035-.035s-.031-.016-.027-.031c.012-.012.031-.012.047-.012.031.008.027-.031.012-.047s-.035-.031-.043-.047a.08.08 0 0 0-.035-.062c-.031-.004-.059.023-.07.055-.016 0-.027.004-.039.012-.023.004-.051.039-.023.055.016.004.066.016.043.035-.012.027-.035.027-.059.02-.02 0-.043-.012-.043-.035s-.004-.047-.012-.07-.035-.016-.035.008c-.023.016-.02.039-.004.059.008.02 0 .047-.012.066-.004.031-.035.031-.055.035-.008.008-.047 0-.035.023.023.008.051.012.074.008s.043-.023.059-.043.043-.004.066-.004.047.012.07 0c.004-.012.035-.043.043-.012 0 .023.023.035.047.035s.016.016.016.035c0 .027.02.043.043.055h.023c.023-.012.047-.02.055-.043s.008-.047.016-.066a.45.45 0 0 0 .012-.102c.008-.031.008-.062.012-.098l.008-.066zm-.203.121c.008.027.012.035.023.039v.008l-.027.008c-.012 0-.027-.008-.035-.016l-.004-.004.023-.023c.008-.008.016-.012.02-.012zm1.98-.234c-.016 0-.035.004-.051.008-.031 0-.047.027-.016.047.02.047.047-.012.074-.004.043.004.047.051.055.09 0 .031.012.066.023.098.027.031-.023.055-.043.031s-.062-.047-.082-.02c-.027.012-.031.047-.051.059-.035.012-.039-.035-.059-.051-.02-.027-.051-.031-.078-.039-.012-.027-.008-.07-.031-.09-.023.012-.066.051-.031.074s-.016.039-.027.059c-.027.027-.031.059-.031.09-.039.023-.047-.023-.051-.051s-.031-.023-.051-.012c-.031.012-.043.039-.062.059v.063c.008.027.039.016.055.012.031-.012.043.02.02.039s-.066.008-.059.043h.047c.031-.012.066-.035.07-.07s.051-.027.074-.035.066-.012.078.031c.02.02.066.047.09.016.023-.016.035-.043.031-.07s.039-.023.051-.008c.016.023.063.02.086 0s.031-.047.066-.047l.164-.047c.043-.008-.008-.035-.02-.055-.027-.012-.059.051-.094.02-.031-.02-.027-.059-.039-.094-.008-.043-.004-.09-.035-.121-.016-.02-.047-.023-.074-.023zm-.203.281c.027.016.035.027.035.039l-.023.016c-.008 0-.02-.012-.02-.016v-.012zm.195.016c.012 0 .016 0 .023.008s0 .016-.012.023l-.016.008-.012-.012c-.008-.02.004-.027.016-.031zm-.27 0c.016.012.02.012.02.023v.016c0 .012 0 .008-.02.008s-.02 0-.02-.02c0-.012 0-.016.008-.02zm-.164.043c.012.02.012.027.008.031-.012.004-.023.004-.031 0v-.016l.008-.008zm.277.035l.016.004v.02h-.039v-.008zm-.516.145c0-.016.016-.016.023-.023.016-.008.031-.016.043-.031 0-.012.012-.016.012-.027l-.004-.043c-.004-.012-.012-.023-.023-.031s-.023-.004-.023-.016.008-.02.012-.027l.016-.039c.012-.008.023 0 .023.008l.016.031c.012.008.016.016.02.027s.012.023.012.031l.004.039c0 .016 0 .031-.004.047l-.02.023c-.008.012-.016.02-.027.023s-.016.012-.027.012h-.047zm-.207.012c-.008-.027-.008-.027 0-.035.016-.012.02-.012.043 0s.031.012.031.004.016-.016.031-.016c.02.012.023.016.023.027s0 .016-.012.023-.008.008-.02.008-.02-.008-.023-.02h-.012c-.008 0-.02.008-.023.016l-.016.004c-.012 0-.012 0-.023-.012zm-.594-.266c-.02 0-.039.016-.043.039.004.02.023.043.012.066.008.027-.023.039-.047.027-.012-.031-.016-.062-.039-.09-.023-.008-.031.031-.051.047.012.02.035.043.039.07s-.012.059-.035.07c-.02.02-.051.016-.074.02-.031.016.02.023.035.023.031.004.063 0 .09-.023.023-.012.02-.051.047-.055l.145.008c.023.008.063-.004.078.016 0 .031.031.055.059.066.016.004.031-.016.043-.02.031-.008.023-.043.039-.059h.152c.004 0 .008-.016.016-.023l-.004-.055c-.008-.023 0-.055-.016-.074-.027-.008-.047.016-.07.016-.031.012-.051.039-.055.07-.016.027-.043-.008-.031-.031l-.004-.027c-.012-.016-.039-.012-.062-.012l-.09-.008c-.027 0-.055.004-.082-.004-.027 0-.027-.027-.027-.055-.008-.004-.016-.004-.023-.004zm.063.109l.027.004h.039c.031.008.063.008.09.008.008 0 .016.004.02.012v.059c0 .008 0 .02-.004.023-.016.004-.023 0-.027-.008v-.043c-.008-.004-.016-.008-.023-.008l-.078-.004-.059-.004c-.008-.004-.02 0-.027-.012-.008-.004.004-.016.012-.02s.02-.008.031-.008zm.34.012l.012.023c-.023.012-.039.012-.043.004zm0 0\"/></g><g class=\"ar-B ar-C\"><path d=\"M12 9.816c.977-.75.895-1.855.895-1.855l-.074.008c-.207 0-.699-.121-.812-.27-.117.137-.621.273-.828.273l-.074-.012S11.02 9.062 12 9.816zm0 0\" class=\"ar-H\"/><path d=\"M12.816 8.039h-.023c-.187 0-.617-.094-.785-.234-.176.129-.617.238-.801.238-.008 0-.016 0-.023-.004a2.27 2.27 0 0 0 .078.563c.121.441.379.832.738 1.113a2.15 2.15 0 0 0 .738-1.117c.051-.18.074-.367.078-.559zm0 0\" class=\"ar-I\"/></g><path d=\"M11.684 7.949c-.164.055-.332.082-.5.09l.004.125c.008.145.035.293.074.434.082.297.223.57.422.805zm.617 0v1.477c.203-.238.355-.523.438-.828a2.34 2.34 0 0 0 .074-.434l.004-.121h-.023a1.72 1.72 0 0 1-.492-.098zm0 0\" class=\"ar-E\"/><g class=\"ar-B\"><path d=\"M12.367 7.59c.023.004-.023-.105-.023-.105.051.055.25.07.25.07-.121-.055-.238-.453-.227-.773s-.043-.445-.09-.492c-.059-.063-.254-.113-.379-.121-.074-.004-.059.055-.059.055-.137-.035-.273-.047-.332-.008s-.066.227-.023.191c.098-.078.188-.004.246.082.055.074.051.293-.027.547-.07.191-.172.371-.301.531.121 0 .289-.105.289-.105l-.039.164c.125-.059.227-.152.227-.152l.117.125c.039-.051.121-.125.121-.125a.43.43 0 0 0 .25.121zm0 0\" class=\"ar-C ar-F\"/><path d=\"M11.883 6.828s-.066.492-.191.629m.301-.645s-.031.5-.113.66m.207-.637l.027.637m.09-.613s.023.461.141.625\" fill=\"none\" class=\"ar-D\"/><g stroke-width=\".009\" class=\"ar-E\"><path d=\"M11.762 6.59c-.004-.035-.016-.07-.031-.102-.059-.09-.148-.16-.246-.082 0 0 .031-.102.109-.105.051-.004.18.043.297.234 0 0-.086-.02-.105 0-.039.027-.023.055-.023.055zm0 0\"/><path d=\"M11.473 6.277c.008-.027.02-.051.039-.063.059-.039.191-.027.328.008 0 0-.016-.059.059-.055.125.008.316.059.379.121.02.02.031.043.043.07-.031-.043-.113-.039-.133-.035-.031.004-.051 0-.094.012-.023.008-.051.012-.07.023-.012.012-.023.047-.043.047-.027 0-.027-.004-.039-.012-.008-.016-.012-.035-.027-.031-.027.004-.082-.02-.148-.074s-.094-.066-.18-.063-.113.059-.113.059zm0 0\"/></g></g><path d=\"M12 6.32c0 .02-.016.035-.035.035s-.035-.016-.035-.035.016-.035.035-.035.035.016.035.035zm0 0\" class=\"ar-C\"/></svg>')\n        },\n        hy: {\n            languageName: 'Armenian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v6H0zm0 0\" fill=\"rgb(100%,0%,0%)\"/><path d=\"M0 6h24v6H0zm0 0\" fill=\"rgb(0%,0%,100%)\"/><path d=\"M0 12h24v6H0zm0 0\" fill=\"rgb(100%,64.705882%,0%)\"/></svg>')\n        },\n        az: {\n            languageName: 'Azerbaijani',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.az-B{fill:rgb(92.941176%,16.078431%,22.352941%)}.az-C{fill:rgb(100%,100%,100%)}]]></style><path d=\"M.004 0h24v18h-24zm0 0\" fill=\"rgb(24.705882%,61.176471%,20.784314%)\"/><path d=\"M.004 0h24v12h-24zm0 0\" class=\"az-B\"/><path d=\"M.004 0h24v6h-24zm0 0\" fill=\"rgb(0%,72.54902%,89.411765%)\"/><path d=\"M14.102 9a2.7 2.7 0 1 1-5.402 0 2.7 2.7 0 1 1 5.402 0zm0 0\" class=\"az-C\"/><path d=\"M14.25 9a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 1 1 4.5 0zm0 0\" class=\"az-B\"/><path d=\"M14.398 7.5l.289.805.773-.367-.367.777.805.285-.805.289.367.773-.773-.367-.289.805-.289-.805-.77.367.367-.773L12.898 9l.809-.289-.367-.773.77.367zm0 0\" class=\"az-C\"/></svg>')\n        },\n        be: {\n            languageName: 'Belarusian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" fill-rule=\"evenodd\" class=\"language-svg-icon\"><path d=\"M0 0h36.004v11.957H0zm0 0\" fill=\"rgb(69.803922%,0%,0%)\"/><path d=\"M0 11.957h36.004V18H0zm0 0\" fill=\"rgb(25.882353%,62.352941%,0%)\"/><path d=\"M0 0h3.988v18H0zm0 0\" fill=\"rgb(100%,100%,100%)\"/><g fill=\"rgb(69.803922%,0%,0%)\"><path d=\"M.191.305h.188v.309H.191zm.566 0h.57v.309h-.57zM.949 0h.191v.305H.949zm.949 0h.191v.305h-.191zm.758.305h.57v.309h-.57zM2.848 0h.191v.305h-.191zM.57.613h.379v.301H.57zm.57 0h.379v.301h-.379zm1.328 0h.379v.301h-.379zm.57 0h.379v.301h-.379zM.379.914h.379v.305H.379zm.949 0h.379v.305h-.379zm.949 0h.379v.305h-.379zm.949 0h.379v.305h-.379zm.379-.609h.191v.309h-.191zm-3.414.914H.57v.309H.191zm1.328 0h.379v.309H1.52zm1.898 0h.379v.309h-.379zm-3.039.914h.379v.309H.379zm.191.309h.379v.305H.57zm.758-.305h.379v.305h-.379zm-.187.305h.379v.305h-.379zm-.383.305h.57v.305h-.57zm0 0\"/><path d=\"M.949 3.051h.191v.309H.949zm1.328-.914h.379v.305h-.379zm.191.305h.379v.305h-.379zm.758-.305h.379v.305h-.379zm-.187.305h.379v.305h-.379zm-.383.305h.57v.305h-.57zm.191.305h.191v.309h-.191zm-.949-.309h.191v.305h-.191zM0 2.742h.191v.305H0zm3.797 0h.191v.305h-.191zM.949 4.27h.191v.305H.949zm-.191.309h.57v.301h-.57zm-.187.301h.949v.309H.57zm2.277-.605h.191v.305h-.191zm-.191.305h.57v.301h-.57zm-.187.301h.949v.305h-.949zm.188 1.527h.949v.305h-.949zm-.379-1.219h1.328v.305H2.277zm-1.898 0h1.328v.305H.379zM.57 6.711h.57v.305H.57zm-.191-.305h.949v.305H.379zm2.66-.605h.949v.305h-.949zm-.191.914h.57v.305h-.57zm0 0\"/><path d=\"M.758 7.016h.191v.309H.758zm2.281 0h.188v.309h-.187zM0 5.797h.949v.305H0zm1.707.609h.57v.305h-.57zm.191.309h.191v.305h-.191zm-.57-.914h1.328v.305H1.328zm.762-4.582h.379v.309H2.09zm-.383.309h.57v.305h-.57zm-.187.305h.379v.301H1.52zm.57 0h.379v.301H2.09zM0 1.527h.379v.305H0zm.191.305H.57v.301H.191zm3.414-.305h.383v.301h-.383zm-.187.301h.379v.301h-.379zM0 4.57h.191v.305H0zm3.797 0h.191v.305h-.191zm-2.09 2.445h.57v.305h-.57zm-.187.305h.379v.301H1.52zm.57 0h.379v.301H2.09zm-.762.301h.379v.305h-.379zm.949 0h.379v.305h-.379zm-1.137.305h.379v.309h-.379zm1.328 0h.379v.309h-.379zm-1.52.313h.379v.305H.949zm1.707 0h.383v.305h-.383zM.57 8.543h.57v.305H.57zm2.277 0h.57v.305h-.57zm.379-.305h.379v.305h-.379zm.191-.309h.379v.309h-.379zm.188-.305h.383v.305h-.383zm-3.227.613h.379v.305H.379zM.191 7.93H.57v.309H.191zM0 7.629h.379v.305H0zm.758 1.223h.191v.305H.758zm2.281 0h.188v.305h-.187zm-1.141-.914h.191v.305h-.191zm-.57.914h.191v.305h-.191zm1.141 0h.188v.305h-.187zm-.57 0h.191v.305h-.191zM0 8.852h.191v.305H0zm3.797 0h.191v.305h-.191zM1.898 4.578h.191v.301h-.191zM.949 1.527h.191v.305H.949zm1.898 0h.191v.305h-.191zM1.707 3.66h.57v.305h-.57zm-.379.305h.57v.309h-.57zm.191.309h.188v.305H1.52zm-.379-.613h.379v.305h-.379zm.188-.301h.57v.301h-.57zm.191-.309h.188v.309H1.52zm.57.309h.566v.301H2.09zm.188-.309h.191v.309h-.191zm.191.609h.379v.305h-.379zm-.379.305h.566v.309H2.09zm.188.309h.191v.305h-.191zm.762-.613h.379v.305h-.379zm.188-.301h.57v.301h-.57zm.379.301h.383v.305h-.383zm-.379.305h.57v.309h-.57zm.191.309h.188v.305h-.187zm0-1.223h.188v.309h-.187zM0 3.656h.379v.305H0zm.191-.301h.566v.301H.191zm.379.301h.379v.305H.57zm-.379.305h.566v.309H.191zm0 0\"/><path d=\"M.379 4.273H.57v.305H.379zm0-1.223H.57v.309H.379zM.191 5.492h.758v.305H.191zm.949 0h.758v.305h-.758zm.949 0h.758v.305H2.09zm.949 0h.758v.305h-.758zm-1.52.609h.949v.305H1.52zm-1.328 0h.949v.305H.191zm2.656 0h.949v.305h-.949zm.949 1.223h.191v.301h-.191zM0 7.324h.191v.301H0zm.191 10.371h.188v-.305H.191zm.566 0h.57v-.305h-.57zM.949 18h.191v-.305H.949zm.949 0h.191v-.305h-.191zm.758-.305h.57v-.309h-.57zm.191.305h.191v-.305h-.191zM.57 17.387h.379v-.301H.57zm.57 0h.379v-.301h-.379zm1.328 0h.379v-.301h-.379zm.57 0h.379v-.301h-.379zm-1.711-.301h.379v-.305h-.379zm.949 0h.379v-.305h-.379zm.949 0h.379v-.305h-.379zm.379.609h.191v-.309h-.191zm-3.414-.914H.57v-.309H.191zm1.328 0h.379v-.309H1.52zm1.898 0h.379v-.309h-.379zm-3.039-.914h.379v-.309H.379zm.191-.309h.379v-.305H.57zm.758.309h.379v-.309h-.379zm-.187-.309h.379v-.305h-.379zm-.383-.305h.57v-.305h-.57zm.191-.305h.191v-.305H.949zm1.328.914h.379v-.305h-.379zm.191-.305h.379v-.305h-.379zm.758.309h.379v-.309h-.379zm-.187-.309h.379v-.305h-.379zm-.383-.305h.57v-.305h-.57zm.191-.305h.191v-.305h-.191zm-.949.309h.191v-.305h-.191zm-1.898 0h.191v-.305H0zm3.797 0h.191v-.305h-.191zM.949 13.73h.191v-.305H.949zm-.191-.309h.57v-.301h-.57zm-.187-.301h.949v-.309H.57zm2.277.605h.191v-.305h-.191zm0 0\"/><path d=\"M2.656 13.422h.57v-.301h-.57zm-.187-.301h.949v-.309h-.949zm.188-1.527h.949v-.309h-.949zm-.379 1.219h1.328v-.305H2.277zm-1.898 0h1.328v-.305H.379zm.191-1.523h.57v-.305H.57zm-.191.305h.949v-.309H.379zm2.66.605h.949v-.305h-.949zm-.191-.914h.57v-.305h-.57zM0 12.199h.949v-.305H0zm1.707-.609h.57v-.305h-.57zm.191-.305h.191v-.305h-.191zm-.57.914h1.328v-.305H1.328zm.762 4.578h.379v-.309H2.09zm-.383-.309h.57v-.297h-.57zm-.187-.305h.379v-.305H1.52zm.57 0h.379v-.305H2.09zM0 16.473h.379v-.301H0zm.191-.305H.57v-.301H.191zm3.414.305h.383v-.301h-.383zm-.187-.305h.379v-.301h-.379zM0 13.43h.191v-.305H0zm3.797 0h.191v-.305h-.191zM1.52 10.68h.379v-.301H1.52zm.57 0h.379v-.301H2.09zm-.762-.301h.379v-.309h-.379zm.949 0h.379v-.309h-.379zm-1.137-.309h.379v-.305h-.379zm1.328 0h.379v-.305h-.379zm-1.52-.309h.379v-.305H.949zm1.707 0h.383v-.305h-.383zM.57 9.457h.57v-.305H.57zm2.277 0h.57v-.305h-.57zm.379.305h.379v-.305h-.379zm.191.309h.379v-.309h-.379zm.188.305h.383v-.305h-.383zM.379 9.762h.379v-.305H.379zm-.188.309H.57v-.309H.191zM0 10.371h.379v-.305H0zm.758-1.223h.191v-.305H.758zm1.141.914h.191v-.305h-.191zm0 3.355h.191v-.301h-.191zm-.949 3.051h.191v-.297H.949zm1.898 0h.191v-.297h-.191zm-1.141-2.125h.57v-.305h-.57zm-.379-.305h.57v-.309h-.57zm.191-.309h.188v-.305H1.52zm-.379.613h.379v-.305h-.379zm.188.297h.57v-.297h-.57zm.191.309h.188v-.305H1.52zm.57-.309h.566v-.297H2.09zm.188.309h.191v-.305h-.191zm.191-.609h.379v-.305h-.379zm-.379-.305h.566v-.309H2.09zm.188-.309h.191v-.305h-.191zm.762.617h.379v-.305h-.379zm.188.297h.57v-.297h-.57zm.379-.301h.383v-.305h-.383zm-.379-.305h.57v-.309h-.57zm.191-.309h.188v-.305h-.187zm0 1.223h.188v-.305h-.187zM0 14.344h.379v-.305H0zm.191.297h.566v-.297H.191zm0 0\"/><path d=\"M.57 14.34h.379v-.305H.57zm-.379-.305h.566v-.309H.191zm.188-.309H.57v-.305H.379zm0 1.223H.57v-.305H.379zm-.188-2.441h.758v-.305H.191zm.949 0h.758v-.305h-.758zm.949 0h.758v-.305H2.09zm.949 0h.758v-.305h-.758zm-1.52-.609h.949v-.305H1.52zm-1.328 0h.949v-.305H.191zm2.656 0h.949v-.305h-.949zm.949-1.219h.191v-.309h-.191zM0 10.68h.191v-.309H0zm1.707-1.527h.191v.305h-.191zm.383 0h.188v.305H2.09zm0-.609h.188v.305H2.09zm-.383 0h.191v.305h-.191zM.379 16.781h.379v.305H.379zm2.66-5.797h.188v-.309h-.187zm-2.281 0h.191v-.309H.758zm.949-.309h.57v.309h-.57zm0 0\"/></g></svg>')\n        },\n        bn: {\n            languageName: 'Bengali',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(0%,41.568627%,30.588235%)\"/><path d=\"M16.5 9c0 3.313-2.687 6-6 6s-6-2.687-6-6 2.688-6 6-6 6 2.688 6 6zm0 0\" fill=\"rgb(95.686275%,16.470588%,25.490196%)\"/></svg>')\n        },\n        bs: {\n            languageName: 'Bosnian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(0%,0%,60%)\"/><g fill-rule=\"evenodd\"><path d=\"M4.984 0l17.969 18.012v-18zm0 0\" fill=\"rgb(100%,80%,0%)\"/><path d=\"M18.465 16.93l-.98-.715-1.004.711.379-1.168-.992-.723h1.23l.379-1.168.375 1.172h1.234l-.984.727zm2.859.363l-1.23-.004-.379-1.172-.379 1.168h-1.23l.992.723-.379 1.168 1.004-.711.984.711-.367-1.16zm-5.473-3.77l.984-.727-1.23-.004-.375-1.168-.379 1.168-1.23-.004.992.723-.379 1.168 1.004-.711.984.715zm-2.258-2.266l.984-.727-1.23-.004-.379-1.168-.383 1.168h-1.227l.992.719-.379 1.168 1.004-.711.98.715zM11.352 9.02l.984-.727h-1.23l-.371-1.176-.379 1.168h-1.23l.992.719-.383 1.172 1.008-.715.984.715-.371-1.16zM9.09 6.762l.984-.727-1.23-.004-.375-1.168-.387 1.164H6.855l.996.723-.379 1.168 1.004-.711.98.715-.363-1.16zM6.852 4.516l.984-.73h-1.23L6.23 2.613l-.383 1.168h-1.23l1 .719-.383 1.168 1.004-.711.977.719zm-2.25-2.25l.984-.73h-1.23L3.98.363l-.383 1.168h-1.23l1 .719-.387 1.172 1.008-.715.977.719zM2.352.016l.98-.73h-1.23l-.379-1.168-.375 1.164H.117L1.113 0 .734 1.168 1.738.457l.977.719zm0 0\" fill=\"rgb(100%,100%,100%)\"/></g></svg>')\n        },\n        bg: {\n            languageName: 'Bulgarian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" fill-rule=\"evenodd\" class=\"language-svg-icon\"><path d=\"M0 12h24v6H0zm0 0\" fill=\"rgb(83.921569%,14.901961%,7.058824%)\"/><path d=\"M0 0h24v6H0zm0 0\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M0 6h24v6H0zm0 0\" fill=\"rgb(0%,58.823529%,43.137255%)\"/></svg>')\n        },\n        ca: {\n            languageName: 'Catalan',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.ca-B{stroke-linecap:round}.ca-C{fill:none}.ca-D{fill:rgb(99.607843%,87.45098%,0%)}.ca-E{stroke-width:.026}.ca-F{fill:rgb(83.529412%,16.862745%,11.764706%)}.ca-G{stroke:rgb(43.921569%,23.921569%,16.078431%)}.ca-H{stroke-width:.022}.ca-I{stroke-width:.024}.ca-J{fill:rgb(98.823529%,85.098039%,0%)}.ca-K{stroke-width:.012}.ca-L{fill:rgb(78.039216%,70.196078%,49.803922%)}.ca-M{stroke-width:.034}.N{stroke:rgb(78.039216%,70.196078%,49.803922%)}.O{stroke-width:.011}.P{fill:rgb(100%,100%,100%)}.Q{stroke:rgb(99.607843%,87.45098%,0%)}.R{fill:rgb(0%,39.607843%,74.117647%)}]]></style><path d=\"M0 0h24v18H0z\" fill=\"rgb(81.568627%,6.27451%,22.745098%)\"/><path d=\"M0 0h16.32v18H0zm0 0\" class=\"ca-D\"/><path d=\"M0 0h7.68v18H0zm0 0\" fill=\"rgb(0%,9.411765%,65.882353%)\"/><path d=\"M11.266 5.121c.289 0 .406.25.695.25.18 0 .281-.059.441-.148.109-.059.176-.094.301-.094s.203.039.273.152c.035.059.066.184.047.25-.023.105-.055.211-.102.313-.027.059-.047.094-.047.156 0 .152.207.207.352.211.031 0 .289 0 .449-.16-.086-.004-.184-.074-.184-.16 0-.098.066-.16.16-.191.02-.004.051.012.066 0 .023-.012.016-.035.035-.051.047-.039.074-.062.137-.062.035 0 .059.004.094.027.016.016.023.031.035.031.047 0 .07-.031.113-.031.031 0 .063.008.086.023s.023.055.055.055c.016 0 .09-.031.129-.031a.2.2 0 0 1 .18.094c.016.016.023.051.039.051.074.008.141.047.18.113.012.016.027.051.043.055.02.012.035.008.063.027.063.039.102.105.105.18 0 .027-.012.059-.02.082-.066.246-.234.324-.406.535-.074.094-.129.164-.129.281 0 .023.035.078.047.098-.008-.051.02-.117.074-.121.078 0 .145.059.152.133 0 .023-.004.047-.012.07.047-.031.098-.047.148-.055h.074c.121 0 .262.07.348.145.184.156.285.387.273.629-.031.195-.012.555-.516.695.094.039.156.113.156.195 0 .047-.016.09-.047.125s-.074.051-.117.055c-.051 0-.098-.02-.133-.055-.105.105-.125.215-.125.363 0 .09.016.145.055.227a.47.47 0 0 0 .137.191c.039-.059.078-.098.152-.098.063 0 .117.023.145.082.008.02 0 .035.012.051.012.023.031.027.043.051.016.035 0 .066.016.102.012.023.035.027.047.051.016.039.02.063.02.102 0 .113-.102.195-.215.195-.039 0-.051-.016-.086-.012.063.063.113.094.16.168a.66.66 0 0 1 .113.387c.004.148-.035.293-.105.422a.74.74 0 0 1-.262.316c-.176.129-.383.211-.602.242a2.94 2.94 0 0 1-.41.051l-.531.031c-.27.016-.457.055-.648.246.09.066.152.133.152.242s-.07.199-.176.23c-.027.008-.047 0-.074.016s-.023.051-.051.063c-.043.027-.094.043-.145.039a.29.29 0 0 1-.238-.094c-.082.066-.113.129-.207.184-.031.016-.043.039-.078.039-.055 0-.082-.039-.129-.07-.059-.043-.117-.09-.164-.148-.086.047-.133.09-.234.09-.055.004-.105-.012-.152-.039-.023-.016-.027-.043-.055-.059s-.051-.012-.078-.027c-.113-.047-.187-.129-.187-.254 0-.109.066-.176.164-.227-.187-.187-.375-.215-.637-.23l-.527-.031a3.46 3.46 0 0 1-.41-.051c-.125-.02-.195-.027-.309-.078-.383-.18-.629-.426-.676-.844-.008-.039-.008-.059-.008-.094 0-.219.086-.355.242-.508-.039-.012-.066 0-.105-.012-.094-.035-.164-.102-.164-.207 0-.035 0-.062.016-.098.016-.02.039-.023.047-.051.008-.039 0-.059.016-.094.012-.02.027-.023.035-.047.039-.07.078-.125.156-.125.066 0 .109.035.141.094.066-.031.082-.078.121-.141.09-.148.109-.332.051-.496-.016-.059-.02-.094-.066-.141-.039.039-.074.055-.129.055-.105 0-.187-.094-.187-.199 0-.078.043-.145.113-.176-.059-.051-.113-.055-.176-.094-.098-.062-.133-.129-.195-.227-.043-.059-.055-.105-.074-.176a.75.75 0 0 1-.039-.293.76.76 0 0 1 .176-.445c.066-.086.109-.141.215-.184.086-.039.141-.066.234-.066l.074.004a.36.36 0 0 1 .105.031c.016.008.039.035.039.016s-.012-.031-.012-.051c0-.074.059-.148.137-.148.055 0 .078.051.109.102.016-.031.027-.055.027-.086 0-.129-.074-.195-.152-.297-.176-.219-.395-.32-.395-.602 0-.082.039-.137.113-.184.02-.012.051 0 .066-.012s.016-.035.027-.051c.02-.027.039-.039.063-.059.035-.039.074-.023.113-.059.023-.016.031-.035.047-.051.047-.062.094-.09.172-.09a.19.19 0 0 1 .094.016l.039.016c.008-.008.027-.027.055-.039s.055-.023.082-.023c.043 0 .066.023.113.023.012 0 .016-.016.031-.023.035-.027.055-.039.102-.039s.066.012.102.039c.039.02.039.051.078.066.016.012.035.008.055.016.098.035.168.098.168.199 0 .055-.012.094-.051.133-.035.023-.066.02-.105.035a.59.59 0 0 0 .422.133c.16 0 .352-.062.352-.223 0-.074-.039-.113-.07-.18a.69.69 0 0 1-.078-.316.38.38 0 0 1 .07-.254c.063-.086.137-.109.246-.109zm0 0\" class=\"ca-L\"/><g class=\"ca-C ca-G\"><g class=\"ca-E\"><path d=\"M10.215 5.961a.13.13 0 0 0 .09.09c.031.012.102.008.145-.051.035-.047.035-.105.02-.148-.012-.035-.035-.063-.063-.086zm0 0\" stroke-linejoin=\"round\"/><path d=\"M15.039 8.855c-.047-.109-.164-.062-.168 0-.016.137.102.18.188.156.043-.012.074-.039.094-.074s.031-.09.016-.141c-.004-.02-.016-.043-.027-.059s-.031-.035-.051-.047c-.035-.02-.07-.02-.129-.02-.203 0-.387.242-.449.5a1.09 1.09 0 0 0-.012.449.85.85 0 0 0 .223.426 1.05 1.05 0 0 0 .371.219c.051.012.102.012.148 0 .121-.023.18-.141.113-.262-.047-.094-.199-.148-.27-.02-.004.008-.016.031-.016.055 0 .035.016.074.039.09.055.035.141.023.137-.074\" class=\"ca-B\"/></g><path d=\"M14.391 10.273a.44.44 0 0 1 .25-.137.48.48 0 0 1 .309.074c.246.113.406.363.402.637a.86.86 0 0 1-.074.355c-.031.063-.113.336-.574.523-.266.113-.676.133-.965.148-.387.012-.75.027-.953.285\" stroke-width=\".03\"/><g class=\"ca-E\"><path d=\"M14.488 10.715c-.008-.039 0-.078.031-.125.047-.059.141-.078.227-.039a.39.39 0 0 1 .094.086l.039.059c.027.039.039.074.039.094.094.262-.055.543-.246.66-.148.09-.324.129-.539.148-.094.016-.148.012-.242.02h-.359a3.1 3.1 0 0 0-.27 0l-.285.031-.203.035c-.023 0-.047.008-.07.016l-.043.012c-.137.043-.262.09-.367.156-.031.02-.066.039-.094.066l-.051.043c-.074.074-.145.152-.164.254v.059c0 .066.055.16.203.188m.207-6.375c.027.051.047.086.027.145-.02.066-.066.105-.133.105-.148 0-.238-.18-.168-.293.117-.199.348-.086.563.012-.012-.047-.031-.066-.027-.129.004-.16.121-.227.168-.375.027-.086.039-.164-.027-.227-.055-.047-.117-.047-.187-.023-.145.059-.32.223-.625.227-.309-.004-.48-.168-.625-.227-.074-.023-.137-.023-.191.027-.063.059-.055.137-.027.227.051.141.164.211.168.375 0 .059-.012.074-.023.125.211-.098.449-.219.563-.012.063.121-.02.289-.172.289-.066 0-.109-.035-.133-.102-.016-.055 0-.105.031-.148\"/><path d=\"M11.797 5.996c.063.039.098.113.09.188-.008.094-.027.117-.105.168m.09-.141c-.004.055-.023.094-.086.117\" class=\"ca-B\"/></g></g><path d=\"M10.375 5.75l.027.016.031.031.02.039.004.027v.074l-.004.027-.02.023-.023.023-.035.02-.035.008-.039.008-.035-.02-.035-.023-.02-.031-.016-.035v-.016zm0 0\" class=\"ca-L\"/><g class=\"ca-C ca-G\"><g class=\"ca-E\"><path d=\"M10.32 5.895c-.012-.063-.082-.074-.113-.035-.039.055-.012.148.074.176.055.008.113-.012.148-.055s.031-.105.02-.148c-.016-.035-.035-.062-.066-.082-.102-.078-.266-.062-.32.074-.07.164.082.293.223.387.172.117.375.141.527.141.344-.004.605-.168.773-.262.039-.023.082-.02.102.008s.02.074-.012.102\" class=\"ca-B\"/><path d=\"M9.301 10.547l-.074.023-.078.063-.035.047-.043.074-.02.059-.012.066-.008.051m.711-.379l-.004.07-.012.043-.035.082-.051.07-.055.043-.043.02-.059.016\"/></g><path d=\"M11.988 12.34c-.012.066-.07.137-.199.16l-.023.008\" stroke-width=\".03\"/><path d=\"M15.156 10.359c.137.129.215.312.211.504a.89.89 0 0 1-.074.352c-.031.066-.113.34-.574.527-.309.098-.633.148-.961.148-.387.012-.742.027-.953.273\" class=\"ca-M\"/><path d=\"M14.531 10.609c.031-.039.133-.09.219-.043.035.02.063.043.086.074\" class=\"ca-H\"/><path d=\"M15.059 10.266l.055.02a.24.24 0 0 0 .148 0c.105-.027.172-.125.121-.258-.016-.031-.039-.059-.066-.078\" class=\"ca-M\"/><path d=\"M9.012 7.492c-.074.043-.125.055-.18.117a.95.95 0 0 0-.098.254m1.723-1.938c0 .066-.043.105-.109.121\" class=\"ca-B ca-E\"/><path d=\"M14.891 7.199c.191.004.375.086.504.227a.7.7 0 0 1 .195.516c0 .602-.371.695-.52.734\" class=\"ca-H\"/><path d=\"M14.941 7.199c.301-.012.617.215.633.777.012.438-.301.637-.449.676\" class=\"ca-E\"/><g class=\"ca-H\"><path d=\"M14.766 9.316l.004-.063.023-.094.027-.074.035-.059.035-.051m.293-.125v.055l-.02.039-.023.039-.031.023-.047.02h-.039l-.031-.004m-.535-1.98l.012-.063.027-.062.098-.137.055-.055.074-.082.074-.07.043-.051.055-.07.055-.074.027-.063.02-.082.004-.102-.008-.031m-.461 4.809l.059-.016.047-.023.027-.027.016-.027.012-.047v-.035m-5.93-.453h.098l.063-.02m.188-1.371l-.008.055-.016.02-.016.023-.023.02-.027.012-.039.004h-.023m.371-.582l-.008.078-.02.039-.031.043-.043.035-.047.023-.086.016m.574-1.488l-.02.051-.02.035-.027.039-.039.039-.047.016-.039.012-.023-.004m.012-.23v.035\"/><path d=\"M9.535 8.398c-.023.023-.047.043-.078.055m5.645 1.68l.02.008c.051.031.156-.008.125-.09\" class=\"ca-B\"/><path d=\"M14.918 8.984c.035.051.109.063.164.051.039-.012.074-.039.094-.078s.031-.09.016-.137c-.008-.023-.02-.043-.035-.059-.012-.023-.027-.043-.047-.059l-.016-.008m.238 1.277c.004-.012.004-.02.004-.027.004-.043-.016-.082-.047-.113l-.031-.031m.016.02c0-.066-.055-.117-.129-.129m-.156.105l-.047-.039a.6.6 0 0 1-.164-.402c0-.156.063-.313.137-.375m-2.117 3.168l.066-.059.043-.039.086-.051.086-.039.059-.016.113-.023.133-.023m-1.105.727a.61.61 0 0 1-.285.23c-.113-.047-.215-.129-.285-.23\"/><path d=\"M11.789 12.473c-.012.059-.043.113-.082.156\" class=\"ca-B\"/><path d=\"M11.801 12.395l-.016.082m-.086.16l-.035.039-.066.031-.074.023m-.211-6.668c.012-.027.02-.051.02-.098-.004-.156-.121-.227-.168-.375-.027-.086-.039-.16.027-.223.051-.055.117-.055.188-.023.148.055.32.219.625.227-.305-.008-.48-.172-.621-.227-.078-.031-.145-.039-.199.02-.066.059-.047.141-.02.227.047.148.156.219.16.375 0 .047-.012.07-.02.098M12 5.551c.301-.016.559-.219.641-.238.074-.016.113-.008.168.043-.051-.051-.109-.047-.187-.02-.141.055-.312.219-.621.227m2.984 4.234c-.145-.113-.23-.285-.23-.469 0-.152.063-.312.133-.375m-2.625 3.66c-.047.078-.16.188-.285.234a.69.69 0 0 1-.285-.234\"/><path d=\"M11.5 6.141l.086-.051c.039-.023.086-.02.109.008s.027.074-.008.105\" class=\"ca-B\"/><path d=\"M11.051 6.348c.207-.043.375-.133.504-.207m1.207 6.16c.02.012.031.035.031.035.004.008.008.02.008.031.012.055-.023.09-.074.098-.063.008-.113-.031-.129-.074m-1.559-6.055c.207-.039.375-.133.504-.203m3.66 4.008c-.039.016-.063.012-.113-.008l-.066-.039c-.137-.078-.246-.195-.316-.336a.7.7 0 0 1-.063-.172c-.012-.043-.02-.082-.02-.125-.004-.203.059-.406.176-.574.043-.059.078-.094.156-.098M9.57 7.316c.066.051.102.129.102.215 0 .113-.098.305-.34.375-.078.02-.164.008-.234-.031\"/><path d=\"M9.609 7.711c.043.027.063.063.063.121 0 .039-.027.09-.07.141-.086.094-.207.148-.332.148-.074 0-.148-.012-.223-.063a.33.33 0 0 1-.145-.203\"/><path d=\"M9.609 7.961c.047.047.063.102.063.172 0 .102-.043.18-.141.262a.29.29 0 0 1-.074.059m4.855-.828v.129m-.012-.164v.188m.012-.594v.25m-.012-.301v.332m-.07 3.078c-.039.078-.09.148-.156.207-.063.066-.137.117-.219.156s-.16.066-.246.082a1.13 1.13 0 0 1-.254.031c-.094 0-.148 0-.242-.004l-.25-.031c-.082-.008-.129-.016-.211-.012a1.15 1.15 0 0 0-.414.066c-.098.039-.211.113-.234.145a.83.83 0 0 0-.238-.145.87.87 0 0 0-.191-.051c-.09-.016-.133-.016-.219-.016a1.91 1.91 0 0 0-.211.012l-.25.031-.242.004c-.172 0-.344-.039-.5-.109a.74.74 0 0 1-.242-.18m1.578 2l.07-.008m1.137-.09l.066-.004.063-.023.047-.031.062-.074.012-.023.012-.062v-.031m1.762-5.125c.027-.098-.008-.203-.105-.199M9.664 8.801c-.02.074-.066.137-.133.176m.137-1.75c-.023.066-.07.121-.137.148s-.148 0-.195-.027\"/><path d=\"M9.141 7.59c.059.031.117-.016.105-.09-.008-.043-.047-.078-.094-.082\" class=\"ca-B\"/><path d=\"M9.383 10.746c.012.012.016.027.031.031.023.008.043.016.07-.02s.012-.105-.02-.145a.19.19 0 0 0-.219-.039c-.027.02-.063.039-.098.082l-.039.062c-.027.039-.039.074-.043.09-.074.219.016.449.156.586\"/><path d=\"M12.758 12.293l.027.031.008.031c.008.059-.027.09-.078.098-.059.008-.105-.031-.121-.074\" class=\"ca-B\"/><path d=\"M14.602 5.805a.28.28 0 0 1 .238.262c0 .168-.059.227-.145.348-.094.125-.398.359-.398.625 0 .16.043.262.16.316.074.035.16 0 .203-.039.098-.09.055-.242-.047-.262-.121-.023-.145.172-.027.16m.672 2.586c-.012-.063-.066-.109-.133-.109-.078 0-.141.063-.141.137 0 .039.016.074.039.098\"/><path d=\"M14.395 7.316c-.063.051-.102.129-.098.215 0 .113.094.305.336.375.09.023.18.02.23-.012m-5.848-.387c-.074.023-.137.07-.18.133-.09.141-.121.312-.082.473.012.078.043.148.086.211l.035.047.047.035m2.398 3.453c.184.078.316.137.43.316.027.059.043.121.043.184 0 .102-.035.215-.121.285-.07.063-.164.09-.254.074-.07-.008-.137-.059-.148-.098M9.523 8.402c.102.082.148.16.148.281s-.055.223-.152.281\"/><path d=\"M9.43 8.863c.152.191.238.305.242.531a.72.72 0 0 1-.188.512\" class=\"ca-B\"/><path d=\"M12.367 6.348c.027-.02.047-.047.055-.082.02-.055.02-.105-.004-.148.035.051.035.094.023.148-.004.039-.027.059-.059.086m1.93 3.23v.605l-.004.094c0 .023-.004.043-.012.066\"/><path d=\"M14.301 9.523v.746l-.016.098m.016-1.609v.547m.012-.504v.441m0-1.004v.332m-.012-.371v.41m.012-.711v.129m-.012-.156v.188m-.066 2.445l-.016.027a.68.68 0 0 1-.152.211c-.063.066-.141.117-.223.152-.074.039-.156.066-.242.082a1.17 1.17 0 0 1-.258.035c-.094 0-.148 0-.238-.008l-.254-.031-.211-.012c-.082 0-.129 0-.215.016-.066.008-.129.027-.191.051-.102.043-.215.113-.242.145-.023-.031-.137-.102-.234-.145a.89.89 0 0 0-.195-.051c-.082-.016-.133-.016-.219-.016a1.91 1.91 0 0 0-.211.012l-.25.031c-.094.008-.148.012-.238.008a1.34 1.34 0 0 1-.504-.113c-.082-.039-.156-.09-.219-.156a.76.76 0 0 1-.094-.102m-.074-.121c.012.102-.02.207-.086.289-.031.031-.098.098-.187.098-.141 0-.18-.094-.187-.121m.291-.328a.96.96 0 0 1 .07.094c.039.07.023.184-.004.234m-.773.691a1.14 1.14 0 0 0 .41.266c.266.113.68.133.965.148.375.012.723.027.938.262m.648-.148c.066.051.121.125.148.207m-.273.43c-.008.012-.016.02-.027.027a.31.31 0 0 1-.246.074c-.074-.008-.145-.059-.16-.098m-.203-.109l.012.016a.27.27 0 0 0 .191.09m1.012 0a.7.7 0 0 1-.289.23.69.69 0 0 1-.285-.23l-.012-.02m.586.016l.027.027c.066.059.16.09.25.074.063-.008.117-.043.148-.094l.02-.027\"/><path d=\"M12.711 12.621l-.023.047-.043.035-.063.027h-.062\"/><path d=\"M12.863 12.199c.039.027.07.066.09.109.012.023.016.055.02.086 0 .059-.02.113-.059.156-.051.059-.125.09-.203.09m-.008-.008a.24.24 0 0 1-.191-.082m2.387-2.547a.83.83 0 0 1-.18-.238.67.67 0 0 1-.063-.168c-.012-.043-.02-.082-.02-.125-.004-.203.055-.406.172-.574.027-.031.051-.066.078-.082m-.047-2.848c.094.008.18.113.18.215 0 .145-.051.207-.164.348-.098.121-.398.34-.387.547a.17.17 0 0 0 .039.102m-.117.133c.02.023.047.039.074.051.051.023.109.02.16-.008m-.789-1.617a.23.23 0 0 1 .086.098c.066.168-.086.297-.227.391-.094.062-.199.102-.312.121m.29-.29c-.043 0-.086-.02-.117-.055-.008-.012-.02-.023-.023-.039m-.562.184c-.02-.008-.035-.02-.047-.035-.035-.039-.055-.086-.031-.164s.141-.273.145-.41c.008-.211-.074-.336-.199-.383\"/><path d=\"M13.023 5.492l-.004.078-.023.082-.035.113-.039.07-.031.07-.012.047-.008.039.004.035m1.422 4.734l.023.031c.027.035.121.113.207.113.141 0 .172-.098.176-.121.02-.109-.02-.137-.074-.168 0 0-.031-.016-.07-.008\" class=\"ca-B\"/><path d=\"M8.887 10.289a.27.27 0 0 1-.137 0c-.109-.031-.195-.133-.152-.262m.504-1.191c.012.012.016.023.016.035.016.145-.105.18-.187.16-.047-.016-.086-.047-.113-.086-.016-.027-.023-.059-.027-.086m.824-.887c.023.02.039.039.051.062m-.043-.316c.02.016.035.031.043.047\"/><path d=\"M9.672 7.895a.34.34 0 0 1-.063.09c-.082.094-.203.145-.328.148-.074 0-.148-.016-.227-.063a.37.37 0 0 1-.148-.211\" class=\"ca-B\"/><path d=\"M9.578 7.324c.039.031.07.078.09.129\"/><path d=\"M9.668 7.621c-.035.113-.133.246-.324.297-.09.02-.207-.008-.246-.039\" class=\"ca-B\"/><path d=\"M9 7.598c.012.098.074.172.203.172.176.004.285-.25.125-.43\"/><path d=\"M8.602 8.457c.027.031.059.063.09.09.066.055.145.098.227.125m.195.016c.156-.016.246-.137.223-.273-.008-.105-.102-.187-.172-.191\" class=\"ca-B\"/><path d=\"M9.367 7.055c.07 0 .113.059.109.113\"/><path d=\"M9.352 6.113c.035.094.102.172.188.219m5.41 1.164a.17.17 0 0 1-.152.262c-.066 0-.133-.035-.168-.094\" class=\"ca-B\"/><path d=\"M14.313 6.34v.598\"/><path d=\"M9.141 7.586c.055.039.125-.027.094-.098-.016-.043-.082-.098-.176-.035-.105.074-.074.293.121.297.176 0 .285-.254.129-.434-.152-.172-.426-.137-.602.008a.8.8 0 0 0-.27.438.87.87 0 0 0 0 .348c.02.098.059.195.113.281l.047.063.074.074a.58.58 0 0 0 .391.141c.172-.008.273-.129.258-.277-.016-.141-.16-.211-.254-.145-.062.047-.086.184.027.219.059.02.117-.066.074-.113m4.855-2.691c.102-.055.18-.047.238.035s.074.176.059.27-.059.164-.129.219m.08-.487c.117-.074.242-.039.309.062.051.074.066.133.063.227a.42.42 0 0 1-.215.344\" class=\"ca-B\"/><path d=\"M14.813 5.969c.098.008.172.094.172.191 0 .145-.035.207-.148.352-.102.121-.398.336-.391.547 0 .078.066.148.125.156\"/><path d=\"M14.828 7.586c-.059.039-.125-.023-.094-.09.02-.043.082-.105.176-.043.102.074.074.293-.125.297-.176 0-.301-.246-.125-.434.148-.172.438-.141.617.004.074.059.23.227.262.449.039.262.035.586-.238.789-.113.078-.262.113-.398.113-.172-.008-.273-.133-.254-.281.02-.141.148-.199.25-.145s.086.203-.027.219c-.063.008-.113-.066-.074-.113\" class=\"ca-B\"/><path d=\"M14.734 7.496c.031-.133.137-.141.23-.141.246.004.418.297.422.578 0 .359-.152.57-.414.582-.07 0-.187-.031-.187-.113\"/><path d=\"M14.887 7.437c.258.059.348.293.348.516 0 .184-.016.438-.375.523\" stroke-linecap=\"square\"/><path d=\"M15.316 9.949a.15.15 0 0 0-.098-.164c-.066-.023-.141.008-.176.07s-.02.137.035.184\"/><g class=\"ca-B\"><path d=\"M14.789 9.727c.055.074.113.156.238.227m-.051.395c-.117-.082-.355-.187-.562-.082-.074.027-.137.086-.164.164-.039.121-.016.258.066.355.035.039.102.098.188.102.145 0 .176-.098.18-.121.016-.105-.043-.145-.074-.152s-.105-.008-.121.047c-.004.02-.004.051.008.074\"/><path d=\"M12.77 12.316c.035.082-.008.117-.062.125-.082.012-.121-.051-.125-.113-.004-.043.012-.086.043-.121s.074-.051.117-.055c.086 0 .152.059.188.133.012.027.02.055.02.09.004.055-.016.109-.055.152-.051.059-.125.094-.199.094-.16.004-.281-.141-.281-.293 0-.285.426-.449.598-.484a2.99 2.99 0 0 1 .672-.09c.133-.004.234 0 .379-.02.133-.012.203-.02.336-.051a.99.99 0 0 0 .473-.238c.109-.102.172-.168.223-.309.059-.172.043-.363-.047-.52-.086-.141-.227-.234-.387-.258-.141-.016-.266.043-.34.184-.035.066-.023.18.004.23.039.066.105.109.18.113.145 0 .176-.098.18-.121.016-.105-.043-.145-.074-.156s-.105-.004-.121.051c-.004.02-.004.051.008.074m-1.855 1.126c-.18.078-.316.137-.426.316a.39.39 0 0 0-.047.184c0 .102.043.215.125.285a.29.29 0 0 0 .25.074c.074-.008.141-.059.152-.098\"/></g><path d=\"M14.441 8.402c-.086.031-.145.16-.145.281-.008.117.051.223.148.281\"/><path d=\"M14.535 8.863c-.148.191-.238.305-.238.531 0 .215.063.359.188.512\" class=\"ca-B\"/><path d=\"M13.723 5.699l.012-.02c.063-.09.176-.113.258-.055.098.074.121.203.098.336-.02.086-.074.156-.152.207\"/><path d=\"M9.941 5.656c-.098-.047-.176-.039-.238.035s-.078.176-.059.27c.023.102.055.145.133.219\" class=\"ca-B\"/><path d=\"M9.699 5.699c-.051-.035-.113-.047-.172-.035s-.109.047-.141.098c-.047.066-.07.145-.059.227.004.156.102.285.215.344m-.179-.528c-.125.016-.223.121-.223.246 0 .172.035.238.129.363s.402.359.402.625c0 .16-.047.262-.16.316-.078.035-.164 0-.203-.039-.098-.09-.059-.242.043-.262.125-.023.148.172.027.16m-.23-1.245c-.094.008-.187.086-.187.188 0 .145.059.211.176.355.098.121.379.336.371.543 0 .074-.059.172-.109.16\"/><path d=\"M8.926 8.855c.047-.109.164-.062.172 0 .016.137-.105.18-.191.156-.039-.012-.074-.039-.094-.074-.023-.043-.027-.094-.016-.141a.18.18 0 0 1 .035-.059c.012-.02.027-.035.043-.047.039-.02.074-.02.129-.02.207 0 .391.242.449.5.023.082.051.273.012.449a.84.84 0 0 1-.219.426 1.03 1.03 0 0 1-.375.219.26.26 0 0 1-.145 0c-.105-.031-.172-.129-.121-.262.047-.098.203-.148.273-.02.008.008.016.031.016.055 0 .035-.016.074-.035.09-.055.035-.141.023-.137-.074\" class=\"ca-B\"/><path d=\"M8.766 10.141c.039.016.063.012.109-.008l.07-.039c.098-.055.207-.141.312-.34.031-.055.051-.109.066-.168l.02-.125c.004-.207-.059-.406-.18-.574-.039-.059-.074-.094-.156-.098m-.355 1.164a.14.14 0 0 1 .094-.164.14.14 0 0 1 .176.062.15.15 0 0 1-.035.188m-.18-.238c.012-.066.07-.113.141-.109s.133.063.133.137a.15.15 0 0 1-.035.098\"/><path d=\"M8.977 9.797c.148-.109.234-.281.234-.465 0-.152-.063-.313-.137-.375\"/><path d=\"M9.176 9.727a.62.62 0 0 1-.234.227\" class=\"ca-B\"/><path d=\"M9.547 10.266c-.035-.086-.105-.121-.219-.133s-.203.02-.305.07a.7.7 0 0 0-.406.637.94.94 0 0 0 .074.359c.035.059.113.336.574.523.313.098.637.145.965.145.391.016.75.031.961.285\"/><path d=\"M8.988 10.348c.125-.082.355-.187.566-.082.074.031.133.09.16.164.043.121.016.258-.066.355-.035.039-.102.098-.188.102-.141 0-.176-.098-.18-.121-.016-.105.047-.145.074-.156s.105-.004.121.051c.008.02.008.051-.008.074\" class=\"ca-B\"/><path d=\"M9.477 10.715c.012-.039.008-.082-.031-.125-.059-.062-.148-.074-.223-.039-.027.02-.063.039-.09.086-.016.012-.039.039-.047.059-.027.039-.039.074-.039.094-.094.262.059.539.246.66.164.105.328.133.539.148l.246.02h.359.27l.285.031.203.035c.02 0 .043.008.066.016l.043.012c.137.043.266.09.367.156.031.02.07.039.094.066l.051.043c.074.074.148.152.164.254v.059c0 .066-.051.16-.199.188m-.582-.162c-.039.082.004.117.059.125.082.012.125-.051.133-.113 0-.043-.016-.09-.047-.121a.16.16 0 0 0-.121-.055c-.082.004-.156.055-.187.133-.012.027-.016.059-.02.09 0 .055.02.109.055.152a.27.27 0 0 0 .203.094c.156.004.281-.141.281-.293 0-.285-.43-.449-.602-.484a2.99 2.99 0 0 0-.672-.09c-.129-.004-.23 0-.379-.02a2.19 2.19 0 0 1-.336-.051c-.176-.035-.336-.117-.469-.238-.258-.191-.336-.547-.176-.824.082-.141.223-.238.387-.262a.32.32 0 0 1 .336.184c.039.066.023.18-.004.23-.035.066-.105.109-.18.113-.141 0-.176-.098-.18-.121-.016-.105.047-.145.074-.156s.105-.004.121.051c.008.02.008.051-.008.074\"/><path d=\"M10.25 5.699l-.016-.02c-.063-.09-.176-.113-.258-.055-.098.074-.125.203-.094.336.02.086.074.16.148.207\" class=\"ca-B\"/><path d=\"M13.754 5.984c-.148.164-.301.219-.527.227-.074 0-.207-.023-.285-.078-.051-.039-.105-.098-.07-.207.02-.07.137-.27.141-.41.012-.211-.07-.324-.199-.371-.23-.082-.484.152-.637.203a.49.49 0 0 1-.191.031.51.51 0 0 1-.195-.031c-.148-.051-.398-.285-.637-.203-.129.047-.207.16-.199.375.004.137.121.34.145.406.035.109-.02.168-.074.207-.074.055-.211.078-.281.074-.223-.004-.379-.059-.527-.223\"/><path d=\"M11.148 11.789c.031.012.008-.008.199.074.176.062.324.18.422.336a.37.37 0 0 1 .035.273\" class=\"ca-B\"/><path d=\"M11.164 12.602c.035.02.078.031.121.031.156.004.281-.141.281-.293 0-.105-.059-.195-.137-.262\"/><path d=\"M11.199 12.316c-.039.086.012.129.066.137.082.008.125-.051.133-.113s-.027-.125-.082-.156\" class=\"ca-B\"/><path d=\"M14.629 5.805c.121 0 .227.137.227.27 0 .16-.086.258-.148.332-.047.059-.102.109-.164.176\"/><path d=\"M14.484 5.676a.34.34 0 0 1 .105.09c.051.078.066.141.063.234-.008.156-.121.266-.227.336m-.176-.66l.023.027c.07.082.074.203.059.27-.016.086-.066.16-.141.203m-.187-.539c.098.074.125.203.094.336-.023.094-.082.152-.16.195m.418 1.543c.012.035.035.047.055.074a.54.54 0 0 0 .234.133c.09.023.172.004.234-.035M8.766 9.906c.047 0 .094.035.125.086.004.008.016.031.016.059s-.016.066-.039.082c-.055.039-.148.02-.148-.074\" class=\"ca-B\"/><path d=\"M9.055 8.672c.188.039.367.262.422.5a1.1 1.1 0 0 1 .012.449.82.82 0 0 1-.227.43c-.023.023-.051.051-.078.07l-.039.027m-.297-.453a.15.15 0 0 1 .105.246m-.156-.164c.078 0 .156.074.156.156 0 .043-.02.086-.055.113\"/><path d=\"M9.523 8.98c.07.086.121.184.145.289m0 .32c-.012.051-.031.102-.059.148a.58.58 0 0 1-.133.176\" class=\"ca-B\"/><path d=\"M9.535 8.41c.07.059.113.113.133.18\"/><path d=\"M9.672 8.23a.38.38 0 0 1-.129.172m-.344-.645l.082-.023.047-.035.031-.043.027-.066.012-.055\" class=\"ca-B\"/><path d=\"M9.039 7.473c-.027.008-.063.016-.094.031a.31.31 0 0 0-.133.113c-.09.141-.117.312-.082.477a.57.57 0 0 0 .086.207l.039.055c.051.047.098.074.172.063\"/><path d=\"M9.488 7.117c-.012.051-.039.109-.113.102\" class=\"ca-B\"/><path d=\"M9.215 7.445c-.074-.074-.227-.09-.379.008l-.063.047a.68.68 0 0 0-.051.059.69.69 0 0 0-.09.188c-.027.113-.027.211-.023.238 0 .035.008.07.012.102.023.105.051.18.086.23.035.059.113.188.289.203.066.004.18-.027.188-.113\"/><path d=\"M13.641 5.887c.012-.059.09-.07.113-.035.047.059.016.156-.074.184-.055.008-.109-.012-.141-.055-.039-.047-.035-.105-.02-.148.008-.031.031-.059.063-.082.102-.078.266-.062.324.074.066.164-.082.293-.227.387-.172.117-.375.141-.523.137-.348 0-.605-.164-.777-.262-.039-.02-.078-.016-.102.012s-.02.074.012.102m1.422-.369c.035 0 .043.016.055.027.047.059.012.156-.074.188m.668 1.93c-.133.141-.008.387.09.441.035.027.047.012.074.027\" class=\"ca-B\"/><path d=\"M14.367 7.703c-.043.031-.059.062-.063.125-.004.055.016.109.055.148a.52.52 0 0 0 .348.137c.074 0 .152-.012.227-.063a.33.33 0 0 0 .141-.203m-.777 2.32l-.008.094a.7.7 0 0 1-.078.262.74.74 0 0 1-.156.211c-.063.063-.137.113-.223.148a.85.85 0 0 1-.242.086 1.76 1.76 0 0 1-.496.023l-.254-.031-.211-.012c-.137-.004-.277.023-.406.07-.102.039-.215.113-.242.145-.023-.035-.137-.105-.234-.145-.063-.023-.129-.043-.195-.055-.082-.016-.133-.016-.219-.016s-.129.008-.211.016l-.25.027c-.094.008-.145.012-.234.008s-.18-.012-.266-.031-.164-.043-.242-.082-.156-.09-.219-.152-.117-.137-.156-.215-.066-.168-.074-.258c-.008-.039-.008-.094-.008-.094v-3.82h4.621v3.82zm0 0\"/></g></g><g class=\"ca-L\"><path d=\"M9.301 10.711c0-.051.043-.094.094-.094s.094.043.094.094-.043.094-.094.094-.094-.043-.094-.094zm-.582-.66c0-.051.031-.086.066-.086s.066.035.066.086c0 .043-.031.082-.066.082s-.066-.039-.066-.082zm0 0\" class=\"ca-N ca-O\"/><path d=\"M9.047 8.387c0-.039.031-.07.066-.07s.063.031.063.07-.027.066-.062.066-.066-.031-.066-.066zm1.152-2.461c0-.039.02-.074.055-.074s.063.02.066.059-.02.074-.055.074-.059-.023-.066-.059zm0 0\"/></g><g class=\"ca-C ca-H ca-N\"><path d=\"M8.973 8.773c-.016.004-.02.008-.027.02s-.016.016-.023.035l-.008.043m.176 1.004l.039-.039.02-.039.02-.035.027-.051m-.051.527l-.055.027-.043.02c-.016.012-.031.02-.047.031l-.047.039m.563-1.422l-.027-.031-.039-.031-.031-.027\" class=\"ca-B\"/><path d=\"M9.531 8.438l-.043.02-.059.012\"/><path d=\"M8.902 7.816c.008.02.008.035.02.055.008.027.02.043.031.063.027.043.059.078.098.102l.059.031m-.039-.219l.051.023a.28.28 0 0 0 .113.023l.066-.004m.27-1.527l-.074-.043a.29.29 0 0 1-.074-.059l-.043-.047-.031-.051m.281-.172l.023.062c.012.027.031.055.051.078.039.035.066.047.105.082m.055-.227c.012.027.012.039.027.059.004.02.012.031.027.047l.051.047c.023.023.043.027.074.043\" class=\"ca-B\"/></g><g fill=\"rgb(43.921569%,23.921569%,16.078431%)\"><path d=\"M12.5 5.684c0-.063-.066-.066-.09-.066-.07 0-.086.043-.176.086a.41.41 0 0 1-.25.074c-.09 0-.176-.023-.25-.074-.086-.043-.102-.086-.172-.086-.023 0-.047.012-.062.027s-.023.039-.02.063v.035l.008.008c0-.031.004-.047.02-.066s.039-.027.063-.027c.066 0 .094.043.18.09.109.059.156.07.25.074a.45.45 0 0 0 .254-.074c.086-.047.113-.094.18-.094.023 0 .039.016.051.035v.035l.008.004c0-.012.008-.016.008-.039zm0 0\" stroke-width=\".008\" class=\"ca-G\"/><path d=\"M9.914 11.023c.02-.016.035-.008.039-.02l-.047-.02-.027-.016c-.023.016.016.016.004.051a.14.14 0 0 1-.031.047l-.098.113-.008.004v-.164l.004-.066c.008-.016.031 0 .035-.016-.02-.012-.031-.012-.055-.02l-.035-.02c-.008 0-.02-.008-.023 0l.004.012c.016.008.02.012.02.035v.277c0 .02.004.023.008.027zm0 0\"/><path d=\"M10.031 11.07c.012-.043.039-.016.039-.031l-.059-.023c-.016 0-.027-.012-.043-.016-.02.016.023.016.016.055l-.066.207c-.012.035-.035.023-.039.035v.004l.043.016.063.02h.008c.008-.016-.043-.012-.023-.062zm.141.039c.004-.023.016-.02.031-.016.039.012.055.047.039.094-.008.02-.016.043-.074.027-.012-.004-.027-.008-.023-.016zm-.105.188c-.02.051-.047.027-.051.043l.07.027.031.012h.016c.004-.02-.039-.012-.027-.059l.023-.074c.004-.016.004-.02.023-.012s.023.012.027.031l.012.074c.008.035.012.063.039.074.02 0 .043 0 .051-.016l-.008-.008h-.008l-.039-.145c0-.008.016-.008.031-.012s.031-.027.035-.047.016-.082-.066-.109l-.078-.02-.047-.016h-.012c-.004.02.043.016.027.066l-.055.188zm.313.094c-.016.051-.051.016-.055.035l.066.023.055.016c.02-.016-.027-.016-.016-.074l.047-.191c0-.023.008-.023.023-.02l.039.008c.039.012.016.055.035.059.008 0 .008-.016.008-.023l.004-.035v-.016l-.125-.027-.117-.031-.027.066c.02.02.02-.043.063-.031l.035.008c.016.004.02.008.016.031zm.477-.125c.016-.023.031-.02.035-.027l-.051-.012-.031-.012c-.02.02.02.012.016.055 0 .008-.004.023-.023.047l-.074.125-.012.008v-.008l-.027-.148c-.004-.023-.008-.047-.004-.07s.027-.008.027-.02l-.059-.012c-.012 0-.023-.008-.035-.012s-.02-.004-.023.004l.004.008c.02.008.023.012.027.031l.047.273c.004.02.008.027.012.027zm.023.254c0 .012 0 .012.008.02.023.008.035.023.063.027.055.008.098-.027.105-.082s-.012-.082-.051-.109c-.051-.035-.07-.043-.066-.078.004-.023.027-.035.055-.035.066.012.059.098.066.098l.02-.074v-.016h-.023c-.016 0-.027-.02-.059-.027-.047-.008-.086.027-.094.074s.016.07.043.09c.063.043.082.055.074.09s-.031.055-.062.051c-.043-.008-.059-.055-.066-.098l-.016.07zm.594-.168c.012-.027.027-.023.027-.035l-.047-.008-.035-.004c-.016.023.023.008.023.051 0 .008-.004.023-.02.051l-.066.133-.004.012-.004-.012-.043-.148c-.004-.02-.008-.043-.008-.062s.023-.012.023-.023l-.059-.008-.039-.004-.016.008c.016.008.023.012.027.031l.078.266.016.027.145-.277zm0 0\"/><path d=\"M11.535 11.57c0 .043-.039.035-.039.055l.094.004.016-.004c0-.023-.051.008-.051-.074v-.16h.012l.191.238.008.004.008-.012v-.25c0-.051.039-.039.039-.051l-.098-.008c-.008.023.043.016.043.059v.148l-.004.016-.016-.012-.16-.199-.082-.012-.008.004c0 .023.047-.008.047.078zm.391-.207c0-.043.027-.027.027-.043l-.109-.008c-.012.023.027.008.027.055v.211c0 .043-.027.031-.027.047l.109.008c.012-.023-.031 0-.031-.055zm.168.207c0 .055-.047.035-.047.051l.129.008c.012 0 .02 0 .02-.012s-.055 0-.055-.051v-.203c0-.023 0-.023.02-.023h.039c.043-.004.031.047.047.047.008 0 .004-.016.004-.023l-.004-.039-.129-.012h-.125l-.008.012-.004.063.004.012c.02 0 .008-.059.055-.059h.031c.016 0 .02 0 .023.023v.211zm.234-.086h-.012l.004-.016.023-.082v-.008l.008.004.047.094zm.07.02c.012 0 .012 0 .027.039l.008.031c0 .023-.023.02-.023.035h.059l.047-.004c.016-.023-.004-.008-.02-.031l-.129-.266-.012-.012-.094.289c-.008.027-.027.027-.027.039h.09c.016-.023-.027-.012-.031-.047l.008-.035c.008-.031.016-.031.023-.031l.078-.008zm.309-.187c-.004-.027 0-.027.047-.035.074-.008.051.047.074.043.008 0 0-.016 0-.023l-.004-.039c-.047-.008-.074 0-.102.004l-.105.016c-.008.023.039.008.043.043l.027.207c.008.055-.027.039-.023.055l.059-.004.047-.004c.012 0 .02 0 .02-.008s-.047.004-.055-.047l-.008-.062c-.004-.027-.004-.035.012-.039h.031c.039-.008.035.043.047.039l-.008-.098c-.016-.012-.012.027-.043.031l-.027.004c-.02.004-.02 0-.023-.016zm.152.105c.016.086.078.141.156.125.129-.027.133-.137.121-.199-.02-.094-.086-.141-.164-.125-.094.02-.133.102-.113.199zm.039-.035c-.008-.062 0-.129.066-.141.051-.012.113.031.125.129.012.074 0 .133-.066.148s-.113-.074-.125-.133zm.313-.156c-.004-.027.008-.027.023-.031.035-.008.066.016.078.059.008.027.012.051-.047.066-.012 0-.027.004-.031-.008l-.02-.086zm0 .215c.016.051-.02.047-.02.059.039.004.055-.008.074-.012l.039-.008c.008-.02-.031.004-.039-.043l-.02-.074c0-.016-.008-.016.016-.02.016-.008.023-.004.039.012l.051.059c.016.023.035.051.066.043.02-.004.035-.02.035-.035l-.004-.004-.012.004-.105-.109.02-.02c.008-.016.012-.035.008-.062-.004-.02-.027-.078-.113-.059l-.078.023-.047.004c-.008.027.035 0 .047.047zm.328-.074c.008.051-.039.043-.035.059s.012.008.02.008l.051-.02.059-.012c.012-.023-.035 0-.051-.051l-.047-.199c-.008-.02 0-.023.012-.027l.035-.008c.043-.012.043.039.059.035.008 0 0-.02 0-.027l-.016-.035-.129.023-.121.027v.012l.004.059c.031.012 0-.043.051-.055l.027-.008c.016-.004.023 0 .027.02zm.203-.273c-.008-.039.023-.035.016-.051h-.012l-.051.016-.047.012c-.008.023.035 0 .047.035l.059.211c.008.039-.02.039-.02.051l.051-.008.059-.016c.008-.023-.027.008-.043-.047zm.086.102c.027.086.098.125.18.098.117-.039.109-.152.09-.211-.031-.09-.105-.125-.18-.102-.09.031-.121.121-.09.215zm.039-.039c-.023-.062-.023-.133.043-.148.047-.02.109.012.145.105.023.07.02.137-.043.16-.07.02-.121-.059-.145-.121zm.285-.207c-.008-.027 0-.031.016-.035.035-.012.074.008.09.051.008.023.016.047-.043.07-.012 0-.023.008-.027 0zm.031.211c.02.051-.016.051-.008.063l.07-.023.035-.004c0-.027-.031.004-.047-.043l-.031-.07c-.004-.016-.004-.02.012-.027s.027-.004.043.012l.059.051c.02.02.043.043.074.031.012-.008.035-.027.027-.039l-.008-.004-.008.008h-.016l-.105-.094.016-.023c.008-.02.008-.043 0-.062s-.039-.074-.117-.043l-.074.031-.047.016-.008.008c.008.016.043-.016.059.031l.078.188zm0 0\"/></g><path d=\"M9.906 6.582h1.969v1.969H9.906zm0 0\" class=\"ca-F\"/><g class=\"ca-P\"><path d=\"M10.828 8.133s0 .07-.02.125c-.023.066-.023.066-.043.098s-.055.07-.094.094a.22.22 0 0 1-.145.039c-.129-.008-.191-.152-.219-.27s-.121-.191-.18-.145c-.035.027-.035.07-.008.113.027.031.059.055.098.066l-.07.09s-.148-.02-.18-.18c-.012-.059.02-.168.117-.203.129-.043.207.047.25.125.051.105.074.297.223.27.082-.02.121-.137.121-.191l.059-.062zm0 0\"/><path d=\"M10.953 8.133a.54.54 0 0 0 .016.125c.027.066.027.066.047.098s.055.07.09.094c.051.031.098.043.145.039.129-.008.191-.152.223-.27s.121-.191.18-.145c.035.027.035.07.008.113a.23.23 0 0 1-.098.066l.066.09s.152-.02.18-.18c.016-.059-.016-.168-.117-.203-.125-.043-.203.047-.246.125-.051.105-.078.297-.227.27-.082-.02-.117-.137-.117-.191l-.059-.062zm0 0\"/></g><path d=\"M11.066 7.297l.258-.281s.039-.031.039-.082l-.051.008-.012-.027-.004-.027.07-.016V6.84l.008-.031-.074.004.004-.031.016-.023.043-.012h.047c.043-.082.219-.152.344-.023.094.098.074.27-.047.316a.15.15 0 0 1-.164-.027l.051-.094c.063.039.117-.008.113-.059a.11.11 0 0 0-.102-.109c-.059-.004-.098.023-.121.074-.016.031-.008.051-.012.086s0 .055-.012.09-.031.063-.059.086l-.266.289-1.031 1.113-.074-.07zm0 0\" class=\"ca-D\"/><path d=\"M10.309 7.391s.063.324.285.805c.113-.039.176-.066.297-.066s.184.023.297.066c.121-.258.219-.527.285-.805l-.582-.742-.586.742zm0 0\" class=\"ca-P\"/><path d=\"M10.945 6.898l.402.52s-.051.254-.215.633a.99.99 0 0 0-.187-.031zm-.113 0l-.402.52a3.94 3.94 0 0 0 .215.633 1.01 1.01 0 0 1 .188-.031zm1.254-.316h1.973v1.969h-1.973zm0 0\" class=\"ca-D\"/><path d=\"M12.363 6.582h.293v1.969h-.293zm.563 0h.293v1.969h-.293zm.563 0h.297v1.969h-.297zm0 0\" class=\"ca-F\"/><path d=\"M9.91 10.258c.004.035.02.098.055.16.035.055.02.051.102.141.043.047.094.082.148.109a1.21 1.21 0 0 0 .563.098 1.74 1.74 0 0 0 .246-.027 2.94 2.94 0 0 1 .414-.02c.055 0 .113.012.176.02a1.82 1.82 0 0 1 .262.078V8.766H9.902v1.398l.008.09zm0 0\" class=\"ca-D\"/><path d=\"M10.141 10.617l.094.055.125.047V8.762h-.219zm1.094.09V8.762h-.219v1.977l.219-.023zm.438-1.945h-.215v1.953a2.23 2.23 0 0 1 .215.035zm-.875 0v2s-.145.008-.219 0v-2zm0 0\" stroke=\"rgb(83.529412%,16.862745%,11.764706%)\" class=\"ca-F ca-O\"/><path d=\"M14.051 10.258c-.008.055-.023.109-.051.156-.035.059-.023.059-.105.145s-.191.145-.309.168c-.133.035-.266.047-.398.039-.105-.004-.184-.016-.25-.023a1.81 1.81 0 0 0-.262-.023.94.94 0 0 0-.148 0c-.152.016-.297.051-.441.102V8.762h1.973v1.402l-.008.09zm0 0\" class=\"ca-D\"/><path d=\"M12.59 8.93l-.016.004-.016.02-.031.02-.016.012c-.004.008 0 .012-.004.023s-.008.016-.016.023-.016.012-.023.023l-.031.023-.004.004h-.016c-.012.004-.012.016-.02.02l.008.012.02.035c.004.008.004.016.012.02s.02.004.031.004c.02.004.031.004.047.012l.035.02.031.012h.043v.008l.051.023c-.008.016-.008.023-.008.027.016.047.031.07.039.078s.02.02.023.035l-.004.008c-.016.012-.031.023-.043.043-.016.027-.027.027-.008.066l.035.059a.1.1 0 0 1 .02.047c.008.016.008.027.008.047l.023.008.02-.012.012-.031v-.023c-.004-.027.008-.023.012-.031s-.008-.02-.016-.027c-.016-.016-.031-.02-.039-.043 0-.008 0-.012.012-.02l.047-.043c.004.004.016.004.023.004l.031.008c.016.008.023 0 .031 0h.008l.004.016c0 .023-.004.07.004.082l.008.016.004.016v.047l-.004.043c0 .008-.008.016-.012.023s-.016.008-.027.016v.023l.027.012.031.008.02-.008v-.012l.012-.016c.012-.004.02 0 .023 0 0-.035-.004-.043-.008-.059-.004-.023-.004-.043-.004-.066 0-.016 0-.023.008-.035 0-.023.008-.035.012-.055s.008-.039.012-.059c.078.012.164.008.242-.016.02.016.039.031.063.039v.023l.012.023c.023-.008.023-.012.023-.02v-.02h.043v.027c.016.012.023.012.027.012.008-.008.004-.016.008-.027v-.016l.023-.008-.008.043c-.004.012-.012.02-.02.031s-.012.027-.023.039l-.016.016-.016.02-.02.027c-.016.012-.027.004-.047.02l-.008.023.031.016.031.004.012-.004c0-.008 0-.016.008-.02.023-.008.035-.008.039-.016.012-.004.012-.023.016-.035.02-.035.043-.066.074-.094l.039-.031c.008-.012.012-.016.012-.027l-.004-.012-.004-.023c.035.016.023.016.027.031s0 .023.004.043.012.023.012.043-.004.035-.008.055 0 .031-.012.051c-.004.012-.016.023-.027.035l-.012.012-.004.023.027.012.039.008.008-.008c.004-.016 0-.039.008-.039s.02 0 .02-.008v-.016l.02-.109.008-.047.012-.039c.016-.047-.008-.055-.027-.086-.012-.02-.016-.023-.016-.035v-.07-.066l.012-.008c.027-.016.039-.02.055-.059.008-.012.008-.023.008-.035v-.023l-.008-.027c-.004-.004-.008-.012-.016-.016-.016-.027-.039-.027-.066-.039-.035-.012-.059-.008-.094-.012-.043-.004-.066-.004-.105 0-.047 0-.074.012-.121.02l-.121.008c-.055 0-.105-.012-.137-.008-.059.004-.062.016-.148.023l-.094.008-.051-.02c.02-.008.027-.012.035-.023s.004-.016.016-.027l.016-.023c-.008-.004-.012-.008-.02-.008h-.027c-.008 0-.02 0-.027.008l-.02.012-.051-.027c-.023-.012-.047-.02-.074-.023zm.047.281zm0 0\" class=\"ca-F\"/><g class=\"ca-Q\"><path d=\"M13.652 9.227l-.02.008c-.023.012-.039.012-.062.012-.063.008-.105-.023-.168-.02-.035 0-.047.027-.086.039-.012 0-.027.004-.039.004l.012-.023s-.027.008-.047.008-.027-.004-.039-.008l.023-.023-.031-.004c-.008-.004-.016-.012-.023-.016.012-.004.027-.004.039-.008.035-.012.051-.031.094-.035.027 0 .074 0 .184.02.07.012.105.004.133-.008.02-.008.023-.023.023-.043s-.008-.031-.016-.043c-.004 0-.016-.008-.027-.008\" class=\"ca-B ca-C ca-I\"/><path d=\"M12.594 9.016c-.012 0-.02 0-.031.008s-.012.016-.023.023c.012.004.02.012.031.008s.012-.004.02-.012.008-.016.008-.027zm0 0\" class=\"ca-J ca-K\"/><g class=\"ca-C ca-I\"><path d=\"M12.863 9.332l.023.055c.008.02 0 .027.008.047v.039m.16-.168l-.008.031-.023.086v.016m-.262-.098c.02.004.012.082.043.098\" class=\"ca-B\"/><path d=\"M13.441 9.477l.012-.008c.023-.012.047-.023.063-.043\"/><path d=\"M13.258 9.434c.082-.023.141-.062.184-.07m-.098-.035h.02c.035-.008.039.012.066.027.043.023.047.055.102.082h.008l.02.012\" class=\"ca-B\"/></g><path d=\"M12.426 9.109h.016l.02-.008c.02.008.02.008.023.012.004.02-.004.023-.012.023-.02-.012-.027-.012-.035-.016zm0 0\" class=\"ca-J ca-K\"/></g><path d=\"M12.602 9.34l-.047-.02c.008-.008.016-.008.023-.012.008-.012.008-.02.012-.031s.004-.023.016-.035c.008-.004.02-.004.027-.004s.02.012.023.02-.004.023-.008.035-.008.02-.004.035c0 .008.004.012.008.023l-.047-.012zm-.023.023c.02-.016.027-.012.027-.004-.016.02-.02.016-.023.016zm-.039-.398h-.008c-.008-.008-.008-.02-.012-.027s-.008-.02-.008-.027v-.051c-.004-.023-.016-.027-.012-.031.02 0 .023.004.031.012s.012.016.016.023l.012.035.004.02.012.016-.016.02zm.086.258l.051.023a.22.22 0 0 0 .086-.094.36.36 0 0 0 .031-.105l-.043-.012h-.008c-.012.043-.016.066-.039.102s-.039.055-.062.07zm.117.434l.02-.031.035-.023h.008c0 .02-.004.043-.012.066l-.008.023-.012.012c-.012-.02-.031-.031-.031-.047zm.793.043l.035.016.035.023v.012l-.035.004h-.031-.023l-.016-.012c.012-.016.02-.035.035-.043zm-.234-.047l.035.012.035.023c-.023.016-.043.02-.066.02l-.023-.004-.016-.008c.012-.016.02-.039.035-.043zm-.418.051l.035.012.039.023v.012c-.023.008-.047.008-.07.008h-.023l-.016-.012c.016-.016.02-.039.035-.043zm-.215-.715c-.016-.008-.023-.023-.016-.039.02-.016.016-.02.016-.027l-.004-.023-.004-.027c0-.012 0-.023.008-.035s.02-.016.02-.016c0 .031.004.035.008.047l.016.031c.008.016.012.02.012.035s0 .016-.004.027-.008.016-.016.02-.012.008-.02.012zm0 0\" class=\"ca-R\"/><path d=\"M12.59 9.805l-.016.008-.016.02c-.012.008-.02.012-.031.016l-.016.016c-.004.004 0 .012-.004.023s-.008.012-.016.023-.016.012-.023.023l-.031.023-.004.004h-.016c-.012.004-.012.012-.02.02l.008.012.02.035c.004.008.004.016.012.02s.02.004.031 0c.02.008.031.008.047.016l.035.016c.012.008.02.012.031.016h.043v.004l.051.027c-.008.016-.008.023-.008.027.016.047.031.07.039.078s.02.02.023.035l-.004.008c-.016.012-.031.023-.043.043-.016.027-.027.027-.008.066l.035.059a.1.1 0 0 1 .02.047c.008.016.008.027.008.047l.023.008.02-.016.012-.027v-.023c-.004-.027.008-.023.012-.031s-.008-.02-.016-.027c-.016-.016-.031-.02-.039-.047l.059-.059c.004.004.016.004.023.004l.031.008c.016.004.023 0 .031 0h.008l.004.016c0 .023-.004.07.004.082l.008.016.004.016v.047l-.004.039c0 .012-.008.02-.012.027s-.016.008-.027.016v.023l.027.012.031.008.02-.008v-.016l.012-.012c.012-.004.02 0 .023 0 0-.035-.004-.043-.008-.059-.004-.023-.004-.043-.004-.066 0-.016 0-.023.008-.035 0-.027.008-.035.012-.055s.008-.039.012-.059c.078.012.164.008.242-.016.02.016.039.027.063.039v.023l.012.023c.023-.008.023-.016.023-.02v-.02h.043v.027c.016.012.023.012.027.012.008-.008.004-.016.008-.027v-.016l.023-.008-.008.043c-.004.012-.012.02-.02.031s-.012.023-.023.035l-.031.039-.02.023c-.016.016-.027.008-.047.023l-.008.023.031.016.031.004.012-.004c0-.008 0-.016.008-.02.023-.012.035-.012.039-.016.012-.008.012-.023.016-.035.02-.035.043-.066.074-.094l.039-.035c.008-.008.012-.012.012-.023l-.004-.012-.004-.027c.035.02.023.02.027.035s0 .023.004.043.012.023.012.043-.004.035-.008.055 0 .031-.012.051c-.004.012-.016.023-.027.035l-.012.012-.004.023.027.008.039.012.008-.008c.004-.016 0-.039.008-.039s.02 0 .02-.008v-.016l.02-.109.008-.047.012-.039c.016-.051-.008-.055-.027-.086-.012-.02-.016-.027-.016-.039v-.066-.07l.012-.004c.027-.016.039-.02.055-.059.008-.012.008-.023.008-.035v-.027l-.008-.023c-.004-.008-.008-.012-.016-.02-.016-.023-.039-.023-.066-.035-.035-.012-.059-.008-.094-.012-.043-.004-.066-.004-.105 0-.047 0-.074.012-.121.016l-.121.012c-.055 0-.105-.012-.137-.012-.059.008-.062.02-.148.027-.031.004-.062.004-.094.004l-.051-.016c.02-.008.027-.012.035-.023s.004-.016.016-.027l.016-.023c-.008-.004-.012-.008-.02-.008h-.027c-.008 0-.02 0-.027.004l-.02.016-.051-.027c-.023-.012-.047-.02-.074-.023zm.047.285zm0 0\" class=\"ca-F\"/><g class=\"ca-Q\"><path d=\"M13.652 10.105l-.02.008c-.023.012-.039.012-.062.012-.063.004-.105-.027-.168-.02-.035 0-.047.027-.086.035-.012.004-.027.008-.039.008l.012-.023s-.027.004-.047.004-.027 0-.039-.004l.023-.023-.031-.004c-.008-.004-.016-.012-.023-.02.012 0 .027-.004.039-.004.035-.012.051-.031.094-.035.027 0 .074 0 .184.02.07.012.105.004.133-.008.02-.008.023-.023.023-.043s-.008-.035-.016-.043c-.004 0-.016-.008-.027-.008\" class=\"ca-B ca-C ca-I\"/><path d=\"M12.594 9.895c-.012 0-.02 0-.031.004s-.012.02-.023.027c.012.004.02.012.031.008s.012-.004.02-.012.008-.016.008-.027zm0 0\" class=\"ca-J ca-K\"/><g class=\"ca-C ca-I\"><path d=\"M12.863 10.211l.023.055c.008.02 0 .027.008.047v.039m.16-.168l-.008.031-.023.082v.02m-.262-.098c.02.004.012.078.043.098\" class=\"ca-B\"/><path d=\"M13.441 10.355l.012-.008c.023-.012.047-.027.063-.043\"/><path d=\"M13.258 10.309c.082-.02.141-.063.184-.066m-.098-.039h.02c.035-.004.039.016.066.031.043.023.047.055.102.082h.008l.02.012\" class=\"ca-B\"/></g><path d=\"M12.426 9.988h.016l.02-.008c.02.008.02.008.023.012.004.02-.004.023-.012.023-.02-.016-.027-.016-.035-.016zm0 0\" class=\"ca-J ca-K\"/></g><path d=\"M12.602 10.219l-.047-.02c.008-.008.016-.008.023-.012.008-.012.008-.02.012-.031s.004-.027.016-.035.02-.004.027-.004.02.012.023.02-.004.023-.008.035-.008.02-.004.031.004.016.008.027l-.047-.012zm-.023.023c.02-.016.027-.012.027-.004-.016.02-.02.016-.023.012zm-.039-.398h-.008c-.008-.008-.008-.02-.012-.027s-.008-.02-.008-.027v-.051c-.004-.027-.016-.027-.012-.031.02 0 .023.004.031.012s.012.012.016.023l.012.035.004.02.012.016-.016.02zm.086.254l.051.027a.22.22 0 0 0 .086-.094.36.36 0 0 0 .031-.105l-.043-.012h-.008c-.012.043-.016.066-.039.102s-.039.055-.062.07zm.117.438l.02-.031.035-.027h.008c0 .023-.004.047-.012.07l-.008.023-.012.012c-.012-.02-.031-.031-.031-.047zm.793.043l.035.016.035.02v.016l-.035.004h-.031-.023l-.016-.012c.012-.016.02-.035.035-.043zm-.234-.047l.035.012.035.023c-.023.016-.043.02-.066.02l-.023-.004-.016-.008c.012-.016.02-.039.035-.043zm-.418.051l.035.012.039.023v.012c-.023.004-.047.008-.07.004h-.023l-.016-.008c.016-.016.02-.039.035-.043zm-.215-.715c-.016-.008-.023-.023-.016-.039.02-.016.016-.023.016-.027l-.004-.027-.004-.023c0-.012 0-.023.008-.039.008-.004.02-.012.02-.012 0 .031.004.035.008.047l.016.031c.008.016.012.02.012.035s0 .016-.004.027-.008.016-.016.02a.03.03 0 0 1-.02.008zm0 0\" class=\"ca-R\"/><path d=\"M9.902 6.582h1.973v1.969H9.902zm2.184 0h1.973v1.969h-1.973zM9.91 10.258c.004.035.02.098.055.16.035.055.02.051.102.141.043.047.094.082.148.109a1.21 1.21 0 0 0 .563.098 1.74 1.74 0 0 0 .246-.027 2.94 2.94 0 0 1 .414-.02c.055 0 .113.012.176.02a1.82 1.82 0 0 1 .262.078V8.766H9.902v1.398l.008.09zm4.141 0a.48.48 0 0 1-.051.16c-.039.055-.023.051-.102.141-.043.047-.094.082-.152.109-.047.027-.086.039-.164.062-.129.031-.262.047-.398.035-.102-.004-.18-.02-.242-.027-.09-.012-.18-.02-.27-.02a.94.94 0 0 0-.148 0c-.055 0-.109.012-.176.02-.129.027-.262.078-.262.078V8.762h1.977v1.406l-.008.09zm0 0\" stroke-width=\".019\" class=\"ca-C ca-G\"/></svg>')\n        },\n        zh: {\n            languageName: 'Chinese',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(87.058824%,16.078431%,6.27451%)\"/><path d=\"M2.879 6.66L4.5 1.801 6.121 6.66l-4.32-2.969h5.398zm7.027-4.765l-1.668.367L9.352.965l-.109 1.746-.926-1.543zm1.684 2.132l-1.68-.309 1.527-.762-.777 1.566-.254-1.785zm-.246 2.989l-1.41-.965 1.707-.07-1.348 1.109.496-1.73zM9.223 8.973l-.926-1.434 1.602.59-1.672.504L9.352 7.23zm0 0\" fill=\"rgb(100%,87.058824%,0%)\"/></svg>')\n        },\n        hr: {\n            languageName: 'Croatian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.hr-B{fill:rgb(0%,0%,0%)}.hr-C{fill:rgb(100%,100%,100%)}.hr-D{fill:rgb(96.862745%,85.882353%,9.019608%)}.hr-E{fill-rule:evenodd}.hr-F{fill:rgb(100%,0%,0%)}.hr-G{fill:rgb(9.019608%,9.019608%,58.823529%)}.hr-H{fill:rgb(0%,57.647059%,86.666667%)}]]></style><path d=\"M0 0h24v18H0z\" class=\"hr-G\"/><path d=\"M0 0h24v12H0zm0 0\" class=\"hr-C\"/><path d=\"M0 0h24v6H0zm12 13.652c1.922 0 3.5-1.574 3.5-3.496V6h-7v4.156c0 1.926 1.578 3.5 3.5 3.5zm0 0\" class=\"hr-F\"/><path d=\"M12 13.598a3.44 3.44 0 0 0 3.434-3.43V6.066H8.57v4.098c.004 1.891 1.539 3.422 3.43 3.43zm0 0\" class=\"hr-C\"/><path d=\"M10.016 6.195H8.699v1.449h1.32zm0 2.902h1.324V7.645h-1.328zM8.699 10.16c0 .129.008.262.023.387h1.297V9.098h-1.32zm3.965-1.062h-1.32v1.449h1.32zm0 2.902h1.32v-1.453h-1.32zm1.32.797a3.4 3.4 0 0 0 .754-.797h-.75v.797zM10.016 12h1.324v-1.453h-1.328zm-.754 0a3.4 3.4 0 0 0 .754.797V12zm2.969 1.453c.148-.012.285-.031.43-.062V12h-1.32v1.391a3.2 3.2 0 0 0 .426.063c.156.008.309.004.465 0zm3.046-2.906c.016-.125.023-.258.023-.387V9.098h-1.32v1.449zM12.66 9.098h1.32V7.645h-1.32zm0-2.902h-1.32v1.449h1.32zm2.641 1.449v-1.45h-1.32v1.449zm0 0\" class=\"hr-F\"/><path d=\"M15.375 5.953l.816-1.855-.621-1.004-1.035.383-.727-.832-.953.551L12 2.492l-.852.699-.957-.547-.727.832L8.43 3.09l-.621 1.012.816 1.852A8.24 8.24 0 0 1 12 5.23a8.2 8.2 0 0 1 3.375.723zm0 0\" class=\"hr-C\"/><path d=\"M9.488 3.555L8.461 3.18l-.574.926.223.5.555 1.262c.418-.184.852-.336 1.297-.449zm0 0\" class=\"hr-H\"/><path d=\"M9.426 4.473a.5.5 0 0 1 .062.234.5.5 0 0 1-.504.496.5.5 0 0 1-.492-.402c.09.16.258.258.441.258a.51.51 0 0 0 .383-.18.49.49 0 0 0 .109-.406zm0 0\" stroke=\"rgb(0%,0%,0%)\" stroke-width=\".011\" class=\"hr-C\"/><path d=\"M8.535 4.273l.039-.184-.145-.117-.004-.004.008-.004.172-.062.039-.18v-.008l.008.004.137.121.172-.059h.008v.008l-.035.18.137.117.008.008h-.012l-.172.063-.035.18v.008l-.004-.004-.141-.121-.172.059h-.012zm0 0\" class=\"hr-B\"/><path d=\"M8.762 4.035l.129.113.16-.059zm0-.008l.289.059-.125-.109zm-.312-.059l.293.055-.133-.113zm.293.063l-.293-.055.129.109zm.016-.012l.195-.223-.164.055zm-.211.242l.195-.227-.164.055zm.199-.223l-.195.227.16-.059zm.207-.242l-.191.227.16-.055zm-.207.227l-.098-.285-.035.168zm.102.301l-.094-.281-.035.168zm-.09-.285l.098.281.031-.168zm-.102-.301l.094.281.035-.168zm0 0\" class=\"hr-D\"/><path d=\"M11.156 3.277l-.953-.539-.715.82.473 1.859a7.87 7.87 0 0 1 1.352-.223zm0 0\" class=\"hr-G\"/><path d=\"M9.844 4.957a8.45 8.45 0 0 1 1.434-.238l-.039-.484a9.09 9.09 0 0 0-1.516.25zm-.234-.937a9.44 9.44 0 0 1 1.59-.262l-.043-.477a10.47 10.47 0 0 0-1.668.277zm0 0\" class=\"hr-F\"/><path d=\"M12.852 3.277l-.004.004-.844-.695-.844.691.156 1.918.688-.031.688.031zm0 0\" class=\"hr-H\"/><path d=\"M12 4.141c-.02.027-.035.047-.055.066-.016.008-.02.016-.012.031-.023 0-.027.02-.027.039-.023-.035-.047-.043-.074-.027 0-.02-.016-.031-.039-.035-.016 0-.027-.004-.039-.012-.023-.02-.035-.012-.031-.004l.074.117.02.051c-.023.004-.043 0-.062 0s-.023-.004-.031-.012c-.008.055.004.098.043.141h-.059c.004.035.023.063.066.078-.02.008-.031.023-.031.047s-.008.031-.02.039c.02.027.047.027.074.02-.012.023-.02.051-.016.074.02.008.035.004.055-.004-.004.008-.004.016-.004.027s-.004.02-.012.031c.031.016.059.016.082.004 0 .023 0 .043.008.066.023-.016.039-.035.059-.043.004.008.008.016.012.02.012.004.016.012.016.027.016.012.047-.023.055-.043.02.012.027.02.039.039.016-.023.02-.043.02-.066.023.012.051.012.078.004l-.008-.039c0-.012 0-.02-.004-.027.016.008.035.012.055.004.004-.023-.004-.051-.02-.074.031.008.059.008.082-.008-.016-.02-.02-.031-.023-.051s-.012-.039-.031-.047a.12.12 0 0 0 .074-.07c-.027-.008-.051-.008-.07-.008.039-.043.055-.086.055-.137-.016.004-.023.008-.039.008s-.039 0-.059.012c0-.023.008-.035.012-.047l.074-.133c-.02-.004-.023 0-.027.004-.012.008-.023.012-.039.012-.023.004-.039.016-.039.035-.027-.016-.051-.008-.074.027 0-.02 0-.039-.023-.039.004-.016 0-.023-.016-.031-.02-.02-.043-.039-.059-.062zm0 0\" class=\"hr-B\"/><g class=\"hr-D\"><path d=\"M12.227 4.266c-.02.016-.02.023-.012.023l.012-.008zm-.445 0c.016.016.016.023.012.023-.016-.016-.016-.023-.012-.023zm.402.078zm-.359 0zm.383-.027c-.066-.008-.133-.012-.199-.012a1.77 1.77 0 0 0-.203.012l.203-.004a1.59 1.59 0 0 1 .195.012zm0 0\"/><path d=\"M11.805 4.309l.203-.008c.066 0 .133.004.199.012l.012-.016c-.016-.004-.016-.016-.012-.027s.016-.016.02-.012l.047-.055c-.02.012-.027.02-.051.023s-.039.012-.035.027c-.043-.012-.062.008-.074.035-.008.016-.016.016-.016 0 0-.039-.008-.047-.02-.039-.008-.012-.004-.016-.008-.023L12 4.152l-.047.063c-.016.02-.012.023-.008.027-.023 0-.027.008-.031.027 0 .035-.008.035-.016.02-.008-.027-.031-.047-.059-.031-.012.008-.02.008-.016-.004s-.012-.023-.035-.027-.035-.012-.051-.023l.035.059c.012-.008.023 0 .027.008s.004.023-.004.023zm.391.082c-.02.02-.027.023-.035.027.004-.008.012-.016.016-.02-.004-.008-.012-.008-.02-.012-.008.004-.012.008-.02.012-.02.008-.016.008-.016.008.016-.016.02-.02.023-.02-.012 0-.02 0-.031-.004h-.008c-.023.004-.027.008-.027.012-.012-.012-.02-.012-.031-.012-.02.008-.016.008-.016.008-.004-.008-.016-.012-.027-.012s-.02.004-.031.004h-.039-.031c-.016.004-.027.004-.035.004.016.008.02.012.023.02l-.039-.02c-.008 0-.016.004-.023.004.012.012.02.02.027.023-.012 0-.02-.004-.023-.012-.031-.02-.043-.023-.062-.023s-.031-.004-.043-.008c.004.008.008.016.012.02s.012.012.02.012c.004.02.008.027.016.039.004.004.012.008.02.012-.008-.008-.012-.016-.016-.023s-.008-.023-.008-.035c.004.012.004.023.012.035s.016.02.027.031c-.02 0-.031-.008-.039-.016s-.012-.023-.016-.035c-.008-.004-.016-.008-.02-.016s-.008-.012-.012-.02c.004.039.016.07.043.102a.04.04 0 0 0 .023.02c-.004.012 0 .016.008.02s.02.012.02.023a.04.04 0 0 0-.023-.02l-.035-.016h-.039c.02.012.027.016.039.02s.016.004.023.008.012.008.016.016c-.008-.004-.016-.008-.02-.012-.035-.008-.043-.012-.051-.016 0 .023.023.039.059.047.012.004.02.008.027.008s.016.004.023.004c-.008.004-.016.004-.023.004-.016-.004-.02-.004-.023-.004-.02 0-.039.02-.039.043.008-.004.016-.012.023-.016s.023-.008.031-.008c-.008.004-.02.008-.027.012a.17.17 0 0 0-.027.023c-.004.012-.008.023-.02.035.023 0 .031-.004.039-.008s.016-.004.023-.004c-.008.004-.016.008-.023.008s-.012.008-.02.012c.02.004.043-.004.059-.008s.023-.008.027-.012c-.016.02-.02.02-.02.023-.012.008-.016.016-.02.023l.043-.031c-.008.012-.02.02-.027.027l-.02.031c.008-.004.016-.012.027-.02s.023-.012.035-.012c-.012.004-.023.008-.031.016s-.023.02-.035.035c.02 0 .035-.004.051-.008.008-.004.016-.016.02-.016l.016-.016c-.008.016-.012.02-.016.023s-.016.016-.016.023c-.004.02-.004.031-.012.051.02-.016.023-.023.027-.031s.008-.02.016-.023.016-.012.023-.016c-.008.008-.016.012-.02.02s-.012.012-.016.02-.004.016-.012.023c.004.012.016.004.023 0s.008-.012.012-.02c.004.012-.004.02-.008.023s-.012.008-.02.008c.016 0 .027-.004.043-.008.004-.004.008-.016.012-.02.012-.02.016-.023.023-.023-.016.02-.016.023-.02.027s-.004.02-.004.027c0 .02 0 .035.004.055.004-.008.008-.012.016-.02 0-.008 0-.02.004-.027s0-.023-.004-.031c.008.008.008.02.008.031s0 .016-.004.023c.012-.016.012-.023.016-.031-.004-.023-.004-.023 0-.023.004.008.004.016.004.023.012-.02.012-.023.012-.031.008.008.008.012.008.02 0 .027.004.039.012.043s.012.012.016.023v-.035c0-.016-.004-.023-.012-.035.012.008.016.02.016.035a.08.08 0 0 1 0 .043c.012-.008.035-.023.031-.055.016.008.016.008.02.008-.004-.023-.004-.031-.004-.035l.012.043c.004-.027.004-.035.004-.047.004.012.004.02.004.031s.004.02.004.027c.008.008.012.012.016.02.004-.02.008-.035.004-.055 0-.008-.004-.02-.004-.027-.012-.02-.016-.02-.023-.023.008-.004.016 0 .02.008.012.012.016.027.02.031.016.004.027.008.043.008a.03.03 0 0 1-.02-.008c-.008-.004-.012-.012-.016-.02.008.004.016.012.02.016s.027.012.035.012c-.02-.02-.023-.023-.027-.035s-.008-.016-.012-.02-.012-.012-.023-.016c.012 0 .02.004.027.012s.012.012.016.023.004.016.012.02c.004-.008.008-.02.004-.039-.004-.012-.02-.023-.02-.027.008-.004.016.008.023.012.016.004.031.008.047.008-.008-.016-.02-.027-.031-.035s-.02-.012-.031-.008c.012-.008.023-.004.035.004s.02.016.027.027c-.008-.02-.016-.027-.023-.039a.07.07 0 0 0-.027-.02c.016 0 .023.008.031.016s.016.02.02.027c0-.004-.004-.012-.008-.02s-.008-.016-.016-.023-.02-.016-.02-.016c-.008-.008-.016-.008-.02-.008.02 0 .023.004.027.004s.012.004.02.008c.016.008.039.012.059.008-.008-.004-.016-.008-.02-.012s-.016-.004-.023-.004c.008-.004.016-.004.023 0l.023.012c.004-.016 0-.027-.004-.039s-.02-.016-.027-.023-.02-.008-.027-.004c.008-.008.02-.008.031 0s.016.012.023.02c-.004-.027-.02-.047-.039-.047.039-.02.063-.035.078-.07-.023.016-.035.02-.047.023-.027.008-.031.012-.035.016.02-.02.023-.02.031-.023.016-.004.023-.008.031-.012 0-.008-.016-.008-.027-.008s-.027.012-.035.016-.02.012-.02.02c-.004-.012.004-.02.016-.023.004-.004.012-.008.02-.012-.004-.012.008-.02.012-.027a.18.18 0 0 0 .039-.102.03.03 0 0 1-.008.02c-.008.008-.012.012-.02.016-.004.012-.008.023-.016.035s-.02.016-.035.02c.012-.016.02-.023.023-.035s.008-.023.008-.035c.004.012.004.023-.004.035s-.008.016-.016.023c.008-.004.012-.008.02-.012.004-.012.012-.02.012-.035.012-.004.016-.008.023-.016a.03.03 0 0 0 .008-.02c-.012.004-.023.004-.039.008a.12.12 0 0 0-.051.012zm0 0\"/><path d=\"M12.188 4.375c-.059-.008-.121-.008-.18-.008l-.184.008h.18l.184.008zm0 0\"/><path d=\"M11.824 4.367l.184-.008c.059 0 .117.004.18.012l.004-.012c-.012 0-.016-.004-.02-.008.016-.016.02-.012.023-.008l.004-.012c-.062-.008-.129-.012-.191-.012l-.195.008.004.016c.016-.004.02 0 .02.008zm.273-.035c-.012.016-.004.023 0 .023.012-.02.008-.023 0-.023zm0 .004zm-.094-.008c-.012.02-.008.023 0 .023.008-.016.004-.023 0-.023zm0 .008zm-.098-.004c-.008.02-.004.023 0 .023.012-.02.008-.023 0-.023zm0 .004zm0 0\" class=\"hr-E\"/></g><g class=\"hr-B\"><path d=\"M12.008 4.266c-.016-.023-.02-.023-.027-.023.004-.008.008-.016.012-.02l.012-.023c.008.008.008.016.012.02s.012.008.02.012c-.02.02-.02.027-.023.035zm0-.012l.016-.02c-.012-.016-.016-.02-.016-.023-.012.02-.016.023-.02.023.016.012.02.016.02.02zm.074.453l-.047.02.043-.023zm.004-.027l-.055.027.051-.035zm-.164-.008l.055.031-.059-.023zm.004.031l.047.016-.047-.012zm.023.039c.012 0 .02.004.031 0l.016-.055c-.008 0-.02-.004-.027-.004s-.016-.008-.016-.016-.004-.023-.004-.031c.008.008.004.02.008.027.023.016.031.016.043.016s.016 0 .027-.004c.02-.016.02-.02.02-.027-.02-.008-.023-.008-.027-.008.02-.008.023-.008.027-.004.008.02.008.027 0 .031s-.012.012-.02.016-.016.004-.023.004v.043c.023.016.035.012.047.008-.012.012-.023.012-.031.012s-.016-.004-.02-.012c-.004.008-.012.008-.02.012s-.023 0-.035-.004zm.031.016h.035l-.035.008zm.051-.273l.039-.027c.012-.004.023-.008.031-.008-.008.008-.02.008-.027.016s-.023.016-.039.023zm-.055.004a.14.14 0 0 0-.039-.027c-.012-.004-.023-.008-.031-.008.008-.008.023-.004.035.004s.027.016.043.027zm-.016.09c0-.008.004-.012.012-.02l.016-.016c-.004.012-.008.016-.012.02s-.008.012-.012.02zm.031-.152c.004.004.008.012.012.02v.023c.004.008.004.016 0 .023s-.004.016-.008.023c-.02.008-.023.008-.027.008 0 .008.004.02 0 .027-.02-.008-.023-.008-.027-.008l-.023-.012c-.016-.016-.02-.02-.02-.023-.008-.02-.016-.023-.02-.027-.016-.012-.016-.016-.016-.016.012.004.016.008.02.012s.012.004.02.008.02.004.031.012.02.008.027.016c.023.004.027.004.031-.004.008-.023.008-.031.008-.039s0-.016-.004-.023c-.012-.02-.012-.02-.008-.02zm-.035.094c-.008-.008-.016-.016-.027-.02s-.016-.008-.027-.008c.004.016.004.02.008.023.02.016.023.016.031.02.016.008.02.008.02.008.004-.008 0-.016 0-.023zm.07-.09c-.012.023-.012.031-.012.039v.023c0 .004.004.012.008.02.016.008.02.008.023.004h.004c.012-.012.02-.016.031-.02s.02-.008.031-.012.012-.008.02-.008c.012-.012.016-.016.016-.012-.02.02-.023.023-.031.027-.004.02-.004.023-.008.027-.02.016-.027.02-.035.023-.016.004-.02.008-.023.008-.008-.008-.008-.02-.004-.027-.02 0-.023-.004-.027-.008s-.008-.016-.012-.023v-.023c0-.008.004-.016.004-.023s.008-.016.012-.02zm.082.063c-.008 0-.016.004-.027.008s-.016.012-.027.02c-.004.008-.004.016-.004.023.012-.004.016-.004.02-.008s.016-.004.02-.008c.016-.016.02-.02.02-.023zm0 0\"/><path d=\"M12.082 4.496c-.012 0-.02.012-.02.02s.008.02.02.02.02-.008.02-.02-.008-.02-.02-.02zm0 .008c-.012.02-.008.027 0 .027.012-.023.008-.027 0-.027zm0 .004zm-.152-.012c.012 0 .02.012.02.02s-.008.02-.02.02-.016-.008-.016-.02.008-.02.016-.02zm0 .008c.016.02.008.027 0 .027-.012-.023-.004-.027 0-.027zm0 .004zm0 0\" class=\"hr-E\"/><path d=\"M11.609 3.266l-.051.07c-.016.008-.02.02-.016.031-.023 0-.023.02-.023.039-.023-.031-.047-.039-.074-.023 0-.02-.016-.027-.039-.031-.016 0-.031-.008-.039-.012-.027-.016-.035-.008-.031-.004l.074.113c0 .008.004.016.012.02l.012.035h-.062c-.016 0-.023-.004-.031-.012-.008.055.008.098.051.137-.02.004-.043.004-.062.004.008.039.027.063.07.078-.02.008-.027.023-.031.047s-.004.031-.016.039c.02.027.047.027.078.016-.016.027-.02.051-.016.078.02.004.035 0 .055-.008-.004.008-.004.016-.004.027s-.004.02-.008.031c.031.016.059.012.082.004 0 .02 0 .043.008.063.023-.016.039-.035.059-.047 0 .008.004.016.012.02s.016.016.016.031c.016.008.047-.027.055-.047.02.008.027.02.039.039.016-.027.016-.047.016-.066.023.008.051.008.082 0-.008-.02-.012-.031-.012-.043s-.004-.02-.004-.023c.016.004.035.008.055 0 0-.023-.008-.051-.023-.074.031.008.059.004.082-.012-.016-.016-.023-.027-.023-.051s-.016-.035-.035-.043c.043-.02.063-.043.07-.07-.027-.012-.047-.012-.07-.012.039-.043.051-.086.051-.133-.016 0-.023.004-.039.008s-.039.004-.059.012a.12.12 0 0 1 .008-.043c.008-.008.012-.012.008-.02l.066-.117c-.02-.004-.027 0-.031.004-.012.008-.023.012-.039.012-.02.008-.035.02-.035.039-.027-.016-.051-.004-.07.027-.004-.02-.008-.039-.031-.035.008-.016.004-.027-.016-.031-.016-.02-.043-.039-.059-.062zm0 0\"/></g><g class=\"hr-D\"><path d=\"M11.84 3.383c-.016.016-.016.023-.012.027l.012-.012zm-.445.016c.02.016.02.023.016.027-.02-.016-.02-.023-.016-.027zm.406.066zm-.359.012zm.383-.039c-.066-.008-.137-.008-.203-.004a1.71 1.71 0 0 0-.199.016l.199-.008a1.13 1.13 0 0 1 .199.004zm0 0\"/><path d=\"M11.418 3.445c.07-.012.137-.016.203-.02s.133 0 .203.004l.008-.016c-.016-.004-.016-.016-.012-.023s.016-.02.02-.016l.043-.055c-.016.012-.027.02-.051.023s-.035.012-.031.027c-.043-.008-.062.016-.074.039-.016-.008-.016-.012-.016-.02-.004-.02-.008-.023-.02-.016-.012-.012-.004-.02-.008-.027l-.074-.07-.047.066c-.012.02-.008.023-.004.027-.023.004-.027.008-.031.027 0 .035-.008.035-.016.02-.008-.023-.031-.043-.059-.027-.012.008-.02.008-.016-.004s-.012-.023-.035-.027-.035-.008-.055-.02l.039.059c.012-.008.023-.004.027.008s.004.02-.004.023zm.395.066c-.02.016-.023.023-.031.027.004-.008.008-.016.012-.02s-.008-.012-.02-.012c-.004.004-.012.008-.02.012 0-.012-.012-.012-.02-.012h-.008-.023-.039-.039-.035c-.02.004-.027.004-.039.004s-.02 0-.027.004c-.02 0-.031 0-.039.004.016.008.023.012.027.016a.03.03 0 0 1-.02-.008c-.008-.004-.016-.004-.023-.008s-.016.004-.023.004c.016.012.02.02.027.023-.012 0-.016-.004-.023-.012-.027-.02-.043-.02-.062-.023s-.027 0-.043-.004c.004.008.008.016.016.02.02.012.02.016.02.016.004.012.008.023.016.031s.012.012.02.016c-.008-.008-.016-.016-.02-.023s-.008-.023-.008-.035c.008.008.008.02.016.031s.012.023.027.031c-.02 0-.031-.004-.039-.016s-.016-.02-.016-.035c-.012 0-.016-.004-.023-.012a.03.03 0 0 1-.008-.02c.004.039.016.07.043.102.004.004.016.016.023.016-.004.016.004.016.012.02s.02.016.02.023c-.008-.008-.016-.012-.023-.02l-.035-.012c-.016 0-.027 0-.043.004l.043.016c.008 0 .016.004.023.008.016.012.016.016.016.016-.008-.004-.016-.008-.02-.012s-.012-.004-.02-.008c-.016 0-.023-.004-.031-.008s-.012-.008-.02-.012c.02.035.043.051.078.059.012.004.023.004.031.004s.012.004.023.004c-.012.004-.016.004-.027.004s-.02-.004-.023 0c-.02 0-.035.02-.035.043.008-.004.016-.012.023-.02s.02-.008.031-.004c-.012 0-.02.004-.031.012s-.016.012-.027.023c0 .012-.004.023-.016.031.023 0 .031-.004.039-.004s.016-.008.023-.008c-.008.008-.016.008-.023.012s-.012.004-.02.008c.02.004.043 0 .059-.008s.023-.008.027-.012c.02-.008.02-.008.02-.004-.012.004-.012.004-.02.012-.016.012-.02.012-.02.016-.008.008-.012.016-.016.023s-.004.016-.008.023c.008-.012.012-.02.02-.027s.016-.02.027-.027a.17.17 0 0 1-.023.027c-.008.012-.016.023-.02.035.008-.004.016-.016.023-.023s.027-.016.039-.012c-.012.004-.023.008-.035.016s-.02.023-.031.035a.12.12 0 0 0 .051-.012c.008 0 .016-.012.02-.012.016-.016.016-.02.016-.016-.012.016-.012.02-.016.023s-.016.016-.016.023c-.004.02 0 .031-.008.051.02-.02.023-.023.023-.035s.008-.016.016-.023.012-.012.023-.016l-.02.02c-.008.008-.012.016-.012.023l-.012.023c.027-.008.031-.012.031-.02.004.008 0 .016-.008.023s.012.004.023-.004c.008 0 .008-.016.012-.02.012-.02.016-.023.023-.023-.012.02-.016.023-.02.027.004.008-.004.02-.004.027 0 .02.004.035.008.055.004-.008.008-.012.016-.02v-.031-.027c.008.008.008.02.008.031s-.004.016-.004.023c.012-.02.012-.023.012-.031 0-.023-.004-.023 0-.023.008.008.008.016.008.023.008-.02.008-.027.012-.031.004.023.004.031.008.039s.004.016.012.02.012.016.016.023v-.035l-.012-.031c.012.004.016.016.016.031a.08.08 0 0 1 0 .043c.012-.008.035-.023.031-.055.012.004.016.008.02.008-.008-.023-.008-.031-.004-.039.004.008.004.016.004.023s.004.012.008.02v-.043c.008.008.008.02.008.027s.004.02.004.031c.008.004.012.012.016.016.004-.016.004-.035.004-.055 0-.004-.008-.02-.008-.027-.012-.016-.016-.02-.023-.02.023.008.023.012.027.02.008 0 .008.016.016.016s.027.008.039.008c-.023-.012-.031-.02-.035-.027.012.004.016.012.02.016s.027.012.039.012c-.02-.02-.027-.027-.031-.035s-.008-.016-.012-.02-.016-.012-.023-.016c.012 0 .02.004.027.012a.06.06 0 0 1 .016.023c.004.008.008.012.012.02.008-.008.008-.023.004-.039s-.023-.023-.02-.027.012.004.023.008.031.008.047.008l-.031-.031c-.012-.008-.023-.012-.035-.012.012-.008.023-.004.035.008.012.004.02.012.031.023-.008-.016-.016-.027-.023-.035s-.02-.016-.031-.023c.016 0 .023.008.035.02s.012.016.02.027c-.004-.008-.004-.016-.008-.023s-.008-.016-.02-.023c-.004-.004-.02-.012-.02-.016-.02-.004-.023-.004-.02-.008.02.004.023.004.027.008.035.012.059.016.078.008a.03.03 0 0 1-.02-.008c-.008 0-.016-.004-.023-.004.008-.004.016-.004.023 0s.016.004.023.008c.004-.012-.004-.023-.004-.035-.012-.008-.02-.016-.031-.023s-.02-.008-.027-.004c.008-.008.02-.004.031 0s.016.012.023.02c0-.027-.02-.047-.039-.047.039-.02.063-.039.074-.074-.023.016-.031.02-.047.023-.008.004-.012.008-.02.008-.012.016-.012.016-.016.016.004-.008.008-.016.016-.02s.012-.004.02-.008l.031-.012c-.004-.008-.016-.008-.031-.008s-.023.012-.035.016-.016.012-.016.02c-.004-.008 0-.016.012-.023l.023-.012c-.004-.012.004-.02.008-.027.023-.031.035-.066.035-.102 0 .008-.004.012-.008.02s-.012.012-.02.016c0 .012-.008.023-.016.035s-.016.016-.031.02c.008-.016.016-.023.023-.035s.004-.023.004-.035c.008.012.004.023 0 .039-.004.004-.008.012-.016.02.023-.023.027-.035.031-.047.008-.004.016-.012.02-.016l.012-.023c-.016.008-.027.008-.043.012s-.031.008-.047.016zm0 0\"/><path d=\"M11.805 3.496a.92.92 0 0 0-.18-.004c-.062 0-.121.008-.184.016l.18-.008a1.44 1.44 0 0 1 .184 0zm0 0\"/><path d=\"M11.445 3.504a1.33 1.33 0 0 1 .18-.02l.18.004.004-.008c-.012 0-.016-.004-.02-.008.016-.016.02-.012.023-.008l.004-.016-.195-.004-.191.016.004.016c.016-.004.02 0 .02.008l-.008.016-.004.004zm.27-.051c-.012.02-.004.023 0 .023.012-.016.004-.023 0-.023zm0 .008zm-.098-.004c.008.02.012.016.012.008zm0 .004zm-.094 0c-.012.012-.012.016-.008.02.016.004.02-.004.02-.008zm0 .008zm0 0\" class=\"hr-E\"/></g><g class=\"hr-B\"><path d=\"M11.621 3.391c-.016-.02-.02-.023-.027-.023.004-.008.008-.012.012-.02a.03.03 0 0 0 .008-.02c.008.004.012.012.016.016s.012.012.02.012l-.016.016c-.004.004-.004.012-.008.02zm0-.012c.012-.016.012-.02.016-.02l-.02-.02c-.008.016-.012.02-.016.023.016.008.02.012.02.016zm.09.453l-.047.02.043-.027zm.004-.031l-.051.031.047-.035zm-.164 0l.055.027-.055-.02zm.008.031l.047.016-.051-.012zm.02.035c.012.004.023.004.035.004.004-.004.012-.008.016-.016l-.004-.043c-.008 0-.02 0-.027-.004-.02-.023-.02-.035-.02-.043.008.008.004.02.008.027.023.012.031.012.043.012s.02 0 .027-.004c.02-.016.02-.023.02-.027-.02-.008-.023-.008-.027-.008.016-.008.023-.008.027-.004.008.02.004.027 0 .031s-.012.012-.02.016-.016.004-.023.004v.043c.004.008.012.012.02.012s.02 0 .031-.004c-.012.012-.023.012-.031.012s-.016-.004-.02-.012c-.004.008-.012.012-.02.012s-.023.004-.035 0zm.035.02l.035-.004-.035.012zm.039-.277l.039-.027c.012-.008.02-.012.031-.012-.008.008-.02.012-.027.02s-.023.016-.035.027zm-.051.008c-.016-.012-.027-.02-.043-.027s-.023-.008-.031-.008c.008-.008.023-.004.035.004s.027.016.043.027zm-.016.09c.004-.008.004-.016.012-.02.016-.016.016-.02.02-.016-.008.008-.012.016-.016.02s-.008.012-.012.02zm.027-.156c.004.008.008.012.008.02s.008.016.008.027c-.004.027-.004.035-.008.043-.02.012-.023.012-.031.012.004.008.008.016.004.027-.02-.008-.023-.008-.027-.008-.012-.004-.016-.008-.023-.012-.016-.012-.02-.02-.023-.023-.008-.02-.012-.023-.02-.023-.016-.016-.016-.016-.012-.02l.035.023c.012 0 .023.004.031.008s.02.008.031.016c.023.004.027 0 .027-.004s.008-.012.008-.02c0-.031-.004-.039-.004-.043s-.008-.012-.012-.02zm-.031.094c-.008-.004-.02-.012-.027-.016s-.02-.004-.027-.008c0 .02.004.023.008.027.016.012.023.012.031.016.016.004.02.008.02.008.004-.008 0-.016-.004-.023zm.066-.09c-.004.004-.008.012-.008.02l-.004.023c.004.027.004.031.012.039s.02.008.023.004c.012-.012.023-.016.031-.023s.023-.008.031-.008.016-.008.02-.012c.012-.016.016-.016.016-.012-.016.02-.023.023-.027.027-.004.02-.008.027-.012.031-.016.016-.023.016-.031.02-.016.008-.02.012-.023.012-.008-.008-.008-.02-.004-.027-.02 0-.027-.004-.031-.008s-.008-.016-.008-.023c-.004-.031-.004-.039 0-.047s.004-.012.008-.02zm.086.059c-.012.004-.02.008-.027.012s-.02.012-.027.016c-.004.012-.004.02-.004.027.012-.004.016-.008.02-.008s.016-.008.02-.012c.016-.012.016-.016.02-.023zm0 0\"/><path d=\"M11.703 3.621c-.008 0-.016.008-.016.02s.008.02.02.02.02-.012.016-.02-.008-.02-.02-.02zm.004.004c-.008.004-.016.008-.016.016.023.012.027.004.027 0zm0 .008zm-.152-.008c.012 0 .02.008.02.02s-.008.02-.02.02-.02-.008-.02-.016.008-.02.02-.023zm0 .008c.012.02.008.027 0 .027-.012-.02-.008-.027 0-.027zm0 .004zm0 0\" class=\"hr-E\"/><path d=\"M12.391 3.27a.41.41 0 0 0-.055.066c-.02.004-.023.016-.016.031-.023-.004-.027.016-.031.035-.02-.035-.043-.043-.07-.031 0-.02-.016-.027-.035-.035-.02 0-.031-.008-.039-.012-.027-.02-.035-.012-.031-.008l.066.121c0 .008 0 .012.008.02l.012.035c-.023 0-.043-.004-.062-.004s-.023-.008-.031-.016c-.012.055.004.098.039.141h-.062c.004.039.023.063.066.082-.02.008-.031.023-.035.043s-.008.035-.02.039c.02.027.047.031.074.023-.012.023-.02.047-.02.074.02.008.035.004.055 0-.004.004-.004.016-.004.027s-.004.02-.012.027c.031.02.059.016.082.008 0 .023-.004.043.004.066l.059-.043c.004.008.008.016.016.02s.012.016.012.031c.016.012.047-.023.055-.043.02.012.027.023.039.043.016-.023.02-.043.02-.066.023.012.051.016.082.008-.004-.02-.008-.031-.008-.043s0-.02-.004-.023c.016.008.035.012.055.008.004-.027-.004-.055-.016-.078.027.008.059.008.082-.008-.016-.016-.02-.031-.02-.051s-.012-.035-.031-.047c.043-.016.063-.039.074-.062-.023-.012-.047-.016-.066-.016.039-.043.055-.082.059-.133-.016 0-.027.004-.039.008-.02 0-.039 0-.059.008 0-.023.008-.035.012-.047l.082-.129c-.02-.004-.023-.004-.031 0s-.023.012-.039.012c-.023.004-.039.016-.039.035-.027-.016-.051-.008-.074.023 0-.02 0-.039-.023-.039.008-.016 0-.023-.016-.031-.016-.023-.039-.043-.055-.066zm0 0\"/></g><g class=\"hr-D\"><path d=\"M12.613 3.402c-.02.016-.02.023-.016.023l.016-.008zm-.445-.016c.016.016.016.023.012.023-.016-.016-.016-.023-.012-.023zm.398.094zm-.355-.012zm.379-.016l-.199-.02-.199.004.199.004.199.02zm0 0\"/><path d=\"M12.188 3.43a1.76 1.76 0 0 1 .203 0 1.19 1.19 0 0 1 .203.02l.008-.016c-.012-.004-.016-.016-.008-.027s.016-.016.02-.012l.047-.051c-.016.008-.027.016-.051.02s-.035.012-.035.023c-.043-.012-.066.012-.074.035-.008.016-.016.016-.016 0 0-.039-.008-.047-.02-.039-.008-.012-.004-.02-.004-.027-.031-.031-.055-.051-.07-.074l-.051.063c-.016.016-.008.023-.008.027-.023 0-.027.004-.031.023-.004.035-.012.035-.016.02-.012-.027-.031-.047-.059-.035-.012.008-.02.008-.016-.004s-.008-.023-.035-.027c-.02-.004-.031-.016-.051-.027l.035.063c.012-.008.023 0 .027.008s0 .023-.004.027zm.387.098l-.035.027c.008-.008.012-.016.016-.02-.023-.012-.031-.008-.035-.004-.016.012-.016.012-.02.012.004-.008.008-.016.016-.016 0-.008-.008-.008-.02-.008l-.008-.004h-.023c-.016-.004-.027-.004-.035-.004-.02.012-.02.008-.02.008 0-.008-.012-.008-.023-.008s-.02-.004-.031-.004h-.039-.031c-.02 0-.027 0-.039.004.02.008.023.012.027.02-.008-.004-.012-.008-.02-.012a.03.03 0 0 0-.02-.008h-.023c.012.016.016.02.023.027-.012-.004-.016-.008-.023-.012-.027-.023-.039-.027-.059-.031s-.031 0-.043-.008l.012.023c.02.012.02.012.02.016 0 .012.008.023.012.035.008.004.012.008.02.012-.008-.008-.012-.016-.016-.023s-.008-.023-.004-.035c.004.012.004.023.008.035s.016.02.027.031c-.02 0-.031-.008-.039-.02s-.012-.02-.012-.035c-.012-.004-.016-.008-.02-.016-.012.02.004.055.027.086.004.008.012.016.02.02-.004.012.004.016.008.02.012.008.02.016.02.023-.004-.008-.012-.012-.02-.02s-.023-.012-.035-.016h-.043c.02.012.027.016.043.02a.03.03 0 0 1 .02.008c.008.004.012.008.016.016-.008-.004-.012-.008-.02-.012s-.012-.004-.02-.008l-.031-.012c0 .023.023.039.059.051.012.004.02.008.027.008s.016.004.023.004c-.008.008-.016.004-.023.004-.016-.004-.02-.004-.023-.004-.023 0-.039.02-.043.043.008-.004.02-.012.027-.016s.02-.008.031-.008l-.031.012c-.008.004-.02.012-.027.02-.004.016-.008.027-.02.035.023 0 .031-.004.039-.004s.016-.004.023-.004c-.008.004-.016.008-.023.008s-.012.004-.02.008c.02.004.039 0 .059-.004s.023-.008.027-.012c-.016.02-.02.02-.023.023s-.012.016-.016.023-.004.012-.008.02c.008-.008.012-.02.02-.027s.02-.016.031-.02c-.008.008-.02.016-.027.023s-.016.02-.02.031c.004-.004.016-.012.023-.02s.027-.012.039-.008c-.012.004-.023.008-.035.016s-.023.016-.031.027c.016.004.031 0 .047-.004.008-.004.016-.012.023-.012l.016-.016c-.012.016-.016.02-.016.023l-.02.02c-.004.02-.004.035-.012.051.02-.016.023-.023.027-.031s.008-.016.016-.023.016-.012.023-.012c-.004.008-.012.012-.02.016s-.012.016-.016.023-.008.016-.012.02c.027 0 .031-.008.035-.016 0 .012-.004.02-.012.023s.012.004.023 0 .012-.016.016-.02c.012-.016.016-.02.023-.023-.016.02-.02.023-.02.027s-.008.02-.008.027c0 .02 0 .035.004.055.004-.008.012-.012.016-.016 0-.012.004-.023.004-.031v-.031c.008.012.008.02.004.031v.023c.008-.016.012-.023.012-.031 0-.02 0-.02.004-.023.004.012.004.02.004.027.012-.02.012-.027.012-.031a.2.2 0 0 1 .004.039c0 .008.004.016.012.02s.012.016.016.027c0-.012.004-.027 0-.035 0-.016-.004-.023-.008-.035.012.008.016.02.016.035s0 .027-.004.043c.008-.008.035-.023.035-.055.012-.012.012-.02.016-.027.004.008.004.016.004.023l.004.023c.004-.027.004-.039.008-.047.004.008.004.02.004.027v.031c.008.004.012.012.016.02.004-.02.008-.035.008-.055 0-.008-.008-.02-.004-.027-.012-.02-.016-.023-.023-.023.008-.004.016 0 .02.008.012.012.012.027.02.031l.039.012c-.023-.016-.027-.023-.031-.031.008.004.012.012.02.016s.023.012.035.016c-.02-.02-.023-.027-.027-.035l-.012-.023c-.008-.008-.012-.012-.02-.016.008 0 .016.004.023.012s.012.016.016.023.004.016.008.023c.008-.008.012-.023.008-.039s-.02-.027-.016-.031.012.008.02.012c.016.008.031.012.051.012-.012-.016-.023-.027-.031-.035s-.023-.012-.031-.012c.012-.008.023 0 .031.008s.02.016.027.027a.18.18 0 0 0-.02-.039.17.17 0 0 0-.027-.023c.012.004.023.012.031.02s.012.02.016.027c-.008-.027-.012-.035-.02-.043s-.02-.016-.02-.02c-.008-.004-.016-.004-.02-.008.02.004.023.004.027.008.035.016.059.02.078.016-.008-.004-.016-.008-.02-.008s-.016-.004-.023-.008c.008-.004.016 0 .023 0l.023.012c.004-.012 0-.023-.004-.035s-.016-.02-.027-.027-.016-.008-.027-.004c.012-.008.023-.004.031 0s.016.012.023.02c0-.023-.016-.043-.035-.047.039-.02.063-.031.078-.066a.2.2 0 0 1-.047.02.03.03 0 0 0-.02.008c-.016.012-.016.012-.02.012.004-.012.012-.016.016-.02s.016-.004.023-.004l.031-.012c-.004-.008-.016-.008-.031-.008l-.035.012c-.012.004-.016.012-.02.02-.004-.012.004-.02.016-.023s.016-.008.023-.008c-.02-.004-.02-.008-.012-.012s.016-.012.023-.016c.023-.031.039-.062.043-.102-.004.008-.008.012-.012.02s-.012.012-.02.012c-.004.016-.008.027-.016.035s-.02.016-.035.02c.012-.016.02-.023.023-.035s.008-.023.008-.035c.008.012.004.027-.004.039s-.008.016-.016.02c.008 0 .012-.008.02-.012s.012-.02.016-.035c.008-.004.016-.008.02-.012s.008-.012.012-.02c-.012.004-.027.004-.039.004-.02 0-.035.004-.051.012zm0 0\"/><path d=\"M12.57 3.512a.93.93 0 0 0-.18-.016 1.44 1.44 0 0 0-.184 0l.18.008a.93.93 0 0 1 .18.016zm0 0\"/><path d=\"M12.207 3.492l.184-.004.18.02v-.012c-.016-.016-.012-.02-.004-.02l.016-.008a1.51 1.51 0 0 0-.191-.02 1.63 1.63 0 0 0-.195 0l.004.016c.016-.004.02 0 .02.008zm.273-.027c-.012.016-.004.023 0 .023.012-.02.008-.023 0-.023zm0 .004zm-.094-.012c-.012.02-.008.023 0 .023.012-.016.004-.02 0-.023zm0 .008zm-.094-.008c-.012.02-.008.023-.004.023.012-.02.008-.023.004-.023zm0 .008zm0 0\" class=\"hr-E\"/></g><g class=\"hr-B\"><path d=\"M12.391 3.395c-.012-.023-.016-.023-.023-.027.004-.008.012-.012.016-.016s.008-.016.008-.023c.008.008.012.016.016.02.02.016.02.02.016.02-.02.012-.02.02-.023.027zm.004-.012c.012-.016.016-.02.02-.02-.016-.016-.02-.02-.02-.023l-.016.023c.012.012.016.016.016.02zm.055.457l-.047.016.043-.023zm.008-.027l-.055.027.051-.035zm-.164-.012l.055.031-.059-.027zm.004.027l.047.02-.051-.016zm.02.039c.012.004.023.004.031.004l.02-.055c-.012-.004-.02-.004-.027-.008s-.016-.008-.016-.016-.004-.02 0-.027c.004.008 0 .02.004.027.023.012.031.016.039.016s.02 0 .027-.004a.03.03 0 0 0 .02-.008c.004-.02.004-.023 0-.023-.016-.004-.02-.004-.023-.004.02-.008.023-.004.027-.004.008.02.004.027 0 .035s-.012.008-.02.012-.016.004-.023.004l-.004.043c.023.016.035.016.047.012-.012.008-.023.012-.031.008s-.016-.004-.02-.012c-.004.004-.012.008-.02.012s-.02 0-.035-.004zm.031.02h.035l-.035.008zm.063-.273l.039-.023c.012-.004.023-.008.031-.008-.008.008-.02.008-.031.016s-.023.012-.035.023zm-.055.004a.14.14 0 0 0-.039-.027c-.012-.008-.023-.012-.031-.012.012-.008.023-.004.035.004s.027.02.039.031zm-.023.09c.004-.008.008-.016.016-.02s.008-.012.016-.016c-.004.012-.008.016-.012.02s-.008.012-.012.02zm.039-.152c.004.004.008.012.012.02v.023.023a.03.03 0 0 1-.008.02c-.023.012-.027.012-.031.012.004.008.004.016 0 .027-.02-.008-.023-.008-.027-.012s-.016-.008-.02-.012l-.016-.008c-.008-.023-.008-.027-.008-.031-.023-.016-.027-.02-.031-.023.023.008.031.012.035.016l.035.012c.008.004.016.012.027.02.02.004.023 0 .027-.004.012-.023.012-.031.012-.039s0-.016-.004-.023c-.008-.02-.012-.02-.008-.02zm-.035.09c-.008-.008-.02-.012-.027-.016s-.02-.008-.027-.012c0 .016.004.023.008.023.016.016.023.02.031.023s.016.008.02.008c0-.008 0-.016-.004-.023zm.07-.086a.03.03 0 0 0-.008.02c-.004.027-.004.035-.004.043s.004.012.008.02c.012.008.02.008.023.008v-.004c.012-.008.023-.012.031-.016s.023-.008.035-.012.012-.004.02-.008c.02-.008.02-.008.016-.008-.02.016-.023.02-.031.023-.004.02-.008.023-.012.031v-.004c-.02.016-.027.02-.035.02v.004c-.016.004-.02.004-.023.008-.008-.012-.004-.02-.004-.031-.02 0-.023-.004-.027-.008s-.008-.016-.008-.023v-.023c0-.008.004-.016.004-.023s.008-.012.012-.02zm.082.066c-.008 0-.02.004-.027.008s-.02.012-.027.016c-.004.012-.008.02-.008.027.016-.004.02-.008.023-.008s.012-.008.02-.008c.016-.016.016-.02.02-.023zm0 0\"/><path d=\"M12.461 3.629c-.012 0-.02.008-.02.02s.008.02.016.02.02-.008.02-.02-.008-.02-.016-.02zm0 .008c-.016.02-.008.023-.004.023.016-.02.008-.023.004-.023zm0 .004zm-.152-.016c.012 0 .02.008.02.02s-.012.02-.02.02-.02-.012-.02-.023.008-.016.02-.016zm0 .004c.012.023.008.027 0 .027-.012-.02-.008-.027 0-.027zm0 .008zm0 0\" class=\"hr-E\"/></g><path d=\"M14.52 3.559l-.723-.824-.945.543-.16 1.918c.457.035.91.109 1.355.223l.473-1.855zm0 0\" class=\"hr-G\"/><path d=\"M13.039 3.676c.031-.008.063-.008.098.012.012.004.023.012.031.02.012-.008.023-.02.043-.027.02-.02.043-.031.066-.039.035-.02.07-.031.102-.031h.105c.031 0 .063.004.086.02l.074.039c.031.016.059.031.086.035.051.023.109.027.168.02.016-.008.023.004.008.016-.125.074-.223.008-.305-.023.027.02.055.043.078.066.031.027.066.059.133.09.059.027.121.035.188.023l.016.004-.004.02c-.031.02-.066.027-.098.027-.07 0-.137-.016-.195-.051-.055-.023-.086-.059-.125-.09-.031-.023-.07-.043-.113-.051-.035-.008-.07-.008-.109 0 .012.004.02.008.023.016.02.012.039.016.074.02.016 0 .008.008-.016.023-.016.02-.039.031-.062.031-.035.023-.047.008-.062-.008 0 .012 0 .02-.008.031l.008.039c.016.023.02.031.02.043l.031.035c.023.008.031.027.039.047.016.008.023.02.027.035.008 0 .012.008.02.012l.098.004c.031.004.055.023.078.047h.043c.016-.008.031-.012.051-.012h.086c.016.008.031.016.043.031.02.02.047.016.066.008.031-.016.063-.016.09 0 .012-.008.027-.008.039-.008.016-.012.027-.016.039-.016.02 0 .035 0 .031.031-.02.035-.035.039-.059.039-.004.016-.012.027-.02.031.012.031 0 .047-.027.043 0 .012-.008.016-.02.016-.012.012-.023.02-.039.02l.016.023c.016.023-.008.035-.031.035v.047c.027.016.031.031.008.043.016.027.012.051-.02.063 0 .016 0 .027-.012.035-.004.008-.016.012-.008.023.008.02.004.043-.008.047l-.008.004-.008.008c-.02.008-.039.02-.059.035a.57.57 0 0 1-.074.09c0 .02-.016.039-.035.043 0 .023.008.035-.004.051s-.031.023-.051.031c-.035.012-.062.008-.074-.008s-.012-.023 0-.027c-.027 0-.031-.008-.031-.027.027 0 .039-.008.051-.012l.02-.023c0-.027.016-.039.039-.051s.039-.02.055-.043l.031-.059c-.004-.004-.008-.016-.012-.023s-.012-.016-.016-.023c-.02 0-.027-.008-.027-.02-.023.004-.031.012-.039.008-.012.016-.027.027-.039.039s-.016.02-.027.02c-.039 0-.055.043-.074.063-.008.004-.012.016-.016.027 0 .02-.004.035-.016.035h-.016c-.004.012-.004.023-.016.035-.004.012-.012.016-.027.016-.023 0-.043 0-.062-.008s-.016-.02-.016-.027c-.012-.008-.016-.012-.012-.02l.035-.016c.02-.02.043-.039.07-.051.004-.012.016-.02.023-.027 0-.02.02-.035.039-.051l.004-.023v-.012c-.008-.012-.012-.027-.004-.035-.004-.008-.004-.016 0-.023-.043.023-.059.016-.062-.004-.012.012-.027.02-.035 0-.016.004-.031.012-.047.004l-.027.008-.016.023c0 .02-.008.039-.02.059s-.016.039-.027.055c-.004.043-.012.055-.02.059s-.012.02-.016.027v.008c.004.012.004.027-.008.039l-.039.023h-.035c-.016-.012-.016-.016-.012-.023l-.035-.012.039-.043c.02-.027.027-.035.035-.039l.027-.059.008-.023c-.004-.023-.004-.039.008-.055s.023-.051.012-.074v-.031h-.012c-.008-.008-.016 0-.023.008l-.016.023c-.004.031-.02.055-.035.059v.047c0 .016 0 .027-.008.027s-.016.008-.02.016c.008.023.004.039-.008.051-.023.023-.051.02-.082.012-.023-.012-.031-.02-.027-.031-.031 0-.027-.027 0-.035s.055-.023.07-.051c0-.031.008-.047.027-.051 0-.02.008-.039.016-.055s.012-.031.008-.047c-.016-.012-.016-.023 0-.039-.012-.008-.012-.02-.012-.027-.031-.012-.027-.02-.016-.031l-.004-.031c-.016-.012-.008-.023 0-.035l-.016-.027c-.023 0-.035-.016-.02-.035l.023-.023c.004-.012.012-.02.008-.027-.008-.023.02-.039.039-.055-.016-.027-.012-.035 0-.043-.035-.012-.035-.031-.02-.059-.02-.012-.016-.027.02-.055-.016-.016-.027-.012-.039-.004s-.023.008-.031.004-.012-.012-.016-.016-.012-.016-.008-.023c-.039 0-.043-.023-.023-.035.012-.012.023-.023.027-.035.008-.023.027-.039.047-.055v-.02c-.008-.008-.016-.012-.023-.012-.004-.012-.012-.02-.023-.027-.023-.027-.02-.039-.012-.051zm0 0\" class=\"hr-B\"/><g class=\"hr-D\"><path d=\"M13.668 4.574l-.035.027-.016.012c0 .012-.008.016-.02.016h-.004v-.027c-.004.02-.004.023-.004.031-.031.008-.047.039-.07.063l-.016.031c0 .008 0 .031-.012.031h-.008-.051c-.008.008.016.008.023.012-.004.047-.062.039-.082.027-.008-.004-.008-.012-.008-.02h.012c.008 0 .016 0 .02-.008-.023-.004-.031-.004-.039-.004h-.004l.031-.012c.02-.023.043-.039.07-.051l.031-.027c0-.027.016-.035.031-.055l.012-.027v-.012c-.008-.016-.012-.027-.004-.035-.004-.012-.004-.023 0-.031s.02-.02.027-.027v.031c-.008.012-.008.016-.008.02v.004l.012-.02.027-.016.027-.023v.039l-.023.023v.004h.004c.004-.008.012-.016.02-.023s.023-.02.035-.023v.039c.004.012.012.023.02.031zm0 0\"/><path d=\"M13.086 4.238l.008-.008.016-.023c.008-.008.012-.016.02-.023-.008.008-.012.02-.016.027s-.012.012-.016.02v.008c.004.012.004.02.012.027l.012-.016c.004-.008.008-.012.016-.016s.016-.016.02-.023h.004l-.008.016-.027.023-.008.023c-.008.012-.02.02 0 .027v.047l.02-.008.027-.035.004-.02h.004c0 .008-.004.016-.004.023-.008.008-.012.016-.02.02l-.02.031c.008 0 .008.012.008.023h.004l.008-.008.008-.016h.004l-.008.016-.008.012c-.016.031-.012.035 0 .047v.043l.004.012h-.004v-.012c-.016.027-.023.043-.027.07-.023 0-.02.027-.023.047a.11.11 0 0 1-.07.055c-.004 0-.02.004-.02.012.031-.012.043 0 .023.016v.012c.02.016.059.02.082.008.012-.012.02-.02.008-.035 0-.02.008-.035.031-.043v-.016l.004-.051.008-.004c.008 0 .02-.023.023-.047v-.016c.012-.008.012-.012.02-.016.008-.012.02-.02.031-.016-.004-.008-.004-.02-.004-.027s-.004-.027 0-.039l.008-.008.012-.023.012-.027h.004l-.023.055v.004c-.004.012-.008.027-.004.039l.008.031.008.016v.023c.012.023 0 .063-.012.082-.008.008-.008.02-.004.031s0 .016-.004.023v.004l-.035.078c-.016.004-.02.012-.023.023-.023.027-.035.035-.047.039.016.02.023.008.031 0 .004.008 0 .016 0 .027l.023.012c.016 0 .035-.016.047-.023s.008-.02.004-.031c-.027-.004-.031-.008-.039-.012.012.008.027.008.039.008v-.012a.07.07 0 0 0 .02-.027c.012-.008.012-.016.012-.035l.004-.02c.012-.02.02-.039.027-.059.016-.016.02-.035.02-.055.016-.016.02-.023.023-.027l.004-.016c.008-.016.008-.02.008-.027-.008-.016-.008-.02-.008-.023v-.004h.004c.008.016.008.02.008.027-.004.023-.008.023-.008.027l.02.008.016-.02.008-.023c0 .012 0 .02-.004.027l-.012.012c.016.008.027 0 .039 0v-.051l.016-.023-.008.027v.039c.004.016.008.02.02.012l.012-.008v-.004c.023-.023.047-.043.07-.059-.012.012-.023.02-.031.027l-.031.027v.012c0 .012.004.02.023.012l.023-.008c.016-.012.023-.016.031-.02l.016-.012c.004-.008.004-.016.004-.023l.027-.047c.02-.008.031-.023.043-.043h.004l-.016.027c-.008.008-.016.016-.027.02l-.027.043-.004.023v.031c.008 0 .016 0 .027-.012l.027-.027c0-.004.004-.012.008-.02l.02-.012v.004c-.02.016-.023.023-.023.027v.043l.035-.02v.039c0 .008.008.02.016.027.008-.008.012-.016.02-.02l.02-.02.012-.008-.008.012-.008.008-.012.008v.016h.023c0 .02 0 .023.02.023v-.039h.004l-.004.039c.008.012.012.016.027.023l.008-.02.004-.016v.02l-.012.02v.02l.02-.027c-.012.02-.012.023-.016.031l.008.004c-.023.039-.047.094-.094.113a.05.05 0 0 0-.039.047c-.008.004-.016.012-.016.023l-.047.008.039.004c.004 0 0 .02-.02.031v.004c.016.023.051.016.07.008.016 0 .039-.02.047-.035.004-.008 0-.016-.008-.02-.031.004-.023-.023 0-.012.031-.02.043-.031.047-.051.023-.027.047-.051.063-.078l.012-.039v-.012h.004v.016l.059-.016c0-.012.008-.016.016-.016l.008-.004c.004-.016 0-.023-.008-.031-.004-.016.004-.02.016-.027.004-.008.004-.023.004-.035v-.008h.004v.004c.012-.004.023-.012.027-.023s-.004-.023-.012-.031c-.008.004-.016.008-.023.008.012-.004.02-.008.027-.016.02-.016 0-.023-.008-.027l-.023-.027v-.004l.023.023v-.043l-.008-.016c-.02-.02-.023-.027-.02-.031l.008.016.012.016h.039c.012-.012-.008-.027-.012-.035l-.004-.02h.004l-.012-.016.016.012c.016 0 .023-.008.031-.02-.02-.02-.023-.02-.031-.023v-.004h.004c.012.008.02.016.031.027.016 0 .016 0 .02-.012-.008-.02-.012-.023-.016-.027l.02.027.016-.004c.012-.004 0-.027 0-.035l-.012-.008h.008l.008.004.016-.023c0-.016 0-.008.02-.012s.023 0 .031-.02.008-.027 0-.027c-.02 0-.031 0-.039.012v.012l-.008-.008c-.016 0-.027 0-.043.008h-.004l.004.008.004.016c-.008-.02-.012-.023-.016-.027-.012-.008-.027-.008-.039-.008l.008.004.008.008v.004c-.012-.012-.012-.016-.016-.016-.012 0-.023 0-.035.008l-.02.008.012.016.008.023c0-.008-.004-.016-.012-.023-.02-.012-.027-.012-.031-.016l.008.012-.012-.012c-.008-.004-.012-.004-.02-.008a.23.23 0 0 1 .008.055c0-.012-.004-.023-.008-.035s0-.016-.004-.023c-.012-.016-.02-.02-.031-.023.004.008 0 .02-.004.027.004-.012.008-.023 0-.031s-.023-.008-.035-.008c.008.008.012.02.02.031l.012.016v.02c-.008-.023-.012-.027-.016-.031s-.008-.016-.012-.02l-.027-.016h.004-.039c.023.023.035.055.039.086-.004-.016-.008-.031-.016-.043s-.016-.027-.023-.039h-.023c.004.004.012.008.016.016-.016-.008-.02-.012-.023-.012l-.016.004c.016.012.027.023.039.039-.008-.008-.016-.016-.023-.02s-.016-.012-.023-.016h-.023c.012.02.02.039.02.063h-.004c0-.008-.004-.02-.008-.031s-.004-.02-.012-.031c-.008.02-.004.039-.004.059v.004c0-.012-.004-.023-.008-.035s-.004-.023-.008-.031a.25.25 0 0 0-.051-.039c.012.012.016.027.016.043v.004c0-.012-.004-.02-.008-.027s-.008-.016-.016-.023h-.047c.008.004.016.016.016.023 0-.008-.012-.02-.023-.027h-.023l.012.012.008.02.008.023.016.016c-.008-.004-.016-.008-.02-.012s-.008-.02-.008-.027l-.02-.031h-.027l.008.031.004.039h-.004c.004-.016.004-.027 0-.039s-.004-.02-.012-.031-.012-.016-.02-.016l-.004.008c-.008-.027-.012-.035-.023-.039v.016l-.008.016h-.004l.004-.02v-.016c0-.023-.008-.039-.031-.047V4l-.004.02h-.004V4l-.016-.027v.023c-.004.012-.012.023-.016.031h-.004c.004-.008.008-.02.012-.031s.004-.02.004-.027l-.008-.004h-.004v-.008l.004-.004v-.004c0-.008-.008-.016-.012-.02-.004.008-.004.012-.008.02h-.004l.008-.023-.012-.004.004-.016c0-.012 0-.016-.008-.023-.02.004-.023.008-.031.012v-.004c.02-.012.027-.012.031-.012l-.039.004c-.012 0-.023-.004-.031-.008h.027c.012 0 .027 0 .043-.008l.008-.023.004-.004v-.008c.023 0 .027.008.031.012s.02 0 .031-.008h-.008v-.004h.012c.023 0 .039 0 .055-.02-.016.004-.027.004-.039 0s-.016 0-.023-.008l.027.004h.039l.016-.012c-.023 0-.051-.008-.074-.02-.004-.008-.012-.012-.023-.012s-.035 0-.051.012l-.012-.012-.016-.008h-.02.043c.02-.008.043-.012.063-.012s.043-.008.066-.008V3.73c.012-.012.016-.023.012-.031s-.016-.02-.031-.027h-.051c-.008 0-.02 0-.027.004l.02.016.016.035v.004h-.008c0-.012-.004-.027-.012-.035s-.023-.012-.027-.016l-.051.008-.023.016c.012-.004.02 0 .027 0s.02.012.023.027v.004h-.008c0-.012-.008-.02-.02-.027s-.043 0-.059.012l-.023.023h-.008v-.008l.027-.023.027-.012c.008-.012.023-.02.035-.02l.051-.008c-.004-.008-.012-.016-.02-.02s-.02-.004-.031 0-.035.016-.055.027h.02l.004.008h-.02l-.07.043c-.02 0-.031 0-.039.008l-.004.023-.008.027c-.02.016-.035.031-.047.055-.004.008-.008.012-.012.02l.012-.004.008-.016h.004l-.004.035h-.008-.027l-.008.012c0 .008.008.008.02.008.023 0 .004.016.016.027l.02.016h.016c0-.016 0-.023.008-.023l.004.016c.012-.004.023-.008.039-.008.027-.031.035-.023.016 0l-.004.008c-.004.008-.008.016-.008.023-.008.004-.039.027-.027.035.008.016-.004.031 0 .043h.012c.008-.008.02-.016.027-.023s.012-.02.016-.027h.004l.012-.031c0-.008.004-.02.012-.027l.012.012.027-.012h.004c-.016.016-.02.016-.023.016-.012-.004-.016-.008-.02-.012-.008.016-.012.035-.02.055s-.027.039-.043.055l.008.02.035-.039.031-.035c-.004.004-.008.012-.012.02v.043h-.004v-.035l-.012.012c-.012.012-.023.027-.035.039s-.023.012-.008.023l.012-.008.016-.012v.004l-.012.008-.016.012.035-.012-.023.027c-.016.012-.051.031-.043.047l.023-.008.023-.02c-.008.012-.016.016-.023.023v.008-.004c-.008 0-.02.004-.027.004.004.016 0 .023-.012.035 0 .004-.035.035-.02.039zm0 0\"/><path d=\"M13.102 3.754c-.008-.004-.012-.008-.023-.012-.004-.008-.008-.016-.016-.02l.004-.016.02.008c-.012-.008-.016-.008-.02-.012l-.023-.016.016.004.008.004c.012-.016.039-.016.063 0 .016.004.023.008.031.02l-.008.008c-.02 0-.031 0-.039.008s-.008.016-.008.023zm0 0\"/></g><g class=\"hr-B\"><path d=\"M13.688 4.566l-.016.008c0-.012.008-.016.012-.023v.008zm.074.16c-.02.02-.027.023-.031.027V4.75l.012-.016.016-.012zm.051-.062l-.008.012h-.004l.008-.012zm-.027 0c-.012.02-.02.023-.027.027v-.004c.02-.016.02-.02.02-.027h.004zm.043-.059l-.008.016a.03.03 0 0 1 .008-.02zm.039 0v.02l-.012.016.004-.016zm-.016-.227a.11.11 0 0 1 .016.059c0-.008.004-.016.004-.023.008-.012.016-.027.012-.043l.004.023-.012.023-.008.035h-.004c0-.023 0-.047-.016-.07v-.004zm-.027.039v.012h-.004v-.016h.004zm-.008.051c.004.02.004.035.008.055l.012-.016h.004c-.016.016-.016.02-.016.027 0-.012-.004-.023-.004-.035s-.008-.02-.008-.031zm.035.02c.004.016.008.031.004.047v-.023c0-.008 0-.016-.004-.023zm.039-.008v.023c-.004.027-.004.035 0 .043l.004.02c-.004-.008-.008-.012-.012-.02s-.004-.016 0-.023.008-.012.008-.02V4.48zm.02-.055l-.004.012v.008h-.004v-.023h.004zm-.02-.098v.008-.008zm.008-.074v.027c-.012.02-.012.027-.008.035h-.004c-.004-.008-.004-.016 0-.023zm-.074-.027c.012.008.02.016.027.027s.012.016.012.031l-.023-.008v.07c-.008.016-.016.027-.035.035a.19.19 0 0 0 0-.066h.004c.004.02.004.039 0 .059.012-.004.02-.016.023-.027.008-.023.012-.051.004-.074l.023.008c0-.012-.004-.016-.012-.027s-.016-.02-.023-.023zm.191-.039v.008-.008zm-.043 0l.012.004.004.012-.016-.016zm-.066.02l.012.02v.023l-.004-.023c-.004-.008-.008-.016-.012-.02zm-.227.02v.016l-.004.004v-.02zm.039-.023l.008.016v.004h-.004v-.004l-.004-.012zm.09.063zm.027-.07v.008zm-.203.012c-.004.012 0 .02.008.027l.008.031h-.004V4.25c-.008-.016-.012-.023-.012-.027zm.082.059l.008.023v.027c0 .012 0 .023.008.031l.02.023c-.004-.012-.004-.023-.004-.035l.012-.039.012-.027h.004v.016c-.004.008-.008.016-.012.02-.008.012-.012.023-.012.035s0 .02.008.035h-.004c-.016-.008-.02-.016-.027-.027s-.012-.02-.008-.031v-.027c-.004-.008-.004-.016-.008-.023zm-.035.051c0 .008 0 .02-.008.027s-.008.016-.016.02h.012c.012-.004.02-.012.027-.02l.012-.012c-.012.016-.016.02-.02.023v.004l-.035.012v-.004l.016-.023.008-.027zm-.039 0v.004-.008zm0 0\"/><path d=\"M13.613 4.266c.008.008.008.02.008.035s-.008.023-.016.031a.04.04 0 0 0-.02.023c-.004.004-.004.012-.008.02l.008-.012.02-.008c.016-.012.027-.023.039-.035h.004c-.012.016-.027.027-.043.039s-.027.02-.031.027c0-.016 0-.027.008-.035l.02-.023.016-.031c0-.012 0-.023-.008-.031zm.086.129l.004.016.004.004c.008.012.012.02.012.031l-.004.035h-.004c-.004-.012-.008-.027-.016-.035s-.02-.02-.031-.023v-.004c.016.008.027.016.035.027l.012.02c0-.031 0-.039-.004-.047l-.004-.008zm.035 0l.004.008h-.004l-.004-.008zm.039.012l-.008.027-.008.023.008-.023zm.027.148v.004zm-.027-.043v.012l-.008.016v-.016l.004-.016h.004zm-.039 0h.004v.004h-.004zm-.039-.023l-.004.016h-.004l.004-.016zm-.062.066c-.004.016-.008.02-.012.016v-.008l.012-.012zm-.18.176zm.027-.016zm.039-.023zm.055-.145l-.004.016-.004.016v-.031zm.039-.383c-.008.016-.008.016-.012.02h-.004l.008-.012.004-.012zm-.039-.039c.004.012.008.023.004.039 0-.027-.004-.031-.008-.035zm-.051.063c-.008-.004-.012-.008-.016-.016h.004zm.055.098v.008h-.004v-.008zm-.074-.074l.023.039.004.027.016-.043c.004-.008.008-.016.008-.023l.008-.02.016.031.012.035h-.004c0-.012-.004-.023-.012-.035l-.012-.023c0 .023-.004.027-.012.035l-.004.035-.012.012v.016h-.004c0-.016 0-.031-.008-.043s-.012-.027-.02-.039zm.043.188v.027h-.004v-.031h.004zm-.082.035v.012l-.004-.012zm.074-.094c-.004.008-.004.016-.008.02l-.012.02c-.008.008-.012.016-.012.023s-.004.02 0 .027c-.004-.008-.004-.02-.004-.027s.004-.02.012-.027c.016-.023.016-.031.02-.039zm-.02-.031v.023c-.004.008-.012.016-.02.023s-.012.012-.016.016l-.008.02h-.004l.008-.023.02-.016c.004-.008.008-.012.012-.02s.004-.016.004-.023zm-.09.047c0 .012 0 .023-.008.035s-.012.023-.023.031h-.004v-.004c.012-.008.02-.02.023-.031s.008-.023.008-.035zm-.113.063v.008l.004.004v.004h-.004l-.004-.008v-.008zm-.051 0v.027l.016.02.004.02V4.5l.016-.02c.004-.008.008-.016.008-.023v.023l-.02.023h-.004c0-.023-.004-.027-.008-.035l-.012-.023v-.027zm.008.156c0-.008.004-.02.004-.027h.004c0 .008-.004.02-.004.027zm-.008.043v-.016l.004.016zm-.027.074l.016-.023h.004l-.016.023zm-.043-.246v.008h-.004v-.008zm-.074.168v-.012h.004v.012zm.188-.301l-.012.039c0 .008.004.02.012.023s.016.016.02.027v-.016l.004-.016v.039h-.004l-.02-.031c-.012-.008-.016-.016-.016-.027l.008-.039zm-.016-.047c.004.008.004.02 0 .027a.19.19 0 0 1-.012.027c-.004.012-.008.023-.008.039s.004.023.012.035v.004c-.012-.023-.016-.051-.008-.078.004-.008.008-.02.008-.027s.004-.02 0-.027h.004zm-.086.121l.004.035c-.004-.008-.008-.012-.012-.02l.008-.02zm-.035-.016v.012c-.004.016-.008.02-.004.023l.004.008v.004c-.012-.016-.012-.023-.008-.027l.004-.02zm.215-.32c-.004.02.004.039.012.055-.008-.008-.012-.016-.016-.027v-.027zm-.027.027c.012.02.02.039.02.063h-.004c0-.023-.008-.043-.016-.062zm-.133 0c-.016.02-.02.039-.023.051l.008.035.008.027c0 .012-.004.023-.008.031v-.031c.004-.008.004-.02 0-.027s-.012-.027-.012-.039.008-.027.023-.047zm.125-.051v.02l-.016.016-.012.039c-.004-.008-.004-.016 0-.023s.004-.016.012-.02c.012-.02.012-.027.012-.031zm-.133.012v.027c0 .008-.008.012-.016.02s-.012.016-.016.023-.004.02-.004.027h-.004c0-.012.004-.02.004-.031s.008-.016.016-.023l.016-.02c.004-.008.004-.016 0-.023zm.074.004zm0-.02c-.008.004-.016.008-.02.016l-.008.027.008.016v.027c.004-.008.004-.016 0-.027l-.008-.012c-.012.012-.02.027-.02.043s.004.039.02.059h-.004c-.012-.02-.02-.039-.02-.059s.008-.035.023-.047c0-.012 0-.023.004-.031s.012-.012.02-.016zm-.027-.031v.004c0 .012 0 .023-.004.027-.012.016-.012.02-.012.027h-.004c0-.023.004-.027.012-.031s.008-.016.008-.023zm.215.227l.004.02v.016c0-.023-.004-.027-.008-.031h.004zm0 .074v.023l-.008.023-.012.02.008-.02c.004-.008.008-.016.008-.023s.004-.02 0-.027h.004zm-.043-.066c.023.023.035.059.023.094h-.004c.012-.031.004-.066-.02-.09v-.004zm0 .074c-.012.02-.023.039-.039.055-.008.008-.016.023-.02.035 0-.008 0-.016-.004-.023-.016-.023-.02-.035-.016-.047l.008-.031.012-.023.004-.02c0 .016-.004.031-.012.047-.004.008-.008.016-.012.027s0 .023.008.031.012.02.012.027c.004-.012.012-.02.02-.027s.012-.016.02-.023l.012-.027zm-.121-.035c0 .016.004.035.016.051v.004h-.004c-.004-.008-.008-.016-.012-.027v-.027zm-.062.035v.012h-.004v-.012zm.02-.059l-.004.02h-.004zm-.059.117c-.008-.023-.012-.043-.012-.066s.012-.027.023-.035l.016-.027c.004-.008.008-.02.004-.039l.004.039-.023.027c-.012.008-.016.023-.02.035 0 .02 0 .039.012.066zm-.039-.043l.004.027c-.008-.02-.008-.027-.008-.031h.004zm.176-.121c.004.008.008.02.008.031s0 .023-.004.035h-.004l.008-.035-.012-.031zm.051-.039c.008.02.008.043 0 .063 0-.012-.004-.02-.008-.031s-.012-.012-.02-.016c.016.008.023.02.027.035v-.023c0-.008 0-.02-.004-.027zm.031-.047l.016.031v.035c0 .027.004.031.004.035-.008-.02-.008-.027-.004-.035s-.004-.023-.004-.035-.008-.02-.016-.027zm-.082-.008c-.008.008-.012.012-.012.02v.027c-.004-.008-.004-.02 0-.027s0-.016.008-.02zm-.168.113c0 .012-.004.027-.012.039s-.016.02-.027.023l.027-.023c.004-.012.008-.023.008-.039l.004-.004zm0-.059v.016c0 .008-.004.016-.012.02l.004-.02v-.016zm.109-.008v.035h-.004v-.035zm.027-.051c-.008.012-.012.02-.012.031l.008.027.012.043c0 .016-.008.027-.016.043l.012-.043c0-.016-.004-.031-.012-.043l-.008-.027c0-.012 0-.023.012-.031zm-.172-.301c.008-.012.023-.02.035-.02s.031 0 .047.012h.031-.031c-.016.016-.031.023-.043.023s-.023 0-.031-.008c.008.008.023.008.031 0 .008 0 .023-.004.039-.016-.012-.008-.023-.008-.039-.004s-.023.004-.035.012zm0 0\"/><path d=\"M13.184 3.789zm.07.059c.012-.008.02-.016.027-.027l-.023.031zm.137-.059c.016 0 .02.004.023.008l-.023-.004zm-.074.004l.039-.02v.004c-.012-.004-.02-.004-.027 0s-.012.012-.012.02zm.008.012l.016-.012zm-.137.043l-.004.012-.004.016c0-.02 0-.023.008-.027zm.039.02v.008zm-.023-.043h.023c-.016.004-.02.004-.023.004zm.023-.074l-.016.012.02-.012zm-.039.008l-.012.008zm-.023 0l-.012.012zm-.031.027zm0 .031v.004l-.008.008V3.82l.008-.008zm-.027.008v.012l-.004.004v-.016zm.039.055v.02h-.004v-.02zm-.023-.016v.012h-.004v-.012zm-.023-.168c.008 0 .016.004.02.012v.004h-.004zm.195.25c.008.016.008.035 0 .051h-.004c.008-.016.008-.031 0-.047v-.004zm-.062.074c0-.012.008-.02.012-.027l.016-.02c.008-.008.008-.016.008-.027s.004-.02 0-.027h.004c.004.02 0 .039-.008.059-.008.004-.012.012-.016.016l-.012.027zm-.082-.023c.012-.012.016-.012.02-.012zm-.016-.008l.023-.016v.004c-.016.008-.02.012-.02.016zm.086-.082h.008l.012.004c-.008.004-.016.004-.023 0zm-.047-.004l.004-.004v.004zm.91.266l.004.008zm-1.004.469l.008.008.02.004c-.023 0-.027-.004-.031-.008zm0 0\"/></g><g class=\"hr-F\"><path d=\"M13.832 3.734a.19.19 0 0 0 .066 0c-.023.012-.047.023-.074.027.012-.02.012-.023.008-.027zm-.051-.004h.047v.016c-.027.016-.043.016-.059.016.008-.004.012-.012.012-.02zm-.395-.113c.027-.008.051-.008.074-.008.008.004.016.012.02.016s.008.02.004.031l.004.004h.004l-.004-.039-.004-.008a.26.26 0 0 1 .078.023c.008.008.012.012.008.02l-.012.02v.008h.008l.012-.027.063.02c-.004.023-.008.027-.016.027v.004l.004.004c.012 0 .016-.008.02-.012l.047.004v.012c-.012.016-.016.016-.012.02.012 0 .02-.008.023-.016l.016-.008a.22.22 0 0 0 .047.016c.004.02 0 .023-.004.027v.008c-.051-.004-.102-.035-.152-.055l-.02-.004-.059-.023-.004-.004c-.02-.008-.039-.012-.059-.016s-.039-.004-.059 0h-.004l-.004-.031c-.004-.004-.012-.012-.02-.016zm0 0\"/><path d=\"M13.297 3.637a.52.52 0 0 1 .074-.02c.016.004.023.012.027.02v.023c-.02-.004-.043 0-.062.008-.008-.012-.016-.02-.027-.023zm.277.148c-.004-.008-.012-.012-.02-.016-.035-.02-.07-.031-.109-.031.008-.016.012-.031.008-.039-.004-.016-.012-.023-.023-.031h.035c.027.004.051.012.078.023 0 .012.004.02 0 .027s-.008.02-.02.027c.016 0 .023-.012.023-.023v-.027l.039.02.039.031c0 .016 0 .023-.012.031h-.035v.008zm0 0\"/><path d=\"M13.648 3.84l-.066-.051c.016 0 .027 0 .039-.008.004-.004.012-.016.012-.031l.039.039.023.016v.016c-.004.012-.008.016-.016.016h-.027zm0 0\"/><path d=\"M13.734 3.891a.32.32 0 0 1-.078-.047h.027l.02-.023.078.047c0 .012 0 .016-.012.02s-.023.004-.035.004zm.082.035c-.027-.008-.051-.016-.078-.031.016 0 .027 0 .039-.004s.012-.008.012-.02c.016.008.031.016.047.02v.016l-.016.016zm0 0\"/><path d=\"M13.996 3.906c-.047.039-.109.039-.172.02.008-.004.016-.008.02-.016l.066-.004-.023.023c.012.004.02-.004.023-.008.031-.012.055-.012.082-.016zm-.363.902l-.008.016-.047.008.039.004c.004 0 0 .02-.02.031v.004c.016.023.051.016.07.012s.035-.02.051-.039l-.012-.02c-.016.004-.023 0-.02-.008-.02-.008-.039-.012-.055-.008zm-.566-.18c-.012.012-.027.016-.039.02s-.023.004-.023.012c.031-.012.043 0 .023.016v.012c.02.016.059.02.082.008.012-.008.023-.02.008-.035l-.023-.008-.016-.012zm.375.129h-.004c-.008.008.012.008.02.012s.008.012.008.02c-.012.027-.07.02-.09.008-.008-.004-.008-.012-.008-.02h.012c.008 0 .016 0 .023-.008v-.008h-.008c-.02.008-.027.008-.035.008l-.004-.008h.004l.027-.008.004-.004c.02 0 .039 0 .051.008zm-.27-.016l-.008.012c-.012.012-.023.02-.035.023.016.02.027.008.031 0v.027l.023.012c.016 0 .039-.016.047-.023s.008-.02.004-.031c-.027-.004-.031-.008-.039-.012zm.102-.988h.012l.023.004c.02-.008.043-.012.063-.012s.043-.008.066-.008V3.73c.012-.012.016-.023.012-.031s-.016-.02-.031-.027h-.051c-.008 0-.02 0-.027.004l.02.016.016.035c-.008-.016-.016-.023-.016-.031l-.031-.016c-.016 0-.035.004-.051.008s-.016.008-.023.012l.027.004c.012 0 .02.012.023.027-.008-.008-.012-.016-.023-.023s-.047 0-.062.008l-.023.023.074.016zm-.086-.016v-.004l.027-.023.027-.012c.008-.012.023-.02.035-.02l.051-.008c-.004-.008-.012-.016-.02-.02l-.031-.004-.055.031h.02l.004.008h-.016-.02l-.047.035c.008.004.02.008.023.016zm0 0\"/></g><path d=\"M15.336 5.867l.781-1.762-.574-.926-1.023.375-.477 1.867c.445.113.875.262 1.293.445zm0 0\" class=\"hr-H\"/><path d=\"M14.348 4.238a9.52 9.52 0 0 1 1.484.512l-.301.684a8.85 8.85 0 0 0-1.367-.477zm0 0\" class=\"hr-C\"/><path d=\"M15.578 5.324l.203-.457c-.473-.207-.965-.379-1.465-.508l-.117.469c.473.121.938.281 1.387.477l-.004.016zm0 0\" class=\"hr-F\"/><path d=\"M14.461 4.719c.012-.012.023-.008.039-.004.012-.008.027-.008.039-.008l.023-.008c-.004-.016-.004-.02 0-.023-.027-.016-.039-.035-.047-.055-.012 0-.02-.008-.02-.012h-.016c-.031 0-.039-.012-.051-.02-.008 0-.016-.008-.023-.016l-.012-.012c-.004-.012-.004-.023.008-.023h.027c.012-.004.023-.008.035-.004s.02-.012.031-.023v-.016c.02-.004.031.004.039.016.02 0 .039.012.043.027.027 0 .043.008.047.016s-.008.016-.02.023v.008l.016.016.039.027c.035-.004.098.02.18.074.051.008.102.023.152.043h.035c.09-.012.176 0 .254.059.031.004.055.016.082.023.02.008.039.012.059.012.035.004.07.012.098.027.039.008.074.023.09.047.016.016.012.035-.004.043-.012.023-.035.023-.07.012-.02.004-.047-.016-.074-.035-.031-.008-.059-.027-.09-.047l-.047-.023h-.031v.008c.008.008.016.016.016.031v.035c0 .016.012.023.023.035l.039.016.027.074.016.012c.02.02.008.035-.012.035-.016.016-.031.027-.051.031s-.023 0-.023-.008c-.035-.023-.02-.043.02-.031l.008-.008c-.004-.012-.004-.023 0-.035l-.012-.008c-.012-.004-.027-.012-.035-.023a.92.92 0 0 0-.09-.051c-.027 0-.047-.016-.07-.027h-.027c-.008 0-.016 0-.02.008s-.02.008-.031.008h-.059c-.016 0-.027 0-.039.012s-.016.008-.023 0c-.023-.008-.031-.008-.031-.016-.02-.004-.023-.008-.023-.016-.023-.004-.012-.023 0-.023l.055.004c.012.004.035 0 .043-.004l.02-.02c-.023 0-.047-.008-.066-.02-.043-.027-.078-.035-.105-.012-.008.008-.012.008-.023.004-.039.004-.051 0-.066-.004-.023.004-.047.004-.07 0-.02.012-.035.016-.043.008s-.016-.012-.023-.016c-.016-.004-.02-.008-.02-.012-.016 0-.016-.008-.016-.016.012-.02.023-.02.035-.012.012 0 .02.004.023.008h.023c.004-.004.016-.004.035-.004l.027-.008v-.008c-.016 0-.023-.016-.035-.027-.02 0-.039-.008-.055-.02-.016 0-.027-.004-.039-.012h-.023c-.02.008-.035.008-.055 0h-.031c-.008.012-.023.012-.035.008s-.02-.016-.031-.02c-.027-.02-.027-.027-.016-.031s.02-.008.039 0zm0 0\" class=\"hr-B\"/><path d=\"M15.047 4.895c-.043 0-.074 0-.094-.016-.027-.016-.051-.031-.078-.031l.027-.016h.055c.027 0 .055.008.078.016.012.008.027.02.035.031s.023.016.031.027h-.027c-.008-.004-.02-.008-.027-.012zm0 0\" class=\"hr-C\"/><path d=\"M15.113 3.551v.008l.031.184-.137.121-.008.004.008.004.176.059.039.184v.008l.008-.004.137-.125.172.062h.012v-.004l-.035-.184.137-.121.008-.008h-.012l-.172-.059-.039-.184v-.008l-.008.004-.137.121-.176-.059zm0 0\" class=\"hr-B\"/><path d=\"M15.023 3.863l.129-.113.168.051zm.316-.066l.129-.109.164.055zm.293-.047l-.125.113-.168-.059zm-.312.059l-.133.113-.16-.055zm-.187-.238l.16.051.031.176zm.203.238l.168.059.031.168zm.191.23l-.16-.055-.035-.172zm-.207-.242l-.164-.055-.031-.168zm.109-.285l.039.172-.133.113zm-.102.301l.031.172-.125.113zm-.102.281l-.035-.168.133-.113zm.102-.297l-.031-.176.129-.109zm0 0\" class=\"hr-D\"/></svg>')\n        },\n        cz: {\n            languageName: 'Czech',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v9H0zm0 0\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M0 9h24v9H0zm0 0\" fill=\"rgb(84.313725%,7.843137%,10.196078%)\"/><path d=\"M13.5 9L0 0v18zm0 0\" fill=\"rgb(6.666667%,27.058824%,49.411765%)\"/></svg>')\n        },\n        da: {\n            languageName: 'Danish',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(78.431373%,6.27451%,18.039216%)\"/><g fill=\"rgb(100%,100%,100%)\"><path d=\"M7.715 0h2.57v18h-2.57zm0 0\"/><path d=\"M0 7.715h24.004v2.57H0zm0 0\"/></g></svg>')\n        },\n        nl: {\n            languageName: 'Dutch',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(12.941176%,27.45098%,54.509804%)\"/><path d=\"M0 0h24v12H0zm0 0\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M0 0h24v6H0zm0 0\" fill=\"rgb(68.235294%,10.980392%,15.686275%)\"/></svg>')\n        },\n        en: {\n            languageName: 'English',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(0.392157%,12.941176%,41.176471%)\"/><path d=\"M2.813 0l9.148 6.789L21.074 0H24v2.324l-9 6.715 9 6.672V18h-3l-9-6.711L3.039 18H0v-2.25l8.961-6.676L0 2.398V0zm0 0\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M15.898 10.539L24 16.5V18l-10.164-7.461zM9 11.289l.227 1.313L2.023 18H0zM24 0v.113l-9.336 7.051.074-1.652L22.125 0zM0 0l8.961 6.602h-2.25L0 1.574zm0 0\" fill=\"rgb(78.431373%,6.27451%,18.039216%)\"/><path d=\"M9.039 0v18h6V0zM0 6v6h24V6zm0 0\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M0 7.238v3.598h24V7.238zM10.238 0v18h3.598V0zm0 0\" fill=\"rgb(78.431373%,6.27451%,18.039216%)\"/></svg>')\n        },\n        eo: {\n            languageName: 'Esperanto',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(0%,60%,0%)\"/><path d=\"M0 0h9v9H0zm0 0\" fill-rule=\"evenodd\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M4.5 1.352L2.664 7.051 7.5 3.523h-6l4.836 3.527zm0 0\" fill=\"rgb(0%,60%,0%)\"/></svg>')\n        },\n        et: {\n            languageName: 'Estonian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" fill-rule=\"evenodd\" class=\"language-svg-icon\"><path d=\"M0 0h24v17.922H0zm0 0\" fill=\"rgb(0%,0%,0%)\"/><path d=\"M0 12.027h24V18H0zm0 0\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M0 0h24v5.973H0zm0 0\" fill=\"rgb(7.058824%,56.862745%,100%)\"/></svg>')\n        },\n        fi: {\n            languageName: 'Finnish',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><g fill=\"rgb(0%,20.784314%,50.196078%)\"><path d=\"M0 6.543h24v4.914H0zm0 0\"/><path d=\"M6.582 0h4.906v18h-4.91zm0 0\"/></g></svg>')\n        },\n        fr: {\n            languageName: 'French',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><g fill-rule=\"evenodd\"><path d=\"M0 0h8v18H0zm0 0\" fill=\"rgb(0%,14.901961%,32.941176%)\"/><path d=\"M16 0h8v18h-8zm0 0\" fill=\"rgb(80.784314%,6.666667%,14.901961%)\"/></g></svg>')\n        },\n        ka: {\n            languageName: 'Georgian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><g fill=\"rgb(100%,0%,0%)\"><path d=\"M10.199 0h3.602v18h-3.602zm0 0\"/><path d=\"M0 7.199h24v3.602H0zm0 0\"/><path d=\"M5.504 13.992c.039-.633.152-1.168.152-1.168l-.555.039c-.184 0-.555-.039-.555-.039a9.44 9.44 0 0 0 .148 1.172c-.633-.039-1.172-.152-1.172-.152a4.56 4.56 0 0 0 .039.555c0 .277-.039.555-.039.555s.539-.109 1.172-.148c-.039.633-.148 1.172-.148 1.172s.277-.039.555-.039a4.56 4.56 0 0 1 .555.039s-.113-.539-.152-1.172a9.44 9.44 0 0 1 1.172.148l-.039-.555c0-.184.039-.555.039-.555s-.535.113-1.168.152zM19.305 3.191c.039-.629.148-1.168.148-1.168l-.555.039c-.184 0-.555-.039-.555-.039s.113.539.152 1.168c-.637-.039-1.172-.145-1.172-.145a4.56 4.56 0 0 0 .039.555c0 .277-.039.555-.039.555s.535-.113 1.172-.152c-.039.637-.152 1.172-.152 1.172s.277-.039.555-.039a4.56 4.56 0 0 1 .555.039s-.109-.535-.148-1.168c.633.039 1.172.152 1.172.152l-.039-.559c0-.184.039-.555.039-.555s-.539.109-1.172.148zm-13.801 0c.039-.629.152-1.168.152-1.168l-.555.039c-.184 0-.555-.039-.555-.039a9.58 9.58 0 0 0 .148 1.172c-.633-.039-1.172-.148-1.172-.148a4.56 4.56 0 0 0 .039.555c0 .277-.039.555-.039.555s.539-.113 1.172-.152c-.039.637-.148 1.172-.148 1.172s.277-.039.555-.039a4.56 4.56 0 0 1 .555.039s-.113-.535-.152-1.172a9 9 0 0 1 1.172.152l-.039-.555c0-.184.039-.555.039-.555s-.535.109-1.168.148zm13.801 10.801c.039-.633.148-1.168.148-1.168l-.555.039c-.184 0-.555-.039-.555-.039a9 9 0 0 0 .152 1.172c-.637-.039-1.172-.152-1.172-.152a4.56 4.56 0 0 0 .039.555c0 .277-.039.555-.039.555s.535-.109 1.172-.148c-.039.633-.152 1.172-.152 1.172s.277-.039.555-.039a4.56 4.56 0 0 1 .555.039s-.109-.539-.148-1.172a9.58 9.58 0 0 1 1.172.148l-.039-.555c0-.184.039-.555.039-.555s-.539.113-1.172.152zm0 0\" fill-rule=\"evenodd\"/></g></svg>')\n        },\n        de: {\n            languageName: 'German',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 12h24v6H0zm0 0\" fill=\"rgb(100%,80.784314%,0%)\"/><path d=\"M0 0h24v6H0zm0 0\" fill=\"rgb(0%,0%,0%)\"/><path d=\"M0 6h24v6H0zm0 0\" fill=\"rgb(86.666667%,0%,0%)\"/></svg>')\n        },\n        el: {\n            languageName: 'Greek',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.el-B{fill-rule:evenodd}.el-C{fill:rgb(0%,35.686275%,68.235294%)}.el-D{fill:rgb(100%,100%,100%)}]]></style><g class=\"el-B\"><path d=\"M0 0h24v2H0zm0 0\" class=\"el-C\"/><path d=\"M0 2h24v2H0zm0 0\" class=\"el-D\"/><path d=\"M0 4h24v2H0zm0 0\" class=\"el-C\"/><path d=\"M0 6h24v2H0zm0 0\" class=\"el-D\"/></g><g class=\"el-C\"><path d=\"M0 0h10v10H0zm0 0\"/><path d=\"M0 8h24v2H0zm0 0\" class=\"el-B\"/></g><path d=\"M0 10h24v2H0zm0 0\" class=\"el-B el-D\"/><path d=\"M0 12h24v2H0zm0 0\" class=\"el-B el-C\"/><g class=\"el-D el-B\"><path d=\"M0 14h24v2H0zM4 0h2v10H4zm0 0\"/><path d=\"M0 4h10v2H0zm0 0\"/></g><path d=\"M0 16h24v2H0zm0 0\" class=\"el-C\"/></svg>')\n        },\n        he: {\n            languageName: 'Hebrew',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><g fill-rule=\"evenodd\"><path d=\"M24.914 4.063H-.871V1.691h25.785zm0 12.352H-.871v-2.367h25.785zM7.887 6.723l3.883 6.754 3.965-6.723-7.848-.027zm0 0\" fill=\"rgb(0%,0%,80%)\"/><path d=\"M11.039 11.203l.734 1.25.754-1.242-1.492-.008zm0 0\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M7.871 11.301l3.887-6.754 3.961 6.727zm0 0\" fill=\"rgb(0%,0%,80%)\"/><path d=\"M11.039 6.754l.734-1.25.754 1.246-1.492.004zM9.496 9.555l-.766 1.27 1.445-.004zm-.754-2.344l1.453.012-.699 1.281zm5.332 2.363l.734 1.25-1.469-.016zm.723-2.363l-1.453.012.699 1.281zm-4.031 0l-1 1.813 1.016 1.773 1.859.043 1.129-1.816-1.043-1.832-1.961.016zm0 0\" fill=\"rgb(100%,100%,100%)\"/></g></svg>')\n        },\n        hi: {\n            languageName: 'Hindi',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v6H0zm0 0\" fill=\"rgb(100%,60%,20%)\"/><path d=\"M0 6h24v6H0zm0 0\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M0 12h24v6H0zm0 0\" fill=\"rgb(7.058824%,53.333333%,2.745098%)\"/><path d=\"M14.398 9A2.4 2.4 0 0 1 12 11.398 2.4 2.4 0 0 1 9.602 9 2.4 2.4 0 0 1 12 6.602 2.4 2.4 0 0 1 14.398 9zm0 0\" fill=\"rgb(0%,0%,53.333333%)\"/><path d=\"M14.102 9c0 1.16-.941 2.102-2.102 2.102S9.898 10.16 9.898 9 10.84 6.898 12 6.898 14.102 7.84 14.102 9zm0 0\" fill=\"rgb(100%,100%,100%)\"/><g fill=\"rgb(0%,0%,53.333333%)\"><path d=\"M12.422 9c0 .23-.191.422-.422.422s-.422-.191-.422-.422.191-.422.422-.422.422.191.422.422zm1.766.289c-.008.059-.059.102-.121.094s-.098-.062-.09-.121.059-.102.121-.094.098.063.09.121zm0 0\"/><path d=\"M12 11.102l.07-1.262-.07-.602-.07.602zm2.039-1.254c-.023.055-.086.078-.141.055s-.082-.086-.059-.141.086-.078.141-.059.082.086.059.145zm-2.582 1.179l.395-1.199.086-.598-.223.563zm2.293-.683c-.035.047-.102.059-.148.02s-.059-.102-.023-.148.105-.059.152-.02.059.102.02.148zm-2.801.476l.691-1.059.238-.555-.359.484zm2.395-.066c-.047.035-.117.027-.152-.023s-.027-.113.02-.148a.11.11 0 0 1 .152.02c.035.047.027.113-.02.152zm-2.828-.27l.941-.84.375-.477-.477.375zm2.328.555c-.055.023-.117-.004-.141-.059s.004-.117.059-.141.117.004.141.059-.004.117-.059.141zm-2.664-.988l1.129-.57.484-.359-.555.238zm2.109 1.137c-.062.008-.113-.031-.121-.09s.031-.113.09-.121.113.031.121.09-.031.113-.09.121zM9.973 9.543l1.234-.258.563-.223-.598.086zm1.738 1.645c-.059-.008-.102-.059-.094-.121s.063-.098.121-.09.102.059.094.121-.062.098-.121.09zM9.898 9l1.262.07.602-.07-.602-.07zm1.254 2.039c-.055-.023-.078-.086-.055-.141s.086-.082.141-.059.078.086.059.141-.086.082-.145.059zM9.973 8.457l1.199.395.598.086-.562-.223zm.683 2.293c-.047-.035-.059-.102-.02-.148s.102-.059.148-.023.059.105.02.152-.102.059-.148.02zm-.476-2.801l1.059.691.555.238-.484-.359zm.066 2.395c-.035-.047-.027-.117.023-.152s.113-.027.148.02a.11.11 0 0 1-.02.152c-.047.035-.113.027-.152-.02zm.27-2.828l.84.941.477.375-.375-.477zm-.555 2.328c-.023-.055.004-.117.059-.141s.117.004.141.059-.004.117-.059.141-.117-.004-.141-.059zm.988-2.664l.57 1.129.359.484-.238-.555zM9.813 9.289c-.008-.062.031-.113.09-.121s.113.031.121.09-.031.113-.09.121-.113-.031-.121-.09zm1.644-2.316l.258 1.234.223.563-.086-.598zM9.813 8.711c.008-.059.059-.102.121-.094s.098.063.09.121-.059.102-.121.094-.098-.062-.09-.121zM12 6.898l-.07 1.262.07.602.07-.602zM9.961 8.152c.023-.055.086-.078.141-.055s.082.086.059.141-.086.078-.141.059-.082-.086-.059-.145zm2.582-1.179l-.395 1.199-.086.598.223-.562zm-2.293.683c.035-.047.102-.059.148-.02s.059.102.023.148-.105.059-.152.02-.059-.102-.02-.148zm2.801-.476l-.691 1.059-.238.555.359-.484zm-2.395.066c.047-.035.117-.027.152.023s.027.113-.02.148a.11.11 0 0 1-.152-.02c-.035-.047-.027-.113.02-.152zm2.828.27l-.941.84-.375.477.477-.375zm-2.328-.555c.055-.023.117.004.141.059s-.004.117-.059.141-.117-.004-.141-.059.004-.117.059-.141zm2.664.988l-1.129.57-.484.359.555-.238zm-2.109-1.136c.063-.008.113.031.121.09s-.031.113-.09.121-.113-.031-.121-.09.031-.113.09-.121zm2.316 1.644l-1.234.258-.562.223.598-.086zm0 0\"/><path d=\"M12.289 6.813c.059.008.102.059.094.121s-.062.098-.121.09-.102-.059-.094-.121.063-.098.121-.09zM14.102 9l-1.262-.07-.602.07.602.07zm0 0\"/><path d=\"M12.848 6.961c.055.023.078.086.055.141s-.086.082-.141.059-.078-.086-.059-.141.086-.082.145-.059zm1.179 2.582l-1.199-.395-.598-.086.563.223zm0 0\"/><path d=\"M13.344 7.25c.047.035.059.102.02.148s-.102.059-.148.023-.059-.105-.02-.152.102-.059.148-.02zm.476 2.801l-1.059-.691-.555-.238.484.359zm0 0\"/><path d=\"M13.754 7.656c.035.047.027.117-.023.152s-.113.027-.148-.02a.11.11 0 0 1 .02-.152c.047-.035.113-.027.152.02zm-.27 2.828l-.84-.941-.477-.375.375.477zm.555-2.328c.023.055-.004.117-.059.141s-.117-.004-.141-.059.004-.117.059-.141.117.004.141.059zm-.988 2.664l-.57-1.129-.359-.484.238.555zm1.137-2.109c.008.063-.031.113-.09.121s-.113-.031-.121-.09.031-.113.09-.121.113.031.121.09zm-1.645 2.316l-.258-1.234-.223-.562.086.598zm0 0\"/></g></svg>')\n        },\n        hu: {\n            languageName: 'Hungarian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><g fill-rule=\"evenodd\"><path d=\"M24 18H0v-6h24zm0 0\" fill=\"rgb(21.960784%,55.294118%,0%)\"/><path d=\"M24 6.004H0v-6h24zm0 0\" fill=\"rgb(83.137255%,20.784314%,8.627451%)\"/></g></svg>')\n        },\n        id: {\n            languageName: 'Indonesian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" fill-rule=\"evenodd\" class=\"language-svg-icon\"><path d=\"M0 0h24v9.336H0zm0 0\" fill=\"rgb(90.588235%,0%,6.666667%)\"/><path d=\"M0 9h24v9H0zm0 0\" fill=\"rgb(100%,100%,100%)\"/></svg>')\n        },\n        it: {\n            languageName: 'Italian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><g fill-rule=\"evenodd\"><path d=\"M0 0h8v18H0zm0 0\" fill=\"rgb(0%,57.254902%,27.45098%)\"/><path d=\"M16 0h8v18h-8zm0 0\" fill=\"rgb(80.784314%,16.862745%,21.568627%)\"/></g></svg>')\n        },\n        ja: {\n            languageName: 'Japanese',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M17.598 9a5.6 5.6 0 0 1-5.594 5.598A5.6 5.6 0 0 1 6.406 9c0-3.09 2.504-5.594 5.598-5.594S17.598 5.91 17.598 9zm0 0\" fill-rule=\"evenodd\" fill=\"rgb(82.745098%,0%,0%)\"/></svg>')\n        },\n        kk: {\n            languageName: 'Kazakh',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(0%,67.058824%,76.078431%)\"/><g fill-rule=\"evenodd\" fill=\"rgb(100%,92.54902%,17.647059%)\"><path d=\"M2.258 17.512c.125.121.082.32.422.293.52 0 .535-.316.535-.535s-.777-.531-.816-.855A.33.33 0 0 1 2.762 16c.176 0 .297.102.297.191s-.082.121-.207.121.055-.062-.055-.113-.18.074-.18.152.27.102.449.047c.039.176.055.188-.199.488.18-.117.195-.145.395-.074-.199-.172-.047-.52-.043-.605s-.039-.191-.113-.242c-.148-.133-.457-.141-.645-.055-.273.121-.289.48-.219.602l.758.766c.051.09.074.344-.246.355-.34.027-.457-.434-.52-.59-.078.168-.168.629-.508.605-.324-.012-.383-.262-.332-.355l.777-.789c.074-.121.059-.48-.215-.602-.187-.086-.5-.074-.641.055-.082.051-.129.152-.121.242s.156.434-.039.602c.195-.066.211-.039.391.074-.25-.297-.23-.309-.195-.488.18.063.449.039.449-.039s-.074-.211-.184-.16.074.117-.055.117c-.121 0-.211-.027-.211-.113s.121-.199.301-.199.395.09.359.418-.828.68-.828.898c0 .227.055.492.57.492.34.027.379-.172.504-.293zm0 0\"/><path d=\"M2.215 12.875c.125-.121.227-.473.563-.453.52 0 .715.289.715.512s-1.051 2.023-1.09 2.352.18.418.359.418.301-.102.301-.195-.09-.113-.211-.113.051.063-.055.113-.18-.078-.18-.156.27-.105.449-.043c.035-.176.051-.187-.199-.488.18.113.195.141.395.074-.199.172-.051.516-.043.602s-.039.195-.117.246c-.145.133-.457.137-.645.055-.27-.125-.285-.48-.215-.602l1.02-2.199c.059-.09-.086-.387-.406-.398-.34-.027-.457.328-.516.48l.461-.035s.02.074 0 .121c-.152.008-.309.031-.461.059l-.02.23h.227l-.016.105s-.191-.012-.211 0-.035.234-.035.234-.039.016-.078.016-.074-.016-.074-.016-.016-.223-.031-.234-.211 0-.211 0l-.02-.105h.23l-.02-.23s-.227-.047-.461-.059c-.016-.047 0-.117 0-.117l.461.031c-.062-.152-.176-.508-.516-.484-.32.016-.465.313-.41.402l1.02 2.199c.07.117.055.477-.215.602-.187.082-.504.074-.645-.055-.078-.051-.125-.156-.117-.242s.152-.437-.043-.602c.199.063.215.039.391-.078-.246.301-.23.313-.191.488.176-.062.445-.039.445.043 0 .074-.074.207-.18.156s.074-.113-.055-.113c-.121 0-.211.023-.211.113s.121.195.297.195.395-.094.363-.414c-.039-.328-1.09-2.137-1.09-2.355 0-.227.195-.508.715-.508.336-.023.461.328.578.449zm0 0\"/><path d=\"M2.215 11.977c.125.121.227.473.563.449.52 0 .715-.285.715-.508s-1.051-2.027-1.09-2.352.18-.418.359-.418.301.102.301.195-.09.113-.211.113.051-.059-.055-.113-.18.078-.18.156.27.105.449.043c.035.176.051.188-.199.488.18-.113.195-.141.395-.074-.199-.172-.051-.516-.043-.602s-.039-.195-.117-.246c-.145-.129-.457-.137-.645-.055-.27.125-.285.48-.215.602l1.02 2.195c.059.09-.086.387-.406.398-.34.027-.457-.328-.516-.484l.461.039s.02-.074 0-.121l-.461-.059-.02-.234h.227l-.016-.102s-.191.012-.211 0-.035-.234-.035-.234-.039-.016-.078-.016-.074.016-.074.016-.016.223-.031.234-.211 0-.211 0l-.02.102h.23l-.02.234s-.227.047-.461.059a.27.27 0 0 0 0 .117l.461-.035c-.062.156-.176.512-.516.488-.32-.016-.465-.312-.41-.402l1.02-2.195c.07-.121.055-.477-.215-.602-.187-.082-.504-.074-.645.055-.078.051-.125.156-.117.242s.152.434-.043.602c.199-.062.215-.039.391.078-.246-.301-.23-.312-.191-.488.176.063.445.039.445-.043s-.074-.207-.18-.156.074.113-.055.113c-.121 0-.211-.023-.211-.113s.121-.195.297-.195.395.09.363.414c-.039.328-1.09 2.137-1.09 2.355s.195.504.715.504c.336.027.461-.324.578-.445zm0 0\"/><path d=\"M2.215 6.023c.125-.121.227-.473.563-.449.52 0 .715.285.715.508s-1.051 2.027-1.09 2.355a.33.33 0 0 0 .359.414c.18 0 .301-.102.301-.191s-.09-.121-.211-.121.051.066-.055.121-.18-.082-.18-.16.27-.105.449-.043c.035-.176.051-.187-.199-.488.18.117.195.141.395.074-.199.172-.051.52-.043.602a.29.29 0 0 1-.117.246c-.145.133-.457.137-.645.055-.27-.125-.285-.48-.215-.602l1.02-2.195c.059-.09-.086-.387-.406-.398-.34-.027-.457.328-.516.484l.461-.039s.02.074 0 .121c-.238.012-.461.059-.461.059l-.02.234h.227l-.016.102s-.191-.008-.211 0-.035.238-.035.238-.039.012-.078.012-.074-.012-.074-.012-.016-.227-.031-.238-.211 0-.211 0l-.02-.102h.23l-.02-.234s-.227-.047-.461-.059c-.016-.047 0-.117 0-.117l.461.035c-.062-.156-.176-.512-.516-.488-.32.016-.465.313-.41.402l1.02 2.195c.07.121.055.477-.215.602-.187.082-.504.074-.645-.055-.078-.051-.125-.156-.117-.242s.152-.434-.043-.602c.199.063.215.039.391-.078-.246.301-.23.313-.191.488.176-.062.445-.035.445.043s-.074.207-.18.156.074-.113-.055-.113c-.121 0-.211.023-.211.113s.121.195.297.195.395-.09.363-.414C1.977 8.109.926 6.305.926 6.082s.195-.504.715-.504c.336-.027.461.324.578.449zm0 0\"/><path d=\"M2.215 5.125c.125.121.227.477.563.453.52 0 .715-.289.715-.512s-1.051-2.023-1.09-2.352.18-.418.359-.418.301.105.301.195-.09.117-.211.117.051-.062-.055-.117-.18.078-.18.156.27.105.449.043c.035.176.051.188-.199.488.18-.113.195-.141.395-.074-.199-.168-.051-.516-.043-.602s-.039-.195-.117-.246c-.145-.129-.457-.137-.645-.051a.48.48 0 0 0-.215.598l1.02 2.199c.059.09-.086.387-.406.402-.34.023-.457-.328-.516-.484l.461.035s.02-.074 0-.121c-.152-.008-.309-.027-.461-.055l-.02-.234h.227l-.016-.105s-.191.012-.211 0-.035-.234-.035-.234-.039-.016-.078-.016-.074.016-.074.016-.016.223-.031.234-.211 0-.211 0l-.02.105h.23l-.02.234s-.227.043-.461.055c-.016.051 0 .121 0 .121l.461-.035c-.062.156-.176.508-.516.484-.32-.016-.465-.312-.41-.402l1.02-2.199c.07-.117.055-.477-.215-.602-.187-.082-.504-.074-.645.055-.078.051-.125.156-.117.242s.152.438-.043.602c.199-.062.215-.039.391.078-.246-.301-.23-.312-.191-.488.18.063.445.039.445-.043 0-.074-.074-.207-.18-.156s.074.117-.055.117c-.121 0-.211-.027-.211-.117s.121-.195.297-.195.398.094.363.414c-.039.328-1.09 2.137-1.09 2.355 0 .227.195.512.715.512.336.023.461-.332.578-.453zm0 0\"/><path d=\"M2.258.488c.125-.121.082-.32.422-.293.52 0 .535.316.535.535s-.777.531-.816.855A.33.33 0 0 0 2.762 2c.176 0 .297-.102.297-.191s-.082-.121-.207-.121.055.063-.055.113-.18-.074-.18-.152.27-.105.449-.047c.039-.176.055-.187-.199-.488.18.117.195.145.395.074-.199.172-.047.52-.043.605s-.039.191-.113.242c-.152.141-.461.141-.648.059-.273-.121-.289-.48-.219-.602L3 .723c.051-.09.074-.344-.246-.355-.34-.027-.457.434-.52.59C2.156.79 2.066.325 1.726.349c-.324.012-.383.262-.332.355l.777.789c.074.121.059.48-.215.602-.187.086-.5.078-.641-.055-.082-.051-.129-.152-.121-.242s.156-.434-.039-.602c.195.066.211.039.391-.074-.25.297-.23.309-.195.488.18-.062.449-.039.449.039s-.074.211-.184.16.074-.117-.055-.117c-.121 0-.211.027-.211.113s.121.199.301.199.395-.09.359-.418-.828-.68-.828-.898c0-.227.055-.492.57-.492.34-.027.379.172.504.293zm10.894 4.004c1.879 0 3.406 1.445 3.406 3.23s-1.527 3.227-3.406 3.227-3.406-1.445-3.406-3.227 1.523-3.23 3.406-3.23zm0 0\"/><path d=\"M12.992 2.57c-.035 0-.184 1.07-.242 1.313-.055.539.723.52.594-.02l-.352-1.297zm.27 10.395c.027 0 .262-1.059.336-1.293.094-.535-.684-.562-.598-.02zM7.836 7.699c0 .027 1.117.254 1.363.324.563.094.602-.641.023-.559l-1.387.238zm10.875.129c0-.027-1.129-.211-1.383-.277-.562-.066-.566.664 0 .566zM8.98 4.297c-.02.02.715.852.863 1.059.387.398.895-.16.387-.434l-1.25-.621zm8.449 6.844c.02-.02-.789-.789-.957-.977-.422-.367-.871.23-.344.461l1.301.52zm-6.766-8.004c-.023.012.32 1.043.379 1.289.191.508.887.176.527-.262l-.902-1.027zm4.93 9.301c.027-.012-.242-1.062-.277-1.309-.156-.52-.871-.238-.547.227l.828 1.078zm1.211-8.582c-.023-.02-.914.668-1.129.801-.426.363.152.852.449.375zM9.48 11.609c.02.02.961-.602 1.184-.723.453-.328-.086-.859-.418-.402l-.762 1.125zM8.078 5.844c-.012.023.961.586 1.176.734.5.262.793-.418.219-.527zm10.156 3.938c.012-.023-.922-.652-1.121-.812-.48-.297-.82.363-.258.508zM15.007 2.86c-.027-.008-.586.938-.73 1.141 0 .137.086.254.211.297s.266 0 .348-.105zm-3.758 9.777c.027.016.652-.895.813-1.09a.31.31 0 0 0-.547-.227zM8.148 9.863c.012.027 1.121-.238 1.379-.277.547-.152.242-.824-.238-.512zm10.09-4.109c-.008-.023-1.133.164-1.395.188-.559.117-.301.809.203.531zm-4.144-3.117c-.027-.004-.402 1.016-.516 1.242-.164.52.602.648.59.094l-.07-1.34zm-1.941 10.242c.031.008.48-.988.609-1.207.199-.508-.551-.684-.578-.133l-.035 1.34zm-.387-10.141c-.027.008.078 1.086.078 1.336.074.531.824.348.574-.148zm2.723 10.082c.027-.004 0-1.09.02-1.34-.035-.539-.801-.402-.586.109l.563 1.23zM9.836 3.633c-.023.016.508.973.609 1.199.289.469.91.031.473-.344zm6.598 8.32c.023-.016-.441-1.008-.52-1.238-.254-.484-.902-.086-.496.313zM8.43 4.977c-.02.027.844.738 1.023.922.445.336.855-.289.313-.484zm9.371 5.594c.016-.023-.789-.793-.957-.984-.414-.367-.871.23-.344.465zM7.813 6.656c-.008.027 1.051.43 1.285.547.535.18.707-.535.121-.551zm10.703 2.313c.012-.023-1.02-.496-1.242-.629-.52-.215-.75.488-.168.543zM7.777 8.715c.004.027 1.148.008 1.406.031.57-.031.434-.754-.109-.559zM18.59 6.914c0-.027-1.145-.086-1.402-.121-.57-.012-.488.723.07.559l1.332-.441zm-9.832 3.937c.016.027 1.039-.461 1.277-.555.5-.262.043-.855-.355-.453zm8.895-6.094c-.016-.023-1.066.395-1.32.473-.516.227-.102.852.32.477zm-7.23 7.512c.023.012.754-.82.941-.996.348-.43-.32-.801-.52-.281zm5.59-8.957c-.02-.016-.812.766-1.008.93-.375.402.266.82.496.316l.508-1.246zm0 0\"/><path d=\"M7.941 9.867c.063.207.07 1.363 1.305 2.477 1.223 1.109 3.316 1.355 3.316 1.355s.012.156-.137.164c-.148.02-.867-.121-1.227-.23-.348-.098-.66-.281-.695-.273-.047.02-.113.133-.219.117s-.613-.512-.84-.645A6.89 6.89 0 0 1 8.25 11.57c-.246-.371-.309-.621-.387-.621s-.367.184-.367.184-.262-.371-.488-.969c-.234-.594-.207-.937-.156-.965.063-.023.063.438.234.859.176.43.422.563.422.563s-.16-.223-.281-.777-.176-1.09-.086-1.254.164-.215.172-.207c.02.016-.148.254-.035.891s.422 1.172.492 1.148-.043-.156-.09-.527.047-.605.141-.637c.043-.031.113.414.121.609zm-.855 1.059c-.234-.207-.602-.926-.68-.891-.086.039.594 1.07.609 1.156.02.098.168.379.055.336s-.926-.848-.832-.691.711.867.676.906-.508-.395-.527-.336c-.008.047.465.477.457.527s-.309-.273-.309-.207.309.387.309.438-.262-.23-.176-.082c.078.164.305.305.297.355s-.191-.066-.191-.043.34.141.418.23c.086.094.648.703 1.066 1.008s1.625.844 1.711.844c.078 0 .203-.164.176-.23s-1.207-.449-1.527-.727l-1.207-.992c-.062-.043-.246-.023-.246-.066s.238.023.219 0c-.008-.023-.32-.156-.312-.18.016-.027.219.047.219.023s-.367-.215-.352-.258.273.117.273.086c0-.02-.352-.25-.344-.289s.273.18.262.129-.207-.328-.207-.363.313.281.348.215c.02-.055-.113-.594-.105-.602s.238.117.273.043c.043-.086-.16-.191-.352-.34zm4.027 4.063c-.164.023-.242-.035-.148-.164.133 0 .48-.109.602-.16s.254-.113.359-.203c.105-.109.176.055.113.148-.043.055-.242.164-.391.223-.219.066-.414.164-.535.156zm1.094-.422c-.113-.117-.02-.199.148-.289.242-.125.172-.297.488-.437.141-.082 2.098-.824 2.734-1.223s2.426-1.676 2.906-2.559c.473-.875.246-.941.316-.973.063-.043.129.121.121.32-.016.191-.176.77-.121.824s.715-.453.996-1.07.488-1.266.621-1.266-.23 1.059-.465 1.469c-.227.414-.496.621-.437.711.07.082.754-.453.988-.848.227-.406.445-.762.488-.687-.07.484-.27.941-.586 1.328-.367.398-.801.688-.73.746.059.066.559.129 1.074-.199.523-.34.574-.824.637-.801.07.023-.062.691-.559 1.105s-1.152.453-1.137.547c.035.082 1.422-.383 1.398-.273-.027.098-1.801.758-1.816.824 0 .051.305.066.785-.039.473-.102.926-.457.988-.371.016.113-.344.395-.883.527-.551.133-.82.305-.84.348-.008.039.98-.117.98-.066s-1.293.289-1.305.355c-.016.055 1.223-.242 1.207-.168-.035.059-1.687.52-1.668.547.008.031 1.379-.281 1.352-.23-.035.055-2.305.66-2.32.699s2.008-.43 1.988-.387-1.047.281-1.047.305.832-.125.813-.082c-.008.031-2.098.535-2.141.609-.043.086 1.086-.203 1.066-.055s-2.418.906-2.43.766 1.461-.496 1.453-.535c-.02-.043-.848.082-.867.008-.008-.082.551-.25.508-.281-.043-.043-.465.117-.43.023.047-.09.84-.437.824-.461s-.289.082-.266 0c.035-.09 1.723-.555 1.695-.609s-.777.113-.848.129c-.023-.047 1.051-.43 1.031-.492-.035-.059-.574.223-.609.148-.02-.086.949-.437.891-.496s-.5.148-.559.09.914-.691.766-.711c-.148-.008-.332.199-.348.066.016-.164.762-.437.594-.57-.262-.074-1.145.059-1.512.266s-1.59 1.355-1.887 1.535-1.309.578-1.5.66c-.297.102-.352.25-.656.398-.551.141-.543.297-.805.387-.094.023-1.082.473-1.09.438zm-1.383.578c-.164.082-.312.281-.219.363.055.098.219-.223.352-.207l.699.035c.375.023.559-.074.77-.059s.672-.109.891-.109.262.027.277-.066c.027-.082-.68-.023-.996-.031-.312-.016-.707.059-.941.059-.219-.008-.594-.074-.832.016zm0 0\"/><path d=\"M11.727 14.922c.082 0 .148.055.148.125s-.066.121-.148.121-.148-.055-.148-.121.066-.125.148-.125zm3.632-.117c.148-.023.551.109.828.168.508.188 1.453.098 1.453.188s-.062.199-.281.215-.77-.082-.75-.082.434.191.313.238-.48-.105-.539-.066.328.117.262.141c-.055.027-.324-.031-.414-.023-.086.016.07.109-.031.141-.105.043-.281-.051-.352-.023-.078.023.156.164.055.18s-.352-.066-.492-.082c-.137 0 .133.133.043.148-.086.008-.328-.105-.391-.105s0 .164-.09.164-.191-.141-.242-.141 0 .164-.086.164-.125-.172-.195-.164c-.086.016 0 .223-.121.207-.113-.008-.133-.215-.227-.207-.086.016.016.207-.07.207s-.105-.191-.191-.207c-.09-.008-.055.18-.105.18s-.105-.18-.141-.18c-.027 0 0 .18-.105.164s-.102-.199-.129-.187c-.035.016-.035.148-.105.148s-.078-.133-.105-.117c-.035.008-.141.172-.211.148-.078-.023.02-.156-.016-.156s-.121.09-.176.082 0-.117-.016-.117-.148.066-.211.066-.227.082-.27.008c-.043-.082.113-.082.148-.156.027-.074-.09-.297.035-.371.113-.082.488.109 1.047-.023l1.879-.547zm0 0\"/></g></svg>')\n        },\n        ko: {\n            languageName: 'Korean',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><g fill-rule=\"evenodd\"><g fill=\"rgb(0%,0%,0%)\"><path d=\"M2.629 5.469l2.5-3.746.621.418-2.496 3.742zm.938.621l2.496-3.742.625.418-2.496 3.742zm.937.625L7 2.973l.625.414-2.5 3.746zm11.855 7.906l2.496-3.742.621.414-2.496 3.746zm.934.625l2.496-3.742.625.414-2.496 3.746zm.938.625l2.496-3.742.625.414-2.496 3.742zm0 0\"/><path d=\"M17.293 12.544l3.121 2.082\" stroke=\"rgb(100%,100%,100%)\" stroke-width=\".375\"/></g><path d=\"M8.246 6.508c1.379-2.066 4.172-2.625 6.242-1.246s2.625 4.172 1.246 6.242zm0 0\" fill=\"rgb(80.392157%,18.039216%,22.745098%)\"/><path d=\"M8.246 6.508c-1.379 2.07-.82 4.863 1.246 6.242s4.863.82 6.242-1.246c.688-1.035.41-2.434-.625-3.121s-2.43-.41-3.117.621zm0 0\" fill=\"rgb(0%,27.843137%,62.745098%)\"/><path d=\"M11.367 5.887a2.25 2.25 0 0 1 .625 3.117c-.691 1.035-2.09 1.313-3.121.625s-1.312-2.086-.625-3.121a2.25 2.25 0 0 1 3.121-.621zm0 0\" fill=\"rgb(80.392157%,18.039216%,22.745098%)\"/><g fill=\"rgb(0%,0%,0%)\"><path d=\"M5.137 16.289l-2.496-3.742.621-.418 2.5 3.746zm.934-.625l-2.496-3.742.625-.418 2.496 3.746zm.938-.621l-2.496-3.746.625-.414 2.496 3.742zm11.854-7.91l-2.496-3.742.625-.414 2.496 3.742zm.938-.621l-2.5-3.746.625-.414 2.496 3.742zm.934-.625l-2.496-3.746.625-.414 2.496 3.742zm0 0\"/><path d=\"M4.668 13.899l.938-.625m11.699-7.802l1.09-.731m.938-.625l.934-.625\" stroke=\"rgb(100%,100%,100%)\" stroke-width=\".375\"/></g></g></svg>')\n        },\n        ky: {\n            languageName: 'Kyrgyz',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><defs><clipPath id=\"A\"><path d=\"M0 0h23.996v18H0zm0 0\"/></clipPath></defs><g clip-path=\"url(#A)\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,0%,0%)\"/></g><g fill-rule=\"evenodd\"><g fill=\"rgb(100%,100%,0%)\"><path d=\"M6.695 9.18c.477-.582 1.473-.016 2.285-.434-.965.055-1.488-.465-2.246-.391.785-.484 1.457.16 2.336-.098-1.164-.098-1.113-.621-2.176-.695.941-.402 1.406.414 2.332.227-1.09-.25-1.23-.887-2.039-1.023 1.18-.176 1.102.52 2.258.602-1.172-.5-.867-.941-1.848-1.324 1.102-.023 1.027.738 2.145.934-.957-.602-.84-1.156-1.625-1.586.934.016 1.02.969 1.973 1.266-.848-.672-.625-1.242-1.355-1.844.926.219.789 1.039 1.758 1.566-.719-.793-.445-1.363-1.066-2.012.895.285.551 1.066 1.477 1.813-.527-.875-.199-1.434-.723-2.168.828.426.426 1.227 1.195 2.02-.363-.895 0-1.449-.371-2.246.711.527.289 1.383.863 2.199-.211-1.125.273-1.309.121-2.293.539.66-.062 1.32.352 2.297-.051-1.109.539-1.367.438-2.25.531.793-.301 1.484.047 2.336.09-1.047.777-1.32.789-2.137.422.75-.492 1.289-.344 2.285.297-1.098 1.031-1.23 1.125-1.969.25.863-.754 1.266-.695 2.23.301-.977 1.219-1.09 1.406-1.809.117.914-.785 1.078-1.043 2.09.477-.824 1.309-.891 1.68-1.547-.027.91-1.047 1.027-1.359 1.875.586-.719 1.324-.598 1.914-1.234-.066.82-1.102.773-1.652 1.621.633-.586 1.594-.41 2.082-.918-.023.727-1.297.668-1.898 1.32.738-.41 1.68-.168 2.223-.547-.098.633-1.441.484-2.086.984.887-.246 1.574.133 2.285-.141-.348.617-1.566.227-2.215.625.773-.129 1.59.34 2.289.188-.227.535-1.566-.035-2.285.301.859-.008 1.418.543 2.215.504-.43.484-1.605-.18-2.293-.066.84.176 1.477.867 2.109.902-.523.395-1.492-.512-2.285-.398.816.219 1.5 1.141 1.965 1.164-.504.344-1.496-.793-2.176-.75.828.375 1.203 1.32 1.75 1.453-.672.215-1.332-1.027-2.055-1.074.836.527.883 1.336 1.527 1.695-.68.164-1.16-1.238-1.875-1.355.688.5.793 1.582 1.246 1.918-.691.035-.941-1.43-1.648-1.641.605.504.461 1.602.934 2.074-.719-.152-.625-1.43-1.375-1.859.539.68.266 1.648.617 2.191-.703-.281-.398-1.426-1.062-2.074.359.727-.027 1.57.258 2.27-.637-.312-.211-1.668-.699-2.207.227.84-.187 1.531-.02 2.281-.656-.758.098-1.52-.469-2.289.148.883-.469 1.5-.371 2.238-.52-.605.281-1.57-.125-2.332.086.867-.711 1.629-.656 2.18-.422-.703.469-1.535.227-2.332-.047.828-.855 1.277-1.008 2.035-.27-.832.691-1.434.605-2.254-.273.777-1.055 1.09-1.328 1.848-.227-.836.914-1.273.941-2.148-.352.816-1.285 1-1.594 1.625-.113-.824 1.188-1.195 1.238-1.977-.422.75-1.441.781-1.793 1.379-.051-.82 1.32-.922 1.535-1.785-.418.641-1.535.559-2.004 1.078.074-.762 1.562-.809 1.801-1.496-.555.535-1.582.316-2.16.738.32-.754 1.719-.594 2.031-1.137-.617.32-1.711.008-2.25.332.492-.711 1.574-.285 2.191-.773-1 .145-1.602-.254-2.293-.07zm0 0\"/><path d=\"M15.5 9.004a3.49 3.49 0 0 1-3.488 3.488 3.49 3.49 0 0 1-3.488-3.488c0-1.926 1.559-3.488 3.484-3.488s3.488 1.563 3.488 3.488zm0 0\"/></g><path d=\"M15.051 9.012c0 1.676-1.359 3.031-3.035 3.031a3.03 3.03 0 0 1-3.031-3.031c0-1.676 1.355-3.035 3.031-3.035s3.035 1.359 3.035 3.035zm0 0\" fill=\"rgb(100%,0%,0%)\"/><path d=\"M14.629 9.016c0 1.441-1.168 2.605-2.605 2.605s-2.605-1.164-2.605-2.605 1.168-2.602 2.605-2.602 2.605 1.164 2.605 2.602zm0 0\" fill=\"rgb(100%,100%,0%)\"/><path d=\"M9.805 7.313c.723-.016 1.617.051 2.211.52.637-.395 1.383-.57 2.129-.504l.387.707a3.57 3.57 0 0 0-1.758.289c.801.59 1.254 1.543 1.215 2.535-.094.121-.246.25-.34.371.141-1.004-.387-2.121-1.156-2.707.625.898.992 1.707.891 2.824l-.352.227c.164-.984-.07-2.145-.797-2.812.422.613.836 1.723.578 2.848-.113.035-.289.129-.402.16a3.38 3.38 0 0 0-.379-2.766c-.484.695-.645 1.758-.371 2.742l-.371-.109c-.199-1.055.078-2.25.559-2.871-.492.285-.953 1.5-.824 2.742l-.324-.152c-.16-.926.258-2.129.859-2.828-.68.43-1.238 1.488-1.141 2.625-.105-.094-.203-.137-.309-.234-.117-.988.457-1.988 1.129-2.586-.566-.258-1.055-.305-1.758-.297l.324-.727zm0 0\" fill=\"rgb(100%,0%,0%)\"/></g></svg>')\n        },\n        lo: {\n            languageName: 'Lao',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(80.784314%,6.666667%,14.901961%)\"/><g fill-rule=\"evenodd\"><path d=\"M-1.5 4.473h27v9.055h-27zm0 0\" fill=\"rgb(0%,15.686275%,40.784314%)\"/><path d=\"M15.879 9A3.88 3.88 0 0 1 12 12.879 3.88 3.88 0 0 1 8.121 9 3.88 3.88 0 0 1 12 5.121 3.88 3.88 0 0 1 15.879 9zm0 0\" fill=\"rgb(100%,100%,100%)\"/></g></svg>')\n        },\n        lv: {\n            languageName: 'Latvian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M0 0h24v7.199H0zm0 10.801h24V18H0zm0 0\" fill-rule=\"evenodd\" fill=\"rgb(59.607843%,11.764706%,19.607843%)\"/></svg>')\n        },\n        lt: {\n            languageName: 'Lithuanian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" fill-rule=\"evenodd\" class=\"language-svg-icon\"><path d=\"M0 0h24v17.922H0zm0 0\" fill=\"rgb(0%,41.568627%,26.666667%)\"/><path d=\"M0 12.027h24V18H0zm0 0\" fill=\"rgb(75.686275%,15.294118%,17.647059%)\"/><path d=\"M0 0h24v5.973H0zm0 0\" fill=\"rgb(99.215686%,72.54902%,7.45098%)\"/></svg>')\n        },\n        lb: {\n            languageName: 'Luxembourgish',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 9h24v9H0zm0 0\" fill=\"rgb(0%,63.137255%,87.058824%)\"/><path d=\"M0 0h24v9H0zm0 0\" fill=\"rgb(92.941176%,16.078431%,22.352941%)\"/><path d=\"M0 6h24v6H0zm0 0\" fill=\"rgb(100%,100%,100%)\"/></svg>')\n        },\n        mk: {\n            languageName: 'Macedonian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(82.352941%,0%,0%)\"/><g fill=\"rgb(100%,90.196078%,0%)\"><path d=\"M0 0h3.602L12 8.676 20.398 0H24L0 18h3.602L12 9.324 20.398 18H24zm24 7.199v3.602L0 7.199v3.602zM10.5 0L12 7.715 13.5 0zm0 18l1.5-7.715L13.5 18zm0 0\"/><path d=\"M14.891 9a2.89 2.89 0 1 1-5.781 0 2.89 2.89 0 1 1 5.781 0zm0 0\" stroke=\"rgb(82.352941%,0%,0%)\" stroke-width=\".641\"/></g></svg>')\n        },\n        ms: {\n            languageName: 'Malay',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(80%,0%,0%)\"/><path d=\"M.02 1.496h23.96v1.441H.02zm0 2.953h23.96v1.438H.02zm0 2.953h23.96v1.441H.02zm0 0\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M0 .02h12v10.5H0zm0 0\" fill=\"rgb(0%,0%,40%)\"/><path d=\"M7.781 2.766l.227 1.527.859-1.273-.465 1.469 1.332-.781L8.68 4.832l1.539-.117-1.437.555 1.438.555-1.539-.121 1.055 1.125-1.332-.781.461 1.477-.859-1.281-.227 1.527-.223-1.527-.859 1.277.465-1.473-1.332.781 1.051-1.125-1.539.121 1.441-.555-1.437-.555 1.539.117-1.055-1.125 1.332.781-.465-1.473.859 1.277zm-1.25.066a2.66 2.66 0 0 0-3.18.797c-.754.965-.754 2.316 0 3.281a2.66 2.66 0 0 0 3.18.797c-1.242.891-2.957.703-3.98-.434a3 3 0 0 1 0-4.008c1.023-1.141 2.738-1.328 3.98-.434zm0 0\" fill=\"rgb(100%,80%,0%)\"/><path d=\"M.02 10.359h23.96v1.438H.02zm0 2.93h23.96v1.441H.02zM0 16.559h23.961V18H0zm0 0\" fill=\"rgb(100%,100%,100%)\"/></svg>')\n        },\n        mn: {\n            languageName: 'Mongolian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.mn-B{fill:rgb(76.862745%,15.294118%,18.431373%)}.mn-C{fill:rgb(97.647059%,81.176471%,0.784314%)}.mn-D{stroke:rgb(76.862745%,15.294118%,18.431373%)}.mn-E{stroke-width:.143}]]></style><path d=\"M0 0h24v18H0z\" class=\"mn-B\"/><path d=\"M8 0h8v18H8zm0 0\" fill=\"rgb(0.392157%,31.764706%,59.215686%)\"/><path d=\"M5.324 7.09a1.31 1.31 0 0 1-1.312 1.312c-.723 0-1.313-.586-1.313-1.312s.59-1.312 1.313-1.312 1.313.59 1.313 1.313zm0 0\" class=\"mn-C\"/><path d=\"M5.445 6.496a1.43 1.43 0 0 1-1.434 1.43c-.789 0-1.434-.641-1.434-1.43s.645-1.434 1.434-1.434a1.43 1.43 0 0 1 1.434 1.434zm0 0\" class=\"mn-B\"/><g class=\"mn-C\"><path d=\"M3.418 4.941c0 .332.266.598.594.598s.598-.266.598-.598c0-.234-.152-.27-.152-.355s.09-.211-.09-.359c.09.148-.059.18-.059.328s.059.152.059.27c-.008.055-.059.098-.117.098s-.105-.043-.117-.098c0-.117.117-.238.117-.414 0-.184-.027-.242-.117-.391s-.242-.27-.121-.391c-.18.063-.09.301-.09.449s-.121.238-.121.414.09.215.09.332c-.008.055-.059.098-.117.098s-.105-.043-.117-.098c0-.117.059-.117.059-.27s-.148-.18-.059-.328c-.18.148-.09.27-.09.359s-.148.117-.148.355zm0 0\" fill-rule=\"evenodd\"/><path d=\"M4.965 6.73a.95.95 0 0 1-.953.953c-.523 0-.953-.426-.953-.953s.43-.953.953-.953a.96.96 0 0 1 .953.953zM1.387 8.641v5.727h1.191V8.641zm4.059 0v5.727h1.191V8.641zm-2.625.957v.477h2.383v-.477zm0 3.336v.48h2.383v-.477zm0-4.293h2.383l-1.191.715zm0 5.012h2.383l-1.191.711zm0 0\"/><path d=\"M5.277 11.504c0 .699-.566 1.266-1.266 1.266s-1.262-.566-1.262-1.266.566-1.262 1.262-1.262 1.266.566 1.266 1.262zm0 0\" class=\"mn-D mn-E\"/></g><path d=\"M4.012 10.238a.63.63 0 1 1 0 1.266.64.64 0 0 0-.59.301.65.65 0 0 0 0 .664.64.64 0 0 0 .59.301\" fill=\"none\" class=\"mn-D mn-E\"/><path d=\"M4.254 10.871a.24.24 0 0 1-.242.238c-.133 0-.238-.105-.238-.238s.105-.238.238-.238a.24.24 0 0 1 .242.238zm0 1.266c0 .129-.109.238-.242.238a.24.24 0 1 1 0-.48c.133 0 .242.109.242.242zm0 0\" class=\"mn-B\"/></svg>')\n        },\n        ne: {\n            languageName: 'Nepali',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><g fill-rule=\"evenodd\"><path d=\"M.227 17.795h13.337L4.838 8.944l9.054.012L.231.226v17.569zm0 0\" fill=\"rgb(80.784314%,0%,0%)\" stroke=\"rgb(0%,0%,38.823529%)\" stroke-width=\".486\"/><path d=\"M6.352 13.07l-.949.316.746.695-1-.062.41.922-.898-.434.02 1.008-.66-.734-.379.934-.32-.926-.715.727.063-.977-.945.402.441-.879-1.027.02.754-.641-.961-.371.953-.316-.75-.695.996.063-.406-.922.898.434-.016-1.004.66.734.375-.937.32.926.719-.723-.066.973.949-.402-.445.879 1.031-.02-.754.645zM5.215 6.578l-.398.297.195.16A3.29 3.29 0 0 0 6.094 5.77c.063.75-.625 2.426-2.418 2.441-.66.012-1.297-.246-1.77-.711s-.738-1.098-.742-1.758c.352.641.57.949 1.125 1.281l.164-.152-.371-.316.48-.125-.262-.437.508.039-.062-.508.441.258.141-.473.316.379.301-.359.16.492.414-.289-.051.5.5-.059-.238.465zm0 0\" fill=\"rgb(100%,100%,100%)\"/></g></svg>')\n        },\n        no: {\n            languageName: 'Norwegian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(92.941176%,16.078431%,22.352941%)\"/><g fill=\"rgb(100%,100%,100%)\"><path d=\"M6.75 0h4.5v18h-4.5zm0 0\"/><path d=\"M0 6.75h24v4.5H0zm0 0\"/></g><g fill=\"rgb(0%,14.901961%,39.215686%)\"><path d=\"M7.875 0h2.25v18h-2.25zm0 0\"/><path d=\"M0 7.875h24v2.25H0zm0 0\"/></g></svg>')\n        },\n        fa: {\n            languageName: 'Persian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.fa-B{fill:rgb(100%,100%,100%)}.fa-C{fill:rgb(85.490196%,0%,0%)}]]></style><path d=\"M0 0h24v18H0z\" class=\"fa-B\"/><g fill-rule=\"evenodd\"><path d=\"M-3.75 12.086h31.5V18h-31.5zm0 0\" class=\"fa-C\"/><g class=\"fa-B\"><path d=\"M2.242 12.34h1.723v.117H2.242zm.254.59h.121v.117h-.121zm1.473 0v.117h-.344v-.121zm.184-.59h.121v.703h-.121zm0 0\"/><path d=\"M4.844 12.926v.121h-.656v-.121zm-1.219-.277h.113v.398h-.117zm0 0\"/><path d=\"M4.742 12.34h.121v.703h-.121zm-.293 0h.113v.703h-.113zm-1.574.281v.121h-.633v-.121zm1.379 0v.121h-.633v-.121zm0 0\"/><path d=\"M3.625 12.652h.113v.391h-.117zm0 0\"/><path d=\"M3.625 12.652h.113v.391h-.117zm0 0\"/><path d=\"M3.625 12.652h.113v.391h-.117zm-1.383 0h.117v.391h-.117zm1.016 0h.117v.391h-.117zm-.504 0h.121v.391h-.121zm0 0\"/><use xlink:href=\"#B\"/><path d=\"M-.594 12.34h1.723v.117H-.594zm.258.59h.117v.117H-.34zm1.473 0v.117H.793v-.121zm.184-.59h.117v.703H1.32zm0 0\"/><path d=\"M2.008 12.926v.121h-.652v-.121zm-1.215-.277h.113v.398H.793zm0 0\"/><path d=\"M1.91 12.34h.121v.703H1.91zm-.297 0h.117v.703h-.117zm-1.574.281v.121h-.633v-.121zm1.383 0v.121H.789v-.121zm0 0\"/><path d=\"M.793 12.652h.113v.391H.793zm0 0\"/><path d=\"M.793 12.652h.113v.391H.793zm0 0\"/><path d=\"M.793 12.652h.113v.391H.793zm-1.383 0h.117v.391H-.59zm1.012 0h.117v.391H.422zm-.5 0h.117v.391h-.117zm0 0\"/><path d=\"M.504 12.926v.121h-.527v-.121zm.035-.305v.121H.203v-.121zm4.512-.281h1.723v.117H5.051zm.254.59h.121v.117h-.121zm1.477 0v.117h-.348v-.121zm.184-.59h.121v.703h-.121zm0 0\"/><use xlink:href=\"#C\"/><path d=\"M7.555 12.34h.117v.703h-.117zm-.297 0h.117v.703h-.121zm-1.574.281v.121h-.633v-.121zm1.379 0v.121H6.43v-.121zm0 0\"/><use xlink:href=\"#D\"/><use xlink:href=\"#D\"/><path d=\"M6.434 12.652h.121v.391h-.121zm-1.379 0h.117v.391h-.117zm1.012 0h.117v.391h-.117zm-.504 0h.121v.391h-.121zm0 0\"/><use xlink:href=\"#B\" x=\"2.812\"/><path d=\"M7.875 12.34h1.727v.117H7.879zm.262.59h.117v.117h-.117zm1.469 0v.117h-.344v-.121zm.188-.59h.117v.703h-.117zm0 0\"/><path d=\"M10.48 12.926v.121h-.652v-.121zm-1.219-.277h.121v.398h-.121zm0 0\"/><path d=\"M10.383 12.34h.121v.703h-.121zm-.297 0h.117v.703h-.117zm-1.578.281v.121h-.629v-.121zm1.383 0v.121h-.629v-.121zm0 0\"/><use xlink:href=\"#D\" x=\"2.828\"/><use xlink:href=\"#D\" x=\"2.828\"/><path d=\"M9.262 12.652h.121v.391h-.121zm-1.383 0H8v.391h-.121zm1.012 0h.121v.391h-.121zm-.496 0h.113v.391h-.113zm0 0\"/><use xlink:href=\"#B\" x=\"5.641\"/><path d=\"M10.719 12.34h1.719v.117h-1.719zm.254.59h.121v.117h-.121zm1.473 0v.117h-.344v-.121zm.188-.59h.117v.703h-.117zm0 0\"/><use xlink:href=\"#C\" x=\"5.668\"/><use xlink:href=\"#E\"/><use xlink:href=\"#D\" x=\"5.668\"/><use xlink:href=\"#D\" x=\"5.668\"/><path d=\"M12.102 12.652h.121v.391h-.121zm-1.383 0h.117v.391h-.117zm1.016 0h.117v.391h-.117zm-.504 0h.117v.391h-.121zm0 0\"/><path d=\"M11.816 12.926v.121h-.535v-.121zm.035-.305v.121h-.344v-.121zm0 0\"/></g><path d=\"M-3.75 0h31.5v5.914h-31.5zm0 0\" fill=\"rgb(13.72549%,62.352941%,25.098039%)\"/><g class=\"fa-B\"><path d=\"M13.57 12.34h1.723v.117H13.57zm.258.59h.121v.117h-.121zm1.473 0v.117h-.348v-.121zm.188-.59h.113v.703h-.113zm0 0\"/><path d=\"M16.172 12.926v.121h-.652v-.121zm-1.215-.277h.117v.398h-.121zm0 0\"/><path d=\"M16.078 12.34h.117v.703h-.117zm-.297 0h.117v.703h-.117zm-1.578.281v.121h-.633v-.121zm1.383 0v.121h-.633v-.121zm0 0\"/><path d=\"M14.953 12.652h.125v.391h-.125zm0 0\"/><path d=\"M14.953 12.652h.125v.391h-.125zm0 0\"/><path d=\"M14.953 12.652h.125v.391h-.125zm-1.379 0h.121v.391h-.121zm1.012 0h.121v.391h-.121zm-.5 0h.117v.391h-.117zm0 0\"/><path d=\"M14.672 12.926v.121h-.535v-.121zm.035-.305v.121h-.336v-.121zm1.703-.281h1.723v.117H16.41zm.254.59h.121v.117h-.121zm1.477 0v.117h-.348v-.121zm.184-.59h.121v.703h-.121zm0 0\"/><use xlink:href=\"#C\" x=\"11.36\"/><path d=\"M18.914 12.34h.117v.703h-.117zm-.297 0h.117v.703h-.117zm-1.574.281v.121h-.629v-.121zm1.379 0v.121h-.629v-.121zm0 0\"/><use xlink:href=\"#D\" x=\"11.359\"/><use xlink:href=\"#D\" x=\"11.359\"/><path d=\"M17.793 12.652h.121v.391h-.121zm-1.379 0h.117v.391h-.117zm1.012 0h.117v.391h-.117zm-.504 0h.121v.391h-.117zm0 0\"/><path d=\"M17.508 12.926v.121h-.531v-.121zm.035-.305v.121h-.34v-.121zm1.707-.281h1.723v.117H19.25zm.258.59h.117v.117h-.117zm1.473 0v.117h-.348v-.121zm.18-.59h.121v.703h-.121zm0 0\"/><path d=\"M21.852 12.926v.121h-.656v-.121zm-1.219-.277h.117v.398h-.117zm0 0\"/><path d=\"M21.754 12.34h.117v.703h-.117zm-.297 0h.117v.703h-.117zm-1.574.281v.121h-.633v-.121zm1.383 0v.121h-.633v-.121zm0 0\"/><path d=\"M20.633 12.652h.117v.391h-.117zm0 0\"/><path d=\"M20.633 12.652h.117v.391h-.117zm0 0\"/><path d=\"M20.633 12.652h.117v.391h-.117zm-1.383 0h.117v.391h-.117zm1.016 0h.117v.391h-.117zm-.504 0h.121v.391h-.121zm0 0\"/><path d=\"M20.348 12.926v.121h-.531v-.121zm.035-.305v.121h-.34v-.121zm1.722-.281h1.723v.117h-1.723zm.254.59h.121v.117h-.121zm1.473 0v.117h-.344v-.121zm.184-.59h.121v.703h-.121zm0 0\"/><path d=\"M24.707 12.926v.121h-.656v-.121zm-1.219-.277h.117v.398h-.117zm0 0\"/><use xlink:href=\"#E\" x=\"11.386\"/><path d=\"M23.488 12.652h.117v.391h-.117zm0 0\"/><path d=\"M23.488 12.652h.117v.391h-.117zm0 0\"/><path d=\"M23.488 12.652h.117v.391h-.117zm-1.379 0h.113v.391h-.113zm1.012 0h.117v.391h-.117zm-.504 0h.121v.391h-.121zm0 0\"/><path d=\"M23.199 12.926v.121h-.527v-.121zm.035-.305v.121h-.336v-.121zM2.242 5.043h1.723v.117H2.242zm.254.598h.121v.109h-.121zm1.473-.008v.117h-.344v-.117zm.184-.59h.121v.707h-.121zm0 0\"/><path d=\"M4.844 5.633v.117h-.656v-.117zm-1.219-.277h.113v.395h-.117zm0 0\"/><path d=\"M4.742 5.043h.121v.707h-.121zm-.293 0h.113v.707h-.113zm-1.574.281v.117h-.633v-.113zm1.379 0v.117h-.633v-.113zm0 0\"/><path d=\"M3.625 5.355h.113v.395h-.117zm0 0\"/><path d=\"M3.625 5.355h.113v.395h-.117zm0 0\"/><path d=\"M3.625 5.355h.113v.395h-.117zm-1.383 0h.117v.395h-.117zm1.016 0h.117v.395h-.117zm-.504 0h.121v.395h-.121zm0 0\"/><use xlink:href=\"#F\"/><path d=\"M-.594 5.043h1.723v.117H-.594zm.258.598h.117v.109H-.34zm1.473-.008v.117H.793v-.117zm.184-.59h.117v.707H1.32zm0 0\"/><path d=\"M2.008 5.633v.117h-.652v-.117zM.793 5.355h.113v.395H.793zm0 0\"/><path d=\"M1.91 5.043h.121v.707H1.91zm-.297 0h.117v.707h-.117zm-1.574.281v.117h-.633v-.113zm1.383 0v.117H.789v-.113zm0 0\"/><path d=\"M.793 5.355h.113v.395H.793zm0 0\"/><path d=\"M.793 5.355h.113v.395H.793zm0 0\"/><path d=\"M.793 5.355h.113v.395H.793zm-1.383 0h.117v.395H-.59zm1.012 0h.117v.395H.422zm-.5 0h.117v.395h-.117zm0 0\"/><path d=\"M.504 5.633v.117h-.527v-.117zm.035-.305v.113H.203v-.113zm4.512-.285h1.723v.117H5.051zm.254.598h.121v.109h-.121zm1.477-.008v.117h-.348v-.117zm.184-.59h.121v.707h-.121zm0 0\"/><use xlink:href=\"#G\"/><path d=\"M7.555 5.043h.117v.707h-.117zm-.297 0h.117v.707h-.121zm-1.574.281v.117h-.633v-.113zm1.379 0v.117H6.43v-.113zm0 0\"/><use xlink:href=\"#H\"/><use xlink:href=\"#H\"/><path d=\"M6.434 5.355h.121v.395h-.121zm-1.379 0h.117v.395h-.117zm1.012 0h.117v.395h-.117zm-.504 0h.121v.395h-.121zm0 0\"/><use xlink:href=\"#F\" x=\"2.812\"/><path d=\"M7.875 5.043h1.727v.117H7.879zm.262.598h.117v.109h-.117zm1.469-.008v.117h-.344v-.117zm.188-.59h.117v.707h-.117zm0 0\"/><path d=\"M10.48 5.633v.117h-.652v-.117zm-1.219-.277h.121v.395h-.121zm0 0\"/><path d=\"M10.383 5.043h.121v.707h-.121zm-.297 0h.117v.707h-.117zm-1.578.281v.117h-.629v-.113zm1.383 0v.117h-.629v-.113zm0 0\"/><use xlink:href=\"#H\" x=\"2.828\"/><use xlink:href=\"#H\" x=\"2.828\"/><path d=\"M9.262 5.355h.121v.395h-.121zm-1.383 0H8v.395h-.121zm1.012 0h.121v.395h-.121zm-.496 0h.113v.395h-.113zm0 0\"/><use xlink:href=\"#F\" x=\"5.641\"/><path d=\"M10.719 5.043h1.719v.117h-1.719zm.254.598h.121v.109h-.121zm1.473-.008v.117h-.344v-.117zm.188-.59h.117v.707h-.117zm0 0\"/><use xlink:href=\"#G\" x=\"5.668\"/><use xlink:href=\"#I\"/><use xlink:href=\"#H\" x=\"5.668\"/><use xlink:href=\"#H\" x=\"5.668\"/><path d=\"M12.102 5.355h.121v.395h-.121zm-1.383 0h.117v.395h-.117zm1.016 0h.117v.395h-.117zm-.504 0h.117v.395h-.121zm0 0\"/><path d=\"M11.816 5.633v.117h-.535v-.117zm.035-.305v.113h-.344v-.113zm1.719-.285h1.723v.117H13.57zm.258.598h.121v.109h-.121zm1.473-.008v.117h-.348v-.117zm.188-.59h.113v.707h-.113zm0 0\"/><path d=\"M16.172 5.633v.117h-.652v-.117zm-1.215-.277h.117v.395h-.121zm0 0\"/><path d=\"M16.078 5.043h.117v.707h-.117zm-.297 0h.117v.707h-.117zm-1.578.281v.117h-.633v-.113zm1.383 0v.117h-.633v-.113zm0 0\"/><path d=\"M14.953 5.355h.125v.395h-.125zm0 0\"/><path d=\"M14.953 5.355h.125v.395h-.125zm0 0\"/><path d=\"M14.953 5.355h.125v.395h-.125zm-1.379 0h.121v.395h-.121zm1.012 0h.121v.395h-.121zm-.5 0h.117v.395h-.117zm0 0\"/><path d=\"M14.672 5.633v.117h-.535v-.117zm.035-.305v.113h-.336v-.113zm1.703-.285h1.723v.117H16.41zm.254.598h.121v.109h-.121zm1.477-.008v.117h-.348v-.117zm.184-.59h.121v.707h-.121zm0 0\"/><use xlink:href=\"#G\" x=\"11.36\"/><path d=\"M18.914 5.043h.117v.707h-.117zm-.297 0h.117v.707h-.117zm-1.574.281v.117h-.629v-.113zm1.379 0v.117h-.629v-.113zm0 0\"/><use xlink:href=\"#H\" x=\"11.359\"/><use xlink:href=\"#H\" x=\"11.359\"/><path d=\"M17.793 5.355h.121v.395h-.121zm-1.379 0h.117v.395h-.117zm1.012 0h.117v.395h-.117zm-.504 0h.121v.395h-.117zm0 0\"/><path d=\"M17.508 5.633v.117h-.531v-.117zm.035-.305v.113h-.34v-.113zm1.707-.285h1.723v.117H19.25zm.258.598h.117v.109h-.117zm1.473-.008v.117h-.348v-.117zm.18-.59h.121v.707h-.121zm0 0\"/><path d=\"M21.852 5.633v.117h-.656v-.117zm-1.219-.277h.117v.395h-.117zm0 0\"/><path d=\"M21.754 5.043h.117v.707h-.117zm-.297 0h.117v.707h-.117zm-1.574.281v.117h-.633v-.113zm1.383 0v.117h-.633v-.113zm0 0\"/><path d=\"M20.633 5.355h.117v.395h-.117zm0 0\"/><path d=\"M20.633 5.355h.117v.395h-.117zm0 0\"/><path d=\"M20.633 5.355h.117v.395h-.117zm-1.383 0h.117v.395h-.117zm1.016 0h.117v.395h-.117zm-.504 0h.121v.395h-.121zm0 0\"/><path d=\"M20.348 5.633v.117h-.531v-.117zm.035-.305v.113h-.34v-.113zm1.722-.285h1.723v.117h-1.723zm.254.598h.121v.109h-.121zm1.473-.008v.117h-.344v-.117zm.184-.59h.121v.707h-.121zm0 0\"/><path d=\"M24.707 5.633v.117h-.656v-.117zm-1.219-.277h.117v.395h-.117zm0 0\"/><use xlink:href=\"#I\" x=\"11.386\"/><path d=\"M23.488 5.355h.117v.395h-.117zm0 0\"/><path d=\"M23.488 5.355h.117v.395h-.117zm0 0\"/><path d=\"M23.488 5.355h.117v.395h-.117zm-1.379 0h.113v.395h-.113zm1.012 0h.117v.395h-.117zm-.504 0h.121v.395h-.121zm0 0\"/><path d=\"M23.199 5.633v.117h-.527v-.117zm.035-.305v.113h-.336v-.113zm0 0\"/></g><path d=\"M.582 11.938h.211v.367H.582zm5.641 0h.211v.367h-.211zm-9.973 0h.211v.367h-.211zm2.867 0h.211v.367h-.211zm2.844 0h.211v.367h-.211zm1.406 0h.211v.367h-.211zm1.437 0h.211v.367h-.211zm2.824 0h.211v.367h-.211zm7.137 0h.215v.367h-.211zm-5.699 0h.211v.367h-.211zm1.406 0h.211v.367h-.211zm1.426 0h.211v.367h-.211zm1.422 0h.211v.367h-.211zm11.359 0h.211v.367h-.211zm-8.531 0h.211v.367h-.211zm1.434 0h.211v.367h-.211zm1.453 0h.211v.367h-.211zm1.363 0h.211v.367h-.211zm1.453 0h.211v.367h-.211zm1.418 0h.211v.367h-.211zm4.211 0h.211v.367h-.211zm-1.363 0h.211v.367h-.211zm-28.441 0h.211v.367h-.211zm0 0\" fill=\"rgb(85.098039%,0%,0%)\"/><path d=\"M.582 5.715h.211v.371H.582zm5.641 0h.211v.371h-.211zm-9.973 0h.211v.371h-.211zm2.867 0h.211v.371h-.211zm2.844 0h.211v.371h-.211zm1.406 0h.211v.371h-.211zm1.437 0h.211v.371h-.211zm2.824 0h.211v.371h-.211zm7.137 0h.215v.371h-.211zm-5.699 0h.211v.371h-.211zm1.406 0h.211v.371h-.211zm1.426 0h.211v.371h-.211zm1.422 0h.211v.371h-.211zm11.359 0h.211v.371h-.211zm-8.531 0h.211v.371h-.211zm1.434 0h.211v.371h-.211zm1.453 0h.211v.371h-.211zm1.363 0h.211v.371h-.211zm1.453 0h.211v.371h-.211zm1.418 0h.211v.371h-.211zm4.211 0h.211v.371h-.211zm-1.363 0h.211v.371h-.211zm-28.441 0h.211v.371h-.211zm0 0\" fill=\"rgb(13.72549%,61.960784%,24.705882%)\"/><g class=\"fa-C\"><path d=\"M12.836 6.945c.297.363 1.215 2.375-.551 3.695-.832.625-.316.656-.293.762 1.336-.707 1.77-1.672 1.758-2.531s-.465-1.617-.914-1.926zm.176-.097a2.59 2.59 0 0 1 1.215 1.848c.11.77-.137 1.539-.664 2.105.957-.211 2.18-3.039-.551-3.953zm-2.023 0a2.58 2.58 0 0 0-1.211 1.848c-.105.766.137 1.539.66 2.105-.957-.211-2.18-3.039.551-3.953zm0 0\"/><path d=\"M11.164 6.945c-.297.363-1.215 2.375.551 3.695.832.625.316.656.293.762-1.336-.707-1.77-1.672-1.758-2.531s.465-1.617.914-1.926zm0 0\"/><path d=\"M13.695 11.219c-.523.008-1.184-.07-1.672-.328l.23.414c.465.043 1.105.098 1.441-.086zm-3.34 0c.523.008 1.18-.07 1.668-.328l-.227.414c-.465.043-1.109.098-1.441-.086zm.957-4.875c.109.281.387.32.68.156.219.129.555.137.668-.145.09.695-.645.527-.668.395-.273.266-.781.113-.68-.406zm0 0\"/><path d=\"M12.016 11.656l.273-.316.039-4.219L12 6.832l-.328.273.066 4.254zm0 0\"/></g></g><defs ><path id=\"B\" d=\"M3.336 12.926v.121h-.531v-.121zm.035-.305v.121h-.336v-.121zm0 0\"/><path id=\"C\" d=\"M7.652 12.926v.121h-.656v-.121zm-1.219-.277h.121v.398h-.121zm0 0\"/><path id=\"D\" d=\"M6.434 12.652h.121v.391h-.121zm0 0\"/><path id=\"E\" d=\"M13.219 12.34h.121v.703h-.121zm-.293 0h.117v.703h-.117zm-1.574.281v.121h-.633v-.121zm1.379 0v.121h-.633v-.121zm0 0\"/><path id=\"F\" d=\"M3.336 5.633v.117h-.531v-.117zm.035-.305v.113h-.336v-.113zm0 0\"/><path id=\"G\" d=\"M7.652 5.633v.117h-.656v-.117zm-1.219-.277h.121v.395h-.121zm0 0\"/><path id=\"H\" d=\"M6.434 5.355h.121v.395h-.121zm0 0\"/><path id=\"I\" d=\"M13.219 5.043h.121v.707h-.121zm-.293 0h.117v.707h-.117zm-1.574.281v.117h-.633v-.113zm1.379 0v.117h-.633v-.113zm0 0\"/></defs></svg>')\n        },\n        pl: {\n            languageName: 'Polish',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M24 18H0V9h24zm0 0\" fill-rule=\"evenodd\" fill=\"rgb(86.27451%,7.843137%,23.529412%)\"/></svg>')\n        },\n        pt: {\n            languageName: 'Portuguese',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.pt-B{stroke:rgb(0%,0%,0%)}.pt-C{fill:rgb(100%,100%,0%)}.pt-D{stroke-width:.02}.pt-E{fill:rgb(0%,0%,0%)}.pt-F{fill:rgb(100%,100%,100%)}.pt-G{fill:rgb(0%,20%,60%)}.pt-H{stroke-width:.5}.pt-I{fill:rgb(100%,0%,0%)}]]></style><path d=\"M9.602 0H24v18H9.602zm0 0\" class=\"pt-I\"/><path d=\"M0 0h9.602v18H0zm0 0\" fill=\"rgb(0%,40%,0%)\"/><g fill-rule=\"evenodd\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\".022\" class=\"pt-B pt-C\"><path d=\"M12.73 11.484c-1.211-.039-6.75-3.496-6.785-4.051l.301-.508c.551.801 6.215 4.164 6.773 4.043l-.289.516\"/><path d=\"M6.184 6.855c-.109.293 1.449 1.254 3.316 2.391s3.484 1.84 3.598 1.742l.059-.105c-.023.039-.078.047-.164.023-.504-.148-1.82-.75-3.453-1.742S6.488 7.266 6.266 6.879c-.016-.039-.023-.078-.023-.117h-.008l-.043.082zm6.574 4.641c-.02.039-.059.039-.133.031-.449-.047-1.82-.715-3.445-1.687C7.289 8.707 5.73 7.68 5.902 7.41l.047-.082.004.004c-.148.457 3.082 2.301 3.273 2.422 1.867 1.156 3.441 1.832 3.578 1.656zm0 0\"/><path d=\"M9.609 7.77c1.207-.012 2.699-.164 3.563-.508l-.187-.301c-.508.281-2.008.469-3.387.492-1.629-.012-2.781-.168-3.359-.555l-.172.324c1.059.449 2.145.543 3.543.547\"/><path d=\"M13.219 7.266c-.031.051-.594.242-1.418.383a14.25 14.25 0 0 1-2.195.164c-.707 0-1.41-.043-2.109-.137-.867-.133-1.312-.32-1.48-.391l.039-.082c.477.188.93.301 1.453.383a15.58 15.58 0 0 0 2.094.141c.73 0 1.461-.055 2.184-.164.844-.137 1.305-.313 1.375-.391l.059.098zm-.164-.301c-.09.074-.547.234-1.352.363-.691.102-1.391.148-2.094.148-.824 0-1.5-.059-2.016-.133-.816-.105-1.254-.301-1.41-.355l.051-.082c.121.066.539.234 1.367.352a14.98 14.98 0 0 0 2.008.125 14.79 14.79 0 0 0 2.078-.148c.809-.113 1.242-.316 1.309-.367zM5.637 9.227c.742.398 2.395.598 3.961.613 1.422.004 3.277-.219 3.969-.586l-.02-.398c-.215.336-2.203.66-3.965.652-1.762-.016-3.402-.285-3.949-.641v.359\"/><path d=\"M13.605 9.168v.094c-.105.129-.758.316-1.574.449a16.63 16.63 0 0 1-2.453.168c-.777.004-1.555-.047-2.324-.164a5.77 5.77 0 0 1-1.668-.449v-.109c.367.242 1.348.422 1.68.473.59.09 1.352.16 2.313.16 1.008 0 1.812-.074 2.438-.168.59-.086 1.426-.305 1.59-.453zm0-.336v.094c-.105.121-.758.309-1.574.445-.812.117-1.633.176-2.453.168-.777.004-1.555-.047-2.324-.16-.574-.066-1.137-.219-1.668-.449v-.113c.367.242 1.352.418 1.68.473.766.113 1.539.164 2.313.16 1.008 0 1.816-.074 2.438-.168.59-.082 1.426-.305 1.59-.449zM9.594 11.41c-1.711-.008-3.176-.465-3.488-.539l.223.352a9.39 9.39 0 0 0 3.281.539c1.301-.039 2.438-.141 3.234-.531l.234-.367c-.547.258-2.402.547-3.488.547\"/><path d=\"M12.934 11.148l-.105.148a7.89 7.89 0 0 1-1.223.316 10.86 10.86 0 0 1-2.012.188c-1.516-.023-2.758-.316-3.34-.574l-.047-.078.008-.016.078.035a10.81 10.81 0 0 0 3.309.543c.703 0 1.406-.078 1.973-.18.867-.176 1.223-.309 1.328-.367l.027-.016zm.199-.328l-.074.129c-.203.074-.75.234-1.551.348-.523.07-.852.141-1.898.16-1.195-.012-2.383-.187-3.531-.527l-.039-.094a14.56 14.56 0 0 0 3.574.527c.957-.02 1.367-.09 1.887-.16.93-.145 1.398-.301 1.539-.344l.098-.043zm0 0\"/><path d=\"M13.156 8.91c.004 1.125-.574 2.137-1.035 2.578-.684.668-1.594 1.043-2.543 1.059-1.137.02-2.207-.719-2.496-1.047a3.8 3.8 0 0 1-1.031-2.527c.07-1.23.555-2.082 1.25-2.672.68-.559 1.531-.859 2.406-.852a3.68 3.68 0 0 1 2.664 1.336c.469.57.676 1.188.785 2.125zm-3.57-3.848c2.184 0 3.957 1.762 3.973 3.945 0 2.188-1.773 3.965-3.961 3.965s-3.965-1.777-3.965-3.965c-.004-2.176 1.773-3.945 3.953-3.945\"/><path d=\"M9.598 5.043c2.18 0 3.957 1.777 3.957 3.961s-1.777 3.961-3.953 3.961a3.97 3.97 0 0 1-3.961-3.961c0-2.184 1.777-3.961 3.961-3.961zM5.723 9c0 2.129 1.75 3.875 3.875 3.875A3.89 3.89 0 0 0 13.469 9c0-2.129-1.75-3.875-3.871-3.875S5.723 6.871 5.723 9zm3.879-3.625c2 .004 3.617 1.625 3.625 3.625a3.64 3.64 0 0 1-3.625 3.629c-1.988 0-3.629-1.633-3.629-3.629a3.64 3.64 0 0 1 3.629-3.625zM6.059 9c0 1.949 1.598 3.539 3.543 3.539S13.141 10.945 13.141 9s-1.598-3.539-3.539-3.539C7.648 5.469 6.066 7.047 6.059 9zm0 0\"/><path d=\"M9.762 5.023h-.34v7.961h.336zm0 0\"/><path d=\"M9.723 4.98h.086v8.051h-.082V4.98zm-.336 0h.09v8.051h-.086V4.98zm0 0\"/><path d=\"M13.559 9.156v-.293l-.238-.223-1.363-.359L10 8.082l-2.359.121-1.684.395-.336.254v.293l.859-.383 2.039-.32h1.961l1.441.156.996.242zm0 0\"/><path d=\"M9.602 8.391a14.19 14.19 0 0 1 2.559.227c.742.148 1.266.336 1.445.543v.105c-.219-.262-.918-.449-1.465-.562a14.29 14.29 0 0 0-2.543-.223c-.98 0-1.895.098-2.602.23-.562.113-1.316.336-1.41.555v-.109c.051-.148.613-.375 1.398-.535.711-.137 1.625-.23 2.613-.23zm0-.34c.855 0 1.715.074 2.559.227.742.148 1.266.336 1.445.547v.102c-.219-.258-.918-.449-1.465-.559-.711-.141-1.609-.227-2.543-.227A13.79 13.79 0 0 0 7 8.375c-.543.102-1.328.332-1.414.551V8.82c.055-.148.625-.387 1.398-.535.715-.141 1.625-.234 2.617-.234zm-.023-1.73c1.473-.008 2.758.203 3.348.504l.215.375c-.512-.277-1.898-.562-3.559-.523-1.355.012-2.801.148-3.527.539l.258-.426c.594-.313 1.996-.469 3.266-.469\"/><path d=\"M9.602 6.625a13.31 13.31 0 0 1 2.297.164c.602.109 1.176.277 1.258.367l.063.109c-.199-.125-.699-.273-1.336-.391s-1.449-.164-2.285-.16c-.949-.004-1.687.047-2.32.16-.434.059-.855.191-1.246.387l.063-.117c.227-.113.574-.254 1.168-.359.656-.121 1.402-.156 2.34-.16zm0-.336c.801-.008 1.598.039 2.215.148.402.062.789.188 1.148.375l.094.152c-.16-.176-.75-.348-1.281-.438-.613-.105-1.375-.148-2.176-.156-.75-.008-1.496.047-2.234.164-.383.055-.758.172-1.109.344l.082-.125c.219-.113.57-.219 1.016-.305a13.49 13.49 0 0 1 2.246-.164zm1.965 4.359c-.652-.109-1.312-.16-1.969-.148-2.457.031-3.25.508-3.348.648l-.187-.301c.633-.449 1.965-.703 3.547-.68.824.012 1.531.07 2.125.188l-.168.297\"/><path d=\"M9.586 10.457c.68.012 1.348.039 1.996.16l-.043.082c-.602-.113-1.246-.152-1.949-.152-.914-.004-1.828.082-2.625.309-.254.07-.668.234-.715.367l-.043-.074c.016-.082.262-.246.734-.375.914-.262 1.77-.313 2.645-.316zm.027-.344c.723 0 1.441.063 2.152.188l-.051.086c-.691-.125-1.395-.187-2.102-.184-.906 0-1.871.066-2.746.324-.281.082-.773.262-.789.398l-.043-.082c.008-.125.43-.297.813-.402.883-.262 1.848-.324 2.766-.328zm0 0\"/><path d=\"M13.102 10.895l-.293.461-.852-.754-2.195-1.48-2.484-1.363-1.285-.438.273-.512.094-.047.801.199L9.797 8.32l1.523.961 1.281.918.52.602zm0 0\"/><path d=\"M5.949 7.332c.223-.152 1.879.586 3.621 1.633 1.727 1.051 3.387 2.238 3.234 2.457l-.047.078-.023.02c.004-.004.031-.035 0-.117-.074-.242-1.25-1.18-3.199-2.355C7.637 7.918 6.051 7.234 5.898 7.43zm7.215 3.559c.141-.285-1.398-1.445-3.305-2.574C7.91 7.211 6.5 6.559 6.238 6.754l-.051.109c0 .004 0-.008.016-.02.043-.039.125-.039.156-.039.441.008 1.707.59 3.48 1.605.781.449 3.285 2.062 3.273 2.512 0 .039.004.047-.012.07l.066-.098zm0 0\"/></g><path d=\"M7.223 9.441a2.35 2.35 0 0 0 .703 1.668c.441.449 1.043.703 1.672.703s1.234-.25 1.68-.695.695-1.043.695-1.672V6.277l-4.75-.008zm0 0\" stroke-width=\".028\" class=\"pt-B pt-F\"/><path d=\"M7.312 9.445c0 .602.242 1.176.672 1.602s1.004.668 1.609.672a2.27 2.27 0 0 0 1.605-.664c.426-.426.668-1 .668-1.602V6.375H7.32v3.07m3.641-2.148v1.957l-.004.203a1.35 1.35 0 0 1-.402.961c-.254.254-.598.398-.957.398-.379 0-.711-.16-.957-.406-.254-.254-.398-.602-.402-.961v-2.16zm0 0\" class=\"pt-B pt-D pt-I\"/><g class=\"pt-C\"><path d=\"M7.609 7.176c.004-.219.16-.27.16-.27s.172.055.172.273h-.332\"/><g class=\"pt-B pt-D\"><path d=\"M7.473 6.91l-.027.25h.168c0-.207.16-.238.16-.238s.16.043.164.238h.168l-.035-.254h-.598zm-.039.254h.68c.012 0 .023.012.023.027 0 .023-.012.035-.023.035h-.68c-.012 0-.027-.012-.027-.035 0-.016.016-.027.031-.027zm0 0\"/><path d=\"M7.68 7.16c0-.133.094-.168.094-.168s.09.043.09.168H7.68m-.23-.359h.652c.012 0 .023.016.023.031s-.012.023-.023.023h-.652c-.012 0-.023-.012-.023-.027s.012-.023.023-.023zm.016.059h.613c.016 0 .027.016.027.031s-.012.027-.027.027h-.617c-.016 0-.023-.012-.023-.027s.008-.031.023-.031zm.199-.422h.047v.031h.035v-.031h.055v.035h.035v-.039h.047v.078c0 .016-.008.027-.02.027h-.176c-.012 0-.023-.012-.023-.023zm.184.109l.012.254h-.172l.012-.258h.148\"/><path d=\"M7.641 6.664v.137h-.16v-.137zm.421 0v.137h-.16v-.137zm0 0\"/><use xlink:href=\"#B\"/><use xlink:href=\"#C\"/></g></g><g class=\"pt-E\"><path d=\"M7.758 6.625c0-.023.035-.023.035 0v.063h-.035v-.062\"/><use xlink:href=\"#D\"/><use xlink:href=\"#D\" x=\"0.426\"/></g><g class=\"pt-C\"><path d=\"M7.609 9.027c.004-.219.16-.27.16-.27s.172.055.172.277h-.332\"/><g class=\"pt-B pt-D\"><path d=\"M7.473 8.762l-.027.25h.168c0-.207.16-.238.16-.238s.16.043.164.238h.168l-.035-.254h-.598zm-.039.254h.68c.012 0 .023.012.023.031s-.012.031-.023.031h-.68c-.012 0-.027-.012-.027-.031s.016-.031.031-.031zm0 0\"/><path d=\"M7.68 9.012c0-.129.094-.168.094-.168s.09.043.09.168H7.68m-.23-.359h.652c.012 0 .023.016.023.031s-.012.027-.023.027h-.652c-.012 0-.023-.012-.023-.031 0-.012.012-.023.023-.023zm.016.062h.613c.016 0 .027.012.027.027s-.012.027-.027.027h-.617c-.016 0-.023-.012-.023-.027s.008-.027.023-.027zm.199-.426h.047v.031h.035v-.031h.055v.035h.035v-.039h.047v.082c0 .016-.008.023-.02.023h-.176c-.012 0-.023-.008-.023-.02zm.184.109l.012.254h-.172l.012-.258h.148\"/><path d=\"M7.641 8.516v.137h-.16v-.137zm.421 0v.137h-.16v-.137zm0 0\"/><use xlink:href=\"#B\" y=\"1.852\"/><use xlink:href=\"#C\" y=\"1.852\"/></g></g><path d=\"M7.758 8.477c0-.023.035-.023.035 0v.066h-.035v-.066m-.215.089c0-.023.031-.023.031 0v.047h-.031v-.047m.426 0c0-.023.031-.023.031 0v.047h-.031v-.047\" class=\"pt-E\"/><g class=\"pt-C\"><path d=\"M8.328 10.961c-.152-.16-.078-.309-.078-.309s.16-.082.316.074l-.234.234\"/><g class=\"pt-B pt-D\"><path d=\"M8.046 10.869l.16.199.117-.121c-.148-.149-.055-.281-.055-.281s.141-.082.285.051l.117-.117-.203-.16-.422.426zm.156.207l.477-.48c.008-.008.027-.008.039.004s.012.031.004.039l-.481.48c-.008.008-.023.008-.039-.004s-.012-.027 0-.039zm0 0\"/><path d=\"M8.374 10.901c-.094-.094-.055-.184-.055-.184s.09-.039.184.051l-.129.133m-.422-.09l.461-.465c.008-.008.027-.004.039.008s.008.023 0 .035l-.461.461c-.008.008-.023.008-.035-.004s-.008-.023 0-.031zm.055.031l.434-.437c.008-.008.027-.008.039.004s.012.027 0 .035l-.434.441c-.012.012-.027.008-.039-.004s-.016-.027-.004-.035zm-.16-.442l.035-.035.023.023.023-.027-.023-.02.039-.039.023.027.027-.027-.031-.027.035-.035.059.059c.012.012.012.02 0 .031l-.121.125c-.012.008-.023.012-.031 0zm.207-.055l.191.172-.121.121-.176-.192.102-.105\"/><path d=\"M7.991 10.576l.098.098-.113.113-.098-.094zm.301-.301l.094.098-.109.113-.098-.098zm0 0\"/><path d=\"M7.784 10.639l.035-.035.027.027.027-.023-.027-.027.031-.035.027.027.027-.023-.027-.031.031-.031.059.055c.012.012.012.023.004.031l-.121.121c-.012.012-.027.012-.035 0zm0 0\"/><path d=\"M8.085 10.338l.035-.035.027.027.023-.023-.027-.027.035-.035.027.027.023-.023-.027-.031.035-.031.055.055c.012.012.012.023.004.031l-.121.121c-.008.012-.023.012-.035 0zm0 0\"/></g></g><path d=\"M8.043 10.465c-.016-.016.008-.043.023-.023l.047.043-.023.027-.047-.047m-.086.215c-.02-.02.004-.043.02-.023l.035.031-.023.023-.031-.031m.296-.301c-.016-.02.008-.043.023-.023l.035.031-.023.023-.035-.031\" class=\"pt-E\"/><g class=\"pt-C\"><path d=\"M9.438 7.176c.004-.219.16-.27.16-.27s.172.055.172.273h-.332\"/><g class=\"pt-B pt-D\"><path d=\"M9.301 6.91l-.027.25h.168c0-.207.16-.238.16-.238s.16.043.164.238h.168l-.035-.254h-.598zm-.039.254h.68c.012 0 .023.012.023.027 0 .023-.012.035-.023.035h-.68c-.016 0-.027-.012-.027-.035 0-.016.012-.027.031-.027zm0 0\"/><path d=\"M9.508 7.16c0-.133.094-.168.094-.168s.09.043.09.168h-.184m-.23-.359h.652c.012 0 .023.016.023.031s-.012.023-.023.023h-.652c-.012 0-.023-.012-.023-.027s.012-.023.023-.023zm.016.059h.613c.016 0 .027.016.027.031s-.012.027-.027.027h-.617c-.016 0-.023-.012-.023-.027s.008-.031.023-.031zm.199-.422h.047v.031h.035v-.031h.055v.035h.035v-.039h.047v.078c0 .016-.008.027-.02.027h-.176c-.012 0-.023-.012-.023-.023zm.184.109l.012.254h-.172l.012-.258h.148\"/><path d=\"M9.469 6.664v.137h-.16v-.137zm.422 0v.137h-.16v-.137zm0 0\"/><path d=\"M9.281 6.562h.047v.039h.035v-.039h.047v.039h.039v-.039h.047v.078c0 .016-.008.023-.02.023h-.172c-.016 0-.023-.008-.023-.023zm.422 0h.051v.039h.035v-.039h.047v.039h.035v-.039h.051v.078c0 .016-.012.023-.023.023h-.172c-.012 0-.023-.008-.023-.023zm0 0\"/></g></g><g class=\"pt-E\"><path d=\"M9.586 6.625c0-.023.035-.023.035 0v.063h-.035v-.062\"/><use xlink:href=\"#D\" x=\"1.828\"/><use xlink:href=\"#D\" x=\"2.254\"/></g><g class=\"pt-C\"><path d=\"M11.586 7.176c-.008-.219-.16-.27-.16-.27s-.172.055-.172.273h.332\"/><g class=\"pt-B pt-D\"><path d=\"M11.719 6.91l.027.25h-.168c0-.207-.156-.238-.156-.238s-.16.043-.164.238h-.168l.031-.254h.598zm.043.254h-.684c-.012 0-.023.012-.023.027 0 .023.012.035.023.035h.684c.012 0 .023-.012.023-.035 0-.016-.012-.027-.027-.027zm0 0\"/><path d=\"M11.512 7.16c0-.133-.09-.168-.09-.168s-.094.043-.094.168h.184m.23-.359h-.648c-.016 0-.027.016-.027.031s.012.023.027.023h.648c.016 0 .027-.012.027-.027s-.012-.023-.027-.023zm-.016.059h-.613c-.012 0-.023.016-.023.031s.012.027.023.027h.617c.016 0 .027-.012.027-.027s-.012-.031-.027-.031zm-.199-.422h-.047v.031h-.035v-.031h-.055v.035h-.035v-.039h-.047v.078c0 .016.008.027.02.027h.176c.012 0 .023-.012.023-.023zm-.184.109l-.012.254h.172l-.012-.258h-.148\"/><path d=\"M11.551 6.664v.137h.16v-.137zm-.422 0v.137h.16v-.137zm0 0\"/><use xlink:href=\"#E\"/><use xlink:href=\"#F\"/></g></g><path d=\"M11.438 6.625c0-.023-.039-.023-.039 0v.063h.039v-.062m.21.089c0-.027-.031-.027-.031 0v.047h.031v-.047m-.425 0c0-.027-.031-.027-.031 0v.047h.031v-.047\" class=\"pt-E\"/><g class=\"pt-C\"><path d=\"M11.586 9.027c-.008-.219-.16-.27-.16-.27s-.172.055-.172.277h.332\"/><g class=\"pt-B pt-D\"><path d=\"M11.719 8.762l.027.25h-.168c0-.207-.156-.238-.156-.238s-.16.043-.164.238h-.168l.031-.254h.598zm.043.254h-.684c-.012 0-.023.012-.023.031s.012.031.023.031h.684c.012 0 .023-.012.023-.031s-.012-.031-.027-.031zm0 0\"/><path d=\"M11.512 9.012c0-.129-.09-.168-.09-.168s-.094.043-.094.168h.184m.23-.359h-.648c-.016 0-.027.016-.027.031s.012.027.027.027h.648c.016 0 .027-.012.027-.031 0-.012-.012-.023-.027-.023zm-.016.062h-.613c-.012 0-.023.012-.023.027s.012.027.023.027h.617c.016 0 .027-.012.027-.027s-.012-.027-.027-.027zm-.199-.426h-.047v.031h-.035v-.031h-.055v.035h-.035v-.039h-.047v.082c0 .016.008.023.02.023h.176c.012 0 .023-.008.023-.02zm-.184.109l-.012.254h.172l-.012-.258h-.148\"/><path d=\"M11.551 8.516v.137h.16v-.137zm-.422 0v.137h.16v-.137zm0 0\"/><use xlink:href=\"#E\" y=\"1.852\"/><use xlink:href=\"#F\" y=\"1.852\"/></g></g><path d=\"M11.438 8.477c0-.023-.039-.023-.039 0v.066h.039v-.066m.21.089c0-.023-.031-.023-.031 0v.047h.031v-.047m-.425 0c0-.023-.031-.023-.031 0v.047h.031v-.047\" class=\"pt-E\"/><g class=\"pt-C\"><path d=\"M10.863 10.961c.152-.16.078-.309.078-.309s-.16-.082-.316.074l.234.234\"/><g class=\"pt-B pt-H\"><g transform=\"matrix(-.0282 -.028383 -.028383 .0282 20.605357 12.006067)\"><path d=\"M186.794 147.696l-.713 6.35 4.212-.054c.018-5.248 3.957-5.994 3.957-5.994.138 0 4.001 1.119 4.191 6.022l4.143.014-.737-6.425-15.054-.053zm-.989 6.349l16.987.059c.276.001.62.347.55.692.067.484-.279.828-.555.827l-16.987-.059c-.276-.001-.551-.278-.619-.762a.65.65 0 0 1 .693-.688zm0 0\"/><path d=\"M191.951 153.998c.012-3.315 2.293-4.204 2.293-4.204s2.344.975 2.402 4.221l-4.696-.016m-5.769-8.997l16.366-.012c.276.001.551.416.55.831-.001.276-.278.551-.624.619l-16.296-.057c-.276-.001-.551-.278-.55-.692.001-.276.278-.551.554-.55zm.409 1.521l15.399-.015c.276.001.62.347.55.692.068.346-.279.69-.555.689l-15.537.015c-.414-.001-.551-.278-.55-.692s.21-.759.555-.689zm5.009-10.617l1.243.004-.072.759.967.003-.066-.76 1.312-.064-.003.967.967.003-.065-1.036 1.243.004-.076 2.002c-.001.414-.14.552-.486.62l-4.419-.015c-.276-.001-.552-.14-.55-.554zm4.617 2.709l.254 6.354-4.281-.015.299-6.49 3.729.013\"/><path d=\"M191.028 141.565l-.012 3.453-4.005-.014-.057-3.384zm0 0\"/></g><path d=\"M191.062 141.602l-.081 3.383-4.005-.014.081-3.383zm0 0\" transform=\"matrix(-.0282 -.028383 -.028383 .0282 20.306591 11.705208)\"/><path d=\"M186.272 138.993l1.243.004-.003.967.897.072-.065-1.036 1.243.004-.003.967.897.072.073-1.036 1.105.004.062 2.003c-.001.414-.209.621-.554.55l-4.281-.015c-.346.068-.621-.209-.55-.554zm0 0\" transform=\"matrix(-.0282 -.028383 -.028383 .0282 20.605357 12.006067)\"/><path d=\"M186.306 139.031l1.174-.065.065 1.036.829.003.003-.967 1.243.004-.003.967.829.003.073-1.036 1.174.073-.007 1.933c-.001.414-.209.621-.486.62l-4.281-.015c-.346.068-.621-.209-.619-.624zm0 0\" transform=\"matrix(-.0282 -.028383 -.028383 .0282 20.306591 11.705208)\"/></g></g><path d=\"M11.148 10.465c.02-.016-.008-.043-.023-.023l-.047.043.027.027.043-.047m.09.215c.016-.02-.008-.043-.023-.023l-.035.031.023.023.035-.031m-.3-.301c.016-.02-.004-.043-.023-.023l-.031.031.02.023.035-.031\" class=\"pt-E\"/><use xlink:href=\"#G\" class=\"pt-G\"/><g class=\"pt-F\"><use xlink:href=\"#H\"/><use xlink:href=\"#H\" x=\"0.332\"/><use xlink:href=\"#H\" x=\"0.164\" y=\"0.16\"/><use xlink:href=\"#H\" y=\"0.328\"/><use xlink:href=\"#H\" x=\"0.332\" y=\"0.328\"/></g><path d=\"M9.305 8.059c0 .082.031.164.086.227s.133.094.215.098.16-.043.211-.098c.059-.062.09-.145.086-.227v-.434h-.598v.434\" class=\"pt-G\"/><g class=\"pt-F\"><use xlink:href=\"#I\"/><use xlink:href=\"#I\" x=\"0.332\"/><path d=\"M9.668 7.949a.06.06 0 0 1-.059.059c-.035 0-.062-.027-.062-.059s.027-.059.063-.059a.06.06 0 0 1 .059.059zm0 0\"/><use xlink:href=\"#I\" y=\"0.328\"/><use xlink:href=\"#I\" x=\"0.332\" y=\"0.328\"/></g><use xlink:href=\"#G\" x=\"-0.832\" class=\"pt-G\"/><g class=\"pt-F\"><use xlink:href=\"#H\" x=\"-0.832\"/><use xlink:href=\"#H\" x=\"-0.5\"/><use xlink:href=\"#H\" x=\"-0.668\" y=\"0.16\"/><use xlink:href=\"#H\" x=\"-0.832\" y=\"0.328\"/><use xlink:href=\"#H\" x=\"-0.5\" y=\"0.328\"/></g><use xlink:href=\"#G\" x=\"0.832\" class=\"pt-G\"/><g class=\"pt-F\"><use xlink:href=\"#H\" x=\"0.832\"/><use xlink:href=\"#H\" x=\"1.164\"/><use xlink:href=\"#H\" x=\"0.996\" y=\"0.16\"/><use xlink:href=\"#H\" x=\"0.832\" y=\"0.328\"/><use xlink:href=\"#H\" x=\"1.164\" y=\"0.328\"/></g><path d=\"M9.305 10.129c0 .086.031.168.086.227s.133.098.215.098.16-.039.211-.098a.3.3 0 0 0 .086-.227v-.43h-.598v.43\" class=\"pt-G\"/><g class=\"pt-F\"><use xlink:href=\"#H\" y=\"1.031\"/><use xlink:href=\"#H\" x=\"0.332\" y=\"1.031\"/><use xlink:href=\"#H\" x=\"0.164\" y=\"1.192\"/><use xlink:href=\"#H\" y=\"1.36\"/><use xlink:href=\"#H\" x=\"0.332\" y=\"1.36\"/></g><defs ><path id=\"B\" d=\"M7.453 6.562H7.5v.039h.035v-.039h.051v.039h.035v-.039h.047v.078c0 .016-.008.023-.02.023h-.172c-.016 0-.023-.008-.023-.023zm0 0\"/><path id=\"C\" d=\"M7.875 6.562h.051v.039h.035v-.039h.047v.039h.035v-.039h.051v.078c0 .016-.008.023-.023.023h-.172c-.012 0-.023-.008-.023-.023zm0 0\"/><path id=\"D\" d=\"M7.543 6.715c0-.027.031-.027.031 0v.047h-.031v-.047\"/><path id=\"E\" d=\"M11.738 6.562h-.047v.039h-.035v-.039h-.047v.039h-.039v-.039h-.047v.078c0 .016.008.023.02.023h.172c.016 0 .023-.008.023-.023zm0 0\"/><path id=\"F\" d=\"M11.316 6.562h-.047v.039h-.039v-.039h-.047v.039h-.035v-.039h-.047v.078c0 .016.008.023.02.023h.172c.012 0 .023-.008.023-.023zm0 0\"/><path id=\"G\" d=\"M9.305 9.098a.34.34 0 0 0 .086.227c.055.063.133.098.215.098s.16-.039.211-.098c.059-.062.09-.141.086-.227v-.434h-.598v.434\"/><path id=\"H\" d=\"M9.504 8.828c0 .035-.027.063-.059.063s-.062-.027-.062-.062.027-.059.063-.059a.06.06 0 0 1 .059.059zm0 0\"/><path id=\"I\" d=\"M9.504 7.789c0 .035-.027.059-.059.059s-.062-.023-.062-.059.027-.059.063-.059a.06.06 0 0 1 .059.059zm0 0\"/></defs></svg>')\n        },\n        ro: {\n            languageName: 'Romanian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" fill-rule=\"evenodd\" class=\"language-svg-icon\"><path d=\"M0 0h8v18H0zm0 0\" fill=\"rgb(0%,19.215686%,61.176471%)\"/><path d=\"M8 0h8v18H8zm0 0\" fill=\"rgb(100%,87.058824%,0%)\"/><path d=\"M16 0h8v18h-8zm0 0\" fill=\"rgb(87.058824%,12.941176%,6.27451%)\"/></svg>')\n        },\n        ru: {\n            languageName: 'Russian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,100%,100%)\"/><g fill-rule=\"evenodd\"><path d=\"M0 6h24v12H0zm0 0\" fill=\"rgb(0%,22.352941%,65.098039%)\"/><path d=\"M0 12h24v6H0zm0 0\" fill=\"rgb(83.529412%,16.862745%,11.764706%)\"/></g></svg>')\n        },\n        sr: {\n            languageName: 'Serbian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.sr-B{fill:rgb(12.941176%,13.72549%,11.764706%)}.sr-C{fill:rgb(100%,100%,100%)}.sr-D{fill:rgb(92.941176%,72.54902%,18.039216%)}.sr-E{stroke:rgb(12.941176%,13.72549%,11.764706%)}.sr-F{stroke-width:.02}.sr-G{fill:rgb(4.705882%,25.098039%,46.27451%)}.sr-H{fill:rgb(77.647059%,21.176471%,23.529412%)}]]></style><path d=\"M0 0h24v18H0z\" class=\"sr-C\"/><path d=\"M-1.199 0h27v12h-27zm0 0\" class=\"sr-G\"/><path d=\"M-1.199 0h27v6h-27zm0 0\" class=\"sr-H\"/><path d=\"M8.27 5.203v-.004h.02v.004l-.012.012-.012-.012zm.02 0v.012h-.012l.008-.012zm-1.859.105l-.023.004.008-.012.082-.004.082-.008.234-.012.074-.008.148-.008.07-.004h.066l.066-.004.063-.004.066-.004.059-.004h.059l.063-.004.059-.004.055-.004h.055l.055-.004.051-.004h.051l.047-.008h.043l.047-.004h.043l.039-.004h.039l.043-.004h.105v.02h-.113l-.035.004H8.09l-.039.004h-.043l-.094.008h-.047l-.102.008h-.047l-.055.008h-.055l-.062.004-.055.004h-.059l-.062.008-.133.008-.062.004h-.07l-.07.004-.074.004-.07.008-.074.004-.078.004-.078.008-.082.004-.078.004-.086.004zm-.023.004l-.004-.008h.012zm.129.625l-.129-.625.02-.004.129.625-.008.012zm.012.008h-.008l-.004-.008.008.008zm1.898-.078l-.004.02h.004-.117l-.059.004h-.059l-.059.004h-.059l-.059.004h-.121l-.059.004h-.062l-.059.004h-.059l-.062.004h-.062l-.062.004H7.43l-.059.004h-.062l-.059.004h-.059l-.062.004H7.07l-.059.004h-.062l-.059.004h-.062l-.055.004h-.117l-.051.004h-.055v-.02h.113l.055-.004h.117l.059-.004h.063l.055-.004h.059l.063-.004h.059l.059-.004h.063l.059-.004h.063l.059-.004h.059l.063-.004h.063l.059-.004h.063l.059-.004h.059l.063-.004h.059l.063-.004h.059l.059-.004h.063l.055-.004h.059l.059-.004h.004zm-.004 0h.004zm1.891.066l.02.004-.008.008h-.059l-.055-.004h-.176l-.059-.004h-.059l-.059-.004H9.82l-.059-.004h-.062l-.059-.008h-.062l-.059-.004h-.059l-.062-.004H9.34l-.062-.004h-.062l-.059-.004h-.059l-.062-.004h-.059l-.062-.004h-.059l-.059-.004h-.062l-.059-.004h-.059l-.062-.004H8.5l-.059-.004.004-.02H8.5l.059.004h.063l.055.004h.059l.063.004h.059l.059.004h.063l.059.004h.063l.059.004h.059l.063.004h.059l.059.004h.066l.059.004h.059l.063.004h.059l.063.004h.059l.059.004h.063l.059.004h.117l.055.004h.059l.055.004h.055l-.012.012zm.02.004v.008h-.008zm.129-.625l-.129.621h-.02l.129-.625.012-.008zm-.008-.012h.012v.012l-.008-.012zm-1.871-.098h.02l-.012-.012h.105l.043.004h.039l.039.004h.039l.051.004h.047l.047.008h.102l.051.004h.055l.059.008.059.004h.059l.059.008.063.004.066.004.063.004.07.004h.066l.074.008.07.004.074.004.07.004.082.004.074.008.082.004.078.004.086.008v.02l-.086-.004-.082-.008-.078-.004-.082-.004-.074-.008-.074-.004-.07-.004-.074-.004-.07-.004h-.066l-.066-.008-.066-.004-.125-.008h-.059l-.059-.004-.062-.004H9.23l-.051-.004h-.051l-.055-.008h-.047l-.051-.004-.043-.004h-.047l-.043-.004h-.039l-.039-.004h-.043l-.035-.004h-.066l-.008-.012zm.008.008h-.012v-.012l.008.012zm.008-.016v.004h-.02v-.004l.008-.008zm-.02 0v-.008h.008zm-.16.008l.004-.02h.176l.008.004v.016h-.012v.004h-.004l-.004-.02h.004v.012h.004-.164zm.004 0zm-.164.004v-.02l-.004.02h-.008l-.012-.012v-.008l.004-.004h.188v.02H8.27l.004-.004v-.016H8.27h.008zm0-.02v.02l-.012-.012.008-.008zm-.012.008v-.008h.008l-.012.008zm0 0\" class=\"sr-B\"/><path d=\"M10.469 5.301c.066-.133.137-.262.227-.375-.234.176-.363.148-.375-.082-.016-.004-.035-.004-.051-.004-.18.281-.355.242-.527-.117-.227.371-.426.363-.582-.02-.266.336-.488.336-.672.004v-.039l-.027-.004c-.023.004-.027.004-.035 0l-.004.008c-.023.004-.031 0-.02 0v.039c-.184.328-.41.328-.676-.008-.156.383-.352.391-.582.02-.168.363-.34.402-.52.121-.02 0-.043 0-.055.004-.016.227-.141.254-.375.078.09.113.16.242.227.375l2.023-.102 2.031.102zm0 0\" class=\"sr-D\"/><path d=\"M10.699 4.934l-.012-.02.016.02-.008.012-.016.016-.008.012-.012.012-.004.012-.016.023-.012.012-.004.012-.008.012-.008.008-.008.012-.004.012-.023.035-.004.012-.008.008-.008.016-.004.012-.016.023-.004.012-.008.012-.004.016-.004.012-.016.023-.004.012-.008.012-.004.016-.02-.008.004-.016.008-.012.008-.023.016-.023.004-.016.008-.012.004-.012.016-.023.004-.012.031-.047.004-.012.008-.012.004-.012.012-.012.008-.012.004-.012.016-.023.012-.012.008-.012.004-.012.016-.023.012-.008.008-.016.008-.008.016.012zm-.383-.078l.004-.02.012.008v.02l.004.023v.02l.008.012.008.031.008.016.004.012.008.008.004.012.008.008.012.008.008.004.008.008.012.004h.008l.008.004h.039l.012-.004.016-.004.016-.008.016-.004.016-.008.039-.023.02-.008.02-.016.02-.012.02-.016.02-.02.016.02-.02.016-.023.016-.059.035-.02.008-.02.012-.016.008-.02.008-.031.008h-.016l-.016.004h-.039l-.016-.004-.012-.004-.012-.008-.008-.008-.012-.008-.02-.02-.016-.023-.008-.016-.004-.012-.008-.039v-.016l-.004-.02v-.02zm.004-.02l.008.004v.004l-.004-.008zm-.043.012l-.016-.012.008-.004h.039v.004h.008l-.004.02h-.023v-.004h-.023l.008-.004zm-.016-.012v-.004h.008zm-.504-.105l-.023-.012h.023l.016.035.016.027.016.031.047.07.047.059.016.016.02.012.012.012.02.008.016.004.016.008.016.004h.043L10.07 5l.02-.004.016-.004.016-.008.031-.023.016-.016.016-.012.02-.02.031-.039.016-.023.02-.027.016.012-.016.027-.02.02-.016.023-.02.02-.012.023-.039.023-.016.012-.02.012-.012.008-.02.012-.039.008H10l-.02-.008-.016-.008-.02-.012-.012-.008-.023-.012-.012-.016-.02-.016-.031-.039-.02-.02-.016-.027-.016-.023-.016-.027-.031-.062-.016-.035h.02zm-.023-.012l.012-.016.012.016zm-.562-.012l-.02-.012.023.004.012.035.012.031.016.027.027.055.02.027.031.039.016.012.016.016.016.012.02.012.016.008.016.004.02.004h.051l.02-.008.016-.004.02-.008.016-.012.02-.016.02-.012.023-.02.039-.039.02-.023.02-.027.039-.062.023-.035.023.012-.027.035-.02.027-.023.031-.039.055-.02.023-.047.039-.039.031-.02.012-.059.023h-.062L9.383 5l-.02-.008-.016-.012-.02-.008-.016-.016-.02-.016-.016-.02-.02-.02-.016-.02-.047-.082-.016-.031-.031-.07h.02zm-.02-.012l.012-.012.012.016h-.023zm-.676.016h.02v-.004l.02.031.02.027.016.023.02.023.016.02.02.02.016.023.02.016.016.012.023.012.039.016.016.008.02.008.02.004h.039l.02-.004.023-.008.02-.008.023-.008.02-.012.023-.012.02-.012.027-.016.02-.02.027-.02.023-.02.02-.027.027-.027.023-.027.023-.031.02.016-.027.031-.02.027-.027.027-.023.027-.047.039-.02.02-.027.02-.023.016-.02.012-.027.012-.02.012-.027.004-.023.008h-.02l-.023.004h-.02l-.027-.004-.02-.004-.059-.023-.02-.016-.02-.012-.02-.02-.02-.016-.023-.023-.02-.023-.016-.023-.02-.027-.016-.027-.02-.031v-.008zm0 .004v-.004zm.02-.043v.039h-.02v-.039l.016-.012.008.012zm-.02 0v-.02l.016.008-.016.008zm-.02.004l.02-.008-.008-.004h.02l-.004.004v.008l.008-.023h.004v.008l.004.004v.012h-.035l-.008-.008zm.012.008h-.008v-.008zm.004-.02l.004.004-.02.008v-.008l.004-.016.012.008zm-.012-.012l.008-.004.004.012zm-.02.023l.004-.023h.016l.004.023zm.004 0zm-.012-.008l-.02-.008.016-.008h.016v.02h-.02l.008-.008zm-.02-.008l.008-.012h.004zm0 .008V4.66l.02.008-.004.008-.008.004-.012-.012zm.016.008v.004h-.008zm-.02-.008h-.02l.012.008v.004h.004v-.016h-.004.004l.004-.004h.012l.004.02h-.039v-.004h-.004v-.008h.004v-.004h.004l.016.008zm-.016-.008l.016-.008v.016l-.016-.012zm-.004.047v-.039h.02v.047zm.02 0v.004zm-.672 0l-.02-.008h.02l.02.027.027.027.023.027.023.023.027.02.023.023.02.023.023.012.02.016.023.012.02.012.027.008.039.016h.02l.02.004h.02l.039-.008.023-.008.039-.016.02-.016.016-.012.02-.016.016-.023.02-.02.016-.02.023-.023.016-.023.016-.027.02-.031.016.008-.02.031-.016.027-.02.027-.016.023-.043.043-.016.02-.059.047-.02.012-.02.008-.023.008-.02.004-.023.004h-.043l-.02-.004-.027-.004-.02-.008-.023-.008-.02-.016-.023-.012-.027-.016-.023-.016-.07-.059-.047-.055-.027-.031-.02-.031h.016zm-.02-.008l.004-.016.016.012zm-.566.031l-.02-.012h.02l.02.035.02.027.023.031.02.023.082.082.039.031.02.012.016.008.039.016h.055L7.5 4.98l.031-.016.02-.012.016-.012.02-.016.016-.016.031-.039.016-.027.016-.023.016-.031.016-.027.016-.031.016-.039.02.008-.031.07-.016.031-.016.027-.016.023-.02.027-.016.02-.02.02-.012.02-.023.016-.016.012-.02.008-.016.012-.039.008H7.43l-.023-.008-.02-.004-.02-.008-.02-.012-.039-.031-.039-.039-.023-.02-.02-.031-.02-.023-.023-.031-.02-.031-.023-.035h.02zm-.02-.012l.008-.016.012.016zm-.512.133v-.02l.004.004.02.023.016.027.031.039.016.016.02.016.016.016.02.012.016.012.012.004.016.008.016.004.02.004h.043L6.914 5l.02-.008.012-.008.02-.012.031-.031.031-.039.02-.02.016-.023.012-.023.02-.027.031-.062.016-.035.02.008-.02.035-.016.031-.02.027-.012.027-.02.023-.016.027-.016.02-.02.02-.016.02-.031.031-.02.012L6.941 5l-.02.012-.02.008-.016.004h-.051l-.02-.004-.016-.004-.02-.008-.039-.02-.016-.012-.035-.035-.012-.016-.023-.02-.016-.02-.02-.027-.012-.027.008.004zm0-.02h.004v.004l-.008-.004zm-.047.016h-.02l.008-.012h.027v-.004h.027v.02h-.039v.004H6.57zm-.02 0V4.84h.008l-.008.004zm-.359.07l-.012.016.012-.02.02.02.023.012.023.016.02.012.02.008.016.008.02.008.031.016.031.008h.012l.016.004h.035l.023-.012.016-.016.012-.008.004-.008.004-.012.008-.012.004-.012.008-.016.004-.016v-.016l.008-.02v-.02l.004-.02h.02v.02l-.004.023-.008.039-.004.012-.004.02-.008.016-.008.012-.004.012-.016.023-.012.012-.012.008-.016.004-.023.008h-.066l-.016-.008-.016-.004-.02-.008-.016-.008-.02-.008L6.289 5l-.02-.012-.023-.012-.02-.012-.02-.016-.023-.02.016-.016zm.219.371v.023l-.008-.008-.008-.023-.008-.012-.004-.012-.016-.023-.004-.016-.023-.035-.004-.012-.012-.012-.004-.012-.008-.012-.008-.016-.008-.008-.016-.023-.008-.016-.008-.012-.012-.023-.008-.012-.008-.008-.008-.016-.008-.008-.008-.012-.008-.008-.031-.047.016-.016.031.047.008.008.008.012.008.008.008.012.008.016.008.008.039.059.004.012.012.012.004.012.008.012.012.012.004.016.023.035.004.016.039.059.004.016.008.012-.012-.008zm0 .023H6.41v-.008l.008.008zm2.031-.121v.02l-.066.004h-.062l-.059.008h-.066l-.062.004-.066.004H8l-.059.008-.066.004h-.066l-.059.008h-.07l-.059.004h-.066l-.066.004-.059.004h-.066l-.066.008h-.059l-.133.008h-.059l-.066.008h-.066l-.059.004-.066.004h-.066l-.062.004h-.059l-.066.008H6.48l-.059.004-.008-.023h.066l.063-.004h.063l.066-.004.063-.004h.059l.066-.008h.066l.059-.004h.066l.063-.008h.063l.063-.004h.066l.059-.004h.066l.063-.008.063-.004h.066l.063-.004h.059l.066-.008.066-.004h.059L8 5.211l.059-.004h.066l.066-.008.059-.004h.066l.063-.004.063-.008h.004zm0 0zm2.023.098v.023h-.062l-.125-.008h-.066l-.059-.008h-.066l-.062-.008h-.062l-.133-.008h-.059l-.066-.004-.062-.004h-.062l-.062-.008h-.066l-.062-.004h-.066l-.062-.008-.059-.004h-.066l-.066-.008h-.059l-.066-.004h-.062l-.066-.004-.059-.004-.062-.004h-.066l-.062-.008h-.059l-.066-.004.004-.02h.059l.066.004.125.008.066.004h.059l.066.008h.063l.125.008.066.004h.059l.066.008h.059l.133.008h.059l.066.004h.066l.059.008h.066l.066.004h.059l.066.008h.066l.059.004h.066l.063.004h.066l.059.004.066.004h.063zm0 .023zm0 0v-.023l.008.016-.012.008zm.008-.008l-.004.008h-.008zm0 0\" class=\"sr-B\"/><g class=\"sr-D\"><path d=\"M7.988 5.543l.453-.23.461.23-.461.227zm0 0\"/><path d=\"M8.281 5.199v.004l-1.867.109.133.621 1.895-.059 1.902.059.129-.621-1.859-.109v-.004c.031-.008-.02-.008-.168-.004-.141-.004-.203-.004-.16.004zm0 0\"/><path d=\"M10.746 4.75l-.074-.012c-.141.352-.27.359-.293.027.031-.012.02-.066.059-.047.02.012.039-.02.023-.039-.039-.031-.07-.027-.105.008-.016-.055-.062-.078-.109-.055-.02.008-.016.051.008.047.035-.004.02.031.031.063-.25.328-.379.289-.348-.148l-.191-.047c-.23.469-.395.488-.527.066.027-.02.02-.074.059-.059.027.012.047-.031.023-.051-.047-.039-.098-.023-.137.027-.027-.059-.078-.078-.129-.043-.023.012-.012.059.016.051.047-.012.023.051.059.07-.098.395-.617.422-.531-.164l-.133.004-.133-.004c.082.582-.43.559-.531.16.031-.02.012-.078.059-.066.023.004.039-.043.016-.055-.055-.035-.105-.016-.133.043-.035-.055-.086-.066-.133-.027-.023.02 0 .059.02.051.043-.016.035.039.063.059-.133.422-.301.402-.527-.066-.062.02-.129.031-.191.047.031.434-.098.473-.348.141.012-.027 0-.062.035-.059.02 0 .031-.039.008-.047-.047-.02-.09 0-.105.055-.035-.035-.07-.039-.109-.008-.02.02.008.051.023.039.035-.02.023.035.059.047-.027.332-.152.32-.293-.027l-.074.016c0 .078.027.168.074.234.215.27.371.207.379-.094.277.328.488.285.523-.062.234.438.609.23.617-.039.102.391.672.387.711-.062.035.449.605.453.707.063.008.27.383.477.621.039.031.348.246.391.52.063.008.301.164.363.379.094a.39.39 0 0 0 .074-.234zm0 0\"/></g><path d=\"M10.676 4.727l.07.012-.004.02-.07-.012-.008-.012.012-.012zm-.012.008v-.012h.012l-.012.008zm-.285.02l.004.02.004-.012.004.027v.027l.008.027.004.023.008.039.008.02.008.016.004.016.008.012.004.008.008.012.008.004.004.004h.027l.008-.008.008-.004.012-.008.008-.004.012-.012.008-.012.012-.016.016-.02.012-.016.016-.023.012-.027.012-.023.012-.027.023-.062.023.008-.02.031-.047.109-.023.039-.016.02-.016.016-.012.016-.012.012-.008.012-.012.004-.016.012-.012.004h-.023l-.012-.004-.008-.008-.012-.008-.02-.02-.004-.012-.016-.031-.008-.039-.008-.02-.008-.055-.004-.031v-.031l.008-.008zm-.012.008v-.008h.008zm.07-.055l-.008.02v-.004h-.008v.004h-.008v.004l-.004.004v.008l-.004.004-.004.008v.004h-.004v.004h-.004v.004h-.008l-.004.004-.004-.02v-.004h.004v-.004h.004v-.004l.004-.004v-.012h.004v-.008l.004-.004v-.004l.008-.008h.004l.004-.004h.02l.004.004zm-.008.02zm.023-.039l.012-.02v.004h.004l.004.004v.031h-.004v.004h-.004v.004h-.004v.004h-.004v.004h-.008v.008h-.016l-.008-.008.012-.02v.004h.008v-.004h.004v-.004h.004v-.016zm.012-.02v.004zm-.125.02l.02-.008-.016-.004h.004l.012-.012.008-.004h.004l.004-.008h.004v-.004h.008l.004-.004h.047l.004.004h.004l.004.004h.004l.004.008h.004l.008.008-.012.016-.008-.004h-.004l-.008-.008h-.004l-.004-.004h-.043v.004h-.008v.004h-.004l-.004.004v.004h-.008v.004l-.004.004-.02-.008zm.02.004l-.012.012-.004-.016.02.004zm-.113-.055l-.008-.02h.012l.008-.004h.039l.008.004h.008l.004.008h.004v.004l.008.004h.004l.004.004v.004l.004.004v.004l.008.008v.004l.004.008v.004l.004.004v.004l-.02.004v-.008h-.004v-.008l-.004-.004V4.66h-.008v-.008h-.004v-.008h-.004v-.004h-.008v-.004h-.012v-.004h-.039l-.004.004zm0 .031l.004.02h-.012v-.004h-.004l-.012-.012v-.039l.008-.008.008-.004.008.02h-.004v.027zm.047.074l-.016-.012v.008-.004h-.004v-.02h-.004v-.02l-.004-.004h-.016v-.023h.012l.008.004.004.004h.004v.004l.004.004v.008h.004v.031h.004v.016zm0-.012h.004l-.004.008zm-.359-.133l.004-.02.008.012v.039l-.004.039v.098l.004.027v.027l.008.02.008.039.016.031.008.012.016.016.012.008.008.004h.02l.012-.004.016-.008.012-.008.02-.012.02-.008.012-.016.02-.016.023-.02.039-.039.02-.031.02-.027.027-.027.016.012-.023.031-.023.027-.043.043-.02.027-.02.02-.039.031-.016.012-.02.012-.016.008-.016.004h-.016l-.016.004h-.016l-.016-.004-.012-.004-.012-.012-.016-.023-.012-.016-.008-.02-.008-.039-.004-.023-.004-.027v-.203l.012.012zm.004-.02h.008v.012zm-.187-.031l-.02-.008.016-.008.004.004h.008l.008.004h.004l.004.004h.008l.008.004h.012l.004.004h.008l.008.004h.012l.008.004h.008l.008.004h.012l.008.004h.012l.004.004h.012l.004.004h.02l.004.004h.008l-.008.023h-.016l-.004-.004h-.012l-.008-.004h-.016l-.004-.004h-.012l-.008-.008h-.016l-.008-.004H9.82l-.004-.004h-.012l-.008-.004h-.004l-.004-.004h-.012l-.008-.004h-.008l-.008-.004h-.008l-.008-.004h-.004zm-.02-.008l.008-.008h.008l-.012.008zm-.523.063l.012.016.008-.012.012.039.008.035.016.031.012.035.016.027.012.023.012.02.031.039.012.016.012.012.016.008.012.008.016.004h.027l.02-.004.012-.004.039-.02.012-.016.02-.016.02-.02.016-.02.023-.023.02-.027.016-.027.02-.031.039-.07.02-.043.023-.039.023.008-.027.043-.039.078-.02.035-.039.063-.02.023-.02.027-.023.02-.055.055-.02.008-.016.008-.02.004-.016.004h-.039l-.016-.004-.031-.016-.016-.012-.016-.016-.016-.023-.012-.02-.016-.02-.012-.027-.016-.027-.016-.031-.023-.07-.016-.035.004-.012zm-.004.012v-.008l.004-.004zm.078-.07l-.008.02H9.27l-.004-.004h-.004v.004h-.004v.004H9.25v.008h-.004v.008l-.004.008-.004.004v.004l-.004.008-.004.004-.004.008h-.004l-.012-.016.008-.008v-.012h.004v-.008h.004V4.57l.004-.008v-.004l.012-.012h.004v-.004h.012v-.004h.016l.004.004zm.012-.035l.012-.016.008.008v.004l.004.008v.027l-.004.004v.004l-.004.004h-.004v.004h-.004v.004h-.004l-.004.004h-.02l.008-.02h.012v-.004h.004v-.012h.004v-.016h-.004v-.004zm-.141.023l.023-.008h-.023l.004-.004v-.008h.008l.004-.008.02-.02h.004l.004-.008h.008l.004-.004h.008l.004-.004h.047l.004.004h.004l.008.004h.004l.008.008h.004l.004.004.008.004-.012.016-.004-.004h-.004L9.285 4.5l-.008-.004h-.004l-.004-.004h-.051v.004h-.008l-.004.004h-.004v.004h-.004l-.004.008-.012.012v.004l-.008.008h-.02zm.023.004l-.016.012-.004-.02.02.004zm-.141-.043l-.008-.02h.004l.004-.004h.008l.008-.004h.004l.004-.004h.008l.008-.004h.031l.004.004h.004l.008.004h.004l.004.008.008.008v.004l.008.004.008.008V4.5l.008.008.008.012v.004l-.016.008-.004-.008-.004-.004v-.004l-.008-.004v-.004l-.012-.012h-.004v-.004h-.004l-.008-.004h-.004l-.004-.004h-.008L9.09 4.48h-.027l-.004.004h-.008l-.004.004h-.004l-.008.008zm.008.035l.008.02h-.012l-.004-.004h-.004l-.012-.012v-.004l-.004-.004v-.031l.008-.008.008-.004.008.02h-.004v.023h.004v.004h.008zm.074.082l-.02-.004.004.008h-.004l-.004-.004H9.09v-.004h-.004l-.004-.008V4.59l-.004-.004v-.008l-.004-.004v-.008l-.004-.004v-.004l-.004-.004v-.004h-.004v-.004h-.012l-.008-.02h.02l.008.004h.004v.008h.004v.008l.004.004v.004h.004v.008l.004.008v.008h.004v.012h.004l.008.008.008.012zm-.004-.012l.004.004v.008zm-.543-.145v-.02l.012.008-.004.055-.004.051v.043l.004.039.004.043.012.031.008.031.016.027.012.02.016.027.02.02.059.035.02.008.027.008h.047l.027-.004.023-.008.023-.012.023-.008.023-.016.023-.02.02-.016.02-.02.039-.055.016-.023.016-.031.012-.035.012-.031.02.004-.012.039-.012.031-.039.063-.039.055-.02.02-.07.059-.027.012-.023.012-.055.008h-.051l-.023-.004-.027-.008-.023-.012-.02-.016-.059-.059-.016-.031-.016-.027-.012-.035-.008-.035-.008-.039-.004-.043v-.039l.004-.055.008-.051.008.012zm0-.02h.016v.008l-.012-.008zm-.129.023l.004-.02h.078l.004-.004h.043v.02h-.082l-.004.004zm.004 0zm-.125-.016h-.02l.008-.008h.102l.004.004h.027v.02h-.082l-.004-.004h-.043l.012-.012zm-.02 0V4.43h.008zm-.527.156l.008.016.008-.008.012.031.008.035.016.031.02.027.016.027.039.047.047.039.023.012.023.008.023.012.023.008.023.004h.051l.023-.008.02-.004.023-.012.02-.012.059-.059.012-.023.023-.062.008-.035.004-.043V4.59l.004-.047-.004-.051-.004-.055h.02l.004.055.004.051v.043l-.008.086-.012.035-.008.031-.016.031-.016.027-.02.023-.02.02-.039.031-.027.012-.023.008-.027.004h-.055l-.047-.008-.055-.023-.023-.016-.027-.02-.023-.02-.02-.02-.02-.023-.02-.027-.02-.031-.016-.031-.012-.035-.012-.039.004-.008zm-.004.012v-.008l.004-.004zm.074-.082l-.004.02-.008-.004H7.82v.004l-.004.004v.008l-.004.004v.012l-.004.004v.004l-.004.008v.004l-.004.004v.004h-.004v.004h-.008l-.004.004h-.004l-.008-.012.008-.008h.004v-.008l.004-.004v-.012l.004-.004v-.008l.004-.008v-.004l.016-.016h.004l.004-.004h.023zm.008-.035l.012-.02v.004h.004v.004h.004v.004l.004.004v.031l-.004.004v.004l-.012.012h-.02l.008-.02h.008v-.008l.004-.004v-.016h-.004v-.004h-.004zm-.137.039l.016-.012h-.016v-.004l.004-.008.008-.008v-.004l.023-.023h.008l.004-.004.008-.004h.004l.004-.004h.012l.004-.004h.031l.008.004h.004l.008.004h.004l.008.008h.008l-.012.02-.004-.004h-.004l-.004-.004h-.008l-.004-.004h-.012l-.004-.004h-.023l-.004.004h-.008v.004h-.004l-.016.016-.008.004-.004.004v.004l-.004.008-.004.004v.004h-.004zm.02 0l-.008.016-.012-.016zm-.137-.023l-.02-.016.004-.004.008-.004h.004l.004-.008h.004l.004-.004h.008l.004-.004h.051l.008.004h.004l.008.008h.004l.004.008h.004l.016.016h.004v.008l.008.008-.016.012-.004-.004V4.52l-.008-.004-.004-.004-.004-.008-.004-.004h-.004l-.004-.004v-.004h-.004l-.004-.004H7.66l-.004-.004h-.035l-.004.004h-.004l-.004.004h-.004l-.004.008h-.004l-.004.004zm.008.031l.008.02H7.59l-.008-.004-.004-.004h-.004v-.004l-.004-.004v-.004l-.004-.004V4.5l.008-.008v-.004l.016.016-.004.004v.023l.008.008zm.078.074l-.023-.008.004.012H7.66v-.008h-.004v-.004h-.004v-.004h-.004V4.59h-.004v-.012h-.004v-.012l-.008-.008h-.004v-.004h-.012v.004l-.008-.02h.008l.004-.004h.012l.008.008h.004v.004l.004.004.004.008v.004l.004.004v.004l.004.004v.004l.02.02.004.012zm-.004-.012l.004.004v.008zm-.535-.051l-.004-.02.008.008.023.039.02.039.023.043.059.094.02.027.016.023.039.039.02.016.012.016.02.012.012.008.02.004.016.004h.023l.016-.004.012-.008.016-.008.016-.012.012-.016.016-.016.012-.02.016-.02.016-.027.012-.027.016-.031.012-.027.016-.039.012-.039.02.012-.012.039-.016.031-.012.035-.012.031-.016.027-.012.027-.016.023-.016.02-.016.016-.012.016-.031.023-.02.008-.016.008h-.039l-.02-.004-.016-.008-.02-.008-.02-.012-.039-.039-.016-.02-.02-.02-.02-.023-.039-.055-.059-.105-.023-.039-.02-.047.012.008zm-.004-.02h.004l.004.008-.012-.008zm-.18.059h-.02l.008-.012h.012l.008-.004h.012l.008-.004h.02l.004-.004h.012l.004-.004h.012l.008-.004h.008l.004-.004h.012l.008-.004h.012l.004-.004h.008l.008-.004h.004l.008-.004h.004l.008-.004h.004l.004.02h-.012l-.008.004h-.004l-.008.004h-.004l-.008.004H7.09l-.008.004h-.008l-.008.004h-.012l-.008.004h-.012l-.004.004H7.02l-.004.004H7l-.004.004H6.98l-.004.004h-.016v.004h-.008zm-.02 0v-.012h.008zm-.348.141l.02.008v-.012l.039.055.023.027.039.039.02.023.023.016.016.016.02.012.012.008.016.008.012.004h.016l.012.008h.008l.008-.008.016-.008.008-.008.016-.023.004-.016.008-.02.008-.039v-.055l.004-.031v-.102l-.004-.035h.02v.039l.004.039v.098l-.004.027v.027l-.008.023-.004.023-.008.02-.004.02-.008.012-.008.016-.012.012-.023.016-.016.004H6.84l-.012-.004-.016-.008-.02-.012-.016-.008-.059-.047-.062-.062-.02-.027-.023-.027-.02-.031-.004-.012zm0 .008v-.004.008zm.039-.074v.02h-.012v.016l-.004.008v.02h-.004v.008l-.02-.012v-.008l.004-.004v-.016h.004v-.012l.004-.004v-.004h.008v-.004h.02zm.004-.027l.008-.02.004.004h.004v.004h.004v.012h.004v.027l-.004.004v.004l-.008.008h-.004l-.004.004h-.012v-.02h.008V4.66h.004v-.016l-.004-.004zm-.113.055l.016-.016-.016.004v-.004l.004-.008v-.004l.004-.008v-.004l.008-.008v-.004l.004-.004v-.004l.008-.004h.004v-.008h.004l.008-.004.004-.004h.008v-.004h.051l.004.004h.004l.008.004-.008.02-.008-.004h-.008l-.004-.004H6.59l-.008.004h-.004v.004h-.004l-.004.004v.004h-.004l-.004.004v.004h-.004v.008l-.004.004v.004h-.004v.012l-.004.004-.02.004zm.02-.008l-.008.016-.012-.008zM6.43 4.68l-.016-.012v-.004l.008-.004h.004l.004-.004h.004l.004-.004.008-.004h.004l.004-.004h.039l.004.004H6.5l.008.004h.004l.012.012h.004l.004.008v.004l-.012.016v-.004h-.008v-.004l-.004-.004-.008-.004h-.008v-.004h-.004l-.004-.004h-.039v.004h-.004l-.008.008H6.43l-.004.004zm-.016-.012v-.004zm.027.035l.012.02H6.43l-.008-.004-.004-.004v-.004h-.004l-.004-.004v-.008l-.004-.004V4.68l.004-.004h.004l.016.008v.016h.004v.004h.004v.004h.004zm.074.055h-.023l.008.008v-.004h-.008v-.004h-.004v-.004h-.004V4.75H6.48v-.004l-.004-.004v-.008h-.004V4.73l-.004-.008v-.004h-.016l-.012-.016h.004l.004-.004h.023l.008.008v.004h.004v.008l.004.004v.012h.004v.004l.008.008h.008zm-.008-.012h.008v.008zm-.297-.008v-.02l.008.004.016.031.012.031.016.027.016.023.023.047.023.039.008.012.016.016.008.012.012.008.016.016.012.004h.02l.008-.008.008-.004.008-.008.004-.008.008-.008.008-.012.004-.02.008-.016.008-.039.008-.027.004-.023v-.031l.004-.027h.02v.031l-.008.055-.004.023-.008.039-.016.039-.008.016-.016.023-.008.008L6.434 5l-.008.004-.016.004h-.02L6.379 5l-.016-.008-.012-.008-.008-.012-.016-.012-.027-.027-.035-.059-.012-.027-.012-.023-.016-.027-.023-.062zm0-.02h.008v.004l-.008-.008zm-.074.012l.07-.012v.02l-.07.012-.012-.008.008-.012zm-.012.012v-.008h.008zm.094.227l-.016.016-.004-.008v-.004l-.012-.012-.004-.008-.004-.004-.004-.008v-.008l-.008-.008-.008-.016v-.008l-.004-.008v-.008l-.008-.008v-.008l-.004-.008v-.008l-.004-.008v-.016l-.004-.008v-.016l-.004-.008v-.027l-.004-.008V4.75h.02v.039l.004.008v.023l.004.008v.016l.004.004v.008l.004.008.008.008v.008l.004.012.004.004v.008l.008.016.004.004v.004l.008.016v.004l.008.008.004.008.004.004.004.008.004.004zm.375-.094l-.016.016.02-.008-.004.027v.031l-.012.07-.008.02-.008.039-.016.031-.008.012-.031.031-.016.008-.012.004h-.016l-.016.004h-.012l-.016-.004-.02-.004-.016-.004-.02-.008-.012-.012-.02-.012-.023-.012-.016-.016-.02-.023-.039-.039-.016-.02-.02-.027.016-.012.02.027.02.02.016.02.02.02.02.016.016.023.02.008.031.023.016.008.012.004h.016l.016.004h.027l.012-.004.008-.004.012-.004.008-.004.02-.02.008-.012.008-.016.004-.016.008-.016.004-.02.008-.023.004-.02.004-.023v-.023l.004-.027v-.023l.023-.008zm-.02.008v-.027l.02.02zm.547-.062l-.02.008.02-.004-.004.031v.031l-.008.023-.008.027-.008.023-.012.023-.008.02-.016.023-.012.02-.012.012-.012.016-.031.023-.02.008h-.016l-.02.004h-.055l-.02-.004-.02-.008-.027-.008-.02-.016-.023-.012-.023-.016-.02-.016-.027-.02-.023-.02-.027-.023-.023-.027-.023-.031-.027-.027.016-.016.023.031.023.027.023.023.027.023.043.043.023.016.023.012.02.016.02.012.039.016.02.004h.02l.016.004h.02l.02-.004.012-.008.016-.008.012-.012.016-.008.023-.023.012-.016.008-.023.008-.02.012-.02.004-.023.008-.027.008-.023v-.031l.004-.031h.02zm-.02 0l.004-.031.016.031zm.633-.039l-.016.008h.02v.02l-.004.027-.008.023-.008.027-.012.02-.023.047-.012.02-.039.039-.02.016-.02.012-.02.016-.02.012-.023.008-.023.012-.027.004h-.074l-.027-.004-.023-.008-.031-.008-.023-.016-.027-.02-.027-.016-.023-.023-.027-.023-.02-.031-.027-.031-.023-.035-.02-.043.016-.008.02.039.023.031.027.035.023.027.02.027.027.02.023.02.023.016.023.012.027.008.023.012.023.004h.074l.023-.008.02-.004.02-.008.023-.008.023-.012.02-.016.012-.016.02-.02.012-.016.012-.02.016-.02.012-.02.008-.02.008-.027.004-.02v-.051h.02zm.715-.059l-.02.004h.02l-.004.039-.008.043-.012.031-.016.035-.016.031-.02.023-.02.027-.02.02-.027.02-.023.023-.027.016-.055.023-.062.008h-.027l-.035.004-.027-.004-.063-.008-.055-.023-.031-.012L7.875 5l-.023-.02-.027-.02-.02-.023-.039-.055-.02-.035-.012-.031-.012-.035.02-.008.012.035.012.031.016.031.02.027.02.023.023.027.047.039.023.016.027.016.027.008.027.012.031.004.027.004h.09l.031-.004.027-.008.023-.012.027-.008L8.281 5l.02-.02.023-.016.02-.02.039-.055.012-.031.016-.031.012-.035.008-.035.004-.043h.02zm.707.059l-.02.004h.02l-.008.039-.012.031-.02.031-.02.027-.023.031-.02.023-.047.039-.031.02-.023.012-.031.012-.027.012-.094.012H8.77l-.031-.004-.027-.004-.027-.008-.031-.012-.027-.012-.023-.016-.031-.023-.023-.02-.02-.02-.023-.027-.02-.027-.016-.031-.023-.07-.008-.039-.008-.043.02-.004.008.043.004.035.012.035.012.031.016.027.02.027.016.023.02.02.023.02.027.016.023.016.055.023.027.008.027.004h.09l.031-.004.055-.016.027-.012.027-.016.023-.016.047-.039.02-.02.039-.055.016-.031.012-.031.008-.035h.02zm.621.043h-.02l.02.004-.023.039-.023.035-.047.063-.055.047-.027.02-.027.016-.023.012-.027.008-.027.012-.027.004h-.07l-.023-.008-.023-.004-.027-.008-.059-.035-.02-.016-.02-.023-.031-.039-.023-.039-.012-.023-.004-.027-.008-.023-.004-.023v-.023l.02-.004v.027l.008.023.004.02.008.023.023.039.012.023.016.02.012.02.023.016.016.016.039.023.059.023.027.004.023.004h.047l.027-.004.047-.016.023-.012.027-.016.047-.039.027-.023.023-.027.023-.031.02-.035.023-.039.02.004zm-.02-.004l.016-.031.004.031zm.543.063h-.02l.02.008-.027.027-.027.031-.023.023-.023.02-.023.023-.027.02-.023.016-.02.016-.023.016-.02.012-.023.008-.02.008-.023.004-.02.004h-.039l-.02-.008h-.016l-.016-.008-.031-.023-.016-.016-.012-.016-.035-.059-.008-.02-.016-.055-.004-.027-.004-.035-.008-.031.02-.004.008.063.008.027.004.023.008.027.008.02.012.02.008.02.016.016.012.016.012.012.012.008.012.016.012.004.02.004h.016l.016.004h.016l.039-.008.016-.004.039-.023.027-.012.02-.012.023-.016.023-.02.02-.02.027-.023.023-.027.055-.055zm-.02-.008l.02-.02v.027zm.379.098l.016.012-.02.027-.059.059-.023.02-.016.016-.02.012-.016.012-.016.008-.02.008-.016.008-.02.004-.012.004h-.031l-.016-.004-.012-.004-.023-.016-.012-.012-.008-.012-.012-.012-.008-.016-.008-.02-.004-.02-.008-.02-.004-.02-.008-.02-.004-.027v-.027l-.004-.023v-.027h.02v.051l.004.027.004.02.004.023v.023l.008.02.008.012.008.016.012.016.008.008.008.012.016.016.012.004.012.008h.012l.012.004h.012l.016-.004h.012l.012-.008.016-.012.023-.008.012-.008.02-.012.016-.023.02-.012.016-.02.02-.02.039-.047zm.082-.215v-.02l.012.008v.059l-.004.008v.012l-.004.008v.012l-.004.008v.004l-.004.008v.008l-.008.008v.008l-.008.016v.008l-.004.004-.023.047-.004.004-.008.016-.008.008-.02-.012.016-.016.008-.016.004-.004.004-.008v-.012l.008-.004V4.91l.008-.016v-.008l.004-.004v-.008l.004-.008v-.016l.004-.008V4.84l.004-.008V4.82l.004-.008v-.02l.004-.008V4.75l.012.008zm0-.02h.012v.008l-.012-.012zm0 0v.02zm0 .02zm0 0\" class=\"sr-B\"/><path d=\"M8.441 5.277h-.453l-.023.004H7.82l-.027.004h-.086l-.023.004h-.047l-.125.008h-.008l-.18.008h-.016l-.363.027h-.004l-.531.047c-.098.012-.117-.105 0-.121l.527-.043.742-.043h.047l.309-.012h.336.145.332l.301.012h.066l.742.043.523.043c.117.012.098.133 0 .121l-.527-.047h-.008l-.367-.023h-.012l-.184-.012h-.004c-.047 0-.086-.004-.129-.008h-.047l-.023-.004h-.09l-.027-.004h-.141l-.023-.004zm0 0\" class=\"sr-D\"/><path d=\"M8.441 2.102a.35.35 0 0 1 .348.348.35.35 0 0 1-.348.352c-.184 0-.34-.156-.34-.348s.156-.348.34-.348zm0 0\" class=\"sr-G\"/><path d=\"M8.508 1.703c.031-.004.059-.031.059-.066s-.027-.059-.059-.062c0-.035-.031-.062-.066-.062s-.059.027-.059.063c-.031 0-.062.027-.062.063s.027.063.063.063v.129h-.109c0-.035-.027-.059-.062-.059s-.059.023-.062.059c-.035 0-.059.027-.059.059 0 .039.023.066.059.066a.06.06 0 0 0 .059.059c.035 0 .066-.023.066-.059h.109v.43h.125v-.43h.109c0 .035.027.063.063.063s.059-.027.063-.062c.035 0 .059-.027.059-.062s-.027-.062-.059-.062c0-.035-.027-.062-.059-.062-.043 0-.066.027-.066.059h-.109zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M8.555 1.637h.02v.02H8.57v.012h-.004v.004l-.004.008-.004.004v.004h-.004l-.008.008h-.004v.004h-.004l-.004.004h-.004v.004h-.016l-.004.004h-.004v-.02h.012V1.68h.004l.008-.004h.004v-.004h.004v-.004l.004-.004V1.66h.004l.004-.004v-.008l.004-.004zm-.059-.062h.02l-.008-.012h.004l.004.004h.008l.008.004h.004l.008.008h.004v.004h.004l.004.004.004.008.004.004v.004h.004v.008h.004v.008l.004.008v.012h-.02v-.016h-.004v-.008l-.004-.004v-.008h-.008v-.004h-.004v-.004h-.004l-.004-.004h-.004v-.008h-.016l-.012-.012zm.008.008h-.008v-.008l.008.012zm-.059-.059v-.02h.012l.004.004h.004l.008.004h.004l.008.008h.004v.004l.004.004.004.008.004.004v.004h.004v.008h.004v.016h.004v.008h-.02v-.012h-.004v-.012h-.004v-.004l-.012-.012h-.004v-.004h-.004l-.004-.004h-.008l-.008-.004h-.008zm-.066.059v-.02l-.008.012v-.016l.004-.004v-.016h.004v-.012h.004v-.004l.012-.012h.004v-.004h.004v-.004h.008l.004-.004h.012l.004-.004h.008v.02h-.012v.004h-.004l-.008.004H8.41v.004h-.004v.004h-.004v.004l-.004.004v.004h-.004v.012h-.004v.02l-.012.012zm.012-.008v.012h-.012l.012-.008zm-.062.066h-.02v-.02l.004-.008v-.008l.004-.004v-.004l.004-.004.004-.008.004-.004h.004l.008-.004h.004v-.004h.004V1.57h.012l.004-.004h.016v.02h-.016l-.004.004h-.004l-.016.016v.004h-.004v.008l-.004.008v.016zm.063.059h-.02l.008.012h-.02v-.008h-.012v-.004H8.34v-.004h-.004l-.004-.008-.004-.004V1.68h-.004v-.004l-.008-.008v-.012h-.004v-.02h.02v.02h.004v.008h.004v.004h.004v.004l.004.004h.004v.004h.004l.008.004h.012v.004h.004zm-.012-.008h.012v.012l-.012-.016zm-.008.141v-.129h.02v.125l-.012.012-.008-.012zm.02 0v.008h-.012l.012-.012zM8.27 1.82h.109v.02H8.27l-.008-.012zm0 .02h-.008v-.012zm-.059-.059v-.023h.023v.008h.004l.008.004.004.004.008.004v.004l.008.008.004.008.004.004v.008l.004.004v.016h-.02v-.012l-.004-.004v-.012H8.25v-.004h-.004v-.004l-.008-.008h-.004v-.004h-.008l-.004-.004h-.016zm-.066.059v-.02l-.008.008v-.016l.004-.008v-.004l.004-.004v-.004h.004v-.004l.004-.004h.004v-.008h.004l.008-.008h.004v-.008h.016v-.004h.02v.02h-.02l-.004.004H8.18v.004h-.004v.004h-.004l-.004.004v.004h-.004v.008H8.16v.016l-.004.004v.008l-.012.012zm.012-.012v.012h-.012zm-.059.063h-.023v-.027h.004v-.004h.004v-.008l.008-.004.004-.008v-.004h.004v-.004h.004v-.004h.004l.004-.004h.004V1.82h.016l.004-.004h.016v.023h-.016l-.004.004h-.004v.004h-.004v.004h-.004l-.008.008v.004h-.004v.008h-.004v.016zm.059.063h-.02l.008.012h-.02v-.004h-.008l-.004-.004h-.004v-.004h-.004l-.008-.008v-.004H8.09v-.004l-.004-.004v-.012h-.004v-.008l-.004-.004v-.02h.02v.02h.004v.004l.004.008h.004v.004h.004v.004h.004v.004h.004l.004.004h.012v.004h.008l.012.008zm-.012-.008h.012v.008zm.063.059v.02h-.02l-.004-.004h-.008v-.004h-.004v-.004h-.008l-.008-.008V2h-.004v-.008h-.004v-.008h-.004v-.012l-.004-.004v-.008h-.004v-.008h.02v.012h.004v.008h.004v.008l.008.004v.004h.004v.004h.004v.004h.004L8.188 2h.004l.004.004zm.063-.059v.02l.012-.008v.016l-.004.004v.008h-.004v.004l-.004.008-.012.012-.008.004-.004.004h-.004l-.004.004h-.004l-.008.004h-.016v-.02h.02V2h.004l.004-.004h.004v-.004h.004l.004-.004v-.004h.004V1.98l.004-.008v-.004l.004-.004v-.008l.012-.012zm-.008.012v-.016h.008l-.008.012zm.117.008H8.27v-.02h.109l.012.012-.012.012zm0-.02h.012v.012l-.012-.008zm-.008.441v-.434h.02v.43l-.012.012-.008-.012zm.008.012h-.008v-.012zm.129 0h-.129v-.02h.129l.008.008zm.008-.012v.012h-.008zm0-.43v.426h-.02v-.43l.012-.008zm-.02 0v-.016h.012l-.012.012zm.121.012h-.109v-.02h.109l.008.012zm0-.02h.008v.012zm.059.059v.02h-.02l-.008-.004h-.004l-.008-.008h-.004v-.004h-.004l-.004-.004v-.004h-.004V2l-.004-.004v-.012h-.004V1.98h-.004v-.023l-.004-.004h.02v.008l.004.004v.004l.004.008v.004h.004v.004h.004l.004.004v.004h.004l.004.004h.004V2h.023zm.063-.059v.02l.012-.012v.016h-.004v.012l-.004.004v.008h-.004v.008h-.004v.004H8.73v.004h-.008v.004l-.004.004h-.008l-.004.004h-.004l-.004.004h-.016v-.02h.016v-.004h.004V2h.004l.008-.008v-.008h.004V1.98l.004-.008v-.004l.004-.004v-.012l.012-.012zm-.008.008v-.016h.008l-.008.012zm.059-.059h.02v.02l-.004.004v.004h-.004v.012h-.004l-.004.004v.004h-.004v.004h-.004v.004h-.004v.004h-.008l-.004.004h-.004l-.008.004h-.016v-.02h.02v-.004h.004v-.004h.004l.008-.008h.004v-.008l.004-.004v-.004h.004v-.016l.004-.008zm-.059-.062h.02l-.012-.016h.016l.004.004h.008l.008.004.004.008.008.004.012.012v.012h.004v.004h.004v.016l.004.004v.008h-.02v-.012h-.004v-.008l-.008-.008v-.004h-.004l-.008-.008h-.004v-.012H8.75l-.004-.004h-.012l-.008-.012zm.008.008H8.73v-.008zm-.059-.059v-.02h.023l.004.004h.008v.004h.004v.004l.008.004.004.004h.004v.008h.004v.008l.004.004v.008h.004v.012h-.02v-.016h-.004v-.008l-.016-.016h-.004v-.004h-.012v-.004H8.68zm-.062.059v-.02l-.012.012v-.02l.004-.004v-.012l.004-.004.004-.008.004-.004h.004v-.004l.004-.004h.004v-.004h.004l.004-.004h.004l.004-.004h.008l.004-.008h.02v.023h-.02l-.008.004h-.004v.004h-.004l-.004.004v.004l-.008.008v.004l-.004.004v.012l-.012.016zm.008-.008v.008h-.012zm-.117-.012h.109v.02h-.109l-.012-.008zm0 .02h-.012v-.008zm.008-.141v.133h-.02v-.133l.008-.016.012.012zm-.02 0v-.008h.008l-.008.012zm.012 0v-.008.012zm-.012 0v-.008h.008l-.008.012zm0 0\"/><path d=\"M8.797 2.453h-.02v-.035l-.004-.02v-.016l-.008-.016-.008-.031-.008-.016-.004-.016-.016-.023-.008-.016-.012-.016-.008-.012-.012-.012-.012-.008-.016-.012-.023-.023-.008-.012-.016-.008-.023-.016-.02-.008-.012-.008-.02-.004-.016-.004h-.016l-.016-.004H8.48l-.02-.008h-.02v-.02h.039l.016.004h.02l.031.016.016.004.016.008.02.008.016.008.012.008.016.012.012.008.016.012.012.016.047.047.008.016.012.016.008.02.008.012.016.031.004.02.008.016.004.016v.02l.004.016v.039zm-.355.355v-.02h.035l.02-.004.047-.012.02-.004.012-.004.047-.023.023-.016.016-.012.012-.008.023-.023.008-.012.012-.012.008-.012.008-.016.008-.012.016-.031.008-.02.004-.012.008-.016.004-.016v-.02l.004-.016v-.031h.02v.055l-.004.016-.004.02-.008.02-.004.012-.008.016-.004.02-.008.02-.008.012-.012.012-.008.016-.012.016-.047.047-.016.012-.012.012-.016.012-.012.008-.031.016-.02.004-.016.008-.016.004-.02.004-.016.008h-.016l-.02.004h-.02zm-.352-.355h.02v.035l.004.016v.016l.008.016.008.031.008.02.004.012.012.016.008.016.004.016.023.023.008.016.012.008.012.012.008.012.016.008.012.012.016.008.012.008.016.012.012.004.031.016.047.012h.039l.012.004v.02h-.035l-.016-.004-.02-.004-.031-.008-.02-.008-.016-.004-.031-.016-.012-.008-.016-.008-.016-.012-.012-.008-.016-.008-.012-.012-.012-.016-.012-.012-.008-.016-.012-.012-.008-.016-.008-.012-.008-.02-.016-.031-.004-.016-.008-.02-.004-.016v-.02L8.086 2.5v-.039zm.352-.359v.02h-.035l-.012.008h-.016l-.016.004-.016.008-.02.004-.012.008-.016.004-.031.016-.012.008-.016.008-.012.012-.012.008-.035.035-.008.012-.012.016-.008.016-.012.012-.008.016-.008.031-.008.016-.008.031v.02l-.004.02v.031h-.02v-.055l.004-.02.004-.016.008-.02.004-.02.008-.016.004-.016.008-.012.008-.02.008-.016.012-.012.008-.016.016-.012.047-.047.031-.016.012-.008.016-.008.016-.004.016-.012.023-.004.012-.004h.02l.016-.004h.016l.023-.004h.016zm0 0\"/></g><path d=\"M8.781 2.379c.004.043.004.082 0 .121l-.34-.004-.34.004c-.008-.039-.004-.082.004-.121l.336-.004.34.004zm0 0\" class=\"sr-D\"/><path d=\"M8.797 2.453h-.02v-.047h-.004v-.023l.02-.004v.035l.004.004zm-.016.059l.004-.02-.012.008v-.016l.004-.004v-.023h.02V2.5h-.004l-.008.012zm.012-.008v.004h-.008l.012-.008zm-.348 0v-.02h.234l.008.004h.098v.02H8.57l-.008-.004h-.121zm-.348 0l.02-.008-.012-.008h.094l.008-.004h.234v.02h-.223l-.008.004h-.109l-.012-.004zm.012.004h-.012V2.5zm-.016-.059h.02v.047l-.02.008zm.016-.082v.02l.012-.004v.016l-.004.004v.051h-.02v-.062h.004v-.008l.008-.008zm-.008.012v-.008h.008zm.344-.016v.02h-.18l-.012.004h-.133l-.016.004v-.02h.051l.008-.004h.184l.008-.004zm.352.016l-.02.004.008.008h-.074l-.008-.004h-.207l-.012-.004h-.039v-.02h.199l.008.004h.125l.008.012zm-.012-.012h.008v.012zm0 0\" class=\"sr-B\"/><path d=\"M8.176 2.668c-.07-.043-.086.027-.082.098.008.262.059.516-.016.844-.027.125-.07.199-.027.227.113.063.164.121.148.152.027.066.113.055.238.035.133.02.215.031.25-.035-.023-.031.031-.09.145-.152.047-.023 0-.102-.027-.227-.07-.328-.02-.582-.016-.844 0-.074-.008-.141-.078-.098-.168.09-.371.09-.535 0zm0 0\" class=\"sr-D\"/><path d=\"M8.102 2.766h-.023v-.031l.004-.004v-.031l.008-.008v-.004h.004v-.012l.004-.004v-.004h.004l.004-.008.008-.008h.004l.004-.004h.035l.016.008h.008l.008.008-.008.02-.008-.008h-.008l-.004-.004h-.008l-.004-.004h-.023v.004h-.004v.004l-.004.008v.004l-.004.004v.008l-.004.004v.008l-.004.004v.051zm-.012.844l-.02-.004.004-.031.008-.027.008-.031.004-.027.004-.031.004-.027v-.051l.004-.027v-.266l-.004-.023v-.051l-.004-.023v-.02l-.004-.027v-.023l-.004-.023v-.047l-.008-.027v-.055h.023v.07l.004.023v.055l.004.023v.027l.004.023v.051l.004.023v.023l.004.027v.266l-.004.031v.027l-.008.031-.004.027-.004.031-.004.027-.008.063zm-.035.223l-.008.016-.008-.004-.012-.012v-.004l-.004-.008V3.77l.004-.004v-.008l.004-.008v-.008l.004-.008v-.012l.008-.008.004-.008v-.008l.004-.008v-.008l.008-.012V3.66l.004-.008.004-.012v-.012l.008-.012.02.004-.004.016v.012l-.008.008v.016l-.008.016v.012l-.004.008v.012l-.008.008v.008l-.004.008v.008l-.004.008v.008l-.004.008v.008l-.004.008v.039l.008.008zm.152.156l-.02.008v-.008h.004v-.02l-.004-.004v-.004l-.004-.004v-.012l-.008-.004-.008-.008H8.16l-.004-.008-.012-.012h-.004l-.008-.008-.023-.012-.008-.008-.008-.004-.012-.008-.008-.008-.008-.004-.012-.008-.012-.004.012-.02.012.008.008.008.012.004.008.008.012.008.008.004.008.008.012.004.004.008.008.004.02.02.008.004.008.008.004.008.008.004.004.004v.004l.004.008v.004l.008.004v.008l.004.004v.023L8.207 4zm-.02.008v-.008zm.258.02l-.004.02h.004-.023l-.012.004h-.023l-.012.004h-.02l-.008.004H8.25l-.008-.004h-.004l-.008-.004-.004-.004-.008-.004-.02-.02h-.004l-.008-.016.02-.008v.004L8.211 4l.012.012h.004l.004.004h.004l.008.004h.004l.008.004h.008l.004.004h.086l.008-.004h.02l.012-.004h.023l.012-.004zm-.004 0h.004zm.242-.02l.02-.008v.008l-.012.012h-.004l-.008.016-.016.008-.004.004-.008.004h-.008l-.004.004h-.008l-.008.004H8.52l-.012-.004h-.012l-.012-.004h-.023l-.008-.004h-.012l.004-.023h.035l.008.004H8.5l.016.008h.02l.012.004h.082l.008-.004h.004l.004-.008h.008l.012-.012L8.672 4l.004-.004v-.008l.004-.004v.012zm.02-.008v.008zm.129-.16l.012.02-.012.004-.012.008-.008.008-.016.008-.008.008-.008.004-.008.008-.008.004-.008.008-.008.004h-.004l-.004.008-.008.004-.004.008h-.004l-.004.008-.008.008v.004l-.008.004v.016h-.004v.023L8.688 4v-.004l-.004-.004v-.023l.004-.004v-.008l.008-.004v-.008l.004-.004.004-.008.027-.027.008-.004.004-.008.008-.004.012-.004.008-.008.008-.004.008-.008.008-.004.012-.008.008-.004.012-.004.008-.008.012-.004zm-.035-.215l.02-.004v.012l.008.012.004.012.004.008v.016l.008.012v.008l.004.008v.012l.004.012.004.008v.008l.004.008v.008l.004.008v.012l.004.004v.016l.004.004v.039l-.004.004v.004l-.008.008h-.004l-.008.008-.012-.02h.004l.004-.004v-.008h.004v-.051L8.84 3.77v-.008l-.004-.004V3.75l-.004-.008V3.73l-.004-.008v-.008l-.008-.008v-.012l-.004-.008v-.012l-.004-.012v-.012l-.008-.012v-.012l-.008-.023zm-.012-.844h.02v.117l-.004.027v.023l-.004.027v.023l-.004.027v.051l-.004.023v.051l-.004.023v.188l.004.027v.031l.004.023.008.063.004.027.004.031.004.023.008.031-.02.008-.008-.031-.004-.031-.004-.027-.004-.031-.004-.023-.004-.031v-.027l-.004-.031v-.035l-.004-.023v-.207l.004-.027v-.051l.004-.027v-.023l.004-.023v-.027l.004-.023v-.047l.004-.023v-.078zm-.066-.09l-.012-.02h.008l.008-.004.004-.004h.004l.008-.004h.027l.004.004h.004l.004.004v.004l.004.004h.004v.008l.004.004v.008h.004v.016l.004.004v.031l.004.004v.023h-.02v-.047l-.004-.008v-.016l-.004-.004v-.012l-.004-.004v-.004h-.004v-.004h-.004V2.66h-.004v-.004h-.023l-.004.004h-.004l-.008.004-.004.004zm-.539 0l.008-.02.016.008.012.012.016.008.012.004.016.008.031.008.02.004.016.004.02.004h.016l.02.004h.016l.02.004h.094l.012-.004h.02l.016-.004h.016l.035-.012.031-.008.063-.031.012-.004.012.02-.016.008-.012.008-.016.008-.016.004-.02.008-.016.008-.012.004-.02.004-.016.004-.02.004h-.016l-.02.004h-.02l-.02.008h-.09l-.02-.008h-.016l-.059-.012-.012-.004-.016-.004-.016-.008-.02-.004-.016-.004-.016-.008-.012-.008-.016-.008zm0 0\" class=\"sr-B\"/><path d=\"M6.059 4.254c-.039-.082-.004-.199.008-.223.004-.016-.012-.043-.02-.055-.262-.367-.266-.402-.086-.539.16-.121.523-.242.781-.324.055-.043.09-.102.137-.145-.5.035-1.039.238-1.309.477-.145.125.031.383.242.762.137.102.199.141.246.047zm0 0\" class=\"sr-D\"/><path d=\"M6.055 4.027l.02.008v.004l-.004.004v.004l-.004.008v.008l-.004.004v.012l-.004.008v.016l-.004.008v.031l-.004.008v.051l.004.008v.008l.004.008v.008l.004.008v.008l.008.008-.02.004V4.25l-.008-.008V4.23l-.004-.008v-.008l-.004-.008v-.016l-.004-.012v-.059l.004-.008v-.027l.004-.004v-.008l.004-.004v-.012l.004-.008v-.012l.004-.004v-.004zm-.02-.047l.02-.012v.004h.004v.008h.004v.008h.004v.004l.004.004v.008h.004v.027l-.02-.008v-.012l-.004-.004v-.004L6.047 4v-.004l-.004-.004v-.004h-.004v-.004zm-.078-.551l.008.02-.016.012-.012.012-.016.012-.012.012-.012.008-.012.012-.008.012-.012.012-.004.008-.008.008-.004.012v.008l-.008.012v.035l.004.012.004.016.004.012.008.02.008.016.008.02.035.059.016.027.02.023.016.027.02.027.02.031.02.027.027.035-.016.012-.027-.035-.02-.031-.02-.027-.02-.031-.039-.047-.016-.027-.023-.039-.016-.02-.008-.02-.012-.02-.008-.016-.004-.02-.004-.016v-.012l-.004-.016v-.027l.012-.035.008-.012.008-.016.012-.008.008-.012.012-.008.039-.039.016-.012.012-.012zm.777-.328l.016.02h-.004l-.023.008-.023.012-.023.008-.031.004-.023.008-.027.012-.031.008-.023.012-.031.008-.027.012-.027.008-.023.012-.031.008-.027.012-.023.012-.031.008-.027.012-.023.012-.027.012-.027.008-.023.016-.047.023-.02.008-.023.012-.023.008-.02.016-.02.012-.02.008-.02.016-.016.012-.012.012-.012-.02.016-.012.02-.012.016-.012.02-.016.02-.012.02-.008.047-.023.023-.008.02-.016.055-.023.023-.012.027-.008.023-.008.055-.023.027-.008.027-.012.027-.008.027-.012.055-.016.027-.012.027-.008.023-.008.027-.008.027-.012.023-.008.027-.008.047-.016zm.016.02h-.004zm.133-.141v-.023l.008.02-.004.004-.008.004-.004.004-.004.008-.008.008v.004l-.008.004-.008.008-.008.016-.008.004-.004.004-.004.008v.004l-.004.004-.004.008-.004.004-.008.004-.012.012h-.004l-.004.008-.008.004-.004.004-.004.008-.004.004-.008.004-.004.004-.012-.02v-.004l.004-.004.008-.004.012-.012.008-.004.008-.008v-.004l.016-.016v-.004l.008-.004.004-.004.008-.016v-.004l.008-.008L6.828 3l.004-.004v-.004l.012-.004.008-.008.004-.008.004-.004h.004l.004-.004.008.016zm0-.023l.027-.004-.02.023-.008-.023zm-1.309.492l-.012-.016.031-.02.055-.047.031-.023.027-.02.07-.039.031-.02.043-.023.035-.02.078-.039.043-.016.039-.02.043-.016.039-.016.047-.016.047-.02.043-.012.047-.016.047-.012.047-.008.047-.016.094-.023.051-.008.094-.016.047-.004.094-.016.047-.004v.023l-.094.008-.047.008-.043.004L6.645 3l-.043.008-.051.008-.043.012-.187.047-.043.016-.043.012-.043.02-.047.016-.043.016-.039.02-.039.016-.047.02-.078.039-.035.016-.039.02-.035.02-.031.023-.035.02-.027.02-.035.02-.027.023-.027.02-.027.023zm.246.75l-.012.016-.004-.004-.02-.031-.02-.039-.02-.031-.02-.035-.016-.035-.02-.031-.016-.031-.02-.031-.02-.027-.012-.031-.047-.082-.008-.027-.012-.023-.012-.027-.008-.023-.012-.023-.004-.02-.008-.02-.008-.023v-.023l-.004-.02V3.52l.008-.016.004-.016.008-.016.012-.016.008-.016.012-.012.016.016-.012.012-.008.012-.008.016-.008.012-.004.012-.004.016v.094l.008.02v.02l.016.039.008.027.012.023.008.023.012.027.016.027.012.027.016.027.02.027.012.031.023.031.016.027.02.035.016.031.039.07.02.039.02.031h-.004zm-.012.016l-.004-.004zm.25.027v.02l.012-.004-.008.008-.008.016-.008.004-.004.004-.004.008-.008.004-.004.004H6.02l-.008.004h-.043l-.008-.004-.012-.004-.008-.004-.004-.004-.012-.004-.008-.008-.012-.004-.016-.016-.012-.004-.012-.008-.008-.008-.035-.023-.012-.012.012-.016.016.008.008.008.035.023.008.012.016.008.008.008.012.004.008.008.008.004.012.004.008.004h.008l.008.004h.031l.004-.004h.004l.004-.008.004-.004.008-.004.004-.004v-.008l.008-.008.004-.008.008-.008zm-.008.004v-.008h.008zm.008.012v-.02l.012.008zm.012-.012l.004.012h-.016l.012-.016zm0 0\" class=\"sr-B\"/><path d=\"M5.98 4.285l-.02-.094c-.016-.059-.008-.117.008-.168l-.176-.266c-.031-.066-.059-.141-.039-.215s.09-.133.152-.18a1.39 1.39 0 0 1 .273-.152c.219-.09.398-.141.527-.141l-.082.078c-.242.078-.527.184-.668.289-.18.137-.172.172.086.539.008.012.027.039.02.055-.012.023-.035.145 0 .227-.02.039-.051.02-.082.023zm0 0\" class=\"sr-D\"/><path d=\"M5.949 4.191l.02-.004v.016l.004.004v.012h.004v.02l.004.004v.008l.004.004v.016h.004v.012h.004l-.02.008v-.008l-.004-.004v-.004l-.004-.008v-.008l-.004-.008v-.012h-.004v-.012l-.004-.004v-.016l-.004-.004zm.02-.004zm-.008-.156l.02-.012v.012l-.004.008v.004l-.004.004v.02l-.004.004v.016l-.004.004v.094l.004.008-.02.004v-.012l-.004-.004V4.07h.004v-.02l.004-.004v-.008l.004-.004v-.004l.004-.008v.012zm.02-.012v.012-.016zm-.195-.258l.02-.008v.012l.008.008.004.008v.008l.008.008.004.008.008.012v.008l.016.016.016.031.008.012.004.008.008.008.012.023.008.012.004.008.016.016.008.016.008.008.008.016.008.008.004.008.008.012-.02.012-.004-.008-.008-.012-.004-.008-.023-.023-.012-.023-.008-.008-.004-.012-.008-.008-.008-.004-.008-.016-.008-.012-.004-.008-.008-.008-.008-.012-.008-.008-.008-.016-.004-.012-.004-.008-.008-.008-.008-.016-.008-.012-.008-.016-.004-.012-.004-.008zm-.039-.219l.02.008-.004.004v.082l.004.008v.008l.004.004v.016l.008.008v.008l.004.008v.012l.004.004v.008l.008.004v.004l.004.008v.008l.004.004-.02.012v-.004l-.004-.008-.004-.004v-.008l-.004-.008v-.008l-.008-.004v-.008l-.004-.004-.004-.008v-.004l-.008-.004V3.68l-.004-.008v-.008l-.004-.004v-.016l-.004-.008v-.027l-.004-.008V3.57l.004-.004v-.016l.004-.004zm.152-.187l.012.016-.016.016h-.008l-.004.008-.02.02-.008.004-.004.008-.004.004-.008.004-.012.012-.008.004v.008l-.016.016-.004.008-.008.004-.008.016v.004l-.004.008-.004.004v.008l-.008.008v.004l-.004.008v.008l-.02-.008v-.008l.004-.008V3.52l.008-.016v-.008l.016-.016.004-.008v-.004l.008-.012.004-.008.02-.02.008-.004.004-.004.004-.008.004-.004.008-.004.012-.012.008-.004.004-.008.004-.004.008-.004.004-.004h.008zm.277-.148l.008.016-.008.004-.012.004-.008.004-.012.004-.016.008-.008.008-.023.008-.008.004h-.012l-.008.004-.012.008-.004.004-.008.004-.012.004-.016.008-.008.008-.016.008-.008.008-.008.004-.012.004-.008.004-.004.004-.023.012-.004.008-.008.004-.012.004-.012-.016.008-.004h.008l.016-.016.023-.012.008-.008.031-.016.023-.008.016-.008.008-.008h.008l.008-.004.008-.008.012-.004.008-.004.012-.004.012-.008.016-.008h.008l.008-.004.012-.004.016-.008h.012zm0 0zm.539-.129l-.012-.016.008.016H6.68l-.012.004h-.035l-.016.004h-.016l-.012.004h-.016l-.031.008h-.016l-.016.004-.016.008-.02.004-.031.008-.02.008-.02.004-.02.008-.016.004-.02.004-.016.008-.02.004-.02.012-.02.008-.016.008-.023.008-.059.023-.008-.02.039-.016.02-.012.02-.008.02-.004.02-.012.02-.004.02-.008.023-.008.016-.004.02-.008.016-.008.02-.004.016-.008h.02l.016-.008.016-.004.02-.004.016-.004h.016l.031-.008h.012l.016-.004h.016l.016-.004h.027l.008-.004h.039l.008.016zm-.008-.02h.027l-.02.02zm-.086.078l.078-.074.016.012-.078.078-.008.004zm.012.016l-.004.004zm-.668.297l-.012-.02.016-.012.012-.008.023-.012.012-.008.016-.012.02-.012.016-.008.023-.008.02-.008.016-.012.023-.008.02-.012.02-.004.02-.012.047-.016.023-.012.02-.008.023-.008.047-.023.02-.008.027-.008.07-.023.027-.012.02-.008.047-.016.023-.004.023-.008.004.02-.023.004-.02.008-.027.008-.02.008-.023.012-.027.008-.023.004-.023.008-.02.008-.047.023-.02.008-.027.008-.02.008-.027.008-.02.008-.023.012-.02.008-.02.012-.023.012-.023.008-.02.012-.02.008-.02.012-.016.008-.02.012-.047.023-.016.012-.016.008-.012.008zm.09.523l-.016.008-.027-.035-.02-.027-.02-.031-.039-.055-.02-.023-.016-.023-.023-.039-.016-.023-.016-.039-.012-.012-.004-.023-.004-.012v-.016l-.004-.012v-.031l.012-.035.016-.023.043-.043.012-.008.016-.016.016-.012.012-.016.012.02-.016.012-.012.012-.016.012-.023.023-.012.008-.008.012-.012.012-.004.008-.008.012-.004.008v.012l-.004.012v.043l.004.016.023.047.008.02.012.02.008.023.016.02.016.023.02.027.012.023.02.027.02.031.023.031.023.035zm.02.059l-.02-.004v-.023h-.004V4l-.004-.004v-.004h-.004v-.008l.012-.012.004.004v.008h.004v.004l.004.004v.004L6.07 4v.008h.004v.027zm.004.234l-.02-.012v.012l-.008-.016v-.008l-.004-.012v-.012l-.004-.008v-.008l-.004-.008v-.109l.004-.008v-.016l.004-.008v-.008l.004-.008v-.008l.004-.004.02.008v.004l-.004.004v.012l-.004.004v.012l-.004.004v.023l-.004.008v.102l.004.008v.016l.004.012v.008l.008.016v.008zm0-.008v.008zm-.102.02v.02-.02h.004l.004-.004h.031v.004h.027l.004-.004h.004V4.27h.004v-.004l.004-.004.004-.008.02.012-.008.008v.004l-.004.004h-.004v.004l-.004.004h-.008l-.004.004h-.008v.004h-.059v-.02zm0 .02v-.02l.012.004-.008.012zm.012-.016l.004.012H5.98l.012-.012zm0 0\" class=\"sr-B\"/><path d=\"M8.16 2.648c.004-.047 0-.039-.008.035-.004-.016-.016-.023-.027-.023-.02 0-.031.035-.035.105l.004.059c-.66-.016-1.055.086-1.152.277-.086.16.059.422.27.727.027.035.023.031 0 .059-.035.047-.074.121-.047.184-.125.074-.281.086-.418.031-.02-.059-.066-.09-.109-.117-.008-.004-.039-.02-.039-.027l-.203-.633c-.191-.617 1.504-.676 1.766-.676zm0 0\" class=\"sr-D\"/><path d=\"M8.145 2.688l.02-.012-.02.008v-.039h.004v-.023l.004-.004.012-.004.008.004v.031h-.02v-.023l.008.004h.012v-.004.02l-.004.004v.039zm.02 0l-.004.031-.012-.031h.02zm-.039-.016v-.02h.016v.004h.008v.004h.004v.004h.004v.004h.004v.004h.004v.004l-.02.012v-.004h-.004v-.008h-.004v-.004zm0 0zm-.023.094h-.023V2.73l.004-.008v-.016l.008-.008v-.012h.004V2.68l.004-.008.008-.008h.004V2.66h.004v-.004h.008v.02h-.004v.004h-.004v.004l-.004.004v.008l-.004.004v.012l-.004.004v.043l-.004.004v.008zm-.023 0zm.016.066v-.02l-.012.012v-.047h-.004V2.77l.023-.004v.035l.004.004v.02l-.012.012zm.012-.008v.008h-.012zm-1.156.285l-.02-.012.012-.02.016-.016.012-.02.016-.016.023-.016.059-.047.027-.016.023-.012.027-.012.063-.023.031-.016.07-.016.043-.012.035-.008.039-.008.043-.008.047-.004.043-.004.047-.008.047-.004.051-.004h.051l.055-.004h.055l.055-.004h.18v.02h-.238l-.055.004H7.75l-.102.008-.047.004-.047.008-.086.008-.039.008-.043.008-.039.008-.07.016-.035.012-.031.008-.062.023-.023.008-.027.016-.023.012-.02.016-.02.012-.02.016-.023.012-.012.02-.023.031-.012.02zm.27.711l-.016.012-.059-.082-.02-.031-.016-.023-.016-.031-.023-.023-.012-.027-.031-.055-.016-.023-.016-.027-.012-.02-.012-.023-.008-.027-.012-.023-.008-.023-.008-.02-.012-.02-.004-.023-.008-.023-.008-.02-.004-.023v-.02l-.004-.02v-.055l.008-.016.004-.02.004-.016.008-.016.02.012-.008.012-.012.047v.09l.004.02.008.02v.023l.008.02.008.023.008.02.008.023.012.02.008.023.012.027.016.023.012.027.012.02.031.055.016.023.016.027.02.027.016.027.02.023.02.031.02.027.02.031zm0 .078l-.016-.016.004-.008.004-.004h.004v-.004l.004-.004v-.008l-.004-.004v-.004h-.004v-.004h-.004v-.008h-.004l.016-.012.004.004.004.008v.004h.004v.008h.004v.004l.004.004v.02l-.004.004v.004H7.23v.004l-.008.008-.004.008zm-.047.18l-.012-.016-.004.012V4.07l-.004-.012v-.004l-.004-.008v-.07l.004-.004v-.008l.004-.008.004-.004v-.008l.004-.008.008-.004v-.008l.004-.004v-.004l.008-.004.004-.008v-.004l.008-.008v-.008l.008-.004.004-.004.016.016-.008.008v.004h-.008v.004l-.004.008-.004.004v.004l-.008.008v.004l-.004.004-.004.008v.016l-.004.004v.004l-.004.004v.012l-.004.008v.055l.004.008.004.004-.004.012zm.004-.012v.008l-.004.004zm-.441.039l.023-.008-.008-.004.016.004.035.012h.016l.023.008h.016l.012.004h.113l.012-.004h.012l.016-.004h.012l.023-.008.016-.004.012-.004.016-.004.023-.016.012-.004.012-.008.012-.004.012.02-.012.004-.016.008-.012.008-.012.004-.012.008-.016.004-.023.008-.016.004-.012.004h-.012l-.012.004H7l-.012.004h-.016l-.012.004h-.102l-.012-.004h-.016l-.012-.004h-.016l-.012-.008-.012-.004-.016-.008-.012-.004-.016-.004-.008-.008zm.008.004l-.004-.004v-.004zm-.109-.117l.012-.02.008.008h.004l.008.008h.004l.004.004v.004h.008v.008h.004l.004.004h.004l.004.008.02.02v.004l.004.004v.004l.008.004.004.004v.004l.012.012v.004l.008.008v.004l.004.008-.02.008-.004-.004V4.09h-.004v-.008l-.008-.008V4.07l-.008-.008v-.004l-.008-.004-.004-.004-.004-.008-.004-.004-.008-.004H6.68l-.004-.008v-.004l-.004-.004h-.008v-.008H6.66l-.004-.004h-.004l-.004-.004h-.004L6.641 4h-.004l-.004-.004h-.004zm-.039-.031l.016-.008h.004v.004h.004l.004.004h.004v.004h.008v.004h.004l.004.004h.004l-.012.02-.004-.004h-.004v-.004h-.008V3.98h-.004l-.004-.004h-.004v-.004h-.004v-.004h-.004v-.004h-.004zm-.207-.637l.02-.008.004.02.008.02.004.016.008.023.004.02.008.016.008.02.004.02.008.02.004.02.008.023.004.016.004.02.016.039.004.02.008.02.004.02.008.023.008.02.004.02.023.059.004.02.012.023.004.02.008.02.008.023.016.039.008.027-.02.004-.008-.02-.004-.023-.008-.02-.008-.023-.008-.039-.008-.023-.008-.02-.004-.02-.008-.02-.008-.023-.004-.02-.008-.02-.004-.02-.012-.02-.008-.02-.004-.02-.008-.023-.008-.02-.004-.016-.016-.039-.004-.02-.008-.02-.004-.016-.008-.023-.004-.02-.008-.02-.004-.016-.008-.02-.008-.016-.004-.02zm1.766-.676h.02l-.012.008h-.105l-.051.004h-.055l-.062.004-.066.004-.07.004-.07.008-.156.016-.082.008-.078.012-.086.012-.078.016-.086.02-.078.016-.082.02-.074.02-.074.027-.066.027-.066.031-.059.027-.055.035-.043.031-.043.043-.031.035-.023.043-.016.043-.008.047v.051l.012.055-.02.008-.012-.059v-.055l.008-.055.02-.047.023-.043.035-.043.039-.039.051-.039.055-.031.059-.031.066-.031.07-.027.074-.02.078-.023.078-.02.078-.023.164-.023.086-.012.078-.012.082-.012.078-.008.082-.008.07-.008.07-.004.066-.004.063-.004h.059l.047-.004h.109l-.012.008zm.02 0v.008H8.16l.016-.008zm-.012 0h-.008.012zm.016 0v.008h-.012l.016-.008zm0 0\" class=\"sr-B\"/><path d=\"M6.898 3.816c.07 0 .129.055.129.125a.13.13 0 0 1-.129.129c-.066 0-.125-.059-.125-.129s.059-.125.125-.125zm0 0\" class=\"sr-C\"/><path d=\"M7.039 3.941h-.02c0-.043-.027-.086-.066-.105-.016-.008-.035-.012-.055-.012v-.02c.047 0 .094.023.117.063.012.023.02.047.02.074zm-.141.141v-.02c.047 0 .086-.027.105-.066.008-.016.012-.035.016-.055h.02c0 .047-.027.094-.07.121-.02.016-.047.02-.07.02zm-.137-.141h.02c0 .047.027.09.066.109.016.008.035.008.051.008v.02c-.047 0-.09-.023-.113-.066-.016-.02-.02-.047-.02-.07zm.137-.141v.023a.11.11 0 0 0-.102.066c-.008.016-.016.031-.016.051h-.02c0-.047.027-.094.066-.121.023-.012.047-.02.074-.02zm0 0\" class=\"sr-B\"/><path d=\"M5.816 4.082c.063 0 .121.055.121.121s-.059.121-.121.121-.121-.055-.121-.121.055-.121.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M5.945 4.203h-.02c0-.039-.023-.078-.059-.094-.016-.012-.031-.016-.051-.016v-.02c.043 0 .082.023.109.059.012.023.02.047.02.074zm-.129.129v-.02c.039 0 .078-.023.094-.059.008-.016.012-.031.016-.051h.02a.13.13 0 0 1-.062.109c-.02.012-.043.02-.066.02zm-.129-.129h.02c0 .043.023.082.059.098.016.008.031.012.051.012v.02c-.043 0-.086-.023-.109-.059-.016-.02-.02-.047-.02-.07zm.129-.129v.02c-.039 0-.082.027-.102.059-.008.02-.012.035-.008.055h-.02a.13.13 0 0 1 .059-.109c.02-.016.047-.023.07-.023zm0 0\" class=\"sr-B\"/><path d=\"M5.699 3.863c.07 0 .121.055.121.121s-.051.121-.121.121c-.062 0-.117-.055-.117-.121s.055-.121.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M5.828 3.984h-.02c0-.039-.023-.078-.059-.098-.016-.008-.031-.012-.047-.012v-.02c.043 0 .086.023.109.059.012.023.02.047.02.07zm-.129.129v-.02c.039 0 .082-.023.098-.055.008-.016.012-.035.012-.055h.02c0 .047-.023.086-.059.113-.02.012-.043.02-.066.02zm-.125-.129h.02c0 .043.023.082.059.098.016.008.031.012.051.012v.02c-.043.004-.086-.02-.105-.059-.016-.02-.02-.043-.023-.066zm.129-.129v.02c-.039 0-.074.02-.094.055-.008.02-.012.035-.012.055h-.023c0-.043.027-.086.063-.109.02-.012.043-.02.066-.02zm0 0\" class=\"sr-B\"/><path d=\"M5.598 3.645c.063 0 .117.055.117.121s-.055.121-.117.121-.121-.055-.121-.121.055-.121.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M5.723 3.766h-.02c0-.043-.023-.082-.059-.102-.016-.008-.031-.012-.047-.012v-.02c.043 0 .086.023.105.063.016.02.02.043.02.07zm-.125.129v-.023a.11.11 0 0 0 .094-.051c.008-.02.012-.035.012-.055h.02c0 .039-.02.086-.059.109-.02.012-.043.02-.066.02zm-.129-.129h.02c0 .039.02.082.059.098.016.008.031.012.051.012v.02c-.047 0-.086-.02-.109-.059-.012-.02-.02-.043-.02-.066zm.129-.129v.02c-.043 0-.082.023-.098.059a.12.12 0 0 0-.012.051h-.02c0-.043.02-.086.059-.109.02-.012.043-.02.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M7.688 4.055c.066-.004.047.117.039.145-.02.039-.035.039-.062.004-.016-.023-.047-.145.023-.148zm0 0\" class=\"sr-D\"/><path d=\"M7.73 4.203l-.02-.008h.004v-.012l.004-.008v-.008l.004-.008v-.066h-.004v-.008l-.004-.004v-.004l-.004-.004h-.004l-.004-.004h-.004l-.004-.004h-.008v-.02h.016l.004.004h.008l.004.004v.004l.008.004.004.004.004.008v.004l.004.004v.016l.004.008v.074l-.004.004v.012l-.004.004v.012H7.73zm-.074.008l.02-.016.004.008v.004h.004v.004h.004v.004h.012l.004-.004v-.004h.004v-.004h.004v-.008l.02.008v.004l-.004.004v.004h-.004v.004l-.008.008h-.008v.004H7.68v-.004h-.004v-.004h-.004v-.004h-.004v-.004h-.004v-.008h-.008zm.027-.168v.02h-.008v.004h-.008v.004H7.66v.004l-.004.004v.008h-.004v.066l.004.004v.012l.004.004v.008l.004.004v.004l.008.004v.004h.004l-.023.012v-.008l-.004-.004v-.004l-.004-.008V4.18l-.004-.008v-.004l-.004-.004v-.016l-.004-.008v-.059l.004-.008V4.07l.016-.016h.004l.004-.008.004-.004h.012l.004-.004zm0 0\" class=\"sr-B\"/><path d=\"M7.691 4.121c.16-.012.117.277.086.344-.039.082-.078.086-.133.008-.039-.059-.117-.34.043-.352zm0 0\" class=\"sr-C\"/><path d=\"M7.789 4.469l-.02-.008.008-.016v-.008l.004-.012.004-.008v-.012l.004-.012.004-.016v-.027l.004-.012v-.102l-.004-.016v-.012l-.008-.016-.004-.012-.008-.008-.004-.012-.008-.008-.004-.008-.012-.008-.008-.004-.012-.004-.008-.004h-.027v-.02h.027l.012.004.016.004.023.016.016.016.008.016.004.012v.016l.008.012.004.012v.016l.004.016v.125l-.004.016v.016l-.004.012v.012l-.008.012v.012l-.004.008v.008l-.008.008zm-.152.008l.016-.008.004.004.004.008.008.004.004.008h.004V4.5h.008l.008.008h.008l.004.004h.02v-.004h.004l.004-.004V4.5l.008-.008h.004l.004-.008v-.008l.008-.004.008-.008.004-.008.02.008-.008.008-.004.012-.004.004-.008.016-.008.008-.004.008-.004.004-.008.004h-.004v.008h-.008l-.004.004h-.023l-.008-.004h-.004l-.004-.008v-.004l-.008-.004-.004-.004-.008-.004-.012-.012-.008-.016zm.051-.344v-.02.02h-.012l-.016.004-.008.004-.012.004-.023.023-.004.008-.008.012-.004.012v.012l-.004.008v.016l-.004.016v.012l.004.012v.027l.004.016v.016l.008.016v.012l.004.012.004.016.004.008.004.012.004.016.008.016.004.012.004.008.004.004-.02.012v-.008l-.008-.016-.004-.012v-.012l-.008-.008-.004-.016-.008-.023-.004-.016v-.016l-.008-.012V4.32l-.004-.012v-.035l-.004-.016v-.016l.004-.016v-.012l.004-.012v-.016l.008-.012.004-.012.016-.023.008-.008.023-.016.012-.004.016-.004h.016zm0-.02v.02zm0 0\" class=\"sr-B\"/><path d=\"M6.395 4.227c.066-.02.078.102.07.133-.008.043-.023.047-.055.023-.02-.027-.078-.133-.02-.156zm0 0\" class=\"sr-D\"/><path d=\"M6.477 4.363l-.02-.004v-.059l-.004-.004v-.016l-.004-.004V4.27l-.004-.004v-.004l-.008-.004-.004-.004-.004-.008-.008-.004h-.008l-.004-.004h-.012l-.008-.023h.031l.012.012.008.004.004.008.004.004v.008l.004.004v.008l.004.008v.004l.004.008v.004l.004.008v.016l.004.004v.051zm-.07.02l.016-.012h.004v.004h.004l.004.004h.004v.004h.008l.004-.004v-.004h.004v-.012h.004v-.008l.02.004v.008h-.004v.012l-.004.004v.004h-.004l-.008.008h-.004l-.004.004h-.02v-.004h-.008l-.004-.004h-.004v-.004H6.41l-.004-.004v-.004zm-.016-.164l.008.02h-.008l-.004.004h-.004v.004l-.004.004v.004l-.004.004v.035l.004.008v.008l.004.008v.004l.004.004.004.008v.004l.004.008.004.004v.004l.008.004v.004l.004.004.004.008.008.004-.016.012h-.004v-.008l-.008-.004v-.004l-.004-.004v-.008l-.008-.004v-.004l-.004-.004V4.34l-.004-.004v-.008l-.004-.008v-.004l-.008-.008v-.016l-.004-.004v-.035l.008-.004.004-.008.004-.004.004-.008.004-.004h.004l.008-.004zm0 0\" class=\"sr-B\"/><path d=\"M6.414 4.293c.152-.051.184.242.168.313-.02.09-.055.098-.125.039-.051-.047-.191-.301-.039-.352zm0 0\" class=\"sr-C\"/><path d=\"M6.594 4.605l-.023-.004v-.016l.004-.008V4.52l-.004-.016v-.031l-.004-.012v-.016l-.008-.016-.004-.016-.008-.023-.004-.016-.004-.012-.008-.012-.004-.008-.008-.012-.008-.008-.008-.004-.008-.008-.008-.012-.012-.004h-.008l-.012-.004h-.02l-.012.008-.012-.02.016-.004h.043l.016.004.012.004.023.016.008.012.008.008.023.035.004.012.008.016.004.012.004.016.008.016.004.016v.016l.004.016V4.5l.004.016v.09zm-.141.047l.008-.02.012.008.008.008h.008l.004.008h.004l.008.008h.008l.004.004h.027l.008-.008.008-.016v-.012l.004-.004v-.004l.004-.008v-.004l.004-.008.023.004v.008l-.004.008v.008l-.012.012v.008l-.008.016v.004l-.004.004h-.004v.008l-.008.004h-.004l-.004.004h-.016l-.004.004h-.012l-.004-.004h-.004L6.5 4.688h-.008l-.008-.004-.004-.004h-.008l-.004-.008-.008-.004-.004-.004-.004-.008zm-.043-.371l.008.02-.016.004-.012.008-.008.004-.016.016-.004.012-.004.008v.012l-.004.012v.051l.004.012.004.016.008.023.004.016v.012l.008.016.023.035.004.012.012.012.008.012.004.008.016.016.008.016-.008.02-.008-.008-.004-.008-.016-.016-.008-.012-.008-.008-.008-.016-.031-.047-.004-.012-.008-.016-.004-.016-.008-.012-.004-.016-.008-.016-.004-.016v-.016l-.004-.012v-.035l.008-.023.008-.012.004-.012.02-.02.012-.008.016-.004.012-.008zm0 .008v-.008zm0 0\" class=\"sr-B\"/><path d=\"M8.082 2.762c-.344-.031-.699.004-1.043.141-.297.121-.27.465.09.945a.53.53 0 0 0-.055.219h.098c-.027-.055 0-.129.035-.18.02-.031.027-.023 0-.059-.215-.305-.355-.566-.27-.727.098-.191.492-.293 1.152-.277 0-.023 0-.039-.004-.055zm0 0\" class=\"sr-D\"/><path d=\"M7.039 2.914l-.004-.02.031-.012.035-.012.063-.023.035-.008.063-.016.035-.012.027-.008.035-.008.031-.008.035-.004.031-.008.035-.004h.035l.031-.008.07-.008.031-.004h.066l.031-.004h.23l.031.004h.031l.031.008v.02l-.031-.004h-.098l-.031-.004h-.195l-.031.004H7.66l-.062.008-.035.004-.031.004H7.5l-.035.008-.031.008-.035.004-.031.012-.031.004-.035.012-.027.008-.07.016-.062.023-.035.016-.062.023zm.102.938l-.02-.008.004.012-.035-.039-.031-.047-.055-.086-.027-.039-.023-.039-.02-.043-.039-.078-.016-.035-.012-.035-.008-.039-.012-.031-.008-.035-.008-.031-.004-.035v-.086l.004-.027.008-.027.016-.047.012-.023.012-.02.031-.039.023-.016.02-.016.023-.016.031-.012.023-.012.008.02-.047.023-.02.012-.039.039-.023.016-.035.059-.008.02-.008.027-.008.047v.074l.004.031.004.035.016.063.012.035.031.07.02.039.016.039.02.039.023.039.027.043.027.039.027.043.031.039.031.047zm0-.008l.004.004-.004.008zm-.062.219v.02l-.012-.012v-.047l.004-.012v-.02l.004-.008v-.012l.004-.012v-.008l.004-.004v-.008l.008-.008V3.93l.004-.008v-.008l.004-.004v-.008l.004-.004v-.008l.004-.004v-.008l.004-.004.004-.008v-.004l.008-.008v-.008l.02.012v.008l-.008.004v.004l-.004.008-.004.004v.008l-.004.004v.008l-.004.008v.004l-.004.008v.008l-.004.004v.008l-.004.008v.016l-.004.004v.016l-.004.008v.016l-.004.012v.027l-.004.008v.012l-.012-.012zm0 .02h-.012V4.07zm.086-.008l.023-.008-.012.016h-.094v-.02h.094l-.012.016zm.023-.008l.004.016h-.016l.008-.016zm.02-.18l.012.012-.004.004v.008l-.008.008v.004l-.004.004v.008l-.004.008-.004.004v.008l-.004.004v.004l-.004.008v.012l-.004.004v.012L7.18 4v.047l.004.004v.008l.004.004-.023.012v-.012l-.004-.004v-.016l-.004-.004v-.055l.004-.008v-.004l.004-.004v-.008l.008-.004v-.008l.004-.008v-.008l.004-.004.004-.008v-.004l.004-.004.004-.008v-.004l.004-.008v-.004h.008l.004-.008zm0-.051l.012-.008.004.004.004.008v.004h.004v.008h.004v.008l.004.004v.008l-.004.004v.008H7.23v.004l-.004.004v.004h-.004v.004l-.004.004-.016-.012v-.004l.008-.008v-.004h.004v-.008h.004v-.004h-.004v-.004l-.004-.004v-.008h-.004v-.004h-.004zm-.277-.734l.02.012-.008.016-.004.012-.008.031v.094l.004.02.008.02v.02l.008.02.023.07.012.02.008.023.016.023.012.023.012.027.012.02.047.082.016.023.02.027.016.027.059.082.02.031-.016.012-.02-.023-.023-.031-.02-.027-.02-.031-.016-.023-.016-.027-.02-.027-.047-.082-.012-.023-.016-.027-.012-.02-.012-.023-.012-.027-.008-.023-.012-.023-.016-.039-.016-.047-.004-.02-.004-.023v-.02l-.004-.02v-.059l.004-.016.008-.02.004-.016.008-.016zm1.152-.273h.023l-.012.012h-.289l-.055.004h-.051l-.051.004-.047.004-.047.008-.086.008-.039.008-.043.008-.039.008-.07.016-.035.012-.031.008-.062.023-.023.008-.027.016-.027.012-.02.016-.02.012-.02.016-.047.047-.012.016-.012.02-.02-.012.016-.02.012-.016.016-.02.016-.016.059-.047.02-.012.023-.016.027-.016.027-.012.035-.012.027-.008.035-.016.035-.012.035-.008.039-.008.035-.012.043-.004.086-.016.043-.004.051-.004.047-.008.051-.004h.047l.055-.004h.055l.055-.004h.184l-.016.012zm.023 0v.012h-.012zm-.023-.047l.016-.012v.035h.004v.023h-.02v-.047l-.004-.004V2.77v.004zm.016-.012v.004zm-.023-.008l.016.012v-.012.004h.004v.004l-.016.016v-.008h-.004zm0 .012l-.008-.004.008-.008v.016zm.016 0l-.016-.012h.008l.008.016zm-.008-.012h.02l-.012.016zm0 0\" class=\"sr-B\"/><path d=\"M6.41 2.859c.07 0 .121.055.121.121s-.051.129-.121.129-.121-.055-.121-.125c0-.035.012-.066.035-.09s.055-.031.086-.031zm0 0\" class=\"sr-C\"/><path d=\"M6.543 2.984h-.02c0-.043-.023-.082-.059-.102-.016-.008-.035-.012-.055-.012v-.02c.047 0 .09.023.113.059.016.023.02.047.02.074zm-.133.133v-.02c.043 0 .082-.023.102-.059.008-.02.012-.039.012-.055h.02c0 .043-.023.086-.059.113-.023.012-.047.02-.074.02zm-.133-.133h.02c0 .039.023.082.063.098.016.012.031.016.051.016v.02c-.047 0-.086-.023-.113-.059-.012-.023-.02-.051-.02-.074zm.133-.137v.023c-.039 0-.082.027-.102.063a.12.12 0 0 0-.012.051h-.02c0-.043.02-.086.063-.113.02-.012.043-.02.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M6.652 2.781c.066 0 .125.055.125.125s-.059.117-.125.117-.121-.051-.121-.117.051-.129.121-.129zm0 0\" class=\"sr-C\"/><path d=\"M6.785 2.906h-.02c0-.043-.027-.086-.062-.105-.016-.008-.031-.012-.051-.012v-.02c.047 0 .09.023.117.063a.15.15 0 0 1 .02.074zm-.133.133v-.02c.039 0 .078-.027.098-.062.012-.016.016-.035.016-.051h.02a.13.13 0 0 1-.062.109c-.02.016-.043.02-.07.023zm-.133-.133h.02c0 .039.023.082.063.102.016.008.031.012.051.012v.02c-.047 0-.09-.023-.113-.062-.012-.023-.02-.047-.02-.07zm.133-.137v.02c-.039 0-.082.023-.102.063-.008.016-.012.035-.012.055h-.02c0-.051.023-.098.063-.117.023-.016.047-.02.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M6.684 2.887c.012.016.027.031.039.047-.195.109-.277.223-.258.336.004.02.063.23.195.637a1.22 1.22 0 0 1 .199.168c-.004.008.016.027.012.031.012.063-.059.047-.102.035-.023-.062-.09-.121-.133-.152-.008-.004-.039-.02-.039-.027l-.203-.633c-.062-.199.07-.34.289-.437zm0 0\" class=\"sr-D\"/><path d=\"M6.727 2.945l-.012-.02v.016h-.004v-.004h-.004v-.004l-.004-.004h-.004v-.004l-.004-.004v-.004h-.004v-.004h-.004V2.91l-.008-.008v-.004h-.004l.016-.016.004.004h.004v.008h.004v.004h.004v.004l.008.008v.004h.004v.004h.004v.004l.004.004zm.004-.02l.004.012-.008.008zm-.254.344l-.02.004v-.078l.016-.047.004-.008.004-.012.008-.012.008-.008.004-.016.02-.02.008-.012.012-.012.012-.008.023-.023.008-.012.031-.016.012-.012.016-.008.016-.012.02-.012.016-.008.016-.012.008.02-.02.008-.012.012-.02.008-.016.012-.016.008-.012.008-.016.008-.012.012-.016.008-.012.012-.012.008-.008.008-.012.008-.012.012-.008.012-.008.008-.016.023-.004.008-.004.012-.004.008-.004.012-.004.008-.004.012v.012l-.004.008v.063zm0 0zm.188.629l-.012.016-.004-.004-.012-.039-.035-.105-.008-.031-.012-.031-.012-.027-.008-.031-.016-.055-.008-.023-.008-.027-.008-.02-.008-.027-.016-.039-.004-.02-.008-.02-.004-.016-.004-.02-.004-.016-.008-.023v-.012l-.008-.008v-.012l-.004-.008v-.016h-.004v-.008h.02v.008l.004.004v.008l.004.008v.008l.008.023.004.016.004.012.004.016.008.02.004.016.008.039.008.02.004.02.008.02.008.027.008.023.004.023.012.027.008.027.012.031.008.031.023.063.008.035.012.039.023.07-.004-.004zm-.012.016l-.004-.004zm.215.168l-.012-.012v.012l-.023-.023-.008-.004-.008-.008-.004-.008-.004-.004-.008-.004-.027-.027-.016-.008-.008-.008-.016-.008-.008-.008-.008-.004-.004-.008-.012-.004-.008-.004-.004-.008-.008-.004-.008-.008-.012-.004-.008-.008-.008-.004.012-.016.012.008.008.004h.008l.016.016.008.004.008.008.008.004.008.008.008.004.004.008.012.008.004.004.008.004.02.02.008.004.035.035.008.004.004.008.004.004.008.004.008.008.004.008v.012zm0-.012l.008.004-.008.008zm.012.031l-.02.004.004-.008v.004h-.004v.004-.004l-.004-.004v-.004h-.004v-.027l.016.012v-.004h.004v.004l.004.004v.004l.004.008v.012l-.004.004.004-.012zm-.02.004v-.004l.004-.004-.004.012zm-.098.035l.02-.008-.008-.004h.008l.004.004h.012l.008.004h.047v-.004h.004v-.027l.02-.004v.031l-.004.004v.004l-.004.004h-.004l-.004.004h-.008l-.004.004h-.059l-.008-.004h-.008l-.008-.004h-.008l-.008-.008zm.004.008h-.004v-.008zm-.133-.152l.012-.02.004.008h.004l.004.004h.004l.004.008.008.004.012.012h.004l.004.008.004.004v.008l.008.004.039.039.012.023.008.008v.008l.008.004v.008l.004.008v.004l-.02.008v-.004l-.008-.016v-.004l-.008-.004v-.004l-.004-.004-.004-.008-.008-.008-.004-.008-.004-.004-.004-.008-.008-.008v-.004l-.02-.02-.008-.004-.008-.008h-.004l-.004-.004h-.004l-.004-.008h-.004l-.004-.008h-.004l-.004-.004zm.012-.02l.004.008-.004-.004zm-.055-.012l.02-.008.004.004h.004v.004h.004v.004h.008v.004h.004l.004.004h.004l-.012.02-.004-.004h-.004v-.004h-.008v-.004h-.004l-.004-.004h-.004v-.004h-.004v-.004h-.004v-.004H6.59zm-.199-.637l.016-.008.004.02.008.02.004.016.008.023.004.02.008.016.008.02.004.02.008.02.004.02.008.023.004.016.004.02.016.039.004.02.008.02.004.023.016.039.004.02.023.059.004.023.012.02.004.02.008.02.008.023.016.039.008.027-.02.004-.008-.02-.004-.023-.016-.039-.004-.023-.004-.02-.008-.023-.008-.02-.004-.02-.008-.02-.008-.023-.004-.02-.008-.02-.004-.02-.012-.02-.008-.02-.004-.02-.008-.023-.008-.02-.004-.016-.016-.039-.004-.02-.008-.02-.004-.016-.008-.023-.004-.02-.008-.02-.004-.016-.008-.02-.008-.016-.004-.02zm.301-.445l-.016.012h.012l-.02.012-.02.008-.02.012-.016.008-.02.008-.016.008-.02.012-.016.012-.016.008-.012.012-.016.012-.023.023-.012.016-.012.012-.008.012-.008.016-.008.012-.008.016-.008.012-.008.016-.004.012v.016l-.004.016v.016l-.004.016v.051l.004.016v.02l.008.016-.02.008-.004-.023v-.016l-.008-.02v-.074l.004-.02.004-.016.004-.012.008-.016.008-.012.008-.023.012-.012.008-.012.012-.016.008-.012.012-.016.016-.012L6.488 3l.02-.012.012-.012.016-.008.016-.016.02-.008.012-.012.023-.008.02-.012.016-.008.039-.023.012.004zm-.012-.004l.008-.004.004.008zm0 0\" class=\"sr-B\"/><path d=\"M5.922 4.352l-.012.043c-.055.008-.105.012-.145.004.066-.066.121-.078.152-.047zm0 0\" class=\"sr-D\"/><path d=\"M5.898 4.391l.008-.043.023.004-.008.043-.008.008-.012-.012zm.023 0v.008h-.008zm-.16.004l.012.012-.004-.02.004.004h.082l.004-.004h.02l.004-.004h.016l.004-.004h.004l.004.02h-.016l-.008.004h-.008l-.008.004h-.027v.004H5.77l-.008-.02zm.004.02l-.023-.008.02-.012zm.164-.062l-.023-.004.004.012v-.004h-.012v-.004h-.012l-.004-.004h-.023v.004h-.012l-.008.008h-.008l-.027.027-.016.008h-.004l-.008.008-.004.008-.016-.016.008-.004.004-.008.008-.004.004-.008.004-.004.008-.004.004-.004h.008l.008-.008h.004l.004-.004h.008l.004-.008h.016l.004-.004h.012l.008-.004h.023l.004.004h.008l.004.004h.004l.012.012v.008zm0-.008v.008zm-.012.008h.008-.012zm.008-.012l.004.004v.008zm0 0\" class=\"sr-B\"/><path d=\"M5.91 4.258c.039.008.043.016.055.02.02 0 .051 0 .066-.02.082-.043.082.039.051.102-.02.047-.012.102.012.141s.02.063 0 .078l-.031.023c-.02.023-.035.02-.039-.012-.078-.035-.102-.109-.125-.176-.035-.094-.156-.117.016-.152zm0 0\" class=\"sr-D\"/><path d=\"M5.969 4.266v.02h-.016v-.004h-.008l-.004-.004h-.008l-.004-.004h-.016l-.008-.004.004-.02h.012l.004.004h.008l.004.004h.008v.004h.016v.004zm.059-.012l.012.02V4.27l-.004.004h-.008v.004h-.004l-.004.004h-.004l-.004.004h-.043v-.02h.047l.004-.004h.004v-.004h.004l.004-.004zm0 0zm.063.109l-.02-.008v-.004l.008-.008v-.012l.004-.004v-.012l.004-.004v-.047h-.004v-.004h-.004v-.004h-.023l-.008.004-.004.004-.008.004-.012-.02.016-.008h.008l.008-.004h.035l.008.008v.004l.004.008v.008l.004.004v.051l-.004.004v.008l-.004.008v.004l-.004.008v.004zm.012.129l-.023.008v-.008l-.004-.004V4.48l-.004-.004v-.004l-.004-.004v-.012l-.004-.004v-.016l-.004-.004v-.047l.004-.004v-.004l.004-.008v-.008l.004-.004.023.008-.004.004v.012l-.008.004v.016l-.004.004v.039l.004.004v.012l.008.004v.008h.004v.004l.004.004v.008h.004zm0 .09l-.012-.02h.004v-.004h.004v-.031l-.004-.004v-.008l-.004-.004v-.004l-.008-.004V4.5l.02-.012v.004l.004.004V4.5l.004.004v.004l.004.004v.008l.004.004v.035l-.004.004v.004h-.004v.004h-.004v.004l-.004.004zm0 0zm-.035.023l-.016-.016v-.004h.004l.004-.004h.004v-.004h.008v-.004h.004V4.57h.008v-.004h.008l.012.016h-.004v.004H6.09v.004h-.008l-.004.004h-.004v.004H6.07l-.004.004zm-.016-.016v-.004zm-.035 0l.008-.016.008.008v.012h.004v.004h.008v-.004h.004V4.59h.004l.016.012-.008.008-.008.004h-.004v.004h-.02l-.004-.004v-.004l-.004-.004v-.008h-.004v-.016l.004.008zm.008-.016h.008v.008zm-.141-.16l.02-.008.004.004v.008l.004.004v.008l.004.008v.004l.008.008.004.008v.008l.004.004.004.008v.004l.008.008v.004l.004.004V4.5l.004.008.004.004.004.008v.004l.008.004.004.008.012.012h.004l.004.004.016.008.004.004h.008l.004.004-.008.023-.008-.008-.008-.004-.004-.004-.016-.008-.004-.004-.004-.008-.004-.004-.008-.004-.004-.004-.004-.008-.004-.004-.004-.008-.008-.008-.004-.008-.004-.004-.004-.008v-.008l-.004-.004v-.008l-.008-.004v-.008l-.004-.004v-.004l-.004-.008v-.008l-.004-.004-.004-.008v-.004l-.004-.008V4.41zm.027-.168v.02l-.023.008h-.012l-.012.004h-.008l-.008.008h-.004v.004l-.004.004v.004h-.008v.004l.012.012.004.008.008.008.008.004v.008l.008.004.016.031.008.008.004.008v.012l.004.008-.02.004v-.008l-.012-.023-.008-.004-.004-.008v-.004l-.012-.012-.004-.008V4.34l-.016-.008-.004-.008V4.32l-.008-.016v-.012l.004-.008v-.004l.008-.004h.004l.012-.008.016-.008h.008l.016-.008.016-.004zm0 0zm0 .02v-.02zm0-.02zm0 0\" class=\"sr-B\"/><path d=\"M5.941 4.262c.07.023.078-.012.117-.012-.016.102-.031.156-.137.102-.062-.031-.137.012-.148.047-.008.012-.043-.012-.055-.043-.051-.113.137-.129.223-.094zm0 0\" class=\"sr-D\"/><path d=\"M6.07 4.254l-.02-.004.012.012h-.023v.004h-.004l-.004.004h-.004l-.008.004h-.004v.004H6l-.004.004h-.039l-.008-.004h-.008l-.004-.004.004-.02h.008l.004.004h.008l.004.004h.027l.004-.004H6l.004-.004h.012l.004-.004h.004l.004-.004h.012l.004-.004h.008l.012.012zm-.008-.012h.012v.012zm-.145.117l.008-.02.012.008.008.004h.008l.008.008h.008l.008.004h.035l.004-.004.004-.008.004-.004v-.004l.004-.004.004-.008v-.004l.004-.008v-.004l.004-.004v-.012l.004-.008v-.008l.004-.008v-.016l.004-.012.02.004v.012l-.004.008v.016l-.004.012v.008l-.004.008v.008l-.004.008v.008l-.008.016v.004l-.008.004-.004.008-.012.012H6.02l-.008.004h-.004L6 4.391h-.031l-.016-.008h-.008l-.008-.004-.023-.016zm-.137.043l-.02-.008h.004v-.004h.008v-.008l.004-.004v-.004l.008-.004h.004l.004-.008.004-.004h.008l.004-.004h.004l.004-.008h.008l.004-.004h.008l.004-.004h.008l.008-.004h.043l.008.004h.004l.008.004h.004l-.008.02h-.008l-.004-.004h-.008l-.008-.004h-.035l-.004.004H5.84l-.008.004h-.004l-.004.008H5.82l-.008.004h-.004l-.004.004h-.004v.004l-.004.004h-.004v.008h-.004v.004h-.004v.004zm-.07-.043l.02-.004v.008h.004v.008h.004v.004l.004.004h.004v.004l.008.004h.004v.004h.008v.004l.016.012v.004l-.008.004h-.02V4.41H5.75l-.008-.004h-.004v-.004l-.008-.008h-.004v-.008h-.004v-.004h-.004v-.004h-.004v-.012h-.004zm.238-.105l-.008.02-.008-.004h-.008l-.008-.004h-.012l-.008-.004h-.102l-.016.008h-.008l-.008.004-.008.008-.008.004v.004l-.008.004-.004.004v.004l-.008.008v.031l.008.008.004.008-.02.012-.008-.023v-.031l.004-.012.016-.031.008-.004.008-.008.016-.008.012-.004h.008l.012-.004h.02l.012-.004h.066l.012.004h.008l.012.004.008.004h.008zm0 .008v-.008zm0 0\" class=\"sr-B\"/><path d=\"M7.977 2.496c.066 0 .125.055.125.121s-.059.125-.125.125a.12.12 0 0 1-.121-.125c0-.066.055-.121.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M8.109 2.617h-.02c0-.039-.027-.086-.066-.102-.016-.008-.031-.012-.047-.012v-.02c.043 0 .086.023.113.063.012.02.02.047.02.07zm-.133.137V2.73c.039 0 .078-.023.098-.059.012-.016.016-.035.016-.055h.02c0 .047-.02.09-.062.113-.02.016-.047.023-.07.023zm-.133-.137h.02c0 .039.027.086.066.102.012.008.031.012.047.012v.023c-.047-.004-.09-.027-.113-.066-.012-.02-.02-.043-.02-.066zm.133-.133v.02c-.039 0-.082.023-.102.063-.008.016-.012.031-.012.051h-.02c0-.043.023-.09.063-.113.023-.012.047-.02.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M7.727 2.496c.066 0 .121.051.121.121s-.055.125-.121.125a.12.12 0 0 1-.121-.125c0-.066.051-.121.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M7.859 2.617h-.02c0-.039-.027-.082-.062-.102a.12.12 0 0 0-.051-.012v-.02c.047 0 .09.023.113.063.012.02.02.047.02.07zm-.133.137V2.73c.039 0 .078-.023.098-.059.008-.016.012-.035.016-.055h.02c0 .047-.027.09-.066.113-.02.016-.043.023-.07.023zm-.133-.137h.02c0 .039.023.086.063.102.016.008.031.012.051.012v.023c-.047 0-.09-.027-.113-.066-.012-.02-.02-.043-.02-.066zm.133-.133v.02c-.039 0-.082.023-.102.063-.008.016-.012.031-.012.051h-.02c0-.043.023-.086.059-.113.023-.012.047-.02.074-.02zm0 0\" class=\"sr-B\"/><path d=\"M7.477 2.516c.066 0 .121.055.121.121s-.055.125-.121.125a.12.12 0 0 1-.121-.125c0-.066.051-.121.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M7.609 2.637h-.02c0-.039-.027-.078-.062-.102a.12.12 0 0 0-.051-.012v-.02c.043 0 .086.023.113.063.012.02.02.047.02.07zm-.133.137v-.02c.039 0 .078-.027.098-.062.012-.016.016-.035.016-.055h.02c0 .047-.023.09-.062.117-.02.012-.047.02-.07.02zm-.133-.137h.02c0 .047.027.086.066.105.012.008.031.012.047.012v.02c-.047 0-.09-.027-.113-.066-.012-.02-.02-.043-.02-.066zm.133-.133v.02c-.039 0-.082.027-.102.063a.12.12 0 0 0-.012.051h-.02c0-.047.027-.09.066-.113.02-.012.043-.02.066-.02zm0 0\" class=\"sr-B\"/><path d=\"M7.246 2.559c.066 0 .121.059.121.125s-.055.121-.121.121-.125-.055-.125-.121.063-.125.125-.125zm0 0\" class=\"sr-C\"/><path d=\"M7.379 2.688h-.02c0-.047-.027-.086-.066-.105-.016-.008-.031-.012-.047-.012v-.02c.043 0 .086.023.113.063.012.02.02.047.02.07zm-.133.129v-.02c.039 0 .078-.023.102-.062.008-.02.012-.035.012-.051h.02c0 .039-.027.086-.066.109-.02.016-.043.02-.07.02zm-.133-.133h.02c0 .039.023.078.059.098.016.008.035.012.055.012v.02c-.047 0-.09-.02-.113-.059-.016-.023-.02-.047-.02-.07zm.133-.137v.02c-.039 0-.086.027-.102.066-.008.016-.012.031-.012.051h-.02c0-.051.023-.098.066-.121.02-.012.043-.02.063-.016zm0 0\" class=\"sr-B\"/><path d=\"M5.727 3.195c.031 0 .063.016.086.039s.035.055.035.086c0 .07-.055.125-.121.125a.12.12 0 0 1-.121-.125c0-.031.012-.062.035-.086s.055-.039.086-.039zm0 0\" class=\"sr-C\"/><path d=\"M5.859 3.32h-.02c0-.039-.027-.082-.062-.102a.12.12 0 0 0-.051-.012v-.02c.043 0 .09.02.113.059.012.023.02.047.02.074zm-.133.133v-.02c.039 0 .078-.023.098-.059.008-.016.012-.035.016-.055h.02c0 .047-.027.09-.066.113-.02.016-.043.02-.07.02zm-.133-.133h.02c0 .039.023.086.063.102.016.008.031.012.051.012v.02c-.047 0-.086-.02-.113-.059-.012-.023-.02-.047-.02-.074zm.133-.133v.02c-.039 0-.082.023-.102.059-.008.016-.012.035-.012.055h-.02a.15.15 0 0 1 .059-.117c.023-.012.047-.02.074-.02zm0 0\" class=\"sr-B\"/><path d=\"M5.938 3.063c.066 0 .121.055.121.121a.12.12 0 0 1-.121.125c-.07 0-.121-.051-.121-.117 0-.035.012-.066.035-.09s.051-.035.086-.035zm0 0\" class=\"sr-C\"/><path d=\"M6.07 3.188h-.02c0-.043-.027-.086-.062-.102a.12.12 0 0 0-.051-.012v-.02c.043 0 .086.02.113.059.012.023.02.047.02.074zm-.133.133v-.02c.063 0 .113-.051.113-.113h.02c0 .043-.023.086-.059.109-.023.016-.051.023-.074.023zm-.133-.133h.02c0 .039.023.078.059.098.016.008.035.012.055.012v.023c-.047-.004-.09-.023-.113-.062-.016-.023-.02-.047-.02-.074zm.133-.137v.02c-.043 0-.082.023-.102.063a.12.12 0 0 0-.012.051h-.02c0-.047.023-.094.059-.117.023-.012.047-.02.074-.02zm0 0\" class=\"sr-B\"/><path d=\"M6.176 2.945c.066 0 .121.063.121.129s-.055.125-.121.125-.121-.059-.121-.125c0-.035.012-.066.035-.09s.055-.035.086-.035zm0 0\" class=\"sr-C\"/><path d=\"M6.309 3.074h-.02c0-.039-.023-.086-.062-.102-.016-.008-.031-.012-.051-.016v-.02c.047.004.086.023.113.063a.15.15 0 0 1 .02.074zm-.133.133v-.02c.039 0 .082-.027.102-.059.008-.02.012-.035.012-.055h.02c0 .043-.023.086-.062.113-.02.016-.043.02-.07.02zm-.133-.133h.02c0 .039.027.078.063.098.016.012.035.016.055.016v.02c-.047 0-.09-.023-.117-.062-.012-.023-.02-.047-.02-.07zm.137-.137v.02a.12.12 0 0 0-.102.063c-.008.016-.012.035-.012.055h-.02c0-.047.02-.09.059-.117.023-.012.047-.02.074-.02zm0 0\" class=\"sr-B\"/><path d=\"M5.563 3.398c.035 0 .066.012.086.035a.13.13 0 0 1 .035.09c0 .066-.051.125-.121.125s-.121-.062-.121-.129.055-.121.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M5.695 3.523h-.02c0-.039-.027-.086-.062-.102-.016-.008-.031-.012-.051-.012v-.02c.047 0 .086.02.113.059.016.023.02.047.02.074zm-.133.133v-.02c.043 0 .082-.023.102-.059.008-.016.012-.035.012-.055h.02c0 .047-.023.09-.062.113-.02.016-.043.02-.07.02zm-.133-.133h.02c0 .039.023.082.063.102a.12.12 0 0 0 .051.012v.02c-.043 0-.086-.023-.113-.062-.012-.02-.02-.047-.02-.07zm.133-.133v.02c-.039 0-.078.023-.098.059-.012.016-.016.035-.016.055h-.02c0-.047.023-.09.063-.113.023-.016.047-.02.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M7.883 5.543l-.437.258-.469-.199.438-.258zm0 0\" class=\"sr-D\"/><path d=\"M7.422 5.352l-.441.258-.008-.02.438-.258h.012zm-.012-.02h.012zm.473.219l-.469-.199.012-.02.465.199v.02zm.008-.02l.02.012-.02.008zm-.449.262l.441-.262.008.02-.437.258h-.012zm.012.016l-.004.004h-.008zm-.469-.219l.469.199-.008.02-.469-.199v-.02zm-.008.02l-.02-.008.02-.008v.02zm0 0\" class=\"sr-B\"/><path d=\"M7.422 5.43c.113-.008.207.051.215.125s-.086.141-.195.148c-.117.008-.211-.047-.215-.125-.004-.07.082-.141.195-.148zm0 0\" class=\"sr-H\"/><path d=\"M7.645 5.559h-.02v-.016l-.004-.004v-.012l-.004-.008v-.004l-.008-.004-.004-.004-.004-.008-.016-.016-.008-.004H7.57l-.008-.004-.004-.004-.012-.004-.008-.004h-.004l-.008-.004H7.52l-.012-.008h-.02l-.008-.004h-.016l-.012-.004h-.02l-.008.004v-.02h.07l.008.004.012.004h.008l.008.004.012.004.047.023.008.008.008.004.02.02.008.016.004.004.004.008v.008l.008.016v.016zm-.203.16v-.02l.008-.004h.016l.012-.004h.008l.008-.004H7.5l.012-.008h.008l.055-.027.012-.012.008-.004.004-.008v-.004l.008-.008.004-.008.004-.004v-.004l.004-.004v-.012l.004-.008v-.023l.02-.004v.035l-.004.008v.004l-.008.012v.004l-.004.008-.008.008v.004l-.008.008-.004.008-.012.012-.008.004-.008.008-.016.008-.008.008-.016.008-.012.004H7.52l-.008.004-.012.004h-.008l-.008.004h-.008l-.012.004h-.02zm-.227-.137h.02v.012l.004.004v.008l.004.004.004.008v.004l.008.004.004.004v.008l.008.004.004.008.008.004.008.008.008.004.004.004h.008l.008.004h.008l.008.004.012.004h.008l.008.004h.02l.008.004h.047v.02h-.07l-.008-.004h-.008l-.012-.004H7.32l-.008-.008h-.008l-.012-.004-.012-.012-.016-.008-.004-.004-.008-.004-.02-.02v-.008l-.004-.004-.008-.016-.004-.004v-.02zm.207-.16l.004.02h-.031l-.008.004h-.012l-.016.008h-.012l-.008.008-.012.004-.008.004-.004.004-.016.008-.004.004-.008.004-.012.012-.004.008-.008.004-.004.004-.008.016-.004.004v.008l-.008.004v.016l-.004.008v.012l-.02.004v-.027l.004-.008v-.008l.004-.008v-.008l.008-.008.004-.008.004-.004.004-.008.008-.008.004-.008.008-.004.008-.008.008-.004.008-.008.016-.008.008-.008.016-.008.016-.004h.008l.008-.004h.012l.008-.008h.012l.008-.004h.023l.012-.004zm0 0\" class=\"sr-B\"/><path d=\"M6.449 5.418l.477.18-.395.262c-.102-.031-.18-.383-.082-.441zm0 0\" class=\"sr-D\"/><path d=\"M6.922 5.605l-.477-.18.008-.02.473.18v.02zm.004-.02l.02.008-.02.012zm-.398.266l.391-.262.008.016-.391.266h-.008zm.008.023h-.008zm-.082-.469l-.008.02h.008l-.008.004-.016.016-.008.016-.008.031v.031l-.004.016v.055l.004.016v.02l.008.02.008.039.004.012v.023l.012.02.004.012.016.031.031.047.012.008.008.004.004.004.008.004-.004.023-.012-.008-.012-.004-.012-.008-.016-.023-.012-.012-.008-.012-.016-.031-.008-.02-.008-.016-.008-.02-.004-.016-.008-.02-.004-.016-.004-.02-.004-.023v-.016l-.008-.02v-.105l.008-.016.008-.023.023-.035.012-.008zm-.012 0h.012zm.008.008l.004-.008zm-.004-.008h.012zm0 0\" class=\"sr-B\"/><path d=\"M6.457 5.504c.113-.012.207.039.219.117s-.078.148-.191.16c-.074.008-.121-.059-.125-.125-.012-.07.02-.141.094-.148zm0 0\" class=\"sr-G\"/><path d=\"M6.684 5.617h-.02v-.008l-.004-.008v-.004l-.008-.016-.008-.008-.004-.008-.004-.004-.008-.004-.008-.008-.016-.008-.004-.004-.016-.008h-.008l-.012-.008h-.008l-.008-.004h-.016l-.008-.004h-.074l-.004-.02h.078l.008.004h.008l.016.008h.008l.012.008.008.004h.012l.008.004.047.047.004.008v.012l.004.008v.004l.004.008v.008zm-.199.172v-.023h.02l.012-.004h.008l.012-.004.008-.004h.012l.016-.008h.008l.008-.008.016-.008.016-.016.004-.008.008-.004.004-.004.004-.008.008-.008.004-.008v-.008l.008-.004v-.016l.004-.012v-.02h.02v.035l-.004.004v.008l-.004.008-.004.004-.012.023-.012.012-.004.008-.008.008-.008.004-.008.008h-.008l-.008.008-.016.008h-.008l-.008.008-.012.004h-.008l-.008.004-.012.004H6.52l-.008.004h-.016l-.012.004h-.008zm-.137-.137h.02v.016l.004.004v.008l.004.008v.004l.004.004v.004l.004.008.004.004v.008l.008.004.004.004v.004l.004.004h.004l.004.008h.004l.008.008h.008l.004.004h.004l.004.004h.004l.004.004h.027v.02h-.039l-.008-.004h-.008l-.008-.004-.004-.004-.008-.004-.008-.008-.008-.004-.02-.02V5.73l-.004-.004-.004-.008v-.004l-.008-.008v-.008l-.004-.004-.004-.008v-.004l-.004-.008v-.012l-.008-.004v-.008zm.109-.16v.02h-.004l-.008.004H6.43l-.008.008-.008.004-.008.008h-.004l-.004.004v.004l-.008.004v.004h-.004v.008l-.008.008v.016l-.004.008v.008l-.004.004v.047h-.02v-.051l.004-.004v-.008l.004-.004v-.004l.008-.016v-.008l.004-.004.004-.008.004-.004v-.004l.008-.004.004-.004h.004l.008-.008.008-.004.004-.004h.008l.008-.004h.012l.008-.004h.008zm0 0\" class=\"sr-B\"/><path d=\"M7.949 5.625c.035 0 .066.031.066.066s-.031.066-.066.066-.062-.031-.062-.07c0-.031.027-.062.063-.062zm0 0\" class=\"sr-C\"/><path d=\"M8.023 5.691h-.02V5.68L8 5.676v-.004l-.004-.008V5.66h-.004v-.004h-.004v-.004h-.004l-.004-.004-.008-.004h-.004l-.004-.004h-.012v-.02h.02l.008.008h.004l.008.004v.004h.004v.004H8v.008h.004v.004l.004.004v.004h.004v.004l.004.004v.012l.004.004v.004zm-.074.074v-.02h.008l.008-.004h.004l.004-.004h.004v-.004h.004V5.73h.004v-.004l.008-.008v-.004l.004-.004v-.02h.023v.016l-.004.004v.008l-.004.004v.004l-.008.008H8v.008h-.008l-.008.008-.008.004h-.012v.004h-.012v.004h-.004zm-.074-.074h.02v.02h.004v.004l.004.004v.004l.004.004h.004v.004h.004v.004h.008l.004.004h.004v.004h.02v.023h-.016l-.004-.004h-.008v-.004h-.008l-.004-.004-.008-.004-.004-.004h-.004v-.004h-.004l-.004-.008-.004-.004v-.004l-.004-.008v-.008l-.004-.004zm.074-.074v.02h-.016l-.004.004h-.004v.004h-.004v.004h-.008v.004H7.91v.004h-.004v.004l-.004.008v.008h-.004v.016h-.02v-.023l.004-.004V5.66h.004v-.008l.008-.008v-.004h.008v-.004l.004-.004h.004v-.004h.012v-.004h.008v-.004h.02zm0 0\" class=\"sr-B\"/><path d=\"M6.973 5.68c.039 0 .066.031.066.066s-.031.066-.066.066-.066-.031-.066-.066.031-.066.066-.066zm0 0\" class=\"sr-C\"/><path d=\"M7.047 5.746h-.02V5.73l-.004-.004v-.004l-.004-.004v-.008l-.008-.008h-.004v-.004h-.004v-.004h-.008l-.004-.004h-.016v-.023h.012v.004h.016v.004h.008v.004h.004v.004h.008l.004.004.004.008h.004l.004.004.004.008v.004h.004v.016l.004.004v.016zm-.074.074v-.02h.02v-.004h.004L7 5.793h.008v-.004h.004v-.004h.004v-.004l.004-.004V5.77h.004v-.008l.004-.004V5.75h.02v.016l-.004.004v.004l-.004.004v.008h-.004v.008h-.004l-.004.004h-.004v.004h-.008l-.004.004h-.004v.004H7v.004h-.008l-.004.004h-.016zm-.074-.07h.023v.016h.004v.008h.004v.004h.004v.004h.004v.008h.004l.004.004h.004v.004h.008v.004h.016v.02h-.023v-.004h-.008v-.004h-.004l-.008-.008h-.004v-.004h-.004v-.008h-.008v-.004H6.91v-.008l-.004-.004v-.004l-.004-.008V5.75zm.074-.078v.02h-.012v.004h-.012v.004h-.004l-.004.004v.004h-.004l-.004.004v.008l-.004.004v.004h-.004v.012l-.004.008v.008h-.02v-.02l.004-.004v-.008l.004-.004.004-.008v-.008h.008v-.004h.004l.008-.008h.004v-.004h.012l.004-.004h.012l.004-.004h.004zm0 0\" class=\"sr-B\"/><path d=\"M6.941 5.383c.035 0 .063.027.063.066s-.027.063-.062.063-.066-.027-.066-.062.027-.066.066-.066zm0 0\" class=\"sr-C\"/><path d=\"M7.016 5.449h-.023v-.016l-.004-.004v-.008l-.004-.004H6.98V5.41h-.004v-.004h-.004l-.004-.004h-.004l-.004-.004h-.008v-.004h-.008v-.02h.016v.004h.004l.008.004h.004l.004.004h.004v.004l.008.004.004.004.004.008.008.004v.008h.004v.008l.004.004zm-.074.074V5.5h.02v-.004h.004l.004-.004h.004v-.004h.004v-.004h.004V5.48l.008-.008v-.008h.004v-.02h.02v.023l-.004.004-.004.008v.004H7l-.004.008h-.004v.004h-.008V5.5H6.98v.008h-.004l-.004.004h-.008l-.008.004h-.012zm-.074-.074h.02v.016l.004.004v.008h.004v.004l.004.004v.004h.004v.004h.004v.004h.004l.004.004h.012l.004.004h.008v.02h-.016l-.008-.004H6.91l-.008-.004-.004-.004h-.004l-.004-.004-.004-.008h-.008v-.004l-.004-.008v-.004h-.004v-.008l-.004-.004zm.074-.074v.02h-.016v.004h-.012l-.004.004h-.004v.004h-.004v.004h-.004v.004h-.004v.004l-.004.004v.004l-.004.004v.016h-.02v-.023h.004V5.41h.004v-.008h.004v-.004h.004l.004-.004v-.004h.008v-.004h.004l.004-.004h.008v-.004h.012l.004-.004zm0 0\" class=\"sr-B\"/><path d=\"M7.945 5.34c.035 0 .066.031.066.066s-.031.063-.066.063-.062-.027-.062-.062.031-.066.066-.066zm0 0\" class=\"sr-C\"/><path d=\"M8.02 5.406H8v-.016h-.004v-.008l-.004-.004v-.004h-.004v-.004h-.004v-.004l-.004-.004h-.004l-.004-.004h-.004l-.008-.004h-.012v-.02h.02l.004.004h.008l.004.004.008.004.004.004H8v.004h.004v.004h.004v.008h.004v.008l.004.004v.008l.004.004zm-.074.074v-.02h.023v-.004h.004l.008-.008v-.004h.004v-.004h.004v-.004l.004-.008v-.008h.004v-.016h.023v.02l-.004.004v.008l-.027.027h-.004v.004H7.98v.004h-.008l-.004.004h-.02zm-.074-.074h.02v.012l.004.004v.004l.004.004v.008h.004l.004.004v.004h.004v.004h.004l.008.004h.004l.004.004h.016v.02h-.02l-.008-.004H7.91l-.004-.004-.008-.004v-.004l-.008-.008v-.004h-.004v-.008h-.004V5.43l-.004-.004V5.41l-.004-.004v-.004zm.074-.074v.02h-.012v.004h-.008l-.004.004h-.008v.008H7.91v.004l-.008.008v.008h-.004v.016h-.023v-.012l.004-.004v-.008l.004-.004v-.004h.004v-.008h.004v-.008h.004v-.004h.008v-.004l.004-.004.008-.004h.008l.004-.004h.02zm0 0\" class=\"sr-B\"/><path d=\"M6.219 4.762c.047-.016.121.094.141.09.023-.059-.023-.211-.109-.324-.059-.023-.062-.062-.074-.148-.004-.027-.055-.008-.055.039s-.008.074.004.113c.004.016 0 .031-.016.047.09.035.113.082.109.18zm0 0\" class=\"sr-D\"/><path d=\"M6.352 4.852l.02.004-.008.008h-.008l-.008-.004-.008-.008-.008-.004-.008-.008-.004-.008-.008-.004-.016-.016-.008-.004-.004-.008h-.004l-.008-.008H6.27l-.004-.004-.008-.004h-.004l-.008-.004h-.008l-.004-.004h-.008l-.008-.02h.027l.008.004h.004l.008.004.004.004h.004l.008.004.004.004h.004l.012.012v.004l.012.012.008.004v.004l.027.027h.004v.004h.008v.004zm.02.004l-.004.008h-.004l.008-.004zm-.125-.316l.008-.02.004.004.008.012.008.008.008.012.008.016.008.008.004.016.012.012.004.012.023.035.023.07v.012l.004.012v.012l.004.008v.008l.004.008v.066l-.004.008-.02-.004v-.008l.004-.004v-.074l-.004-.008V4.75l-.004-.012-.004-.008-.004-.012v-.012l-.012-.012-.016-.047-.008-.012-.004-.008-.008-.012-.008-.016-.008-.008-.008-.016-.008-.012-.004-.008-.02-.02.004.004zm.008-.02l.004.004zm-.09-.133h.02v.012l.004.008v.02l.004.004v.012l.004.008v.008l.004.004v.008h.004v.008l.004.004v.004h.004v.004h.004l.004.004v.004h.004l.004.004h.004l.004.004h.004l.004.004h.004l.008.004-.008.023h-.004l-.004-.004-.008-.004h-.004l-.004-.004h-.004l-.004-.008-.004-.004h-.004v-.004l-.012-.012v-.004l-.004-.004v-.004l-.004-.008v-.004l-.004-.004v-.004l-.004-.004v-.02l-.004-.008v-.012l-.004-.004v-.023l-.008-.012zm-.035.035h-.02v-.02l.008-.008v-.008h.004l.004-.008h.004l.004-.004.008-.004h.004l.004-.004h.023v.004h.004v.008l.004.004v.004h-.031v.004h-.004v.004h-.004v.004h-.004v.004l-.004.004v.016zm.008.113l-.02.004v-.012l-.004-.004v-.031h-.004v-.07h.02v.082l.004.004v.016l.004.004zm-.02.039l-.012.016v-.02l.004-.004v-.004h.004v-.008h.004v-.008l-.004-.004v-.004l.02-.008v.035h-.004v.008h-.004v.004h-.004v.004l-.004.008h-.004v-.016zm-.012.016l-.016-.008.016-.012zm.102.172h.02-.02v-.008l.004-.012v-.039l-.004-.008v-.012l-.004-.008v-.012l-.004-.004v-.008l-.004-.004-.004-.008v-.004l-.008-.004v-.004l-.008-.008-.008-.004-.004-.004-.008-.004h-.004l-.016-.016-.008-.004h-.008l-.008-.004.008-.02.008.004.012.004.008.004.004.004.023.012.004.004.008.004v.004l.012.012.004.008v.004l.008.004v.008l.004.008v.004l.008.008v.016l.004.004v.016l.004.008v.059zm.02 0h-.02l.008-.008zm-.02 0v-.008h.008zm0 0\" class=\"sr-B\"/><path d=\"M6.176 4.383c-.008.02-.012.035-.016.07 0 .02.012.039.027.059s.035.039.059.051c.016.012.031.035.047.063s.023.059.023.078c0 .07.016.137.047.148.023.004.031.004.047 0-.004-.012 0-.031-.012-.047-.016-.023-.027-.051-.027-.074s-.012-.035-.004-.066.02-.035.02-.055c-.008-.043-.039-.121-.086-.121s-.07-.008-.094-.07c-.004-.02-.02-.031-.023-.039zm0 0\" class=\"sr-D\"/><path d=\"M6.172 4.453l-.02-.004v-.023l.004-.004v-.02h.004v-.016h.004v-.008l.02.008v.008H6.18v.02l-.004.004v.031zm.02.055l-.016.016V4.52h-.004v-.008l-.004-.004v-.004h-.004v-.008H6.16v-.008l-.004-.004v-.016l-.004-.004v-.012h.02v.02h.004v.016h.004v.008h.004v.008h.004v.004h.004v.004zm.063.051l-.016.02v-.004H6.23V4.57h-.004v-.004h-.004l-.004-.004h-.004v-.004h-.004v-.004h-.004l-.004-.004v-.004l-.004-.004h-.004v-.004h-.004v-.004h-.004v-.004l-.008-.008.016-.016.004.004.004.008v.004h.004l.004.004v.004h.004l.008.008h.004v.004h.004v.004h.004l.008.008h.004v.004zm.047.063l-.02.008v-.004l-.004-.004v-.004l-.004-.004v-.004H6.27v-.004l-.004-.004v-.004h-.004v-.004l-.008-.008v-.004h-.008l-.004-.004h-.004l.012-.02h.004v.004h.004v.004h.004v.004l.008.008v.004h.004v.004h.004v.004l.004.004v.004l.004.004v.004h.004v.008h.004v.004h.004zm.023.086h-.02v-.016l-.004-.004v-.016h-.004V4.66h-.004v-.008h-.004v-.012h-.004v-.004l-.004-.004.02-.008v.008h.004v.008h.004v.012l.004.004v.008h.004v.012h.004v.02h.004zm-.02 0zm.059.137l-.004.02h-.008l-.004-.004-.004-.008v-.004l-.008-.004h-.004l-.004-.004v-.004h-.004v-.008l-.004-.004V4.82l-.004-.004v-.008l-.004-.004v-.012l-.004-.004v-.016l-.004-.008v-.031l-.004-.004v-.031h.02v.043l.004.004v.027l.004.004v.016l.004.008v.004l.004.004v.008l.004.004v.004l.008.008v.004h.004v.004h.004l.004.004zm.035.016l.02-.008-.012.012h-.008v.004h-.027l-.004-.004h-.008l.008-.02h.012v.004h.023v-.004l-.004.012zm.02-.008v.008h-.012l.008-.008zm-.035-.039l.016-.012h.004v.008h.004v.008h.004v.016l.004.004v.02l-.02.008v-.027l-.004-.004v-.016h-.004v-.004zm-.027-.078h.02v.016h.004v.016l.004.004v.004l.004.004v.004h.004v.008h.004v.004h.004v.008l-.016.012v-.004l-.004-.004v-.008h-.004v-.012h-.004v-.004l-.004-.004v-.004l-.004-.004v-.004l-.004-.008V4.75l-.004-.004zm.02 0zm-.023-.07l.02.004v.063l.004.004-.02.004v-.02l-.004-.004zm.02-.051h.02v.016h-.004v.012l-.004.004v.004l-.004.004v.004h-.004v.012h-.004v.004l-.02-.004V4.66h.004v-.008l.004-.004v-.004l.004-.004v-.004l.004-.004v-.02zm-.082-.109v-.02h.023l.004.004h.004l.004.004h.008l.008.008v.004l.008.004v.004l.004.004.004.008v.004l.008.004.004.004.004.008v.004l.004.004v.004l.004.008v.004l.004.004v.008l.004.004v.012l.004.004v.016h-.02v-.02l-.004-.004v-.008l-.008-.016v-.004l-.004-.004v-.004l-.008-.008v-.004l-.004-.004v-.004l-.016-.016-.004-.008-.008-.004-.004-.004zm-.098-.074l.02-.008v.004l.004.008v.004l.004.004v.004l.004.004v.004l.008.008v.004h.004v.004h.004v.004h.008v.004h.016v.004h.031v.02h-.031l-.008-.004h-.008v-.004h-.008v-.004h-.004v-.004h-.008V4.48l-.004-.004-.004-.008-.004-.004v-.004l-.004-.004-.004-.008-.004-.004v-.008l-.004-.004zm-.008-.039l-.023-.012h.027v.008h.004v.004h.004v.004h.004v.008h.004v.004l.004.004v.004l.004.004-.02.008v-.004l-.004-.004v-.004l-.004-.004v-.004H6.18v-.004l-.004-.004v-.004h-.004v-.004h-.008v-.004h.02zm-.023-.012l.012-.02.012.02zm.016.004l.008.004zm-.012-.004l.008-.02.012.02H6.16zm0 0\" class=\"sr-B\"/><path d=\"M6 4.555l.039-.02c.027-.012.055-.012.082-.004.109.031.16.23.035.281-.023.004-.047-.023-.066-.066a.44.44 0 0 0-.082-.137c-.02-.02-.02-.043-.008-.055zm0 0\" class=\"sr-D\"/><path d=\"M6.039 4.523l.008.02h-.008v.004h-.008v.004h-.016v.004h-.004l-.004.004-.016-.012.004-.004v-.004h.008v-.004h.016v-.004h.008v-.004h.008zm.082-.004l-.004.02h-.012v-.004h-.043v.004h-.012l-.004.004-.012-.02h.008l.008-.004h.016v-.004h.031l.004.004zm.039.301l-.004-.02h-.004l.008-.004h.016l.016-.016.004-.008.008-.008.012-.023V4.73l.004-.012v-.066l-.008-.008-.004-.008-.004-.012v-.008l-.008-.008-.004-.012-.008-.004-.004-.012-.023-.023-.012-.004-.004-.008-.012-.004h-.008l.004-.02h.012l.012.004.023.016.012.004.02.02.004.008.016.023.004.012.008.008.004.016.004.012v.012l.008.012v.066l-.008.023-.008.012-.004.008-.004.012-.008.012-.008.008-.008.004-.012.008-.012.004zm0 0zm-.082-.07l.023-.008v.008l.008.008.004.008v.004h.004v.008h.004v.004l.008.008h.004v.004h.004l.004.008h.016v.023h-.016V4.82h-.012l-.016-.016v-.004h-.004l-.004-.008v-.004h-.004v-.004l-.004-.004v-.004h-.004v-.004L6.09 4.77v-.004l-.004-.008-.008-.004zm0 0zM6 4.617l.016-.012.004.004v.004h.004l.004.004v.008h.004l.004.004v.004l.004.004h.004v.008l.004.004v.004l.008.008v.008l.004.004.004.008v.004l.004.004.004.008v.004l.004.008v.004l.008.008.004.008v.008l.008.004v.008l-.023.008v-.012l-.004-.004V4.73l-.004-.004v-.008l-.004-.004v-.008l-.008-.008v-.004l-.004-.004v-.004l-.004-.004-.004-.008v-.004l-.008-.004v-.004h-.004V4.66h-.004v-.008l-.012-.012v-.004l-.004-.004h-.004v-.004L6 4.625zm0 0zm0-.07v.02l.008-.004v.004h-.004v.016h.004v.012l.008.008v.004L6 4.617h-.004v-.004l-.008-.008v-.004h-.004v-.047h.004v-.004h.004zm-.008 0H6zm.008.02v-.02l.008.02zm.008 0h-.004zm0 0\" class=\"sr-B\"/><path d=\"M6.055 4.566c.109-.039.188.168.086.207-.051.02-.055-.051-.066-.086-.016-.051-.121-.082-.016-.121zm0 0\" class=\"sr-D\"/><path d=\"M6.145 4.781l-.008-.02h.008l.004-.004.008-.004.004-.008.004-.004.004-.008v-.012l.004-.008v-.051l-.004-.012-.012-.023-.008-.008-.008-.016-.008-.008-.008-.004-.004-.004-.016-.008h-.008l-.008-.004h-.027l-.008.004-.008-.02h.012l.012-.004h.031l.012.004.016.008.027.027.004.008.008.008.004.008.008.012.012.035v.012l.004.008v.031l-.004.012v.012l-.008.016-.008.012-.008.004-.008.008-.008.004-.012.004zm-.086-.086l.02-.008.004.004v.012l.008.004v.016l.004.004v.008l.004.004v.004l.004.008.004.004v.004h.004v.004h.004l.004.004h.023l.004.016h-.004l-.008.004h-.023l-.004-.004h-.004v-.004l-.004-.004-.008-.004v-.004l-.004-.004v-.004h-.004V4.75l-.004-.004v-.008h-.004v-.016l-.004-.004v-.016l-.004-.004v-.004zm-.008-.137l.008.02h-.008l-.008.008h-.008l-.004.008h-.004l-.004.004v.004H6.02v.008h.004v.004l.004.004v.004h.008v.008l.004.004h.004l.02.02.004.008.004.004v.008l.008.004v.012l-.02.004V4.68l-.004-.004h-.004v-.008l-.008-.004h-.004V4.66l-.004-.008-.012-.012v-.004l-.004-.004h-.004v-.004l-.008-.008v-.004l-.004-.004v-.016l.004-.004v-.008l.008-.004.004-.004.004-.008.008-.004h.008l.008-.004.012-.004zm0 0\" class=\"sr-B\"/><path d=\"M6.066 4.602c.055-.023.125.098.063.129-.047.02-.082-.008-.098-.039-.012-.043 0-.078.035-.09zm0 0\" class=\"sr-G\"/><path d=\"M6.129 4.742l-.008-.023h.008l.004-.004h.004v-.004l.004-.004v-.039l-.004-.004v-.008h-.004v-.008l-.012-.012-.004-.008-.008-.008h-.004v-.004l-.008-.004h-.023l-.004-.02h.031l.02.02.008.004.004.004.004.008v.004l.008.016.004.004v.012l.004.008v.051l-.008.016-.008.008h-.008l-.004.008zm-.105-.051l.02-.008.004.008.004.004v.004l.004.008.008.008h.004v.004h.004l.008.004h.008v.004h.027l.004-.004.012.02h-.016l-.004.004H6.07l-.004-.004h-.004v-.004h-.004l-.004-.004-.008-.004-.004-.008-.008-.004h-.004v-.008l-.004-.004-.004-.008v-.004l-.004-.004v-.004zm.043-.102l.004.02h-.004l-.02.02v.004h-.004v.016l-.004.004v.023l.004.004v.004l-.02.008v-.016l-.004-.004v-.031l.004-.004v-.008l.008-.008.004-.008v-.004l.004-.004v-.004h.008l.008-.008h.004l.004-.004zm.004.012l-.004-.012zm0 0\" class=\"sr-B\"/><path d=\"M6.801 3.605c.07 0 .129.055.129.125s-.059.133-.129.133-.125-.062-.125-.129.059-.125.129-.125zm0 0\" class=\"sr-C\"/><path d=\"M6.941 3.73h-.02c0-.039-.031-.086-.066-.105-.02-.008-.035-.012-.055-.012v-.02c.051 0 .094.023.121.063.012.023.02.051.02.074zm-.141.141v-.02c.043 0 .086-.027.105-.066.008-.016.012-.035.012-.055h.02c0 .051-.027.098-.066.121-.02.016-.047.02-.07.02zm-.137-.141h.02c0 .047.027.086.066.109a.12.12 0 0 0 .051.012v.02c-.047 0-.09-.027-.113-.066-.012-.023-.02-.047-.02-.074zm.141-.141v.023c-.047 0-.086.023-.105.066-.012.016-.016.035-.016.051H6.66c.004-.047.027-.09.066-.113.023-.016.047-.023.074-.023zm0 0\" class=\"sr-B\"/><path d=\"M6.707 3.391c.07 0 .129.059.129.125 0 .074-.059.129-.129.129s-.125-.055-.125-.129.059-.125.129-.125zm0 0\" class=\"sr-C\"/><path d=\"M6.848 3.516h-.023c0-.043-.023-.086-.062-.105-.016-.008-.035-.012-.051-.008v-.023c.047 0 .09.027.117.066.016.023.023.047.023.074zm-.141.141v-.02c.043 0 .086-.027.105-.066.008-.016.012-.031.012-.051h.023c0 .047-.027.094-.066.121-.02.012-.047.02-.07.02zm-.137-.141h.023c0 .047.023.086.063.109a.12.12 0 0 0 .051.012v.02c-.047 0-.09-.023-.113-.066-.016-.02-.023-.047-.023-.07zm.137-.141v.023c-.039 0-.082.027-.102.066-.008.016-.016.035-.012.051H6.57c0-.043.027-.09.066-.117.02-.016.047-.023.07-.023zm0 0\" class=\"sr-B\"/><path d=\"M7.016 2.637c.066 0 .117.055.117.121s-.051.125-.117.125-.125-.055-.125-.125c0-.031.012-.062.035-.086s.055-.035.09-.035zm0 0\" class=\"sr-C\"/><path d=\"M7.145 2.762h-.02c0-.047-.023-.086-.059-.102-.016-.008-.035-.016-.051-.016v-.02a.13.13 0 0 1 .109.063c.016.02.023.047.02.074zm-.129.133v-.023c.039 0 .078-.023.098-.059.008-.02.012-.035.012-.051h.02a.13.13 0 0 1-.059.109c-.023.016-.047.023-.07.023zm-.137-.137h.02c0 .043.027.086.066.102.016.008.031.012.051.012v.023c-.047 0-.09-.023-.113-.062-.016-.02-.02-.047-.02-.07zm.137-.133v.02c-.043 0-.082.023-.102.063-.008.016-.012.031-.016.051h-.02c.004-.043.023-.086.063-.113a.15.15 0 0 1 .074-.02zm0 0\" class=\"sr-B\"/><path d=\"M6.809 2.73c.07 0 .125.059.125.129s-.055.129-.125.129-.129-.062-.129-.129.055-.129.129-.129zm0 0\" class=\"sr-C\"/><path d=\"M6.945 2.859h-.02c-.004-.047-.027-.086-.066-.105-.02-.012-.035-.016-.055-.016v-.02c.047 0 .094.023.117.066.012.02.02.047.02.07zM6.809 3v-.02c.039 0 .082-.031.102-.066.012-.02.016-.035.016-.055h.02c0 .047-.023.094-.066.121-.02.012-.047.02-.07.02zm-.141-.141h.02c0 .043.027.086.066.105.016.008.035.012.055.012v.02c-.051 0-.094-.023-.121-.066a.15.15 0 0 1-.02-.074zm.141-.141v.02c-.047 0-.086.027-.105.066a.12.12 0 0 0-.012.051h-.02a.15.15 0 0 1 .063-.121c.023-.012.051-.02.074-.02zm0 0\" class=\"sr-B\"/><path d=\"M6.656 2.914c.07 0 .125.055.125.129s-.055.125-.125.125-.125-.055-.125-.125.059-.129.125-.129zm0 0\" class=\"sr-C\"/><path d=\"M6.793 3.043h-.02c0-.047-.027-.086-.066-.109-.016-.008-.031-.012-.051-.012v-.02c.047 0 .09.023.117.066a.15.15 0 0 1 .02.074zm-.137.141V3.16c.039 0 .082-.027.105-.066a.12.12 0 0 0 .012-.051h.02c0 .043-.023.09-.066.117-.02.016-.047.023-.07.023zm-.141-.141h.02c0 .039.027.086.066.102.02.012.035.016.055.012v.023c-.047-.004-.09-.027-.117-.066-.016-.023-.02-.047-.02-.074zm.141-.141v.02c-.047 0-.086.023-.105.066-.008.016-.012.035-.012.055h-.02c0-.051.02-.098.063-.121.023-.016.047-.02.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M6.629 3.141c.074 0 .129.059.129.129s-.059.133-.129.133S6.5 3.34 6.5 3.273a.13.13 0 0 1 .129-.129zm0 0\" class=\"sr-C\"/><path d=\"M6.77 3.27h-.023c0-.043-.023-.086-.062-.105-.016-.008-.035-.012-.055-.012v-.02c.051 0 .094.023.121.063.012.023.02.047.02.074zm-.141.141v-.02c.043 0 .086-.027.105-.066.008-.02.012-.035.012-.055h.023c0 .051-.027.102-.07.121-.02.012-.043.02-.07.02zm-.137-.141h.023c0 .043.023.086.063.105.016.008.031.016.051.016v.02c-.047 0-.09-.027-.117-.066-.012-.023-.02-.047-.02-.074zm.137-.137v.02c-.039 0-.082.027-.102.063-.008.02-.012.035-.012.055h-.023c0-.047.027-.09.066-.117.02-.012.043-.02.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M8.289 3.973c-.055-.102-.113-.168-.172-.195.082-.266.102-.605.055-1.023-.008-.066-.023-.094-.047-.094s-.031.035-.035.105l.023.605c-.008.152-.047.281-.082.426-.008.023.008.035.074.074.051.031.086.066.094.102.016-.004.023 0 .031 0 .051.016.07.012.059 0zm0 0\" class=\"sr-D\"/><path d=\"M8.105 3.773l.02.008-.004-.012h.004l.008.004.008.008h.008l.004.004h.008l.012.012.008.004.008.016.008.004.004.008.008.004.016.016.004.012.012.012.008.016.008.008.004.008.008.008.004.008.004.012.008.008.004.008.008.012.004.008-.02.012-.004-.012-.004-.008-.008-.012-.004-.008-.008-.008-.008-.016-.008-.008-.004-.008-.012-.012-.004-.012-.008-.004-.012-.012v-.004l-.008-.008-.004-.008-.008-.008-.008-.004-.004-.004-.008-.004-.02-.02-.008-.004h-.004l-.016-.008-.004-.012zm.008.012h-.008v-.012zm.047-1.031h.02l.004.039.004.035.004.039.004.043v.035l.004.035v.035l.004.039v.301l-.004.027-.004.031v.031l-.008.031-.004.027-.004.031-.008.055-.008.027-.004.027-.008.027-.004.027-.008.023-.008.027-.008.023-.02-.004.008-.023.023-.082.004-.023.008-.023.004-.031.004-.023.008-.027.008-.031.004-.027v-.027l.004-.031v-.027l.004-.035v-.031l.004-.035v-.273l-.004-.035v-.039l-.004-.035-.004-.039-.004-.035-.004-.043-.004-.039zm0 0zm-.035-.082v-.02h.012v.004h.008v.004h.004l.004.004h.004v.012h.004v.008l.004.004v.004l.004.004v.008l.004.008v.02l.004.004v.008h-.02v-.016l-.004-.004v-.012l-.004-.004v-.012h-.004v-.008h-.004v-.004l-.004-.008h-.004v-.004zm-.023.094h-.023V2.73l.004-.004v-.02l.008-.008v-.012h.004V2.68l.004-.008v-.004h.004l.012-.012h.012v.02h-.004v.004h-.004v.004l-.004.004v.008l-.004.004v.012l-.004.004v.031l-.004.012v.012zm-.023 0zm.047.605h-.02v-.285l-.004-.02v-.055l-.004-.02v-.043l-.004-.02v-.02l-.004-.02v-.039l-.008-.02v-.047l-.004-.02.023-.004v.02l.004.023v.043l.004.02v.043l.004.02v.043l.004.02v.039l.004.02v.059l.004.02zm-.086.43l-.02-.008.004-.012V3.77l.004-.016.004-.012.004-.016v-.016l.008-.023.004-.016V3.66l.008-.012v-.012l.004-.012.004-.016v-.008l.008-.031v-.012l.004-.012.004-.016v-.016l.004-.012v-.012l.004-.012v-.016l.004-.016v-.012l.004-.012v-.035l.004-.02h.02v.031l-.004.016v.027l-.004.016v.012l-.004.016v.016l-.004.012v.016l-.004.016-.004.012v.016l-.004.012-.004.016v.012l-.008.016v.012l-.004.012v.012l-.008.016-.004.012v.012l-.008.023-.004.016v.012l-.008.012-.004.016-.004.012v.012zm.07.059l-.008.023-.004-.008H8.09l-.008-.004-.004-.004H8.07l-.004-.008h-.004l-.008-.004h-.004v-.004l-.008-.004h-.004l-.004-.004-.004-.008h-.004v-.004h-.004l-.004-.004v-.004l-.004-.004v-.02l.02.004v.012h.004v.004l.004.004h.004v.004h.004l.004.004.008.004h.004l.008.008h.004l.004.008h.008l.004.004.008.004zm0 0zm.086.105l.008.02-.016-.008v-.004l-.004-.004v-.004l-.004-.004v-.008l-.004-.008-.016-.016-.008-.004v-.004h-.004v-.004h-.008v-.004l-.004-.004h-.004v-.008h-.008l-.004-.004h-.004l-.008-.008h-.004l.012-.02.004.004h.004l.004.008.008.008h.004v.004h.008l.004.008.008.004.004.008.008.004.004.004v.008l.008.004h.004v.004l.004.004v.004h.004v.008l.004.004v.004l.004.008v.004l.004.004v.004l-.012-.004zm.008.02h-.012l-.004-.008zm.027-.023l-.008.02h-.02l-.008-.016h.004l.004-.004zm.066.012h-.02l.012-.008.004.004v.016l-.004.004h-.004v.004H8.25l-.004-.004h-.008l-.004-.004h-.008l.004-.02h.016l.004.004h.02v.004h.016v.008zm-.02 0v-.02l.012.012-.016.008zm0 0h.02l-.02.004zm0 0\" class=\"sr-B\"/><path d=\"M7.969 4.305c.031-.02.039-.016.047-.027s.012-.047.008-.07c-.016-.105.047-.094.121-.043.035.02.07.078.098.105s.059.027.066.039v.184c-.008.012-.035.016-.066.043s-.062.082-.098.105c-.074.047-.137.063-.121-.043.004-.027.004-.055-.008-.07S8 4.52 7.969 4.5c-.02-.012-.035-.027-.047-.043s0-.035 0-.055-.008-.035 0-.051.027-.031.047-.043zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M8.008 4.273l.016.008-.008.008h-.008v.004H8l-.004.004h-.004l-.004.004h-.004v.008h-.012v.004l-.012-.023h.012v-.004h.004l.004-.004h.004l.004-.004h.008v-.004h.008V4.27h.004zm.008-.066l.02-.004v.059l-.004.008v.004h-.004v.004l-.02-.012v-.004h.004v-.008h.004v-.051zm.133-.055l-.012.02-.008-.004-.012-.012-.008-.004h-.004l-.008-.004h-.004l-.008-.004h-.008v-.004H8.07l-.004-.004h-.02v.004h-.004v.004l-.004.004v.016l-.004.004v.039l-.02.004v-.059l.004-.008v-.008l.004-.004.008-.004.004-.004h.004l.004-.004h.004l.004-.004h.027v.004h.012l.008.004h.004l.008.008h.008l.004.004.016.008.004.004zm.098.109l-.012.012-.004-.004-.008-.004-.004-.008-.008-.008-.008-.004-.004-.004v-.004h-.004V4.23l-.016-.016v-.004l-.004-.004v-.004h-.008l-.004-.004-.008-.004-.004-.004h-.004l-.004-.004v-.004h-.004V4.18h-.004l.012-.023.004.008.004.004v.004h.008v.004h.008l.008.008v.004l.004.004h.004v.008l.008.004.004.004v.004l.012.012h.004v.004l.004.004.004.008.004.004.008.004v.004h.004v.008h.008v.004h.004zm.07.047h-.023v.008h-.004l-.004-.004h-.004v-.004h-.008l-.004-.008h-.004v-.004h-.004v-.004h-.008v-.004l-.008-.004-.008-.008.012-.012h.008v.004h.004v.004h.004v.004h.004v.004h.004l.008.008h.004l.004.004h.004l.004.004h.004v.004h.008v.004l.004.004v.004zm-.004-.004v.004zm0 .098h-.02v-.09l.02-.004zm-.02 0zm0 0h.02zm0 0zm.02.098l-.02-.012v.004-.086h.02zm0-.008v.004zm-.066.051l-.012-.016h.004v-.004l.004-.004.008-.004h.008v-.004h.004v-.004h.004l.004-.004h.004V4.5h.008v-.004h.008v-.004l.02.008-.008.008h-.004v.004h-.008l-.004.008h-.004v.004h-.008v.004H8.27v.004h-.004l-.008.008v.004zm-.098.105l-.016-.016h.004v-.004l.008-.004.008-.008.008-.004.012-.012v-.004h.008V4.59l.004-.008.004-.004v-.004l.004-.004.008-.004v-.004l.008-.008v-.004h.008v-.004l.008-.008h.004v-.008h.008v-.004l.016.016-.012.012v.004H8.23v.004l-.004.004-.008.004-.012.012v.008l-.004.004v.004l-.004.004h-.004v.004h-.008l-.004.008v.004H8.18l-.02.02-.008.004zm-.137-.051l.02.004v.051l.004.008v.004h.004v.004h.035v-.004h.008l.008-.004h.004l.008-.008.004-.008h.008l.008-.008.008-.004.012.016-.008.004-.012.012h-.008l-.008.004-.004.004h-.008l-.004.008h-.008l-.008.004h-.008l-.004.004h-.02l-.004-.004h-.008l-.004-.008-.008-.008v-.004l-.004-.004v-.016l-.004-.008v-.043zm-.004-.062l.016-.012v.004h.004v.008h.004v.012l.004.004v.051l-.02-.004v-.051h-.004v-.008h-.004zm-.047-.027l.012-.016h.004l.004.004h.004l.004.004h.004l.004.004h.012v.004h.004v.004h.004l.004.008.004.004-.016.012L8 4.531h-.004v-.004h-.008l-.004-.004h-.008V4.52h-.004l-.004-.008h-.004v-.004zm.012-.016l.012.004zm-.059-.031l.016-.012.004.004v.004h.004v.008h.004v.004h.004v.004h.004v.004h.004l.008.008h.004v.004h.004l-.008.02v-.004h-.004l-.008-.008h-.004v-.004h-.004v-.004h-.004v-.004h-.004V4.48H7.93v-.004h-.004v-.004l-.004-.004-.008-.004zm-.008-.062h.023v.051l-.016.008v-.004H7.91v-.008l-.004-.004zm.008-.055l.016.012v.008l-.004.004v.035h-.02v-.051h.004v-.008zm.047-.051l.016.023h-.004v.004h-.004l-.023.023v.004h-.004v.004h-.004v.004l-.023-.012h.008V4.34l.008-.008v-.004h.004l.004-.004V4.32h.004v-.004h.004l.004-.004h.004v-.004l.004-.004h.004v-.004h.004zm.016.023l.008-.008zm0 0\"/><path d=\"M8.309 4.418v.02c-.078.008-.137.039-.191.086.035-.055.113-.094.191-.105zm0-.031v-.02c-.078-.008-.137-.039-.191-.086.035.055.113.09.191.105zm0 0\"/></g><path d=\"M8.023 4.156c.02.012.047.023.07.043.031.027.012.078-.031.133-.012.012-.02.039-.02.07 0 .023.008.055.02.07.043.051.063.098.031.133-.02.02-.047.027-.066.039v-.047c.004-.027.004-.055-.008-.07S8 4.52 7.969 4.496c-.016-.008-.031-.023-.043-.043s0-.035 0-.051-.012-.039 0-.055.027-.031.047-.043c.031-.02.039-.016.047-.027s.012-.047.008-.07v-.051zm0 0\" class=\"sr-D\"/><path d=\"M8.102 4.191l-.02.012-.008-.008H8.07v-.004h-.004l-.004-.004h-.004v-.004h-.008V4.18h-.008v-.004h-.004l-.004-.004h-.004l-.004-.004h-.004l.008-.02h.004l.004.004h.004l.004.004h.004l.004.004h.004v.004h.008l.004.004h.004v.004h.004v.004h.004l.008.004zm-.031.145l-.016-.012.004-.004v-.004h.004l.008-.016v-.004l.004-.004v-.008l.004-.004v-.004h.004V4.27l.008-.004v-.008h.004v-.031l-.004-.008-.008-.004-.004-.004.016-.012.008.004v.004l.004.004v.004h.004v.012l.004.004v.02l-.004.004v.008l-.004.004v.012l-.004.004v.008l-.008.004v.008l-.004.008v.004l-.008.004-.004.008v.004l-.008.004-.008.008zm-.02.066h-.02v-.012l.004-.004v-.027h.004v-.02h.004v-.008l.004-.004v-.004h.004V4.32l.02.012h-.004v.008h-.004v.004l-.004.004v.02h-.004v.027h-.004v.012zm.02.066l-.016.012v-.004h-.004v-.004h-.004v-.008h-.004v-.023l-.004-.008v-.02h-.004v-.012h.02v.023l.004.004v.008l.004.004v.008l.004.004v.004h.004zm.031.145l-.02-.016h.008v-.004h.004V4.59l.004-.008v-.035l-.004-.004v-.004l-.004-.004v-.004l-.008-.008V4.52l-.004-.004-.004-.008v-.004L8.066 4.5l-.004-.004v-.004l-.004-.008-.008-.004.016-.012.004.004h.004v.008l.004.004.004.008h.008v.004l.004.008v.008l.008.008v.008l.004.004v.008l.004.004v.012l.004.004v.012l-.004.008v.012l-.004.004v.004l-.004.004v.004l-.008.004v.004zm-.086.035l.02-.004-.016-.008h.016v-.004h.008l.004-.004h.004l.004-.004h.004v-.004h.008v-.004h.004l.008-.008h.004v-.004h.004v-.004l.016.016h-.004v.004h-.004v.004H8.09l-.008.008h-.004l-.004.004H8.07v.004h-.008v.004h-.008v.004h-.012v.004h-.004l-.004.004h-.004l-.012-.008zm.012.008l-.012.008v-.016l.012.012zm-.012-.059l.02.004v.039l-.02.008zm-.008-.062l.016-.012v.004h.004v.008h.004v.012l.004.004v.051l-.02-.004v-.051h-.004v-.008h-.004zm-.047-.027l.016-.016h.004l.004.004h.004l.004.004h.004L8 4.504h.008v.004h.004l.004.004.004.008.004.004-.016.012-.004-.004H8v-.004h-.008l-.004-.004H7.98V4.52h-.004l-.004-.008h-.004v-.004zm0 0l-.004-.004.008.004zm-.047-.047l.02-.008.004.004v.004h.004v.008h.004v.004h.004v.004h.004v.004h.004l.004.004h.004v.004h.004v.004h.004l-.012.02v-.004h-.004L7.949 4.5h-.004v-.004h-.004v-.004h-.004v-.004h-.004v-.004H7.93V4.48h-.004v-.004l-.008-.008v-.004zm0 0l.008.012zm-.004-.059h.02v.047l-.016.012v-.004H7.91v-.008l-.004-.008v-.043zm.004-.059l.02.012v.008l-.004.004v.039h-.023v-.055h.004v-.008zm.051-.047l.012.02h-.004v.004h-.004l-.023.023v.004h-.004v.004h-.004v.004l-.02-.008h.004v-.004l.008-.008v-.004h.004l.004-.004v-.004h.004V4.32h.004l.004-.004h.004v-.004h.004v-.004h.004v-.008h.004zm.047-.02l.016.008-.008.008h-.008v.004h-.008L8 4.301h-.004l-.004.008h-.004v.004h-.012v.004l-.012-.023h.012v-.004h.004l.004-.004h.004l.004-.004H8v-.004h.008v-.004h.004zm.008-.066l.02-.004v.059l-.004.004v.004h-.004v.004l-.02-.008v-.004h.004v-.008h.004zm.008-.039v-.02l.012.012v.043l-.02.004v-.059l.008.012zm0-.02h.012v.012zm0 0v.02h-.004zm-2.008.387l.016-.004c-.031-.047-.043-.086-.027-.129-.027.031-.02.086.012.133zm0 0\" class=\"sr-B\"/><path d=\"M7.016 4.012c.027.031.023.039.039.051s.039.008.066 0c.098-.039.098.039.07.129-.016.039-.059.086-.074.125-.02.031-.016.059-.02.07l-.082.012-.078.008c-.012-.004-.023-.031-.055-.059l-.117-.094c-.062-.07-.094-.137.004-.133.023 0 .047-.004.059-.02s0-.023.008-.062c.008-.023.016-.047.027-.059s.031-.012.047-.016.031-.012.051-.004.039.023.055.047zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M7.059 4.051l-.012.02-.012-.012v-.004h-.004v-.004l-.004-.004v-.004l-.004-.004v-.004H7.02v-.004l-.008-.008-.004-.008.016-.012.008.008v.004h.004v.012h.004v.008h.004v.004l.004.004v.004h.004v.004l.004.004zm-.012.02zm.07-.02l.004.02h-.008l-.004.004h-.016v.004h-.027l-.004-.004h-.004l-.004-.004h-.004l.008-.02v.004h.016v.004h.023l.004-.004h.008l.004-.004zm.082.141l-.02-.004V4.18l.004-.008V4.16l.004-.008v-.008l.004-.004v-.016l.004-.008v-.035l-.004-.004V4.07h-.004l-.004-.004H7.18l-.008-.004h-.031l-.008.004h-.008l-.008-.016.008-.004h.008l.008-.004h.039l.004.004h.008l.008.016v.004l.004.004.004.008v.066l-.004.008v.012l-.004.008v.008l-.004.008v.008zm-.074.129l-.02-.008v-.004l.004-.008.004-.004v-.004l.004-.004v-.008l.008-.008V4.27l.016-.016.004-.008.004-.004v-.004l.004-.004h.004v-.008l.004-.004v-.004l.008-.008v-.004l.004-.004v-.004l.004-.008.02.008v.004l-.004.004v.004l-.004.004-.004.008v.004l-.004.004v.008l-.008.008v.004l-.008.004-.004.004v.004l-.008.008v.004l-.004.004v.004l-.008.008v.004l-.004.004v.008h-.008v.008l-.008.008v.004zm-.031.078l-.004-.02-.008.004v-.012h.008v-.02l.004-.004V4.34l.004-.004v-.008l.004-.008v-.004h.004l.02.008-.004.004-.004.008v.004h-.004v.016h-.004v.016l-.004.008v.008l-.004.004v.004zm.008 0h-.004zm-.086.012v-.02h.02v-.004h.023v-.004h.023l.008-.004.004.02h-.012l-.004.004h-.02l-.004.004h-.023v.004zm0 0zm0 0v-.02.008-.008.02-.012zm0-.02zm-.082.027l.008-.02h-.004.027l.004-.004h.039l.004-.004.004.02H7v.004h-.027v.004zm.004 0h-.004zm-.059-.059l.008-.02.012.012h.004l.008.008.004.008.004.004v.004h.004v.004h.004v.004l.004.004v.004h.004v.004h.004v.004l-.008.02v-.004h-.004l-.008-.008v-.004h-.004v-.004l-.004-.004v-.004h-.004v-.004l-.012-.012-.004-.008v-.004h-.004v-.004h-.008v-.004zm-.121-.098l.016-.012.004.004.004.008.008.004h.004v.008l.004.004h.008l.004.004h.004l.004.008.012.012h.004v.008l.008.004h.004l.016.016h.004l.012.012h.004v.004l-.008.016h-.008v-.004l-.004-.004h-.004v-.004l-.008-.004h-.004L6.84 4.34l-.008-.004h-.004v-.004l-.004-.004H6.82l-.004-.004h-.004V4.32h-.008l-.008-.008h-.004v-.008h-.004l-.004-.008-.004-.004h-.004v-.004H6.77v-.008l-.004-.004h-.004v-.004l-.008-.004zm.008-.148v.02h-.027l-.004.004h-.008l-.004.004v.004h-.004v.031l.004.004v.008l.008.008.008.016.004.004.004.008.012.012v.004l.016.016-.016.008-.012-.004-.016-.031-.012-.012v-.008l-.004-.008v-.008l-.008-.004V4.18l-.004-.004v-.043l.016-.016h.004l.008-.004h.012l.008-.004h.02zm.051-.016l.016.008-.008.008H6.82v.004h-.004l-.004.004h-.004l-.004.004h-.012l-.004.004h-.02v-.02h.027l.004-.004h.004l.004-.004h.004v-.004h.004v-.004zm0 0zm.008-.059l.02.004v.008H6.84v.043h-.004v.008l-.004.004-.02-.008h.004v-.031l.004-.004v-.016l.004-.004zm.027-.063l.016.012-.004.004v.004h-.004v.008h-.004v.008h-.004v.008l-.004.004v.008l-.004.004v.008l-.02-.004v-.012l.004-.004v-.012l.004-.004V4h.004v-.008h.004v-.008h.004V3.98h.004v-.008h.004zm.016.012l.012-.016-.008.016zm.035-.031l.004.02h-.027v.004h-.008v.004h-.004l-.016-.008.008-.008h.004v-.004h.008l.004-.004h.027zm.004.02h-.012zm.055-.023l-.008.02h-.031l-.008.004h-.008l-.004-.02h.02l.004-.004h.039zm.063.059H7v.004-.004h-.004v-.004l-.02-.02h-.004v-.004h-.004l-.008-.008h-.004l-.004-.004.012-.02v.004h.004l.004.004h.004v.004h.004v.004h.004l.012.012H7v.004h.004v.004L7.016 4v.004zm-.004-.008h.004v.008-.008zM7 4.012h.023L7 4.016v-.008zm0 .004v-.008zm0 0\"/><path d=\"M7 4.402h-.016c-.027-.078-.07-.141-.125-.191.055.027.109.105.141.188zm.027-.004c.008-.086.016-.156.047-.227-.039.051-.055.141-.047.227zm0 0\"/></g><path d=\"M7.164 4.051c-.004.027-.008.063-.02.086-.02.043-.074.027-.129-.012-.02-.012-.047-.016-.07-.012s-.047.016-.059.031c-.031.055-.07.082-.105.055-.02-.02-.039-.047-.055-.07.012-.004.023-.008.043-.008s.047-.004.059-.02 0-.02.012-.059c0-.027.012-.047.023-.063s.031-.012.047-.012.031-.016.051-.004.039.023.055.043c.027.035.023.043.039.051s.043.008.066 0 .031-.012.043-.008zm0 0\" class=\"sr-D\"/><path d=\"M7.152 4.141l-.02-.008.004-.004v-.008l.004-.004v-.008l.004-.004v-.02l.004-.004v-.023h.004v-.008h.023v.02l-.004.008v.02h-.008v.016H7.16v.012h-.004v.008l-.004.004zm-.141-.008l.008-.016.008.004h.004l.004.004h.004l.008.008h.004l.008.008h.004l.008.004h.008v.004h.016l.004.004h.02v-.004h.004l.004-.004.004-.008.004-.004.02.012-.016.016v.004h-.004l-.004.004h-.004l-.004.004h-.043l-.004-.004H7.07l-.004-.004h-.004l-.004-.004h-.004l-.008-.004-.004-.004h-.004l-.004-.008-.004-.004h-.008l-.008-.008zm-.062-.008l-.004-.02h.02v-.004h.027v.004h.012v.004h.008v.004h.004l.004.004-.008.016h-.004v-.004h-.012v-.004zm-.055.023l-.016-.012v-.004h.004v-.004h.004v-.004l.004-.004h.004v-.004h.004l.004-.004h.004l.004-.004h.008v-.004h.016l.004-.004h.012l.004.02h-.016v.004H6.93v.004h-.008l-.004.004h-.004v.004H6.91v.004h-.004v.004h-.004zm-.117.055l.012-.016h.004v.004h.012l.004.004h.008l.008-.004h.004v-.004h.008v-.004h.004V4.18h.008v-.008h.004v-.004l.016-.016v-.004h.004v-.008l.008-.004.016.008v.004l-.008.004v.008l-.004.004h-.004v.008l-.008.004-.012.012h-.004l-.004.008h-.004v.004H6.84l-.008.004h-.008l-.004.004h-.023l-.004-.004h-.004l-.008-.008h-.004zm-.055-.086l.008.02.008-.016v.004h.004v.004l.004.004v.004h.004v.004l.004.004v.004h.004v.004l.004.004.004.008.004.004v.004h.004v.004h.004v.004h.004v.004h.004v.004h.004l-.012.02-.012-.012v-.004h-.004v-.004h-.004v-.004h-.004V4.18H6.75v-.008h-.004v-.004h-.004v-.004h-.004v-.008h-.004v-.004H6.73v-.008h-.004v-.004h-.004v-.027zm0 .016l-.008-.008.008-.008zm.047-.02v.02h-.031v.004H6.73l-.008-.02h.023v-.004zm.051-.016l.016.008-.008.008h-.004v.004H6.82l-.004.004h-.004l-.004.004h-.016l-.004.004h-.023v-.02h.027l.004-.004h.008v-.004h.004v-.004h.004v-.004zm0 0zm.008-.059l.02.008v.004l-.004.008v.035H6.84v.012h-.004l-.02-.008h.004V4.07h.004v-.027zm.027-.063l.016.012-.004.004v.004h-.004v.008h-.004v.008h-.004v.008l-.004.004v.016h-.004v.008l-.02-.004v-.016l.004-.004v-.008l.004-.004v-.008h.004v-.008h.004v-.008h.004v-.004h.004v-.008zm0 0l.008-.012zm.051-.02l.004.02h-.012v.004h-.02v.004h-.004l-.004.004-.016-.012.008-.008h.004v-.004h.008l.004-.004h.027zm0 0h.016zm.063 0l-.012.016h-.035v.004H6.91l-.004-.02h.016v-.004h.043zm-.012.016l.004.004zm.066.031l-.012.012-.004-.004H7v-.004l-.02-.02h-.004v-.004h-.004l-.004-.004h-.004v-.004h-.004l-.004-.004.012-.02v.004h.004l.004.004h.004v.004h.004v.004h.004L7 3.98h.004v.004h.004v.004L7.02 4v.004zm.039.051l-.012.02-.012-.012v-.004h-.004v-.004l-.004-.004v-.004l-.004-.004v-.004h-.004v-.004l-.004-.004-.008-.016.012-.012.008.004.004.008v.004h.004v.004l.004.004v.008h.004v.004l.004.004v.004h.004v.004l.004.004zm-.012.02l-.004-.004h.004zm.07-.02l.004.02h-.012l-.004.004h-.016v.004h-.027l-.004-.004h-.004l-.004-.004h-.004l.012-.02v.004h.012l.004.004h.023l.004-.004h.008l.004-.004zm.055 0h-.02l.008.008h-.02l-.004.004h-.008l-.004.004h-.004l-.004-.02.004-.004h.016v-.004h.031l.008.008zm-.012-.012h.016l-.004.012zm0 0\" class=\"sr-B\"/><path d=\"M6.637 4.438c.012-.02.02-.016.023-.027.004-.02-.008-.039-.02-.062-.043-.094.004-.086.07-.051.02.012.039.027.063.043l.051.047c.035.023.055.023.063.035.02.039.027.07.035.082a.62.62 0 0 1 .031.086c0 .008-.02.012-.035.039s-.023.07-.039.094c-.027.035-.051.055-.07.051s-.031-.027-.035-.086c0-.023-.012-.043-.031-.059-.008-.012-.012-.008-.039-.023-.016-.012-.035-.027-.047-.043s-.016-.023-.02-.039-.016-.031-.016-.047.008-.031.016-.043zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M6.648 4.406l.023.008v.004l-.008.004v.004H6.66v.004h-.004v.004h-.004l-.004.004v.004h-.004l-.016-.012v-.004l.012-.012h.004V4.41h.004zm.023.008zm-.039-.062l.02-.008v.008l.004.004v.008l.004.004v.004l.004.008v.039l-.02-.008v-.023l-.004-.004v-.008h-.004v-.008h-.004zm.086-.059l-.012.016h-.008l-.004-.008h-.004l-.008-.004H6.68l-.008-.004h-.008l-.004-.004h-.008l-.004-.004h-.012v.031l.004.008.004.004.004.008.004.012-.02.008v-.008l-.008-.016V4.32l-.004-.004v-.031l.004-.004h.004l.004-.004h.004l.004-.004h.023l.004.004h.012l.008.004.004.004h.008l.008.008.008.004h.008zm.055.039l-.012.02v-.008h-.004L6.75 4.34h-.004v-.004h-.004v-.004h-.004v-.004h-.004l-.004-.004h-.004V4.32h-.004l-.008-.008h-.004l-.004-.004.012-.02v.004h.004v.004h.004l.004.004h.004v.004h.004l.004.004h.004v.004h.004v.004h.004l.012.012h.004v.004zm.055.051l-.012.016h-.004v-.004h-.004v-.004h-.004l-.004-.004h-.004v-.004h-.004v-.004h-.004v-.008h-.004l-.012-.012H6.77v-.004h-.004v-.004h-.004l.012-.02v.004h.004l.004.004v.004h.004l.008.008h.004v.004h.004v.004h.004v.004h.004l.008.008h.004v.008h.004zm.066.039l-.02.004v.004-.004h-.004v-.004h-.008l-.004-.004h-.004l-.004-.004h-.004l-.004-.004h-.008v-.004h-.008v-.004h-.004v-.004h-.008v-.004l.012-.016.004.004h.008v.004h.004l.004.004h.004l.004.004h.004v.004h.008l.004.004h.008v.004h.004l.004.004h.004v.008zm-.004-.008v.004zm.035.09l-.02.008V4.5l-.004-.004v-.008l-.004-.004v-.012h-.004v-.008l-.004-.004v-.008h-.004v-.012h-.004v-.008h-.004v-.008l.02-.008v.008l.004.008v.004l.004.004v.008l.004.004v.008l.004.004v.008h.004v.008l.004.004v.008h.004zm0 0zm0 0l-.02.008h.004l.008.008-.012-.012.016.012-.012-.012.012.012-.012-.012.004.008-.004-.008v.004l.023-.008v.004V4.5v.008l-.008-.012.012.012-.012-.012.012.012-.008-.012h.008v.008zm0-.004v.004zm.031.098l-.02-.004v.004-.008l-.004-.008v-.004L6.93 4.57v-.004l-.004-.008v-.004l-.004-.004v-.008l-.004-.004v-.004l-.004-.004v-.008L6.91 4.52l.02-.012v.012h.004v.008h.004v.012l.004.004v.004l.004.008v.008l.004.004v.008l.004.004v.004l.004.004zm0-.008v.008zm-.031.047l-.023-.008.004-.004v-.004h.004v-.004l.004-.004v-.004h.008v-.004h.004l.004-.004h.004v-.004h.004v-.004l.02.004v.008h-.004v.004h-.004v.004h-.004l-.02.02zm-.047.102l-.012-.016.004-.004v-.004h.004v-.008l.004-.004v-.008l.004-.004v-.008h.004v-.008h.004v-.012h.004V4.66l.004-.008v-.004l.004-.004v-.004l.004-.004.02.008-.004.004v.008h-.004v.008h-.004v.012l-.004.004v.004l-.004.004v.008l-.004.004v.004l-.004.004v.008l-.004.004v.004h-.004v.008h-.004v.008l-.004.004v.004zm-.074.055l.004-.02h.008V4.77h.004l.004-.004h.004v-.004h.004l.008-.004.012-.012.004-.008.004-.004V4.73h.004v-.008l.02.016h-.004v.008h-.008v.004h-.004v.008h-.008v.008h-.004v.004h-.004l-.012.012h-.008v.004h-.008v.004h-.02zm-.043-.102h.02v.008l.004.004v.02h.004v.012l.004.004v.008l.004.004v.004h.004v.004h.004v.004h.004v.02h-.016v-.004h-.004l-.008-.008v-.008h-.004v-.004l-.004-.004V4.75l-.004-.008v-.008h-.004v-.02l-.004-.004zm-.023-.051l.012-.012.008.004v.004h.004v.004l.004.004v.004h.004v.004l.004.008v.004h.004v.012h.004v.012l-.02.004v-.02h-.004v-.008L6.75 4.66v-.004h-.004v-.004h-.004v-.008h-.004v-.004h-.004zm-.039-.02l.008-.016h.004v.004h.008v.004h.008v.004h.008v.004h.008v.004h.004v.004l-.012.012H6.73l-.004-.004h-.008v-.004h-.008l-.004-.004h-.004l-.004-.004h-.004zm-.051-.043l.012-.012.004.004.008.004.008.008h.004v.008h.004v.004h.004l.004.004h.004v.004h.004l.004.004-.012.02v-.004h-.004v-.004h-.008v-.004l-.004-.004h-.004l-.016-.016h-.004V4.59h-.004v-.008zm-.023-.043l.02-.008v.004h.004v.008h.004v.008h.004v.008h.004v.004l.004.004-.016.016h-.004V4.57h-.004v-.008h-.004v-.008l-.004-.004v-.016h-.004v-.004zm-.012-.051h.02V4.5h.004v.008l.004.004v.004l.004.004v.004l-.02.012v-.023h-.004v-.008h-.004v-.012h-.004v-.016zm.02 0v.004zm.008-.031v-.02l.004.016v.008h-.004v.004h-.004v.016h-.004v.004h-.02v-.016l.004-.004v-.008l.004-.004v-.008h.004v-.008h.004V4.43h.004l.008.016zm0-.02h.02l-.016.016zm0 0v.02l-.008-.016.008-.008zm0 .02h-.02l.012-.016zm0 0\"/><path d=\"M6.93 4.535l.004.02c-.027.008-.051.02-.07.035s-.035.039-.047.063c.004-.027.02-.051.039-.074a.17.17 0 0 1 .078-.043zM6.918 4.5l-.012-.02c-.031 0-.062-.008-.094-.02a.35.35 0 0 1-.086-.055c.02.023.051.047.086.066a.49.49 0 0 0 .102.027zm0 0\"/></g><path d=\"M6.629 4.289c.02.008.031.016.055.035.016.016.027.035.031.063 0 .02 0 .047-.008.074-.004.016 0 .043.012.074s.02.055.039.07c.047.047.082.098.066.133-.004.016-.016.027-.027.035-.008-.012-.02-.023-.027-.043-.004-.027-.016-.051-.031-.07-.012-.012-.016-.027-.039-.043s-.043-.008-.055-.02c-.023-.035-.059-.113-.023-.145s.043-.055.02-.113c-.012-.02-.012-.039-.012-.051zm0 0\" class=\"sr-D\"/><path d=\"M6.691 4.316l-.016.016-.012-.012H6.66v-.004h-.004v-.004h-.008v-.004h-.004l-.004-.004h-.004l-.004-.004h-.008l.004-.02h.008v.004h.008v.004h.008v.004h.008v.004h.004v.004h.008l.008.008h.004v.004h.004v.004zm.031.066l-.02.004v-.016h-.004v-.012h-.004v-.008l-.004-.004v-.004h-.004V4.34h-.004v-.004H6.68v-.004h-.004l.016-.016h.004v.004l.004.004v.004h.004v.004l.004.004v.004h.004v.008l.004.004v.008h.004v.016h.004zm-.004.078h-.02v-.027h.004v-.047l.02-.004v.066l-.004.004zm-.02 0v-.004zm.027.07l-.02.004v-.008l-.004-.008v-.008l-.004-.008v-.016h-.004v-.027h.02V4.5h.004v.012h.004v.016h.004v.008zm.035.066l-.016.012v-.004l-.004-.004h-.004v-.008h-.004V4.59l-.004-.008v-.004h-.004v-.004l-.004-.004v-.004h-.004v-.012l-.008-.008v-.008h-.004l.02-.008v.004l.004.004v.004l.008.008v.008l.004.004v.004h.004v.004h.004v.008h.008v.004h.004v.004h.004v.004zm.07.145l-.02-.008.004-.004v-.027l-.004-.004v-.008l-.004-.004v-.004l-.008-.008v-.004l-.008-.008V4.66l-.004-.008-.004-.004v-.008l-.008-.004-.027-.027h-.004l.016-.016.008.004.004.004.008.016.008.004.004.004v.004l.004.008.008.004.004.004v.004l.004.004.004.008v.004l.008.008v.004l.004.004v.004l.004.008v.012l.008.004v.027l-.008.004zm-.047.035l.02-.008-.016-.004.004-.004h.004v-.004h.004v-.004h.004V4.75l.004-.004v-.004l.004-.004v-.004l.02.008v.004l-.004.004v.004l-.004.004v.004H6.82v.004h-.004v.004h-.004v.004h-.004v.004h-.004l-.004.004zm.016.004l-.008.004-.008-.008zm-.039-.051l.02-.008v.012h.004v.008h.004v.004h.004v.004l.004.004v.004h.004v.008l-.016.008V4.77h-.004v-.004l-.004-.004v-.004h-.004v-.004H6.77v-.008l-.004-.004v-.004l-.004-.004v-.008zm-.031-.066l.016-.016v.004h.004v.008l.008.004v.004l.004.004v.004h.004v.008h.004v.008l.004.004v.008l.004.008v.012l-.016.008v-.012h-.004v-.008l-.008-.004v-.012h-.004v-.004l-.004-.004v-.004l-.004-.004v-.004h-.004v-.004l-.004-.004zm0 0zm-.039-.043l.008-.02.008.004.004.004h.004l.012.012v.004h.004v.004h.004v.004l.008.008v.004h.004v.004l-.016.016-.004-.004v-.008h-.004v-.004h-.004v-.008h-.004v-.004h-.004v-.004h-.004v-.004h-.004v-.004h-.008v-.004zm-.055-.027l.016-.012h.004v.004h.004v.004h.02l.004.004h.008l.004.004h.004l.004.004-.008.02v-.004h-.008l-.004-.004h-.02v-.004h-.008l-.004-.004h-.004zm-.023-.156l.016.016v.004h-.004v.008h-.004v.043l.004.004v.012l.004.004v.004l.004.008v.004l.004.004v.004l.004.004v.004l.004.004v.004h.004v.004l.004.004-.012.016-.004-.008-.004-.004v-.004l-.004-.004v-.004h-.008v-.008l-.004-.004-.004-.008v-.004l-.004-.008v-.004l-.004-.004v-.012l-.004-.008v-.039l.004-.008v-.004h.004l.004-.004.004-.008zm.016-.102l.02-.008v.008l.004.004v.008l.004.004v.012h.004v.035l-.004.004v.004l-.004.004v.004h-.004v.008h-.004v.004l-.004.004-.008.004h-.004l-.004.008-.016-.012.004-.008h.004l.004-.004.004-.008.004-.004v-.004l.004-.004v-.004l.004-.008v-.016l-.004-.004v-.008l-.004-.004-.004-.008v-.004zm0-.059v.02l.008-.016v.031h.004v.02h.004l-.02.012v-.016h-.004v-.016l-.004-.004v-.02l.008-.016zm-.012.008l-.008-.012h.016l-.012.012zm.008.008v-.02zm0-.02zm0 0\" class=\"sr-B\"/><path d=\"M7.48 4.539c-.023.02-.031.02-.039.031s0 .039.004.066c.031.102-.027.086-.098.051-.035-.02-.074-.062-.105-.086s-.051-.023-.059-.035L7.16 4.48c0-.012-.008-.047-.02-.086.008-.016.031-.023.051-.051.02-.035.043-.094.074-.121.059-.066.117-.09.117.027 0 .027.008.059.02.07s.023.008.051.02c.02.012.039.027.055.043s.008.039.012.055.012.035.004.051-.02.035-.039.051zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M7.453 4.574l-.02-.012h.004v-.008h.008v-.004h.008v-.004h.004l.004-.004h.004v-.004h.004v-.004h.004v-.004l.016.016-.004.004H7.48v.004h-.004l-.008.008h-.004v.004h-.008v.004h-.004zm-.02-.012zm.02.07l-.016.004v-.004l-.004-.004v-.012H7.43V4.57h.004v-.004l.02.008v.004h-.004v.043h.004zm-.109.059l.012-.016h.004l.008.008h.004l.008.004h.004l.004.004h.004l.008.004h.012l.004.004h.016v-.004h.004v-.008l.004-.004V4.66l-.004-.008v-.004l-.004-.008.02-.008v.008l.004.008v.016l.004.008v.02l-.004.008v.004l-.008.008h-.004l-.004.004-.008.004h-.027l-.004-.004h-.012l-.008-.004-.004-.004h-.004l-.016-.008-.004-.004h-.008zm-.109-.086l.012-.02.004.004.008.004.004.008h.004v.004h.008v.008l.008.008h.004v.004h.008l.004.008.008.008.004.008h.004v.004l.004.004h.004l.004.004v.004h.008v.004h.004l.004.004.008.004-.012.02-.004-.004h-.004v-.004l-.008-.004h-.004l-.008-.008h-.004l-.004-.004h-.004v-.008h-.004l-.008-.004h-.004v-.008l-.004-.008h-.004l-.012-.012h-.004v-.004H7.25l-.004-.004-.004-.008-.008-.004-.004-.004h-.004zm.012-.02zm-.078-.02l.02-.004v-.004h.004v.004h.008l.004.004h.008v.004h.016l.004.004h.004l.008.008h.004l.004.004-.012.02v-.004h-.004v-.004H7.23l-.008-.008h-.008l-.004-.004h-.004v-.004h-.008l-.004-.004h-.004l-.004-.004h-.004V4.57H7.18v-.008zm.004.004v-.004zm-.012-.082v-.02l.012.008v.008l.004.004v.02h.004v.027h.004v.02h.004v.008l-.023.004v-.012l-.004-.008v-.012l-.004-.008v-.016h-.004v-.016l-.004-.004V4.48l.008.008zm0-.02h.012v.008zm-.012.012l.023-.004v-.004l-.012-.004v.02h-.008l-.004-.012zm.023-.004zm-.039-.09l.02.008v-.004.02h.004v.023l.004.004v.02l.004.004v.016l-.02.004v-.027l-.004-.004v-.016l-.004-.008v-.012h-.004v-.016l-.004-.004v-.008zm0 .004v-.004zm.051-.055l.02.008-.008.008-.004.008-.008.008H7.18v.004h-.004l-.004.004h-.008v.004H7.16v.004h-.004v.004h-.004l-.02-.004h.004v-.012h.004v-.004h.008v-.004h.004l.012-.012h.008v-.004l.008-.008v-.004h.004v-.004zm.074-.125l.016.012H7.27v.008h-.004v.008l-.008.004v.004l-.004.004v.004H7.25v.008l-.004.004v.008l-.008.004v.004l-.004.004v.004l-.004.004v.004l-.004.004v.008l-.004.008v.004l-.004.004v.004h-.004v.004l-.008.008-.02-.008.004-.004.004-.008v-.004h.004v-.004l.004-.004v-.008l.004-.004v-.004l.004-.004v-.004l.004-.004v-.004l.004-.004V4.27h.004l.004-.008v-.004l.004-.004V4.25l.004-.004v-.004l.008-.004V4.23l.008-.008v-.004l.004-.004h.004v-.008zm.133.035h-.02v-.027l-.004-.008v-.012l-.004-.004v-.008l-.004-.004h-.004V4.18h-.027l-.004.004-.008.004h-.004l-.004.004-.004.008-.008.004-.012.012-.008.004-.004.004-.016-.012.012-.012.008-.004.004-.008.004-.004.016-.008.004-.004h.004l.004-.008h.004l.008-.004h.004l.004-.004h.027l.023.023v.012l.004.012v.008l.004.004zm.02.066l-.016.016-.004-.004V4.32h-.004v-.004l-.004-.004v-.012l-.004-.004v-.016l-.004-.004v-.023h.02v.039h.004v.004l.004.004v.008h.004v.004l.004.004zm0 0zm.047.02l-.008.02-.008-.004h-.004l-.004-.004h-.008V4.34h-.02v-.004h-.008v-.004h-.004v-.004l.012-.012v.004h.008v.004h.016l.004.004h.008l.004.004h.004l.004.004zm.055.047l-.016.012h-.004v-.004l-.004-.004h-.004v-.012H7.48l-.004-.004h-.004v-.004h-.004v-.004h-.008v-.004h-.004l-.004-.004.004-.02.008.004h.004l.008.008h.004v.004h.004l.004.004h.004v.004h.004v.004H7.5v.004h.004v.004h.004v.004h.004zm-.016.012l.008.008zm.031.043l-.02.004v-.023L7.5 4.41v-.016h-.004v-.008l.016-.016v.008l.004.004v.004l.004.004v.043h.004v.004zm0 .063l-.016-.008v-.043l-.004-.004v-.008h.02v.02l.004.004v.035zm-.039.051l-.012-.016h.004v-.004l.004-.004V4.52h.004v-.004h.004v-.004h.004v-.004l.004-.004V4.5l.004-.004v-.004h.004v-.004l.02.008-.004.004v.004l-.004.004v.004h-.004v.008h-.004v.004h-.004v.004l-.008.008v.004h-.004zm-.012-.016zm0 0\"/><path d=\"M7.16 4.465l-.004-.02c.063-.016.117-.055.156-.105-.023.059-.086.105-.156.125zm.004.031c0 .008.004.012.008.02a.32.32 0 0 1 .184.059c-.043-.043-.117-.074-.191-.078zm0 0\"/></g><path d=\"M7.453 4.68c-.023-.004-.047-.016-.066-.031-.031-.023-.023-.074.004-.125.008-.02.012-.047.004-.07 0-.027-.012-.051-.027-.07-.047-.047-.074-.098-.051-.133.016-.027.039-.043.055-.055.008.012.008.027.008.051s.008.059.02.07.023.008.051.02c.02.016.039.027.051.043s.016.039.016.055.012.035.004.051-.02.035-.039.051-.031.02-.039.031 0 .039.004.066c.008.02.008.035.008.047zm0 0\" class=\"sr-D\"/><path d=\"M7.379 4.66l.012-.02h.004v.004h.004l.004.004h.004l.004.004h.004l.008.008h.008v.004h.008l.004.004h.008l.004.004h.004l-.008.02h-.008v-.004h-.008l-.004-.004h-.004V4.68h-.012l-.004-.004h-.004l-.004-.004h-.004v-.004h-.004l-.004-.004h-.004V4.66zm0-.141l.02.008v.004h-.004l-.004.008v.004l-.004.004v.004l-.004.008v.008l-.004.004v.008l-.004.004v.031l.004.008v.004h.004v.004l.008.008-.012.016-.008-.008v-.004h-.004v-.008l-.004-.004v-.008l-.004-.004v-.043h.004v-.016l.004-.004.004-.008v-.004l.004-.004v-.008l.004-.004v-.012zm.008-.066l.02-.004v.016h.004V4.5l-.004.004v.016h-.004v.004l-.02-.008h.004v-.012h.004v-.051zm-.027-.066l.016-.016v.008h.004v.008h.004v.004l.004.004v.004l.004.004v.004l.004.004v.008h.004v.016l.004.004v.016h-.02V4.43l-.004-.004v-.008h-.004V4.41h-.004v-.004l-.004-.004v-.004h-.004v-.004l-.004-.004zm0 0zm-.055-.145l.02.012H7.32v.016l-.004.004v.012l.004.004v.008l.004.004v.008l.004.004v.004l.004.004v.004l.008.004v.004l.008.008v.004l.008.004.004.008v.004l.008.008h.004l-.012.016-.008-.008-.008-.004-.004-.004v-.008l-.016-.016V4.34l-.008-.004-.004-.004h-.004v-.008l-.004-.004v-.004l-.004-.004v-.004l-.004-.008v-.008l-.004-.004v-.02l.004-.008v-.004l.004-.004V4.25zm.078-.051l-.016.008.012.008h-.004l-.004.004h-.004l-.004.004h-.004v.004h-.004v.004h-.004l-.02.02v.004h-.004v.004l-.004.004-.02-.012h.004v-.004l.008-.008v-.004h.004v-.004h.004v-.004h.004v-.004h.004l.008-.008h.004v-.004h.004l.008-.008h.004v-.004zm-.012 0l.008-.008v.012h-.012zm.02.059h-.02v-.043h-.004v-.008l.02-.008v.02h.004v.043zm.02.066l-.016.016-.004-.004v-.004h-.004V4.32l-.004-.004v-.016l-.004-.004v-.016l-.004-.004v-.023h.02v.031h.004v.012l.004.004v.008h.004v.004zm.047.02l-.008.02-.008-.004h-.004l-.004-.004h-.008v-.004h-.02V4.34h-.008v-.004h-.004v-.004l.012-.016v.004h.008v.004h.016l.004.004h.008l.004.004h.004l.004.004zm.055.043l-.016.012h-.004v-.004l-.004-.004h-.004v-.008H7.48l-.004-.004h-.004v-.004h-.004v-.004h-.008v-.004h-.004l-.004-.004.004-.02.008.004h.004l.008.008h.004v.004h.004l.004.004h.004v.004h.004v.004H7.5v.004h.004v.004h.004v.004h.004zm-.016.012l.008.012zm.031.047l-.02.004v-.027H7.5v-.016h-.004v-.008l.016-.012v.004l.004.004v.004l.004.004v.039h.004v.004zm0 .059l-.016-.008v-.043l-.004-.004v-.008h.02v.02l.004.004v.035zm-.039.055l-.012-.016h.004v-.004l.004-.004v-.004h.004V4.52h.004v-.008h.004v-.004l.004-.004V4.5h.004v-.008h.004v-.004l.02.008-.004.004v.004l-.004.004v.004l-.004.008v.004h-.004v.004h-.004v.004l-.008.008v.004h-.004zm-.012-.016zm-.02.043l-.02-.012v-.004h.004v-.004h.004v-.004h.008v-.004h.004l.004-.004h.004v-.004h.004v-.004h.004v-.004l.016.016-.004.004H7.48v.004h-.004l-.008.008h-.004l-.004.004h-.004v.004h-.004v.004zm-.02-.012zm.02.07l-.02.004v-.012h-.004v-.062h.004l.02.008h-.004v.055h.004zm-.02.004zm.016.051l.004-.02-.012.012v-.02h-.004v-.02l-.004-.004.02-.012v.02h.004v.02h.004v.016zm.012-.008v.012l-.012-.004zm-.008 0l-.004.008zm.008 0v.012l-.012-.004zm0 0\" class=\"sr-B\"/><path d=\"M7.012 4.34c.082 0 .16.07.168.156s-.043.152-.121.156-.148-.059-.164-.148c-.016-.078.035-.16.121-.16zm0 0\" class=\"sr-D\"/><path d=\"M7.191 4.492l-.02.004V4.48l-.008-.008v-.004l-.004-.008v-.008l-.008-.016-.004-.004-.008-.016-.008-.008-.004-.008-.008-.004-.004-.004-.004-.008-.008-.004-.004-.004-.008-.004h-.008l-.008-.008H7.07l-.004-.004h-.008l-.008-.004h-.004l-.008-.004h-.027v-.02h.035l.008.004h.008l.008.004h.008l.008.008.031.016.012.012.008.004.004.008.008.004.012.023.008.008.012.023v.008l.004.008v.008l.004.008v.016zm-.133.168v-.02h.016l.004-.004h.016l.004-.004h.008l.004-.004.008-.004h.004l.004-.008h.004l.004-.004.004-.008.008-.004v-.004l.008-.008v-.008l.008-.008.004-.008v-.004l.004-.008v-.012l.004-.008v-.043l.02-.004v.051l-.004.008v.016l-.004.008v.008l-.004.004v.012l-.008.004-.004.008-.008.004h-.004l-.004.008-.012.012h-.004l-.008.004-.004.004h-.004l-.008.008h-.008l-.004.004h-.008l-.004.004h-.031zm-.176-.156l.02-.004v.016l.004.012v.004l.008.008v.008l.008.004.008.016.004.004.004.008.004.004.008.016h.008l.004.004.004.008.004.004.008.004.004.004h.008l.008.004.004.004h.008l.008.004h.012l.008.004h.023v.023H7.02l-.008-.008h-.008l-.008-.004h-.008l-.008-.008-.016-.008-.004-.004-.023-.012-.008-.008-.004-.008-.012-.012-.008-.016-.004-.004-.012-.023v-.008l-.008-.016zm.125-.172v.02h-.02l-.008.004h-.008l-.004.004h-.008l-.004.004h-.004l-.004.008-.008.004-.004.004v.004l-.008.008-.004.008-.004.004v.004l-.008.008v.008l-.004.004v.012l-.004.008v.016l-.004.004v.016l.004.008v.016l-.02.004v-.066l.004-.008V4.43l.004-.008v-.008l.004-.008v-.004l.012-.012.004-.008.004-.004h.004l.004-.012.008-.004.004-.004.008-.004.004-.004.008-.004.004-.004h.008l.008-.004h.008l.004-.004h.02zm0 0\" class=\"sr-B\"/><path d=\"M7.02 4.387c.055-.004.113.047.121.109s-.031.117-.09.117-.109-.047-.117-.109.023-.113.086-.117zm0 0\" class=\"sr-D\"/><path d=\"M7.152 4.492l-.02.004v-.012l-.004-.004v-.004l-.004-.008v-.008l-.004-.004v-.004l-.004-.004-.004-.008v-.004l-.008-.004-.004-.004-.004-.008-.008-.008h-.004l-.004-.004h-.004l-.008-.008h-.004l-.004-.004-.008-.004h-.008v-.004h-.023v-.02h.023l.008.004h.004l.004.004h.004l.008.004h.004l.004.008h.008l.004.004.008.004h.004l.004.004.004.008.008.008v.004l.008.004h.004v.008l.004.008v.008l.008.004.004.004v.008l.004.004v.016l.004.008zm-.102.129v-.02h.023l.004-.004h.008l.004-.004h.004V4.59l.008-.008h.004v-.004l.008-.004V4.57h.004l.004-.004v-.004l.004-.004.004-.008v-.012l.004-.004V4.5h.02v.047l-.004.004v.004l-.004.008v.004l-.008.004-.004.004v.008l-.012.012-.008.004-.008.008h-.004l-.004.004h-.004l-.004.004h-.008l-.004.004h-.027zm0-.02zm-.129-.098h.02l.008.016v.004l.004.008.004.004v.008l.008.004.008.008v.004l.008.008.008.004.008.008H7v.008h.008l.004.004h.012l.004.004h.023v.02H7.02l-.008-.004h-.004L7 4.605h-.004l-.004-.004h-.004l-.004-.008-.008-.004-.004-.008-.02-.02-.004-.008v-.004l-.008-.004-.008-.008v-.008l-.004-.004V4.52l-.004-.004V4.5zm.02 0zm.082-.129v.02h-.012l-.004.004h-.012l-.004.004h-.004l-.008.008h-.004l-.004.008v.004l-.008.004-.004.004v.004h-.004v.008l-.004.004v.004l-.004.004v.016l-.004.004v.031h-.02v-.051h.004v-.008l.004-.008v-.004l.004-.004v-.004l.008-.004v-.004h.004l.004-.008.012-.012h.004l.004-.004h.004l.004-.004h.004l.004-.004H7l.008-.004h.012zm0 0\" class=\"sr-B\"/><path d=\"M7.023 4.426c.039 0 .074.031.082.07s-.023.074-.062.074-.066-.031-.074-.07.02-.07.055-.074zm0 0\" class=\"sr-G\"/><path d=\"M7.113 4.492l-.02.008v-.008l-.004-.004V4.48h-.008v-.008l-.016-.016h-.004l-.008-.008h-.004l-.004-.008h-.012v-.004h-.012v-.02h.02l.004.004h.004l.008.004h.004v.004h.008l.004.008v.004h.004l.004.004.008.004.004.008.004.004v.008h.004v.004l.004.008v.008l.004.004zm-.066.086v-.02h.012l.004-.004h.008v-.004h.004v-.004h.004v-.004h.004v-.004l.008-.004v-.008l.004-.004V4.5l.02-.008v.043h-.004v.004l-.004.008-.008.008h-.004v.004l-.004.004h-.008v.004h-.004l-.004.004h-.008v.004h-.02zm-.086-.074l.02-.004v.008l.004.008v.008h.004v.004l.008.008.004.008.008.008h.008v.004h.008l.004.004h.016v.02H7.02l-.004-.004h-.004l-.008-.004H7v-.004h-.004v-.004l-.008-.004-.004-.004v-.004H6.98v-.008h-.008v-.004l-.004-.004v-.004h-.004V4.52l-.004-.004zm.055-.078h.02l-.012.012h-.012l-.004.004H7v.004h-.004l-.012.012v.004H6.98v.012h-.004v.023l-.02.008v-.035h.004v-.012h.004v-.004h.004v-.008h.008v-.008h.004v-.004h.008V4.43h.004v-.004h.023l.004-.004h.008l-.012.012zm.02 0v.012h-.012zm0 0h-.02l.008-.008zm-.02 0v-.008h.008zm0 0\" class=\"sr-B\"/><path d=\"M8.441 3.672c.078 0 .137.059.137.141a.13.13 0 0 1-.137.133c-.074 0-.137-.059-.137-.137s.063-.141.137-.141zm0 0\" class=\"sr-C\"/><path d=\"M8.59 3.805h-.02c0-.043-.027-.09-.07-.109a.11.11 0 0 0-.059-.016v-.02c.051 0 .098.027.125.07.016.023.023.051.023.074zm-.148.152v-.023c.051 0 .094-.027.117-.066.008-.02.012-.039.012-.062h.023c0 .055-.031.105-.074.133-.023.012-.051.02-.074.02zm-.141-.145h.02c0 .066.059.121.125.121v.023c-.047-.004-.094-.027-.121-.07-.016-.023-.023-.051-.023-.082zm.145-.152v.02a.12.12 0 0 0-.109.07c-.008.02-.016.039-.016.063h-.02c0-.055.027-.102.07-.129.023-.016.051-.023.078-.023zm0 0\" class=\"sr-B\"/><path d=\"M8.441 3.43c.078 0 .137.059.137.141 0 .074-.062.137-.137.137s-.137-.066-.137-.141.063-.137.137-.137zm0 0\" class=\"sr-C\"/><path d=\"M8.59 3.57h-.02c0-.051-.027-.094-.074-.117-.016-.008-.039-.012-.059-.012v-.02c.051 0 .102.023.129.066.012.023.02.055.02.082zm-.148.145v-.02c.051 0 .094-.027.117-.066.008-.02.012-.039.012-.062h.023a.16.16 0 0 1-.074.129c-.023.016-.051.02-.074.02zm-.141-.145h.02c0 .07.055.125.125.125v.02c-.047 0-.094-.023-.121-.066-.016-.023-.023-.051-.023-.082zm.145-.148v.02a.12.12 0 0 0-.109.07c-.008.02-.016.039-.016.059h-.02c0-.051.027-.098.07-.125.023-.016.051-.02.078-.02zm0 0\" class=\"sr-B\"/><path d=\"M8.441 3.199c.078 0 .137.063.137.141s-.062.137-.137.137-.137-.062-.137-.141.063-.137.137-.137zm0 0\" class=\"sr-C\"/><path d=\"M8.59 3.34h-.02c0-.051-.027-.098-.074-.117-.016-.008-.039-.012-.059-.012v-.02c.051 0 .102.027.129.07.012.023.02.051.02.082zm-.148.148v-.02c.047 0 .094-.031.113-.07.008-.023.016-.043.016-.062h.02c0 .055-.027.102-.07.129-.023.016-.051.023-.078.02zm-.145-.148h.02c0 .047.027.094.07.113.02.008.035.012.055.016v.02c-.051-.004-.094-.031-.121-.074-.016-.023-.023-.051-.023-.078zm.145-.148v.02a.12.12 0 0 0-.109.07c-.008.02-.016.039-.016.063h-.02c0-.055.027-.102.07-.129.023-.016.051-.02.078-.02zm0 0\" class=\"sr-B\"/><path d=\"M8.441 2.547c.078 0 .137.063.137.141s-.059.137-.137.137c-.07-.016-.117-.074-.117-.141s.051-.129.117-.137zm0 0\" class=\"sr-C\"/><path d=\"M8.59 2.688h-.02c0-.051-.027-.098-.074-.117-.016-.012-.039-.016-.059-.012v-.023c.051 0 .102.027.129.07.012.023.02.051.02.082zm-.148.145v-.02c.051 0 .094-.027.117-.07.008-.016.012-.039.012-.059h.023c0 .051-.031.102-.074.125-.023.016-.051.023-.074.023zm-.141-.145h.02c0 .043.027.09.07.109.016.012.035.016.055.016v.02c-.047 0-.094-.027-.121-.066-.016-.027-.023-.055-.023-.082zm.145-.152v.023a.12.12 0 0 0-.109.07c-.008.016-.016.039-.016.059h-.02c0-.051.027-.102.07-.125.023-.016.051-.023.078-.02zm0 0\" class=\"sr-B\"/><path d=\"M8.441 2.75c.078 0 .137.059.137.137s-.059.141-.137.141-.137-.062-.137-.141.063-.137.137-.137zm0 0\" class=\"sr-C\"/><path d=\"M8.59 2.887h-.02c0-.047-.027-.094-.07-.113-.02-.012-.039-.016-.059-.012v-.023a.16.16 0 0 1 .129.074c.012.023.02.047.02.074zm-.148.148v-.02c.051 0 .094-.027.117-.07.008-.016.012-.039.012-.059h.023a.16.16 0 0 1-.074.129c-.023.012-.051.02-.074.02zm-.141-.148h.02c0 .047.027.094.07.113.016.012.035.016.055.016v.02c-.051 0-.094-.027-.121-.07-.016-.023-.023-.051-.023-.082zm.145-.148v.02c-.047.004-.09.031-.109.074-.012.02-.016.039-.016.055h-.02c0-.051.027-.102.07-.125.023-.016.051-.023.078-.023zm0 0\" class=\"sr-B\"/><path d=\"M8.441 2.973c.078 0 .137.059.137.137s-.059.141-.137.141-.137-.066-.137-.141.063-.137.137-.137zm0 0\" class=\"sr-C\"/><path d=\"M8.59 3.109h-.02c0-.047-.027-.094-.074-.117-.016-.008-.039-.012-.059-.012v-.02c.051 0 .102.027.129.066a.21.21 0 0 1 .02.082zm-.148.148v-.023c.051 0 .094-.027.117-.066.008-.02.012-.039.012-.059h.023c0 .051-.031.098-.074.125-.023.016-.051.023-.074.023zm-.141-.148h.02c0 .047.027.094.07.113.016.008.035.012.055.012v.023c-.047-.004-.094-.027-.121-.07-.016-.023-.023-.051-.023-.078zm.145-.152v.023a.12.12 0 0 0-.109.07c-.008.016-.016.039-.016.059h-.02c0-.051.027-.102.07-.125.023-.016.051-.023.078-.02zm0 0\" class=\"sr-B\"/><path d=\"M8.539 3.922c.02.031.016.039.027.047s.043.012.07.008c.105-.02.09.047.043.121-.02.035-.074.07-.105.102s-.031.055-.039.063h-.184c-.008-.008-.012-.035-.039-.062s-.086-.066-.105-.102c-.051-.074-.062-.141.043-.121.027.004.051.004.066-.008s.008-.023.027-.051c.012-.02.027-.035.043-.047s.039-.004.055-.004.039-.008.055.004.031.027.043.047zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M8.574 3.961l-.016.016-.004-.004h-.004v-.008h-.004v-.008h-.004v-.008l-.004-.004v-.004l-.004-.004-.004-.008v-.004l.016-.012v.004h.004v.008l.004.004v.004h.004v.008h.004v.008h.004v.008h.004zm-.016.016l-.004-.004zm.078-.008v.02H8.59l-.008-.004h-.004l-.004-.004H8.57l-.004-.004.012-.02v.004h.004v.004h.02l.004.004h.035zm.051.133l-.016-.012.004-.008.004-.004.008-.016v-.004l.008-.008v-.004l.004-.004v-.012l.004-.004V4l-.004-.004h-.004v-.004h-.012l-.004-.004h-.039l-.004-.02h.055l.008.004h.004l.016.016v.008L8.723 4v.035l-.004.008v.004l-.008.004v.008l-.004.008v.004l-.008.008v.004l-.004.004-.008.012zm-.105.105l-.012-.016.004-.004v-.004h.008l.004-.004v-.004h.008l.004-.004h.004v-.008h.004l.004-.008.004-.004h.004l.004-.004h.004v-.008l.004-.004h.004l.004-.004v-.004l.008-.008h.004v-.008h.008v-.008h.004v-.004h.004v-.008l.023.012-.004.004-.004.008v.004l-.004.004h-.004l-.008.008v.004l-.004.004-.008.004v.004h-.004l-.004.008-.004.004h-.004l-.004.008-.004.004-.008.004-.004.008h-.004v.004l-.008.004h-.004v.008l-.004.004h-.004v.004H8.59l-.008.008zm-.047.066v-.02l-.004.004v-.004h.004V4.25l.004-.004v-.004l.004-.004V4.23l.004-.004v-.004l.004-.004v-.004h.004v-.004l.008-.008.004-.008.016.012v.004l-.008.008-.004.008v.004h-.004v.004l-.004.004v.004l-.004.004v.004h-.004v.008h-.004v.004l-.004.004v.004h-.008zm.008 0h-.004zm-.102.004v-.02h.094v.02zm0-.02h.004zm0 0v.02zm0 0zm-.094.016l.012-.016h-.008.086l.004.02h-.094l-.008-.004zm.008 0h-.004zm-.051-.066l.016-.012v.004l.008.008.004.008.004.004v.004h.004v.008h.004v.008h.004v.008h.004v.008h.004v.004l-.008.016-.004-.004v-.004l-.004-.004v-.004h-.008V4.25h-.004v-.008l-.004-.004v-.004H8.32V4.23l-.004-.008-.012-.012zm-.105-.102l.02-.012v.004l.004.004h.004v.008l.004.004h.004v.004h.004v.008l.004.004h.004l.004.004.008.004v.004l.004.004h.008l.004.008h.004l.004.004v.004h.004l.004.008h.004l.004.004h.004v.008l.004.004h.004v.004h.008v.008l-.012.016-.016-.016-.008-.004v-.004l-.004-.004h-.004L8.27 4.18h-.004l-.004-.004h-.004v-.008l-.008-.004h-.004l-.004-.008v-.004h-.004l-.004-.004v-.004h-.008l-.004-.008v-.004l-.004-.004h-.004v-.004l-.008-.004-.008-.008zm.051-.137v.02l-.012-.004h-.039l-.004.004h-.004v.004h-.004V4l-.004.004v.023l.004.004v.008l.004.004v.004l.008.016v.004l.004.008.012.012.004.008-.02.012v-.008l-.008-.004-.004-.012-.004-.008V4.07l-.004-.008v-.008l-.008-.008v-.008l-.004-.004v-.012l-.004-.008v-.02l.004-.004v-.004l.008-.004.008-.008.008-.004h.004l.008-.004zm.063-.008l.016.016-.004.004H8.32l-.004.004h-.008l-.004.004h-.062v-.02h.051l.004-.004h.008v-.004zm.027-.047l.016.012v.004l-.004.004v.004h-.004v.008h-.004v.02H8.34v.004h-.008v.004l-.004.004-.016-.016h.004v-.008h.004v-.008h.004v-.004l.004-.004V3.93h.004v-.008h.008zm0 0l.004-.008zm.047-.051l.008.02-.004.004h-.004v.004h-.004v.004h-.004l-.012.012v.004h-.004v.004l-.008.008v.004l-.02-.012.008-.008v-.004h.004v-.004l.004-.004h.004v-.004l.008-.008h.004v-.008l.004-.004h.004v-.004h.004l.004-.004zm.055-.004v.02h-.047l-.012-.016h.004v-.004h.008l.004-.004h.043zm.059.004l-.008.02h-.008v-.008h-.043v-.02h.047l.004.004h.004zm0 0l.008.004zm.043.066v-.02l-.008.016-.004-.004v-.004h-.004v-.004l-.008-.008v-.004h-.004v-.004h-.004v-.004h-.004v-.004h-.012v-.004h-.004v-.004l.008-.02h.008l.008.008h.004v.004h.004v.008h.004v.004h.004v.004h.004v.004l.008.008v.004h.004v.004h.004v.004zm.008-.016l.008.016h-.02l.008-.016zm-.008-.004v.02l-.008-.004zm-.008.016l-.012-.016h.02zm0 0\"/><path d=\"M8.43 4.27l-.023-.004c-.008-.074-.039-.141-.086-.195.059.039.098.117.109.199zm0 0\"/></g><path d=\"M8.684 3.977c-.008.02-.02.051-.039.07-.031.031-.082.012-.129-.031a.15.15 0 0 0-.074-.02c-.023 0-.047.008-.066.02-.051.039-.102.063-.133.031a.18.18 0 0 1-.039-.07h.047c.027.008.055.008.07-.008s.004-.02.027-.051c.008-.016.023-.035.043-.047s.035-.004.051-.004.039-.004.055.004.031.027.047.047c.02.035.012.043.023.051a.11.11 0 0 0 .07.008.11.11 0 0 1 .051 0zm0 0\" class=\"sr-D\"/><path d=\"M8.652 4.051l-.016-.012v-.004l.008-.008v-.004h.004V4.02l.004-.004v-.004l.004-.004v-.004L8.66 4v-.004l.004-.004v-.004l.008-.008v-.008l.02.012v.008l-.004.004V4l-.004.004v.008H8.68v.004l-.004.004v.008h-.004v.004h-.008v.004H8.66v.004l-.008.008h-.004zm-.145-.027l.012-.016h.004l.004.004.008.004.004.008.004.004h.008l.004.004h.004l.004.004h.004l.004.004h.004l.004.004h.008l.004.004h.031l.008-.008h.004v-.004l.016.016-.004.004h-.004v.008h-.004l-.008.004h-.004l-.004.004h-.039l-.008-.004H8.57l-.004-.004h-.008l-.004-.004h-.004l-.008-.008h-.008l-.004-.008h-.004l-.016-.016-.008-.004zm.012-.016l.012.008zm-.078-.004v-.02h.039v.004h.012v.004H8.5l.008.004h.004L8.516 4h.004v.004h.004l-.016.02h-.004v-.008H8.5v-.004h-.02v-.004h-.02v-.004zm-.062.02l-.012-.016v-.004h.004L8.375 4h.004v-.004h.004l.004-.004h.008v-.004h.027v-.004h.02v.02H8.41v.004h-.012l-.004.004h-.008v.004h-.004l-.004.004zm-.145.027l.012-.012.008.004.004.004h.004v.004h.035v-.004h.008l.004-.004h.004v-.004h.008l.008-.008h.004l.008-.004h.004l.004-.008.004-.004v-.004h.008l.012.012-.008.008-.008.004-.008.008h-.004l-.004.008h-.008l-.004.004h-.004l-.008.004h-.004l-.004.004h-.004l-.004.004h-.004l-.008.004h-.027l-.012-.004h-.004l-.008-.008zm-.035-.078l.004.02.008-.016v.004l.004.004v.008l.004.004v.008l.004.004v.004h.004v.008h.004v.008h.004v.004h.004v.004h.004v.004l.004.004-.016.016h-.004v-.004h-.004v-.004h-.004v-.012h-.004v-.004h-.004v-.004l-.004-.004v-.004h-.004v-.012h-.004v-.008L8.195 4v-.008h-.004l.008-.016zm-.008.012l-.004-.012.012-.004zm.059-.012l-.004.02-.004-.004h-.043l-.004-.02h.047zm.063-.008l.012.016-.004.004h-.004l-.004.004h-.008l-.004.004h-.055v-.02h.047l.004-.004h.008v-.004zm.012.016l-.008.008zm.016-.062l.012.012v.004l-.004.004v.004h-.004v.012H8.34v.016h-.004v.004h-.004v.004l-.004.004-.016-.016h.004v-.008h.004v-.008h.004v-.004l.004-.004v-.008h.004v-.008h.004v-.004zm.043-.051l.012.02-.004.004h-.004v.004h-.004v.004h-.004l-.012.012v.004h-.004v.004l-.008.008v.004l-.023-.012.008-.004.004-.004v-.004h.004v-.004l.004-.004h.004v-.004l.008-.008h.004v-.004l.004-.008h.004v-.004h.004zm.059-.004v.02h-.047l-.012-.016h.004v-.004h.008l.004-.004h.043zm.059.004l-.012.02H8.48v-.004h-.039v-.023h.047l.004.004h.004zm0 0l.008.004zm.047.051l-.016.012-.004-.004v-.004h-.004v-.004l-.012-.012v-.004h-.004v-.004h-.004v-.004h-.008v-.004h-.004v-.004l.008-.02h.004l.008.008h.004v.008h.004v.004h.004v.004h.004v.004h.004v.004l.008.008v.004h.004v.004h.004zm.027.047l-.016.016-.004-.004h-.004v-.008h-.004v-.008h-.004v-.008l-.004-.008v-.004l-.008-.008V3.93l.016-.012v.004h.004v.004l.004.004v.004h.004v.008h.004v.012h.004v.008h.004zm-.016.016l-.004-.008zm.078-.008v.02H8.59l-.008-.004h-.004l-.004-.004h-.008V3.98h-.004l.016-.02v.004h.004v.004h.016l.004.004h.039zm.059.008l-.02-.008.008.016h-.043l-.004-.02h.047l.012.016zm-.008-.012h.012l-.008.012-.008-.012zm0 .008l.008.004-.012-.004zm0-.008h.012l-.008.012-.008-.012zm0 0\" class=\"sr-B\"/><use xlink:href=\"#B\" class=\"sr-D\"/><path d=\"M8.461 4.27l.016-.004c.008-.074.039-.141.086-.195a.3.3 0 0 0-.102.199zm0 0\" class=\"sr-B\"/><path d=\"M10.824 4.254c.043-.082.008-.199-.004-.223-.008-.016.012-.043.02-.055.262-.367.266-.402.086-.539-.16-.121-.523-.242-.785-.324-.051-.043-.086-.102-.133-.145.5.035 1.039.238 1.309.477.145.125-.031.383-.246.762-.133.102-.195.141-.246.047zm0 0\" class=\"sr-D\"/><path d=\"M10.828 4.027l-.02.008v.004l.004.004v.004l.004.008v.008l.004.004v.012l.004.008v.016l.004.008v.031l.004.008v.051l-.004.008v.008l-.004.008v.008l-.004.008v.008l-.004.008.02.004V4.25l.008-.008V4.23l.004-.008v-.008l.004-.008v-.016l.004-.012v-.059l-.004-.008v-.027l-.004-.004v-.008l-.004-.004v-.012l-.004-.008v-.012l-.008-.004v-.004zm.023-.047l-.023-.012v.004h-.004v.008h-.004v.008h-.004v.004l-.004.004v.008h-.004v.027l.02-.008v-.012l.004-.004v-.004L10.84 4v-.004l.004-.004v-.004h.004v-.004zm.078-.551l-.008.02.016.012.012.012.016.012.008.012.012.008.035.035.004.008.008.008.004.012v.008l.008.012v.035l-.004.012-.004.016-.004.012-.008.02-.008.016-.008.02-.023.039-.016.02-.012.027-.02.023-.016.027-.02.027-.02.031-.02.027-.027.035.016.012.027-.035.02-.031.02-.027.02-.031.02-.023.016-.023.016-.027.016-.02.012-.02.016-.02.008-.02.012-.02.004-.016.004-.02.004-.016v-.012l.004-.016v-.027l-.016-.047-.008-.016-.012-.008-.008-.012-.012-.008L11 3.48l-.016-.012-.012-.016-.016-.012-.012-.012zm-.781-.328l-.012.02h.004l.023.008.023.012.023.008.027.004.027.008.027.012.027.008.027.012.031.008.027.012.027.008.023.012.027.008.031.012.023.012.027.008.031.012.023.012.027.012.027.008.023.016.047.023.02.008.023.012.02.008.02.016.023.012.02.008.02.016.012.012.016.012.012-.02-.016-.012-.02-.012-.016-.012-.02-.016-.02-.012-.023-.008-.02-.012-.023-.012-.023-.008-.02-.016-.082-.035-.047-.016-.031-.012-.023-.012-.027-.008-.027-.012-.027-.008-.027-.012-.055-.016-.027-.012-.055-.016-.023-.008-.027-.012-.023-.008-.027-.008-.023-.008-.027-.008zm-.012.02h.004zm-.133-.141v-.023l-.008.02.004.004.008.004.004.004.004.008.008.008v.004l.008.004.008.008.008.016.008.008.004.008v.004l.008.004.004.008.012.012.008.004.004.004h.004l.004.008.008.004.004.004.004.008.004.004.008.004.004.004.012-.02v-.004l-.008-.004-.016-.016-.008-.004-.008-.008v-.004l-.016-.016v-.004l-.008-.004-.004-.004-.008-.016v-.004l-.008-.004-.004-.004L10.055 3l-.004-.004v-.004l-.008-.004-.008-.008-.004-.008-.004-.004h-.004l-.004-.004-.008.016zm0-.023l-.027-.004.02.023.008-.023zm1.305.492l.016-.016-.031-.02-.055-.047-.031-.023-.027-.02-.105-.059-.039-.023-.035-.02-.078-.039-.043-.016-.039-.02-.043-.016-.039-.016-.047-.016-.047-.02-.043-.012-.047-.016-.047-.012-.047-.008-.047-.016-.094-.023-.051-.008-.094-.016-.047-.004-.094-.016-.047-.004v.023l.094.008.043.008.047.004.141.023.188.047.043.012.047.016.043.012.043.02.043.016.047.016.039.02.039.016.086.039.039.02.035.016.035.02.039.02.031.023.094.059.031.023.027.02.023.023zm-.242.75l.008.016.004-.004.023-.031.02-.039.02-.031.02-.035.016-.035.02-.031.031-.063.02-.027.016-.031.031-.055.023-.055.012-.023.012-.027.008-.023.012-.023.004-.02.008-.02.008-.023v-.023l.004-.02V3.52l-.008-.016-.004-.016-.008-.016-.012-.016-.008-.016-.016-.012-.016.016.023.023.008.016.008.012.004.012.004.016v.094l-.008.02v.02l-.008.02-.012.02-.008.027-.016.047-.012.027-.016.027-.012.027-.016.027-.02.027-.016.031-.02.031-.016.027-.02.035-.016.031-.039.07-.02.039-.023.031h.008zm.008.016l.004-.004zm-.25.027v.02l-.008-.004.008.016.008.008.008.004.004.004.004.008.008.004.004.004h.008l.008.004h.043l.008-.004.012-.004.008-.004.004-.004.012-.004.008-.008.008-.004.012-.008.008-.008.012-.004.012-.008.008-.008.035-.023.008-.012-.008-.016-.016.008-.008.008-.035.023-.008.012-.012.004-.008.004-.008.008-.008.004-.008.008-.008.004-.012.004-.008.004h-.012l-.004.004h-.031l-.004-.004h-.004l-.004-.008-.004-.004-.008-.004-.004-.004v-.008l-.008-.008-.004-.008-.008-.008zm.008.004v-.008h-.008zm-.008.012v-.02l-.008.008zm-.008-.012l-.008.012h.016l-.008-.016zm0 0\" class=\"sr-B\"/><path d=\"M10.906 4.285l.02-.094c.016-.059.008-.117-.012-.168l.18-.266c.031-.066.059-.141.039-.215s-.09-.133-.152-.18a1.39 1.39 0 0 0-.273-.152c-.219-.09-.398-.141-.527-.141l.082.078c.238.078.527.184.668.289.18.137.172.172-.086.539-.012.012-.027.039-.023.055.012.023.039.145 0 .227.023.039.055.02.086.023zm0 0\" class=\"sr-D\"/><path d=\"M10.938 4.191l-.02-.004v.016l-.004.004v.012h-.004v.02l-.004.004v.008l-.004.004v.016h-.004v.012h-.004l.02.008v-.008l.004-.004v-.004l.004-.008v-.008l.004-.008v-.012h.004v-.012l.004-.004v-.016l.004-.004zm-.02-.004zm.008-.156l-.02-.012v.012l.004.008v.004l.004.004v.02l.004.004v.016l.004.004v.094l-.004.008.02.004v-.012l.004-.004V4.07h-.004v-.02l-.004-.004v-.008l-.004-.004v-.004l-.004-.008v.012zm-.02-.012v.012-.016zm.195-.258l-.023-.008v.012l-.004.008-.008.008v.008l-.008.008-.004.008-.004.012v.008l-.016.016-.016.031-.008.012-.004.008-.016.016-.008.016-.004.012-.008.008-.004.008-.008.008-.008.016-.008.008-.008.016-.008.008-.004.008-.008.012.02.012.004-.008.008-.012.004-.008.016-.016.012-.023.008-.008.004-.008.008-.012.008-.008.008-.004.008-.016.008-.012.004-.008.008-.008.008-.012.012-.023.008-.012.008-.016.008-.008.004-.008.008-.012.008-.016.004-.012.004-.008zm.039-.219l-.02.008.004.004v.082l-.004.008v.008l-.004.004v.016l-.008.008v.008l-.004.008v.012l-.004.004v.008l-.008.004v.004l-.004.008v.008l-.008.004.023.012v-.004l.004-.008.004-.004v-.008l.004-.008v-.008l.008-.004v-.008l.004-.004.004-.008v-.004l.004-.004V3.68l.004-.008v-.008l.004-.004v-.016l.004-.008v-.027l.004-.008V3.57l-.004-.004v-.016zm-.156-.187l-.012.016.008.004.004.008.008.004h.004l.027.027.008.004.004.008.004.004.008.004.016.016v.008l.023.023.008.004.008.016v.004l.004.008.004.004v.008l.008.008v.004l.004.008v.008l.02-.008v-.008l-.004-.008V3.52l-.008-.016v-.008l-.016-.016-.004-.008v-.004l-.008-.012-.004-.008-.008-.008-.012-.008-.039-.039-.008-.004-.004-.008-.004-.004-.008-.004-.004-.004H11l-.004-.008-.008-.004zm-.273-.148l-.008.016.016.008.012.004.016.008.012.004.008.008.023.008.008.004h.012l.008.004.008.008.016.008.012.004.016.008.008.008.016.008.008.008.016.008.012.004.004.004.023.012.004.008.016.008.012-.016-.004-.004h-.008l-.016-.016-.023-.012-.008-.008-.012-.004-.031-.016-.012-.004-.016-.008-.008-.008h-.008l-.012-.004-.008-.008-.012-.004-.016-.008-.012-.008-.016-.008h-.008l-.012-.004-.008-.004-.012-.004-.008-.004h-.008zm0 0zm-.539-.129l.012-.016-.008.016h.031l.012.004h.035l.016.004h.016l.012.004h.016l.031.008h.016l.016.004.016.008.02.004.031.008.02.008.016.004.02.008.039.008.016.008.02.004.02.012.02.008.016.008.039.016.023.008.02.008.008-.02-.039-.016-.02-.012-.02-.008-.02-.004-.02-.012-.023-.004-.039-.016-.016-.004-.02-.008-.016-.008-.02-.004-.016-.008h-.02l-.02-.008-.047-.012h-.016l-.031-.008h-.016l-.012-.004h-.016l-.016-.004h-.027l-.012-.004h-.035l-.008.016zm.008-.02h-.031l.023.02zm.086.078l-.078-.074-.016.012.078.078.008.004zm-.016.016l.008.004zm.672.297l.012-.02-.016-.012-.016-.008-.02-.012-.012-.008-.016-.012-.039-.02-.039-.016-.016-.012-.023-.008-.02-.012-.02-.004-.02-.012-.027-.008-.02-.008-.023-.012-.02-.008-.027-.008-.02-.012-.023-.012-.094-.031-.027-.008-.023-.012-.02-.008-.027-.008-.023-.008-.02-.004-.023-.008-.004.02.023.004.02.008.047.016.023.012.023.008.027.004.023.008.02.008.047.023.02.008.027.008.02.008.027.008.02.008.023.012.02.008.02.012.023.012.02.008.02.012.023.008.02.012.016.008.02.012.047.023.016.012.012.008.016.008zm-.09.523l.016.008.027-.035.02-.027.02-.031.039-.055.031-.047.016-.02.012-.02.016-.023.016-.039.008-.012.004-.023.004-.012v-.016l.004-.012v-.031l-.016-.047-.008-.012-.043-.043-.016-.008-.012-.016-.016-.012-.012-.016-.012.02.016.012.012.012.016.012.008.012.012.012.016.008.008.012.012.012.004.008.008.012.004.008v.012l.004.012v.043l-.004.016-.023.047-.008.02-.012.02-.012.023-.012.02-.016.023-.02.027-.012.023-.023.027-.039.063-.023.035zm-.02.059l.02-.004v-.023h.004V4l.004-.004v-.004h.004v-.008l-.016-.012-.004.004v.008h-.004v.004l-.004.004v.004L10.813 4v.008h-.004v.027zm-.004.234l.02-.012v.012l.008-.016v-.008l.004-.012v-.012l.004-.008v-.008l.004-.008v-.109l-.004-.008v-.016l-.004-.008v-.008l-.004-.008v-.008l-.004-.004-.02.008v.004l.004.004v.012l.004.004v.012l.004.004v.023l.004.008v.102l-.004.008v.016l-.008.012v.008l-.008.016v.008zm0-.008v.008zm.098.02v.02-.02h-.004l-.004-.004h-.027v.004h-.027l-.004-.004h-.008V4.27h-.004v-.004l-.004-.004-.004-.008-.02.012.008.008v.004l.004.004h.004v.004l.008.004h.008l.004.004h.008v.004h.059v-.02zm0 .02v-.02l-.012.004.012.012zm-.012-.016l-.004.012h.016zm0 0\" class=\"sr-B\"/><path d=\"M8.727 2.648c-.008-.047 0-.039.004.035.008-.016.016-.023.031-.023s.031.035.035.105l-.004.059c.66-.016 1.055.086 1.152.277.086.16-.059.422-.27.727-.027.035-.027.031 0 .059.035.047.074.121.043.184.129.074.285.086.422.031.02-.059.066-.09.105-.117.012-.004.043-.02.043-.027l.203-.633c.191-.617-1.508-.676-1.766-.676zm0 0\" class=\"sr-D\"/><path d=\"M8.738 2.688l-.02-.012.02.008v-.039h-.004v-.023l-.004-.004-.012-.004-.004.004v.031h.02v-.023l-.008.004h-.012v-.004.02l.004.004v.039zm-.02 0l.004.031.016-.031zm.043-.016v-.02h-.016v.004h-.008v.004h-.004v.004H8.73v.004h-.004v.004h-.004v.004l.02.012v-.004h.004v-.008h.004v-.004zm0 0zm.023.094h.02V2.73l-.004-.008v-.016l-.004-.008v-.012h-.004V2.68l-.004-.008-.008-.008h-.004V2.66h-.004v-.004h-.008v.02h.004v.004h.004v.004l.004.004v.008l.004.004v.012l.004.004v.043l.004.004v.008zm.02 0zm-.012.066v-.02l.008.012v-.047h.004V2.77l-.02-.004v.035l-.004.004v.02l.012.012zm-.012-.008v.008h.012zm1.156.285l.02-.012-.012-.02-.016-.016-.016-.02-.016-.016-.078-.062-.027-.016-.023-.012-.027-.012-.062-.023-.035-.016-.031-.008-.039-.008-.039-.012-.035-.008-.039-.008-.047-.008-.086-.008-.047-.008-.051-.004-.047-.004h-.051l-.055-.004h-.055l-.055-.004h-.18v.02h.238l.055.004h.051l.055.004.047.004.051.004.043.008.047.004.043.004.078.016.043.008.07.016.035.012.031.008.031.012.027.012.027.008.027.016.023.012.02.016.02.012.02.016.02.012.012.02.016.016.012.016.012.02zm-.273.711l.02.012.059-.082.02-.031.016-.023.016-.031.02-.023.047-.082.016-.023.012-.027.012-.02.012-.023.012-.027.012-.023.008-.023.008-.02.012-.02.004-.023.008-.023.004-.02.004-.023v-.02l.004-.02v-.055l-.004-.016-.008-.02-.008-.031-.02.012.008.012.012.047v.09l-.004.02-.008.02v.023l-.008.02-.008.023-.008.02-.008.023-.012.02-.012.023-.012.027-.012.023-.012.027-.012.02-.031.055-.016.023-.016.027-.039.055-.02.023-.016.031-.02.027-.02.031zm0 .078l.02-.016-.004-.008-.004-.004h-.004v-.004l-.008-.004v-.008l.008-.004v-.004h.004v-.004h.004v-.008h.004l-.02-.012-.004.004-.004.008v.004h-.004v.008h-.004v.004l-.004.004v.02l.004.004v.004h.004v.004l.008.008.004.008zm.051.18l.008-.016.004.012V4.07l.004-.012v-.004l.004-.008v-.07l-.004-.004v-.008l-.004-.008-.004-.004v-.008l-.004-.008-.004-.004v-.008l-.004-.004v-.004l-.008-.004-.004-.008v-.004l-.008-.008v-.008l-.008-.004-.004-.004-.016.016.008.008v.004h.008v.004l.004.008.004.004v.004l.008.008v.004l.004.004.004.008v.016l.004.004v.004l.004.004v.012l.004.008v.055l-.004.008-.004.004.004.012zm-.004-.012v.008l.004.004zm.438.039l-.02-.008.004-.004-.047.016h-.016l-.023.008h-.016l-.012.004h-.113l-.016-.004h-.008l-.016-.004h-.012l-.012-.004-.016-.004-.012-.004-.016-.004-.012-.004-.023-.016-.012-.004-.016-.008-.012-.004-.008.02.012.004.012.008.016.008.012.004.012.008.016.004.035.012.016.004h.012l.012.004h.016l.012.004h.012l.016.004h.102l.012-.004h.016l.012-.004h.012l.016-.008.012-.004.016-.008.012-.004.016-.004.004-.008zm-.008.004l.004-.004v-.004zm.113-.117l-.012-.02-.008.008h-.004l-.008.008h-.004l-.004.004v.004h-.008v.008h-.004l-.004.004h-.004l-.004.008-.02.02v.004l-.008.004v.004l-.008.008v.004l-.008.004-.008.008v.004l-.004.008v.004l-.004.008.02.008.004-.004V4.09h.004v-.008l.008-.008V4.07l.008-.008v-.004l.008-.004.004-.004.004-.008.004-.004.008-.004h.004l.004-.008v-.004l.004-.004h.004v-.008h.008l.004-.004h.004l.004-.004h.004L10.246 4h.004l.004-.004h.004zm.039-.031l-.016-.008h-.004v.004h-.004l-.004.004h-.004v.004h-.008v.004h-.004l-.004.004h-.004l.012.02.004-.004h.004v-.004h.008V3.98h.004l.004-.004h.004v-.004h.004v-.004h.004v-.004h.004zm.203-.637l-.02-.008-.008.039-.004.016-.008.023-.004.02-.008.016-.008.02-.004.02-.008.02-.004.02-.008.023-.008.016-.004.02-.008.02-.008.039-.008.02-.004.02-.008.023-.008.02-.004.02-.031.078-.008.023-.008.02-.004.02-.008.023-.016.039-.008.027.02.004.008-.02.004-.023.004-.02.008-.023.004-.02.008-.02.004-.023.012-.02.004-.02.008-.02.008-.023.004-.02.008-.02.004-.02.023-.059.008-.023.004-.02.008-.016.016-.039.004-.02.008-.02.004-.016.008-.023.008-.039.008-.016.004-.02.008-.016.004-.02zm-1.762-.676h-.02l.008.008h.109l.051.004h.055l.059.004.066.004.07.004.074.008.156.016.082.008.078.012.086.012.078.016.086.02.078.016.082.02.074.02.141.055.066.031.059.027.051.035.047.031.039.043.035.035.023.043.016.043.008.047v.051l-.016.055.02.008.016-.059v-.055l-.008-.055-.02-.047-.023-.043-.035-.043-.043-.039-.051-.039-.051-.031-.062-.031-.066-.031-.07-.027-.07-.02-.078-.023-.078-.02-.078-.023-.164-.023-.086-.012-.078-.012-.082-.012-.078-.008-.082-.008-.074-.008-.07-.004-.066-.004-.059-.004h-.059l-.051-.004h-.105l.012.008zm-.02 0v.008h.008l-.012-.008zm.008 0h.008zm-.012 0v.008h.012l-.016-.008zm0 0\" class=\"sr-B\"/><path d=\"M9.984 3.816c-.07 0-.125.055-.125.125s.059.129.125.129a.13.13 0 0 0 .129-.129c0-.07-.059-.125-.129-.125zm0 0\" class=\"sr-C\"/><path d=\"M9.848 3.941h.02c0-.043.027-.086.066-.105a.12.12 0 0 1 .051-.012v-.02c-.043 0-.09.023-.113.063-.016.023-.02.047-.02.074zm.137.141v-.02c-.043 0-.086-.027-.102-.066-.008-.016-.016-.035-.016-.055h-.02c0 .047.027.094.066.121.023.016.047.02.074.02zm.141-.141h-.02c0 .047-.027.09-.066.109-.016.008-.035.008-.055.008v.02c.051 0 .094-.023.117-.066.012-.02.02-.047.02-.07zm-.141-.141v.023c.047 0 .086.023.105.066.008.016.012.031.016.051h.02c0-.047-.027-.094-.07-.121-.02-.012-.047-.02-.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M11.07 4.082c-.062 0-.121.055-.121.121s.059.121.121.121.121-.055.121-.121-.055-.121-.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M10.941 4.203h.02c0-.039.02-.078.059-.094.016-.012.031-.016.051-.016v-.02c-.043 0-.082.023-.109.059-.012.023-.02.047-.02.074zm.129.129v-.02c-.039 0-.082-.023-.098-.059-.008-.016-.012-.031-.012-.051h-.02c0 .043.023.086.059.109.023.012.047.02.07.02zm.129-.129h-.02c0 .043-.023.082-.059.098-.016.008-.031.012-.051.012v.02c.043 0 .086-.023.109-.059.012-.02.02-.047.02-.07zm-.129-.129v.02c.039 0 .078.027.102.059.004.02.008.035.008.055h.02a.13.13 0 0 0-.059-.109c-.023-.016-.047-.023-.07-.023zm0 0\" class=\"sr-B\"/><path d=\"M11.188 3.863c-.07 0-.121.055-.121.121s.051.121.121.121c.063 0 .113-.055.113-.121s-.051-.121-.117-.121zm0 0\" class=\"sr-C\"/><path d=\"M11.055 3.984h.02c0-.039.027-.078.063-.098.016-.008.031-.012.047-.012v-.02a.13.13 0 0 0-.109.059c-.012.023-.02.047-.02.07zm.133.129v-.02c-.043 0-.082-.023-.098-.055-.008-.016-.012-.035-.016-.055h-.02c0 .047.023.086.063.113.02.012.043.02.066.02zm.125-.129h-.02c0 .043-.023.082-.062.098-.012.008-.031.012-.047.012v.02c.039.004.086-.02.105-.059.012-.02.02-.043.02-.066zm-.129-.129v.02a.11.11 0 0 1 .094.055c.008.02.012.035.012.055h.02c0-.043-.023-.086-.059-.109-.02-.012-.043-.02-.066-.02zm0 0\" class=\"sr-B\"/><path d=\"M11.289 3.645c-.066 0-.117.055-.117.121s.051.121.117.121.121-.055.121-.121-.055-.121-.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M11.16 3.766h.023c0-.043.023-.082.059-.102.016-.008.031-.012.047-.012v-.02c-.043 0-.086.023-.105.063-.016.02-.023.043-.023.07zm.129.129v-.023a.11.11 0 0 1-.094-.051c-.008-.02-.012-.035-.012-.055h-.023c0 .039.023.086.063.109.02.012.043.02.066.02zm.129-.129h-.02c0 .039-.02.082-.059.098-.016.008-.031.012-.051.012v.02c.047 0 .086-.02.109-.059.012-.02.02-.043.02-.066zm-.129-.129v.02c.039 0 .082.023.098.059a.12.12 0 0 1 .012.051h.02c0-.043-.02-.086-.059-.109-.023-.012-.047-.02-.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M9.199 4.055c-.066-.004-.051.117-.039.145.02.039.035.039.059.004.016-.023.051-.145-.02-.148zm0 0\" class=\"sr-D\"/><path d=\"M9.152 4.203l.023-.008h-.004v-.012l-.008-.008v-.008L9.16 4.16v-.066h.004v-.008l.008-.004v-.004l.004-.004h.004l.004-.004h.004l.004-.004h.008v-.02h-.016l-.004.004h-.008l-.008.004v.004l-.008.008-.004.008v.004l-.004.004v.016l-.004.008v.074l.004.004v.012l.004.004v.012h.004zm.074.008l-.016-.016-.004.008v.004h-.004v.004h-.004v.004h-.012l-.004-.004v-.004H9.18v-.004h-.004v-.008l-.023.008v.004l.004.004v.004h.004v.004l.004.004.008.004h.008v.004h.027v-.004h.004v-.004h.004v-.004h.004v-.004h.004v-.008h.004zm-.023-.168v.02h.008v.004h.008v.004h.004v.004l.004.004v.008h.004v.066l-.004.004v.012l-.004.004v.008l-.004.004v.004l-.004.004v.004h-.004l.02.012v-.008l.004-.004v-.004l.004-.008V4.18l.004-.008v-.004l.004-.004v-.016l.004-.008v-.059l-.004-.008V4.07l-.004-.008-.008-.008H9.23l-.004-.008-.008-.004h-.008l-.004-.004zm0 0\" class=\"sr-B\"/><path d=\"M9.195 4.121c-.16-.012-.121.277-.086.344.039.082.078.086.133.008.039-.059.117-.34-.043-.352zm0 0\" class=\"sr-C\"/><path d=\"M9.098 4.469l.02-.008-.008-.016v-.008l-.004-.012-.004-.008v-.012l-.004-.012-.004-.016v-.027L9.09 4.34v-.102l.004-.016v-.012l.008-.016.004-.012.008-.008.004-.012.008-.008.004-.008.008-.008.012-.004.008-.004.012-.004h.027v-.02h-.031l-.023.008-.023.016-.016.016-.008.016-.004.012v.016l-.008.012-.004.012v.016l-.008.016v.125l.008.016v.016l.004.012v.012l.008.012v.012l.004.008v.008l.008.008zm.148.008l-.016-.008-.004.004-.004.008-.004.004-.004.008h-.004V4.5h-.008l-.008.008h-.008l-.004.004h-.02v-.004h-.008l-.004-.004V4.5l-.008-.008h-.004l-.004-.008v-.008l-.012-.012-.004-.008-.02.008.008.008.004.012.004.004.008.016.008.008.004.008.008.008h.004v.008h.008l.004.004h.027l.008-.004h.004l.004-.008v-.004l.008-.004.008-.008.008-.004.004-.008.008-.008zm-.047-.344v-.02.02h.012l.023.008.008.004.008.008.012.008.008.008.004.008.008.012.004.012v.012l.004.008v.016l.004.016v.012l-.004.012v.027l-.004.016v.016l-.008.016v.012l-.004.012-.004.016-.004.008-.004.012-.004.016-.008.008-.004.008-.004.012-.004.008-.004.004.023.012v-.008l.008-.016.004-.012v-.012l.008-.008.004-.016.008-.023.004-.016v-.016l.008-.012V4.32l.004-.012v-.035l.004-.016v-.016l-.004-.016v-.012l-.004-.012v-.016l-.008-.012-.004-.012-.016-.023-.008-.008-.023-.016-.016-.004-.012-.004h-.016zm0-.02v.02zm0 0\" class=\"sr-B\"/><path d=\"M10.492 4.227c-.066-.02-.082.102-.07.133.008.043.023.047.051.023.02-.027.082-.133.02-.156zm0 0\" class=\"sr-D\"/><path d=\"M10.41 4.363l.02-.004v-.059l.004-.004v-.016l.004-.004V4.27l.004-.004v-.004l.008-.004.004-.004.004-.008.008-.004h.004l.008-.004h.012l.008-.023h-.031l-.012.012-.008.004-.004.008-.004.004v.008l-.004.004v.008l-.004.008v.004l-.004.008v.004l-.004.008v.016l-.008.004v.051zm.07.02l-.016-.012h-.004v.004h-.004l-.004.004h-.004v.004h-.008l-.004-.004v-.004h-.004v-.012h-.004v-.008l-.02.004v.008h.004v.012l.004.004v.004h.004l.008.008h.004l.004.004h.02v-.004h.008l.004-.004h.004v-.004h.004l.004-.004v-.004zm.012-.164l-.004.02h.004l.004.004h.004v.004l.008.004v.004l.004.004v.035l-.004.008v.008l-.008.008v.004l-.004.004-.004.008v.004l-.004.008-.004.004v.004l-.004.004v.004l-.016.016.016.012h.004v-.008l.004-.004v-.004l.008-.004v-.008l.004-.004v-.004l.008-.004V4.34l.004-.004v-.008l.004-.008v-.004l.008-.008v-.016l.004-.004v-.035l-.008-.004-.004-.008-.004-.004-.004-.008-.008-.004h-.004l-.008-.004zm0 0\" class=\"sr-B\"/><path d=\"M10.473 4.293c-.156-.051-.184.242-.168.313.02.09.055.098.125.039.051-.047.191-.301.039-.352zm0 0\" class=\"sr-C\"/><path d=\"M10.293 4.605l.02-.004v-.016l-.004-.008V4.52l.004-.016v-.031l.008-.012v-.016l.008-.031.004-.012.008-.012.004-.016.004-.012.008-.012.004-.008.008-.012.008-.008.008-.004.008-.008.008-.012.008-.004h.012l.012-.004h.02l.012.008.008-.02-.012-.004h-.047l-.012.004-.016.004-.008.008-.012.008-.008.012-.008.008-.008.012-.012.012-.004.012-.008.012-.004.016-.008.012-.012.047v.016l-.004.016V4.5l-.004.016v.09zm.141.047l-.008-.02-.012.008-.004.004-.008.004h-.004l-.008.008h-.004l-.004.008h-.008l-.004.004h-.027l-.008-.008-.004-.008-.008-.008v-.012l-.004-.004v-.004l-.004-.008v-.004l-.004-.008-.02.004v.008l.004.008v.008l.004.008.004.004v.008l.008.016v.004l.008.004h.004v.008l.004.004h.004l.008.004h.016l.004.004h.012l.004-.004h.004l.008-.004h.008l.004-.004.008-.004h.004l.008-.008.008-.004.004-.004.004-.008zm.039-.371l-.004.02.012.004.012.008.008.004.012.008.008.008.004.012.004.008v.012l.004.012v.051l-.004.012-.004.016-.008.023-.004.016v.012l-.012.016-.004.012-.039.059-.004.008-.016.016-.008.016.008.02.008-.008.004-.008.016-.016.008-.012.008-.008.008-.016.004-.012.012-.012.016-.023.004-.012.008-.016.004-.016.008-.012.012-.047v-.016l.004-.012v-.035l-.016-.047-.02-.02-.012-.008-.016-.004-.012-.008zm0 .008v-.008zm0 0\" class=\"sr-B\"/><path d=\"M8.801 2.762a2.27 2.27 0 0 1 1.047.141c.297.121.27.465-.09.945.031.059.051.137.051.219h-.094c.023-.055 0-.129-.035-.18-.023-.031-.027-.023 0-.059.211-.305.355-.566.27-.727-.098-.191-.492-.293-1.152-.277 0-.023 0-.039.004-.055zm0 0\" class=\"sr-D\"/><path d=\"M9.848 2.914l.004-.02-.035-.012-.031-.012-.035-.012-.031-.012-.094-.023-.035-.012-.062-.016-.035-.008-.031-.004-.031-.008-.039-.004h-.031l-.035-.008-.031-.004-.035-.004-.031-.004H9.16l-.031-.004h-.23l-.031.004h-.035l-.031.008v.02l.035-.004h.098l.031-.004h.195l.031.004h.035l.094.012.035.004h.031l.035.008.031.008.031.004.035.012.031.004.031.012.063.016.039.008.063.023.035.016.063.023zm-.102.938l.02-.008-.004.012.035-.039.027-.047.031-.043.027-.043.023-.039.027-.039.02-.043.039-.078.016-.035.012-.035.008-.039.012-.031.008-.035.008-.031.004-.035v-.086l-.004-.027-.008-.027-.016-.047-.012-.023-.012-.02-.02-.02-.016-.02-.039-.031-.027-.016-.027-.012-.023-.012-.008.02.047.023.02.012.039.039.02.016.012.02.016.02.012.02.008.02.008.027.008.047v.074l-.004.031-.004.035-.016.063-.016.035-.012.035-.016.035-.02.039-.016.039-.047.078-.023.043-.027.039-.027.043-.031.039-.035.047v.012zm0-.008l-.004.004.004.008zm.059.219v.02l.012-.012v-.047l-.004-.012v-.02l-.004-.008v-.012l-.004-.012v-.008l-.004-.004v-.008l-.004-.008V3.93l-.004-.008v-.008l-.004-.004v-.008l-.004-.004v-.008l-.004-.004v-.008l-.004-.004-.004-.008v-.004l-.008-.008v-.008l-.02.012v.008l.004.004v.004l.012.012v.008l.004.004v.008l.004.008v.004l.004.008v.008l.004.004v.008l.004.008v.016l.004.004v.016l.004.008v.016l.004.012v.027l.004.008v.012l.008-.012zm0 .02h.012V4.07l-.008.012zm-.086-.008l-.02-.008.012.016h.09v-.02h-.09l.008.016zm-.02-.008l-.004.016h.016l-.008-.016zm-.02-.18l-.016.012.008.004v.008l.008.008v.004l.004.004v.008l.004.008.004.004v.008l.004.004v.004l.004.008v.012l.004.004v.012L9.707 4v.047l-.004.004v.008l-.004.004.02.012v-.012l.004-.004v-.016l.004-.004v-.055l-.004-.008v-.004l-.004-.004v-.008l-.004-.004v-.008l-.004-.008v-.008l-.004-.004-.004-.008v-.004l-.004-.004-.004-.008v-.004l-.004-.008v-.004h-.008l-.004-.008zm0-.051l-.016-.008-.004.004-.004.008v.004h-.004v.008h-.004v.008l-.004.004v.008l.004.004v.008h.004v.004l.004.004v.004h.004v.004l.004.004.02-.012v-.004l-.008-.008v-.004h-.004v-.008h-.008v-.004h.008v-.004l.004-.004v-.008h.004v-.004h.004zm.277-.734l-.02.012.008.016.004.012.008.031v.094l-.004.02-.008.02v.02l-.008.02-.016.047-.012.023-.008.02-.035.07-.012.027-.012.02-.047.082-.016.023-.059.082-.016.027-.02.027-.02.031.016.012.02-.023.02-.031.02-.027.023-.031.016-.023.016-.027.02-.027.012-.027.02-.027.016-.027.012-.023.016-.027.012-.02.012-.023.012-.027.008-.023.012-.023.016-.039.008-.023.004-.023.008-.02.004-.023v-.02l.004-.02v-.059l-.008-.016-.004-.02-.004-.016-.008-.016zm-1.156-.273h-.02l.012.012h.289l.051.004h.055l.047.004.051.004.043.008.047.004.043.004.078.016.043.008.07.016.035.012.031.008.031.012.027.012.027.008.027.016.023.012.02.016.023.012.02.016.047.047.012.016.012.02.02-.012-.016-.02-.012-.016-.016-.02-.016-.016-.059-.047-.023-.012-.047-.031-.062-.023-.027-.008-.035-.016-.035-.012-.035-.008-.039-.008-.035-.012-.043-.004-.086-.016-.094-.008-.047-.008-.051-.004h-.051l-.055-.004h-.051l-.059-.004h-.18l.012.012zm-.02 0v.012h.012zm.02-.047l-.012-.012v.035h-.004v.023h.02v-.047l.004-.004V2.77v.004zm-.012-.012v.004zm.023-.008l-.016.012v-.012.004h-.004v.004l.012.016v-.008h.004v-.012zm0 .012l.004-.004-.004-.008v.016zm-.016 0l.016-.012h-.008l-.008.016zm.008-.012h-.02l.012.016zm0 0\" class=\"sr-B\"/><path d=\"M10.473 2.859c-.066 0-.117.055-.117.121s.051.129.117.129.125-.055.125-.125c0-.035-.012-.066-.035-.09s-.055-.031-.09-.031zm0 0\" class=\"sr-C\"/><path d=\"M10.344 2.984h.02c0-.043.023-.082.059-.102a.12.12 0 0 1 .051-.012v-.02a.13.13 0 0 0-.109.059c-.016.023-.023.047-.02.074zm.129.133v-.02c-.039 0-.078-.023-.098-.059-.008-.02-.012-.039-.012-.055h-.02c0 .043.02.086.059.113.02.012.047.02.07.02zm.137-.133h-.02c0 .039-.027.082-.062.098-.016.012-.031.016-.051.016v.02c.043 0 .086-.023.113-.059.012-.023.02-.051.02-.074zm-.133-.137v.023c.039 0 .078.027.098.063.008.016.016.035.016.051h.02c0-.043-.02-.086-.062-.113-.02-.012-.047-.02-.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M10.234 2.781c-.07 0-.125.055-.125.125s.055.117.125.117.121-.051.121-.117-.055-.129-.121-.129zm0 0\" class=\"sr-C\"/><path d=\"M10.102 2.906h.02c0-.043.023-.086.063-.105.016-.008.031-.012.047-.012v-.02c-.043 0-.086.023-.113.063a.15.15 0 0 0-.02.074zm.133.133v-.02c-.039 0-.082-.027-.102-.062a.12.12 0 0 1-.012-.051h-.02a.13.13 0 0 0 .063.109c.02.016.043.02.066.023zm.133-.133h-.02c0 .039-.027.082-.062.102-.016.008-.031.012-.051.012v.02c.047 0 .086-.023.113-.062.012-.023.02-.047.02-.07zm-.133-.137v.02c.039 0 .078.023.098.063.012.016.016.035.016.055h.02c0-.051-.023-.098-.066-.117-.02-.016-.043-.02-.066-.02zm0 0\" class=\"sr-B\"/><path d=\"M10.203 2.887l-.043.047c.199.109.281.223.262.336-.004.02-.062.23-.195.637a1.22 1.22 0 0 0-.199.168c.004.008-.016.027-.012.031-.016.063.055.047.102.035.023-.062.09-.121.129-.152.012-.004.043-.02.043-.027l.203-.633c.059-.199-.07-.34-.289-.437zm0 0\" class=\"sr-D\"/><path d=\"M10.16 2.945l.012-.02v.016h.004v-.004h.004v-.004l.004-.004h.004v-.004l.004-.004v-.004h.004v-.004h.004V2.91l.008-.008v-.004h.004l-.016-.016-.004.004h-.004v.008h-.004v.004h-.004v.004l-.008.008v.004h-.008v.004h-.004v.004l-.004.004v.02zm-.004-.02l-.008.012.012.008zm.254.344l.02.004v-.078l-.016-.047-.008-.008-.008-.023-.008-.008-.008-.016-.008-.012-.008-.008-.008-.012-.012-.012-.012-.008-.035-.035L10.289 3l-.016-.008-.012-.012-.016-.008-.016-.012-.02-.012-.016-.008-.016-.012-.008.02.02.008.012.012.016.008.016.012.047.023.012.012.012.008.012.012.035.023.012.012.008.012.008.008.008.012.004.012.008.008.004.012.004.008.004.012.004.008.004.012v.012l.004.008v.063zm0 0zm-.191.629l.012.016.004-.004.012-.039.016-.035.023-.07.008-.031.012-.031.008-.027.012-.031.016-.055.008-.023.008-.027.008-.02.008-.027.008-.02.004-.02.008-.02.004-.02.008-.016.004-.02.004-.016.008-.023v-.012l.008-.008v-.012l.004-.008v-.016h.004v-.008h-.023v.008l-.004.004v.008l-.004.008v.008l-.008.023-.004.016-.004.012-.004.016-.004.02-.004.016-.008.039-.008.02-.004.02-.008.02-.008.027-.016.047-.016.055-.012.031-.008.031-.023.063-.008.035-.016.039-.012.035-.008.035.004-.004zm.012.016l.004-.004zm-.211.168l.012-.012v.012l.035-.035.004-.008.008-.004.004-.004.008-.004.023-.023.016-.008.012-.012.008-.004.008-.008.008-.004.008-.008.012-.004.008-.004.004-.008.008-.004.008-.008.012-.004.012-.012-.012-.016-.008.008-.008.004h-.008l-.016.016-.008.004-.008.008-.012.004-.004.008-.008.004-.02.02-.008.004-.02.02-.008.004-.008.008-.008.004-.004.008-.008.004-.004.004-.004.008-.008.004-.004.008-.004.004-.008.004-.008.008-.004.008v.012zm0-.012l-.008.004.008.008zm-.012.031l.02.004-.004-.008v.004h.004v.004-.004l.004-.004v-.004h.004v-.027l-.016.012v-.004h-.004v.004l-.004.004v.004l-.004.008v.012l.004.004-.004-.012zm.02.004v-.004l-.004-.004.004.012zm.098.035l-.02-.008.008-.004h-.008l-.004.004h-.012l-.012.004h-.043v-.004h-.004v-.027l-.02-.004v.031l.004.004v.004l.004.004h.004l.004.004h.008l.004.004h.059l.008-.004h.008l.008-.004h.008l.008-.008zm-.004.008h.004v-.008zm.133-.152l-.012-.02-.004.008h-.004l-.004.004h-.004l-.023.023h-.004l-.004.008-.004.004v.008l-.008.004-.016.016-.008.004-.004.004-.004.008-.008.008-.012.023-.008.008v.008l-.008.004v.008l-.004.008v.004l.02.008v-.004l.008-.016v-.004l.004-.004v-.004l.004-.004.004-.008.008-.008.004-.008.008-.004.004-.008.008-.008v-.004l.02-.02.008-.004.008-.008h.004l.004-.004h.004l.004-.008h.004l.004-.008h.004l.004-.004zm-.012-.02l-.008.008.008-.004zm.055-.012l-.02-.008-.004.004h-.004v.004h-.004v.004h-.008v.004h-.008l-.004.004h-.004l.016.02.004-.004h.004v-.004h.008v-.004h.004l.004-.004h.004v-.004h.004v-.004h.004v-.004h.004zm.199-.637l-.016-.008-.008.02-.004.02-.004.016-.008.023-.004.02-.008.016-.008.02-.004.02-.008.02-.004.02-.008.023-.008.016-.004.02-.008.02-.008.039-.008.02-.004.023-.016.039-.004.02-.023.059-.008.023-.016.039-.004.02-.008.023-.016.039-.008.027.02.004.008-.02.004-.023.004-.02.008-.02.004-.023.008-.02.004-.023.012-.02.004-.02.008-.02.008-.023.004-.02.008-.02.004-.02.023-.059.008-.023.004-.02.008-.016.016-.039.004-.02.008-.02.004-.016.008-.023.008-.039.008-.016.004-.02.008-.016.004-.02zm-.301-.445l.016.012h-.012l.02.012.02.008.02.012.016.008.02.008.016.008.02.012.016.012.016.008.012.012.016.012.008.012.016.012.012.016.012.012.008.012.008.016.008.012.008.016.008.012.004.016.008.012v.016l.004.016v.016l.004.016v.051l-.008.016v.02l-.004.016.02.008.004-.023v-.016l.008-.02v-.074l-.004-.02-.008-.016-.004-.012-.004-.016-.008-.012-.012-.023-.016-.023-.012-.016-.008-.012-.012-.016-.02-.012L10.395 3l-.016-.012-.012-.012-.016-.008-.016-.016-.02-.008-.016-.012-.02-.008-.02-.012-.016-.008-.039-.023-.012.004zm.012-.004l-.008-.004-.004.008zm0 0\" class=\"sr-B\"/><path d=\"M10.965 4.352l.008.043c.059.008.105.012.148.004-.07-.066-.121-.078-.152-.047zm0 0\" class=\"sr-D\"/><path d=\"M10.984 4.391l-.008-.043-.02.004.008.043.004.008.012-.012zm-.02 0v.008h.008zm.16.004l-.012.012.004-.02-.004.004h-.082l-.004-.004h-.02L11 4.383h-.012l-.004-.004h-.008l-.004.02h.016l.008.004h.012l.008.004h.027v.004h.074l.008-.02zm-.004.02l.02-.008-.016-.012zm-.164-.062l.02-.004-.004.012v-.004h.012v-.004h.012L11 4.348h.027v.004h.012l.008.008h.004l.004.004.008.004.004.004.004.008.008.004.004.004.016.008h.004l.008.008.004.008.016-.016-.008-.004-.004-.008-.008-.004-.004-.008-.004-.004-.008-.004-.004-.004h-.012l-.004-.008h-.008l-.004-.004h-.004l-.008-.008h-.012l-.004-.004h-.012l-.008-.004h-.027l-.004.004h-.004l-.004.004h-.004l-.012.012v.008zm0-.008v.008zm.012.008h-.008zm-.008-.012l-.004.004v.008zm0 0\" class=\"sr-B\"/><path d=\"M10.973 4.258c-.035.008-.039.016-.051.02-.023 0-.051 0-.066-.02-.082-.043-.082.039-.051.102.02.047.008.102-.012.141s-.02.063 0 .078l.031.023c.02.023.035.02.039-.012.078-.035.102-.109.125-.176.035-.094.156-.117-.016-.152zm0 0\" class=\"sr-D\"/><path d=\"M10.918 4.266v.02h.016v-.004h.008l.004-.004h.008l.004-.004h.016l.004-.004-.004-.02h-.008l-.004.004h-.008l-.004.004h-.008v.004h-.016v.004zm-.059-.012l-.012.02V4.27l.004.004h.008v.004h.004l.004.004h.004l.004.004h.039v-.02h-.043l-.004-.004h-.004v-.004h-.004l-.004-.004zm0 0zm-.062.109l.016-.008v-.004l-.004-.008v-.012l-.004-.004v-.012l-.004-.004v-.047h.004v-.004h.004v-.004h.023l.008.004.004.004.008.004.012-.02-.016-.008h-.008l-.008-.004h-.035l-.008.008v.004l-.004.008v.008l-.004.004v.051l.004.004v.008l.004.008v.004l.004.008v.004zm-.012.129l.02.008v-.008l.004-.004V4.48l.004-.004v-.004l.004-.004v-.012l.004-.004v-.016l.004-.004v-.047l-.004-.004v-.004l-.004-.008v-.008l-.004-.004-.02.008.004.004v.012l.004.004v.016l.004.004v.039l-.004.004v.012l-.004.004v.008h-.004v.004l-.004.004v.008h-.004zm0 .09l.012-.02h-.004v-.004h-.004v-.031l.004-.004v-.008l.004-.004v-.004l.004-.004V4.5l-.016-.012v.004l-.004.004V4.5l-.004.004v.004l-.004.004v.008l-.004.004v.035l.004.004v.004h.004v.004h.004v.004l.004.004zm0 0zm.031.023l.016-.016v-.004h-.004l-.004-.004h-.004v-.004h-.008v-.004h-.004V4.57h-.008v-.004h-.004l-.012.016h.004v.004h.008v.004h.004l.004.004h.004v.004h.004l.004.004zm.016-.016v-.004zm.039 0l-.008-.016-.008.008v.012h-.004v.004h-.008v-.004h-.004V4.59h-.004l-.016.012.012.012h.008v.004h.02l.004-.004v-.004l.004-.004v-.008h.004v-.016l-.004.008zm-.008-.016h-.008v.008zm.137-.16l-.02-.008-.004.004v.008l-.004.004v.008l-.004.008v.004l-.008.016v.008l-.004.004-.004.008v.004l-.008.008v.004l-.004.004V4.5l-.004.008-.004.004-.004.008v.004l-.008.004-.004.008-.012.012h-.004l-.008.004-.004.004-.008.004-.004.004h-.008l-.004.004.008.023.008-.008.008-.004.004-.004.008-.004.02-.02.008-.004.004-.004.004-.008.004-.004.004-.008.008-.008.004-.008.004-.004.004-.008v-.008l.004-.004v-.008l.004-.004v-.008l.008-.004v-.004l.004-.008v-.008l.004-.004.004-.008v-.004l.004-.008V4.41zm-.027-.168v.02l.012.004.016.004h.012l.012.004h.008l.008.008h.004v.004l.004.004v.004h.004v.004l-.004.008-.004.004-.004.008-.008.008-.008.004v.008l-.008.004-.008.016-.008.008-.012.023v.012l-.008.008.02.004v-.008l.008-.008.008-.016.008-.004.004-.008v-.004l.012-.012.004-.008V4.34l.008-.004.012-.012V4.32l.008-.016v-.012l-.008-.008v-.004l-.004-.004h-.008l-.008-.008-.016-.008h-.008l-.016-.008zm0 0zm0 .02v-.02zm0-.02zm0 0\" class=\"sr-B\"/><path d=\"M10.945 4.262c-.07.023-.078-.012-.121-.012.02.102.035.156.141.102.063-.031.137.012.148.047.008.012.039-.012.051-.043.055-.113-.133-.129-.219-.094zm0 0\" class=\"sr-D\"/><path d=\"M10.813 4.254l.02-.004-.008.012h.023v.004h.004l.004.004h.004l.008.004h.004v.004h.016l.004.004h.039l.008-.004h.008l.004-.004-.004-.02h-.008l-.004.004h-.008l-.004.004h-.027l-.004-.004h-.004l-.004-.004h-.012l-.004-.004h-.004l-.004-.004h-.012l-.004-.004h-.008l-.012.012zm.012-.012h-.016v.012l.012-.012zm.145.117l-.008-.02-.012.008-.008.004h-.008l-.008.008h-.008l-.008.004h-.035l-.004-.004-.004-.008-.004-.004v-.004l-.004-.004-.004-.008v-.004l-.004-.008v-.004l-.004-.004v-.012l-.004-.008v-.008l-.004-.008v-.016l-.008-.012-.02.004v.012l.004.008v.016l.004.012v.008l.004.008v.008l.008.008v.008l.008.016v.004l.008.004.004.008.012.012h.004l.008.004h.004l.008.004h.031l.016-.008h.008l.008-.004.012-.008.008-.008zm.137.043l.02-.008h-.004v-.004h-.008v-.008l-.004-.004v-.004l-.008-.004h-.004l-.004-.008-.004-.004h-.008l-.004-.004h-.008l-.004-.008h-.004l-.008-.004h-.004l-.004-.004h-.008l-.008-.004h-.047l-.004.004h-.008l-.004.004h-.004l.008.02h.004l.004-.004h.012l.004-.004h.039l.004.004h.008l.004.004h.008l.004.008h.004l.004.004h.004l.004.004h.004v.004l.008.004h.004v.008h.004v.004h.004v.004zm.07-.043l-.023-.004v.008h-.004v.008h-.004v.004l-.004.004h-.004v.004l-.004.004h-.004v.004h-.008v.004l-.016.012v.004l.008.004h.02V4.41h.004l.004-.004h.004v-.004l.008-.008h.004v-.008h.004v-.004h.004v-.004h.008v-.012h.004zm-.238-.105l.008.02.008-.004h.008l.008-.004h.008l.012-.004h.102l.016.008h.008l.008.004.008.008.008.004v.004l.008.004.004.004v.004l.004.008v.031l-.008.016.02.012.008-.023v-.031l-.004-.012-.008-.016-.008-.008-.004-.008-.012-.012-.016-.008-.012-.004h-.008l-.012-.004h-.023l-.008-.004h-.066l-.012.004h-.012l-.016.008h-.008zm0 .008v-.008zm0 0\" class=\"sr-B\"/><path d=\"M8.91 2.496c-.066 0-.125.055-.125.121s.059.125.125.125.121-.055.121-.125-.055-.121-.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M8.777 2.617h.02c0-.039.023-.086.066-.102.012-.008.031-.012.047-.012v-.02c-.047 0-.09.023-.113.063-.016.02-.02.047-.02.07zm.133.137V2.73c-.039 0-.082-.023-.102-.059-.008-.016-.012-.035-.012-.055h-.02c0 .047.02.09.063.113.02.016.043.023.07.023zm.133-.137h-.02c0 .039-.027.086-.066.102-.016.008-.031.012-.047.012v.023c.047-.004.09-.027.113-.066.012-.02.02-.043.02-.066zm-.133-.133v.02c.039 0 .078.023.102.063.008.016.012.031.012.051h.02c0-.043-.023-.09-.066-.113-.02-.012-.043-.02-.066-.02zm0 0\" class=\"sr-B\"/><path d=\"M9.16 2.496c-.066 0-.121.051-.121.121s.055.125.121.125.121-.055.121-.125-.055-.121-.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M9.027 2.617h.02c0-.039.023-.082.063-.102.016-.008.031-.012.051-.012v-.02c-.047 0-.09.023-.113.063-.012.02-.02.047-.02.07zm.133.137V2.73c-.039 0-.082-.023-.102-.059-.008-.016-.012-.035-.012-.055h-.02c0 .047.027.09.066.113.02.016.043.023.066.023zm.133-.137h-.02c0 .039-.027.086-.062.102-.016.008-.031.012-.051.012v.023c.047 0 .09-.027.113-.066.012-.02.02-.043.02-.066zm-.133-.133v.02c.039 0 .078.023.102.063.008.016.012.031.012.051h.02c-.004-.043-.023-.086-.062-.113-.02-.012-.047-.02-.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M9.41 2.516c-.066 0-.121.055-.121.121s.055.125.121.125.121-.055.121-.125-.055-.121-.121-.121zm0 0\" class=\"sr-C\"/><path d=\"M9.277 2.637h.02c0-.039.023-.078.063-.102.016-.008.031-.012.051-.012v-.02c-.047 0-.086.023-.113.063-.012.02-.02.047-.02.07zm.133.137v-.02c-.039 0-.082-.027-.102-.062-.008-.016-.012-.035-.012-.055h-.02c0 .047.023.09.063.117.02.012.043.02.07.02zm.133-.137h-.02c0 .047-.027.086-.066.105-.016.008-.031.012-.047.012v.02c.047 0 .09-.027.113-.066.012-.02.02-.043.02-.066zm-.133-.133v.02c.039 0 .078.027.102.063a.12.12 0 0 1 .012.051h.02c0-.047-.027-.09-.066-.113-.02-.012-.043-.02-.066-.02zm0 0\" class=\"sr-B\"/><path d=\"M9.641 2.559c-.066 0-.121.059-.121.125s.055.121.121.121.125-.055.125-.121-.062-.125-.129-.125zm0 0\" class=\"sr-C\"/><path d=\"M9.508 2.688h.02c0-.047.023-.086.066-.105.012-.008.031-.012.047-.012v-.02c-.043 0-.09.023-.113.063-.012.02-.02.047-.02.07zm.133.129v-.02c-.039 0-.082-.023-.102-.062-.008-.02-.012-.035-.012-.051h-.02c0 .039.027.086.066.109.02.016.043.02.066.02zm.133-.133h-.02c0 .039-.023.078-.059.098-.02.008-.035.012-.055.012v.02c.043 0 .086-.02.113-.059.012-.023.02-.047.02-.07zm-.133-.137v.02c.039 0 .082.027.098.066.012.016.016.031.016.051h.02c0-.051-.027-.098-.066-.121-.02-.012-.043-.02-.066-.016zm0 0\" class=\"sr-B\"/><path d=\"M11.16 3.195c-.031 0-.062.016-.086.039s-.035.055-.035.086c0 .07.055.125.121.125s.121-.055.121-.125c0-.031-.012-.062-.035-.086s-.055-.039-.086-.039zm0 0\" class=\"sr-C\"/><path d=\"M11.027 3.32h.02c0-.039.023-.082.063-.102.016-.008.031-.012.051-.012v-.02c-.043 0-.09.02-.113.059-.012.023-.02.047-.02.074zm.133.133v-.02c-.039 0-.082-.023-.102-.059-.008-.016-.012-.035-.012-.055h-.02c0 .047.027.09.066.113.02.016.043.02.066.02zm.133-.133h-.02c0 .039-.027.086-.062.102a.12.12 0 0 1-.051.012v.02c.043 0 .086-.02.113-.059.012-.023.02-.047.02-.074zm-.133-.133v.02c.039 0 .078.023.102.059.008.016.012.035.012.055h.02c0-.047-.023-.09-.062-.117-.02-.012-.047-.02-.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M10.949 3.063c-.066 0-.125.055-.125.121 0 .074.059.125.125.125s.121-.051.121-.117c0-.035-.012-.066-.035-.09s-.051-.035-.086-.035zm0 0\" class=\"sr-C\"/><path d=\"M10.816 3.188h.02a.12.12 0 0 1 .059-.102c.02-.008.035-.012.055-.012v-.02c-.043 0-.086.02-.113.059-.012.023-.02.047-.02.074zm.133.133v-.02c-.062 0-.113-.051-.113-.113h-.02c0 .043.023.086.059.109.023.016.047.023.074.023zm.133-.133h-.02c0 .039-.023.078-.062.098-.016.008-.031.012-.051.012v.023c.047-.004.086-.023.113-.062.012-.023.02-.047.02-.074zm-.133-.137v.02c.039 0 .082.023.102.063a.12.12 0 0 1 .012.051h.02c0-.047-.023-.094-.059-.117-.023-.012-.047-.02-.074-.02zm0 0\" class=\"sr-B\"/><path d=\"M10.711 2.945c-.07 0-.121.063-.121.129s.051.125.121.125.117-.059.117-.125c.004-.035-.008-.066-.031-.09s-.055-.035-.086-.035zm0 0\" class=\"sr-C\"/><path d=\"M10.578 3.074h.02c0-.039.023-.086.059-.102.02-.008.035-.012.055-.016v-.02c-.047.004-.086.023-.113.063a.15.15 0 0 0-.02.074zm.133.133v-.02c-.039 0-.082-.027-.102-.059-.008-.02-.012-.035-.012-.055h-.02c0 .043.023.086.059.113.023.016.047.02.074.02zm.133-.133h-.02c0 .039-.027.078-.062.098-.02.012-.035.016-.055.016v.02c.047 0 .09-.023.113-.062.016-.023.023-.047.023-.07zm-.137-.137v.02c.039 0 .082.027.102.063.008.016.012.035.012.055h.02c0-.047-.02-.09-.059-.117-.023-.012-.047-.02-.074-.02zm0 0\" class=\"sr-B\"/><path d=\"M11.32 3.398c-.031 0-.062.012-.086.035s-.035.059-.031.09c0 .066.051.125.117.125s.125-.062.125-.129-.055-.121-.125-.121zm0 0\" class=\"sr-C\"/><path d=\"M11.191 3.523h.02c0-.039.023-.086.063-.102.016-.008.031-.012.047-.012v-.02c-.043 0-.086.02-.109.059-.016.023-.023.047-.02.074zm.129.133v-.02c-.039 0-.078-.023-.098-.059-.008-.016-.012-.035-.012-.055h-.02c0 .047.023.09.063.113.02.016.043.02.066.02zm.137-.133h-.02c0 .039-.027.082-.062.102-.016.008-.035.012-.055.012v.02c.047 0 .09-.023.117-.062.012-.02.02-.047.02-.07zm-.137-.133v.02c.043 0 .082.023.102.059.008.016.016.035.016.055h.02c0-.047-.023-.09-.066-.113-.02-.016-.043-.02-.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M9 5.543l.441.258.469-.199-.441-.258zm0 0\" class=\"sr-D\"/><path d=\"M9.465 5.352l.441.258.008-.02-.441-.258h-.008zm.008-.02h-.008zm-.469.219l.465-.199-.008-.02-.469.199v.02zm-.008-.02l-.02.012.02.008zm.449.262l-.441-.262-.012.02.441.258h.012zm-.012.016l.004.004h.008zm.469-.219l-.469.199.008.02.465-.199v-.02h-.008zm.004.02l.023-.008-.023-.008v.02zm0 0\" class=\"sr-B\"/><path d=\"M9.465 5.43c-.113-.008-.207.051-.215.125s.082.141.195.148.207-.047.215-.125c.004-.07-.086-.141-.195-.148zm0 0\" class=\"sr-H\"/><path d=\"M9.238 5.559h.023v-.016l.004-.004v-.012l.004-.008v-.004l.008-.004.004-.004.004-.008.02-.02h.012l.004-.004.008-.004.012-.004.008-.004h.004l.008-.004h.008l.012-.008h.016l.012-.004h.016l.012-.004h.02l.008.004v-.02h-.07l-.008.004-.012.004h-.008l-.008.004-.023.008-.008.004-.004.004-.023.012-.008.008-.008.004-.02.02-.008.016-.004.004-.004.008v.008l-.008.008-.004.008v.016zm.207.16v-.02l-.008-.004h-.016l-.012-.004h-.008l-.008-.004h-.012l-.008-.008h-.008l-.062-.031-.004-.008-.008-.004-.004-.008v-.004l-.008-.008-.004-.008-.004-.004v-.004l-.004-.004v-.012l-.004-.008v-.023l-.02-.004v.035l.004.008v.004l.008.012v.004l.004.008.008.008v.004l.008.008.004.008.012.012.008.004.008.008.016.008.008.008.016.008.012.004h.008l.016.008h.008l.012.004h.008l.012.004h.02zm.227-.137h-.023v.012l-.004.004v.008l-.004.004-.004.008v.004l-.008.008v.008l-.008.004-.004.008-.008.004-.008.008-.008.004-.004.004h-.012l-.008.004h-.008l-.016.008h-.008l-.008.004h-.02l-.012.004h-.043v.02h.07l.008-.004h.008l.012-.004h.012l.008-.008h.008l.012-.004.012-.012.016-.008.004-.004.008-.004.004-.008.008-.004.004-.008v-.008l.008-.004.008-.016.004-.004v-.02zm-.207-.16l-.004.02h.027l.012.004h.012l.016.008h.012l.008.008.031.016.004.004.016.008.012.012.004.008.008.004.004.004.008.016.004.004v.008l.004.004v.016l.004.008v.012l.02.004v-.027l-.004-.008v-.008l-.004-.008v-.008l-.008-.016-.008-.004-.012-.023-.008-.004-.008-.008-.008-.004-.008-.008-.016-.008-.012-.008-.016-.008-.012-.004h-.008l-.008-.004h-.012l-.008-.008h-.012l-.012-.004h-.02l-.012-.004zm0 0\" class=\"sr-B\"/><path d=\"M10.438 5.418l-.477.18.395.262c.102-.031.18-.383.082-.441zm0 0\" class=\"sr-D\"/><path d=\"M9.965 5.605l.477-.18-.008-.02-.473.18v.02zm-.004-.02l-.02.008.02.012zm.398.266l-.391-.262-.008.016.391.266h.008zm-.008.023h.008zm.082-.469l.008.02h-.008l.008.004.016.016.008.016.008.031v.031l.004.016v.055l-.008.016v.02l-.012.059-.004.012v.023l-.012.02-.004.012-.016.031-.012.012-.004.012-.016.023-.012.008-.008.004-.004.004-.008.004.004.023.012-.008.012-.004.02-.02.008-.012.012-.012.008-.012.016-.031.008-.02.008-.016.004-.02.008-.016.008-.02.004-.016.004-.02.004-.023v-.016l.004-.02v-.105l-.004-.016-.004-.012-.008-.012-.004-.012-.016-.023-.012-.008zm.012 0h-.012zm-.008.008l-.004-.008zm.004-.008h-.012zm0 0\" class=\"sr-B\"/><path d=\"M10.43 5.504c-.113-.012-.211.039-.219.117s.078.148.191.16c.07.008.121-.059.125-.125.012-.07-.02-.141-.094-.148zm0 0\" class=\"sr-G\"/><path d=\"M10.203 5.617h.02v-.008l.004-.008v-.004l.008-.016.008-.008.004-.008.004-.004.008-.004.008-.008.016-.008.004-.004.016-.008h.008l.008-.008h.008l.008-.004h.02l.008-.004h.074l.004-.02h-.078l-.008.004h-.008l-.012.004-.008.004h-.008l-.008.008-.008.004h-.012l-.008.004-.027.027-.008.004-.004.004-.004.008-.004.004-.004.008v.012l-.008.008v.004l-.004.008v.008zm.199.172v-.023h-.02l-.012-.004h-.008l-.012-.004-.008-.004h-.012l-.016-.008h-.008l-.008-.008-.016-.008-.016-.016-.004-.008-.008-.004-.02-.02-.004-.008v-.008l-.004-.004v-.016l-.004-.012v-.02h-.02v.035l.004.004v.008l.004.008.004.004.016.031.012.012.004.008.012.004.008.008h.008l.008.008.016.008h.008l.008.008.008.004h.012l.008.004.012.004h.012l.008.004h.016l.008.004h.012zm.137-.137h-.02v.016l-.004.004v.008l-.004.008v.004l-.004.004v.004l-.012.012v.008l-.008.008v.004l-.004.004h-.004l-.004.008h-.004l-.008.008h-.008l-.004.004h-.004l-.004.004h-.004l-.004.004h-.031v.02h.043l.008-.004h.008l.004-.004.008-.004.004-.004.008-.004.008-.008.008-.004.016-.016V5.73l.004-.004.004-.008v-.004l.008-.008v-.008l.004-.004.004-.008v-.004l.004-.008v-.012l.004-.004v-.008zm-.109-.16v.02h.004l.008.004h.016l.012.012.008.004.004.004h.004l.004.004v.004l.004.004v.004h.008v.008l.008.008v.016l.004.008v.008l.004.004v.047h.02v-.051l-.004-.004v-.008l-.004-.004v-.004l-.008-.016v-.008l-.004-.004-.004-.008-.004-.004v-.004l-.016-.008h-.004l-.004-.008-.016-.008h-.004l-.008-.004h-.012l-.008-.004h-.008zm0 0\" class=\"sr-B\"/><path d=\"M8.938 5.625c-.035 0-.066.031-.066.066s.031.066.066.066S9 5.727 9 5.688c0-.031-.027-.062-.062-.062zm0 0\" class=\"sr-C\"/><path d=\"M8.863 5.691h.02V5.68l.004-.004v-.004l.004-.008V5.66h.004v-.004h.004v-.004h.004l.008-.008h.004l.008-.004h.012v-.02h-.02l-.008.004-.004.004h-.004l-.004.004v.004h-.004v.004h-.004v.008h-.004v.004l-.004.004v.004h-.004v.004l-.004.004v.012l-.004.004v.004zm.074.074v-.02H8.93l-.008-.004h-.004l-.004-.004H8.91v-.004h-.004V5.73h-.004v-.004l-.008-.008v-.004l-.004-.004v-.02h-.023v.016l.004.004v.008l.004.004v.004l.008.008h.004v.008h.004l.004.004.008.004.004.004h.016v.004h.012v.004h.004zm.074-.074h-.023v.02h-.004v.004l-.004.004v.004l-.004.004h-.004v.004h-.004v.004h-.004l-.004.004h-.004v.004h-.02v.023h.016l.004-.004h.008v-.004h.008l.012-.012h.004v-.004h.004l.004-.008L9 5.73v-.004l.008-.008v-.008l.004-.004zm-.074-.074v.02h.016l.004.004h.004v.004h.004v.004h.004v.004h.004v.004h.004v.004l.004.008v.008h.004v.016h.023v-.023L9 5.664V5.66h-.004v-.008l-.008-.008v-.004H8.98v-.004l-.004-.004h-.004v-.004h-.008v-.004h-.008v-.004h-.02zm0 0\" class=\"sr-B\"/><path d=\"M9.91 5.68c-.035 0-.062.031-.062.066s.031.066.066.066.063-.031.063-.066-.027-.066-.062-.066zm0 0\" class=\"sr-C\"/><path d=\"M9.84 5.746h.02V5.73l.004-.004v-.004l.004-.004v-.008l.008-.008h.004v-.004h.004v-.004h.008l.004-.004h.016v-.023h-.016v.004h-.012v.004h-.008v.004h-.004v.004h-.008l-.004.004-.004.008h-.004l-.004.004-.004.008v.004H9.84v.016l-.004.004v.016zm.07.074v-.02h-.02v-.004h-.004l-.004-.004h-.004v-.004h-.004v-.004h-.004v-.004l-.004-.004V5.77h-.004v-.008l-.004-.004V5.75h-.02v.016l.004.004v.004l.004.004v.008h.004v.008h.004l.004.004h.004v.004h.008l.004.004h.004v.004h.004v.004h.012l.004.004h.016zm.074-.07h-.02v.016h-.004v.008h-.004v.004h-.004v.004h-.004v.008h-.004l-.004.004h-.004v.004H9.93v.004h-.016v.02h.023v-.004h.008v-.004h.004l.008-.008h.004v-.004h.004v-.008h.004v-.004h.004v-.008l.004-.004v-.004l.004-.008V5.75zm-.074-.078v.02h.016v.004h.012v.004h.004l.004.004v.004h.004l.004.004v.008l.004.004v.004h.004v.012l.004.008v.008h.02v-.02L9.98 5.73v-.008l-.004-.004-.004-.008v-.008h-.008v-.004h-.004l-.008-.008h-.004v-.004h-.012l-.004-.004h-.012l-.008-.004H9.91zm0 0\" class=\"sr-B\"/><path d=\"M9.945 5.383c-.035 0-.062.027-.062.066s.027.063.063.063.066-.027.066-.062-.031-.066-.066-.066zm0 0\" class=\"sr-C\"/><path d=\"M9.871 5.449h.02v-.016l.004-.004v-.008l.004-.004h.004V5.41h.004v-.004h.004l.004-.004h.008l.004-.004h.008v-.004h.008v-.02h-.016v.004h-.004l-.008.004H9.91l-.008.004h-.004v.004l-.02.02v.008h-.004v.008l-.004.004zm.074.074V5.5h-.02v-.004h-.004l-.004-.004h-.004v-.004H9.91v-.004h-.004V5.48l-.008-.008v-.008h-.004v-.02h-.02v.023l.004.004.004.008v.004h.004l.004.008h.004v.004h.004V5.5h.004v.008h.004l.004.004h.012l.008.004h.012zm.074-.074H10v.016l-.004.004v.008h-.004v.004l-.004.004v.004h-.004v.004H9.98v.004h-.004l-.004.004h-.012l-.004.004h-.008v.02h.016l.008-.004h.004l.004-.004.008-.004h.004l.004-.004L10 5.5h.008v-.004l.004-.008v-.004h.004v-.008l.004-.004zm-.074-.074v.02h.016v.004h.012l.004.004h.004v.004h.004v.004h.004v.004h.004v.004l.004.004v.004L10 5.43v.016h.02v-.023h-.004V5.41h-.004v-.008h-.004v-.004H10l-.004-.004v-.004h-.004v-.004h-.008l-.004-.004h-.008v-.004h-.008l-.004-.004zm0 0\" class=\"sr-B\"/><path d=\"M8.941 5.34c-.039 0-.066.031-.066.066s.027.063.066.063.063-.027.063-.062-.031-.066-.066-.066zm0 0\" class=\"sr-C\"/><path d=\"M8.867 5.406h.02v-.016h.004v-.008l.004-.004v-.004h.004v-.004h.004v-.004l.004-.004h.004l.004-.004h.004l.008-.004h.012v-.02h-.023l-.004.004h-.004l-.008.004-.008.008h-.004v.004h-.004v.004h-.004v.008h-.004v.008l-.004.004v.008l-.004.004zm.074.074v-.02h-.027v-.004H8.91l-.008-.008v-.004h-.004v-.004h-.004v-.004l-.004-.008v-.008h-.004v-.016h-.02v.02l.004.004v.008l.008.008.004.008.012.012h.004v.004h.008v.004h.008l.004.004h.02zm.074-.074h-.023v.012l-.004.004v.004l-.004.004v.008H8.98l-.004.004v.004h-.004v.004h-.004l-.004.004h-.004l-.004.004h-.016v.02h.02l.008-.004h.004l.008-.004.004-.004v-.004l.008-.004.004-.004v-.004H9v-.008h.004V5.43l.004-.004V5.41l.004-.004v-.004zm-.074-.074v.02h.012v.004h.008l.004.004h.004v.008h.004v.004l.008.008v.008h.004v.016h.027v-.012l-.004-.004v-.008L9 5.375v-.004h-.004v-.008h-.004v-.008h-.004v-.004h-.004v-.004l-.008-.004-.004-.004h-.008l-.004-.004h-.02zm0 0\" class=\"sr-B\"/><path d=\"M10.664 4.762c-.043-.016-.117.094-.137.09-.027-.059.023-.211.109-.324.059-.023.063-.062.074-.148.004-.027.055-.008.055.039s.008.074-.004.113c-.004.016 0 .031.016.047-.09.035-.113.082-.109.18zm0 0\" class=\"sr-D\"/><path d=\"M10.535 4.852l-.02.004.008.008h.008l.008-.004.039-.039.008-.004.004-.004.008-.004.004-.008h.004l.008-.008h.004l.004-.004.008-.004h.004l.004-.004h.008l.004-.004h.008l.008-.02h-.023l-.008.004h-.004l-.008.004-.004.004h-.004l-.008.004-.004.004h-.004l-.008.008-.008.004v.004l-.016.016v.004l-.027.027h-.004v.004h-.008v.004zm-.02.004l.004.008h.004l-.008-.004zm.125-.316l-.008-.02-.004.004-.008.012-.008.008-.008.012-.008.016-.008.008-.008.016-.016.023-.004.012-.016.023-.023.07v.012l-.004.012v.012l-.004.008v.008l-.004.008v.066l.004.008.02-.004v-.008l-.004-.004v-.074l.004-.008V4.75l.004-.012.004-.008.004-.012v-.012l.008-.012.008-.023.008-.012.008-.023.008-.008.008-.012.008-.016.008-.008.008-.016.008-.012.004-.008.02-.02-.008.004zm-.008-.02l-.004.004zm.09-.133h-.02v.012l-.004.008v.02l-.004.004v.012l-.004.008v.008l-.004.004v.008h-.004v.008l-.004.004v.004h-.004v.004h-.004l-.008.004v.004h-.004l-.004.004h-.004l-.004.004h-.004l-.004.004h-.004l-.004.004.008.023h.004l.008-.008h.004l.004-.004h.004l.012-.012h.004v-.004l.012-.012v-.004l.004-.004v-.004l.004-.008v-.004l.004-.004v-.004l.004-.004v-.02l.004-.008v-.012l.004-.004v-.023l.004-.012zm.035.035h.02v-.02l-.008-.008v-.008h-.004l-.004-.008h-.004l-.008-.004-.004-.004h-.004l-.004-.004h-.023v.004h-.004v.008l-.004.004v.004h.031v.004h.004v.004h.004v.004h.004v.004l.004.004v.016zm-.008.113l.02.004v-.012l.004-.004v-.031h.004v-.07h-.02v.082l-.004.004v.016l-.004.004zm.02.039l.012.016v-.02l-.004-.004v-.004h-.004v-.008h-.004v-.008l.004-.004v-.004l-.023-.008v.035h.008v.008h.004v.004h.004v.004l.004.008h.004v-.016zm.012.016l.016-.008-.016-.012zm-.102.172h-.02.02v-.008l-.004-.012v-.039l.004-.008v-.012l.004-.008v-.012l.004-.004v-.008l.004-.004.004-.008v-.004l.008-.004v-.004l.008-.008.008-.004.008-.008h.008l.004-.008.004-.004.016-.008h.008l.008-.004-.008-.02-.008.004-.012.004-.016.008-.004.004-.016.008-.004.004-.008.004v.004l-.012.012-.004.008v.004l-.008.004v.008l-.004.008v.004l-.008.008v.016l-.004.004v.016l-.004.008v.059zm-.02 0h.02l-.008-.008-.016.008zm.02 0v-.008h-.008zm0 0\" class=\"sr-B\"/><path d=\"M10.711 4.383c.008.02.012.035.012.07 0 .02-.008.039-.023.059s-.035.039-.059.051c-.016.012-.031.035-.047.063s-.023.059-.023.078c0 .07-.016.137-.047.148-.027.004-.035.004-.051 0 .004-.012 0-.031.016-.047.016-.023.023-.051.027-.074s.012-.035.004-.066-.02-.035-.02-.055c.008-.043.039-.121.086-.121s.066-.008.094-.07c.004-.02.02-.031.023-.039zm0 0\" class=\"sr-D\"/><path d=\"M10.715 4.453l.02-.004v-.023l-.004-.004v-.02h-.004v-.016h-.004v-.008l-.02.008v.008h.004v.02l.004.004v.031zm-.02.055l.016.016V4.52h.004v-.008l.004-.004v-.004h.004v-.008h.004v-.008l.004-.004v-.016l.004-.004v-.012h-.02v.02h-.004v.016h-.004v.008h-.004v.008h-.004v.004h-.004v.004zm-.062.051l.012.02v-.004h.008V4.57h.004v-.004h.004l.004-.004h.008v-.004h.004v-.004h.004l.004-.004v-.004l.004-.004h.004v-.004h.004v-.004h.004v-.004l.008-.008-.016-.016-.004.004-.004.008v.004h-.004l-.004.004v.004h-.004l-.008.008h-.004v.004h-.004v.004h-.008l-.008.008h-.004v.004zm-.047.063l.02.008v-.004l.004-.004v-.004l.004-.004v-.004h.004v-.004l.004-.004v-.004h.004v-.004l.008-.008v-.004h.004l.004-.004h.004l-.008-.02h-.004v.004h-.004v.004h-.004v.004l-.008.008v.004h-.004v.004h-.004v.004l-.004.004v.004l-.004.004v.004h-.004v.008h-.004v.004h-.004zm-.023.086h.02v-.016l.004-.004v-.016h.004V4.66h.004v-.008h.004v-.012h.004v-.004l.004-.004-.02-.008v.008h-.004v.008h-.004v.012l-.004.004v.008h-.004v.012h-.004v.02h-.004zm.02 0zm-.059.137l.004.02h.008l.004-.004.004-.008v-.004l.008-.004h.004l.004-.004v-.004h.004v-.008l.004-.004V4.82l.004-.004v-.008l.004-.004v-.012l.004-.004v-.016l.004-.008v-.031l.004-.004v-.031h-.02v.043l-.004.004v.027l-.004.004v.016l-.004.008v.004l-.004.004v.008l-.004.004v.004l-.008.008v.004h-.004v.004h-.004l-.004.004zm-.035.016l-.02-.008.008.012h.008v.004h.031l.004-.004h.008l-.008-.02h-.012v.004h-.027v-.004l.008.012zm-.02-.008v.008h.008zm.031-.039l-.016-.012h-.004v.008h-.004v.008h-.004v.016l-.004.004v.02l.02.008v-.027l.004-.004v-.016h.004v-.004zm.031-.078h-.02v.016h-.004v.016l-.004.004v.004l-.004.004v.004h-.004v.008h-.004v.004h-.004v.008l.012.012v-.004l.008-.004v-.008h.004v-.012h.004v-.004l.004-.004v-.004l.004-.004v-.004l.004-.008V4.75l.004-.004zm-.02 0zm.023-.07l-.02.004v.063l-.004.004.02.004v-.02l.004-.004zm-.02-.051h-.02v.016h.004v.012l.004.004v.004l.004.004v.004h.004v.012h.004v.004l.02-.004V4.66h-.004v-.008l-.004-.004v-.004l-.004-.004v-.004l-.004-.004v-.02zm.082-.109v-.02h-.023l-.008.004h-.004l-.004.004h-.004l-.008.008v.004l-.008.004v.004l-.004.004-.004.008v.004l-.008.004-.004.004-.004.008v.004l-.004.004v.004l-.004.008v.004l-.004.004v.008l-.004.004v.012l-.004.004v.016h.02v-.02l.004-.004v-.008l.008-.016v-.004l.004-.004v-.004l.008-.008v-.004l.004-.004v-.004l.004-.004.004-.008.016-.016.008-.004zm.098-.074l-.02-.008v.004l-.004.008v.004l-.004.004v.004l-.004.004v.004l-.008.008v.004h-.004v.004h-.004v.004h-.008v.004h-.016v.004h-.031v.02h.031l.008-.004h.008v-.004h.004v-.004h.008v-.004h.004V4.48l.004-.004.004-.008.008-.004v-.004l.004-.004.004-.008.004-.004v-.008l.004-.004zm.008-.039l.02-.012h-.023v.008h-.004v.004h-.004v.004h-.004v.008h-.004v.004l-.004.004v.004l-.004.004.02.008v-.004l.004-.004v-.004l.004-.004v-.004h.004v-.004l.004-.004v-.004h.004v-.004h.004v-.004h-.016zm.02-.012l-.008-.02-.012.02zm-.012.004l-.008.004zm.012-.004l-.008-.02-.012.02zm0 0\" class=\"sr-B\"/><path d=\"M10.887 4.555l-.039-.02c-.027-.012-.055-.012-.082-.004-.109.031-.16.23-.035.281.023.004.047-.023.066-.066a.44.44 0 0 1 .082-.137c.02-.02.02-.043.008-.055zm0 0\" class=\"sr-D\"/><path d=\"M10.848 4.523l-.008.02h.008v.004h.008v.004h.016v.004h.004l.004.004.016-.012-.004-.004v-.004h-.008v-.004h-.016v-.004h-.008v-.004h-.008zm-.082-.004l.004.02h.012v-.004h.039v.004h.016l.004.004.012-.02h-.008l-.008-.004h-.016v-.004h-.031l-.004.004zm-.039.301l.004-.02h.004l-.012-.004h-.012l-.016-.016-.004-.008-.008-.008-.012-.023V4.73l-.004-.012v-.066l.008-.008.004-.008.004-.012v-.008l.008-.008.004-.012.008-.004.004-.012.023-.023.008-.004.008-.008.012-.004h.008l-.004-.02h-.016l-.023.012-.008.008-.012.004-.02.02-.004.008-.023.035-.012.023-.004.012v.012l-.004.012v.066l.012.035.004.008.016.023.008.008.008.004.012.008.012.004zm0 0zm.078-.07l-.02-.008v.008l-.008.008-.004.008v.004h-.004v.008h-.004v.004l-.008.008h-.004v.004h-.004l-.004.008h-.016v.023h.016V4.82h.012l.016-.016v-.004h.004l.004-.008v-.004h.004v-.004l.004-.004v-.004h.004v-.004l.004-.004v-.004l.004-.008.004-.004zm0 0zm.082-.133l-.016-.012-.004.004v.004h-.004l-.004.004v.008h-.004l-.004.004v.004l-.004.004h-.004v.008l-.004.004v.004l-.008.004-.004.004v.008l-.004.004-.004.008v.004l-.004.004-.004.008v.004l-.004.008v.004l-.008.016v.008l-.008.004v.008l.02.008v-.012l.004-.004V4.73l.008-.004v-.008l.004-.004v-.008l.004-.008v-.004l.008-.004v-.004l.004-.004.004-.008v-.004l.008-.004v-.004h.004V4.66h.004v-.008l.012-.012v-.004l.004-.004h.004v-.004l.004-.004zm0 0zm0-.07v.02l-.008-.004v.004h.004v.016h-.004v.012l-.008.008v.004l.016.012h.004v-.004l.008-.008v-.004h.004v-.047h-.004v-.004h-.004zm.008 0h-.008zm-.008.02v-.02l-.008.02zm-.008 0h.004zm0 0\" class=\"sr-B\"/><path d=\"M10.828 4.566c-.105-.039-.187.168-.086.207.055.02.059-.051.07-.086.012-.051.121-.082.016-.121zm0 0\" class=\"sr-D\"/><path d=\"M10.738 4.781l.008-.02h-.004l-.008-.004-.004-.004-.004-.008-.004-.004-.004-.008v-.012l-.004-.008v-.051l.004-.012.016-.031.008-.008.004-.008.008-.008.008-.004.004-.004.016-.008h.008l.008-.004h.023l.008.004.012-.02h-.016l-.008-.004h-.031l-.012.004-.016.008-.012.008-.008.012-.016.016-.008.016-.008.012-.012.035v.012l-.004.008v.031l.004.012v.012l.008.016.008.012.008.004.008.008.016.008zm.086-.086l-.02-.008-.004.004v.012l-.004.004v.016l-.004.004v.008l-.004.004v.004l-.004.008-.004.004v.004h-.004v.004h-.004l-.004.004h-.023l-.008.016h.008l.004.004h.027l.004-.004h.004v-.004l.004-.004.008-.004v-.004l.004-.004v-.004h.004V4.75l.004-.004v-.008h.004v-.016l.004-.004v-.016l.004-.004v-.004zm.008-.137l-.008.02h.012l.008.008h.008l.004.008h.004l.004.004v.004h.004v.008h-.004v.004l-.004.004v.004h-.008v.008l-.004.004h-.004l-.004.004-.008.004-.012.012-.004.008-.004.004v.008l-.004.004v.012l.02.004V4.68l.004-.004h.004v-.008l.008-.004h.004V4.66l.004-.008.012-.012v-.004l.004-.004h.004v-.004l.008-.008v-.004l.004-.004v-.016l-.004-.004v-.008l-.008-.004-.004-.004-.004-.008-.008-.004h-.008l-.008-.004-.012-.004zm0 0\" class=\"sr-B\"/><path d=\"M10.816 4.602c-.051-.023-.121.098-.059.129.047.02.082-.008.098-.039.012-.043 0-.078-.035-.09zm0 0\" class=\"sr-G\"/><path d=\"M10.758 4.742l.008-.023h-.008l-.004-.004h-.004v-.004l-.004-.004v-.039l.004-.004v-.008h.004v-.008l.012-.012.004-.008.008-.008h.004v-.004l.008-.004h.02l.008-.02h-.031l-.02.02-.008.004-.004.004-.004.008v.004l-.008.008-.004.008-.004.004v.012l-.004.008v.051l.008.016.008.008h.012l.004.008zm.105-.051l-.02-.008-.004.008-.004.004v.004l-.004.008-.008.008h-.008v.004h-.004l-.004.004h-.008v.004h-.027l-.004-.004-.012.02h.016l.004.004h.035l.004-.004h.004v-.004h.008l.004-.004.008-.004.004-.008.008-.004h.004v-.008l.004-.004.004-.008v-.004l.004-.004v-.004zm-.043-.102l-.008.02h.008l.02.02v.004h.004v.016l.004.004v.023l-.004.004v.004l.02.008v-.016l.004-.004v-.031l-.004-.004v-.008l-.008-.008-.004-.008v-.004l-.004-.004v-.004h-.008l-.004-.004-.008-.004h-.004zm-.004.012l.004-.012zm0 0\" class=\"sr-B\"/><path d=\"M10.086 3.605c-.07 0-.129.055-.129.125s.059.133.125.133.129-.062.129-.129-.062-.125-.129-.125zm0 0\" class=\"sr-C\"/><path d=\"M9.945 3.73h.02c0-.039.027-.086.066-.105a.12.12 0 0 1 .051-.012v-.02c-.047 0-.094.023-.117.063-.016.023-.02.051-.02.074zm.141.141v-.02c-.043 0-.086-.027-.105-.066-.008-.016-.012-.035-.012-.055h-.02c0 .051.023.098.066.121.02.016.043.02.07.02zm.137-.141h-.02c0 .047-.027.086-.066.109-.016.008-.035.012-.055.012v.02c.047 0 .094-.027.117-.066.012-.023.02-.047.02-.074zm-.141-.141v.023c.043 0 .086.023.105.066.012.016.016.035.016.051h.02c0-.047-.023-.09-.066-.113-.02-.016-.047-.023-.07-.023zm0 0\" class=\"sr-B\"/><path d=\"M10.18 3.391c-.07 0-.129.059-.129.125 0 .074.059.129.129.129s.125-.055.125-.129-.062-.125-.129-.125zm0 0\" class=\"sr-C\"/><path d=\"M10.039 3.516h.02c0-.043.027-.086.066-.105.016-.008.031-.012.051-.008v-.023c-.047 0-.094.027-.121.066-.012.023-.02.047-.02.074zm.141.141v-.02c-.047 0-.086-.027-.109-.066-.008-.016-.012-.031-.012-.051h-.02c0 .047.023.094.066.121.02.012.047.02.07.02zm.133-.141h-.02c0 .047-.023.086-.062.109a.12.12 0 0 1-.051.012v.02c.047 0 .09-.023.113-.066.016-.02.02-.047.02-.07zm-.133-.141v.023c.039 0 .082.027.102.066a.12.12 0 0 1 .012.051h.02c0-.043-.023-.09-.062-.117-.023-.016-.047-.023-.07-.023zm0 0\" class=\"sr-B\"/><path d=\"M9.871 2.637c-.066 0-.121.055-.121.121s.055.125.121.125.125-.055.125-.125c0-.031-.012-.062-.035-.086s-.055-.035-.09-.035zm0 0\" class=\"sr-C\"/><path d=\"M9.738 2.762h.023c0-.047.023-.086.059-.102.016-.008.035-.016.051-.016v-.02a.13.13 0 0 0-.109.063.12.12 0 0 0-.023.074zm.133.133v-.023c-.039 0-.078-.023-.098-.059-.008-.02-.012-.035-.012-.051h-.023c0 .043.027.09.063.109.02.016.047.023.07.023zm.137-.137h-.023c0 .043-.023.086-.062.102-.016.008-.031.012-.051.012v.023c.047 0 .09-.023.113-.062.012-.02.02-.047.02-.07zm-.137-.133v.02c.039 0 .082.023.102.063.008.016.012.031.012.051h.023c-.004-.043-.023-.086-.062-.113-.023-.012-.047-.02-.074-.02zm0 0\" class=\"sr-B\"/><path d=\"M10.078 2.73c-.07 0-.125.059-.125.129s.055.129.125.129.129-.062.129-.129a.13.13 0 0 0-.129-.129zm0 0\" class=\"sr-C\"/><path d=\"M9.941 2.859h.02c0-.047.027-.086.066-.105.016-.012.035-.016.051-.016v-.02c-.043 0-.09.023-.113.066-.016.02-.02.047-.02.07zm.137.141v-.02c-.039 0-.086-.031-.105-.066-.008-.02-.012-.035-.012-.055h-.02c0 .047.023.094.066.121.02.012.043.02.07.02zm.141-.141h-.02c0 .043-.027.086-.066.105-.02.008-.035.012-.055.012v.02c.047 0 .094-.023.121-.066a.15.15 0 0 0 .02-.074zm-.141-.141v.02c.043 0 .086.027.105.066a.12.12 0 0 1 .012.051h.02c0-.047-.023-.094-.066-.121a.15.15 0 0 0-.074-.02zm0 0\" class=\"sr-B\"/><path d=\"M10.23 2.914c-.07 0-.125.055-.125.129a.12.12 0 0 0 .121.125c.07 0 .129-.055.129-.125a.13.13 0 0 0-.129-.129zm0 0\" class=\"sr-C\"/><path d=\"M10.094 3.043h.02c0-.047.023-.086.066-.109.016-.008.031-.012.051-.012v-.02c-.047 0-.094.023-.117.066a.15.15 0 0 0-.02.074zm.137.141V3.16c-.039 0-.086-.027-.105-.066a.12.12 0 0 1-.012-.051h-.02c0 .043.023.09.063.117.023.016.047.023.074.023zm.141-.141h-.02c0 .039-.031.086-.066.102-.02.012-.039.016-.059.012v.023c.051-.004.094-.027.121-.066.012-.023.02-.047.02-.074zm-.141-.141v.02c.043 0 .086.023.105.066.008.016.012.035.012.055h.02c0-.051-.02-.098-.062-.121-.023-.016-.047-.02-.074-.02zm0 0\" class=\"sr-B\"/><path d=\"M10.258 3.141c-.074 0-.129.059-.129.129s.059.133.129.133.125-.062.125-.129-.055-.129-.125-.129zm0 0\" class=\"sr-C\"/><path d=\"M10.117 3.27h.02c0-.043.027-.086.066-.105.016-.008.035-.012.055-.012v-.02c-.051 0-.098.023-.121.063-.016.023-.02.047-.02.074zm.141.141v-.02c-.047 0-.086-.027-.109-.066-.008-.02-.012-.035-.012-.055h-.02c0 .051.027.102.07.121.02.012.043.02.07.02zm.133-.141h-.02c0 .043-.023.086-.062.105-.016.008-.031.016-.051.016v.02c.047 0 .09-.027.117-.066.012-.023.02-.047.02-.074zm-.133-.137v.02c.039 0 .082.027.102.063.008.02.012.035.012.055h.02c0-.047-.023-.09-.062-.117-.02-.012-.047-.02-.07-.02zm0 0\" class=\"sr-B\"/><path d=\"M8.598 3.973c.055-.102.113-.168.172-.195-.082-.266-.105-.605-.055-1.023.004-.066.02-.094.047-.094.02 0 .031.035.035.105l-.023.605c.008.152.043.281.082.426.008.023-.008.035-.074.074-.055.031-.086.066-.094.102-.016-.004-.027 0-.031 0-.051.016-.074.012-.059 0zm0 0\" class=\"sr-D\"/><path d=\"M8.781 3.773l-.02.008.004-.012h-.004l-.016.008-.004.004h-.004l-.008.004h-.004l-.012.012-.008.004-.008.016-.008.004-.004.008-.008.004-.016.016-.004.012-.008.004-.008.016-.008.008-.008.016-.008.008-.004.008-.004.012-.008.008-.004.008-.008.012-.004.008.02.012.004-.012.004-.008.008-.012.008-.016.008-.008.008-.016.008-.008.004-.008.004-.004.008-.012.008-.004.012-.012v-.004l.008-.008.004-.008.008-.008.008-.004.008-.008.008-.004.004-.004.004-.008.016-.008h.004l.016-.008.004-.012zm-.008.012h.008v-.012zm-.047-1.031h-.02l-.004.039-.004.035-.004.039-.004.043v.035l-.004.035v.035l-.004.039v.301l.004.027.004.031v.031l.008.031.004.027.004.031.012.082.008.027.004.027.008.027.008.023.004.027.012.023.02-.004-.008-.023-.023-.082-.008-.023-.004-.023-.008-.031-.004-.023-.004-.027-.008-.031-.004-.027v-.027l-.004-.031v-.027l-.004-.035v-.031l-.004-.035v-.273l.004-.035v-.039l.004-.035.004-.039.004-.035.004-.043.004-.039zm0 0zm.035-.082v-.02h-.016v.004h-.004v.004h-.004l-.004.004H8.73v.012h-.004v.008l-.004.004v.004l-.004.004v.008l-.004.008v.02l-.004.004v.008h.02v-.016l.004-.004v-.012l.004-.004v-.012h.004v-.008h.004v-.004l.004-.008h.004v-.004zm.023.094h.02V2.73l-.004-.004v-.02l-.004-.008v-.012h-.004V2.68l-.004-.008v-.004h-.004l-.012-.012h-.012v.02h.004v.004h.004v.004l.004.004v.008l.004.004v.012l.004.004v.031l.004.012v.012zm.02 0zm-.043.605h.02v-.285l.004-.02v-.055l.004-.02v-.043l.004-.02v-.02l.004-.02v-.039l.004-.02v-.047l.004-.02-.02-.004v.02l-.004.023v.043l-.004.02v.043l-.004.02v.043l-.004.02v.039l-.004.02v.059l-.004.02zm.086.43l.02-.008-.004-.012V3.77l-.004-.016-.004-.012-.004-.016v-.016l-.008-.023-.004-.016V3.66l-.008-.012v-.012l-.004-.012-.004-.016v-.008l-.008-.031v-.012l-.004-.012-.004-.016v-.016l-.004-.012v-.012l-.004-.012v-.016l-.004-.016v-.012l-.004-.012v-.035l-.004-.02h-.02v.031l.004.016v.027l.004.016v.012l.004.016v.016l.004.012v.016l.004.016.004.012v.016l.004.012.004.016v.012l.004.016v.012l.008.012v.012l.004.016.004.012v.012l.008.012.004.012.004.016v.012l.008.012.004.016.004.012v.012zm-.07.059l.008.023.004-.008h.008l.004-.004.008-.004h.008l.004-.008h.004l.004-.004h.008v-.004l.008-.004h.004l.004-.004.004-.008h.004v-.004h.004l.004-.004v-.004l.004-.004v-.02l-.02.004v.012h-.004v.004l-.004.004H8.84v.004h-.008l-.008.008H8.82l-.008.008h-.004l-.004.008h-.008l-.004.004-.008.004zm0 0zm-.086.105l-.008.02.016-.008v-.004l.004-.004v-.004l.004-.004v-.008l.004-.008.004-.004.004-.008.008-.004.004-.004v-.004h.008v-.004h.004v-.004l.008-.004h.004v-.008h.008l.004-.004h.004l.008-.008h.004l-.012-.02-.004.004h-.004l-.004.008-.008.004-.004.004h-.004v.004h-.008l-.004.008-.02.02v.008l-.008.004h-.004v.004l-.004.004v.004h-.004v.008l-.004.004v.004l-.004.008v.004l-.004.004v.004l.012-.004zm-.008.02h.012l.004-.008zm-.027-.023l.004.02h.023l.008-.016h-.004l-.004-.004h-.031zm-.066.012h.02l-.012-.008-.004.004v.016l.004.004h.004v.004h.035l.004-.004h.004l.004-.004h.012l-.008-.02h-.012l-.004.004h-.02v.004h-.016v.008zm.02 0v-.02l-.012.012.016.008zm0 0h-.02l.02.004zm0 0\" class=\"sr-B\"/><path d=\"M8.918 4.305c-.031-.02-.039-.016-.047-.027s-.012-.047-.008-.07c.016-.105-.051-.094-.121-.043-.035.02-.07.078-.102.105s-.055.027-.062.039v.184c.008.012.035.016.063.043s.066.082.102.105c.07.047.137.063.121-.043-.004-.027-.004-.055.008-.07s.016-.008.047-.027c.02-.012.035-.027.047-.043s0-.035 0-.055.008-.035 0-.051-.027-.031-.051-.043zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M8.879 4.273l-.016.008.008.008h.008v.004h.008l.004.004h.004l.004.004h.004v.008h.008v.004l.016-.023h-.012v-.004H8.91l-.004-.004h-.004l-.004-.004h-.008v-.004h-.008V4.27h-.004zm-.008-.066l-.02-.004v.059l.004.008v.004h.004v.004l.02-.012v-.004h-.004v-.008h-.004v-.051zm-.133-.055l.012.02.008-.004.012-.012.008-.004h.004l.008-.004h.004l.008-.004h.004v-.004h.008l.004-.004h.023v.004h.004v.004l.004.004v.016l.004.004v.039l.02.004v-.059l-.004-.008v-.008l-.004-.004-.008-.004-.004-.004h-.004l-.004-.004H8.84l-.004-.004h-.031v.004h-.008l-.008.004h-.004l-.008.008H8.77l-.004.004-.031.016zm-.102.109l.012.012.008-.004.02-.02.008-.004.004-.004v-.004h.004V4.23l.016-.016v-.004l.004-.004v-.004h.008l.012-.012h.004l.004-.004v-.004h.008V4.18h.004l-.012-.023-.004.008-.008.004v.004h-.004v.004h-.008l-.008.008v.004l-.004.004h-.004v.008l-.008.004-.004.004v.004l-.012.012h-.004v.004l-.008.004-.004.008-.008.008v.004h-.008v.008h-.004v.004zm-.07.047h.027v.008h.004l.004-.004h.004v-.004h.008l.004-.008h.004v-.004h.004v-.004h.008v-.004l.004-.004.008-.004.004-.004-.016-.012h-.004v.004h-.004v.004h-.004v.004h-.004v.004h-.004l-.008.008h-.004l-.004.004h-.004l-.004.004h-.008v.004h-.008v.004l-.004.004v.004zm.004-.004v.004zm0 .098h.023v-.09l-.023-.004zm.023 0zm0 0H8.57zm0 0zM8.57 4.5l.023-.012v.004-.086H8.57zm0-.008v.004zm.066.051l.016-.016h-.004v-.004l-.008-.004-.004-.004h-.008v-.004h-.004v-.004h-.004l-.004-.004h-.004V4.5h-.008v-.004h-.008v-.004l-.023.008.008.008h.008v.004h.008l.004.008h.004v.004h.008v.004h.004v.004h.004l.008.008v.004zm.102.105l.012-.016h-.004v-.004l-.004-.004-.008-.004-.02-.02v-.004h-.008V4.59l-.004-.008-.004-.004v-.004l-.004-.004-.008-.004v-.004l-.008-.008v-.004h-.008v-.004l-.008-.004-.004-.004h-.004v-.008h-.004v-.004l-.016.016.012.012v.004h.004v.004l.008.004.004.004.008.004.008.008v.008l.004.004v.004l.004.004h.004v.004h.008l.004.008v.004h.004l.008.008.004.008.008.004zm.137-.051l-.02.004v.051l-.004.008v.004h-.004v.004h-.035v-.004h-.008l-.008-.004h-.004l-.008-.008-.004-.008h-.008l-.008-.008-.008-.004-.012.016.008.004.012.012h.008l.008.004.004.004h.008l.004.008h.008l.004.004h.008l.008.004h.02l.004-.004h.008l.004-.008.008-.008v-.004l.004-.004v-.016l.004-.008v-.043zm.004-.062l-.016-.012v.004h-.004v.008h-.004v.012l-.004.004v.051l.02-.004v-.051h.004v-.008h.004zm.047-.027l-.016-.016h-.004l-.004.004h-.004l-.004.004h-.004l-.004.004h-.008v.004h-.004v.004h-.004l-.004.008-.004.004.016.012.004-.004h.004v-.004h.008l.004-.004h.008V4.52h.004l.004-.008h.008v-.004zm-.016-.016l-.008.004zm.063-.031l-.016-.012-.004.004v.004h-.004v.008h-.004v.004h-.004v.004h-.004v.004h-.004l-.008.008h-.004v.004h-.008l.012.02v-.004h.004l.008-.008h.004v-.004h.004v-.004h.004v-.004h.004V4.48h.004v-.004h.004v-.004l.008-.008v-.004zm.004-.062h-.02v.051l.016.008v-.004h.004v-.008l.004-.004v-.043zm-.004-.055l-.016.012v.008l.004.004v.035h.02v-.051h-.004v-.008zm-.047-.051l-.016.023h.004v.004h.004l.023.023v.004h.004v.004h.004v.004l.02-.012h-.004V4.34l-.008-.008v-.004h-.004l-.004-.004V4.32h-.004v-.004h-.004l-.004-.004h-.004v-.004l-.004-.004h-.004v-.004h-.004zm-.016.023l-.012-.008zm0 0\"/><path d=\"M8.574 4.418v.02c.082.008.141.039.195.086-.035-.055-.113-.094-.195-.105zm0-.031v-.02c.082-.008.141-.039.195-.086-.035.055-.113.09-.195.105zm0 0\"/></g><path d=\"M8.863 4.156c-.02.012-.047.023-.07.043-.031.027-.012.078.031.133.012.012.02.039.02.07 0 .023-.012.055-.02.07-.043.051-.062.098-.031.133.02.02.047.027.066.039v-.047c-.004-.027-.004-.055.008-.07s.016-.008.047-.031c.02-.008.035-.023.047-.043s0-.035 0-.051.008-.039 0-.055-.027-.031-.047-.043c-.031-.02-.039-.016-.047-.027s-.012-.047-.008-.07v-.051zm0 0\" class=\"sr-D\"/><path d=\"M8.785 4.191l.016.012.008-.008h.004v-.004h.004l.004-.004h.004v-.004h.008V4.18h.012v-.004h.004l.004-.004h.004l.004-.004h.004l-.008-.02h-.004l-.004.004h-.004l-.004.004h-.008l-.004.004h-.004v.004H8.82l-.004.004h-.004v.004h-.008v.004h-.004zm.031.145l.016-.012-.004-.004v-.004h-.004l-.008-.016v-.004l-.008-.004v-.008l-.004-.004v-.004h-.004V4.27l-.004-.004v-.008h-.004v-.031l.004-.008.008-.008-.012-.012-.008.004v.004l-.004.004v.004h-.004v.012l-.004.004v.02l.004.004v.008l.004.004v.012l.004.004v.008l.008.004v.008l.004.008v.004l.008.004.004.008v.004l.004.004.008.004.004.004zm.02.066h.02v-.012l-.004-.004v-.027h-.004v-.02h-.004v-.008l-.004-.004v-.004h-.004V4.32l-.02.012h.004v.008h.004v.004l.004.004v.02h.004v.027h.004v.012zm-.02.066l.016.012v-.004h.004v-.004h.004v-.008h.004v-.023l.004-.008v-.02h.004v-.012h-.02v.023l-.004.004v.008l-.004.004v.008l-.004.004v.004h-.004zm-.031.145l.016-.016h-.004v-.004h-.004V4.59l-.004-.008v-.035l.004-.004v-.004l.004-.004v-.004l.004-.008V4.52l.012-.012v-.004l.008-.008v-.004l.012-.012-.016-.012-.004.004h-.004v.008l-.004.004-.004.008h-.004v.004l-.004.008v.008l-.008.008v.008l-.004.004v.008l-.004.004v.012l-.004.004v.012l.004.008v.012l.004.004v.004l.004.004v.004l.008.004v.004zm.086.035l-.02-.004.016-.008h-.016v-.004h-.008l-.004-.004h-.004l-.004-.004h-.004v-.004H8.82v-.004h-.004l-.008-.008h-.004v-.004h-.004v-.004l-.016.016h.004v.004h.004v.004h.004l.008.008h.004l.004.004h.004v.004h.008v.004h.008v.004h.012v.004h.004l.004.004h.004l.012-.008zm-.012.008l.012.008v-.016l-.012.012zm.012-.059l-.02.004v.039l.02.008zm.008-.062l-.016-.012v.004h-.004v.008h-.004v.012l-.004.004v.051l.02-.004v-.051h.004v-.008h.004zm.047-.027l-.016-.016h-.004l-.004.004h-.004l-.004.004h-.004l-.004.004h-.008v.004h-.004l-.004.004-.004.008-.004.004.016.012.004-.004h.004v-.004h.008l.004-.004h.008V4.52h.004l.004-.008h.004v-.004zm0 0l.004-.004-.008.004zm.043-.047l-.016-.008-.004.004v.004h-.004v.008h-.004v.004h-.004v.004h-.004v.004H8.93l-.004.004h-.004v.004h-.004v.004h-.004l.012.02v-.004h.004l.008-.008h.004v-.004h.004v-.004h.004v-.004h.004v-.004h.004V4.48h.004v-.004l.008-.008zm0 0l-.004.012zm.008-.059h-.02v.047l.012.012v-.004h.004v-.008l.004-.008v-.043zm-.008-.059l-.016.012v.008l.004.004v.039h.02v-.055h-.004v-.008zm-.047-.047l-.016.02h.004v.004h.004l.008.004.02.02v.004h.004v.004h.004v.004l.02-.008h-.004v-.004l-.008-.008v-.004h-.004l-.004-.004v-.004h-.004V4.32h-.004l-.004-.004h-.004v-.004H8.93v-.004h-.004v-.008h-.004zm-.047-.02l-.016.008.008.008h.008v.004h.008l.004.004h.004l.004.008h.004v.004h.008v.004l.016-.023H8.91v-.004h-.004l-.004-.004h-.004l-.004-.004h-.008v-.004h-.008v-.004h-.004zm-.008-.066l-.02-.004v.059l.004.004v.004h.004v.004l.02-.008v-.004h-.004v-.008h-.004zm-.008-.039v-.02l-.012.012v.043l.02.004v-.059l-.008.012zm0-.02h-.012v.012zm0 0v.02h.004zm2.008.387l-.016-.004c.031-.047.039-.086.027-.129.023.031.02.086-.012.133zm0 0\" class=\"sr-B\"/><path d=\"M9.871 4.012c-.027.031-.023.039-.039.051s-.039.008-.066 0c-.102-.039-.102.039-.07.129.016.039.055.086.074.125.02.031.016.059.02.07l.082.012.078.008c.012-.004.02-.031.051-.059s.09-.062.121-.094c.063-.07.094-.137-.004-.133-.023 0-.047-.004-.059-.02s0-.023-.008-.062c-.008-.023-.016-.047-.027-.059s-.031-.012-.047-.016-.031-.012-.051-.004-.039.023-.055.047zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M9.824 4.051l.016.02.012-.012v-.004h.004v-.004l.004-.004v-.004l.004-.004v-.004h.004v-.004l.008-.008.004-.008-.016-.012-.008.008v.004h-.004v.012h-.004v.008h-.004v.004l-.004.004v.004h-.008v.004l-.004.004zm.016.02zm-.07-.02l-.004.02h.008l.004.004h.016v.004h.023l.008-.004h.004l.004-.004h.004l-.012-.02v.004h-.016v.004h-.02l-.004-.004h-.008l-.004-.004zm-.082.141l.02-.004V4.18l-.004-.008V4.16l-.004-.008v-.008l-.004-.004v-.016l-.004-.008v-.035l.004-.004V4.07h.004l.004-.004h.004l.008-.004h.031l.008.004h.008l.008-.016-.008-.004H9.75l-.008-.004h-.035l-.004.004h-.008l-.008.016v.004l-.004.004-.004.008v.066l.004.008v.012l.004.008v.008l.004.008v.008zm.074.129l.02-.008v-.004l-.004-.008-.004-.004v-.004l-.004-.004v-.008l-.008-.008V4.27l-.016-.016-.004-.008-.004-.004v-.004l-.004-.004H9.73v-.008l-.004-.004v-.004l-.008-.008v-.004l-.004-.004v-.004l-.004-.008-.02.008v.004l.004.004v.004l.004.004.004.008v.004l.004.004v.008l.008.008v.004l.008.008v.004l.008.008v.004l.008.004v.004l.008.008v.004l.004.004v.008h.008v.008l.008.008v.004zm.031.078l.004-.02.004.004v-.012h-.004v-.02l-.004-.004V4.34l-.004-.004v-.008l-.004-.008v-.004h-.004l-.02.008.004.004.004.008v.004h.004v.016h.004v.016l.004.008v.008l.004.004v.004zm-.008 0h.004zm.086.012v-.02h-.02v-.004h-.027v-.004h-.02l-.008-.004-.004.02h.008l.008.004h.016l.004.004h.027v.004zm0 0zm0 0v-.02.008-.008.02-.012zm0-.02zm.082.027l-.008-.02h.004-.027l-.008-.004h-.035l-.004-.004-.004.02h.016v.004h.027v.004zm-.004 0h.004zm.059-.059l-.012-.02-.004.004-.004.008h-.004l-.008.008-.004.008-.004.004v.004h-.004v.004h-.004v.004l-.004.004v.004h-.004v.004h-.004v.004l.008.02v-.004h.004l.008-.008v-.004h.004v-.004l.004-.004v-.004h.004v-.004l.012-.012.004-.008v-.004H10v-.004h.008v-.004zm.121-.098l-.016-.012-.004.004-.004.008-.008.004h-.004v.008l-.004.004h-.008l-.004.004h-.004l-.004.008-.008.004-.008.008h-.004v.008l-.004.004h-.004l-.016.016h-.004l-.012.012h-.004v.004l.008.016h.008v-.004l.004-.004h.004v-.004l.008-.004h.004l.008-.008h.004v-.004l.008-.004h.004l.004-.004h.004V4.32h.004l.004-.004.008-.004h.004v-.008h.004l.004-.008.004-.004h.004v-.004h.008v-.008l.004-.004h.004v-.004l.008-.004zm-.008-.148v.02h.023l.004.004h.008l.004.004v.004h.004v.031l-.004.004v.008l-.008.008-.008.016-.004.004-.004.008-.004.004-.004.008v.004l-.016.016.016.008.008-.004.008-.008.016-.031.004-.004v-.008l.008-.008v-.008l.008-.004V4.18l.004-.004v-.043l-.012-.012-.008-.004h-.004l-.004-.004h-.016l-.008-.004h-.016zm-.051-.016l-.016.008.008.008h.004v.004h.004l.004.004h.004l.004.004h.012l.004.004h.02v-.02h-.027l-.004-.004h-.004l-.004-.004h-.004v-.004h-.004v-.004zm0 0zm-.008-.059l-.02.004v.008h.004v.043h.004v.008l.004.004.02-.008h-.004v-.031l-.004-.004v-.016l-.004-.004zm-.027-.063l-.016.012.004.004v.004h.004v.008h.004v.008h.004v.008l.004.004v.008l.004.004v.008l.02-.004v-.012l-.004-.004v-.012l-.004-.004V4h-.004v-.008h-.004v-.008h-.004V3.98h-.004v-.008h-.004zm-.016.012l-.012-.016.008.016zm-.039-.031l-.004.02h.031v.004h.008v.004h.004l.016-.008-.008-.008h-.004v-.004h-.008l-.004-.004H9.98zm-.004.02h.016zm-.051-.023l.008.02h.031l.004.004h.008l.004-.02h-.016l-.004-.004h-.039zm-.062.059h.02v.004-.004h.004v-.004l.02-.02h.004v-.004h.004l.008-.004.004-.004h.004l.004-.004-.012-.02v.004h-.004l-.004.004H9.91v.004h-.004v.004h-.004l-.012.012h-.004v.004h-.004v.004L9.871 4v.004zm.004-.008h-.004v.008-.008zm.016.008h-.02l.02.004v-.008zm0 .004v-.008zm0 0\"/><path d=\"M9.887 4.402h.012c.031-.078.07-.141.129-.191-.059.027-.113.105-.141.188zm-.027-.004c-.008-.086-.016-.156-.047-.227.039.051.055.141.047.227zm0 0\"/></g><path d=\"M9.719 4.051c.004.027.008.063.02.086.023.043.078.027.133-.012.016-.012.043-.016.07-.012s.047.016.059.031c.031.055.066.082.105.055.02-.02.039-.047.051-.07-.008-.004-.023-.008-.039-.008-.023 0-.051-.004-.059-.02s0-.02-.012-.059c0-.027-.012-.047-.023-.063s-.031-.012-.047-.012-.031-.016-.051-.004-.039.023-.055.043c-.027.035-.023.043-.039.051s-.043.008-.066 0-.035-.012-.047-.008zm0 0\" class=\"sr-D\"/><path d=\"M9.73 4.141l.02-.008-.004-.004v-.008l-.004-.004v-.008l-.004-.004v-.02l-.004-.004v-.023H9.73v-.008h-.02v.02l.004.008v.02h.004v.016h.004v.012h.004v.008l.004.004zm.145-.008l-.008-.016-.008.004h-.004l-.004.004h-.004l-.008.008h-.004l-.008.004-.004.004H9.82l-.004.004h-.008v.004h-.016l-.004.004h-.02v-.004h-.004l-.004-.004-.004-.008-.004-.004-.02.012.008.008.004.008v.004h.004l.008.004h.004l.004.004h.039l.004-.004h.004l.008-.004h.004l.004-.004h.004l.008-.004.004-.004h.004l.004-.008.004-.004h.008l.008-.008zm.063-.008l.004-.02h-.02v-.004h-.027v.004h-.012v.004h-.008v.004h-.004l-.004.004.008.016h.004v-.004h.008v-.004zm.051.023l.02-.012v-.004H10v-.004h-.004v-.004l-.004-.004h-.004v-.004h-.004l-.004-.004h-.004l-.004-.004h-.004v-.004h-.016l-.004-.004h-.012l-.004.02h.016v.004h.008v.004h.008l.004.004h.004v.004h.004v.004h.004v.004h.004zm.121.055l-.012-.016h-.004v.004h-.012l-.004.004h-.012l-.004-.004h-.008v-.004h-.004v-.004h-.004V4.18h-.008v-.008h-.004v-.004l-.016-.016v-.004h-.004v-.008l-.008-.004-.016.008v.004l.004.004v.008l.008.004h.004v.008l.008.004.012.012h.004l.004.008h.004v.004h.008l.004.004h.008l.008.004h.023l.004-.004h.004l.008-.008h.004zm.055-.086l-.012.02-.004-.016v.004h-.004v.004l-.004.004v.004h-.004v.004l-.004.004v.004h-.004v.004l-.004.004-.004.008-.004.004v.004h-.004v.004h-.004v.004h-.004v.004h-.004v.004h-.004l.012.02.012-.012v-.004h.004v-.004h.004v-.004h.004V4.18h.004v-.008h.004v-.004h.004v-.004h.004v-.008h.004v-.004h.004v-.008h.004v-.004h.004v-.027zm0 .016l.008-.008-.012-.008v.016zm-.047-.02v.02h.027v.004h.008l.012-.02h-.023v-.004zm-.051-.016l-.016.008.008.008h.004v.004h.004l.004.004h.004l.004.004h.016l.004.004h.023v-.02h-.027l-.004-.004h-.012v-.004h-.004v-.004h-.004v-.004zm0 0zm-.008-.059l-.02.008v.004l.004.008v.035h.004v.012h.004l.02-.008h-.004V4.07h-.004v-.027zm-.027-.063l-.016.012.004.004v.004h.004v.008h.004v.008h.004v.008l.004.004v.016h.004v.008l.02-.004v-.016l-.004-.004v-.008l-.004-.004v-.008h-.004v-.008h-.004v-.008h-.004v-.004h-.004v-.008zm0 0l-.008-.012zm-.055-.02l-.004.02h.012v.004h.023v.004h.004l.004.004.016-.012-.008-.008h-.004v-.004h-.008l-.004-.004h-.031zm0 0h-.012zm-.059 0l.012.016h.035v.004h.012l.004-.02h-.016v-.004h-.043zm.012.016l-.004.004zm-.066.031l.012.012.004-.004h.004v-.004l.02-.02h.004v-.004h.004l.004-.004h.008v-.004h.004l.004-.004-.012-.02v.004h-.004l-.004.004h-.004v.004h-.004v.004h-.004l-.012.012h-.004v.004h-.004v.004L9.867 4v.004zm-.039.051l.012.02.012-.012v-.004h.004v-.004l.004-.004v-.004l.004-.004v-.004h.004v-.004l.004-.004.008-.016-.012-.012-.008.004-.004.008v.004h-.004v.004l-.004.004v.008H9.84v.004l-.004.004v.004h-.004v.004l-.004.004zm.012.02l.004-.004h-.004zm-.07-.02l-.004.02h.012l.004.004h.016v.004h.023l.004-.004h.004l.004-.004h.004l-.008-.02v.004h-.012l-.004.004h-.023l-.004-.004h-.008l-.004-.004zm-.055 0h.02l-.012.008h.02l.004.004h.008l.008.004h.004l.004-.02-.004-.004h-.016v-.004h-.031l-.008.008zm.008-.012h-.012l.004.012.012-.012zm0 0\" class=\"sr-B\"/><path d=\"M10.25 4.438c-.016-.02-.02-.016-.023-.027-.004-.02.004-.039.02-.062.043-.094-.008-.086-.07-.051-.023.012-.043.027-.062.043s-.035.035-.055.047c-.031.023-.051.023-.059.035a.69.69 0 0 0-.035.082.62.62 0 0 0-.031.086c0 .008.02.012.035.039s.023.07.039.094c.027.035.051.055.066.051.023 0 .035-.027.039-.086 0-.023.012-.043.027-.059s.012-.008.043-.023c.016-.012.031-.027.047-.043s.012-.023.02-.039.016-.031.016-.047-.008-.031-.02-.043zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M10.234 4.406l-.02.008v.004l.004.004v.004h.004v.004h.004v.004h.004l.004.004v.004h.004l.02-.012v-.004l-.008-.004-.008-.008h-.004V4.41h-.004zm-.02.008zm.035-.062l-.02-.008v.008l-.004.004v.008l-.004.004v.004l-.004.008v.039l.02-.008v-.023l.004-.004v-.008h.004v-.008h.004zm-.082-.059l.012.016h.008l.004-.008h.004l.008-.004h.004l.008-.004h.004l.004-.004h.012l.004-.004h.012v.031l-.012.012-.004.008-.004.012.02.008v-.008l.008-.008.004-.008V4.32l.004-.004v-.031l-.004-.004h-.004l-.004-.004h-.004l-.004-.004h-.023l-.004.004h-.012l-.008.004-.004.004h-.008l-.008.008-.008.004h-.008zm-.055.039l.012.02v-.008h.004l.004-.004h.004v-.004h.004v-.004h.004v-.004h.004l.004-.004h.004V4.32h.004l.004-.004.008-.004h.004l.004-.004-.012-.02v.004h-.004v.004h-.004l-.004.004h-.004v.004h-.004l-.004.004h-.004v.004h-.004v.004h-.004l-.012.012h-.004v.004zm-.059.051l.012.016h.004v-.004h.004v-.004h.004l.004-.004h.008v-.004h.004v-.004h.004v-.008h.004l.012-.012h.004v-.004h.004v-.004h.004l-.012-.02v.004h-.004l-.004.004v.004h-.004l-.008.008h-.004v.004h-.008v.004h-.004v.004h-.004l-.008.008h-.004v.008h-.004zm-.066.039l.023.004v.004-.004h.004v-.004h.008l.004-.004h.004l.004-.004h.004l.004-.004h.008v-.004h.004v-.004h.008v-.004h.004v-.004l-.012-.016-.004.004h-.004v.004h-.004l-.004.004h-.004l-.004.004h-.004v.004h-.008l-.004.004h-.008v.004H10l-.004.004h-.004v.008zm.004-.008v.004zm-.031.09l.02.008V4.5l.004-.004v-.008l.004-.004v-.012h.004v-.008l.004-.004v-.008H10v-.012h.004v-.008h.004v-.008l-.02-.008v.008l-.004.008v.004l-.004.004v.008l-.004.004v.008l-.004.004v.008h-.004v.008l-.004.004v.008h-.004zm0 0zm0 0l.02.008h-.008l-.004.008.008-.012-.012.012.012-.012-.012.012.008-.012-.004.008.004-.008v.004l-.02-.008v.004V4.5v.008l.008-.012-.012.012.012-.012-.012.012.008-.012h-.008v.008zm0-.004v.004zm-.031.098l.02-.004v.004-.008l.004-.008v-.004l.004-.008v-.004l.004-.008v-.004l.004-.004v-.008l.004-.004v-.004l.004-.004v-.008l.004-.004-.02-.012v.012h-.004v.008h-.004v.012l-.004.004v.004l-.004.008v.008l-.004.004v.008l-.004.004v.004l-.004.004zm0-.008v.008zm.031.047l.02-.008-.004-.004v-.004h-.004v-.004l-.004-.004v-.004h-.004v-.004h-.004l-.004-.004h-.004v-.004h-.004v-.004l-.02.004v.008h.004v.004h.004v.004h.004l.02.02zm.047.102l.012-.016-.004-.004v-.004h-.004v-.008l-.004-.004v-.008l-.004-.004v-.008H10v-.008h-.004v-.012h-.004V4.66l-.004-.008v-.004l-.004-.004v-.004l-.004-.004-.02.008.004.004v.008h.004v.008h.004v.012l.004.004v.004l.004.004v.008l.004.004v.004l.004.004v.008l.004.004v.004h.004v.008H10v.008l.004.004v.004zm.07.055l-.004-.02h-.008V4.77h-.004l-.004-.004h-.004v-.004h-.004l-.016-.016-.004-.008-.004-.004V4.73h-.004v-.008l-.02.016h.004v.008h.008v.004h.004v.008h.008v.008h.004v.004h.004l.012.012h.004v.004h.008v.004h.02zm.047-.102h-.02v.008l-.004.004v.02h-.004v.012l-.004.004v.008l-.004.004v.004h-.008v.004h-.004v.004h-.004v.02h.02v-.004h.004l.008-.008v-.008h.004v-.004l.004-.004V4.75l.004-.008v-.008h.004v-.02l.004-.004zm.023-.051l-.016-.012-.004.004v.004h-.004v.004l-.004.004v.004h-.004v.004l-.004.008v.004h-.004v.012h-.004v.012l.02.004v-.02h.004v-.008l.004-.004v-.004h.004v-.004h.004v-.008h.004v-.004zm.039-.02l-.008-.016h-.004v.004h-.012v.004h-.008v.004h-.008v.004h-.008v.004h-.004v.004l.012.012h.004l.004-.004h.008v-.004h.012l.004-.004h.004l.004-.004h.004zm.051-.043l-.016-.012-.016.016h-.004v.008h-.004v.004h-.004l-.004.004h-.004v.004h-.004l-.004.004.012.02v-.004h.004v-.004h.008v-.004l.004-.004h.004l.016-.016h.004V4.59h.004v-.008zm.023-.043l-.02-.008v.004h-.004v.008h-.004v.008h-.004v.008h-.004v.004l-.004.004.012.016h.004V4.57h.004v-.008h.004v-.008l.004-.004v-.016h.008v-.004zm.012-.051h-.02V4.5h-.004v.008l-.004.004v.004l-.004.004v.004l.02.012v-.023h.004v-.008h.004v-.012h.004v-.016zm-.02 0v.004zm-.008-.031v-.02l-.008.016v.008h.004v.004h.004v.016h.004v.004h.023v-.016l-.004-.004v-.008l-.004-.004v-.008h-.004v-.008h-.004V4.43h-.008l-.008.016zm0-.02h-.02l.012.016.004-.016zm0 0v.02l.008-.016-.008-.008zm0 .02h.02l-.012-.016zm0 0\"/><path d=\"M9.957 4.535l-.004.02c.027.008.051.02.07.035s.035.039.047.063c-.004-.027-.02-.051-.039-.074a.17.17 0 0 0-.078-.043zm.012-.035l.008-.02c.035 0 .066-.008.094-.02s.063-.031.09-.055c-.02.023-.051.047-.086.066-.031.012-.07.023-.105.027zm0 0\"/></g><path d=\"M10.258 4.289c-.02.008-.031.016-.055.035-.016.016-.027.035-.031.063 0 .02 0 .047.008.074.004.016 0 .043-.012.074s-.02.055-.039.07c-.047.047-.082.098-.07.133.008.016.02.027.031.035.008-.012.02-.023.027-.043.004-.027.016-.051.031-.07.008-.012.012-.027.039-.043.02-.012.039-.008.051-.02.027-.035.063-.113.027-.145s-.047-.055-.02-.113c.012-.02.012-.039.012-.051zm0 0\" class=\"sr-D\"/><path d=\"M10.195 4.316l.016.016.012-.012h.004v-.004h.004v-.004h.008v-.004h.004l.004-.004h.004l.004-.004h.008l-.004-.02h-.012v.004h-.008v.004h-.008v.004h-.008v.004h-.004v.004h-.004l-.008.008h-.004v.004h-.004v.004zm-.035.066l.023.004v-.016h.004v-.012h.004v-.008l.004-.004v-.004h.004V4.34h.004v-.004h.004v-.004h.004l-.016-.016h-.004v.004l-.004.004v.004h-.004v.004l-.004.004v.004h-.004v.008l-.004.004v.008h-.004v.016h-.004v.004zm.008.078h.02v-.027h-.004v-.047l-.02-.004v.066l.004.004zm.02 0v-.004zm-.027.07l.02.004v-.008l.004-.008v-.008l.004-.008v-.016h.004v-.027h-.02V4.5h-.004v.012h-.004v.016h-.004v.008zm-.035.066l.012.012v-.004l.004-.004h.004v-.008h.004V4.59l.004-.008v-.004h.004v-.004l.004-.004v-.004h.004v-.012l.008-.004.004-.004v-.008h.004l-.023-.008v.004l-.004.004v.004l-.008.008v.008l-.004.004v.004h-.004v.004h-.004v.008h-.004v.004h-.004v.004h-.004v.004zm-.074.145l.02-.008-.004-.004v-.027l.004-.004v-.008l.004-.004v-.004l.008-.008v-.004l.008-.004.004-.004V4.66l.004-.008.004-.004v-.008l.008-.004.02-.02.004-.008h.004l-.012-.016-.008.004-.004.004-.008.016-.008.004-.004.004v.004l-.004.008-.008.004-.004.004v.004l-.008.004-.004.008v.004l-.008.008v.004l-.004.004v.004l-.004.008v.012l-.004.004v.027l.004.004zm.051.035l-.023-.008.02-.004-.004-.004h-.004v-.004h-.008v-.004h-.004V4.75l-.004-.004v-.004l-.004-.004v-.004l-.02.008v.004l.004.004v.004l.004.004v.004h.004v.004h.004v.004h.004v.004h.004v.004h.004l.004.004zm-.02.004l.012.004.008-.008zm.043-.051l-.02-.008v.012h-.004v.008h-.004v.004h-.004v.004l-.004.004v.004h-.008v.008l.02.008V4.77h.004v-.004l.004-.004v-.004h.004v-.004h.004v-.008l.004-.004v-.004l.004-.004v-.008zm.027-.066l-.016-.016v.004h-.004v.008l-.004.004v.004l-.004.004v.004h-.004v.008h-.004v.008l-.004.004v.008l-.004.008v.012l.016.008v-.012h.004v-.008l.004-.004v-.012h.004v-.004l.004-.004v-.004l.004-.004v-.004h.004v-.004l.004-.004zm0 0zm.043-.043l-.008-.02-.008.004-.004.004h-.004l-.012.012v.004h-.004v.004h-.004v.004l-.008.008v.004h-.004v.004l.012.016.004-.004v-.008h.004v-.004h.004v-.008h.008v-.004h.004v-.004h.004v-.004h.004v-.004h.008v-.004zm.051-.027l-.016-.012h-.004v.004h-.004v.004h-.016l-.004.004h-.008l-.004.004h-.004l-.004.004.008.02v-.004h.008l.004-.004h.016v-.004h.008l.004-.004h.004zm.027-.156l-.016.016v.004h.004v.008h.004v.043l-.004.004v.012l-.004.004v.004l-.004.008v.004l-.004.004v.004l-.004.004v.004l-.008.004v.004h-.004v.004l-.004.004.016.016.004-.008.004-.004v-.004l.004-.004v-.004h.008v-.008l.004-.004.004-.008v-.004l.004-.008v-.004l.004-.004v-.012l.004-.008v-.039l-.004-.008v-.004h-.004l-.004-.004-.004-.008zm-.016-.102l-.02-.008v.008l-.004.004v.008l-.004.004v.012h-.004v.035l.004.004v.004l.004.004v.004h.004v.008h.004v.004l.008.008h.008l.004.008.016-.012-.004-.008h-.004l-.004-.004-.004-.008-.004-.004v-.004l-.008-.004v-.004l-.004-.008v-.016l.004-.004v-.008l.008-.004.004-.008v-.004zm0-.059v.02l-.008-.016v.031h-.004v.02h-.004l.02.012v-.016h.004v-.016l.004-.004v-.02l-.008-.016zm.012.008l.008-.012h-.016l.012.012zm-.008.008v-.02zm0-.02zm0 0\" class=\"sr-B\"/><path d=\"M9.406 4.539c.023.02.031.02.039.031s0 .039-.004.066c-.031.102.027.086.098.051.031-.02.074-.062.105-.086s.051-.023.059-.035c.008-.027.016-.055.02-.086 0-.012.012-.047.02-.086-.008-.016-.027-.023-.047-.051-.02-.035-.047-.094-.074-.121-.059-.066-.121-.09-.121.027 0 .027-.004.059-.02.07s-.02.008-.047.02-.043.027-.055.043-.008.039-.012.055-.012.035-.004.051.02.035.039.051zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M9.434 4.574l.02-.012h-.004v-.008h-.008v-.004h-.008v-.004H9.43l-.004-.004h-.004v-.004h-.004v-.004h-.004v-.004l-.016.016.004.004h.004v.004h.004l.008.008h.004v.004h.008v.004h.004zm.02-.012zm-.02.07l.016.004v-.004l.004-.004v-.012h.004V4.57h-.004v-.004l-.02.008v.004h.004v.043h-.004zm.109.059l-.012-.016h-.004l-.008.008h-.004l-.008.004h-.004l-.008.004h-.004l-.004.004h-.016l-.004.004h-.012v-.004h-.004v-.008l-.004-.004V4.66l.004-.008v-.004l.004-.008-.02-.008v.008l-.004.008v.016l-.004.008v.02l.004.008v.004l.008.008h.004l.004.004.008.004h.023l.008-.004H9.5l.008-.004.004-.004h.004l.016-.008.004-.004h.008zm.105-.086l-.012-.02-.008.008-.004.008h-.004v.004h-.008v.008l-.008.008h-.004v.004h-.008l-.004.008-.016.016H9.57v.004l-.004.004h-.004l-.004.004v.004h-.004v.004h-.004l-.004.004-.008.004.012.02.004-.004h.004v-.004l.004-.004h.004l.008-.008h.004l.004-.004h.008v-.008h.004l.008-.004h.004v-.008l.004-.008h.004l.012-.012h.004v-.004h.004l.016-.016.008-.004h.004zm-.012-.02zm.082-.02l-.02-.004v-.004h-.004v.004h-.008l-.004.004h-.008v.004H9.66l-.004.004h-.004l-.004.004-.008.004h-.004l-.004.004.012.02v-.004h.008v-.004h.004l.008-.008h.008l.004-.004h.004v-.004h.008l.004-.004h.004l.004-.004h.004V4.57h.004v-.008zm-.004.004v-.004zm.012-.082v-.02l-.012.008v.008l-.004.004v.02h-.004v.027h-.004v.02h-.004v.008l.02.004v-.012l.004-.008v-.012l.004-.008v-.016h.004v-.016l.004-.004V4.48zm0-.02h-.012v.008zm.008.012l-.02-.004v-.004l.012-.004v.02h.004l.004-.012zm-.02-.004zm.035-.09l-.02.008v-.004.02h-.004v.023l-.004.004v.02l-.004.004v.016l.02.004v-.027l.004-.004v-.016l.004-.008v-.012h.004v-.016l.008-.004v-.008zm0 .004v-.004zm-.047-.055l-.02.008.008.008.004.008.008.008h.004v.004h.004l.004.004h.004v.004h.004v.004h.004v.004h.004l.02-.004h-.004v-.012h-.004v-.004h-.008v-.004H9.73l-.012-.012h-.004v-.004l-.008-.008v-.004h-.004v-.004zm-.074-.125l-.016.012h.004v.008h.004v.008l.008.004v.004l.004.004v.004h.004v.008l.004.004v.008l.004.004v.004l.004.004v.004l.004.004v.004l.004.004v.008l.004.008v.004l.004.004v.004h.008v.004l.008.008.02-.008-.004-.004-.004-.008v-.004h-.004v-.004l-.004-.004v-.008l-.004-.004v-.004l-.004-.004v-.004l-.004-.004v-.004l-.008-.004V4.27H9.66l-.004-.008v-.004l-.004-.004V4.25l-.004-.004v-.004l-.004-.004V4.23l-.008-.008v-.004l-.004-.004h-.004v-.008zm-.137.035h.023v-.027l.004-.008v-.012l.004-.004v-.008l.004-.004h.004V4.18h.023l.008.004.004.004h.004l.008.004.004.008.008.004.012.012.008.004.004.004.016-.012-.012-.012-.008-.004-.004-.008-.004-.004-.016-.008-.004-.004h-.004l-.008-.008h-.004l-.004-.004h-.008l-.004-.004h-.023l-.023.023v.012l-.004.012v.008l-.004.004v.031zm-.02.066l.016.016.004-.004V4.32h.004v-.004l.004-.004v-.012l.008-.004v-.016l.004-.004v-.023h-.023v.039h-.004v.004l-.004.004v.008h-.004v.004l-.004.004zm0 0zm-.043.02l.008.02.008-.004h.004l.004-.004h.008V4.34h.02v-.004h.008v-.004h.004v-.004l-.012-.012v.004h-.008v.004h-.016l-.004.004h-.008l-.004.004h-.004l-.004.004zm-.055.047l.016.012h.004v-.004l.004-.004h.004v-.012h.004l.004-.004h.004v-.004h.004v-.004h.008v-.004h.004l.004-.004-.004-.02-.008.004h-.004l-.008.008h-.004v.004h-.004l-.004.004h-.004v.004h-.004v.004h-.004v.004h-.004v.004h-.004v.004h-.004zm.016.012l-.008.008.004-.008zm-.031.043l.02.004v-.023l.004-.004v-.016h.004v-.008l-.012-.016v.008l-.004.004v.004l-.004.004v.043h-.004v.004zm0 .063l.016-.008v-.043l.004-.004v-.008h-.02v.02l-.004.004v.035zm.035.051l.016-.016h-.004v-.004l-.004-.004V4.52h-.004v-.004h-.004v-.004h-.004v-.004l-.004-.004V4.5l-.004-.004v-.004h-.004v-.004l-.02.008.004.004v.004l.004.004v.004h.004v.008h.004v.004h.004v.004l.008.008v.004h.004l.008.008zm.016-.016zm0 0\"/><path d=\"M9.727 4.465l.004-.02c-.062-.016-.117-.055-.156-.105.023.059.086.105.152.125zm-.004.031c0 .008-.004.012-.008.02a.32.32 0 0 0-.184.059c.039-.043.117-.074.191-.078zm0 0\"/></g><path d=\"M9.434 4.68c.023-.004.047-.016.066-.031.031-.023.023-.074-.008-.125-.008-.02-.008-.047-.004-.07s.012-.051.031-.07c.047-.047.074-.098.051-.133-.016-.027-.039-.043-.055-.055-.008.012-.008.027-.008.051s-.008.059-.023.07-.02.008-.047.02-.043.027-.055.043-.012.039-.012.055-.012.035-.004.051.02.035.039.051.031.02.039.031 0 .039-.004.066c-.008.02-.008.035-.008.047zm0 0\" class=\"sr-D\"/><path d=\"M9.508 4.66l-.016-.02h-.004v.004h-.004l-.004.004h-.004l-.004.004h-.004l-.004.008h-.008v.004h-.008l-.004.004h-.008l-.004.004H9.43l.008.02h.008v-.004h.008l.004-.004h.004V4.68h.008l.004-.004h.004l.004-.004h.004v-.004h.004l.008-.004H9.5V4.66zm0-.141l-.023.008v.004h.004l.004.008v.004l.004.004v.004l.004.008v.008l.008.004v.008l.004.004v.031l-.004.008v.004H9.5v.004l-.008.008.016.016.008-.008v-.004h.004v-.008l.004-.004v-.008l.004-.004v-.043h-.004v-.016l-.004-.004-.004-.008v-.004l-.004-.004v-.008l-.004-.004v-.012zM9.5 4.453l-.02-.004v.016h-.004V4.5l.004.004v.016h.004v.004l.02-.008H9.5v-.012h-.004v-.051zm.027-.066l-.016-.016v.008h-.004v.008h-.004v.004l-.004.004v.004l-.004.004v.004l-.004.004v.008h-.004v.016l-.004.004v.016h.02V4.43l.004-.004v-.008h.004V4.41h.004v-.004l.004-.004v-.004h.004v-.004l.004-.004zm0 0zm.051-.145l-.02.012h.004v.016l.004.004v.012l-.004.004v.008l-.004.004v.008l-.004.004v.004l-.004.004v.004l-.004.004v.004l-.008.008v.004l-.008.004-.004.008v.004l-.008.008h-.004l.012.016.008-.008.008-.004.004-.004v-.008l.016-.016V4.34l.008-.008h.004v-.008l.004-.004v-.004l.004-.004v-.004l.008-.008v-.008l.004-.004v-.02l-.004-.008v-.004l-.008-.004V4.25zm-.074-.051l.016.008-.012.008h.004l.004.004h.004l.004.004h.004v.004h.004v.004h.004l.02.02v.004h.004v.004l.004.004.02-.012h-.004v-.004L9.57 4.23v-.004h-.004v-.004h-.004v-.004h-.004v-.004h-.004l-.008-.008h-.004v-.004h-.004l-.008-.008h-.004v-.004zm.012 0l-.008-.008v.012h.012zm-.02.059h.02v-.043h.004v-.008l-.02-.008v.02h-.004v.043zm-.02.066l.012.016.004-.004v-.004h.004V4.32l.004-.004v-.016l.008-.004v-.016l.004-.004v-.023h-.023v.031h-.004v.012l-.004.004v.008h-.004v.004l-.004.004zm-.047.02l.008.02.008-.004h.004l.004-.004h.008v-.004h.02V4.34h.008v-.004h.004v-.004l-.012-.016v.004h-.008v.004h-.016l-.004.004h-.008l-.004.004h-.004l-.004.004zm-.055.043l.016.012h.004v-.004l.004-.004h.004v-.008h.004l.004-.004h.004v-.004h.004v-.004h.008v-.004h.004l.004-.004-.004-.02-.008.004h-.004l-.008.008h-.004v.004h-.004l-.004.004h-.004v.004h-.004v.004h-.004v.004h-.004v.004h-.004v.004h-.004zm.016.012l-.008.012.004-.012zm-.031.047l.02.004v-.027h.004v-.016h.004v-.008l-.012-.012v.004l-.004.004v.004l-.004.004v.039h-.004v.004zm0 .059l.016-.008v-.043l.004-.004v-.008h-.02v.02l-.004.004v.035zm.035.055l.016-.016h-.004v-.004l-.004-.004v-.004h-.004V4.52h-.004v-.008h-.004v-.004l-.004-.004V4.5h-.004v-.008h-.004v-.004l-.02.008.004.004v.004l.004.004v.004l.004.008v.004h.004v.004h.004v.004l.008.008v.004h.004l.008.008zm.016-.016zm.02.043l.02-.012v-.004h-.004v-.004h-.004v-.004h-.008v-.004H9.43l-.004-.004h-.004v-.004h-.004v-.004h-.004v-.004l-.016.016.004.004h.004v.004h.004l.008.008h.004l.004.004h.004v.004h.004v.004zm.02-.012zm-.02.07l.02.004v-.012h.004v-.062h-.004l-.02.008h.004v.055H9.43zm.02.004zm-.016.051l-.004-.02.012.012v-.02h.004v-.02l.004-.004-.02-.012v.02h-.004v.02h-.004v.016zm-.012-.008v.012l.012-.004zm.008 0l.004.008zm-.008 0v.012l.012-.004zm0 0\" class=\"sr-B\"/><path d=\"M9.875 4.34c-.082 0-.16.07-.168.156s.043.152.117.156c.082 0 .152-.059.168-.148.016-.078-.035-.16-.121-.16zm0 0\" class=\"sr-D\"/><path d=\"M9.695 4.492l.02.004V4.48l.004-.008v-.004l.004-.008v-.008l.008-.016.004-.004.008-.016.004-.004.008-.004.004-.008.008-.004.004-.004.004-.008.008-.004.004-.004.008-.004h.008l.004-.008h.008l.008-.004h.004l.008-.004h.008l.008-.004h.027v-.02H9.84l-.012.004h-.004l-.008.004h-.008l-.008.008-.031.016-.012.012-.008.004-.02.02-.023.047v.008l-.004.008v.008l-.004.008v.016zm.133.168v-.02h-.02l-.004-.004h-.012l-.004-.004h-.008l-.004-.004-.008-.004h-.004l-.004-.008h-.004l-.016-.016v-.004l-.008-.004-.004-.004v-.008l-.008-.016v-.004l-.004-.008v-.012l-.004-.008v-.043l-.02-.004v.051l.004.008v.016l.004.008v.008l.004.004v.012l.008.004.004.008.004.004h.004l.004.008.008.004.004.008h.008l.008.004.004.004h.004l.008.008h.008l.004.004h.008l.004.004h.027zM10 4.504L9.98 4.5v.016l-.004.012v.004l-.004.008v.008l-.008.004-.008.016-.004.004-.004.008-.004.004-.008.016H9.93l-.004.004-.004.008-.008.004-.004.004-.008.004h-.008l-.004.004-.008.004h-.004l-.008.004h-.012l-.008.004h-.023v.023h.039l.008-.008h.008l.008-.004h.008l.012-.012.012-.004.004-.004.023-.012.008-.008.004-.008.012-.012.008-.016.004-.004.012-.023v-.008l.008-.016v-.016zm-.121-.172v.02h.02l.004.004h.008l.008.004h.008l.004.004h.004l.004.008.008.004.004.004v.004l.008.008.004.008.004.004v.004l.004.008v.008l.008.004v.012l.004.008v.016l.004.004v.016l-.004.008v.016l.02.004v-.066l-.004-.008V4.43l-.004-.008v-.008l-.008-.008v-.004l-.004-.008-.004-.004-.004-.008-.004-.004h-.004l-.004-.012-.008-.004-.004-.004-.008-.004-.004-.004-.008-.004-.004-.004h-.008L9.91 4.34h-.008l-.008-.004h-.016zm0 0\" class=\"sr-B\"/><path d=\"M9.867 4.387a.12.12 0 0 0-.121.109c-.012.066.031.117.086.117s.113-.047.121-.109-.023-.113-.086-.117zm0 0\" class=\"sr-D\"/><path d=\"M9.734 4.492l.02.004v-.012l.004-.004v-.004l.004-.008v-.008l.004-.004v-.004l.004-.004.004-.008v-.004l.008-.004.004-.004.004-.008.008-.008h.004l.004-.004h.004l.004-.008h.004l.004-.004.008-.004h.012v-.004h.023v-.02H9.84l-.008.004h-.008l-.004.004h-.004l-.004.004h-.008l-.004.008h-.004l-.004.004-.008.004h-.004l-.004.004-.004.008-.008.008v.004l-.008.004h-.004v.008l-.008.008v.008l-.008.008v.008l-.004.004v.016l-.004.008zm.098.129v-.02h-.02l-.004-.004h-.008l-.004-.004h-.004V4.59l-.008-.008h-.004v-.004l-.008-.004V4.57H9.77l-.004-.004v-.004l-.004-.004-.004-.008v-.012l-.004-.004V4.5h-.02v.047l.004.004v.004l.004.008v.004l.008.008v.008l.008.004.008.008.008.004.008.008h.004l.004.004h.004l.004.004h.004l.004.004h.031zm0-.02zm.133-.098h-.02l-.008.016v.004l-.004.008-.004.004v.008l-.008.004-.008.008v.004l-.008.004-.016.016h-.004v.008h-.008l-.004.004h-.012l-.004.004h-.023v.02h.031l.008-.004h.004l.004-.004h.004l.004-.004h.008l.004-.008.008-.004.004-.008.02-.02.004-.008v-.004l.008-.004.008-.008v-.008l.004-.004V4.52l.004-.004V4.5zm-.02 0zm-.082-.129v.02h.012l.004.004h.012l.004.004h.004l.008.008h.004l.004.008v.004l.008.004.004.004v.004h.004v.008l.004.004v.004l.004.004v.016l.004.004v.031h.02v-.051h-.004v-.008l-.004-.008v-.004l-.004-.004v-.004l-.008-.004v-.004h-.004l-.004-.008-.012-.012h-.004l-.004-.004h-.008l-.004-.004h-.004l-.004-.004h-.012l-.004-.004h-.012zm0 0\" class=\"sr-B\"/><path d=\"M9.863 4.426c-.043 0-.074.031-.082.07s.02.074.063.074c.035-.004.066-.031.07-.07s-.02-.07-.051-.074zm0 0\" class=\"sr-G\"/><path d=\"M9.773 4.492l.02.008v-.008l.004-.004V4.48h.004v-.008l.016-.016h.004l.008-.008h.004l.008-.008h.012v-.004h.012v-.02h-.02l-.004.004h-.008l-.004.004H9.82v.004h-.004l-.004.008v.004h-.008l-.008.008-.004.008-.004.004v.008h-.004v.004l-.004.008v.008l-.004.004zm.066.086v-.02h-.016l-.004-.004h-.008v-.004h-.004v-.004h-.004v-.004h-.004v-.004l-.004-.004v-.008l-.004-.004V4.5l-.02-.008v.043h.004v.004l.004.008.008.008h.004v.004l.004.004h.004v.004h.008l.004.004h.008v.004h.02zm.086-.074l-.02-.004v.008l-.004.008v.008h-.004v.004l-.008.008-.004.008-.008.008h-.008v.004h-.008l-.004.004h-.016v.02h.023l.004-.004h.004l.008-.004h.004v-.004h.004v-.004l.004-.004.008-.004v-.004h.004v-.008h.004v-.004l.004-.004v-.004h.008V4.52l.004-.004zm-.055-.078h-.02l.012.012h.012l.004.004h.004v.004h.004l.012.012v.004h.004v.012h.004v.023l.023.008v-.035h-.004v-.012h-.004v-.004h-.008v-.008H9.91v-.008h-.008v-.004h-.004V4.43h-.008v-.004h-.02l-.004-.004h-.008l.012.012zm-.02 0v.012h.012zm0 0h.02l-.008-.008zm.02 0v-.008h-.008zm0 0\" class=\"sr-B\"/><path d=\"M10.34 5.894c.039.008.059.031.059.059s-.02.051-.059.059c-.012.004-.02.004-.031.004a22.02 22.02 0 0 1-3.73 0c-.012 0-.023-.004-.031-.004-.039-.008-.063-.035-.063-.063s.023-.047.063-.055c.008 0 .02-.004.027-.004a22.02 22.02 0 0 1 3.73 0c.012 0 .02.004.027.004zm0 0\" class=\"sr-D sr-E sr-F\"/><path d=\"M7.039 5.988h-.004v-.004h-.004v-.02h.008v-.004.004-.004h.047l.016-.004h.059l.016-.004h.059l.012-.004h.063l.016-.004h.066l.012-.004h.078l.012-.004h.02v.023h-.059l-.016.004h-.078l-.012.004h-.055l-.016.004h-.059l.016.004h.074l.012.004h.059l.016.004h.074l.012.004h.031v.023h-.074l-.012-.004h-.078l-.016-.004h-.055L7.262 6h-.062l-.012-.004h-.059l-.012-.004h-.059l-.02-.004v-.004zm.004-.016zm.934-.051v.027h-.117l-.012.004h-.133l-.016.004h-.098l-.023.004h-.066v-.023h.066l.02-.004h.102l.016-.004h.117l.016-.008h.133zm.465 0v.02h-.273l-.016.004h-.176v-.02h.031l.016-.004zm.469 0v.027h-.219l-.016-.004h-.234v-.023zm.469.02v.02h-.105l-.016-.004h-.105l-.012-.004h-.129l-.02-.004h-.086v-.031h.016l.016.004h.148l.016.008h.102l.016.004h.102l.012.004h.047zm.469.02v.004h.008v.02h-.004l-.004.004h-.062l-.012.004h-.047L9.715 6h-.078l-.016.004h-.055l-.016.004h-.07l-.016.004h-.074l-.016.004v-.027h.047l.012-.004h.074l.016-.004h.074l.016-.004h.035-.027l-.016-.004h-.055l-.016-.004h-.074l-.012-.004h-.074v-.023h.133l.012.004h.059l.02.004h.055l.012.004h.063l.012.004h.063l.012.004zm0 .016zm-2.336.012h.004l.004.004v.02h-.004v.004h-.004zm1.867.027h-.004l-.004-.004v-.004h-.004v-.02h.004v-.004h.008zm-1.008-.73v-.02h.078v.02h-.082zm0-.02zm-.023 0h.023v.02h-.023zm0 .02zm-.012-.02h.012v.02h-.012zm-.02 0h.02v.02h-.02zm0 0zm-.016 0h.012v.02h-.016v-.02zm0 .02zm-.012-.02h.008v.02h-.008zm0 0zm-.016 0h.016v.02h-.016zm0 0zm-.023 0h.023v.02H8.25zm-.02 0h.02v.02h-.02zm0 0zm-.004 0h.004v.02h-.004zm-.02 0h.02v.02h-.02zm-.051.02v-.02h.051v.02zm0-.02zm-.008 0h.004v.02h-.004zm0 .02zm-.004-.02h.004v.02h-.004zm0 0zm-.02 0h.02v.02h-.02zm0 .02zm-.008-.02h.008v.02h-.008zm0 0zm-.008 0h.008v.02h-.008zm0 .02zm-.027-.02h.027v.02h-.027zm0 0zm0 0v.02zm0 .02h-.004zm-.023-.02h.023v.02l-.023.004zm-.008 0h.008v.023h-.008zm-.016.004h.016v.02h-.016zm0 0h.008zm-.004 0h.004v.02h-.004zm0 .02H8.02zm-.02-.02h.02v.02h-.02zm-.023 0h.023v.02h-.023zm0 0zm-.004 0v.02zm0 .02zm-.02-.02h.02v.02h-.02zm-.012 0h.012v.02h-.008v-.02zm0 0zm0 0v.02zm0 .02zm-.082.008v-.023h.07V5.27h.008v.02h-.055l-.004.008zm0-.023zm-.012 0h.008v.023h-.012v-.023zm0 0zm-.035 0h.031v.023H7.82v-.023zm0 .023zm-.004-.023h.004v.023H7.82zm0 0zm-.027 0h.027v.023h-.023v-.023zm-.02 0h.02v.023h-.02zm-.012 0h.016v.023h-.012v-.023zm0 0zm0 0v.027zm0 .027zm-.031-.023h.031v.023H7.73zm0 .023zm0-.023v.023zm0 0zm-.023 0h.023v.023h-.023zm0 0zm0 0v.023zm0 .023zm-.023-.023h.02l.004.023H7.68v-.023zm-.02 0h.02v.023h-.016v-.023zm0 0zm-.031.004h.031v.023h-.027v-.023zm0 .023zm0-.023v.023zm0 0zm-.121.027v-.02h.031l.004-.004h.078v.02H7.52l-.004.004zm0 0zm-.012-.02h.008v.02h-.004v-.02zm0 0zm-.18.027v-.02h.027l.008-.004h.063l.008-.004h.066v.02h-.102l-.004.004H7.32zm0 0zm-.004-.02h.004v.02h-.008v-.02zm0 0zm-.012 0h.012v.02h-.008v-.02zm-.363.043v-.02h.035l.012-.004h.035l.008-.004h.047l.016-.004h.051l.012-.004h.043l.012-.004h.059l.012-.004h.023v.02h-.043l-.012.004h-.055l-.012.004h-.047l-.012.004H7.07l-.012.004h-.043l-.012.004h-.043l-.012.004h-.012zm0 0zm-.004-.02h.004v.02h-.004zm0 0zm0 0v.02zm0 .02zm-.527.051v-.02h.016l.02-.004h.016l.016-.008h.031l.016-.004h.02l.016-.004h.031l.016-.004h.035l.016-.004h.02l.02-.004h.031l.016-.004h.035l.016-.004h.035l.016-.004h.031l.02-.004h.031l.02-.004v.02h-.047l-.012.004h-.035l-.016.004h-.035l-.016.004H6.77l-.02.004h-.031l-.016.004h-.031l-.02.008h-.031l-.016.004H6.59l-.02.004h-.031l-.02.004h-.012l-.02.004h-.027l-.02.004h-.016l-.02.004zm0 0zm0-.141v.02h-.012l-.008.004h-.012l-.004.004-.016.008h-.004l-.004.004-.004.008-.008.004v.012l-.004.004v.02h.004v.008l.008.008.008.004.004.004h.004l.008.008h.004l.008.004h.02v.02h-.031l-.016-.008-.004-.004-.008-.004-.004-.004-.012-.004-.004-.008-.004-.004v-.008l-.004-.004-.004-.008v-.031l.004-.004.012-.023.012-.012.016-.008.004-.004h.008l.012-.004h.012l.008-.004zm0 .02zm.527-.066v.02h-.039l-.012.004h-.035l-.016.004h-.035l-.016.004h-.066l-.016.004h-.02l-.012.004h-.031l-.02.004H6.59l-.02.004h-.016l-.016.004h-.031l-.02.004h-.016l-.016.004h-.035l-.02.004v-.02h.035l.016-.004h.016l.016-.004H6.5l.02-.004h.031l.016-.004h.035l.02-.004h.016l.016-.004h.035l.016-.004h.031l.023-.004h.012l.016-.004h.035l.016-.004h.031l.02-.004zm0 .02zm0 0v-.02zm0-.02zm.738-.043v.023h-.098l-.02.004h-.043l-.027.004h-.066l-.027.004h-.043l-.027.004h-.043l-.023.004h-.047l-.02.004h-.051l-.023.004h-.023l-.023.004h-.043L7 5.219h-.02l-.023.004h-.023v-.02h.043L7 5.199h.02l.023-.004h.047l.023-.004h.02l.023-.004h.047l.02-.004h.047l.027-.004h.047l.023-.004h.047l.02-.004h.07l.023-.004h.07l.02-.004h.051zm.02.02l-.02.004v-.02h.02v.02zm0 0zm.004 0h-.004v-.02zm-.004-.02zm.008.02h-.004l-.004-.02h.008zm.023 0h-.023v-.02h.023zm0 0zm0 0v-.02zm0-.02zm.309-.008v.02h-.109l-.012.004h-.129l-.008.004h-.051v-.02h.098l.012-.004h.152L8 5.152zm.016.02h-.016v-.02h.016zm0 0zm0 0v-.02zm0-.02zm.027.02h-.027v-.02h.027zm0 0zm.004 0h-.004v-.02h.004zm0 0h-.004zm0 0v-.02zm0-.02zm.027.02h-.027v-.02h.027zm.008 0h-.012v-.02h.008v.02zm-.004-.02zm.016.02h-.012l-.004-.02h.016zm.02 0h-.02v-.02h.02zm0 0zm.004 0h-.004v-.02h.004zm0-.02zm.008.02h-.008v-.02h.008zm.063-.02l.004.02H8.16v-.02h.066zm.023.02h-.02v-.02l.02-.008zm0 0v-.027zm0-.027zm.027.023h-.027v-.023h.027zm.07-.023v.023h-.07v-.023zm0 0zm0 .023v-.023zm0 0zm.023 0h-.023v-.023h.023zm.074-.023v.023h-.07v-.023h.074zm.074 0v.023h-.074v-.023zm.02.023h-.02v-.023h.023v.023zm.004 0zm0 0v-.023zm0-.023zm.074 0v.023h-.074v-.023h.082zm.02.023h-.02v-.023h.023v.023zm.004-.023zm0 .023v-.023zm.02 0h-.02v-.023h.02zm.066-.023v.023H8.66v-.023zm.008.023h-.008v-.023h.012v.023zm0-.023zm.008.023H8.73v-.023h.008zm0 0zm.02 0h-.02v-.023h.02zm.012 0h-.012v-.023h.016v.023zm0-.023zm.012.027H8.77v-.02h.008v.02zm.02 0h-.02v-.02h.02zm0-.02zm0 .02v-.02zm0 0h.004zm.004 0h-.004v-.02h.008v.02zm0 0zm.027 0h-.027v-.02h.027zm0-.02zm0 .02v-.02zm0 0h.004zm.02 0h-.02v-.02h.02zm.305-.012v.02h-.121l-.008-.004h-.148l-.012-.004h-.016v-.02h.117l.008.004h.133l.008.004zm0 0zm0 .02v-.02zm0 0zm.027 0H9.16v-.02h.023zm.008 0h-.008v-.02h.012v.02zm0-.02zm.004.02h-.004v-.02h.004zm0 0zm.02.004h-.02v-.02h.02zm.738.02v.02h-.047l-.023-.004h-.02l-.023-.004h-.043l-.027-.004h-.051l-.02-.004h-.023l-.023-.004h-.043l-.027-.004h-.043l-.02-.004h-.078l-.02-.004h-.055l-.02-.004h-.066l-.02-.004h-.051v-.02h.094l.023.004h.066l.027.004h.047l.023.004h.047l.02.004h.051l.02.004h.047l.023.004h.047l.02.004h.047l.023.004h.023l.02.004h.027l.02.004zm0 0zm0 .02v-.02zm0 0zm.527.027v.02h-.039l-.016-.004h-.02l-.016-.004h-.031l-.012-.004h-.02l-.016-.004h-.031l-.016-.004h-.02l-.016-.004h-.035l-.012-.004h-.031l-.016-.004h-.035l-.02-.004h-.031l-.016-.004H10l-.016-.004h-.031v-.02h.07l.016.004h.031l.02.004h.035l.012.004h.035l.016.004h.035l.016.004h.016l.016.004h.035l.016.004h.02l.016.004h.035l.012.004h.016l.016.004h.035l.016.004zm0 .02zm0 .121v-.02h.035l.004-.004h.008l.012-.012h.004v-.008l.004-.004V5.34h.004v-.027l-.004-.004v-.004h-.004l-.004-.008-.008-.004h-.004l-.004-.008-.008-.004h-.008l-.012-.004h-.008l-.008-.004v-.02h.008l.012.004h.012l.012.008.016.008.012.012.008.004.004.008v.008l.004.004v.004l.004.008v.023l-.004.008v.004l-.008.008-.004.008-.008.004-.008.008-.016.008h-.004l-.008.004h-.031zm0 0zm-.527-.047v-.02h.035l.016.004h.035l.016.004h.039l.012.004h.035l.02.004h.016l.016.004h.035l.012.004h.035l.016.004h.02l.016.004h.031l.016.004h.02l.016.004h.031l.016.004h.02l.012.004v.02h-.02l-.016-.004h-.031l-.016-.004h-.016l-.016-.004h-.035l-.016-.004h-.016l-.02-.004h-.035l-.016-.004h-.016l-.02-.004h-.027l-.016-.004h-.035l-.016-.004h-.031l-.02-.004h-.035L10 5.348h-.031zm0 0zm0-.02v.02zm0 0zm-.004 0h.004v.02h-.008v-.02zm0 .02zm-.371-.027v-.02h.059l.012.004h.059l.012.004h.047l.012.004h.043l.012.004h.047l.008.004h.051l.008.004v.02H9.91l-.008-.004h-.047l-.012-.004h-.043l-.016-.004h-.047l-.012-.004h-.055l-.016-.004h-.055l-.012-.004h-.016zm-.008-.02h.012v.02h-.008v-.02zm0 0zm-.004 0h.004v.02h-.004zm0 .02zm-.184-.008v-.023h.082l.004.004h.066l.004.008h.027v.02h-.031l-.008-.004h-.066l-.008-.004zm0-.023zm-.004 0h.004v.023h-.008v-.023zm0 .023zm-.129-.008v-.02h.09l.004.004h.035v.02h-.09l-.004-.004zm0-.02zm0 0v.02zm0 .02zm-.031-.02h.035v.02h-.035zm0 0zm-.012 0h.016v.02h-.016zm-.02-.004h.02v.02H9.18l.004-.02zm-.004.02zm0-.02h.004v.02-.02zm0 0zm-.023 0h.023v.02H9.16zm0 0zm-.004 0v.02zm0 .02zm-.027-.02h.027v.02h-.027zm0 .02zm-.004-.02h.004v.02h-.004zm0 0zm-.012 0h.012v.02h-.012zm-.02 0h.02v.02h-.02zm-.027-.004h.027v.02h-.027zm0 0zm-.004 0h.004v.02h-.004zm0 .02zm-.031-.02h.031v.02h-.031zm0 0zm-.012 0h.012v.02H9.02zm-.086.02V5.27H9l.004.004h.016v.02zm0 0zm0-.023v.02zm0 0zm-.008 0h.012v.02h-.012zm-.023 0h.023v.02h-.023zm0 .02zm0-.02v.02zm0 0zm-.023 0h.023v.02h-.027v-.02zm-.02 0h.02v.02h-.02zm0 .02h.012zm-.004-.02h.004v.02h-.004zm0 0h-.008zm-.016 0h.016v.02H8.84zm-.012 0h.012v.02h-.012zm-.023 0h.027v.02h-.031v-.02zm0 .02h.004zm0-.02v.02zm0 0zm-.02 0h.02v.02h-.02zm0 .02zm-.008-.02h.008v.02h-.012v-.02zm0 0zm-.008 0h.008v.02H8.77zm0 .02zm-.023-.02h.023v.02h-.023zm0 0zm-.004 0h.004v.02h-.004zm0 .02zm-.004-.02h.004v.02h-.004zm0 0zm-.051.016v-.02h.043v.02H8.68zm-.023-.02h.023v.02h-.023zm-.004 0h.004v.02H8.66zm0 0zm-.02 0h.02v.02h-.02zm-.023 0h.023v.02h-.023zm0 0zm-.016 0h.016v.02h-.016zm0 0zm-.008 0h.008v.02h-.008zm0 .02zm-.016-.02h.016v.02h-.016zm0 0zm-.02 0h.02v.02h-.02zm-.012 0h.012v.02h-.012zm0 .02zm-.023-.02h.023v.02H8.52v-.02zm0 0zm-.074.02v-.02h.078v.02h-.082zm.008.035L8 5.551l-.008-.02.453-.227h.008v.02zm-.012-.02h.008zm.453.25l-.457-.23.008-.02.453.23v.02h-.008zm.008-.02l.023.012-.023.008zm-.457.23l.453-.23.008.02-.453.23h-.008zm.008.02h-.008zM8 5.531l.457.23-.012.02-.457-.23v-.02zm-.008.02l-.02-.008.02-.012zm0 0\" class=\"sr-B\"/><path d=\"M8.441 5.398c.113 0 .207.063.207.141s-.094.141-.207.141-.199-.066-.199-.141.09-.141.199-.141zm0 0\" class=\"sr-G\"/><path d=\"M8.66 5.539h-.02v-.008l-.004-.004v-.012l-.004-.004v-.008l-.008-.008-.004-.008v-.004l-.008-.008-.004-.008-.008-.004-.004-.004-.016-.008-.004-.004-.016-.008-.012-.012h-.012l-.008-.004h-.008l-.008-.004h-.02l-.008-.004h-.039v-.023h.035l.012.004h.012l.008.004h.012l.008.004h.008l.012.004.016.008h.012l.008.008.016.008.004.008.016.008.004.008.008.004.02.039v.008l.004.008v.008l.004.004v.016zm-.219.148v-.02h.031l.008-.004h.023l.012-.004h.008l.008-.008h.008l.012-.004h.008l.004-.008h.008l.008-.008.023-.012.02-.02.004-.008V5.59l.008-.008h.004v-.008l.004-.008v-.012l.004-.008v-.004h.02v.008l-.004.008v.008l-.004.008v.008l-.004.004-.008.016-.047.047-.016.008-.012.004-.016.008h-.008l-.008.008h-.008l-.012.004h-.008l-.012.004h-.023l-.008.004zm-.215-.148h.02v.02l.004.004v.008l.008.004.004.008v.008l.004.004.004.008.008.004.004.004.004.008.008.004.008.008.016.008h.004l.008.008h.008l.008.008h.012l.004.004h.02l.008.004h.031l.012.004h.012v.02h-.039l-.012-.004h-.008l-.012-.004-.008-.004h-.008l-.012-.004h-.008l-.008-.008-.023-.012-.008-.008-.023-.012-.004-.008-.008-.004-.004-.008-.012-.012-.004-.008v-.008l-.008-.016v-.016l-.004-.008v-.008zm.215-.148v.02h-.027l-.008.004h-.008l-.008.004h-.012l-.008.004h-.008l-.012.004h-.008l-.008.008-.031.016-.004.004-.008.004-.027.027-.004.008v.004l-.004.004v.008l-.004.008v.012l-.004.008v.004h-.02v-.02l.004-.012.004-.008v-.004l.004-.008.039-.039.008-.004.004-.008.023-.012h.008l.008-.008.023-.008h.008l.012-.004h.02l.008-.004h.023l.012-.004h.012zm0 0\" class=\"sr-B\"/><use xlink:href=\"#B\" class=\"sr-D\"/><path d=\"M8.609 4.402h-.02v-.02l-.008-.008v-.008l-.004-.008v-.008l-.004-.008V4.34l-.004-.008-.004-.004-.004-.008v-.004l-.008-.004-.004-.008-.008-.008-.008-.004-.008-.008-.016-.008h-.004L8.5 4.27h-.008l-.008-.004h-.008l-.008-.004h-.027V4.23l.012.008h.023l.008.004h.008l.023.012h.008l.008.004.004.008.023.012.004.008.004.004.008.004.008.016.008.004.004.012.004.004v.008l.004.008v.016l.004.008v.02l.004.008zm-.168.164v-.02h.031l.004-.004h.008l.004-.004.008-.004h.008l.008-.004h.004l.004-.004.008-.004.004-.004.004-.008.008-.004.012-.012v-.008l.004-.004.008-.016v-.004l.004-.008v-.016l.004-.008v-.016l.004-.008v-.008h.023v.023l-.004.008v.008l-.004.012v.004l-.008.008v.008l-.012.012-.012.023-.008.004-.008.016-.008.004-.016.016-.008.004-.004.004H8.5l-.004.004-.008.004H8.48l-.008.004zm-.16-.164h.02v.035l.004.004.004.008v.008l.004.004.004.008.008.008.004.008.02.02.004.008.012.012.008.004h.008l.004.004h.008l.008.008h.004l.008.004h.016l.008.004h.012v.02h-.031l-.008-.004h-.008l-.008-.008h-.008l-.008-.004-.012-.012-.012-.004-.004-.004-.023-.012-.008-.016-.008-.004-.004-.008-.004-.004V4.48l-.004-.008v-.004l-.008-.008v-.008l-.004-.012v-.008l-.004-.008v-.027zm.16-.168v.023h-.027l-.008.004h-.004l-.008.004h-.008l-.004.008h-.008l-.004.004-.008.004-.023.023-.004.008-.004.004-.008.016-.004.004-.004.008v.004l-.004.008-.004.004v.016l-.004.008v.02h-.02v-.031l.004-.008v-.008l.008-.016v-.008l.004-.008v-.008l.008-.004.004-.004.008-.016.023-.023.016-.008.004-.004h.008l.004-.004.008-.004h.008l.008-.004h.008l.008-.004h.023zm0 0\" class=\"sr-B\"/><path d=\"M8.441 4.285c.066 0 .113.055.113.117s-.047.117-.113.117c-.059 0-.109-.055-.109-.117s.051-.117.113-.117zm0 0\" class=\"sr-D\"/><path d=\"M8.566 4.402h-.02v-.031h-.004v-.012l-.004-.004v-.004l-.004-.008-.004-.004v-.004l-.008-.004-.012-.012h-.004l-.004-.004h-.008l-.004-.008h-.004l-.008-.004h-.012l-.004-.004h-.023v-.02h.035l.004.004h.008l.004.004h.004l.008.004h.008l.004.008h.004l.023.023v.004l.008.008v.004l.004.004v.004l.004.008.004.004v.012l.004.008zm-.125.125v-.02h.023l.004-.004h.004l.004-.004h.004l.004-.004h.008l.008-.008h.008l.004-.008.004-.004h.004v-.004l.004-.004v-.004l.008-.004.004-.008v-.004l.004-.008v-.004l.004-.004v-.027h.02v.043l-.004.004-.008.016-.004.004v.004l-.008.004v.004l-.004.004-.004.008h-.004l-.004.004H8.52l-.004.008-.008.004h-.004L8.5 4.52l-.008.004h-.004l-.004.004h-.008l-.004.004h-.027zm-.121-.125h.023v.023l.004.008v.004l.004.004v.008l.004.004.004.008.004.004v.004h.004l.004.004.004.008v.004h.008l.004.004h.004l.004.004h.004v.004h.008l.004.004h.004l.008.004h.02v.023H8.41l-.008-.004h-.004l-.008-.004h-.004l-.004-.008-.008-.004-.004-.004-.008-.004h-.004l-.004-.008h-.004l-.004-.008-.012-.012-.004-.008v-.004l-.004-.008h-.004v-.008l-.004-.008v-.012l-.004-.004v-.02zm.121-.125v.02h-.02l-.008.004h-.008l-.012.012h-.008l-.004.004h-.004v.008l-.008.004h-.004l-.004.004v.008l-.004.004v.004l-.004.004v.004l-.004.004v.004l-.004.008v.008l-.004.004v.016h-.02v-.027l.004-.008v-.004l.004-.008.004-.004v-.004l.004-.008.012-.012.004-.008.016-.016h.008l.004-.008h.004l.004-.004h.004l.008-.004h.004l.008-.004h.012l.004-.004zm0 0\" class=\"sr-B\"/><path d=\"M8.441 4.328c.039 0 .074.031.074.074s-.035.07-.074.07a.07.07 0 0 1-.07-.07c0-.043.031-.074.07-.074zm0 0\" class=\"sr-G\"/><path d=\"M8.523 4.402h-.02v-.016H8.5v-.008l-.004-.004v-.004l-.008-.008-.004-.008H8.48l-.008-.004h-.004l-.004-.004h-.004v-.004h-.02v-.02h.027v.004h.008v.004h.008v.004h.004v.008h.008v.004l.008.008.004.008v.004l.004.004.004.008v.008l.004.004v.012zm-.078.082v-.02h.012v-.004h.008l.008-.004h.004l.004-.004v-.004h.004v-.004h.004v-.004h.004v-.004l.004-.004V4.43l.004-.004v-.008h.004v-.02h.02v.02l-.004.004v.004l-.004.004v.004l-.008.008-.004.008-.004.004-.008.004-.004.004H8.48l-.004.004-.008.004h-.02l-.004.004zm-.082-.082h.02v.023l.004.004v.004l.008.008.004.008.008.008h.004v.004h.012l.004.004h.016v.023h-.016l-.004-.004h-.008V4.48h-.008l-.012-.012h-.004v-.004l-.004-.004h-.004v-.004l-.004-.004-.004-.008v-.004l-.004-.004-.004-.008v-.027zm.082-.082v.02h-.02l-.004.004h-.008l-.004.004h-.004v.004h-.004l-.004.008-.012.012v.012h-.004v.02h-.02v-.031l.008-.008v-.004l.023-.023h.004l.004-.004h.004l.004-.004h.004l.008-.004h.02zm0 0\" class=\"sr-B\"/><path d=\"M5.094 6.023v5.426c0 .973.375 1.852.98 2.492a3.28 3.28 0 0 0 2.367 1.039 3.26 3.26 0 0 0 2.367-1.035 3.6 3.6 0 0 0 .984-2.488V6.023zm0 0\" class=\"sr-H\"/><g class=\"sr-C\"><path d=\"M5.066 6v5.539l.004.094.008.09.004.09.023.18.012.086.016.086.02.086.023.086.02.086.023.086.023.078.031.082.027.082.031.078.035.082.035.078.039.078.035.074.043.074.039.074.043.074.043.07.051.07.094.141.055.066.051.063.055.066.055.059.059.063.035-.031-.059-.062-.055-.059-.051-.066-.051-.062-.055-.066-.047-.066-.051-.07-.043-.07-.047-.066-.039-.074-.039-.07-.039-.074-.043-.082-.07-.148-.031-.082-.031-.078-.031-.082-.027-.078-.023-.082-.027-.082-.02-.082-.02-.086-.047-.258-.012-.082-.016-.18-.008-.18V6.051h6.656v5.488l-.004.09-.008.09-.004.086-.012.09-.012.086-.016.086-.02.086-.016.086-.02.086-.02.078-.023.086-.027.082-.027.078-.027.082-.031.078-.031.082-.035.074-.035.078-.039.078-.039.074-.039.07-.043.074-.043.066-.094.141-.102.133-.051.063-.055.063-.051.063-.117.117-.055.063-.062.055-.059.051-.066.051-.059.055-.07.047-.066.051-.066.043-.066.047-.07.043-.141.078-.07.043-.074.031-.074.039-.078.031-.074.031-.074.027-.082.027-.074.023-.082.023-.078.02-.082.02-.078.02-.086.012-.078.012-.086.012-.082.008-.086.008-.086.004h-.086v.047h.09L8.617 15l.258-.023.082-.012.086-.016.078-.016.086-.02.078-.02.082-.023.078-.023.082-.031.078-.027.078-.031.074-.031.074-.035.074-.039.074-.035.07-.043.07-.039.07-.047.07-.043.066-.047.066-.051.066-.047.063-.055.066-.051.059-.055.059-.059.063-.059.059-.059.055-.062.059-.059.051-.066.055-.062.051-.066.047-.07.051-.066.043-.07.047-.07.039-.074.047-.074.078-.148.035-.082.035-.074.031-.078.031-.082.031-.078.027-.082.023-.082.027-.086.02-.086.02-.082.02-.086.016-.09.012-.086.012-.09.016-.18.008-.086v-.105l.004-.09V6zm0 0\"/><g class=\"sr-E sr-F\"><path d=\"M8.473 14.695c.027-.004.082 0 .117-.027.047-.039.027-.195.023-.297l-.07-2.559c-.039-.004-.07 0-.098.004-.035-.008-.07-.008-.102 0l-.07 2.555c-.004.102-.027.262.023.297.035.031.086.02.113.027zm0 0\"/><path d=\"M8.793 14.68c-.031 0-.082.012-.121-.016-.051-.035-.055-.195-.059-.293l-.152-2.555a.22.22 0 0 1 .098-.008l.41 2.523c.02.07.055.246-.004.301-.035.035-.086.031-.113.043zm0 0\"/><path d=\"M9.164 14.629c-.031 0-.074.016-.121-.008-.055-.027-.051-.188-.074-.281-.133-.508-.203-1.348-.395-2.531.039-.016.07-.016.102-.02h.004c.297 1.152.391 1.961.625 2.461.02.07.082.258.023.32-.027.035-.078.039-.105.047l-.063.012zm0 0\"/><path d=\"M9.539 14.52c-.027.008-.078.031-.117.016-.063-.023-.07-.195-.113-.285-.238-.5-.328-1.32-.633-2.48.039-.016.066-.02.098-.027s.02-.02.059-.023c.363 1.148.477 1.941.813 2.438.055.078.094.238.059.289-.027.039-.078.047-.105.063l-.059.016zm-1.441.16c.027 0 .074.012.113-.016.055-.035.063-.195.063-.293l.152-2.555c-.039-.012-.07-.012-.102-.008l-.406 2.523c-.02.07-.059.246 0 .301.035.035.086.031.113.043l.063.004zm0 0\"/><path d=\"M7.719 14.629c.031 0 .082.016.121-.008.055-.027.055-.188.082-.281.125-.508.199-1.348.391-2.531-.039-.016-.074-.016-.102-.02h-.004c-.301 1.152-.395 1.961-.629 2.461-.023.07-.086.258-.027.32.031.035.082.039.109.047zm0 0\"/><path d=\"M7.348 14.52c.027.008.078.031.117.016.063-.023.07-.195.113-.285.234-.5.324-1.32.633-2.48-.039-.016-.07-.02-.102-.027s-.02-.02-.059-.023c-.359 1.148-.477 1.941-.813 2.438-.051.078-.09.238-.055.289.027.039.082.047.105.063l.059.016zm1.992-.859c-.027 0-.066.02-.109 0-.055-.027-.09-.18-.117-.281-.242-.469-.461-1.305-.816-2.469.035-.012.059-.02.09-.02.02-.008.047-.02.086-.023.387 1.152.559 1.98.934 2.441.059.074.109.238.078.289-.023.035-.066.039-.09.051zm0 0\"/><path d=\"M9.039 13.715c-.027 0-.07.012-.109-.008-.055-.031-.07-.188-.09-.289l-.527-2.52c.035-.012.063-.016.09-.016.023-.008.051-.016.09-.016.301 1.176.367 2.051.648 2.5.051.086.078.25.047.297-.027.035-.07.035-.098.043l-.055.008zm0 0\"/><path d=\"M8.727 13.75c-.027-.004-.07.008-.105-.02-.051-.031-.051-.191-.059-.289l-.23-2.555a.26.26 0 0 1 .094-.004c.023-.004.051-.012.09-.008l.359 2.543c.02.102.047.25.008.297-.027.027-.074.027-.102.035l-.051.004zm0 0\"/><path d=\"M7.543 13.656c.027 0 .07.02.109 0 .059-.027.094-.18.121-.281.242-.469.461-1.305.816-2.469-.035-.012-.059-.02-.09-.02-.02-.008-.047-.02-.086-.023-.387 1.152-.559 1.98-.934 2.441-.059.074-.109.238-.082.289.027.035.07.039.094.051zm0 0\"/><path d=\"M7.848 13.715c.027 0 .07.012.109-.008.051-.031.07-.188.09-.289l.523-2.52c-.035-.012-.063-.016-.09-.016-.027-.008-.059-.016-.09-.016-.297 1.176-.363 2.051-.648 2.5-.047.086-.078.25-.043.297.027.035.07.035.094.043zm0 0\"/><path d=\"M8.16 13.75c.027-.004.066.008.105-.02.047-.031.047-.191.055-.289l.234-2.555c-.039-.008-.066-.008-.09-.004-.02-.004-.051-.012-.09-.008l-.359 2.543c-.02.102-.047.25-.008.297.031.027.074.027.102.035l.051.004zm0 0\"/><path d=\"M8.469 13.762c.027 0 .07.004.105-.027.047-.039.027-.195.023-.297l-.066-2.559c-.031-.008-.063-.008-.09 0-.027-.004-.051-.008-.09 0l-.063 2.559c-.004.102-.02.258.023.293.031.031.078.02.102.031zm0 0\"/><path d=\"M9.129 12.961c-.02 0-.051.02-.078 0-.047-.031-.074-.184-.098-.281-.184-.469-.348-1.309-.625-2.469.031-.016.051-.02.07-.02.016-.012.035-.02.066-.02.293 1.145.426 1.977.715 2.434.047.078.078.242.059.289-.016.039-.051.043-.066.051zm0 0\"/><path d=\"M8.899 13.02c-.02 0-.051.012-.086-.012-.039-.031-.051-.188-.066-.285l-.398-2.52c.023-.012.043-.016.066-.016.02-.008.039-.012.066-.016.23 1.176.281 2.051.5 2.504.043.082.063.25.035.293-.023.031-.055.035-.074.043l-.039.012zm0 0\"/><path d=\"M8.66 13.055c-.02 0-.051.008-.082-.02-.039-.035-.039-.191-.043-.293l-.18-2.551c.031-.008.051-.008.074-.008s.039-.012.066-.008l.273 2.539c.016.102.039.258.008.301-.023.031-.059.027-.078.035l-.043.004zm0 0\"/><path d=\"M7.758 12.961c.02 0 .047.02.078 0 .047-.031.074-.184.098-.281.184-.469.348-1.309.617-2.469-.023-.016-.043-.02-.063-.02-.02-.012-.039-.02-.066-.02-.297 1.145-.43 1.977-.715 2.434-.051.078-.086.242-.063.289.016.039.051.043.07.051l.039.016zm0 0\"/><path d=\"M7.988 13.02c.02 0 .051.012.078-.012.047-.031.063-.188.074-.285l.398-2.52c-.02-.012-.043-.016-.066-.016a.27.27 0 0 0-.07-.016c-.227 1.176-.277 2.051-.496 2.504-.039.082-.059.25-.031.293.02.031.055.035.07.043l.039.012zm0 0\"/><path d=\"M8.227 13.055c.02 0 .051.008.078-.02.043-.035.043-.191.047-.293l.18-2.551c-.023-.008-.051-.012-.074-.008-.02-.004-.039-.012-.07-.008l-.273 2.539c-.016.102-.043.258-.008.301.023.031.059.027.078.035l.039.004zm0 0\"/><path d=\"M8.465 13.063c.02-.004.055 0 .078-.027.035-.039.02-.191.02-.293l-.047-2.559c-.031-.004-.055 0-.074.004-.016-.004-.039-.008-.066 0l-.051 2.559c0 .102-.016.254.023.293.023.027.059.023.078.027h.039zm0 0\"/><path d=\"M8.301 11.18l-.008.281-.211.047c0 .094.238 1.105.359 1.105s.363-1.012.363-1.109l-.211-.039v-.004l-.004-.281c-.043.039-.094.105-.145.16l-.141-.16zm0 0\"/></g></g><g class=\"sr-D sr-E sr-F\"><path d=\"M7.039 11.691c-.059.004-.141.039-.367.238-.102.203-.203.41-.344.59l-.117.063a1.65 1.65 0 0 1-.34-.012c-.09-.078-.227-.023-.18.066-.039.031.043.156.105.102.059-.047.258-.004.328-.027-.027.063-.211.102-.336.109-.117.004-.109.121-.063.211.055.035.012-.008.031.016.051.082.164.07.168-.008s.273-.18.313-.238c-.047.117-.164.23-.219.344-.059.063-.098.074-.02.203.09-.016.094-.035.145.016.121-.012.141-.051.121-.145-.02-.102.063-.281.094-.332.023-.047.027-.098.055-.125.043-.051.25-.156.305-.129.098.055.172.02.184-.074-.031-.023-.008-.16-.074-.164-.055-.004-.09.012-.141.055-.078.066-.121.102-.148.094-.059-.016.117-.102.277-.313.219-.289.234-.441.227-.539zm.035 2.333c-.16.125-.301-.164-.16-.551.102-.285.613-.176.328.211-.012.02-.031.012-.027-.008.02-.082-.031-.129-.109-.113-.211.043-.223.441.012.352.043-.004.008.082-.035.113zm0 0\"/><path d=\"M5.703 12.691c-.078-.047-.125-.047-.16-.012-.012.02-.035.012-.023-.02.055-.125.141-.141.215-.086l.055.055c-.012.02-.074.047-.086.063zm1.148-.113c.086-.059.168-.07.211-.039.027.02.051.004.027-.023-.09-.125-.191-.133-.27-.063-.023.02-.039.039-.055.063.023.031.086.063.086.059zm-.672.711c.004-.004-.02-.109-.051-.141-.027.02-.063.039-.086.07-.086.09-.082.219.051.332.031.031.047 0 .031-.031-.02-.055.008-.129.063-.23zm-.328-.27c-.078.031-.109.074-.105.129 0 .031-.02.039-.027.004-.098-.223.004-.266.148-.258a.31.31 0 0 1-.016.125zm0 0\"/></g><g class=\"sr-B\"><path d=\"M6.48 12.426l.02.012h-.004v.035H6.5v.008h.004v.004h.004l.004.008.008.004v.004h.008l.004.008h.004l-.012.02H6.52l-.008-.004h-.004l-.016-.016-.004-.008v-.004h-.004v-.004l-.004-.004v-.004h-.004v-.004l-.004-.004v-.035l.004-.008v-.004zm.129.016l-.016.02-.004-.004-.008-.004-.008-.008H6.57l-.004-.004-.004-.008-.008-.004-.008-.008h-.016l-.004-.004h-.012v.004h-.004l-.004.004v.004H6.5v.008l-.004.004-.02-.016v-.004l.004-.008.008-.008.008-.004H6.5l.008-.004h.008v-.004h.016l.004.004h.008l.004.004h.004l.004.004h.004l.004.004h.004l.004.008h.004l.004.008.004.004.008.004.008.008zm0 0\"/><path d=\"M6.547 12.352l.02.012v.008h-.004v.016l.004.004v.004l.004.004v.004l.004.004.004.008.004.004h.008l.004.004h.004l.008.008h.004l-.012.02h-.004l-.016-.008h-.004l-.008-.008-.004-.008v-.004h-.004l-.004-.004v-.004h-.004v-.012h-.004v-.043h.004v-.004zm.129.016l-.016.02-.004-.004h-.004l-.004-.008-.004-.004-.008-.004h-.004l-.004-.008-.008-.008-.008-.004h-.004v-.004h-.016l-.004.004-.008.004-.004.004v.004l-.004.004-.02-.012.004-.004v-.004h.004v-.008h.008l.004-.008h.004l.004-.004h.008v-.004h.027l.004.004h.004v.004h.004l.008.008h.004l.004.004h.004l.004.008h.004l.004.004v.004l.016.008.004.004zm0 0\"/><path d=\"M6.621 12.258l.02.012-.004.004v.012h-.004v.02l.004.004v.008h.004v.008h.004l.004.004v.004h.004l.004.008.008.008.008.004h.004l.004.004-.012.02-.008-.004-.016-.016v-.004l-.008-.004v-.004l-.004-.004v-.004l-.008-.004v-.008l-.004-.008v-.004h-.004v-.012h-.004v-.02l.004-.008v-.008l.004-.004zm.141.02l-.02.02-.004-.008-.008-.004-.004-.004-.008-.004v-.004l-.004-.004-.008-.004-.008-.008-.004-.008h-.004l-.008-.008H6.68l-.004-.004H6.66l-.016.016v.004h-.004v.008l-.02-.012v-.008l.008-.008v-.004l.008-.004.004-.004v-.004h.004l.004-.004h.008l.004-.004h.023l.004.004h.004l.004.004.008.004h.004l.008.008h.008l.004.008.008.008.008.004.02.02zm0 0\"/><path d=\"M6.695 12.152l.02.012v.012l-.004.004v.035l.004.004v.004l.004.004v.004l.012.012v.004l.008.008h.004l.004.008.004.004.008.004v.004l-.012.016-.008-.004v-.004l-.008-.004-.004-.008-.004-.004v-.004l-.012-.012v-.004l-.004-.008v-.004l-.008-.004-.004-.004v-.004l-.004-.004v-.004l-.004-.008v-.043l.004-.004v-.004zm.152.027l-.02.016-.016-.016-.008-.004-.004-.008v-.004l-.008-.004-.016-.016h-.004l-.004-.004h-.004l-.004-.004h-.008v-.004h-.016v.004l-.012.012v.004l-.008.004v.004l-.023-.008.004-.008.004-.004v-.004l.02-.02.008-.004h.008l.008-.004h.016l.008.004h.004l.004.004h.004l.004.008.008.004.012.012h.008l.004.008.023.023.004.008.008.004zm0 0\"/><path d=\"M6.781 12.051l.023.012v.004l-.004.004-.004.008v.043l.004.004v.004l.008.008v.004l.012.012v.004l.012.012.008.004.004.004.008.004-.02.02-.004-.004-.004-.008-.008-.004-.008-.008-.008-.004-.004-.008v-.004l-.008-.008v-.004l-.008-.004v-.008h-.004v-.008l-.004-.004v-.004l-.004-.004v-.055l.004-.004v-.004l.004-.004v-.004zm.152.027l-.02.02-.004-.008-.012-.012-.004-.008-.008-.004-.004-.004-.004-.008-.008-.008h-.004l-.004-.008-.004-.004h-.004v-.004h-.027l-.008.004v.004h-.004v.008l-.008.008v.004l-.023-.012.004-.004.004-.008.008-.008v-.004l.008-.004h.004l.004-.004h.004l.004-.004h.035l.008.008h.004l.004.004h.008l.004.008.004.004h.008l.004.008.023.023.008.004.004.008zm0 0\"/></g><g class=\"sr-C\"><g class=\"sr-E sr-F\"><path d=\"M8.051 11.613l-.188-.109c-.082.059-.137.27 0 .445.168.219.238.371.277.547.125-.156.168-.324.09-.488-.105-.219-.176-.34-.176-.398zm0 0\"/><path d=\"M8.207 11.461l-.188-.109c-.082.059-.25.266-.113.441.168.215.344.379.387.555.125-.16.176-.324.102-.488-.109-.223-.188-.344-.188-.402zm0 0\"/><path d=\"M7.789 11.383l-.191-.105c-.078.059-.141.27-.004.441.137.16.23.348.281.551.121-.16.168-.324.086-.488l-.176-.395zm0 0\"/></g><path d=\"M6.91 9.379l-.035 1.496c-.012.164-.082.273-.16.34-.07-.102-.113-.23-.121-.387-.008-.082.008-1.176.016-1.398.125-.34.223-.359.297-.051zm0 0\"/></g><path d=\"M6.879 10.875h-.02l.004-.02v-.051l.004-.035v-.078l.004-.047v-.102l.004-.055v-.055l.004-.059v-.062l.004-.059v-.125l.004-.059v-.125l.004-.059V9.77l.004-.055v-.148l.004-.039v-.148h.023v.234l-.008.051v.164l-.004.059v.121l-.004.063v.059l-.004.066v.117l-.004.063v.059l-.004.055v.109l-.004.047v.047l-.004.039v.074l-.004.027v.043zm-.172.34l.016-.008h-.012l.004-.008.016-.016.008-.004.023-.023.008-.012.016-.016.004-.008.016-.016.008-.023.004-.008.008-.012.004-.012.004-.008.008-.012.004-.012.004-.008v-.016l.004-.012v-.012l.008-.016v-.012l.004-.016v-.016l.004-.016v-.027h.02v.043l-.004.016v.016l-.008.012v.016l-.004.016-.004.012-.004.016-.012.035-.016.023-.004.012-.008.012-.004.008-.004.012-.008.008-.004.012-.023.023-.008.012-.023.023-.008.004-.004.008-.008.008-.008.004h-.012zm.012.004l-.008.008-.004-.008zm-.141-.391h.023v.016l.004.016v.027l.004.012v.012l.004.016v.012l.004.012v.031l.008.008v.016l.023.07.004.016.004.008.008.012.004.012.008.008.004.012.004.008.008.012.004.012.004.008.008.008.004.008.008.008-.016.012-.004-.012-.008-.008-.008-.012-.004-.008-.016-.023-.008-.023-.008-.012-.004-.012-.008-.012v-.012l-.004-.012-.008-.008-.004-.012-.004-.016-.004-.012v-.012l-.004-.016-.004-.012v-.012l-.008-.012v-.012l-.004-.016-.004-.012v-.012l-.004-.016v-.02l-.004-.016v-.031zm.023-1.402l.016.008v.16l-.004.043v.203l-.004.055v.23l-.004.063v.379l-.004.043v.219h-.023v-.418l.004-.051v-.293l.008-.055v-.23l.004-.055v-.176l.004-.039v-.086zm0 0zm.32-.047h-.023l-.008-.023-.004-.027-.008-.02-.012-.023-.008-.02-.004-.023-.008-.012-.008-.016-.008-.012-.023-.023-.008-.004h-.004l-.008-.004h-.016l-.008.004-.008.008-.012.008-.02.02-.008.012-.012.016-.008.016-.023.039-.012.023-.035.082-.012.035-.02-.008.016-.031.012-.031.012-.023.012-.031.012-.023.023-.039.008-.02.023-.031.008-.012.023-.023.012-.008.023-.008h.02l.012.004.008.008.012.008.012.012.016.023.016.031.008.02.012.023.004.02.016.055.012.027zm0 0zm0 0\" class=\"sr-B\"/><path d=\"M6.16 9.098l-.051 1.59a4.32 4.32 0 0 0 .27 1.148c.246-.105.301-.676.25-1.23s.008-1.039.047-1.137c0-.125-.02-.258-.02-.387l-.5.016zm0 0\" class=\"sr-C\"/><path d=\"M6.102 10.688l.047-1.59h.02l-.051 1.59h-.02zm.02 0zm.254 1.141l.004.016-.012-.004-.008-.02-.012-.02-.027-.055-.008-.031-.012-.031-.012-.035-.012-.039-.012-.043-.012-.039-.016-.043-.012-.043-.012-.047-.008-.047-.012-.047-.008-.043-.012-.047-.016-.047-.008-.043-.008-.047-.008-.043-.008-.039-.008-.043-.004-.043-.008-.035-.004-.031-.004-.035v-.027l-.008-.027v-.055h.02v.082l.008.063.008.035.004.035.016.078.008.047.008.043.012.043.008.047.008.043.008.047.035.141.047.172.023.078.012.035.012.031.016.027.008.031.012.023.008.02.012.02-.012-.008zm.004.016l-.008.004-.004-.008zm.242-1.238h.02l.004.047v.055l.008.055v.051l.004.051v.25l-.008.047-.004.051-.004.047v.047l-.008.047-.008.043-.004.039-.012.039-.008.043-.012.039-.012.035-.016.031-.012.031-.016.031-.02.027-.016.027-.02.023-.059.059-.02.012-.027.016-.004-.023.02-.008.02-.012.02-.016.039-.039.016-.02.031-.055.016-.031.012-.027.012-.035.008-.039.012-.031.008-.043.012-.039.004-.039.008-.039.004-.047v-.047l.008-.047v-.051l.008-.047v-.352l-.004-.055-.008-.102zm.047-1.137h.02v.004l-.004.008-.008.031-.004.02-.004.016-.004.02-.004.023v.023l-.008.027-.004.023-.004.031v.031l-.004.031v.035l-.008.031v.043l-.004.035v.039l-.004.039v.418l.012.152v.051l-.02.004v-.051l-.008-.102v-.055l-.004-.047v-.402l.004-.043v-.039l.004-.039v-.035l.004-.031.004-.039.004-.031v-.027l.008-.031.004-.023v-.027l.004-.02v-.023l.008-.02.008-.031.008-.023zm.02 0v.004zm-.031-.375V9.07l.008.008v.074l.008.012v.051l.004.012v.039l.004.012v.047l.004.012v.07l.004.016v.047h-.023v-.109l-.004-.008v-.051l-.004-.012V9.25l-.004-.012v-.031l-.004-.012v-.062l-.004-.012v-.043zm0-.023h.008v.008zm-.492.027h-.02l.008-.012h.078l.016-.004h.258l.016-.004h.094l.016-.004h.035v.02h-.082l-.016.004h-.16l-.016.004H6.25l-.016.004h-.078zm-.02 0V9.09h.008zm.012 0h.008-.012zm-.012 0V9.09h.008zm0 0\" class=\"sr-B\"/><path d=\"M5.859 9.359l.035 1.59c-.008.141.223.973.328 1.129.254-.195.203-.996.164-1.238-.078-.48-.062-1.039-.039-1.129l-.012-.41-.473.059zm0 0\" class=\"sr-C\"/><path d=\"M5.887 10.949l-.035-1.59.02-.004.035 1.59h-.02zm.02 0zm.313 1.121l.008.02-.012-.004-.023-.039-.012-.023-.008-.027-.016-.031-.012-.031-.016-.035-.012-.035-.016-.043-.008-.039-.031-.086-.012-.047-.012-.043-.016-.047-.012-.043-.016-.047-.012-.047-.008-.047-.035-.129-.012-.039-.016-.078-.008-.031-.008-.035-.004-.023-.004-.027v-.023l-.004-.02v-.016h.02v.035l.004.02.008.055.004.031.008.035.008.039.008.035.008.039.008.043.012.043.008.043.012.047.016.047.012.047.016.043.012.047.012.043.016.047.016.043.012.043.016.043.016.039.023.07.02.035.023.055.012.023.008.02.012.012h-.012zm.008.02l-.008.004-.004-.008h.016zm.152-1.25l.02-.004v.023l.004.027.004.031.008.07v.039l.008.039.004.043v.039l.004.047v.238l-.004.047v.047l-.004.047-.012.051-.004.047-.008.043-.008.047-.008.043-.008.039-.012.039-.016.043-.031.063-.02.031-.039.055-.027.02-.012-.016.02-.02.023-.02.02-.027.031-.062.016-.035.012-.035.035-.117.008-.047.008-.043.004-.047.004-.051v-.043l.008-.051v-.102l.004-.043v-.137l-.004-.047v-.043l-.004-.039v-.039l-.004-.043-.004-.031-.004-.035-.004-.031v-.023l-.008-.023zM6.34 9.707h.02v.012l-.004.012-.004.016v.02l-.004.016v.047l-.004.027v.055l-.004.035v.301l.004.043v.043l.008.043v.047l.004.047v.043l.008.043.008.047.008.094.004.043.008.047.008.043-.02.004-.012-.043-.004-.051-.008-.043-.008-.047-.016-.187-.004-.043v-.047l-.008-.043v-.09l-.004-.039v-.32l.004-.027v-.027l.004-.023v-.039l.008-.02v-.016l.004-.012v-.016.004zm.02 0zm-.023-.402v-.02l.012.012v.07l.004.012v.078l.004.012v.121l.004.012v.105h-.02v-.105l-.008-.016v-.113l-.004-.012v-.09l-.004-.016v-.047l.008.008zm0-.02h.008v.012l-.012-.008zm-.473.082v-.02l.016-.004h.016l.012-.004h.047l.012-.008h.016l.016-.004h.016l.016-.004h.027l.012-.004h.016l.016-.004h.012l.016-.004h.035l.012-.004h.016l.016-.004h.016l.012-.004h.031l.016-.004h.016l.012-.004h.016l.016-.004v.02h-.012l-.012.004h-.016l-.016.004H6.25l-.016.004h-.016l-.016.004h-.016l-.012.004h-.031l-.016.004h-.016l-.012.008h-.016l-.016.004h-.031l-.012.004h-.016l-.016.004H5.98l-.012.004h-.027l-.02.004h-.016l-.012.004h-.016zm.004 0zm0-.02v.02l-.012-.012.008-.012zm-.012.008v-.012h.008l-.008.008zm0 0\" class=\"sr-B\"/><path d=\"M5.645 9.734l.418-.012c-.039.172-.008.715.066 1.125.066.387.16 1.387-.242 1.625-.25-.527-.059-1.039-.184-1.5-.098-.484-.121-.891-.059-1.238zm0 0\" class=\"sr-C\"/><path d=\"M6.059 9.734l-.414.008v-.02l.418-.008.008.012-.008.008zm0-.02h.016v.012l-.012-.012zm.078 1.133l-.02.004-.008-.043-.004-.039-.016-.078-.008-.043-.004-.039-.004-.043-.004-.039-.004-.047-.012-.117-.004-.047v-.039l-.004-.039v-.039l-.004-.043V9.98l-.004-.035v-.09l.004-.027v-.023l.004-.023v-.02l.004-.023v-.02l.02.008v.016l-.004.02v.02l-.004.027v.105l-.004.035v.098l.004.035v.078l.004.039v.039l.008.039v.039l.004.043.004.039v.039l.016.086.004.043.004.039.008.039.004.043.008.043.008.078.008.043zm-.258 1.633l.016-.012-.012-.004.039-.023.031-.031.027-.031.031-.035.023-.039.02-.039.02-.047.023-.055.02-.047.012-.059.012-.051.016-.117.008-.062.008-.059.004-.059v-.062l.004-.059v-.125l-.008-.117v-.062l-.012-.059-.008-.109-.004-.051-.008-.047-.004-.051-.008-.043-.004-.039-.008-.039h.016l.008.035.008.039.004.047.016.094.008.055.008.109.004.063.004.055.004.059v.313l-.004.059-.008.066-.008.059-.008.055-.012.063-.016.051-.012.055-.016.055-.02.047-.023.047-.047.086-.031.039-.031.031-.031.027-.039.027zm.016 0l-.012.008-.004-.012h.012zm-.199-1.504l.02-.004.016.086.008.047.016.086.004.047v.039l.004.047v.508l.004.051v.047l.004.047.008.051.004.047.012.047.008.051.008.047.016.051.016.047.016.051.02.047.02.051-.016.008-.047-.102-.031-.102-.012-.051-.012-.047-.016-.102-.004-.043-.008-.051-.004-.047v-.051l-.004-.047v-.551l-.008-.094-.004-.043-.023-.129-.012-.043v-.004zm0 0zm-.051-1.254v.02l.008-.008-.004.035-.004.031-.008.07-.004.031v.039l-.008.035v.07l-.004.039v.145l.004.043v.035l.004.039v.039l.004.043.012.117.008.043.004.039.004.047.008.039.016.086.008.047.008.039.008.047.008.043-.02.004-.008-.043-.008-.047-.008-.043-.012-.039-.004-.047-.008-.043-.008-.039-.004-.047-.004-.039-.008-.043-.004-.039-.004-.043-.004-.039v-.039l-.004-.039v-.043l-.004-.035v-.258l.004-.039v-.035l.004-.035.004-.031.008-.07.004-.031.008-.035.008-.008zm-.012.008v-.008h.012zm.012 0v-.008.012zm-.012 0v-.008h.012zm0 0\" class=\"sr-B\"/><path d=\"M7.238 9.09c0 .172-.062 1.328-.078 1.488s-.09.273-.168.332c-.066-.098-.105-.227-.109-.383l.059-1.402c.141-.34.238-.348.301-.039zm0 0\" class=\"sr-C\"/><path d=\"M7.172 10.578h-.023v-.02l.004-.02v-.027l.004-.035v-.039l.004-.043v-.043l.008-.051v-.051l.008-.051.004-.059v-.059l.004-.059.004-.062.004-.059v-.059l.008-.066.004-.059.004-.066v-.059l.004-.059V9.48l.008-.059v-.051l.004-.051v-.039l.004-.043v-.039l.004-.035V9.09h.02v.113l-.004.039v.039l-.004.047v.051l-.008.055-.004.051v.059l-.008.117v.063l-.008.059-.004.063v.063l-.004.059-.004.066-.004.059v.059l-.008.109v.051l-.008.047v.047l-.004.039v.039l-.004.031v.031l-.004.023v.02zm-.187.344L7 10.906l-.016-.004.016-.008.016-.016.008-.004.016-.016.004-.008.016-.016.008-.012.008-.008.004-.012.016-.016.004-.012.008-.008v-.012l.008-.012.008-.023v-.012l.008-.012.008-.023.004-.016v-.02l.004-.016v-.016l.004-.016v-.016h.023v.035l-.008.012-.004.016v.012l-.012.047-.02.059-.008.012-.004.012-.004.008-.008.012-.004.008-.02.02-.004.012-.039.039-.004.008-.008.004-.031.031H6.98zm.012 0l-.008.008-.008-.012h.016zm-.125-.395h.02v.055l.004.016v.016l.004.012v.023l.004.012v.02l.008.023v.016l.008.012v.012l.008.008.004.016.008.023v.012l.004.008.008.012.004.008.008.023.008.008.004.012.004.008.016.016.004.008-.016.012-.004-.012-.008-.008-.008-.012-.004-.012-.008-.012-.004-.008-.008-.012v-.016l-.008-.008-.008-.023-.004-.008-.008-.023-.004-.016-.012-.035v-.016l-.008-.012v-.012l-.004-.016v-.012l-.004-.016v-.027l-.004-.012v-.031l-.004-.016v-.027zm.059-1.402l.016.008v-.004.051l-.004.031v.039l-.004.043v.039l-.004.047v.051l-.004.051v.059l-.004.055v.055l-.004.063v.055l-.008.059v.063l-.004.055V10l-.004.055v.055l-.004.055v.145l-.004.043v.074l-.004.031v.066h-.02v-.137l.004-.039v-.086l.004-.051v-.051l.004-.051.004-.059v-.055l.004-.059v-.059l.004-.059.004-.055v-.062l.004-.055V9.59l.004-.055V9.48l.004-.051v-.051l.008-.047v-.086l.004-.035V9.18l.004-.031zm-.004 0zm.324-.039h-.02v.004l-.008-.027-.004-.023-.016-.047-.004-.02-.016-.039-.008-.012-.012-.012-.008-.012-.004-.008-.008-.008h-.008l-.004-.004h-.023l-.016.008-.012.008-.02.02-.012.016-.008.016-.012.02-.012.016-.008.02-.016.023-.012.023-.012.027-.023.063-.02-.008.012-.031.016-.031.012-.027.023-.047.016-.02.023-.039.012-.016.008-.016.023-.023.023-.012h.012l.012-.008h.023l.008.008.023.016.008.008.016.023.008.016.004.02.008.016.008.023.004.023.008.023.008.027.004.027zm0 0zm-.012 0h.012zm.012 0zm0 0\" class=\"sr-B\"/><path d=\"M6.5 8.145l-.016 1.25c.008.16.055.316.133.453.082-.059.156-.168.168-.332.012-.133.016-.789.02-1.121-.086-.051-.172-.117-.242-.191l-.066-.059zm0 0\" class=\"sr-C\"/><path d=\"M6.492 9.395h-.02V8.93l.004-.051v-.391l.004-.047v-.18l.004-.043v-.074h.023v.156l-.008.047v.188l-.004.051v.25l-.004.047zm.121.445l.012.016h-.016l-.004-.012-.016-.023-.008-.008-.016-.023-.004-.012-.008-.012-.004-.016-.004-.012-.008-.016-.004-.012-.008-.016-.008-.031-.008-.012-.004-.016-.008-.016-.008-.031v-.016l-.004-.016v-.016l-.008-.016v-.016l-.004-.02v-.016l-.004-.016v-.012l-.004-.016v-.031h.02v.051l.004.016v.016L6.5 9.5v.016l.012.047v.016l.004.016.008.016.004.012.004.016v.016l.008.016.004.016.004.012v.016l.016.023.004.016.004.012.008.012.004.012.023.035.004.008.008.012h-.016zm.012.016l-.008.008-.008-.008zm.152-.34h.02l-.004.016v.016l-.004.016v.016l-.004.016-.004.012v.016l-.004.008-.004.016-.004.012-.008.012v.012l-.008.012-.004.012-.008.012-.004.008-.004.012-.008.012-.004.012-.023.023-.008.012-.016.016-.004.008-.012.008-.004.008-.008.008-.008.004-.008.008-.008.004-.012-.016.008-.008.008-.004.008-.008.008-.004.008-.008.008-.004.004-.008.012-.008.008-.008.004-.008.016-.016.004-.012.008-.008.004-.008.008-.012.004-.012.004-.008.004-.012.008-.012.012-.035.004-.016.008-.023V9.59l.008-.016v-.016l.004-.016v-.012l.004-.016zm.02-1.109l.012-.016.004.008v.375l-.004.043v.293l-.004.039v.18l-.004.031v.086l-.004.02v.051h-.02v-.094l.004-.031v-.125l.004-.039v-.238l.004-.039v-.418l.004-.035v-.102l.004.008zm.012-.016h.004v.008l-.004-.012zm-.246-.195v.02l.008-.02.008.016.012.008.004.004.008.012.027.027.004.008.008.008.008.004.008.008.008.004.016.016.008.004.008.008.023.012.016.016.008.004.008.008.008.004h.008l.016.016.023.012-.012.016-.016-.008-.008-.008-.016-.008-.008-.008-.008-.004-.008-.008-.016-.008-.008-.008-.008-.004-.008-.012-.008-.004-.012-.012-.012-.008-.016-.008-.027-.027-.008-.004-.008-.008-.008-.012-.008-.004-.035-.035.004-.016zm-.008.016l-.02-.016h.023zm-.047-.066h-.023l.023-.008.008.008v.004h.004v.008h.008v.004l.008.004.004.004v.004h.008v.004h.004v.004h.004l.004.004v.004h.004v.004l-.004.016v-.02l-.004.02h-.004v-.004h-.004v-.004h-.004v-.004h-.004l-.004-.004v-.004h-.004l-.004-.004-.008-.004h-.004v-.008h-.008v-.004l-.004-.004H6.5V8.16h-.004v-.004h-.004v-.004h-.004zm-.023 0v-.027l.023.02zm0 0\" class=\"sr-B\"/><path d=\"M6.801 8.387v1.086c-.004.137.035.27.105.387.082-.066.16-.176.176-.34a10.31 10.31 0 0 0 .043-.859c-.105-.031-.242-.207-.328-.277zm0 0\" class=\"sr-C\"/><path d=\"M6.809 9.469h-.02v-.258l-.004-.031v-.676l.004-.039v-.082h.02v.293l-.004.039v.742l.004.008v.008zm.094.383l.012.016h-.012l-.008-.012-.004-.012-.008-.012-.004-.008-.004-.012-.008-.008-.008-.023-.004-.008-.008-.012-.027-.082v-.016l-.008-.012v-.012l-.004-.016v-.012l-.004-.016v-.016l-.004-.012v-.016l-.004-.016v-.027l-.004-.016v-.027h.02v.055l.004.016v.012l.004.016v.012l.004.016v.016l.004.012v.012l.004.012v.012l.008.012v.012l.008.016.008.023.004.008.004.012v.012l.008.012.004.012.008.012v.008l.008.012.004.008.004.012.004.008.008.012.004.008zm.012.016l-.008.004-.004-.008h.012zm.16-.348h.023v.035l-.008.012v.016l-.008.016v.016l-.004.012-.004.016-.004.008-.004.016v.012l-.008.012-.004.012-.008.012-.008.023-.008.012-.004.012-.008.008-.008.012-.004.008L7 9.797l-.008.008-.004.008-.016.016-.008.004-.008.012-.004.004-.012.008-.012.012-.016-.016.012-.004.023-.023.004-.008.008-.008.004-.008.023-.023.004-.008L7 9.762l.008-.012.008-.008.004-.008.008-.012.008-.016.008-.012.004-.008.004-.012.004-.016.012-.035.004-.016.004-.012v-.016l.008-.016v-.016l.004-.012v-.016zm.051-.844l.008-.023.004.012v.156l-.004.035v.102l-.004.031v.035l-.004.031v.094l-.004.031v.059l-.004.027v.027l-.004.023v.051l-.004.02v.047l-.004.02v.031l-.004.012v.023h-.02V9.48l.004-.016V9.43l.004-.023v-.043l.004-.023v-.055l.004-.023V9.23l.004-.027v-.062l.004-.031v-.035l.004-.031V8.98l.004-.031v-.09l.004-.031V8.66l.012.012zm.008-.023h.004v.012zm-.32-.266h-.02l.016-.008.008.004.008.008.023.016.008.008.008.012.008.008.012.008.008.012.008.008.008.012.012.008.031.031.008.012.023.023.012.008.043.043.023.016.016.016.008.004.012.008.008.004.012.004.008.004-.008.023-.008-.004-.012-.008-.012-.004-.023-.016-.012-.004-.008-.008-.023-.016-.012-.012-.012-.008-.008-.012-.012-.012-.012-.008-.008-.012-.016-.008-.008-.012-.012-.012-.012-.008-.012-.016-.008-.008-.012-.008-.008-.012-.012-.008-.008-.012-.012-.008-.008-.008-.012-.008-.02-.02-.008-.004-.008-.008.016-.008zm-.02 0v-.02l.016.012-.016.004zm0 0\" class=\"sr-B\"/><path d=\"M6.539 8.113l-.277-.414c-.059.203-.129 1.656-.047 1.777.004.137.051.273.129.387.082-.062.195-.172.16-.336a10.71 10.71 0 0 1 .039-1.414zm0 0\" class=\"sr-C\"/><path d=\"M6.266 7.695l.285.41-.016.012-.289-.41v-.008l.023-.008zm-.02.004l.008-.02.012.012-.02.004zm-.023 1.773h-.02l.004.004-.012-.016-.004-.023-.008-.031v-.035l-.004-.039-.004-.051V9.23l-.004-.055V8.77l.004-.074v-.074l.004-.082.004-.07v-.078l.008-.148.004-.066.008-.07.008-.125.004-.059.008-.051.004-.047.004-.039.008-.043.004-.023.012-.02.02.004-.008.02-.004.027-.004.039-.008.039-.004.047-.008.051-.004.055-.004.062-.008.066-.008.133-.004.07-.004.074v.074l-.008.078v.074l-.004.074v.078l-.004.07v.391l.004.055.008.086v.035l.008.031.008.02.004.012zm0-.004v.004zm.113.383l.012.016-.016-.004-.004-.008-.008-.012-.004-.012-.008-.012-.004-.008-.004-.012-.008-.012-.004-.012-.008-.012-.008-.008-.004-.016-.004-.012v-.012l-.008-.012-.004-.012-.008-.012-.004-.012-.008-.012-.004-.016v-.012l-.004-.008-.004-.016v-.012l-.008-.016V9.57l-.004-.012v-.012l-.004-.016V9.5l-.004-.012v-.016h.02V9.5l.004.016v.012l.004.012v.016l.004.012v.012l.004.016.004.012v.012l.008.012.008.023.004.016v.012l.008.012.012.035.008.012.004.008.004.016.008.008.004.012.008.012.008.016.016.016.004.012.008.012H6.34zm.012.016l-.008.008-.008-.012zm.148-.34l.02-.004v.016l.004.012v.063l-.004.012-.004.016v.012l-.004.016-.008.012-.012.035-.016.023-.004.008-.008.012-.012.008-.004.008-.074.074-.008.004-.016.016-.012-.016.008-.008.012-.004.008-.008.004-.008.008-.004.016-.016.008-.004.008-.008.008-.012.008-.004.008-.008.016-.023.008-.008.008-.012.004-.008.008-.012.008-.008.004-.012v-.012l.012-.035v-.012l.004-.012v-.062l-.004-.016zm.043-1.406v-.02l.012.012-.008.039v.031l-.004.031-.004.043-.004.039v.039l-.008.047v.051l-.004.051v.059l-.008.109v.059l-.004.059v.059l-.008.059v.172l-.004.055v.27l.004.043v.027l.008.027v.02l.004.023-.023.004v-.02l-.004-.023v-.027l-.004-.035v-.078l-.004-.043v-.309l.004-.059V8.82l.004-.059v-.059l.004-.059.004-.055v-.055l.004-.055.004-.051v-.051l.008-.047v-.043l.008-.039v-.039l.004-.031.008-.027v-.023l.004-.02.012.012zm0-.02h.016v.012l-.012-.012zm0 0v.02l-.004-.004.008-.016zm0 .02h-.004v-.004l.008.004zm0 0\" class=\"sr-B\"/><path d=\"M5.961 9.023l-.02.461c.004.152.039.285.109.383.078-.059.18-.168.168-.332-.039-.629.027-1.219.105-1.793-.066-.047-.18-.098-.25-.148-.133.766-.18 1.238-.117 1.43zm0 0\" class=\"sr-C\"/><path d=\"M5.949 9.48h-.02v-.148l.004-.016v-.055l.004-.016V9.18l.004-.02v-.035l.004-.02v-.062l.004-.02h.02v.039l-.004.02v.043l-.004.02v.055l-.004.016v.063l-.004.016v.082l-.004.012zm.094.379l.012.016h-.012l-.008-.012-.004-.008-.008-.012-.004-.012-.004-.008-.004-.012-.008-.012L6 9.793l-.008-.012-.004-.008-.004-.012-.004-.016-.016-.047v-.012l-.008-.012V9.66l-.004-.012v-.016l-.008-.023v-.012l-.004-.016v-.027l-.004-.016v-.027l-.004-.016V9.48h.02v.047l.004.012v.023l.004.016v.012l.004.012v.016l.004.008.004.016v.012l.004.012v.012l.008.012.027.082.008.012.004.012.004.008.004.012.004.008.008.012.004.012.008.008.004.008zm.012.016l-.008.008-.004-.008h.016zm.152-.34h.02v.074l-.004.016v.012l-.004.012v.016l-.008.012-.008.023-.008.012-.004.012-.008.012-.008.023-.012.008-.004.012-.023.023-.004.012-.008.008-.012.008-.008.012-.004.008-.008.004-.012.008-.008.008-.008.004-.004.008-.012-.016.004-.008.008-.004.02-.02.012-.008.008-.004.008-.008.004-.008.008-.012.008-.008.004-.008.016-.016.004-.012.008-.012.004-.008.008-.012.004-.008.004-.012.008-.012.008-.023.004-.016v-.012l.004-.012v-.016l.004-.012zM6.32 7.75l.016-.016.004.012-.012.051-.008.055-.004.051-.016.109-.004.055-.016.109-.004.055-.008.055-.004.059-.008.109-.008.055-.004.055v.063l-.008.055-.008.109v.059l-.004.059v.168l-.004.063v.172l.004.059v.063l.004.055.004.059h-.02l-.004-.059v-.059l-.004-.059V9.25l-.004-.059V9.02l.004-.055v-.062l.004-.051v-.055l.008-.062.004-.051.004-.059v-.066l.004-.051.008-.059.004-.055V8.34l.012-.055.004-.055.016-.109.004-.055.047-.328v.012zm.016-.016l.004.004v.008l-.008-.012zm-.246-.137l-.02-.008.016-.008.008.008.008.004.004.004h.004l.008.008.023.012.008.008.031.016.012.008.031.016.012.008.008.004.012.004.008.004.004.004.008.004h.008l.012.008.008.004.012.012.008.004.004.008.008.004-.012.016-.012-.012h-.004l-.008-.004-.004-.008-.039-.02-.012-.008-.039-.02-.012-.004-.008-.008-.008-.004-.012-.004-.016-.008-.008-.008h-.008l-.008-.008-.023-.012-.012-.012-.012-.004-.008-.004.02-.008zm-.02-.008l.004-.016.012.008zm-.121 1.43l.016.012-.016-.004-.004-.02v-.023l-.008-.02-.004-.023v-.02l-.004-.031v-.031l-.004-.031v-.102l.004-.035v-.039l.004-.039.008-.086.004-.047.004-.051.008-.047.004-.051.008-.051.008-.059.008-.055L6 8.051l.012-.059.012-.062.008-.066.012-.066.023-.141.012-.066.023.004-.012.066-.016.07-.012.07-.016.133-.012.059-.008.059-.008.063-.008.059-.016.109-.004.051-.008.051-.004.051-.004.047-.008.047v.043l-.004.039v.039l-.004.043v.195l.004.027v.023l.004.02.004.023V9l.008.023-.02-.008zm.016.012l-.008.012-.008-.016zm0 0l-.012-.016.02.008-.008.004zm-.012-.016l.02-.02v.027zm0 0\" class=\"sr-B\"/><path d=\"M5.672 9.438l.082.293c.004.152.098.281.164.379.078-.059.148-.16.129-.32-.113-.93-.074-1.547.121-2.301-.441.301-.645.934-.5 1.949zm0 0\" class=\"sr-C\"/><path d=\"M5.738 9.73l-.074-.293.02-.004.078.289zm.023-.004zm.148.379l.016.016H5.91l-.008-.012-.004-.012-.008-.008-.031-.047-.008-.008-.004-.016-.008-.008-.008-.016-.008-.008-.008-.023-.016-.023-.004-.012-.004-.016-.008-.008-.004-.016-.008-.012-.004-.012-.004-.016-.004-.012-.004-.016-.004-.012-.008-.016v-.012l-.004-.012v-.016l-.004-.02v-.012h.023v.027l.004.016v.012l.004.016.004.012v.012l.004.012v.012l.008.016.004.012.008.012v.012l.008.012.004.016.008.012.004.008.023.035.004.008.023.035.004.012.016.016.004.008.008.012.008.008.004.008.012.008h-.02zm.016.016l-.012.004-.004-.008h.016zm.113-.332h.02v.109l-.004.012v.016l-.004.012v.008l-.008.012-.012.035-.016.031-.008.012-.004.008-.008.008-.004.008-.008.012-.012.012-.008.012-.031.031-.016-.016.008-.004.023-.023.008-.004.004-.008.023-.023.004-.008.016-.016.004-.008v-.008L6.016 10l.004-.012.004-.008.004-.012.004-.008.008-.023v-.012l.004-.012v-.012l.004-.012v-.102zm.137-2.293l-.012-.02.016.012-.02.07-.031.141-.016.066-.012.066-.016.066-.023.141-.008.063-.012.066-.004.066-.023.199-.008.133-.004.07v.07l-.008.07v.293l.008.074.008.082.004.074.004.082.008.074.016.164.008.086.012.09h-.02l-.012-.086-.008-.086-.016-.164L6 9.383l-.008-.082-.004-.074-.004-.078v-.074L5.98 9v-.285l.004-.066.004-.07.008-.133.008-.066.008-.07.008-.066.008-.062.012-.07.008-.066.016-.066.012-.066.016-.066.012-.07.016-.07.016-.066.016-.07.023-.074.016.016zm-.012-.02l.02-.012-.004.023zm-.48 1.961h-.02l-.016-.094-.008-.094-.012-.09-.004-.086-.008-.082-.004-.086v-.16l.008-.148.008-.074.008-.066.008-.07.012-.066.02-.062.012-.062.02-.059.02-.062.02-.055.023-.055.047-.102.031-.047.027-.047.027-.039.035-.043.031-.043.035-.039.039-.031.035-.035.043-.031.039-.031.012.016-.117.094-.035.035-.035.039-.062.078-.031.043-.027.043-.031.051-.027.047-.023.051-.039.109-.02.059-.02.063-.016.059-.012.059-.016.07-.008.066-.012.07-.004.07-.008.074-.004.074v.242l.016.172.008.09.023.188zm-.02 0zm.008 0h.012zm-.008 0zm0 0\" class=\"sr-B\"/><path d=\"M5.695 9.723l-.406-.133c-.051.402.027.91.141 1.582.094.578.039 1.031-.031 1.32.434-.059.617-.613.402-1.66-.062-.273-.117-.625-.105-1.109zm0 0\" class=\"sr-C\"/><path d=\"M5.293 9.578l.406.137-.008.02-.406-.133-.004-.012zm-.012.012v-.016l.016.004-.012.012zm.16 1.578l-.02.008-.035-.187-.008-.059-.012-.059-.016-.117-.008-.055-.012-.055-.008-.051-.008-.055-.004-.055-.008-.051-.008-.055-.004-.047-.004-.051-.008-.047-.008-.094v-.047l-.004-.047V10l-.004-.039v-.215l.004-.039.004-.043v-.039l.008-.039.02.008-.004.039-.004.035v.039l-.004.039v.082l-.004.039v.086l.004.047v.047l.004.047.004.043.012.141.004.051.008.051.004.051.008.051.016.109.008.051.008.063.012.055.008.055.008.059.008.063.008.055.012.059.008.063.012.063zm-.039 1.316v.02l-.012-.012.008-.027.004-.027.008-.031.004-.031.016-.062.008-.035.012-.105.004-.039.004-.035v-.043l.008-.078v-.039l.004-.043v-.266l-.008-.094-.004-.051-.004-.047-.004-.051-.008-.055-.004-.051-.008-.051-.008-.055.02-.004.004.055.008.055.008.047.004.055.008.051.008.102v.047l.004.051v.137l.004.043v.086l-.004.043v.039l-.004.039v.039l-.004.043-.004.039-.008.07v.035l-.008.035-.004.035-.008.035-.004.031-.004.027-.016.063-.008.027-.008-.016zm0 .02H5.39v-.012zm.387-1.672l.02-.004.02.102.02.094.023.18.008.086.008.082.008.078.004.082v.145l-.004.066-.004.063-.008.063-.008.059-.012.059-.012.055-.016.051-.039.094-.039.086-.027.035-.023.035-.027.027-.031.027-.027.027-.031.02-.035.02-.035.016-.043.012-.039.012-.039.004v-.02l.039-.008.035-.012.039-.012.031-.016.094-.059.055-.062.023-.031.02-.035.027-.039.02-.039.02-.047.023-.094.016-.055.012-.059.008-.055.008-.062.004-.066v-.07l.004-.066v-.074l-.008-.078-.004-.078-.008-.082-.008-.086-.016-.086-.016-.09-.016-.094-.02-.102zm-.094-1.098l.004-.02.008.008v.336l.004.043.004.035v.039l.004.035v.035l.004.039.004.031.004.039.004.031.004.035.008.063.004.035.004.027.008.031.004.031.008.027.004.027.004.031.008.027.004.027.008.027v.023l.008.023-.02.004-.004-.023-.008-.027-.008-.023-.012-.082-.004-.031-.008-.027-.004-.031v-.031l-.008-.031-.012-.094-.016-.141v-.035l-.008-.039-.004-.035v-.039l-.004-.035v-.082l-.004-.039v-.262l.004.012zm.004-.02l.008.004v.004l-.008-.012zm-.027 1.966h.02v.016h-.016v-.004h-.004zm-.086-.801l.02-.008.008.023.004.027v.02l.008.023.004.027.012.07.008.055.008.047.004.027.004.023.008.027v.027l.004.027v.051l.008.027v.023l.004.027v.051l.004.023v.184h-.02v-.152l-.008-.023v-.055l-.004-.023v-.031l-.004-.023v-.027l-.004-.027v-.02l-.004-.027v-.027l-.008-.023-.004-.027v-.023l-.004-.027-.004-.023-.008-.055v-.023l-.008-.023-.012-.07-.008-.023-.004-.027-.004-.023zm-.109-1.008H5.5V10l.004.031v.066l.004.027v.031l.004.031v.031l.008.031v.063l.008.063v.031l.008.031.008.063.004.027.008.063v.031l.008.031.004.035.008.031.004.027.004.035.008.027.016.063-.023.008-.008-.035-.016-.062-.004-.031-.008-.031-.012-.094-.008-.031-.004-.031-.004-.027-.004-.035-.004-.027-.004-.031v-.035l-.008-.031-.004-.031v-.031l-.004-.031v-.027l-.008-.062v-.031l-.004-.035v-.066l-.004-.027v-.129l-.004-.031zm.023 0h-.023v-.004h.004v-.004h.004v-.004H5.5v.004h.004v.008zm0 0\" class=\"sr-B\"/><path d=\"M5.68 7.348l.266.043-.094.465c-.098.488-.164 1.059-.09 1.684a1.9 1.9 0 0 0 .152.57c-.293-.031-.48-.316-.453-.812-.055-.578-.031-1.039.063-1.387l.156-.566zm0 0\" class=\"sr-C\"/><path d=\"M5.941 7.398l-.262-.043v-.023l.266.047.008.012zm.004-.02h.012v.012zm-.082.48l-.02-.004.004-.008V7.84l.004-.012v-.012l.004-.012v-.012l.004-.016v-.016l.004-.016v-.02l.008-.016.008-.039v-.016l.012-.059.004-.023.004-.02.004-.016v-.02l.004-.012.004-.023v-.012l.008-.016v-.012l.008-.012v-.012l.004-.012v-.008l.004-.008v-.004l.02.004v.012l-.004.008v.012l-.008.012v.012l-.004.012-.008.031v.023l-.004.012-.004.02v.016l-.008.02-.004.023-.004.02-.004.016-.008.039v.02l-.004.02-.004.016-.004.02v.016l-.004.012v.02l-.008.023v.016l-.004.008v.016zm-.09 1.68h-.02l-.008-.055-.004-.059-.008-.062-.004-.055V9.25l-.004-.059v-.051l-.004-.062v-.219l.004-.055V8.75l.004-.051.004-.059.008-.102.004-.055.008-.051.004-.051.023-.152.008-.047.004-.051.016-.094.008-.051.008-.043.012-.047.008-.047.02.004-.008.043-.016.094-.012.047-.008.051-.016.094-.004.047-.016.102-.008.102-.008.051-.004.051-.004.055-.008.102v.051l-.004.055v.055l-.004.055v.23l.004.059v.055l.008.059.004.055.004.063.008.055.004.059zm.141.582v-.02l-.008.016-.008-.016-.008-.012-.004-.016-.008-.016-.008-.02-.004-.012-.016-.031-.012-.047-.008-.02-.004-.016-.008-.02-.004-.016-.012-.059v-.02l-.008-.02-.004-.016-.008-.039v-.02l-.004-.02-.004-.023v-.02l-.008-.02-.004-.02v-.02l-.004-.023-.004-.02.02-.004v.02l.008.02v.023l.004.02v.02l.004.02.004.023.004.02v.02l.016.078.008.016.004.023.004.016.008.02.004.012.004.02.008.016.004.016.004.02.008.016.004.016.008.012v.02l.008.016.008.012.004.016.008.012.008.016.008.012-.012.016zm.008-.016l.008.016h-.02l.012-.012zm-.473-.805l.02-.004v.176l.008.078.004.043.008.035.008.031.012.039.008.031.023.063.023.055.016.027.031.047.02.02.016.023.02.02.023.016.059.047.023.012.047.016.027.008.023.008.023.004h.031l-.008.02h-.023l-.082-.023-.023-.012-.023-.008-.023-.016-.02-.012-.023-.016-.02-.016-.023-.02-.039-.039-.02-.023-.016-.027-.031-.047-.012-.031-.016-.027-.008-.031-.016-.035-.008-.031-.016-.07-.008-.039-.004-.035-.004-.039-.004-.043v-.176zm.02-.004zm.047-1.391l.02.008-.012.031-.016.07-.004.031-.008.035-.008.039-.004.035-.004.039-.004.035-.008.043-.004.039v.039l-.004.039v.043l-.004.039-.004.047v.086l-.004.043v.191l.004.051v.047l.004.051v.051l.016.203.004.059h-.02l-.004-.055-.004-.051-.004-.055-.004-.051v-.051l-.004-.055v-.047l-.004-.051V8.52l.004-.043v-.043l.008-.039v-.043l.004-.043.008-.039.004-.039.004-.035.008-.043.016-.07.004-.035.012-.035.008-.035.008-.031.008-.035zm.164-.57v.02l.008-.004-.008.016-.008.023-.008.012-.008.039-.004.016-.004.02-.008.02-.008.039-.008.02-.004.023-.016.047-.004.02-.004.023-.008.02-.008.023-.004.02-.008.02-.004.023-.004.02-.008.02-.004.02-.012.047v.012l-.004.012v.008l-.02-.004v-.012l.008-.023.004-.016v-.023l.008-.012.004-.02.004-.016.004-.02.004-.023.008-.02.004-.023.004-.02.008-.023.004-.02.012-.02.012-.07.008-.02.004-.02.016-.039.008-.039v-.02l.008-.016.004-.012.008-.016v-.012l.004-.008.004-.012.012-.004zm-.008.004l.004-.008h.004zm.008.008v-.012zm-.008-.008l.004-.008h.004zm0 0\" class=\"sr-B\"/><path d=\"M5.52 7.406l.129.148c-.035.027.027.141-.008.359-.02.129-.098.277-.113.441-.051.531-.051 1.195.109 1.621-.289-.031-.391-.297-.402-.793a7.07 7.07 0 0 1 .094-1.453.52.52 0 0 1 .191-.32zm0 0\" class=\"sr-C\"/><path d=\"M5.641 7.563l-.129-.148.016-.012.129.148v.016h-.016zm.016-.012l.008.008-.012.004v-.016zm-.008.371h-.02l.004-.027v-.02l.004-.02v-.156l-.004-.012v-.023l-.004-.012v-.02l-.004-.008v-.059l.012-.012v-.004l.012.016v.004h-.004v.008h-.004v.047l.004.008v.02l.004.012v.023l.004.016v.16l-.004.02v.02l-.004.023zm0 0zm-.109.434h-.02v-.039l.004-.012.004-.016v-.012l.004-.02v-.016l.008-.016.004-.012.008-.031.004-.012.004-.016.004-.012.004-.016.004-.012.004-.016V8.09l.008-.016.004-.012.004-.016.004-.012v-.012l.008-.012.004-.016.004-.008.004-.016v-.012l.004-.012v-.012l.004-.012v-.012h.02v.027l-.008.012v.012l-.004.012v.016l-.004.016-.008.023v.012l-.008.016-.008.023-.004.016-.008.023-.008.016-.004.012-.004.016-.008.016-.004.016-.004.012-.004.016v.012l-.004.012-.004.016v.016l-.004.016v.012l-.004.016zm.094 1.629v-.02l-.008.016-.016-.039-.012-.043-.016-.043-.012-.047-.008-.043-.012-.051-.016-.094-.023-.152-.004-.051-.004-.055-.008-.055-.004-.051v-.055l-.004-.055v-.047l-.004-.059v-.219l.004-.051v-.055l.004-.055v-.055l.008-.051.008-.055.004-.051.004-.055.004-.047h.02l-.008.051-.004.055-.008.102v.051l-.004.051v.055l-.004.055v.051l-.004.055v.227l.004.051v.055l.004.055.004.051.004.055.004.051.008.051.004.051.008.047.008.051.016.094.012.051.016.043.035.129.012.039-.008.012zm.012-.012l.004.016h-.016zm-.422-.789h.02v.043l.004.047v.039l.008.047.004.039v.039l.004.035.008.035.004.035.004.031.023.094.012.027.008.023.012.027.012.023.012.02.016.02.012.02.016.023.016.02.016.012.02.012.02.016.02.012.023.012.039.016.023.004.055.008-.004.02-.055-.008-.02-.008-.027-.008-.023-.012-.02-.012-.023-.008-.02-.016-.023-.016-.016-.012-.02-.02-.012-.02-.016-.023-.012-.02-.016-.023-.012-.02-.008-.027-.012-.027-.008-.027-.012-.031-.008-.031-.004-.035-.008-.027-.012-.035-.008-.078v-.039l-.008-.039v-.043l-.004-.043v-.047l-.004-.043zm.094-1.457l.023.004-.012.055-.023.152-.004.047-.008.051-.008.047-.004.051-.004.047-.004.051-.008.047v.047l-.008.094v.047l-.004.047v.043l-.008.043v.09l-.004.043v.449h-.02v-.539l.004-.043v-.039l.004-.047v-.047l.016-.187.008-.047.004-.051.004-.047.008-.047.004-.051.031-.203.012-.051.008-.055zm.023.004zm.184-.328l-.016.012h.016l-.008.012-.023.016-.008.008-.008.012-.008.004-.008.008-.008.012-.016.016-.004.012-.008.012-.016.016-.004.008-.008.012-.012.023-.008.012-.004.008-.008.023-.004.008-.008.023-.004.016v.008l-.004.012v.012l-.004.012v.012l-.023-.004v-.012l.008-.023v-.012l.008-.012v-.012l.008-.012.008-.023.004-.008.004-.012V7.59l.008-.012.004-.012.008-.012.004-.012.004-.008.016-.023.004-.012.016-.023.039-.039.008-.012.012-.008.008-.008.008-.012.016-.008h.012zm-.012 0l.008-.008.004.008zm0 0\" class=\"sr-B\"/><path d=\"M6.246 7.801l-.27-.031-.098.523c-.02.18.035.34.098.457.102-.059.145-.187.184-.371s.055-.383.082-.578zm0 0\" class=\"sr-C\"/><path d=\"M5.98 7.762l.266.027v.02l-.27-.031-.008-.012.008-.008zm-.012.004v-.008h.008l-.012.008zm-.082.527h-.02l.004-.012v-.016l.004-.012v-.02l.004-.012v-.016l.008-.012v-.012l.004-.016v-.016l.004-.012v-.02l.008-.031.004-.02v-.016l.008-.02.004-.016V8l.016-.078.004-.023.008-.02.004-.02.008-.047v-.02l.008-.027.02.004-.008.023v.02l-.004.027-.008.02-.004.023-.004.02-.004.023-.016.078v.02l-.004.02-.008.031v.023l-.008.012v.016l-.008.016v.016l-.004.016-.004.012v.012l-.004.016v.023l-.004.012v.023l-.004.008v.02zm.086.453l.012.016h-.016l-.004-.016-.016-.023-.004-.008-.008-.012-.004-.016-.004-.012-.004-.016-.008-.012-.004-.016-.008-.012-.008-.031v-.016l-.004-.012-.004-.016-.004-.012V8.52l-.008-.016v-.016l-.004-.016v-.016l-.004-.012V8.43l-.004-.02v-.121h.02v.133l.004.02v.027l.008.016v.031l.008.031v.016l.008.012.004.016.008.016.02.059.004.016.008.012.008.023.008.012.004.012.008.012-.016-.004zm.012.016l-.012.008-.004-.008zm.172-.379h.02l-.004.02-.008.016-.004.02v.016l-.004.016-.004.012-.008.031v.016l-.008.016-.004.012-.008.012v.016l-.008.012-.004.016-.004.012-.004.008-.008.012-.004.012-.008.008-.008.016-.008.012-.016.016-.008.012-.031.031-.008.012-.012.004-.008.008-.008-.016.008-.008.008-.004.012-.008.004-.008.008-.004.016-.016.008-.012.023-.023.004-.012.008-.008.004-.008.008-.012.004-.012.008-.012.004-.012.004-.016.004-.012.008-.016.008-.023v-.016l.004-.016.008-.016.02-.078.004-.02zm.09-.57v-.02l.012.008v.02l-.008.023v.016l-.004.02v.02l-.004.016v.02l-.004.016v.02l-.004.02v.02l-.004.02v.02l-.004.016v.02l-.004.016v.02l-.004.016v.02l-.004.023-.004.016v.02l-.004.016-.004.02v.016l-.004.02-.008.031v.02l-.008.02v.02l-.004.012h-.023l.008-.02v-.016l.008-.02.004-.016v-.02l.004-.016v-.02l.008-.016.004-.02v-.02l.004-.016v-.023l.004-.016v-.02l.004-.016v-.035l.004-.02v-.02l.004-.016V8l.004-.016v-.02l.008-.02V7.91l.004-.02v-.016l.004-.02V7.84l.004-.023v-.02zm0-.02h.012l-.004.008-.012-.008zm0 0v.02zm0 .02zm0 0\" class=\"sr-B\"/><path d=\"M6.941 8.371h-.238l-.008.445a.71.71 0 0 0 .109.375c.07-.059.141-.164.152-.324s-.012-.328-.016-.5zm0 0\" class=\"sr-C\"/><path d=\"M6.703 8.363h.242v.02h-.242l-.008-.008zm-.008.012v-.012h.008zm.008.441h-.02V8.59l.004-.016v-.09l.004-.016v-.098h.02v.156l-.004.012v.113l-.004.012v.156zm.094.371l.012.012h-.016l-.004-.008-.008-.008-.004-.008-.008-.012-.004-.008-.008-.012v-.008l-.008-.012-.004-.008-.008-.012v-.012l-.016-.047v-.008l-.004-.012-.004-.016L6.711 9v-.012l-.008-.023v-.016l-.004-.008v-.016l-.004-.016v-.008l-.004-.016v-.051l-.004-.016h.02v.023l.004.016v.027l.004.012v.016l.004.012v.016l.004.012v.012l.004.012v.012L6.734 9v.016l.004.012v.012l.004.012.004.008.004.012.008.008.004.016.008.008.012.035.008.008.008.023.008.012.008.008.004.012h-.016zm.012.012l-.008.012-.004-.012h.016zm.137-.332h.02v.031l-.004.016v.027l-.008.016v.012l-.004.016-.004.012-.004.016-.004.012-.004.008-.004.012-.008.012v.008l-.008.016-.004.012-.008.008-.004.012-.004.008-.008.008-.004.012-.008.008-.008.004-.016.016-.004.012-.008.008-.012.008-.008.004-.004.008-.008.004-.016-.012.004-.004.008-.004.008-.008.004-.008.012-.012.004-.008.008-.004.008-.008.004-.008.008-.012.008-.008.012-.023.004-.012.008-.012.004-.008.008-.023.004-.008v-.012l.008-.012v-.012l.008-.012v-.016l.004-.012v-.027l.004-.016v-.031zm0-.484v-.02l.008.012v.109l.004.023v.09l.004.016v.059l.004.016v.184h-.02v-.238l-.004-.016v-.039l-.004-.02V8.5l-.004-.02v-.105l.008.008zm0-.02h.008v.012l-.012-.012zm0 0\" class=\"sr-B\"/><path d=\"M7.199 8.484l-.238.012.004.445a.74.74 0 0 0 .125.371c.07-.062.137-.172.141-.332s-.02-.324-.031-.496zm0 0\" class=\"sr-C\"/><path d=\"M6.961 8.484l.238-.012v.02l-.238.016-.008-.012zm-.008.012v-.012h.008zm.023.445h-.02v-.082l-.004-.012v-.355h.02v.406l.004.008zm.105.363l.016.016h-.016l-.004-.012-.008-.008-.004-.012-.008-.008-.008-.012-.004-.008-.008-.012-.004-.012-.004-.008-.008-.012-.004-.012-.004-.008-.004-.016-.004-.012L7 9.16v-.008l-.008-.023v-.016l-.008-.012-.004-.008v-.016l-.004-.016v-.012l-.004-.012v-.016l-.004-.012v-.016l-.004-.016v-.039h.016v.012l.004.016v.027l.004.016.004.012v.016l.004.012v.012L7 9.074v.016l.008.012v.012l.012.035v.012l.008.012.004.012.004.008.004.012.004.008.016.047.004.008.008.012.004.008.008.008.008.012.004.004h-.016zm.016.016l-.008.008-.008-.012h.016zm.121-.34h.02v.047l-.004.012v.016l-.008.023v.016l-.004.012v.012l-.016.047-.008.012-.004.012-.008.012-.008.016-.016.016-.008.012-.004.008-.008.008-.004.012-.004.008-.008.004-.004.008-.027.027-.016-.016.035-.035.008-.004.008-.012.012-.023.008-.008.008-.016.008-.012.004-.012.008-.008.004-.016.004-.008.02-.059v-.012l.004-.012v-.012l.004-.016v-.012l.004-.016zm-.02-.508v.02l.012-.008v.047l.004.016v.031l.004.016v.066l.004.016v.027l.004.016v.016l.004.016v.051l.004.016v.047l.004.016v.105h-.02v-.148l-.004-.016v-.031l-.004-.016v-.035l-.004-.02v-.027l-.004-.016v-.031l-.004-.016v-.031l-.004-.02v-.031l-.004-.016v-.043l.008-.012zm-.008.012v-.012h.008zm.008.008v-.02zm0 0\" class=\"sr-B\"/><path d=\"M6.699 8.246l-.238-.016-.047.441c-.004.152.023.285.082.387.074-.059.152-.16.176-.316s.016-.328.027-.5zm0 0\" class=\"sr-C\"/><path d=\"M6.461 8.219l.238.02v.023l-.238-.023-.008-.008.008-.008zm-.008.012v-.012h.008zm-.027.445h-.02v-.055l.004-.008v-.035l.004-.012v-.023l.004-.012v-.043l.004-.016v-.027l.004-.016v-.016l.004-.016v-.02l.004-.016v-.02l.004-.02v-.02l.008-.02v-.02l.004-.02v-.02l.02.004v.039l-.008.02v.02l-.004.02v.02l-.004.02v.012l-.004.02v.016l-.004.02v.016l-.004.016v.023l-.004.016v.027l-.004.012v.023l-.004.012v.035l-.004.008zm.063.375l.012.016-.016-.004-.004-.008-.004-.012-.012-.023v-.012l-.008-.012-.004-.008v-.012l-.008-.012v-.012l-.004-.012V8.93l-.008-.008v-.016l-.004-.012v-.035l-.004-.008v-.016l-.004-.012v-.023l-.008-.016v-.109h.023v.133l.004.016v.016l.004.012v.012l.004.008v.012l.004.016.004.012v.012l.004.012v.008l.008.012.012.035.004.008.008.023.004.008.004.012.008.008.004.008h-.016zm.012.016l-.008.004-.008-.008zm.164-.32h.02l-.004.016v.016l-.004.016v.012l-.008.016-.012.035-.008.012-.012.035-.008.012-.004.012-.008.012-.008.008-.004.012-.008.008-.004.008-.008.008-.008.012L6.57 9l-.008.012-.012.012-.008.012-.008.004-.016.016-.008.004-.008.008-.008.004-.008-.016.004-.004.008-.004.008-.008.008-.004.004-.008.008-.004.02-.02.008-.016.008-.012.012-.012.004-.012.016-.016.008-.012.008-.023v-.008l.008-.012.004-.012.004-.008.004-.012.008-.031.008-.023v-.016l.004-.012.004-.02zm.035-.488v-.02l.012.008v.031l-.004.016v.113l-.004.016v.18l-.004.016v.043l-.004.016v.016l-.004.016v.02l-.004.012v.016l-.023-.004v-.016l.008-.016v-.027l.004-.016v-.035l.004-.016v-.066l.004-.016v-.121l.004-.016v-.098l.004-.016v-.047l.012.012zm0-.02h.012v.008l-.012-.012zm0 0\" class=\"sr-B\"/><path d=\"M6.48 7.992l-.266-.109c-.043.176-.102.758 0 1 .09-.059.18-.168.207-.34.031-.18.039-.363.059-.551zm0 0\" class=\"sr-C\"/><path d=\"M6.219 7.875l.262.105-.008.02-.258-.105-.008-.012zm-.012.004l.004-.008.008.004zm.004 1l.012.016-.012-.004-.012-.023-.016-.055-.008-.031-.004-.031-.008-.031-.004-.031-.004-.035v-.035l-.004-.039v-.07l-.004-.039v-.109l.004-.039v-.035l.004-.039.004-.035V8.18l.004-.035.008-.035v-.031l.004-.031.004-.027.008-.031.008-.047.004-.02v-.023l.004-.02.02.008-.004.02v.016l-.004.023-.008.023-.008.055-.012.094v.035l-.004.035v.031l-.004.039v.035l-.004.035v.074l-.004.043v.105l.004.039v.031l.008.07.004.031.004.035.008.027.004.027.012.027.008.023.008.02h-.016zm.012.016l-.008.004-.004-.008zm.188-.355h.023v.02l-.008.016-.004.02v.012l-.008.016-.008.031-.004.012-.008.016-.004.012-.008.012-.008.023-.008.012-.004.012-.012.012-.004.016-.02.02-.004.008-.008.008-.008.012-.008.008-.008.012-.008.004-.031.031-.012.008-.008.008-.008.004-.012-.016.008-.008.008-.004.008-.008.008-.004.055-.055.004-.012.016-.016.004-.008.008-.008.008-.016.008-.008.004-.012.008-.012.004-.012.004-.016.008-.008.008-.031.004-.012.004-.016.008-.012v-.016l.008-.031v-.016zM6.473 8l.008-.02.008.012v.02l-.004.016v.035l-.004.02v.02l-.004.016v.035l-.004.02v.031l-.004.02v.035l-.004.02v.031l-.004.02v.016l-.004.02v.016l-.004.016v.02l-.004.016v.016l-.004.02v.016l-.004.02v.016l-.008.016v.016h-.02v-.016l.004-.02V8.48l.004-.016v-.02l.004-.016v-.02l.004-.016v-.02l.004-.012v-.02l.004-.016v-.031l.004-.02v-.016l.004-.02v-.043l.004-.016v-.035l.004-.016v-.035l.004-.023v-.027l.004-.02v-.016l.004-.023zm.008-.02l.008.004v.008zm0 .012L6.473 8l.004-.008zm0-.012l.008.008v.004l-.008-.008zm0 0\" class=\"sr-B\"/><g class=\"sr-D\"><g class=\"sr-E sr-F\"><use xlink:href=\"#C\"/><path d=\"M6.801 12.785c-.02.066-.102.152-.16.215-.09.098-.07.242-.004.32.07.086.098.184.113.258a.99.99 0 0 1 .02.313c-.008.078-.055.121-.102.152-.02.02.012.063.086.121.008.004.031.02.039.059.004.008.039.008.047 0 .008-.039.031-.055.039-.059.074-.059.105-.102.082-.121-.043-.031-.09-.074-.098-.152-.012-.16.004-.266.016-.313a.6.6 0 0 1 .117-.258c.063-.078.086-.223-.008-.32-.059-.063-.141-.148-.16-.215 0-.016-.008-.02-.016-.02s-.012.004-.012.02zm0 0\"/></g><path d=\"M6.699 13.711h.234a.07.07 0 1 1 0 .141h-.234a.07.07 0 0 1-.07-.07c0-.043.031-.07.074-.07zm0 0\"/></g><path d=\"M6.934 13.719h-.234v-.02h.234zm.078.063h-.02v-.02l-.004-.004v-.008l-.004-.004v-.004H6.98v-.004h-.004v-.004h-.008v-.004h-.004v-.004h-.004l-.004-.004h-.012v-.004h-.012v-.02h.02l.004.004h.008v.004h.008l.004.004h.004v.004h.004v.004l.008.008v.004l.008.004.004.008v.004l.004.008v.008l.004.004zm-.02 0h.02zm-.059.078v-.02h.016l.004-.004h.004l.008-.008h.008v-.004l.004-.004v-.004l.004-.004.004-.008v-.004l.004-.004v-.016h.02v.023l-.004.004v.008H7v.004l-.004.008h-.004v.004h-.004v.008H6.98l-.004.004v.004h-.008l-.004.004h-.004l-.004.004h-.008l-.004.004H6.93zm-.23-.02h.23v.02h-.234v-.02zm-.082-.059h.02v.02l.004.004v.004h.004v.004h.004v.004h.004v.004h.004v.004h.004l.008.004h.004l.012.012h.012v.02h-.023v-.004h-.008l-.004-.004H6.66l-.008-.008-.008-.004-.008-.016-.008-.008v-.004l-.004-.004v-.008l-.004-.004zm.02 0h-.02zm.063-.082v.02H6.68v.004h-.004l-.004.004h-.008v.004H6.66v.004l-.012.012v.004l-.004.008v.008h-.004v.012h-.02v-.023l.004-.004v-.004h.004v-.008h.004v-.004l.004-.004v-.004h.004l.004-.004v-.004h.008v-.004h.004v-.004h.008l.008-.004h.004l.004-.004h.008l.004-.004h.016zm0 0\" class=\"sr-B\"/><path d=\"M7.141 11.582l.008-.219c-.086-.043-.301 0-.391.203-.078.195-.203.367-.363.504.203.039.371-.004.477-.145.145-.199.223-.316.27-.344zm0 0\" class=\"sr-C\"/><path d=\"M7.16 11.367l-.008.219h-.02l.008-.219.012-.012zm-.008-.012l.008.004v.008zm-.387.215l-.023-.008.016-.02.008-.016.012-.02.012-.016.008-.016.012-.016.039-.039.016-.012.012-.012.012-.008.063-.031.016-.004.012-.004.016-.008h.016l.016-.004h.023l.012-.008h.043l.012.008h.012l.012.004.016.008-.008.02-.008-.008h-.008l-.012-.004h-.008l-.012-.004h-.059l-.016.004h-.012l-.016.008-.012.004-.016.004-.012.004-.016.004-.031.016-.023.016-.012.012-.016.012-.008.012-.051.051-.012.02-.008.02-.008.012zm-.367.488l-.004.02-.004-.016.012-.012.012-.008.016-.012.012-.012.016-.012.012-.012.008-.012.012-.012.012-.016.016-.012.008-.012.016-.016.008-.016.012-.012.023-.031.008-.016.012-.016.008-.016.012-.02.008-.016.012-.016.012-.02.012-.016.023-.039.012-.023.008-.02.023-.039.008-.023.012-.023.02.008-.012.023-.012.02-.012.023-.008.02-.008.023-.023.039-.008.02-.023.039-.035.047-.008.02-.023.031-.012.012-.008.016-.012.016-.012.012-.012.016-.023.023-.012.016-.012.012-.012.008-.012.016-.047.047-.016.008-.004-.02zm-.004.02h-.02l.016-.016zm.469-.156l.016.008-.012.016-.008.012-.016.012-.023.023-.012.008-.012.016-.012.008-.016.012-.012.008-.02.004-.012.008-.016.008-.012.004-.016.004-.012.008-.02.004-.016.004h-.016l-.016.004H6.59l-.02.004h-.121l-.059-.012.004-.02.039.008h.02l.016.004h.133l.016-.008h.016l.012-.004.031-.008.016-.008.012-.004.016-.004.016-.008.012-.004.016-.008.012-.008.012-.012.012-.008.043-.043.016-.012.008-.012zm.27-.34h.02l-.004.012-.004.004h-.004l-.008.004-.004.008-.016.016-.004.008-.008.004-.004.008-.008.012-.008.008-.004.008-.008.008-.008.012-.008.008-.016.023-.008.008-.008.016-.012.012-.012.016-.008.012-.012.016-.008.012-.035.047-.012.02-.016.016-.012.02-.012.016-.016-.012.023-.039.012-.016.016-.02.023-.031.012-.012.008-.016.012-.012.008-.016.012-.016.012-.012.047-.07.008-.008.004-.008.008-.012.027-.027.008-.004.004-.004.004-.008.016-.008h.004l.004-.004-.008.008zm.02 0v.008h-.004zm0 0\" class=\"sr-B\"/><path d=\"M7.305 11.613l-.238-.102-.187.402a.67.67 0 0 0-.047.391c.121-.031.223-.117.281-.23.074-.141.117-.305.188-.461zm0 0\" class=\"sr-C\"/><path d=\"M7.07 11.504l.234.102-.004.02-.238-.102-.004-.016zm-.012.004V11.5l.012.004-.016.004zm-.176.414l-.02-.012.004-.004.004-.008.004-.012v-.008l.004-.004.004-.012.008-.016.004-.012.008-.012.004-.008.008-.023.008-.012.008-.008.004-.016.004-.012.008-.012.004-.016.008-.016.008-.012.008-.016.004-.016.031-.062.016-.039.008-.016.012-.016.008-.02.016.012-.008.016-.012.02-.016.031-.008.02-.008.016-.008.02-.012.012-.008.016-.004.016-.008.016-.008.012-.004.012-.008.016-.004.012-.004.016-.008.012-.004.008-.008.012-.004.012-.008.012-.004.012-.008.012-.004.008-.004.012-.008.016v.012l-.004.008-.004.004v.008l-.008.008zm-.055.375l.004.02-.012-.008v-.012l-.004-.012v-.012l-.004-.012v-.035l-.004-.008v-.074l.004-.012v-.023l.004-.016v-.012l.004-.012v-.012l.004-.012.004-.016v-.012l.008-.016v-.012l.008-.016.004-.012.004-.016.004-.012.008-.031.02.008-.008.016v.012l-.008.012-.008.023-.004.016V12l-.004.016v.016l-.008.012v.012l-.004.012v.012l-.004.016v.008l-.004.012v.039l-.004.008v.07l.004.012v.023l.004.012v.012l.004.012-.012-.008zm.004.02h-.008v-.008zm.273-.25l.02.012-.012.012-.004.012-.031.047-.012.012-.023.035-.012.008-.016.016-.012.008-.008.008-.023.016-.008.008-.012.008-.008.008-.012.004-.008.004-.012.004-.016.008-.008.008h-.008l-.012.004-.008.004h-.012l-.008.004h-.012l-.004-.02h.02l.008-.004h.008l.008-.008h.012l.023-.012.023-.008.008-.008.012-.008.008-.004.039-.039.016-.008.016-.016.008-.016.016-.016.023-.035.004-.012.012-.012.008-.016.004-.012zm.195-.445l.004-.016.008.012-.008.012-.004.016-.008.016-.004.016-.008.016-.004.012-.004.016-.004.012-.008.016-.004.016-.008.016-.004.012-.008.016-.008.012-.004.023-.008.023-.008.016-.008.031-.008.016-.004.016-.008.012-.004.016-.004.012-.023.047-.008.012-.004.012-.012.012-.004.016-.02-.012.008-.012.008-.016.004-.012.008-.012.008-.016.004-.012.008-.012.004-.016.004-.012.008-.016.016-.047.008-.012.004-.016v-.016l.008-.016.008-.012.008-.031.008-.012.004-.016.008-.016.004-.016.008-.012.008-.016.004-.02.004-.012.008-.016.004-.016.016-.031.004.016zm.004-.016l.012.004-.004.008zm0 0\" class=\"sr-B\"/><path d=\"M7.371 11.613l-.254-.043-.086.441c-.02.148 0 .281.051.387.09-.043.18-.137.215-.293.043-.156.047-.324.074-.492zm0 0\" class=\"sr-C\"/><path d=\"M7.121 11.563l.25.043v.02l-.254-.043-.008-.012zm-.012.008v-.008l.012.004-.012.008zm-.066.441h-.02L7.027 12v-.02l.004-.012v-.012l.004-.012v-.008l.004-.012v-.016l.004-.008v-.012l.004-.012v-.012l.004-.012.004-.016v-.012l.004-.016v-.012l.004-.016v-.016l.008-.02.004-.016v-.016l.004-.02.012-.035.004-.016.016-.078.02.004-.004.023-.012.059-.004.016-.004.02-.004.016-.004.02-.004.012v.02l-.008.016-.004.016v.016l-.004.012v.012l-.008.031v.012l-.008.023v.008l-.004.012v.016l-.004.008v.023l-.004.012v.008l-.004.008v.023zm.039.379l.012.016-.016-.004-.004-.008-.008-.012-.004-.008v-.012l-.004-.008-.012-.035v-.012l-.004-.012v-.012l-.008-.012v-.012l-.004-.012v-.012l-.004-.012v-.055l-.004-.016v-.105l.004-.016v-.027h.02v.059l-.004.016v.102l.004.012v.023l.004.012v.012l.004.016v.012l.008.012v.008l.004.012v.016l.004.008v.012l.008.012.004.012.004.008.004.012.008.008.004.012-.016-.004zm.012.016l-.012.008-.004-.012zm.199-.301l.02.004-.004.012-.004.016v.016l-.008.012-.004.016-.004.012-.016.023-.004.012-.008.012-.012.023-.008.008-.008.012-.008.008-.008.012-.039.039-.008.012-.008.004-.016.016-.008.004-.016.016-.012.004-.008.008-.016.008-.012-.016.008-.004.008-.008h.008l.008-.008.008-.004.008-.008.008-.004.008-.008.008-.004.031-.031.012-.008.004-.008.016-.016.008-.012.008-.023.008-.012.004-.012.008-.012.008-.008.008-.012.012-.035.008-.016.004-.016.004-.012.004-.016zm.078-.5v.02l.012-.012v.016l-.004.016v.016l-.004.016v.016l-.004.016v.016l-.004.016v.016l-.004.016v.016l-.004.016v.035l-.004.016v.016l-.004.016v.016l-.004.016v.016l-.004.016v.02l-.004.012v.016l-.008.016-.004.016v.012l-.008.031v.012l-.008.031-.02-.004.008-.031v-.016l.004-.016v-.012l.004-.016V12l.004-.016v-.016l.004-.016v-.027l.004-.02v-.012l.004-.016v-.02l.004-.016v-.016l.004-.016v-.031l.008-.016v-.016l.004-.016v-.02l.004-.012v-.016l.004-.016v-.02l.004-.02v-.012l.004-.016.012-.008zm-.008.004v-.008h.012l-.008.012zm.012.012v-.02zm0 0\" class=\"sr-B\"/><path d=\"M7.406 11.27h.152c.09.039.18.242.074.438a1.36 1.36 0 0 0-.187.586c-.148-.137-.219-.297-.164-.469.066-.23.133-.504.125-.559zm0 0\" class=\"sr-C\"/><path d=\"M7.559 11.281h-.152v-.02h.156zm0-.02h.004zm.082.449l-.016-.012.008-.02.016-.031.008-.02.004-.016.004-.02v-.016l.008-.02v-.078l-.004-.02v-.012l-.008-.016-.012-.047-.008-.012-.004-.012-.008-.012-.004-.012-.008-.012-.004-.008-.031-.031-.012-.004-.012-.012.008-.02.008.008.012.004.012.008.023.023.016.023.004.012.008.012.004.012.008.016.004.012.008.016.004.012.004.016v.016l.004.02v.016l.004.016v.07l-.004.02v.02l-.008.016-.004.02-.023.059-.012.02zm-.199.59l.008-.016-.016.008v-.016l.004-.02v-.047l.008-.02v-.016l.004-.016.004-.02.004-.016v-.02l.004-.016.004-.02.004-.016.004-.02.004-.016.008-.02.004-.016.016-.039.008-.016.008-.023.023-.059.012-.02.016-.039.012-.02.012-.027.012-.02.012-.023.02.012-.016.02-.012.023-.023.039-.012.023-.008.023-.008.02-.012.02-.008.016-.016.039-.004.02-.008.016-.016.039-.004.016-.004.02-.008.016-.004.016-.004.02-.004.016-.004.02v.012l-.008.016v.023l-.004.012v.016l-.004.016v.02l-.004.016v.035l-.02.004zm.012-.008v.02l-.016-.012zm-.184-.473l.02.008-.004.02-.004.016v.016l-.004.012v.016l-.004.02v.059l.008.031v.016l.004.012.008.016.008.031.016.023.008.016.008.012.012.016.008.016.016.023.012.016.008.012.023.023.012.016.016.012.008.016-.012.012-.031-.023-.012-.016-.012-.012-.012-.016-.012-.012-.008-.016-.016-.012-.023-.047-.008-.012-.016-.031-.008-.012-.004-.02-.008-.012-.008-.031-.008-.012V12l-.004-.016v-.016l-.004-.016v-.051l.004-.016v-.016l.008-.016.008-.02.004-.016zm.141-.559v.02l.008-.012v.035l-.004.008v.023l-.004.016-.004.012v.016l-.008.016v.016l-.004.023-.004.016-.008.039v.02l-.008.02-.004.02-.008.02-.004.023-.004.02-.004.023-.008.02-.004.023-.008.02-.008.023-.004.023-.008.023-.004.023-.004.02-.008.023-.02-.008.008-.02.004-.02.012-.023.004-.02.016-.047.004-.02.008-.027.008-.02.004-.023.008-.02.008-.039.008-.047.008-.039.004-.016.004-.02.008-.031v-.016l.008-.016v-.016l.004-.016v-.012l.004-.012v-.039l.008-.012zm-.012.012v-.012h.008l-.012.008zm.008 0v-.012zm-.012 0v-.012h.008l-.008.008zm0 0\" class=\"sr-B\"/><path d=\"M7.477 11.164l-.242-.086-.168.41c-.043.145-.051.281-.02.391a.43.43 0 0 0 .281-.23c.066-.148.09-.328.148-.484zm0 0\" class=\"sr-C\"/><path d=\"M7.238 11.066l.242.086-.008.023-.242-.09-.004-.012zm-.012.008l.004-.008h.008l-.016.008zm-.148.418l-.02-.004v-.008l.004-.008v-.008l.004-.008v-.008l.008-.012.004-.008v-.012l.004-.012.008-.008.016-.047.008-.012.008-.023.004-.016.008-.012.004-.012.016-.031.004-.016.016-.031.008-.02.008-.016.004-.02.008-.016.012-.02.008-.016.004-.023.02.012-.016.039-.008.016-.016.039-.016.031-.004.016-.008.016-.012.016-.004.016-.008.016-.004.016-.008.012-.004.012v.02l-.008.012-.004.012-.008.012v.012l-.004.012-.004.008-.008.023v.008l-.008.012-.004.008v.008l-.008.008v.008l-.004.004v.008zm-.035.383l.004.02-.012-.008-.004-.012v-.012l-.004-.012v-.008l-.004-.012v-.012l-.004-.016v-.145l.004-.016v-.023l.004-.012v-.016l.004-.012v-.012l.008-.012.004-.016v-.012l.008-.023.004-.016.02.008-.004.012-.004.016-.008.023v.016l-.004.012v.016l-.008.023v.012l-.004.012v.02l-.004.016v.129l.004.012v.023l.004.008.004.012v.008l.004.012-.012-.008zm.004.02h-.008v-.008l.008.004zm.273-.254l.016.012-.008.012-.012.023-.008.012-.008.016-.008.012-.008.008-.016.023-.02.02-.012.008-.031.031-.012.004-.008.012-.012.008-.012.004-.008.008-.008.004-.012.008h-.008l-.012.008-.008.004-.012.004-.008.004h-.012l-.012.004-.008.004h-.008l-.008-.016.008-.004h.012l.008-.004.012-.004h.008l.012-.008.023-.012.012-.004.016-.016.012-.004.012-.008.008-.008.012-.004.039-.039.008-.012.008-.008.012-.008.008-.012.008-.008.016-.023.004-.012.008-.012.004-.012.008-.016zm.152-.469l.008-.02.004.012-.004.02-.008.016-.004.016-.004.012-.004.016-.004.023-.004.012-.004.016-.008.016v.016l-.016.063v.02l-.008.012-.012.047v.016l-.008.016-.012.047-.004.012-.008.016-.008.031-.008.016-.004.012-.008.016-.004.012-.02-.012.008-.008.008-.016.004-.012.008-.012.004-.016.008-.016.012-.047.004-.012.004-.02.004-.012v-.016l.008-.016.004-.016.004-.02.008-.031.004-.012.008-.016.012-.047.004-.02.004-.012.004-.016.004-.02.008-.016.004-.012.004-.016.008-.016.004-.016.008.012zm.008-.02l.008.004v.008zm-.004.012l-.004.008zm.004-.012l.008.004v.008zm0 0\" class=\"sr-B\"/><path d=\"M7.313 10.992l-.051-.328c-.059-.012-.133.117-.203.191-.02.02-.039.035-.051.055-.031.051-.055.105-.066.16-.043.203-.129.395-.262.555.203-.004.359-.078.438-.242.098-.219.152-.352.195-.391zm0 0\" class=\"sr-C\"/><path d=\"M7.27 10.664l.051.328h-.02l-.051-.324.016-.012.008.008zm-.008-.008h.008v.004l-.004-.008zm-.195.207l-.016-.016.027-.027.004-.008.016-.016.004-.012.004-.008.008-.008.004-.008.008-.008.008-.012.008-.016.008-.004.004-.008.012-.012.012-.008.004-.008.008-.004.004-.004.016-.008h.008l.008-.008h.004l.008-.004h.023l-.004.02h-.02l-.008.004-.008.008-.008.004-.012.012v.008l-.008.004-.027.027-.008.012-.008.008-.004.008-.008.008-.004.008-.008.008-.008.012-.004.008-.047.047-.004.008zm-.047.051L7 10.902v-.004h.008l.004-.004v-.004h.004v-.004h.004v-.004h.004v-.004h.004v-.004l.004-.004h.004v-.004l.004-.004h.004v-.004h.004v-.004h.004v-.004l.02.012h-.004l-.004.004v.004h-.004v.004h-.004l-.004.004v.004h-.004l-.004.004v.004h-.004v.004h-.004v.004h-.004v.004h-.004v.004l-.004.004v.004zm-.066.156l-.02-.004v-.012l.004-.008v-.008l.004-.004v-.016l.004-.008v-.004L6.949 11v-.008h.004v-.008l.004-.004v-.004l.004-.004v-.004l.004-.008v-.004l.004-.004v-.004l.008-.004v-.004h.004v-.008l.004-.004v-.004l.008-.004v-.008L7 10.906l.016.012-.004.008v.004l-.004.004-.008.004v.008l-.008.008v.004l-.004.008v.004l-.008.008v.004l-.004.008v.004l-.004.004V11l-.004.008v.004l-.004.008v.008l-.004.008v.004l-.004.004v.012l-.004.004v.016zm-.27.539v.02l-.004-.016.008-.016.012-.016.008-.012.012-.016.008-.012.012-.016.008-.012.012-.016.008-.012.012-.016.008-.016.008-.012.047-.094.016-.039.008-.016.004-.02.008-.016.008-.023.004-.02.016-.039.004-.023.008-.02.008-.027.004-.027.004-.023.02.004-.004.027-.008.02-.008.023-.004.023-.012.023-.008.02-.004.023-.031.078-.008.016-.008.023-.016.031-.008.02-.012.016-.008.016-.004.016-.012.016-.016.031-.008.012-.023.031-.012.012-.008.016-.012.016-.008.012-.012.016-.008.016-.012.012-.008-.016zm0 .02h-.02l.016-.016.008.016zm.426-.254l.02.008-.008.012-.008.02-.008.016-.008.012-.012.016-.008.012-.012.012-.008.012-.023.023-.023.016-.016.008-.012.008-.016.008-.012.008-.016.008-.012.008-.016.004-.016.008-.031.008-.02.004-.016.004-.02.004-.016.004h-.02l-.016.004h-.02l-.016.004h-.039v-.02h.055l.02-.004h.016l.016-.004.02-.004h.016l.02-.008.016-.004.012-.004.016-.004.016-.008.016-.004.012-.008.012-.004.016-.008.035-.023.016-.008.008-.012.012-.012.012-.008.02-.02.008-.012.008-.016.012-.012.008-.012.008-.016zm.195-.387h.02v.008L7.32 11v.008l-.008.004-.012.012-.004.008-.004.004-.004.008v.008l-.008.012-.004.008-.008.012-.012.035-.023.035-.004.02-.008.016-.008.012-.004.016-.008.02-.008.016-.008.02-.008.016-.008.02-.012.02-.023.059-.02-.008.012-.02.008-.023.016-.039.012-.02.008-.016.008-.02.023-.047.008-.02.004-.012.008-.016.016-.023.008-.016.004-.012.008-.008.008-.023.004-.008.008-.008.004-.012.004-.004.016-.031.008-.008.008-.004.004-.004-.004.008zm.02 0v.008zm0 0\" class=\"sr-B\"/><g class=\"sr-D sr-E sr-F\"><path d=\"M9.848 11.691c.059.004.137.039.367.238.102.203.199.41.34.59l.121.063a1.65 1.65 0 0 0 .34-.012c.09-.078.227-.023.18.066.035.031-.043.156-.105.102-.059-.047-.262-.004-.328-.027.027.063.207.102.336.109.117.004.109.121.059.211-.051.035-.008-.008-.027.016-.051.082-.164.07-.168-.008s-.273-.18-.316-.238c.051.117.164.23.223.344.059.063.098.074.02.203-.09-.016-.094-.035-.148.016-.117-.012-.137-.051-.117-.145.02-.102-.066-.281-.094-.332s-.031-.098-.055-.125c-.043-.051-.254-.156-.305-.129-.102.055-.176.02-.188-.074.035-.023.008-.16.078-.164.055-.004.086.012.141.055.078.066.117.102.148.094.059-.016-.117-.102-.277-.313-.219-.289-.238-.441-.227-.539zm0 0\"/><use xlink:href=\"#C\" x=\"3.254\"/><path d=\"M11.184 12.691c.078-.047.125-.047.16-.012.012.02.035.012.023-.02-.055-.125-.141-.141-.215-.086l-.055.055c.012.02.074.047.086.063zm-1.148-.113c-.086-.059-.168-.07-.211-.039-.027.02-.051.004-.027-.023.086-.125.191-.133.27-.063.023.02.039.039.055.063-.023.031-.086.063-.086.059zm.672.711c-.004-.004.02-.109.051-.141.027.02.059.039.086.07.086.09.082.219-.051.332-.031.031-.047 0-.031-.031.02-.055-.008-.129-.063-.23zm.328-.27c.078.031.105.074.102.129 0 .031.02.039.031.004.098-.223-.004-.266-.148-.258a.31.31 0 0 0 .016.125zm0 0\"/></g><g class=\"sr-B\"><path d=\"M10.406 12.426l-.02.012h.004v.035h-.004v.008h-.004v.004h-.004l-.004.008-.008.004v.004h-.008l-.004.008h-.004l.012.02h.004l.008-.004h.004l.008-.008.004-.008.008-.008v-.004h.004v-.004l.004-.004v-.004h.004v-.004l.004-.004v-.035l-.004-.008v-.004zm-.129.016l.016.02.016-.016h.008l.004-.004.004-.008.008-.008.008-.004h.016l.004-.004h.012v.004h.004l.004.004v.004h.004v.008l.004.004.02-.016v-.004l-.004-.008-.012-.012h-.008l-.004-.004h-.008v-.004h-.016l-.004.004h-.008l-.004.004h-.004l-.004.004h-.004l-.004.004h-.004l-.004.008h-.004l-.023.023zm0 0\"/><path d=\"M10.34 12.352l-.02.012v.008h.004v.016l-.004.004v.004l-.004.004v.004l-.004.004-.004.008-.008.004h-.004l-.004.004h-.004l-.008.008h-.004l.012.02h.004l.008-.004.004-.004h.004l.008-.008.004-.008v-.004h.004l.004-.004v-.004h.004v-.012h.008v-.043h-.008v-.004zm-.129.016l.012.02.004-.004h.004l.004-.008.008-.004.004-.004h.004l.016-.016.008-.004h.004v-.004h.016l.012.012v.004l.008.004.02-.012-.004-.004v-.004h-.008v-.008h-.004l-.008-.008h-.004l-.004-.004h-.004v-.004h-.027l-.004.004h-.004v.004h-.004l-.008.008h-.004l-.004.004h-.004l-.004.008h-.004l-.008.004v.004l-.004.004-.008.004-.004.004zm0 0\"/><path d=\"M10.266 12.258l-.02.012.004.004v.012h.004v.02l-.004.004v.008h-.004v.008h-.004l-.004.004v.004h-.004l-.004.008-.004.004-.008.004-.004.004h-.004l-.004.004.012.02.012-.012.008-.004.004-.004v-.004l.004-.004v-.004l.008-.004v-.004l.008-.004v-.008l.004-.008v-.004h.004v-.012h.004v-.02l-.004-.008v-.008l-.004-.004zm-.141.02l.016.02.012-.012.008-.004.004-.004v-.004l.016-.008.008-.008.004-.008h.004l.008-.008h.004l.004-.004h.016l.008.008.004.008v.004h.004v.008l.023-.012v-.008l-.008-.008v-.004l-.008-.004-.004-.004v-.004h-.008l-.004-.004h-.004l-.004-.004h-.023l-.004.004h-.004l-.004.004-.008.004h-.004l-.008.008h-.008l-.004.008-.008.004-.012.012-.008.004-.004.008-.004.004zm0 0\"/><path d=\"M10.191 12.152l-.02.012v.012l.004.004v.035l-.004.004v.004l-.008.004v.004l-.004.004-.004.008v.004l-.008.004-.004.004h-.004l-.004.008-.008.008v.004l.012.016.004-.004v-.004l.008-.004.004-.008.008-.004v-.004l.012-.012v-.004l.004-.008v-.004l.008-.004.004-.004v-.004l.004-.004v-.004l.004-.008v-.043l-.004-.004v-.004zm-.152.027l.02.016.004-.004.004-.008.008-.004.012-.012v-.004l.008-.004.016-.016h.004l.004-.004h.004l.004-.004h.008v-.004h.012v.004l.008.004.008.008v.004l.004.004v.004l.027-.008-.004-.008-.004-.004v-.004l-.016-.016-.008-.004-.004-.004h-.012l-.004-.004h-.016l-.008.004h-.004l-.004.004h-.004l-.004.008-.008.004-.004.004-.008.004-.004.004h-.004l-.004.008-.008.004-.004.004-.004.008-.008.008-.004.008-.008.004zm0 0\"/><path d=\"M10.105 12.051l-.023.012v.004l.004.004.004.008v.043l-.004.004v.004l-.008.008v.004l-.012.012v.004l-.008.004-.016.016-.008.004.016.02.008-.004.004-.008.004-.004.008-.004.016-.016v-.004l.008-.008v-.004l.008-.004v-.008h.004v-.008l.004-.004v-.004l.004-.004v-.055l-.004-.004v-.004l-.004-.004v-.004zm-.152.027l.02.02.008-.016.035-.035h.004l.004-.008.004-.004h.004v-.004h.027l.004.004v.004h.004v.008l.008.004.004.004v.004l.023-.012-.004-.004-.004-.008-.004-.004-.008-.004v-.004l-.008-.004h-.004l-.004-.004h-.004l-.004-.004h-.031l-.008.008h-.004l-.004.004h-.008l-.012.012h-.004l-.004.008-.008.004-.004.004-.004.008-.008.008-.008.004-.004.008zm0 0\"/></g><g class=\"sr-C\"><g class=\"sr-E sr-F\"><path d=\"M8.832 11.613l.191-.109c.082.059.137.27 0 .445-.168.219-.238.371-.281.547-.121-.156-.164-.324-.086-.488.105-.219.172-.34.176-.398zm0 0\"/><path d=\"M8.68 11.461l.188-.109c.082.059.25.266.113.441-.172.215-.348.379-.387.555-.125-.16-.18-.324-.102-.488.109-.223.188-.344.188-.402zm0 0\"/><path d=\"M9.098 11.383l.191-.105c.078.059.141.27.004.441a1.3 1.3 0 0 0-.281.551c-.125-.16-.168-.324-.086-.488l.176-.395zm0 0\"/></g><path d=\"M9.977 9.379l.035 1.496c.012.164.082.273.16.34.07-.102.113-.23.121-.387.008-.082-.008-1.176-.016-1.398-.129-.34-.223-.359-.301-.051zm0 0\"/></g><path d=\"M10.008 10.875h.02l-.004-.02v-.051l-.004-.035v-.078l-.004-.047v-.102l-.004-.055v-.055l-.004-.059v-.062L10 10.254v-.125l-.004-.059v-.125l-.004-.059V9.77l-.004-.055v-.148l-.004-.039v-.148h-.02v.234l.004.051v.164l.004.059v.121l.004.063v.059l.004.066v.117l.004.063v.059l.004.055v.109l.004.047v.047l.004.039v.074l.004.027v.043zm.172.34l-.016-.008h.012l-.004-.008-.012-.008-.008-.008-.008-.004-.004-.008-.016-.016-.008-.012-.016-.016-.004-.008-.016-.016-.008-.023-.008-.008-.008-.023-.004-.008-.008-.012-.004-.012-.004-.008v-.016l-.004-.012v-.012l-.008-.016v-.012l-.004-.016v-.016l-.004-.016v-.027H10v.043l.004.016v.016l.008.012v.016l.004.016.004.012.004.016.012.035.016.023.008.023.004.008.008.012.004.008.008.012.023.023.008.012.016.016.004.008.008.004.004.008.008.008.008.004h.016zm-.016.004l.012.008.004-.008zm.141-.391h-.02v.016l-.004.016v.027l-.004.012v.012l-.004.016v.012l-.004.012v.031l-.008.008v.016l-.004.012-.008.012-.016.047-.004.016-.004.008-.008.023-.008.008-.004.012-.004.008-.008.012-.004.012-.004.008-.008.008-.004.008-.008.008.016.012.004-.012.008-.008.008-.012.004-.008.008-.012.008-.023.016-.023.008-.023v-.012l.008-.012.008-.008.004-.012.004-.016.004-.012v-.012l.004-.016.004-.012v-.012l.008-.012v-.012l.004-.016.004-.012v-.012l.004-.016v-.02l.004-.016zm-.02-1.402l-.016.008v.16l.004.043v.203l.004.055v.23l.004.063v.379l.004.043v.219h.02v-.418l-.004-.051v-.293l-.004-.055v-.23l-.004-.055v-.176l-.004-.039v-.086zm0 0zm-.32-.047h.02l.008-.023.008-.027.008-.02.012-.023.008-.02.004-.023.008-.012.008-.016.008-.012.027-.027h.008l.008-.004h.016l.008.004.016.016.012.008.008.012.012.012.012.016.008.016.023.039.008.023.023.055.016.027.012.035.02-.008-.016-.031-.012-.031-.016-.023-.012-.031-.008-.023-.023-.039-.008-.02-.023-.031-.043-.043-.023-.008h-.023l-.008.004-.012.008-.02.02-.016.023-.016.031-.012.02-.008.023-.008.02-.023.082zm0 0zm0 0\" class=\"sr-B\"/><path d=\"M10.727 9.098l.051 1.59a4.32 4.32 0 0 1-.27 1.148c-.246-.105-.301-.676-.25-1.23s-.012-1.039-.047-1.137c0-.125.02-.258.02-.387l.5.016zm0 0\" class=\"sr-C\"/><path d=\"M10.785 10.688l-.047-1.59h-.02l.051 1.59h.02zm-.02 0zm-.254 1.141l-.004.016.012-.004.008-.02.012-.02.012-.023.035-.094.012-.035.012-.039.012-.043.012-.039.023-.086.016-.047.008-.047.012-.047.008-.043.023-.094.008-.043.012-.047.008-.043.008-.039.008-.043.004-.043.008-.035.004-.031.004-.035v-.027l.008-.027v-.055h-.02v.082l-.008.063-.016.07-.004.039-.008.039-.008.047-.012.043-.008.043-.008.047-.008.043-.008.047-.035.141-.016.043-.008.043-.023.086-.012.039-.016.039-.008.035-.016.031-.012.027-.008.031-.012.023-.008.02-.012.02.012-.008zm-.004.016l.008.004.004-.008zm-.242-1.238h-.02l-.008.047v.055l-.004.055v.051l-.004.051v.25l.004.047.004.051.004.047v.047l.008.047.012.043.004.039.012.039.008.043.012.039.012.035.016.031.012.031.016.031.02.027.012.027.02.023.023.02.039.039.02.012.027.016.004-.023-.02-.008-.02-.012-.02-.016-.02-.02-.023-.02-.012-.02-.031-.055-.016-.031-.012-.027-.012-.035-.012-.039-.008-.031-.012-.043-.008-.039-.004-.039-.008-.039-.004-.047v-.047l-.008-.047v-.051l-.008-.047v-.352l.004-.055.008-.102zm-.047-1.137h-.02v.004l.004.008.008.031.004.02.004.016.004.02.004.023v.023l.004.027.004.023.004.031v.031l.008.031v.035l.004.031v.043l.008.035v.039l.004.039v.418l-.004.051-.008.051-.004.051v.051l.023.004v-.051l.008-.102v-.055l.004-.047v-.402l-.004-.043v-.039l-.004-.039v-.035l-.004-.031-.004-.039-.004-.031v-.027l-.008-.031-.004-.023v-.027l-.008-.02v-.023l-.004-.02-.008-.031-.008-.023zm-.02 0v.004zm.027-.375V9.07l-.008.008v.074l-.004.012v.051l-.004.012v.039l-.004.012v.047l-.004.012v.07l-.004.016v.047h.02v-.109l.004-.008v-.051l.004-.012V9.25l.004-.012v-.031l.004-.012v-.062l.004-.012v-.043l-.008.016zm0-.023h-.008v.008l.012-.008zm.492.027h.02l-.008-.012h-.078l-.016-.004h-.254l-.016-.004h-.094l-.016-.004h-.035v.02h.082l.012.004h.16l.016.004h.145l.016.004h.078l-.008-.008zm.02 0V9.09h-.008zm-.008 0h-.008zm.012 0V9.09h-.008zm0 0\" class=\"sr-B\"/><path d=\"M11.027 9.359l-.039 1.59a4.28 4.28 0 0 1-.328 1.129c-.25-.195-.199-.996-.164-1.238.082-.48.066-1.039.043-1.129l.012-.41.473.059zm0 0\" class=\"sr-C\"/><path d=\"M11 10.949l.035-1.59-.02-.004-.035 1.59H11zm-.02 0zm-.312 1.121l-.012.02.016-.004.023-.039.012-.023.008-.027.016-.031.012-.031.016-.035.012-.035.016-.043.008-.039.016-.043.012-.043.012-.047.016-.043.016-.047.012-.043.035-.141.035-.129.012-.039.016-.078.008-.031.004-.035.008-.023.004-.027v-.023l.004-.02v-.016h-.02v.035l-.004.02-.008.055-.004.031-.008.035-.008.039-.008.035-.008.039-.008.043-.016.043-.008.043-.035.141-.016.043-.012.047-.016.043-.012.047-.016.043-.012.043-.016.043-.016.039-.016.035-.012.035-.016.035-.023.055-.012.023-.012.02-.012.012h.016zm-.012.02l.008.004.008-.008h-.016zm-.148-1.25l-.023-.004v.023l-.004.027-.004.031-.008.07v.039l-.004.039-.004.043v.039l-.004.047v.238l.004.047v.047l.004.047.008.051.008.047.004.043.008.047.012.043.008.039.012.039.016.043.031.063.02.031.039.055.023.02.012-.016-.039-.039-.02-.027-.031-.062-.016-.035-.012-.035-.035-.117-.008-.047-.008-.043-.008-.047-.004-.051v-.043l-.004-.051v-.102l-.004-.043v-.137l.004-.047v-.043l.004-.039v-.039l.004-.043.004-.031.004-.035.004-.031v-.023l.008-.023zm.039-1.133h-.02v.012l.004.012.004.016v.02l.004.016v.047l.004.027v.055l.004.035v.301l-.004.043v.043l-.008.043v.047l-.004.047v.043l-.008.043-.008.047-.008.094-.008.043-.004.047-.008.043.02.004.012-.043.004-.051.008-.043.008-.047.016-.187.004-.043v-.047l.004-.043v-.09l.004-.039v-.32l-.004-.027v-.027l-.004-.023v-.039l-.004-.02v-.016l-.004-.012v-.016.004zm-.02 0zm.023-.402v-.02l-.012.012v.07l-.004.012v.078l-.004.012v.121l-.004.012v.105h.02v-.105l.004-.016v-.113l.004-.012v-.09l.004-.016v-.047l-.008.008zm0-.02h-.008v.012l.008-.008zm.473.082v-.02l-.016-.004h-.016l-.016-.004h-.043l-.012-.008h-.02l-.012-.004h-.016l-.016-.004h-.027l-.016-.004h-.016l-.012-.004h-.012l-.016-.004h-.035l-.012-.004h-.016l-.016-.004h-.016l-.016-.004h-.027l-.016-.004h-.016l-.016-.004h-.016l-.012-.004v.02h.012l.012.004h.016l.016.004h.031l.012.004h.016l.02.004h.016l.012.004h.031l.016.004h.016l.012.008h.016l.016.004h.031l.012.004h.016l.016.004h.012l.012.004h.031l.02.004h.012l.016.004h.016zm-.004 0zm0-.02v.02l.012-.012-.008-.012zm.012.008v-.012h-.008l.008.008zm0 0\" class=\"sr-B\"/><path d=\"M11.242 9.734l-.422-.012c.043.172.012.715-.062 1.125-.066.387-.16 1.387.238 1.625.25-.527.063-1.039.188-1.5.098-.484.117-.891.059-1.238zm0 0\" class=\"sr-C\"/><path d=\"M10.824 9.734l.418.008v-.02l-.422-.008-.008.012zm0-.02h-.012v.012zm-.074 1.133l.02.004.008-.043.004-.039.016-.078.004-.043.004-.039.004-.043.004-.039.004-.047.012-.117.004-.047v-.039l.008-.039v-.039l.004-.043V9.98l.004-.035v-.09l-.004-.027v-.023l-.004-.023v-.02l-.008-.023v-.02l-.02.008v.016l.004.02v.02l.004.027v.105l.004.035v.098l-.004.035v.078l-.004.039v.039l-.004.039v.039l-.008.043-.004.039v.039l-.004.043-.008.043-.004.043-.004.039-.008.039-.004.043-.008.043-.004.039-.008.039-.004.043zm.258 1.633l-.02-.012.016-.004-.039-.023-.062-.062-.027-.035-.047-.078-.02-.047-.02-.055-.02-.047-.012-.059-.012-.051-.016-.117-.008-.062-.008-.059-.004-.059v-.062l-.004-.059v-.125l.008-.117v-.062l.008-.059.004-.055.008-.055.004-.051.008-.047.004-.051.008-.043.004-.039.008-.039h-.02l-.008.035-.004.039-.008.047-.004.047-.008.047-.008.055-.008.109-.004.063-.004.055-.004.059v.313l.004.059.008.066.008.059.008.055.008.063.016.051.031.109.039.094.027.043.023.043.027.039.035.031.031.027.035.027zm-.016 0l.008.008.008-.012h-.016zm.199-1.504l-.02-.004-.012.043-.008.043-.008.047-.004.043-.008.043-.004.047v.039l-.004.047v.508l-.004.051v.047l-.004.047-.008.051-.004.047-.012.047-.008.051-.012.047-.012.051-.016.047-.016.051-.02.047-.02.051.016.008.023-.051.02-.051.047-.152.012-.047.016-.102.004-.043.008-.051.004-.047v-.051l.004-.047v-.551l.008-.094.004-.043.023-.129.012-.043v-.004zm0 0zm.051-1.254v.02l-.012-.008.008.035.004.031.008.07.004.031v.039l.008.035v.07l.004.039v.145l-.004.043v.035l-.004.039v.039l-.008.043-.012.117-.004.043-.004.039-.008.047-.004.039-.016.086-.008.047-.008.039-.008.047-.008.043.02.004.008-.043.008-.047.008-.043.008-.039.008-.047.008-.043.004-.039.008-.047.004-.039.008-.043.004-.039.004-.043.004-.039v-.039l.004-.039v-.043l.004-.035v-.258l-.004-.039v-.035l-.004-.035-.004-.031-.008-.07-.004-.031-.008-.035-.012-.008zm.008.008v-.008h-.008zm-.008 0v-.008.012zm.008 0v-.008h-.008zm0 0\" class=\"sr-B\"/><path d=\"M9.645 9.09a45.59 45.59 0 0 0 .082 1.488c.012.16.09.273.168.332.066-.098.105-.227.109-.383l-.059-1.402c-.141-.34-.238-.348-.301-.039zm0 0\" class=\"sr-C\"/><path d=\"M9.715 10.578h.02v-.02l-.004-.02v-.027l-.004-.035v-.039l-.004-.043v-.043l-.004-.051v-.051l-.008-.051-.004-.059v-.059l-.004-.059-.004-.062-.004-.059v-.059l-.008-.066-.004-.059-.004-.066v-.059l-.004-.059V9.48l-.008-.059v-.051l-.004-.051v-.039l-.004-.043v-.039l-.004-.035V9.09h-.02v.113l.004.039v.039l.004.047v.051l.004.055.004.051v.059l.008.059.004.059v.063l.008.059.004.063v.063l.004.059.004.066.004.059v.059l.008.109v.051l.008.047v.047l.004.039v.039l.004.031v.031l.004.023v.02zm.188.344l-.016-.016.012-.004-.008-.004-.02-.02-.008-.004-.016-.016-.004-.008-.012-.008-.008-.008-.004-.012-.008-.008-.008-.012-.004-.008-.008-.008-.004-.012-.008-.008v-.012l-.008-.012-.008-.023v-.012l-.008-.012-.008-.023-.004-.016v-.02l-.008-.016v-.016l-.004-.016v-.016h-.02v.035l.004.012.004.016v.012l.012.047.012.035.008.012.004.012.008.012.004.012.004.008.008.012.004.008.012.012.004.008.008.012.016.016.004.008.012.008.008.008.004.008.008.004.031.031h.016zm-.016 0l.012.008.004-.012h-.012zm.129-.395h-.02v.055l-.004.016v.016l-.004.012v.023l-.008.012v.02l-.008.023v.016l-.004.012v.012l-.008.008-.004.016-.008.023v.012l-.004.008-.008.012-.004.008-.008.023-.008.008-.004.012-.016.016-.004.008-.008.008.016.012.008-.012.008-.008.008-.012.004-.012.008-.012.004-.008.008-.012v-.016l.008-.008.008-.023.004-.008.008-.023.004-.016.012-.035v-.016l.004-.012v-.012l.004-.016v-.012l.008-.016v-.027l.004-.012v-.031l.004-.016v-.027zm-.059-1.402l-.016.008v-.004.051l.004.031v.039l.004.043v.039l.004.047v.051l.004.051v.059l.004.055v.055l.004.063v.055l.004.059v.063l.004.055V10l.008.055v.055l.004.055v.145l.004.043v.074l.004.031v.066h.02v-.137l-.004-.039v-.086l-.004-.051v-.051L10 10.109l-.004-.059v-.055l-.004-.059v-.059l-.004-.059-.004-.055v-.062l-.004-.055V9.59l-.008-.055V9.48l-.004-.051v-.051l-.004-.047v-.086l-.004-.035V9.18l-.004-.031zm.004 0zm-.324-.039h.02v.004l.004-.027.023-.07.004-.02.016-.039.023-.035.004-.008.008-.008h.008l.008-.004h.023l.016.008.008.008.012.008.008.012.023.031.012.02.012.016.008.02.012.023.016.023.012.027.023.063.02-.008-.012-.031-.016-.031-.016-.027-.023-.047-.035-.059-.023-.031-.023-.023-.012-.008-.008-.004h-.012l-.012-.008h-.023l-.012.008-.008.008-.012.008-.008.008-.016.023-.008.016-.004.02-.012.016-.004.023-.016.047-.004.027-.008.027zm0 0zm.008 0h-.012zm-.012 0zm0 0\" class=\"sr-B\"/><path d=\"M10.387 8.145l.016 1.25c-.008.16-.055.316-.133.453-.082-.059-.156-.168-.168-.332-.012-.133-.02-.789-.023-1.121a1.16 1.16 0 0 0 .246-.191zm0 0\" class=\"sr-C\"/><path d=\"M10.391 9.395h.02V8.93l-.004-.051v-.391l-.004-.047v-.18l-.004-.043v-.074h-.02v.156l.004.047v.188l.004.051v.25l.004.047zm-.117.445l-.012.016h.016l.004-.012.016-.023.008-.008.004-.012.016-.023.004-.012.004-.016.008-.012.008-.016.004-.012.008-.016.008-.031.008-.012.016-.062v-.016l.008-.016v-.016l.004-.016v-.016l.004-.02v-.016l.004-.016v-.012l.004-.016v-.031h-.02v.051l-.004.016v.016l-.004.016v.016l-.012.047v.016l-.004.016-.008.016-.004.012-.004.016v.016l-.008.016-.004.016-.004.012v.016l-.012.012-.004.012-.008.016-.008.023-.008.012-.004.012-.016.023-.004.008-.008.012h.016zm-.012.016l.008.008.008-.008zm-.152-.34h-.02l.004.016v.016l.004.016v.016l.004.016.004.012v.016l.004.008.004.016.004.012.008.012v.012l.008.012.008.023.004.008.008.012.004.012.008.012.023.023.008.012.016.016.004.008.016.016.004.008.008.004.008.008.012.004.012-.016-.008-.008-.008-.004-.008-.008-.008-.004-.008-.008-.008-.004-.023-.023-.004-.008-.016-.016-.004-.012-.016-.016-.008-.023-.008-.008-.02-.059-.004-.016-.008-.023V9.59l-.008-.016v-.016l-.004-.016v-.012l-.004-.016zm-.02-1.109l-.016-.016-.004.008v.375l.004.043v.293l.004.039v.18l.004.031v.086l.008.02v.051h.02v-.094l-.004-.031v-.125l-.004-.039v-.238l-.004-.039v-.418l-.004-.035v-.102l-.004.008zm-.016-.016h-.004v.008l.004-.012zm.25-.195v.02l-.008-.02-.008.008-.004.008-.012.012-.008.012-.043.043-.008.004-.027.027-.008.004-.008.008-.023.012-.016.016-.008.004-.008.008-.008.004h-.008l-.016.016-.016.008-.012.004.016.016.016-.008.008-.008.016-.008.008-.008.008-.004.008-.008.016-.008.008-.008.008-.004.008-.012.008-.004.02-.02.008-.004.012-.004.027-.027.008-.004.008-.008.008-.012.008-.004.008-.008.004-.008.012-.008.004-.008.008-.004-.004-.016zm.004.016l.023-.016h-.027l.008.016zm.051-.066h.02l-.02-.008-.008.008v.004h-.004v.008h-.008v.004l-.008.004-.004.004v.004h-.008v.004h-.004v.004h-.008l-.004.004v.004h-.004v.004l.004.016v-.02l.008.02h.004v-.004h.004v-.004h.004v-.004h.004l.004-.004v-.004h.004l.004-.004.008-.004h.004v-.008h.008v-.004l.004-.004h.004V8.16h.004v-.004h.004v-.004h.004zm.02 0v-.027l-.02.02zm0 0\" class=\"sr-B\"/><path d=\"M10.086 8.387v1.086c.004.137-.035.27-.109.387a.5.5 0 0 1-.176-.34l-.039-.859c.105-.031.238-.207.328-.277zm0 0\" class=\"sr-C\"/><path d=\"M10.078 9.469h.02v-.258l.004-.031v-.676l-.004-.039v-.082h-.02v.293l.004.039v.742l-.004.008v.008zm-.094.383l-.016.016h.016l.004-.012.008-.012.004-.012.008-.008.004-.012.008-.008.008-.023.004-.008.008-.012.027-.082v-.016l.004-.012v-.012l.008-.016v-.012l.004-.016v-.016l.004-.012v-.016l.004-.016v-.027l.004-.016v-.027h-.02v.055l-.004.016v.012l-.004.016v.012l-.004.016v.016l-.004.012v.012l-.008.012v.012l-.004.012v.012l-.008.016-.008.023-.004.008-.004.012v.012l-.008.012-.004.012-.008.012v.008l-.008.012-.004.008-.008.012-.004.008-.004.012-.008.008zm-.016.016l.008.004.008-.008h-.016zm-.16-.348h-.02v.035l.008.012v.016l.004.016v.016l.004.012.004.016.012.023v.012l.008.012.004.012.008.012.008.023.008.012.004.012.008.008.008.012.004.008.008.012.004.008.008.008.004.008.008.008.012.004.008.012.004.004.012.008.012.012.012-.016-.008-.004-.023-.023-.004-.008-.008-.008-.004-.008-.012-.008-.004-.008-.016-.016-.004-.008-.008-.012-.008-.008-.004-.008-.008-.012-.008-.016-.008-.012-.004-.008-.008-.012-.004-.016-.012-.035-.004-.016-.004-.012v-.016l-.004-.016v-.016l-.004-.012v-.016zm-.047-.844l-.008-.023-.008.012v.156l.004.035v.102l.008.031v.035l.004.031v.094l.004.031v.059l.004.027v.027l.004.023v.051l.004.02v.047l.004.02v.031l.004.012v.023h.02V9.48l-.004-.016V9.43l-.004-.023v-.043l-.004-.023v-.055l-.004-.023V9.23l-.004-.027v-.062l-.004-.031v-.035l-.004-.031V8.98l-.004-.031v-.09l-.004-.031V8.66l-.012.012zm-.008-.023h-.008v.012zm.32-.266h.02l-.016-.008-.012.004-.016.016-.012.008-.008.008-.008.012-.008.008-.012.008-.008.012-.012.008-.008.012-.039.039-.008.012-.016.012-.008.012-.016.008-.008.012-.031.031-.023.016-.008.008-.012.008-.008.004-.008.008-.008.004-.012.004-.008.004.008.023.008-.004.012-.008.008-.004.023-.016.016-.004.008-.008.023-.016.031-.031.008-.012.016-.008.008-.012.016-.008.008-.012.012-.012.012-.008.008-.016.023-.016.008-.012.012-.008.008-.012.012-.008.023-.023.016-.012.008-.004.008-.008-.016-.008zm.02 0v-.02l-.016.012.016.004zm0 0\" class=\"sr-B\"/><path d=\"M10.348 8.113l.277-.414c.059.203.125 1.656.047 1.777a.76.76 0 0 1-.129.387c-.082-.062-.195-.172-.16-.336a10.71 10.71 0 0 0-.039-1.414zm0 0\" class=\"sr-C\"/><path d=\"M10.621 7.695l-.285.41.016.012.285-.41v-.008l-.02-.008zm.02.004l-.008-.02-.012.012.016.004zm.023 1.773h.02l-.004.004.012-.016.004-.023.008-.031v-.035l.004-.039.004-.051V9.23l.004-.055V8.77l-.004-.074v-.074l-.004-.082-.004-.07v-.078l-.008-.148-.004-.066-.008-.07-.008-.125-.004-.059-.008-.051-.008-.047-.004-.039-.004-.043-.008-.023-.008-.02-.02.004.008.02.004.027.004.039.008.039.004.047.004.051.008.055.004.062.004.066.008.066.004.066.004.07.004.074v.074l.008.078v.074l.004.074v.078l.004.07v.391l-.004.055-.008.086v.035l-.008.031-.008.02-.008.012v.004zm0-.004v.004zm-.113.383l-.012.016.012-.004.008-.008.004-.012.008-.012.004-.012.008-.008.004-.012.008-.012.004-.012.008-.012.008-.008.004-.016.004-.012v-.012l.008-.012.008-.023.008-.012.004-.012.004-.016v-.012l.008-.008.004-.016v-.012l.008-.016V9.57l.004-.012v-.012l.004-.016V9.5l.004-.012v-.016h-.023V9.5l-.004.016v.012l-.004.012v.016l-.004.012v.012l-.004.016-.004.012v.012l-.012.035-.004.016v.012l-.008.012-.012.035-.008.012-.004.008-.004.016-.008.008-.008.012-.004.012-.008.008-.008.016-.008.008-.004.012-.008.012h.012zm-.012.016l.008.008.008-.012zm-.148-.34l-.02-.004v.016l-.004.012v.063l.004.012.004.016v.012l.004.016.012.035.008.012.004.012.008.012.008.008.008.012.012.008.004.008.043.043.004.008.008.008.012.008.008.008.008.004.016.016.012-.016-.008-.008-.012-.004-.008-.008-.004-.008-.008-.004-.016-.016-.008-.004-.008-.008-.008-.012-.008-.004-.008-.008-.016-.023-.008-.008-.008-.012-.004-.008-.012-.012-.004-.008-.004-.012v-.012l-.008-.012-.008-.023v-.012l-.004-.012v-.062l.004-.016v-.012zm-.043-1.406v-.02l-.016.012.008.02.004.02v.031l.004.031.004.043.004.039v.039l.008.047v.051l.004.051v.059l.008.109v.059l.004.059v.059l.004.059v.172l.004.055v.27l-.004.043v.027l-.004.027v.02l-.004.023.02.004v-.02l.004-.023v-.027l.004-.035v-.078l.004-.043v-.309l-.004-.059V8.82l-.004-.059v-.059l-.004-.059-.004-.055v-.055l-.004-.055-.004-.051v-.051l-.004-.047v-.043l-.008-.039v-.039l-.004-.031-.008-.027v-.023l-.004-.02-.012.012zm0-.02h-.016v.012l.012-.012zm0 0v.02l.004-.004-.008-.016zm0 .02h.004v-.004l-.008.004zm0 0\" class=\"sr-B\"/><path d=\"M10.926 9.023l.02.461c-.004.152-.039.285-.109.383-.078-.059-.18-.168-.168-.332.039-.629-.027-1.219-.109-1.793.07-.047.18-.098.25-.148.137.766.18 1.238.121 1.43zm0 0\" class=\"sr-C\"/><path d=\"M10.938 9.48h.02v-.148l-.004-.016v-.055l-.004-.016V9.18l-.004-.02v-.035l-.004-.02v-.062l-.004-.02h-.02v.039l.004.02v.043l.004.02v.055l.004.016v.063l.004.016v.082l.004.012zm-.094.379l-.016.016h.016l.008-.012.004-.008.008-.012.004-.012.004-.008.004-.012.008-.012.004-.008.004-.012.004-.008.008-.012.004-.016.016-.047v-.012l.008-.012V9.66l.004-.012v-.016l.008-.023v-.012l.004-.016v-.027l.004-.016v-.027l.004-.016V9.48h-.02v.047l-.004.012v.023l-.004.016v.012l-.004.012v.016l-.004.008-.004.016v.012l-.008.012v.012l-.031.094-.008.012-.004.012-.004.008-.004.012-.004.008-.008.012-.004.012-.016.016zm-.016.016l.012.008.004-.008zm-.148-.34h-.023v.074l.008.016v.012l.004.012v.016l.008.012.008.023.008.012.004.012.008.012.008.023.008.008.004.012.023.023.008.012.008.008.012.008.008.012.004.008.008.004.008.008.012.008.008.004.004.008.012-.016-.008-.008-.008-.004-.004-.008-.008-.004-.016-.016-.008-.004-.008-.008-.004-.008-.008-.012-.023-.023-.004-.008-.008-.012-.004-.012-.004-.008-.008-.012-.004-.008-.004-.012-.008-.012-.008-.023-.004-.016v-.012l-.004-.012v-.016l-.004-.012zm-.117-1.785l-.012-.016-.004.012.008.051.008.055.008.051.004.055.031.219.004.055.008.055.004.059.008.109.008.055.004.055v.063l.012.164v.059l.004.059v.168l.004.063v.172l-.004.059v.063l-.004.055-.004.059h.023l.004-.059v-.059l.004-.059V9.25l.004-.059V9.02l-.004-.055v-.062l-.004-.051v-.055l-.008-.062-.004-.051-.004-.059v-.066l-.008-.051-.004-.059-.008-.055V8.34l-.008-.055-.004-.055-.016-.109-.004-.055-.016-.109-.012-.055-.004-.055-.012-.055-.008-.055v.012zm-.012-.016l-.004.004v.008zm.246-.137l.02-.008-.016-.008-.008.008-.008.004-.004.004h-.004l-.008.008-.023.012-.012.008-.008.004-.004.004-.016.008-.012.008-.023.012-.012.004-.008.008-.008.004-.012.004-.008.004-.004.004-.008.004h-.008l-.012.008-.016.008-.004.008-.008.004-.008.008-.008.004.012.016.012-.012h.008l.008-.004.004-.008.039-.02.008-.008.016-.008.012-.004.016-.008.012-.004.008-.008.031-.016.008-.008h.008l.012-.008.023-.012.012-.012.016-.008-.016-.008zm.02-.008l-.004-.016-.012.008zm.121 1.43l-.016.012.016-.004.004-.02v-.023l.008-.02.004-.023v-.02l.004-.031v-.031l.004-.031v-.102l-.004-.035v-.039l-.004-.039-.008-.086-.004-.047-.004-.051-.008-.047-.004-.051-.008-.051-.008-.059-.008-.055-.016-.117-.012-.059-.012-.062-.008-.066-.012-.066-.016-.07-.012-.07-.012-.066-.02.004.012.066.023.141.012.066.008.066.012.059.008.059.008.063.008.059.008.055.004.055.008.051.008.102.008.047.004.047v.043l.008.039v.039l.004.043v.195l-.004.027v.023l-.008.02-.004.023V9l-.008.023.023-.008zm-.016.012l.008.012.008-.016zm0 0l.012-.016-.02.008.008.004zm.012-.016l-.02-.02v.027zm0 0\" class=\"sr-B\"/><path d=\"M11.215 9.438l-.082.293c-.004.152-.098.281-.164.379-.082-.059-.152-.16-.129-.32.113-.93.074-1.547-.121-2.301.438.301.645.934.5 1.949zm0 0\" class=\"sr-C\"/><path d=\"M11.145 9.73l.078-.293-.02-.004-.078.289zm-.02-.004zm-.152.379l-.012.016h.016l.004-.012.008-.012.008-.008.031-.047.008-.008.004-.016.008-.008.004-.016.008-.008.008-.012.004-.012.008-.012.004-.012.008-.012.004-.016.008-.008.004-.016.008-.012.004-.012.004-.016.004-.012.004-.016.004-.012.004-.016v-.012l.004-.012v-.016l.004-.02v-.012h-.02v.027l-.004.016v.012l-.004.016-.004.012v.012l-.004.012v.012l-.008.016-.004.012-.008.012v.012l-.008.012-.008.016-.004.012-.008.008-.004.012-.016.023-.004.008-.023.035-.004.012-.023.023-.008.012-.004.008-.016.016h.016zm-.012.016l.008.004.008-.008h-.016zm-.113-.332h-.023v.109l.004.012v.016l.008.012v.008l.008.012.012.035.016.031.008.012.008.016.008.008.008.012.004.004.004.008.043.043.016-.016-.008-.004-.023-.023-.008-.004-.004-.008-.012-.008-.008-.008-.004-.008-.008-.008-.004-.008-.008-.008-.004-.008v-.008L10.871 10l-.004-.012-.004-.008-.004-.012-.004-.008-.008-.023v-.012l-.004-.012v-.012l-.004-.012v-.102zm-.137-2.293l.012-.02-.016.012.02.07.031.141.016.066.012.066.016.066.023.141.008.063.012.066.004.066.023.199.008.133.004.07v.07l.004.07v.293l-.004.074-.008.082-.004.074-.004.082-.008.074-.016.164-.012.086-.012.09h.023l.012-.086.008-.086.016-.164.008-.078.004-.082.004-.074.004-.078v-.074L10.902 9v-.285l-.004-.066-.004-.07-.012-.199-.008-.07-.008-.066-.008-.062-.012-.07-.008-.066-.016-.066-.012-.066-.016-.066-.012-.07-.016-.07-.02-.066-.016-.07-.02-.074-.016.016zm.012-.02l-.02-.012.004.023zm.48 1.961h.02l.023-.187.012-.09.004-.086.008-.082.004-.086v-.16l-.008-.148-.008-.074-.008-.066-.012-.07-.012-.066-.016-.062-.012-.062-.02-.059-.023-.062-.039-.109-.023-.051-.027-.051-.055-.094-.031-.039-.031-.043-.035-.043-.031-.039-.039-.031-.039-.035-.078-.062-.012.016.078.063.035.031.039.035.035.039.063.078.031.043.027.043.027.051.027.047.027.051.039.109.02.059.02.063.016.059.012.059.012.07.012.066.016.141.008.074.004.074v.242l-.012.086-.004.086-.012.09-.008.094-.012.094zm.02 0zm-.008 0h-.012zm.008 0zm0 0\" class=\"sr-B\"/><path d=\"M11.191 9.723l.406-.133c.047.402-.031.91-.141 1.582-.094.578-.043 1.031.027 1.32-.43-.059-.613-.613-.398-1.66.059-.273.117-.625.105-1.109zm0 0\" class=\"sr-C\"/><path d=\"M11.594 9.578l-.406.137.008.02.406-.133.004-.012zm.012.012v-.016l-.016.004.012.012zm-.16 1.578l.02.008.012-.062.008-.062.012-.062.023-.117.016-.117.016-.109.008-.051.016-.109.008-.051.008-.055.004-.047.004-.051.008-.047.008-.094v-.047l.004-.047V10l.004-.039v-.215l-.004-.039-.004-.043v-.039l-.008-.039-.02.008.004.039.004.035v.039l.004.039v.082l.004.039v.086l-.004.047v.047l-.004.047-.004.043-.008.094-.008.047-.008.102-.008.051-.004.051-.016.109-.008.051-.008.063-.012.055-.008.055-.008.059-.012.063-.008.055-.008.059-.008.063-.012.063zm.039 1.316v.02l.008-.012-.008-.027-.004-.027-.004-.031-.008-.031-.004-.031-.008-.031-.008-.035-.012-.105-.004-.039-.004-.035v-.043l-.004-.039-.008-.039v-.039l-.004-.043v-.266l.004-.047.008-.047.004-.051.004-.047.004-.051.008-.055.004-.051.008-.051.008-.055-.02-.004-.004.055-.008.055-.008.047-.008.055-.012.152v.047l-.008.051v.137l-.004.043v.086l.004.043v.039l.004.039v.039l.004.043.004.039.004.035.008.035v.035l.008.035.004.035.008.035.004.031.004.027.016.063.004.027.012-.016zm0 .02h.012v-.012l-.016.012zm-.387-1.672l-.023-.004-.02.102-.016.094-.023.18-.008.086-.012.082-.004.078-.004.082v.145l.004.066.004.063.008.063.008.059.012.059.012.055.016.051.039.094.039.086.023.035.027.035.055.055.031.027.031.02.035.02.035.016.039.012.043.012.039.004v-.02l-.039-.008-.039-.012-.035-.012-.031-.016-.035-.02-.027-.02-.031-.02-.055-.062-.023-.031-.023-.035-.023-.039-.02-.039-.02-.047-.016-.047-.012-.047-.012-.055-.012-.059-.008-.055-.008-.062-.004-.066v-.07l-.004-.066v-.074l.008-.078.004-.078.008-.082.008-.086.012-.086.016-.09.016-.094.023-.102zm.094-1.098l-.004-.02-.008.008v.336l-.004.043-.004.035v.039l-.004.035v.035l-.004.039-.004.031-.004.039-.004.031-.004.035-.008.063-.004.035-.004.027-.008.031-.004.031-.008.027-.004.027-.004.031-.008.027-.004.027-.008.027v.023l-.008.023.02.004.004-.023.008-.027.008-.023.012-.082.004-.031.008-.027.004-.031v-.031l.008-.031.012-.094.016-.141v-.035l.008-.039.004-.035v-.039l.004-.035v-.082l.004-.039v-.262l-.004.012zm-.004-.02l-.008.004v.004l.008-.012zm.027 1.966h-.02v.016h.016v-.004h.004zm.086-.801l-.02-.008-.008.023-.004.027v.02l-.008.023-.004.027-.008.023-.008.047-.008.055-.008.047-.004.027-.004.023-.004.027v.027l-.004.027v.051l-.008.027v.023l-.004.027v.051l-.004.023v.184h.02v-.152l.004-.023v-.055l.004-.023v-.031l.004-.023v-.027l.004-.027v-.02l.008-.027v-.027l.004-.023.004-.027v-.023l.008-.027.004-.023.008-.055v-.023l.008-.023.012-.07.008-.023.004-.027.004-.023zm.109-1.008h-.023V10l-.004.031v.066l-.004.027v.031l-.004.031v.031l-.008.031v.063l-.008.063v.031l-.008.031-.008.063-.004.027-.004.031-.008.031v.031l-.008.031-.004.035-.004.031-.004.027-.008.035-.004.027-.016.063.02.008.012-.035.008-.031.004-.031.016-.062.012-.094.008-.031.004-.031.004-.027.004-.035.004-.027.004-.031v-.035l.008-.031.004-.031v-.031l.004-.031v-.027l.008-.062v-.031l.004-.035v-.066l.004-.027v-.129l.004-.031zm-.023 0h.023v-.004h-.004v-.004h-.004v-.004h-.016v.004h-.004v.008zm0 0\" class=\"sr-B\"/><path d=\"M11.207 7.348l-.266.043.094.465c.098.488.164 1.059.09 1.684a1.9 1.9 0 0 1-.152.57c.293-.031.48-.316.453-.812.051-.578.031-1.039-.062-1.387l-.156-.566zm0 0\" class=\"sr-C\"/><path d=\"M10.945 7.398l.262-.043v-.023l-.266.047-.008.012zm-.004-.02h-.012v.012zm.082.48l.02-.004-.004-.008V7.84l-.004-.012v-.012l-.004-.012v-.012l-.004-.016v-.016l-.004-.016v-.02l-.008-.016-.008-.039v-.016l-.012-.059-.004-.023-.004-.02-.004-.016v-.02l-.008-.012-.004-.023v-.012l-.004-.016v-.012l-.008-.012v-.012l-.004-.012v-.008l-.004-.008v-.004l-.02.004v.012l.004.008v.012l.008.012v.012l.004.012.008.031v.023l.004.012.004.02v.016l.004.02.004.023.004.02.004.016.008.039v.02l.008.02.004.016.004.02v.016l.004.012v.02l.008.023v.016l.004.008v.016zm.09 1.68h.02l.004-.055.008-.059.004-.062.004-.055V9.25l.008-.059v-.051l.004-.062v-.219l-.004-.055V8.75l-.004-.051-.004-.059-.008-.102-.008-.055-.008-.102-.023-.152-.008-.047-.004-.051-.012-.047-.004-.047-.012-.051-.008-.043-.016-.094-.02.004.008.043.023.141.008.051.012.047.008.047.004.047.016.102.008.102.008.051.004.051.004.055.008.102v.051l.004.055v.055l.004.055v.23l-.004.059v.055l-.008.059-.004.055-.004.063-.008.055-.004.059zm-.141.582v-.02l.008.016.008-.016.004-.012.016-.031.008-.02.004-.012.016-.031.012-.047.008-.02.004-.016.004-.02.004-.016.008-.02.008-.039v-.02l.008-.02.004-.016.008-.039v-.02l.004-.02.004-.023v-.02l.008-.02.004-.02v-.02l.004-.023.004-.02-.02-.004v.02l-.008.02v.023l-.004.02v.02l-.004.02-.004.023-.008.02v.02l-.016.078-.004.016-.008.023-.004.016-.004.02-.004.012-.004.02-.008.016-.004.016-.004.02-.008.016-.004.016-.008.012v.02l-.008.016-.008.012-.008.016-.008.012-.004.016-.008.012.012.016zm-.008-.016l-.008.016h.02l-.012-.012zm.473-.805l-.02-.004v.176l-.008.078-.008.043-.008.035-.008.031-.008.039-.008.031-.023.063-.012.027-.031.055-.012.023-.016.023-.02.02-.02.023-.02.02-.078.063-.023.012-.023.008-.027.008-.047.016-.027.004h-.027l.004.02h.027l.055-.016.023-.008.027-.012.023-.008.023-.016.02-.012.023-.016.02-.016.039-.039.023-.02.02-.023.012-.027.016-.023.02-.023.012-.031.016-.027.008-.031.012-.035.012-.031.016-.07.004-.039.008-.035.004-.039.004-.043v-.176zm-.02-.004zm-.047-1.391l-.02.008.012.031.016.07.004.031.008.035.004.039.008.035.004.039.004.035.004.043.004.039v.039l.008.039v.043l.004.039.004.047v.086l.004.043v.191l-.004.051v.047l-.004.051v.051l-.016.203-.004.059h.02l.004-.055.004-.051.004-.055.004-.051v-.051l.004-.055v-.047l.004-.051V8.52l-.004-.043v-.043l-.008-.039v-.043l-.004-.043-.008-.039-.004-.039-.008-.035-.004-.043-.039-.176-.008-.031-.008-.035zm-.164-.57v.02l-.008-.004.008.016.012.035.008.039.004.016.008.02.008.039.016.039.004.023.016.047.004.02.004.023.008.02.004.023.008.02.004.02.008.023.008.039.008.02.012.047v.012l.004.012v.008l.02-.004v-.012l-.008-.023-.004-.016v-.023l-.008-.012-.004-.02-.004-.016-.004-.02-.008-.023-.004-.02-.004-.023-.008-.02-.004-.023-.016-.039-.012-.07-.008-.02-.004-.02-.016-.039-.004-.02-.008-.02v-.02l-.008-.016-.004-.012-.004-.016v-.012l-.008-.008-.004-.012-.008-.004zm.008.004l-.004-.008h-.004zm-.008.008v-.012zm.008-.008l-.004-.008h-.004zm0 0\" class=\"sr-B\"/><path d=\"M11.367 7.406l-.129.148c.035.027-.027.141.008.359.02.129.098.277.113.441.047.531.047 1.195-.109 1.621.289-.031.391-.297.398-.793.008-.41.008-.895-.094-1.453-.02-.129-.082-.234-.187-.32zm0 0\" class=\"sr-C\"/><path d=\"M11.246 7.563l.129-.148-.016-.012-.129.148v.016h.012zm-.016-.012l-.008.008.008.004v-.016zm.004.371h.023l-.008-.027v-.02l-.004-.02v-.156l.004-.012v-.023l.008-.012v-.02l.004-.008v-.059l-.012-.012v-.004l-.016.016v.004h.004v.008h.004v.047l-.004.008v.02l-.004.012v.023l-.004.016v.16l.004.02v.02l.008.023zm0 0zm.113.434h.02v-.039l-.004-.012-.004-.016v-.012l-.004-.02v-.016l-.008-.016-.004-.012-.008-.031-.004-.012-.004-.016-.004-.012-.004-.016-.004-.012-.008-.016V8.09l-.004-.016-.004-.012-.004-.016-.004-.012v-.012l-.008-.012-.004-.016-.004-.008-.004-.016v-.012l-.004-.012v-.012l-.004-.012v-.012h-.02v.027l.004.012v.012l.008.012v.016l.004.016.008.023v.012l.008.016.008.023.004.016.008.023.004.016.004.012.008.016.008.031.004.012.004.016v.012l.004.012.008.016v.016l.004.016v.012l.004.016zm-.098 1.629v-.02l.012.016.016-.039.023-.086.012-.047.012-.043.008-.051.012-.047.008-.047.023-.152.004-.051.008-.109.004-.051v-.055l.004-.055v-.047l.004-.059v-.219l-.004-.051v-.055l-.004-.055v-.055l-.004-.051-.008-.055-.004-.051-.004-.055-.004-.047h-.02l.008.051.004.055.008.102v.051l.004.051v.055l.004.055v.051l.004.055v.227l-.004.051v.055l-.004.055-.004.051-.004.055-.004.051-.008.051-.004.051-.008.047-.012.051-.016.094-.008.051-.016.043-.035.129-.016.039zm-.008-.012l-.008.016h.016zm.418-.789h-.02v.043l-.004.047v.039l-.004.047-.004.039v.039l-.004.035-.008.035-.004.035-.004.031-.016.063-.012.031-.008.027-.008.023-.012.027-.012.023-.012.02-.016.02-.012.02-.016.023-.016.02-.016.012-.02.012-.023.016-.039.023-.039.016-.027.004-.023.004-.027.004.004.02.055-.008.02-.008.027-.008.023-.012.02-.012.023-.008.039-.031.016-.012.023-.02.012-.02.016-.023.012-.02.012-.023.012-.02.023-.055.008-.027.012-.031.008-.031.004-.035.008-.027.008-.035.008-.039.004-.039v-.039l.004-.039v-.043l.004-.043v-.047l.004-.043zm-.094-1.457l-.02.004.012.055.008.051.004.051.008.051.008.047.008.051.008.047.004.051.004.047.004.051.008.047v.047l.008.094v.047l.004.047v.043l.004.043v.09l.004.043v.449h.02v-.539l-.004-.043v-.039l-.004-.047v-.047l-.02-.234-.004-.051-.004-.047-.008-.047-.004-.051-.031-.203-.012-.051-.008-.055zm-.02.004zm-.184-.328l.016.012h-.016l.008.012.012.008.016.016.008.012.008.004.012.008.008.012.016.016.004.012.008.012.008.008.004.008.008.008.004.012.004.008.008.008.004.008.008.012.004.008.008.023.004.008.008.023.004.016v.008l.004.012v.012l.004.012v.012l.02-.004v-.012l-.008-.023v-.012l-.004-.012v-.012l-.008-.012-.008-.023-.004-.008-.004-.012V7.59l-.008-.012-.004-.012-.008-.012-.004-.012-.008-.008-.004-.012-.023-.035-.004-.012-.078-.078-.012-.008h-.012zm.012 0l-.008-.008-.004.008zm0 0\" class=\"sr-B\"/><path d=\"M10.641 7.801l.266-.031.102.523c.02.18-.035.34-.102.457-.098-.059-.141-.187-.184-.371s-.051-.383-.078-.578zm0 0\" class=\"sr-C\"/><path d=\"M10.906 7.762l-.266.027v.02l.27-.031.008-.012-.012-.008zm.012.004v-.008h-.012l.016.008zm.078.527h.023l-.004-.012v-.016l-.004-.012v-.02l-.004-.012v-.016L11 8.195v-.012l-.004-.016v-.016l-.008-.012v-.02l-.008-.031-.004-.02v-.016l-.004-.02-.004-.016V8l-.016-.078-.004-.023-.008-.02-.004-.02-.008-.047v-.02l-.008-.027-.02.004.004.023v.02l.008.027.008.02.004.023.004.02.004.023.016.078v.02l.004.02.008.031v.023l.008.012v.016l.004.016v.016l.004.016.004.012v.012l.004.016v.023l.004.012v.023l.004.008v.02zm-.086.453l-.008.016h.012l.008-.016.016-.023.004-.008.008-.012.004-.016.004-.012.004-.016.008-.012.004-.016.004-.012.008-.031v-.016l.008-.012.004-.016.004-.012V8.52l.008-.016v-.016l.004-.016v-.016l.004-.012V8.43l.004-.02v-.121h-.023v.133l-.004.02v.027l-.004.016v.031l-.008.016-.004.016v.016l-.004.012-.004.016-.008.016-.02.059-.004.016-.008.012-.008.023-.016.023-.004.012.012-.004zm-.008.016l.008.008.004-.008zm-.172-.379h-.02l.004.02.004.016.004.02v.016l.008.016.004.012.008.031v.016l.008.016.004.012.008.012v.016l.008.012.004.016.004.012.004.008.008.012.004.012.008.008.008.016.004.012.008.008.012.008.008.012.031.031.008.012.008.004.008.008.012-.016-.008-.008-.012-.004-.008-.008-.004-.008-.008-.004-.016-.016-.008-.012-.023-.023-.008-.012-.008-.008-.004-.008-.008-.023-.008-.012-.004-.012-.004-.016-.004-.012-.008-.016-.008-.023v-.016L10.75 8.5l-.023-.094-.004-.02zm-.09-.57v-.02l-.012.008v.02l.008.023v.016l.004.02v.02l.004.016v.02l.004.016v.02l.004.02v.02l.004.02v.02l.004.016v.02l.004.016v.02l.004.016v.02l.004.023.004.016v.02l.004.016.004.02v.016l.004.02.008.031v.02l.008.02v.02l.004.012h.02l-.004-.02v-.016l-.008-.02-.004-.016v-.02l-.004-.016v-.02l-.008-.016-.004-.02v-.02l-.004-.016v-.023l-.004-.016v-.02l-.004-.016v-.035l-.004-.02v-.02l-.004-.016V8l-.004-.016v-.02l-.008-.02V7.91l-.004-.02v-.016l-.004-.02V7.84l-.008-.023v-.02l-.012.016zm0-.02h-.012l.004.008zm0 0v.02zm0 .02zm0 0\" class=\"sr-B\"/><path d=\"M9.945 8.371h.238l.008.445c-.008.152-.047.281-.109.375-.07-.059-.141-.164-.152-.324s.012-.328.016-.5zm0 0\" class=\"sr-C\"/><path d=\"M10.184 8.363h-.242v.02h.242l.008-.008zm.008.012v-.012h-.008zm-.008.441h.02V8.59l-.004-.016v-.09l-.004-.016v-.098h-.02v.156l.004.012v.113l.004.012v.156zm-.094.371l-.016.012h.02l.004-.008.008-.008.004-.008.008-.012.004-.008.008-.012v-.008l.008-.012.004-.008.004-.012v-.012l.008-.012.012-.035v-.008l.004-.012.004-.016.004-.012v-.012l.008-.023v-.016l.004-.008v-.016l.004-.016v-.008l.004-.016v-.051l.004-.016h-.02v.023l-.004.016v.027l-.004.012v.016l-.004.012v.016l-.004.012v.012l-.008.012v.012L10.152 9v.016l-.008.012v.012l-.004.012-.004.008-.004.012-.004.008-.004.016-.008.008-.012.035-.008.008-.008.023-.008.012-.008.008-.004.012h.012zm-.016.012l.012.012.004-.012zm-.133-.332h-.02v.031l.004.016v.027l.008.016v.012l.004.016.004.012.004.016.004.012.004.008.004.012.008.012v.008l.008.016.004.012.004.008.004.012.008.008.004.008.008.012.008.008.008.004.016.016.004.012.016.016.008.004.008.008.008.004.016-.012-.004-.004-.012-.004-.008-.016-.008-.004-.008-.008-.004-.008-.012-.012-.004-.008-.008-.012-.008-.008-.012-.023L10 9.078l-.004-.012-.004-.008-.008-.012-.004-.012-.004-.008v-.012l-.004-.012v-.012l-.008-.012v-.016l-.004-.012v-.027l-.004-.016v-.031zm0-.484v-.02l-.008.012v.109l-.004.023v.09l-.004.016v.059l-.004.016v.184h.02v-.238l.004-.016v-.039l.004-.02V8.5l.004-.02v-.105l-.008.008zm0-.02h-.008v.012l.012-.012zm0 0\" class=\"sr-B\"/><path d=\"M9.688 8.484l.238.012-.004.445a.74.74 0 0 1-.125.371c-.07-.062-.137-.172-.141-.332s.02-.324.031-.496zm0 0\" class=\"sr-C\"/><path d=\"M9.926 8.484l-.238-.012v.02l.238.016.008-.012zm.008.012v-.012h-.008zm-.023.445h.02v-.082l.004-.012v-.355h-.02v.406l-.004.008zm-.109.363l-.012.016h.016l.004-.012.004-.008.008-.012.004-.008.008-.012.008-.008.008-.012.004-.012.004-.008.008-.012.004-.012.004-.008.004-.016.008-.023v-.008l.008-.012.004-.012v-.016l.004-.012.004-.008v-.016l.008-.016v-.012l.004-.012v-.016l.004-.012v-.016l.004-.016v-.039h-.016v.012l-.004.016v.027l-.004.016-.004.012v.016l-.004.012v.012l-.008.012v.016l-.004.012v.012l-.012.035v.012l-.008.012-.004.012-.004.008-.004.012-.004.008-.008.023-.008.012-.004.012-.004.008-.004.012-.008.008-.004.008-.008.012-.004.004h.016zm-.012.016l.008.008.008-.012h-.016zm-.125-.34h-.02v.047l.004.012v.016l.008.023v.016l.008.012v.012l.016.047.008.012.004.012.008.012.008.016.016.016.004.012.008.008.004.008.008.012.004.008.008.004.004.008.027.027.012-.016-.004-.008-.027-.027-.008-.004-.008-.012-.004-.008-.008-.008-.008-.016-.008-.008-.004-.008-.008-.023-.008-.008-.004-.016-.004-.008-.02-.059v-.012l-.004-.012v-.012l-.004-.016v-.012l-.008-.016zm.023-.508v.02l-.012-.008v.047l-.004.016v.031l-.004.016v.066l-.004.016v.027l-.004.016v.016l-.004.016v.051l-.004.016v.047l-.004.016v.105h.02v-.148l.004-.016v-.031l.004-.016v-.035l.004-.02v-.027l.004-.016v-.031l.004-.016v-.031l.004-.02v-.031l.004-.016v-.043l-.008-.012zm.008.012v-.012h-.008zm-.008.008v-.02zm0 0\" class=\"sr-B\"/><path d=\"M10.188 8.246l.238-.016.043.441c.004.152-.02.285-.078.387-.078-.059-.156-.16-.176-.316s-.016-.328-.027-.5zm0 0\" class=\"sr-C\"/><path d=\"M10.426 8.219l-.238.02v.023l.238-.023.008-.008-.008-.008zm.008.012v-.012h-.008zm.027.445h.02v-.055l-.004-.008v-.035l-.004-.012v-.023l-.004-.012v-.043l-.004-.016v-.027l-.004-.016v-.016l-.004-.016v-.02l-.004-.016v-.02l-.004-.02v-.02l-.008-.02v-.02l-.004-.02v-.02l-.02.004v.039l.008.02v.02l.004.02v.02l.004.02v.012l.004.02v.016l.004.02v.016l.004.016v.023l.004.016v.027l.004.012v.023l.004.012v.035l.004.008zm-.066.375l-.008.016.012-.004.004-.008.004-.012.004-.008.008-.008.004-.008v-.012l.008-.012.004-.008v-.012l.008-.012v-.012l.004-.012V8.93l.008-.008v-.016l.004-.012v-.035l.004-.008v-.016l.004-.012v-.023l.004-.016v-.109h-.02v.133l-.004.016v.016l-.004.012v.012l-.004.008v.012l-.004.016-.004.012v.012l-.004.012v.008l-.008.012-.012.035-.004.008-.008.023-.008.008-.004.012-.008.016h.016zm-.008.016l.008.004.004-.008-.016.004zm-.164-.32h-.02l.004.016v.016l.004.016v.012l.008.016.02.059.008.012.004.012.008.012.004.012.008.012.008.008.004.012.008.008.004.008.008.008.008.012.004.008.008.012.008.004.008.008.008.012.008.004.016.016.008.004.012.012.012-.016-.016-.008-.004-.008-.008-.004-.004-.008-.008-.004-.027-.027-.004-.008-.008-.012-.004-.008-.004-.004-.008-.012-.004-.008-.008-.008-.008-.012-.008-.023v-.008l-.008-.012-.004-.012-.004-.008-.004-.012-.008-.016-.004-.016-.008-.023v-.016l-.004-.012-.004-.02zm-.035-.488v-.02l-.012.008v.031l.004.016v.113l.004.016v.18l.004.016v.043l.004.016v.016l.004.016v.02l.004.012v.016l.02-.004v-.016l-.004-.016v-.027l-.004-.016v-.035l-.004-.016v-.066l-.004-.016v-.121l-.004-.016v-.098l-.004-.016v-.047l-.012.012zm0-.02h-.012v.008l.012-.012zm0 0\" class=\"sr-B\"/><path d=\"M10.406 7.992l.266-.109c.043.176.102.758 0 1a.46.46 0 0 1-.207-.34c-.031-.18-.039-.363-.062-.551zm0 0\" class=\"sr-C\"/><path d=\"M10.664 7.875l-.258.105.004.02.262-.105.008-.012zm.016.004l-.004-.008-.012.004zm-.004 1l-.016.016.016-.004.012-.023.016-.055.008-.031.004-.031.008-.031.004-.031.004-.035v-.035l.004-.039v-.07l.004-.039v-.109l-.004-.039v-.035l-.004-.039-.004-.035V8.18l-.008-.035-.004-.035v-.031l-.004-.031-.004-.027-.008-.031-.008-.047-.004-.02v-.023l-.004-.02-.023.008.004.02v.016l.016.047.008.055.012.094v.035l.004.035v.031l.004.039v.035l.004.035v.074l.004.043v.105l-.004.039v.031l-.008.07-.004.031-.004.035-.008.027-.004.027-.012.027-.008.023-.008.02h.016zm-.016.016l.012.004.004-.008zm-.187-.355h-.02v.02l.008.016.004.02v.012l.008.031.008.016.004.012.004.016.008.012.004.012.008.012.004.012.008.012.004.012.012.012.004.016.008.008.008.012.008.008.004.008.008.012.02.02.008.004.031.031.012.008.008.008.008.004.012-.016-.008-.008-.008-.004-.008-.008-.008-.004-.055-.055-.008-.012-.004-.008-.023-.023-.004-.016-.008-.008-.004-.012-.008-.012-.004-.012-.004-.016-.008-.008-.004-.016-.008-.016-.004-.012-.004-.016-.004-.012v-.016l-.008-.016-.004-.016v-.016zM10.414 8l-.008-.02-.008.012v.02l.004.016v.035l.004.02v.02l.004.016v.035l.004.02v.031l.004.02v.035l.004.02v.031l.004.02v.016l.004.02v.016l.004.016v.02l.004.016v.016l.004.02v.016l.004.02v.016l.008.016v.016h.02v-.016l-.004-.02V8.48l-.004-.016v-.02l-.004-.016v-.02l-.004-.016v-.02l-.004-.012v-.02l-.004-.016v-.031l-.004-.02v-.016l-.004-.02v-.043l-.004-.016v-.035l-.004-.016v-.035l-.004-.023v-.027l-.004-.02v-.016l-.004-.023zm-.008-.02l-.008.004v.008zm0 .012L10.41 8zm0-.012l-.008.008v.004l.008-.008zm0 0\" class=\"sr-B\"/><g class=\"sr-D\"><g class=\"sr-E sr-F\"><path d=\"M10.328 14.024c-.156.125-.301-.164-.156-.551.098-.285.609-.176.324.211-.012.02-.031.012-.027-.008.02-.082-.031-.129-.109-.113-.211.043-.223.441.012.352.043-.004.008.082-.035.113zm0 0\"/><path d=\"M10.086 12.785c.02.066.102.152.16.215.09.098.066.242.004.32a.6.6 0 0 0-.117.258c-.008.047-.027.148-.016.313.008.078.055.121.102.152.02.02-.012.063-.086.121-.008.004-.031.02-.039.059-.004.008-.043.008-.047 0-.008-.039-.031-.055-.039-.059-.074-.059-.109-.102-.082-.121.043-.031.09-.074.098-.152.012-.16-.004-.266-.016-.313-.016-.074-.047-.172-.121-.258-.059-.078-.082-.223.012-.32.059-.063.141-.148.16-.215 0-.016.004-.02.012-.02s.016.004.016.02zm0 0\"/></g><path d=\"M10.188 13.711h-.234a.07.07 0 1 0 0 .141h.234a.07.07 0 0 0 .07-.07c0-.043-.035-.07-.074-.07zm0 0\"/></g><path d=\"M9.953 13.719h.234v-.02h-.234zm-.078.063h.02v-.02l.004-.004v-.008l.004-.004v-.004h.004v-.004h.004v-.004h.004v-.004h.008v-.004h.004l.004-.004h.012v-.004h.012v-.02h-.02l-.004.004h-.008v.004h-.008l-.004.004h-.004v.004h-.004v.004l-.008.004-.004.004v.004l-.004.004-.004.008v.004l-.004.008v.008l-.004.004zm.02 0h-.02zm.059.078v-.02h-.016l-.004-.004H9.93l-.008-.008h-.008v-.004l-.004-.004v-.004l-.004-.004-.004-.008v-.004l-.004-.004v-.016h-.02v.023l.004.004v.008h.004v.004l.004.008h.004v.004h.004v.008h.004l.008.004v.004h.004l.008.004h.004l.004.004h.008l.004.004h.016zm.23-.02h-.23v.02h.234v-.02zm.082-.059h-.023v.02l-.004.004v.004h-.004v.004h-.004v.004h-.004v.004h-.004v.004h-.004l-.004.004h-.004l-.012.012h-.012v.02h.023v-.004h.008l.004-.004h.004l.02-.02.004-.008.008-.008v-.004l.004-.004v-.008l.004-.004zm-.023 0h.023zm-.059-.082v.02h.023v.004h.004l.004.004h.004v.004h.004v.004l.012.012v.004l.004.008v.008h.004v.012h.023v-.023l-.004-.004v-.004h-.004v-.008h-.008v-.004l-.004-.004v-.004h-.004l-.004-.004v-.004h-.004v-.004h-.008v-.004h-.004l-.008-.004h-.004l-.004-.004h-.008l-.004-.004h-.016zm0 0\" class=\"sr-B\"/><path d=\"M9.746 11.582l-.012-.219c.09-.043.305 0 .395.203.078.195.203.367.359.504-.199.039-.367-.004-.473-.145-.145-.199-.223-.316-.273-.344zm0 0\" class=\"sr-C\"/><path d=\"M9.727 11.367l.008.219h.02l-.008-.219-.016-.012zm.004-.012l-.004.004v.008zm.391.215l.02-.008-.012-.02-.008-.016-.012-.02-.012-.016-.008-.016-.012-.016-.016-.012-.012-.012-.012-.016-.016-.012-.012-.012-.016-.008-.012-.008-.047-.023-.031-.008-.012-.008h-.016l-.016-.004H9.84l-.016-.008h-.039l-.012.008h-.012l-.023.008-.008.004.008.02.008-.008h.012l.012-.004h.008l.012-.004h.059l.016.004h.012l.012.008.016.004.012.004.031.008.016.008.012.008.016.008.008.008.031.023.008.012.039.039.008.012.016.02.008.02.008.012zm.363.488l.004.02.004-.016-.012-.012-.012-.008-.023-.023-.016-.012-.035-.035-.012-.016-.012-.012-.008-.012-.016-.016-.008-.016-.016-.012-.008-.016-.012-.016-.008-.016-.012-.016-.008-.016-.012-.02-.008-.016-.016-.016-.012-.02-.008-.016-.023-.039-.012-.023-.008-.02-.023-.039-.012-.023-.008-.023-.02.008.012.023.008.02.012.023.012.02.008.023.023.039.008.02.023.039.035.047.008.02.023.031.012.012.008.016.012.016.012.012.012.016.023.023.012.016.008.012.012.008.012.016.016.012.035.035.016.008.004-.02zm.004.02h.023l-.02-.016zm-.465-.156l-.016.008.012.016.008.012.016.012.047.047.012.008.016.012.012.008.016.004.031.016.012.004.016.004.012.008.031.008h.02l.016.004h.016l.02.004h.121l.02-.004.016-.004.02-.004-.004-.02-.02.004-.016.004h-.02l-.016.004h-.133l-.016-.008h-.016l-.031-.008-.012-.004-.016-.008-.012-.004-.016-.004-.016-.008-.012-.004-.016-.008-.012-.008-.012-.012-.012-.008-.012-.012-.012-.008-.012-.012-.008-.012-.016-.012-.008-.012zm-.27-.34h-.02l.004.012.004.004h.004l.027.027.004.008.008.004.004.008.008.012.004.008.016.016.004.012.02.02.008.012.008.008.008.016.012.012.008.016.012.012.008.016.012.012.035.047.012.02.012.016.016.02.012.016.016-.012-.012-.02-.016-.02-.012-.016-.012-.02-.023-.031-.012-.012-.008-.016-.012-.012-.012-.016-.008-.016-.012-.012-.039-.059-.012-.012-.004-.008-.008-.008-.008-.012-.004-.008-.02-.02-.008-.004-.004-.004-.004-.008-.016-.008H9.75l-.008-.004.008.008zm-.02 0v.008h.004zm0 0\" class=\"sr-B\"/><path d=\"M9.582 11.613l.234-.102.191.402c.055.141.07.277.047.391a.43.43 0 0 1-.281-.23c-.074-.141-.121-.305-.191-.461zm0 0\" class=\"sr-C\"/><path d=\"M9.813 11.504l-.234.102.008.02.234-.102.008-.016-.012-.004zm.016.004V11.5l-.012.004zm.172.414l.023-.012-.004-.004-.004-.008-.004-.012v-.008l-.004-.004-.008-.012-.008-.016-.008-.023-.004-.008-.008-.012-.008-.023-.008-.008-.004-.016-.004-.012-.008-.012-.004-.016-.008-.016-.008-.012-.008-.016-.004-.016-.031-.062-.016-.039-.008-.016-.012-.016-.008-.02-.016.012.008.016.012.02.016.031.008.02.008.016.008.02.008.012.016.031.004.016.016.023.008.016.004.012.004.016.008.012.004.008.008.012.004.012.008.012.008.023.008.008.004.012.008.016v.012l.004.008.004.004v.008l.008.008zm.055.375l-.004.02.012-.008v-.012l.004-.012v-.012l.004-.012v-.035l.004-.008v-.074l-.004-.012v-.023l-.004-.016v-.012l-.004-.012v-.012l-.004-.012-.004-.016v-.012l-.004-.016v-.012l-.008-.016-.004-.012-.004-.016-.004-.012-.008-.031-.02.008.008.016v.012l.008.012.008.023.004.016V12l.004.016v.016l.008.012v.012l.004.012v.012l.004.016v.008l.004.012v.039l.004.008v.07l-.004.012v.023l-.004.012v.012l-.004.012.012-.008zm-.004.02h.012v-.008zm-.27-.25l-.02.012.012.012.004.012.039.059.012.012.016.023.012.008.016.016.012.008.008.008.012.008.008.008.023.016.008.008.012.004.023.012.012.004.008.008h.008l.012.004.008.004h.012l.008.004h.008l.004-.02h-.016l-.008-.004h-.008l-.008-.008h-.012l-.008-.004-.012-.004-.016-.008-.012-.004-.008-.008-.012-.008-.008-.004-.016-.016-.012-.008-.016-.016-.012-.008-.016-.016-.008-.016-.016-.016-.008-.012-.012-.012-.008-.012-.004-.012-.008-.012-.008-.016-.004-.012zm-.195-.445l-.008-.016-.004.012.004.012.016.031.004.016.008.016.004.012.004.016.004.012.008.016.004.016.008.016.004.012.004.016.008.012.016.047.008.016.008.031.008.016.004.016.008.012.004.016.004.012.008.016.004.016.012.016.004.012.008.012.012.012.004.016.02-.012-.008-.012-.008-.016-.004-.012-.008-.012L9.746 12l-.008-.012-.004-.012-.008-.016-.004-.012-.004-.016-.016-.047-.008-.012-.004-.016v-.016l-.008-.016-.008-.012-.004-.016-.008-.016-.004-.012-.008-.016-.004-.016-.008-.016-.004-.012-.008-.016-.004-.02-.004-.012-.008-.016-.004-.016-.016-.031-.004.016zm-.008-.016l-.008.004.004.008zm0 0\" class=\"sr-B\"/><path d=\"M9.516 11.613l.254-.043.086.441c.02.148 0 .281-.055.387-.086-.043-.176-.137-.211-.293-.043-.156-.047-.324-.074-.492zm0 0\" class=\"sr-C\"/><path d=\"M9.766 11.563l-.25.043v.02l.254-.043.008-.012zm.012.008v-.008l-.012.004.012.008zm.066.441h.02L9.859 12v-.02l-.004-.012v-.012l-.004-.012v-.008l-.004-.012v-.016l-.004-.008v-.012l-.004-.012v-.012l-.004-.012-.004-.016v-.012l-.008-.016v-.012l-.004-.016v-.016l-.004-.02-.004-.016v-.016l-.008-.02-.004-.012-.004-.023-.004-.016-.016-.078-.02.004.004.023.012.059.004.016.004.02.004.016.004.02.004.012v.02l.008.016.004.016v.016l.004.012v.012l.008.031v.012l.008.023v.008l.004.012v.016l.004.008v.023l.004.012v.008l.004.008v.023zm-.039.379l-.012.016.016-.004.004-.008.004-.012.004-.008v-.012l.008-.008.012-.035v-.012l.004-.012v-.012l.008-.012v-.012l.004-.012v-.012l.004-.012v-.055l.004-.016v-.105l-.004-.016v-.027h-.02v.059l.004.016v.102l-.004.012v.023l-.008.012v.012l-.004.016v.012l-.004.012v.008l-.004.012v.016l-.008.008v.012l-.008.023-.004.008-.004.012-.008.008-.004.012.016-.004zm-.012.016l.012.008.004-.012zm-.199-.301l-.02.004.004.012.004.016v.016l.008.012.004.016.004.012.016.023.004.012.008.012.012.023.008.008.004.012.008.008.008.012.012.008.031.031.008.012.008.004.016.016.008.004.016.016.012.004.008.008.016.008.012-.016-.008-.004-.008-.008h-.008l-.008-.008-.008-.004-.008-.008-.012-.004-.008-.008-.008-.004-.008-.008-.004-.008-.016-.016-.012-.008-.004-.008-.016-.016-.008-.012-.004-.012-.008-.012-.004-.012-.016-.023-.004-.008-.008-.012-.012-.035-.008-.016-.004-.016-.004-.012-.004-.016zm-.078-.5v.02l-.012-.012v.016l.004.016v.016l.004.016v.016l.004.016v.016l.004.016v.016l.004.016v.016l.004.016v.035l.004.016v.016l.004.016v.016l.004.016v.016l.004.016v.02l.004.012v.016l.008.031v.012l.008.031v.012l.008.016.004.016.02-.004-.008-.031v-.016l-.004-.016v-.012l-.008-.016V12l-.004-.016v-.016l-.004-.016v-.027l-.004-.02v-.012l-.004-.016v-.02l-.004-.016v-.016l-.004-.016v-.031l-.004-.016v-.016l-.004-.016v-.02l-.004-.012v-.016l-.004-.016v-.02l-.004-.02v-.012l-.004-.016-.012-.008zm.008.004v-.008h-.012l.008.012zm-.012.012v-.02zm0 0\" class=\"sr-B\"/><path d=\"M9.477 11.27h-.152c-.086.039-.18.242-.074.438.109.18.176.379.191.586.148-.137.215-.297.164-.469-.066-.23-.137-.504-.129-.559zm0 0\" class=\"sr-C\"/><path d=\"M9.324 11.281h.152v-.02H9.32zm0-.02H9.32zm-.078.449l.016-.012-.012-.02-.016-.031-.004-.02-.008-.016-.004-.02v-.016l-.004-.02v-.078l.004-.02v-.012l.008-.031.008-.016.004-.016.004-.012.016-.023.004-.012.008-.012.004-.008.031-.031.008-.004.008-.008.008-.004-.012-.02-.008.008-.008.004-.012.008-.023.023-.023.035-.004.012-.008.012-.004.016-.004.012-.008.016-.004.012-.004.016v.016l-.004.02v.016l-.004.016v.07l.004.02v.02l.008.016.004.02.031.078zm.199.59l-.008-.016.016.008v-.016l-.004-.02v-.047l-.008-.02v-.016l-.004-.016-.004-.02-.004-.016v-.02l-.004-.016-.004-.02-.008-.016-.004-.02-.004-.016-.004-.02-.008-.016-.004-.02-.008-.02-.008-.016-.008-.023-.023-.059-.012-.02-.008-.02-.012-.02-.008-.02-.012-.027-.012-.02-.012-.023-.02.012.016.02.012.023.023.039.008.023.012.023.008.02.012.02.008.016.016.039.004.02.008.016.008.02.004.02.004.016.008.02.008.016.004.016.004.02.004.016.004.02v.012l.008.016v.023l.004.012v.016l.004.016v.02l.004.016v.035l.02.004zm-.012-.008v.02l.016-.012zm.184-.473l-.02.008.004.02.004.016v.016l.004.012v.016l.004.02v.059l-.008.031v.016l-.004.012-.008.016-.004.016-.008.016-.016.023-.004.016-.012.012-.016.031-.016.023-.012.016-.008.012-.023.023-.012.016-.016.012-.008.016.012.012.016-.012.012-.012.012-.016.016-.012.012-.016.012-.012.008-.016.012-.012.008-.016.012-.016.004-.016.012-.012.016-.031.008-.012.004-.02.008-.012.008-.031.004-.012V12l.004-.016v-.016l.004-.016v-.051l-.004-.016v-.016l-.004-.016-.008-.02-.004-.016zm-.141-.559v.02l-.008-.012v.035l.004.008v.023l.004.016.004.012v.016l.004.016v.016l.004.023.004.016.004.02.008.02v.02l.008.02.004.02.008.02.004.023.004.02.004.023.008.02.004.023.008.02.004.023.008.023.004.023.008.023.004.02.008.023.02-.008-.008-.02-.004-.02-.012-.023-.008-.02-.004-.023-.008-.023-.008-.02-.004-.027-.008-.02-.004-.023-.008-.02-.008-.039-.008-.047-.008-.039-.004-.016-.008-.02-.008-.031v-.016l-.004-.016v-.016l-.004-.016v-.012l-.004-.012v-.039l-.008-.012zm.012.012v-.012H9.48l.008.008zm-.008 0v-.012zm.008 0v-.012H9.48l.012.008zm0 0\" class=\"sr-B\"/><path d=\"M9.41 11.164l.238-.086.168.41c.047.145.055.281.023.391a.43.43 0 0 1-.281-.23c-.066-.148-.09-.328-.148-.484zm0 0\" class=\"sr-C\"/><path d=\"M9.645 11.066l-.238.086.008.023.238-.09.008-.012-.012-.008zm.016.008l-.004-.008h-.008zm.148.418l.02-.004v-.008l-.004-.008v-.008l-.008-.008v-.008l-.004-.012-.004-.008v-.012l-.008-.012-.004-.008-.016-.047-.008-.012-.008-.023-.004-.016-.016-.023-.008-.016-.004-.016-.008-.016-.004-.016-.008-.016-.008-.02-.008-.016-.004-.02-.008-.016-.012-.02-.008-.016-.008-.023-.02.012.012.02.008.02.008.016.016.039.016.031.004.016.023.047.004.016.008.016.004.012.008.012v.02l.008.012.004.012.008.012v.012l.004.012.004.008.008.023v.008l.008.012.004.008v.008l.004.008v.008l.004.004v.008zm.035.383l-.004.02.012-.008.004-.012v-.012l.004-.012v-.008l.004-.012v-.012l.004-.016v-.145l-.004-.016v-.023l-.004-.012v-.016l-.004-.012v-.012l-.008-.012-.004-.016v-.012l-.004-.012-.008-.012-.004-.016-.02.008.008.012.004.016.008.023v.016l.004.012v.016l.008.023v.012l.004.012v.02l.004.016v.129l-.004.012v.023l-.004.008-.004.012v.008l-.004.012.012-.008zm-.004.02h.008v-.008l-.008.004zm-.273-.254l-.016.012.004.012.012.023.008.012.008.016.02.02.016.023.035.035.012.008.016.016.012.004.008.012.012.008.008.004.012.008.008.004.008.008h.012l.012.008.008.004.012.004.008.004h.008l.012.004.008.004h.012l.008-.016-.012-.004h-.008l-.012-.004-.008-.004h-.008l-.012-.008-.023-.012-.012-.004-.012-.008-.008-.008-.008-.004-.012-.008-.008-.008-.012-.004-.016-.016-.012-.008-.016-.016-.008-.012-.016-.016-.008-.012-.008-.008-.016-.023-.004-.012-.016-.023-.004-.016zm-.152-.469l-.008-.02-.008.012.008.02.008.031.008.012.004.016.004.023.004.012.004.016.008.016v.016l.016.063v.02l.008.012.012.047v.016l.008.031.008.016.004.016.004.012.008.016.008.031.008.016.004.012.008.016.004.012.02-.012-.008-.008-.008-.016-.004-.012-.008-.012-.004-.016-.008-.016-.012-.047-.004-.012-.008-.02-.004-.012v-.016l-.008-.016-.004-.016-.004-.02-.008-.031-.004-.012-.016-.062-.004-.02-.004-.012-.004-.016-.004-.02-.008-.016-.004-.012-.004-.016-.016-.031-.004.012zm-.008-.02l-.008.004v.008zm.004.012l.004.008zm-.004-.012l-.008.004v.008zm0 0\" class=\"sr-B\"/><path d=\"M9.574 10.992l.051-.328c.059-.012.133.117.199.191.023.02.043.035.055.055.031.051.055.105.066.16.039.203.129.395.262.555-.207-.004-.359-.078-.437-.242-.098-.219-.152-.352-.195-.391zm0 0\" class=\"sr-C\"/><path d=\"M9.617 10.664l-.055.328h.02l.051-.324-.012-.012-.008.008zm.008-.008h-.008v.004l.004-.008zm.191.207l.016-.016-.012-.012-.004-.008-.008-.008-.004-.008-.016-.016-.004-.012-.004-.008-.008-.008-.004-.008-.008-.008-.008-.012-.004-.008-.008-.008-.008-.004-.008-.016-.008-.004-.008-.008-.004-.008-.008-.004-.004-.004-.016-.008h-.008l-.008-.008h-.008l-.008-.004h-.02l.004.02h.02l.008.008.016.008.012.012v.008l.008.004.027.027.004.012.016.016.004.008.016.016.008.012.004.008.023.023.004.008.023.023zm.051.051l.016-.012v-.004h-.004l-.004-.004v-.004h-.004v-.004h-.004v-.004h-.004v-.004h-.004v-.004l-.004-.004h-.004v-.004l-.004-.004h-.004v-.004H9.84v-.004h-.004v-.004l-.02.012h.004l.004.004v.004h.004v.004h.004l.004.004v.004h.004l.004.004v.004h.004v.004h.004v.004h.004v.004h.004v.004l.004.004v.004zm.066.156l.02-.004v-.012l-.004-.008v-.008l-.004-.004v-.016l-.004-.008v-.004L9.938 11v-.008h-.004v-.008l-.004-.004v-.004l-.004-.004v-.004l-.004-.008v-.004l-.008-.004v-.004l-.004-.004v-.004h-.004v-.008l-.008-.004v-.004l-.004-.004v-.008l-.008-.008-.016.012.004.008v.004l.008.008v.008l.008.008v.004l.004.008v.004l.008.008v.004l.004.008v.004l.004.004V11l.004.008v.004l.008.008v.008l.004.008v.004l.004.004v.012l.004.004v.016zm.27.539v.02l.004-.016-.008-.016-.012-.016-.008-.012-.012-.016-.012-.012-.008-.016-.008-.012-.012-.016-.008-.012-.012-.016-.008-.016-.008-.012-.047-.094-.016-.039-.008-.016-.004-.02-.008-.016-.008-.023-.016-.039-.004-.02-.008-.023-.004-.02-.008-.027-.004-.027-.004-.023-.02.004.004.027.008.02.008.023.004.023.008.023.008.02.008.023.031.078.008.016.008.023.016.031.008.02.023.047.012.016.016.031.008.012.023.031.008.012.012.016.008.016.012.012.012.016.008.016.012.012.008-.016zm0 .02h.02l-.016-.016-.008.016zm-.426-.254l-.02.008.008.012.008.02.008.016.008.012.012.016.016.023.035.035.047.031.047.023.012.008.016.004.016.008.031.008.02.004.016.004.02.004.016.004h.02l.016.004h.02l.016.004h.039v-.02h-.055l-.02-.004h-.016l-.016-.004-.023-.004h-.012l-.02-.008-.016-.004-.012-.004-.02-.004-.012-.008-.016-.004-.012-.008-.012-.004-.016-.008-.012-.008-.016-.008-.023-.016-.008-.012-.012-.012-.023-.016-.008-.012-.012-.012-.008-.016-.016-.023-.008-.016zm-.199-.387h-.02v.008l.008.004v.008l.027.027.004.008v.008l.008.012.004.008.008.012.012.035.008.012.004.012.008.012.008.02.004.016.012.012.004.016.008.02.008.016.008.02.008.016.016.039.012.02.004.02.012.02.02-.008-.012-.02-.008-.023-.012-.02-.016-.039-.008-.016-.008-.02-.023-.047-.008-.02-.004-.012-.012-.016-.008-.012-.004-.012-.008-.016-.008-.012-.004-.008-.008-.023-.004-.008-.008-.008-.004-.012-.004-.004-.012-.023-.02-.02-.008-.004.004.008zm-.02 0v.008zm0 0\" class=\"sr-B\"/><path d=\"M9.527 8.301c.035-.008.066-.02.098-.031a1.29 1.29 0 0 1-.43-.441c-.156-.238.066-.656.16-.883.211-.148.363-.371.426-.621.02-.145-.383-.094-.66.039-.34.16-.387.113-.508.141-.047.211.047.227.133.219-.188.301-.266.598-.301 1.027-.039-.43-.121-.727-.305-1.027.086.012.18-.008.133-.215-.121-.027-.168.016-.508-.145-.281-.129-.68-.18-.66-.035.059.273.238.48.426.621.094.223.316.648.16.883-.105.18-.254.328-.43.441.035.012.066.023.102.027a.5.5 0 0 1-.246.074c-.152-.105-.301-.359-.43-.504-.363-.414-.547-.734-.48-.992.09-.277.418-.59-.016-.539s-.793.648-.906 1.367l-.094.668c.234-.086.34-.168.402-.273l-.063.285c.191-.035.332-.129.383-.301.02-.07.047-.129.07-.18.063.02.141.02.234 0 .035.078.301.379.441.602.16.242.406.43.484.438.043.008.055-.078.047-.203l1.258-.008 1.262.008c-.012.121 0 .211.039.207.078-.012.324-.203.484-.445.141-.215.41-.516.445-.602.074.027.156.027.23.004a.82.82 0 0 1 .07.184c.051.172.191.266.387.297a2.83 2.83 0 0 0-.066-.277c.066.098.168.184.406.27l-.098-.668c-.117-.719-.473-1.313-.906-1.363s-.105.258-.016.539c.066.254-.117.574-.48.988-.129.148-.273.402-.426.504a.5.5 0 0 1-.246-.074zm0 0\" class=\"sr-C sr-E sr-F\"/><path d=\"M7.613 7.137c-.043.035-.176.035-.363.047-.293.012-.465-.078-.504-.27.113.133.242.199.395.16.203-.051.32-.086.367-.078.031.012.078.066.105.137zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M7.25 7.195v-.02h.039l.012-.004h.051l.016-.008h.059l.016-.004H7.5l.012-.004h.02l.008-.004h.008l.008-.004h.008l.012-.004h.004l.008-.004h.008l.008-.004h.004v-.004h.004l.012.012h-.004l-.012.012h-.004l-.008.004h-.008l-.008.004H7.57l-.008.008h-.008l-.012.004h-.02l-.008.004h-.031l-.012.004h-.031l-.012.004h-.059l-.016.004h-.047l-.02.004zm0 0zm-.5-.289l-.012.016.016-.012.004.023.004.012.008.016.004.02.008.012.016.031.008.012.012.012.008.012.012.012.012.008.012.012.016.008.012.008.047.023.02.008.016.004.02.004.023.004.02.004h.02l.02.008h.023l.023.004h.133v.023h-.129l-.02-.004h-.027l-.02-.008h-.023l-.02-.004-.023-.008-.02-.008-.02-.004-.02-.008-.016-.004-.016-.008-.02-.008-.016-.012-.012-.008-.031-.023-.023-.023-.008-.016-.008-.012-.023-.047-.008-.02-.008-.012-.008-.039.02-.008zm.387.16l.004.023h-.016l-.012.004h-.031l-.012.004h-.055L7 7.094l-.012-.004h-.016l-.012-.008h-.012l-.012-.008-.016-.004-.016-.008-.023-.008-.047-.031-.012-.012-.012-.008-.035-.035-.008-.012-.012-.008-.012-.012-.012-.016.016-.012.012.012.008.012.063.063.016.008.008.012.016.008.012.004.012.008.008.004.012.004.012.008.012.004.016.004h.008l.012.004.016.004H7l.016.004h.094l.012-.004zm.371-.078l-.008.02h-.051l-.008.004h-.016l-.023.008h-.008l-.012.004h-.012l-.012.008h-.008l-.031.008h-.012l-.012.008-.047.012h-.016l-.016.004-.02.008-.016.004-.023.004-.016.004-.004-.02.02-.004.016-.004.02-.004.016-.004.02-.004.012-.004.02-.004.012-.004.031-.008.023-.008h.016l.012-.004h.012l.012-.008h.012L7.398 7h.012l.012-.004h.012l.008-.004h.02l.004-.004zm0 0zm.109.156l-.016-.016-.004.012v-.016l-.004-.004v-.008l-.008-.004v-.008l-.008-.004v-.004l-.004-.004-.004-.008v-.008l-.008-.008v-.004l-.004-.004-.004-.008v-.004l-.008-.004h-.004v-.004h-.004l-.004-.008v-.004h-.004l-.004-.004V7.02h-.004v-.004h-.008v-.004h-.004l.004-.02h.004L7.527 7h.004l.008.008h.004v.008l.008.004.004.004h.004l.004.004v.004l.016.016.004.008v.004l.008.004.004.004.004.008v.004l.004.012.004.004v.008l.008.004v.008l.004.004v.008l.004.004v.012zm0-.012l.004.004-.008.004v-.012zm-.43-.707v.027H7.18v-.008h-.004v-.012l.004-.004h.004v-.004zm.305.078l-.012.027-.012-.004-.008-.004h-.012l-.012-.004-.016-.008-.012-.004-.008-.004-.008-.008h-.012l-.016-.008h-.008l-.008-.008H7.34l-.008-.004H7.32l-.008-.004h-.008l-.008-.004h-.008l-.008-.004h-.023l-.012-.004h-.047v-.039h.059l.012.004h.02l.008.004h.008l.016.008h.012l.008.004.012.004h.008l.008.004h.012l.012.008.012.004h.008l.016.004.008.004.012.004h.012l.012.008.012.004.008.004.012.004h.012zm.18.051v.027h-.031l-.008-.004h-.008l-.004-.004h-.008l-.008-.004h-.004l-.008-.004h-.012l-.004-.004h-.012l-.004-.004-.008-.004h-.008l-.008-.004h-.004l-.004-.004h-.008l-.004-.004h-.016L7.5 6.539h-.008l-.004-.004.008-.031H7.5l.004.004h.004l.004.004h.008v.004h.008l.004.004h.008l.004.004h.008l.008.004.004.004h.008l.008.004h.008l.008.004h.008l.008.004h.004l.008.004h.008l.008.004h.012l.004.004h.023zm0 .027v-.027h.008v.004h.004v.004h.004v.016h-.004v.004H7.68v.008h-.004zm.469.152l.004-.023h.004v.004h.004v.016h-.012zm-.199-.039l.008-.023h.008l.008.004h.008l.004.004H8l.004.004h.012l.004.004h.012l.008.004h.012l.008.004h.016l.008.004h.02l.004.004h.016l.012.004h.016l-.004.023h-.02l-.008-.004h-.012l-.008-.004h-.016l-.008-.004h-.027l-.004-.004h-.016l-.004-.004h-.012l-.008-.004h-.012l-.008-.004h-.008l-.008-.004h-.008l-.004-.004h-.012l-.004-.004zm.008-.023l-.008.02h-.004v-.016h.016zm0 0\"/><path d=\"M7.43 6.641l-.016.023-.016-.008-.012-.012-.008-.004-.008-.008-.008-.004-.008-.008-.008-.004-.004-.008-.008-.004-.004-.008-.008-.004-.004-.012-.012-.012-.012-.023-.004-.004-.008-.012-.004-.008-.004-.004v-.008l-.012-.023-.004-.004v-.008l-.004-.008-.008-.004-.004-.008.031-.016.004.004.004.008v.008l.004.004.004.008.004.004v.008l.008.004.012.023v.008l.004.008.008.004.012.023.008.008.008.016.004.004.008.012.016.016.008.004.004.008.004.004.016.008.004.004.008.004zm.152-.105l.031.016-.004.008-.004.004-.008.016-.008.012-.012.012-.004.008-.012.012-.008.004-.004.008-.008.004-.004.008-.004.004-.016.008-.004.004-.008.004H7.5l-.008.008h-.008l-.004.004h-.043l-.008-.004-.008-.008h-.004l.016-.027h.008l.004.004h.035l.004-.004h.004l.008-.004H7.5l.016-.016h.004l.008-.004.004-.008.016-.016.012-.023.012-.012.004-.012.004-.008v-.004zm0 0\"/><path d=\"M7.391 6.621l-.043-.047c-.02-.027-.008-.059.039-.109.031.016.063.027.086.043-.02.059-.043.094-.082.109zm-.125 1.641l-.008.02H7.25v-.02zm.477-.074l.02.02-.016.012-.035.023-.016.012-.012.008-.031.016-.012.008-.02.004-.012.008-.031.008-.02.004-.016.004h-.016l-.016.004H7.41l-.02-.004h-.016l-.016-.008h-.02l-.016-.008h-.02l-.016-.004-.02-.008-.016-.004.008-.02.016.004.02.004.02.008.012.004.023.004.012.004h.016l.02.004h.016l.016.004h.094l.016-.004h.02l.012-.008.012-.004h.016l.016-.008.012-.004.016-.008.016-.004.012-.012.016-.008.012-.008.012-.012.012-.008zm.059-.055l.02.016h-.004v.004h-.004l-.004.004v.004h-.004v.004h-.004v.004h-.004l-.008.008v.004h-.004v.004h-.004l-.016.016v.004h-.004l-.02-.016h.004v-.004h.004V8.18h.004l.012-.012v-.004h.004V8.16h.004l.012-.012v-.004h.004l.008-.008v-.004zm.02.016l-.02-.016.004-.004h.016v.004h.004v.016zm0 0\"/><path d=\"M7.844 8.027l-.023-.004V8.02h.004l.004-.004h.012v.008h.004zm-.109.32l.004.02-.012-.016.004-.008.004-.012.004-.008v-.008l.004-.008.004-.012.004-.008v-.012l.008-.008.004-.008.004-.012v-.012l.008-.008v-.012l.004-.008v-.012l.008-.008V8.18l.004-.008V8.16l.008-.023v-.008l.004-.012v-.012l.004-.008v-.012l.004-.012v-.012l.004-.012v-.012l.004-.012.027.004v.012l-.004.012v.012l-.008.012v.012l-.004.012v.012l-.004.012-.004.008v.012l-.004.008v.012l-.004.016v.008l-.008.012v.012l-.004.012v.008l-.004.012-.004.008v.012l-.008.012-.004.008v.012l-.008.016-.016.047-.004.008-.004.012-.016-.016zm-.008.004l.02.008v.004h-.004v.004h-.008l-.004-.004v-.004h-.004zm.305-.191l.02.016-.008.008-.008.012-.004.008-.008.008-.004.008-.008.008L8 8.234l-.008.008-.008.004-.008.012-.008.004-.008.008-.012.008-.008.004-.012.008-.008.004-.012.008-.012.004-.008.004-.012.008-.012.004-.008.004-.016.004-.012.008-.094.031-.008-.023.012-.004h.016l.008-.008.035-.012h.012l.012-.004.012-.008.008-.004.012-.004.016-.008.008-.008.012-.004.016-.016.008-.004.012-.008.008-.008.016-.008.016-.016.008-.004.008-.008.004-.008.008-.008.004-.008.008-.008.004-.008.008-.008zm.02.016l-.02-.016h.004v-.004h.012v.004h.004zm0 0\"/><path d=\"M8.027 8.004H8V8h.004v-.004h.02v.008zm.086.313l.016.023-.016-.008-.008-.008-.004-.008-.004-.012-.008-.008-.004-.008-.008-.008-.004-.012-.004-.008-.004-.012-.004-.008V8.23l-.008-.008-.004-.012-.004-.008-.004-.012v-.008l-.008-.023v-.012l-.004-.008v-.012l-.008-.012v-.008l-.004-.012v-.012l-.004-.012v-.012l-.004-.012v-.012l-.004-.012v-.023h.02v.012l.004.012v.012l.004.008v.027l.008.023v.012l.004.008v.012l.008.012v.008l.008.016v.012l.004.008.004.012.016.031.004.012.004.008.004.012.008.008.008.016.008.008.008.016.008.004h-.02zm0 .016l.02-.016v.016l-.004.008h-.004v.004h-.008V8.34h-.004zm.152-.254l.02.012v.012l-.004.008v.012l-.004.008-.004.012-.004.008-.008.023-.012.023-.008.008v.008l-.008.008-.004.012-.004.008v.004l-.016.016-.008.016-.008.004-.004.008-.008.008-.008.004-.004.008-.016.008-.004.008-.02.02-.012-.023.004-.004.008-.004.004-.008.008-.004.004-.004.004-.008.004-.004.008-.004.008-.008.008-.016.016-.016.008-.016v-.008l.008-.004.004-.012.008-.008v-.004l.008-.016.004-.016.004-.008v-.008l.008-.008.004-.008.004-.012v-.008l.008-.008V8.09zm.02.012l-.02-.008v-.004h.016v.004h.004zm0 0\"/></g><path d=\"M6.922 6.355c-.336.035-.32.254-.012.559.063.063.082.063.094-.004.023-.105.141-.168.203-.086.039.055.031.086.172.066.18.148.324.254.09.246-.098-.004-.18.055-.312.051.039.078.047.086.066.09.133.023.266-.055.398-.031.285.051-.461-.773-.449-.805.02-.082-.18-.23-.254-.086zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M6.922 6.91l-.016.016-.027-.031-.031-.027-.023-.027-.023-.031-.02-.023-.039-.055-.031-.047-.012-.023-.008-.02-.012-.023-.004-.02-.008-.023v-.02l-.004-.02v-.02l.004-.02.004-.016.016-.031.012-.016.027-.027.016-.012.023-.008.02-.012.02-.008.027-.008.027-.004.023-.004.031-.004v.02l-.082.012-.023.008-.059.023-.039.039-.023.035-.008.039v.031l.004.016.004.023.016.039.012.02.008.027.016.02.016.023.02.031.016.023.02.023.023.027.082.082zm.074 0l.02.004v.008l-.004.004v.012l-.004.004v.004l-.004.004v.004L7 6.957l-.008.004v.004h-.004l-.004.004h-.023l-.004-.004h-.004l-.004-.004h-.004l-.008-.008h-.004l-.008-.008h-.004l-.004-.008-.008-.004-.004-.004.016-.016.027.027h.004l.008.008h.008v.004h.012l.004-.004v-.004l.004-.004v-.004l.004-.008v-.008l.004-.008zm.219-.094l-.016.012-.004-.008h-.008l-.004-.008-.004-.004-.008-.004h-.008l-.004-.004h-.012l-.004-.004h-.031l-.004.004-.008.004h-.004l-.016.008-.004.004-.016.008-.012.023-.008.004-.004.008-.004.012-.004.008-.004.004v.012l-.004.008v.008L7 6.906v-.008l.008-.012.004-.008.004-.012.012-.023.008-.012.004-.008.008-.008.008-.004.008-.008.016-.008.004-.004.008-.004.012-.004h.008l.008-.004h.008l.008-.004h.02l.008.004h.012l.008.004.008.008.016.008.008.012.008.008zm.172.066l-.012.012h.008-.012l-.012.004h-.09l-.004-.004h-.004l-.004-.004H7.25l-.012-.012h-.004v-.004l-.004-.008v-.004l-.008-.004v-.004h-.004l-.004-.004-.004-.008V6.84l-.008-.004v-.008l-.004-.004.016-.012h.004v.008l.004.004.004.008.008.008v.004l.02.02h.004v.004h.008l.004.004h.004l.004.004h.105zm-.008 0l.004-.004.004.004zm.09.258v-.02h.082l.012-.004h.008l.004-.004h.004v-.02l-.008-.016-.004-.012-.008-.008-.012-.008L7.496 7l-.016-.012-.039-.039-.031-.023-.016-.016-.02-.016.016-.016.016.016.016.008.031.031.016.008.016.012.016.016.016.012.012.012.012.008.031.031.008.012.012.008.008.008.008.016v.047l-.008.004-.004.004-.012.008-.012.004h-.012l-.012.004h-.074zm-.305.043l-.02.008.012-.016h.066l.012-.004h.012l.012-.008h.008l.012-.004h.008l.008-.004h.012l.016-.008h.012l.012-.004.008-.004h.008l.008-.004h.012l.004-.004h.012l.008-.004h.008l.012-.004h.051v.02h-.051l-.012.004h-.016l-.008.008h-.016l-.008.004h-.012l-.008.004h-.012l-.012.008h-.008l-.012.004h-.008l-.012.004h-.008l-.012.004H7.25l-.012.004h-.012l-.012.004h-.059l.008-.012zm-.02.008l-.004-.016h.016l-.008.016zm.082.078l-.004.016h-.008v-.004h-.004l-.004-.004h-.004v-.004h-.004V7.27h-.004v-.004l-.02-.02v-.004h-.004v-.008l-.008-.004v-.008H7.16v-.008l-.008-.004v-.008l-.004-.008.02-.012v.012l.004.004.004.008v.008l.008.004.004.004v.004l.004.004v.004l.004.004v.004h.004v.008l.004.004v.004l.004.004h.004v.004h.008v.004zm-.004.016zm.398-.051v.023l-.012-.004h-.094l-.016.004h-.012l-.012.004h-.016l-.023.008h-.012l-.012.004h-.016l-.023.008h-.012l-.012.004H7.34l-.016.004h-.09l-.012-.004.004-.02.012.004h.098l.012-.004h.012l.012-.004h.012l.012-.004.016-.004h.012l.023-.008h.016l.008-.004h.012l.016-.004h.016l.012-.004zm-.461-.797l.023.004.004.008.012.012.012.016.016.027.039.047.02.031.055.063.027.039.027.035.031.035.027.039.031.035.027.043.027.039.027.035.027.039.023.035.039.063.016.031.012.027.008.027.008.023v.039l-.012.016-.016.012h-.051v-.023h.039l.008-.004.008-.008v-.023l-.016-.047-.012-.027-.016-.027-.02-.035-.02-.031-.023-.039-.023-.035-.027-.039-.031-.039-.027-.035-.027-.043-.031-.035-.055-.07-.027-.039-.027-.031-.023-.031-.02-.031-.023-.023-.02-.023-.016-.023-.012-.02-.008-.012-.008-.008v-.012zm-.238-.074v-.02l-.012.004.012-.016.004-.012.02-.02.012-.008.012-.004.008-.004.012-.004h.051l.047.016.012.008.008.008.012.004.016.016.008.012.016.016.004.008.008.008.004.012.004.008v.012l.004.008v.023l-.02-.008v-.02l-.004-.008v-.008l-.008-.008-.008-.016-.031-.031-.008-.012-.012-.004-.008-.008-.012-.004h-.012l-.012-.008-.008-.004h-.012l-.012-.004h-.039l-.008.008-.012.004-.008.004-.008.012-.016.016-.004.012-.012.008zm.008-.008l-.004.004h-.004zm-.008-.004v.012zm.008.004l-.004.004h-.004zm0 0\"/><path d=\"M6.941 6.344l-.027.008V6.34h.004v-.004h.016v.004h.004v.004zm.152.211l-.02.02-.008-.008-.004-.008-.008-.004-.004-.008-.016-.008-.004-.008-.012-.012-.004-.008L7 6.504l-.008-.012-.008-.008-.008-.016-.008-.004-.004-.008v-.008l-.008-.004-.012-.023-.004-.012v-.008l-.004-.004-.004-.008v-.008l-.008-.004v-.008l-.004-.008.023-.008v.012l.004.008v.004l.008.008v.008l.004.008v.004l.008.008.012.023v.004l.008.016.008.004.004.008.012.012.004.008.008.004.008.012.004.004.004.008.012.012.008.004.004.004.004.008.012.012.012.008zm-.02.02l.02-.02v.004h.004v.016H7.09v.004h-.016zm-.187-.09c.016 0 .023.012.023.031s-.016.023-.031.023-.023-.016-.023-.031.016-.027.031-.027zm-.918.77h.004v-.008h.008v.008h.004v.004l.004.004v.008h-.004zm-.453 1.117l.004-.02V8.32l.008-.031.004-.027.008-.035.012-.035.012-.043.012-.039.016-.039.012-.039.012-.047.016-.043.012-.043.02-.039.016-.047.02-.047.016-.043.02-.043.016-.043.02-.043.016-.039.02-.039.016-.043.023-.031.016-.031.02-.031.012-.031.02-.027.016-.023.016-.02.016-.016.016-.012.016.02-.027.027-.012.02-.016.02-.023.027-.012.027-.02.031-.016.035-.02.031-.016.043-.02.035-.016.039-.02.039-.016.047-.023.039-.012.047-.02.047-.016.047L5.637 8l-.012.043-.012.039-.012.043-.023.078-.008.035-.016.063-.008.055v.02H5.52zm.109 1.609l-.012-.039-.016-.039-.016-.043-.012-.047-.012-.043-.023-.141-.008-.051-.008-.047-.004-.051-.008-.055-.004-.051-.008-.055-.004-.047-.004-.055V9.16l-.004-.055v-.371l.008-.051v-.051l.004-.055v-.051l.008-.055.004-.047.004-.051h.023l-.008.051-.012.152v.055l-.004.051v.051l-.004.055v.375l.004.055v.051l.008.051.004.055.008.051.008.102.008.047.008.051.004.051.012.043.008.047.012.047.012.043.012.039.016.047.012.039-.02.008zm.02-.008v.016h-.016v-.004l.02-.012zm0 0\"/></g><path d=\"M9.273 7.137c.039.035.176.035.359.047.297.012.469-.078.508-.27-.113.133-.246.199-.395.16-.203-.051-.32-.086-.367-.078-.031.012-.078.066-.105.137zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M9.633 7.195v-.02h-.035l-.016-.004h-.047l-.016-.008h-.059l-.016-.004h-.059l-.012-.004h-.02l-.008-.004H9.34l-.012-.004H9.32l-.008-.004h-.008l-.004-.004h-.008l-.008-.004h-.004v-.004h-.004l-.012.012h.004l.012.012h.004l.008.004h.008l.004.004h.008l.008.008h.012l.012.004h.02l.008.004h.031l.012.004h.031l.012.004h.059l.016.004h.043l.023.004zm0 0zm.5-.289l.016.016-.016-.012-.004.023-.004.012-.008.016-.004.02-.008.012-.016.031-.012.012-.016.023-.012.012-.012.008-.012.012-.016.008-.012.008-.047.023-.02.008-.078.016h-.02l-.02.008h-.023l-.023.004h-.133v.023h.129l.02-.004h.027l.02-.008h.023l.02-.004.039-.016.023-.004.02-.008.016-.004.016-.008.02-.008.016-.012.012-.008.016-.012.023-.023.016-.012.008-.016.008-.012.023-.047.008-.02.004-.012.008-.02.004-.02zm-.387.16l-.004.023h.02l.012.004h.027l.016.004h.055l.012-.004.016-.004h.012l.016-.008h.012l.012-.008.016-.004.012-.008.023-.008.016-.008.035-.023.012-.012.012-.008.035-.035.008-.012.012-.008.008-.012.012-.016-.012-.012-.012.012-.008.012-.023.023-.012.008-.031.031-.012.008-.008.012-.016.008-.012.004-.012.008-.008.004-.012.004-.012.008-.012.004-.016.004h-.008l-.016.004-.012.004h-.012l-.016.004h-.094l-.012-.004zm-.367-.078l.004.02h.055l.008.004h.016l.012.004.008.004h.012l.012.004h.012l.012.008h.008l.016.004.012.004h.012l.016.008.047.012h.016l.016.004.02.008.016.004.02.004.016.004.008-.02-.02-.004-.016-.004-.02-.004-.016-.004-.02-.004-.031-.008-.012-.004-.047-.012-.012-.004h-.012l-.012-.004H9.52l-.012-.008h-.012L9.484 7h-.012l-.008-.004h-.012l-.008-.004h-.02l-.004-.004zm0 0zm-.109.156l.016-.016.004.012v-.016l.004-.004v-.008l.008-.004v-.008l.004-.004v-.004l.004-.004.004-.008v-.008l.008-.004.004-.004v-.004l.004-.004.004-.008v-.004l.008-.004h.004v-.004h.004l.004-.008v-.004h.004l.004-.004V7.02h.004v-.004h.008v-.004h.004l-.004-.02h-.004L9.359 7h-.004l-.008.008h-.004v.008l-.008.004-.004.004h-.004l-.004.004v.004l-.016.016-.004.008v.004l-.008.004-.004.004-.004.008v.004l-.004.012-.004.004v.008l-.008.004v.008l-.004.004v.008l-.004.004v.012zm0-.012l-.004.004.008.004v-.012zm.43-.707v.027h.008v-.008h.004v-.012l-.004-.004h-.004v-.004zm-.305.078l.008.027.023-.008h.012l.012-.004.023-.012.012-.004.008-.008H9.5l.012-.004.008-.004h.008l.008-.008h.012l.008-.004h.008l.008-.004h.008l.012-.004h.008l.008-.004h.023l.008-.004h.051v-.039h-.059l-.012.004h-.02l-.008.004h-.012l-.004.004-.012.004h-.008l-.008.004-.012.004h-.008l-.008.004h-.012l-.012.008-.012.004h-.012l-.012.004-.008.004-.012.004H9.43l-.012.008-.035.012h-.008zm-.18.051v.027h.031l.004-.004h.012l.004-.004h.008l.008-.004h.004l.008-.004h.008l.008-.004h.008l.016-.008h.008l.008-.004h.004l.004-.004h.008l.004-.004h.016l.004-.004h.008l.004-.004-.008-.031h-.004l-.004.004h-.004l-.004.004h-.008v.004h-.008l-.004.004h-.008l-.004.004h-.012l-.004.004-.008.004h-.008l-.004.004h-.008l-.008.004h-.008l-.008.004h-.004l-.008.004h-.008l-.008.004h-.012l-.008.004h-.02zm0 .027v-.027h-.008v.004h-.004v.004h-.004v.016h.004v.004h.004v.008h.004zm-.469.152l-.004-.023h-.004v.004h-.004v.016h.012zm.199-.039l-.008-.023H8.93l-.008.004h-.008l-.008.004h-.02l-.004.004h-.012l-.004.004h-.012l-.008.004h-.016l-.008.004h-.016l-.004.004h-.02l-.004.004h-.016l-.012.004h-.016l.004.023h.02l.008-.004h.012l.008-.004h.012l.008-.004h.031l.004-.004h.016l.004-.004h.012l.008-.004h.008l.008-.004h.012l.004-.004h.012l.004-.004h.012l.004-.004zm-.008-.023l.008.02h.004v-.016h-.016zm0 0\"/><path d=\"M9.457 6.641l.012.023.016-.008.008-.008.016-.008.008-.008.008-.004.008-.008.008-.004.004-.008.008-.004.004-.008.004-.004.008-.012.004-.004.008-.016.008-.008.004-.008.004-.004.008-.012.004-.008.004-.004v-.008l.012-.023.004-.004v-.008l.004-.008.004-.004.004-.008-.027-.016-.004.004-.004.008v.008l-.004.004-.004.008-.004.004v.008l-.008.004-.012.023v.008l-.012.012-.012.023-.008.008-.008.016-.004.004-.008.012-.012.012-.008.004-.016.016-.008.004-.008.008-.008.004zm-.152-.105l-.031.016.004.008.004.004.008.016.008.012.004.008.012.012.004.008.008.004.012.012.008.004.004.008.004.004.016.008.004.004.008.004h.004l.012.008h.004l.008.004h.043l.008-.004.008-.008h.004l-.016-.027h-.008l-.004.004h-.035l-.008-.004h-.004l-.004-.004h-.004l-.016-.016h-.004l-.008-.004-.004-.008-.016-.016-.004-.008-.008-.008-.004-.008-.004-.004-.004-.008-.004-.012-.004-.008v-.004zm0 0\"/><path d=\"M9.492 6.621l.047-.047c.02-.027.008-.059-.043-.109l-.082.043c.02.059.043.094.078.109zm.129 1.641l.008.02h.008v-.02zm-.477-.074l-.02.02.012.012.012.008.016.008.012.008.016.012.012.008.016.008.012.008.016.008.02.004.012.008.031.008.02.004.016.004h.016l.016.004h.098l.02-.004h.02l.016-.008h.02l.016-.008h.02l.016-.004.02-.008.016-.004-.008-.02-.016.004-.02.004-.02.008-.016.004-.02.004-.012.004h-.016l-.023.004h-.012l-.016.004h-.094l-.016-.004h-.02l-.012-.008-.016-.004h-.012l-.016-.008-.012-.004-.016-.008-.016-.004-.012-.012-.016-.008-.012-.008-.012-.012-.016-.008-.008-.012zm-.062-.055l-.02.016h.004v.004h.004l.004.004v.004h.004v.004h.004v.004h.008l.008.008v.004h.004v.004h.004l.016.016v.004h.004l.02-.016h-.004v-.004h-.004V8.18h-.004l-.012-.012v-.004h-.004V8.16h-.004l-.012-.012v-.004h-.004l-.008-.008v-.004zm-.02.016l.02-.016-.004-.004h-.012v.004h-.004zm0 0\"/><path d=\"M9.043 8.027l.023-.004V8.02h-.004l-.004-.004h-.012v.008h-.004zm.109.32l-.008.02.016-.016-.004-.008-.004-.012-.004-.008v-.008l-.008-.008-.004-.012-.004-.008v-.012l-.008-.016-.004-.012v-.012l-.008-.008v-.012l-.004-.008v-.012l-.008-.008V8.18l-.004-.008V8.16l-.008-.023v-.008l-.008-.012v-.012l-.004-.008v-.012l-.004-.012v-.012l-.004-.012v-.012l-.004-.012-.023.004v.012l.004.012v.012l.004.012v.012l.004.012v.012l.004.012.004.008v.012l.004.008v.012l.008.016v.008l.004.012v.012l.008.012v.008l.004.012.004.008v.012l.008.012.004.008v.012l.008.016.016.047.004.008.004.012.012-.016zm.008.004l-.02.008v.004h.004v.004h.008l.004-.004v-.004h.004zm-.305-.191l-.02.016.008.008.008.012.004.008.008.008.004.008.023.023.008.004.008.012.012.004.008.008.012.008.008.004.012.008.008.004.012.008.008.004.012.004.012.008.012.004.008.004.016.004.008.008.023.008.016.004.059.02.004-.023-.012-.004h-.012l-.008-.008-.023-.008-.016-.004H9.07l-.008-.004-.012-.008-.008-.004-.012-.004-.016-.008-.008-.008-.012-.004-.008-.008-.012-.008-.004-.004-.012-.008-.008-.008-.016-.008-.016-.016-.008-.004-.016-.016-.004-.008-.008-.008-.008-.016-.008-.008zm-.02.016l.02-.016h-.004v-.004H8.84v.004h-.008v.016zm0 0\"/><path d=\"M8.859 8.004h.027V8h-.004v-.004h-.02v.008zm-.086.313l-.016.023.016-.008.008-.008.004-.008.004-.012.008-.008.008-.016.004-.012.008-.008.004-.012.004-.008V8.23l.004-.008.004-.012.008-.008.004-.012v-.008l.008-.023v-.012l.004-.008v-.012l.008-.012v-.008l.004-.012v-.012l.004-.012v-.012l.004-.012v-.012l.004-.012v-.023h-.02v.012l-.004.012v.012l-.004.008v.027l-.008.023v.012l-.004.008v.012l-.008.012v.008l-.008.016v.012l-.004.008-.004.012-.016.031-.004.012-.004.008-.004.012-.008.008-.008.016-.008.008-.008.016-.008.004h.02zm0 .016l-.023-.016v.016l.008.008h.004v.004h.008V8.34h.004zm-.152-.254l-.02.012v.012l.004.008v.012l.004.008.004.012.004.008.008.023.016.031v.008l.008.008.004.012.008.008v.004l.016.016.008.016.008.004.004.008.008.008.008.004.004.008.008.004.012.012.004.008.008.004.004.008.016-.023-.004-.004-.008-.004-.039-.039-.008-.016-.016-.016-.008-.016v-.008l-.008-.004-.004-.012-.008-.008v-.004l-.008-.008-.004-.008-.004-.016-.004-.008v-.008l-.008-.016-.004-.012v-.008l-.008-.008V8.09zm-.02.012l.02-.008v-.004h-.016v.004h-.004zm0 0\"/></g><path d=\"M9.965 6.355c.336.035.32.254.008.559-.059.063-.078.063-.09-.004-.023-.105-.141-.168-.203-.086-.043.055-.035.086-.172.066-.184.148-.324.254-.094.246.102-.004.184.055.316.051-.039.078-.047.086-.07.09-.129.023-.266-.055-.395-.031-.285.051.461-.773.449-.805-.02-.082.18-.23.254-.086zm0 0\" class=\"sr-D\"/><g class=\"sr-B\"><path d=\"M9.965 6.91l.016.016.027-.031.031-.027.023-.027.023-.031.02-.023.02-.027.016-.027.016-.023.02-.023.012-.023.008-.02.012-.023.004-.02.008-.023v-.02l.004-.02v-.02l-.004-.02-.004-.016-.016-.031-.012-.016-.012-.012-.02-.016-.016-.012-.02-.008-.02-.012-.02-.008-.027-.008L10 6.352l-.031-.004v.02l.031.004.027.004.023.004.047.016.039.016.012.012.012.016.016.012.023.035.008.039v.031l-.004.016-.004.023-.016.039-.012.02-.012.027-.012.02-.016.023-.02.031-.016.023-.023.023-.047.055-.055.055zm-.074 0l-.02.004v.008l.004.004v.012l.004.004v.004l.004.004v.004l.008.008v.004h.008l.004.004h.023l.004-.004h.004l.004-.004h.004l.008-.008h.004l.008-.008h.004l.004-.008.008-.008-.012-.016-.027.027h-.004l-.008.008h-.008v.004h-.012l-.004-.004v-.004l-.004-.004v-.004l-.004-.008v-.008l-.004-.008zm-.219-.094l.016.012.004-.008h.008l.004-.008.004-.004.008-.004h.004l.008-.004h.008l.008-.004h.031l.004.004.008.004h.004l.016.008.004.004.008.004.004.004.004.008.008.008.004.008.008.004.004.008.004.012.004.008.004.004v.012l.004.008v.008l.02-.004v-.008l-.004-.012-.004-.008-.004-.012-.012-.023-.008-.012-.004-.008-.008-.008-.008-.004-.008-.008-.023-.012-.004-.004-.012-.004h-.008l-.008-.004h-.008l-.008-.004h-.02l-.008.004h-.012l-.008.004-.008.008-.016.008-.008.012-.008.008zm-.176.066l.016.012h-.008.012l.012.004h.09l.004-.004h.004l.004-.004h.004l.012-.012h.004v-.004l.008-.008v-.004l.004-.004v-.004h.008l.004-.004.004-.008V6.84l.008-.004v-.008l.004-.004-.016-.012h-.004v.008l-.008.004-.008.016v.004l-.02.02h-.004v.004h-.008l-.004.004h-.004l-.004.004H9.5zm.012 0L9.5 6.879l-.004.004zm-.094.258v-.02h-.082l-.008-.004h-.008l-.008-.004h-.004v-.02l.008-.016.008-.012.008-.008.012-.008.074-.074.016-.012.016-.016.031-.023.016-.016.02-.016-.016-.016-.016.016-.016.008-.031.031-.016.008-.016.012-.016.016-.016.012-.012.012L9.348 7l-.016.012-.008.012-.012.008-.008.012-.016.016-.008.016v.047l.008.004.012.012.012.004h.012l.016.004h.07zm.305.043l.02.008-.008-.016h-.07l-.012-.004h-.008l-.012-.008h-.008l-.012-.004h-.008l-.008-.004h-.012l-.012-.004-.008-.004h-.012l-.016-.008h-.008l-.008-.004h-.012L9.5 7.133h-.008l-.008-.004h-.012l-.008-.004H9.41v.02h.055l.008.004h.02l.008.008h.016l.008.004h.012l.008.004h.012l.008.008h.012l.008.004h.012l.012.004h.008l.012.004h.008l.012.004h.012l.016.004h.059l-.012-.012zm.02.008l.008-.016H9.73zm-.078.078l.004.016h.008v-.004h.004l.004-.004h.004v-.004h.004V7.27h.004v-.004l.02-.02v-.004h.004v-.008l.004-.004v-.008h.008v-.008l.004-.004v-.008l.008-.008-.02-.012v.012l-.004.004-.004.008v.008l-.008.004-.004.004v.004l-.004.004v.004l-.004.004v.004h-.004v.008l-.004.004v.004l-.004.004h-.004v.004h-.012v.004h-.008zm.004.016zm-.398-.051v.023l.012-.004h.094l.012.004h.016l.012.004h.016l.023.008h.012l.012.004h.012l.016.004.012.004h.012l.012.004h.012l.012.004h.094l.012-.004-.008-.02-.012.004h-.094l-.012-.004h-.012l-.012-.004h-.012l-.016-.004-.012-.004h-.012l-.023-.008h-.016l-.012-.004h-.012l-.012-.004h-.016l-.012-.004zm.457-.797l-.02.004-.004.008-.012.012-.012.016-.016.027-.039.047-.02.031-.055.063-.027.039-.027.035-.031.035-.027.039-.031.035-.027.043-.027.039-.027.035-.027.039-.023.035-.039.063-.016.031-.012.027-.008.027-.008.023v.039l.012.016.016.012h.051v-.023h-.039l-.008-.004-.008-.008v-.023l.016-.047.012-.027.016-.027.02-.035.02-.031.02-.039.027-.035.055-.078.031-.035.027-.043.027-.035.031-.035.027-.035.027-.039.027-.031.023-.031.02-.031.023-.023.02-.023.016-.023.012-.02.008-.012.008-.008zm.242-.074v-.02l.008.004-.008-.016-.004-.012-.02-.02-.012-.008-.023-.008-.008-.004h-.051l-.016.004-.012.004-.008.004-.012.004-.012.008-.008.008-.012.004-.035.035-.004.008-.008.008-.004.008-.004.012-.004.008v.012l-.004.008v.023l.02-.008v-.02l.004-.008v-.008l.008-.016.008-.008.004-.008.012-.008.016-.016.008-.012.012-.004.008-.008.008-.004h.016l.012-.008.008-.004h.012l.012-.004h.039l.008.008.012.004.008.004.008.012.016.016.004.012.008.008zm-.008-.008l.004.004h.004zm.008-.004v.012zm-.008.004l.004.004h.004zm0 0\"/><path d=\"M9.945 6.344l.027.008V6.34h-.004v-.004h-.016v.004h-.004v.004zm-.152.211l.016.02.027-.027.016-.008.004-.008.012-.012.004-.008.008-.004.004-.004.008-.012.008-.004.004-.004.008-.016.012-.012v-.008l.008-.004.012-.023.004-.012v-.008l.004-.004.004-.008v-.008l.008-.004v-.008l.004-.008-.023-.008v.012l-.004.008v.004l-.008.008v.008l-.004.008v.004l-.008.008-.012.023v.004l-.008.008-.004.008-.004.004-.004.008-.012.012-.004.008-.008.004-.008.012-.004.004-.004.008-.012.012-.008.004-.031.031zm.016.02l-.016-.02v.004h-.004v.016h.008v.004h.016zm.191-.09c-.016 0-.027.012-.023.031s.016.023.031.023.023-.016.023-.031-.016-.027-.031-.027zm.918.77h-.004v-.008h-.008v.008h-.004v.004l-.004.004v.008h.004zm.453 1.117l-.004-.02V8.32l-.008-.031-.004-.027-.008-.035-.016-.035-.008-.043-.016-.039-.023-.078-.012-.047-.031-.086-.02-.039-.012-.047-.02-.047-.016-.043-.02-.043-.016-.043-.02-.043-.016-.039-.023-.039-.016-.043-.02-.031-.016-.031-.02-.031-.016-.031-.02-.027-.012-.023-.016-.02-.016-.016-.02-.012-.012.02.027.027.012.02.016.02.02.027.016.027.02.031.016.035.02.031.016.043.02.035.016.039.02.039.016.047.02.039.016.047.02.047.016.047.016.043.012.043.031.086.012.039.012.043.012.039.008.039.008.035.008.031.012.031.008.055v.02h.027zm-.109 1.609l.012-.039.016-.039.012-.043.012-.047.012-.043.008-.047.012-.047.008-.047.008-.051.008-.047.004-.051.008-.055.004-.051.004-.055.004-.047.004-.055V9.16l.004-.055v-.371l-.004-.051v-.051l-.004-.055v-.051l-.008-.055-.004-.047-.004-.051h-.023l.008.051.012.152v.055l.004.051v.051l.004.055v.375l-.004.055v.051l-.008.051-.004.055-.008.051-.008.102-.008.047-.016.102-.008.043-.012.047-.008.047-.012.043-.012.039-.016.047-.016.039.023.008zm-.023-.008v.016h.02v-.004l-.023-.012zM8.262 7.969h-.004v.008H8.25v.016l.008.016v.031l.008.031v.016l.004.016v.016l.008.016.004.016.004.012.008.031.008.012.004.016.008.016.004.012.004.016.016.023.004.016.008.008.016.031.02.02.008.016.016.023.012.012.012.016.004.004h.016v-.004l.012-.016.012-.012.016-.023.023-.023.008-.012.004-.016.008-.012.016-.031.008-.012.004-.012.008-.02.008-.012.004-.016.016-.023.008-.031.008-.012.004-.016v-.016l.004-.012.004-.016V8.07l.008-.016v-.027l.004-.016v-.043h-.02v.008l-.004.02v.031l-.004.012v.016l-.004.012-.004.016v.016l-.008.016-.004.012-.004.016v.012l-.008.012-.008.031-.016.023-.004.016-.008.012-.004.016-.016.023-.008.016-.004.012-.012.012-.016.023-.008.016-.016.023-.012.012h-.004l-.016-.023-.012-.012-.016-.023-.008-.016-.016-.023-.004-.012-.008-.012-.008-.016-.008-.012-.004-.016-.012-.012-.004-.012-.004-.016-.004-.012-.008-.031-.004-.012-.008-.031-.004-.012v-.016l-.008-.012v-.016l-.004-.016v-.047l-.004-.016v-.008h-.004v-.004H8.27zm0 0\"/></g><path d=\"M9.785 8.441v2.172a1.46 1.46 0 0 1-.395.996 1.3 1.3 0 0 1-.945.41c-.359 0-.703-.148-.949-.41a1.45 1.45 0 0 1-.395-.996V8.441zm0 0\" class=\"sr-H\"/><path d=\"M8.906 9.547v-.785c.168-.047.586-.215.605.148.012.168-.207.281-.266.133-.027-.07 0-.121.039-.137.047-.016.094.023.082.074.176-.094-.16-.293-.313-.035-.043.074.074.152.074.207s-.113.141-.074.207c.156.258.488.063.313-.031.012.055-.035.09-.082.07-.039-.016-.066-.066-.039-.133.059-.152.277-.043.266.129-.02.363-.441.199-.609.152zm.879.226v.559H8.723v1.66a1.31 1.31 0 0 1-.277.031 1.35 1.35 0 0 1-.281-.031v-1.66H7.106v-.559h1.059V8.441h.559v1.332zm-1.804-.226v-.785c-.168-.047-.586-.215-.605.148-.012.168.207.281.266.133.027-.07 0-.121-.039-.137-.051-.016-.094.023-.082.074-.176-.094.16-.293.309-.035.047.074-.07.152-.07.207s.113.141.07.207c-.152.258-.484.063-.309-.031-.012.055.031.09.082.07.039-.016.066-.066.039-.133-.063-.152-.277-.043-.266.129.02.363.438.199.605.152zm0 1.801v-.789c-.168-.043-.586-.211-.605.152-.012.168.207.281.266.133.027-.07 0-.121-.039-.137-.051-.016-.094.02-.082.074-.176-.094.16-.293.309-.035.047.074-.07.152-.07.207s.113.141.07.207c-.152.254-.484.059-.309-.031-.012.055.031.09.082.07.039-.016.066-.066.039-.137-.063-.148-.277-.039-.266.133.02.363.438.199.605.152zm.925 0v-.789c.168-.043.586-.211.605.152.012.168-.207.281-.266.133-.027-.07 0-.121.039-.137.047-.016.094.02.082.074.176-.094-.16-.293-.313-.035-.043.074.074.152.074.207s-.113.141-.074.207c.156.254.488.059.313-.031.012.055-.035.09-.082.07-.039-.016-.066-.066-.039-.137.059-.148.277-.039.266.133-.02.363-.441.199-.609.152zm0 0\" class=\"sr-C sr-E sr-F\"/><path d=\"M7.078 8.422v2.266l.004.031v.043l.012.031.008.07.008.035.008.039.008.031.012.035.008.035.012.027.016.035.008.031.016.031.012.035.047.094.016.027.02.031.016.031.098.137.02.031.023.023.02.027.023.023.027.023.023.023.023.02.047.047.027.02.023.02.031.02.027.02.027.023.055.031.031.016.027.016.031.012.031.016.031.012.027.012.035.012.031.008.027.012.07.016.031.012.035.008.07.008.031.004h.035l.031.004h.18l.035-.004.035-.008.031-.004.035-.004.035-.008.031-.012.063-.016.035-.012.031-.008.031-.012.031-.016.031-.012.063-.031.027-.016.031-.016.027-.02.031-.016.027-.02.023-.02.027-.02.027-.023.023-.02.027-.02.047-.047.02-.023.027-.023.023-.027.02-.023.023-.023.02-.027.023-.027.078-.109.016-.031.02-.031.012-.027.016-.031.02-.031.012-.031.012-.035.023-.062.012-.035.008-.031.012-.035.008-.035.012-.031.008-.039.008-.07.008-.035v-.016l.004-.043.004-.031V8.422zm.047.043h2.637v2.254l-.008.031-.004.039-.004.031-.008.039-.004.031-.016.07-.008.027-.008.035-.008.031-.012.035-.008.031-.016.027-.016.035-.012.031-.016.027-.012.035-.031.055-.016.031-.02.023-.016.027-.023.027-.02.027-.02.023-.02.027-.02.023-.023.023-.02.027-.023.02-.027.023-.023.02-.023.023-.023.02-.027.02-.023.02-.055.039-.027.016-.027.02-.031.016-.027.016-.023.016-.031.016-.031.012-.027.012-.031.016-.062.023-.027.008-.031.008-.035.008-.031.012-.031.004-.031.008-.035.008h-.031l-.035.004h-.031L8.477 12h-.07l-.031-.004H8.34l-.031-.004h-.031l-.035-.008-.031-.004-.031-.008-.035-.008-.031-.004-.031-.008-.027-.012-.031-.012-.031-.008-.031-.016-.027-.012-.031-.012-.027-.016-.027-.012-.027-.016-.055-.039-.027-.012-.027-.02-.027-.023-.023-.02-.027-.02-.047-.039-.066-.066-.023-.027-.039-.047-.023-.031-.023-.023-.02-.027-.02-.023-.016-.031-.016-.027-.02-.031-.031-.055-.012-.031-.016-.027-.016-.031-.012-.031-.012-.027-.008-.031-.012-.035-.012-.031-.008-.035-.008-.031-.012-.035-.008-.035-.004-.031-.008-.035-.004-.031-.008-.07v-.109zm0 0\" class=\"sr-B\"/><defs ><path id=\"B\" d=\"M8.441 4.246a.16.16 0 0 1 .16.156.16.16 0 0 1-.16.156c-.09 0-.152-.07-.152-.156s.07-.156.152-.156zm0 0\"/><path id=\"C\" d=\"M6.555 14.024c.16.125.305-.164.16-.551-.098-.285-.609-.176-.328.211.016.02.035.012.031-.008-.02-.082.031-.129.109-.113.211.043.219.441-.012.352-.043-.004-.008.082.035.113zm0 0\"/></defs></svg>')\n        },\n        sk: {\n            languageName: 'Slovak',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.sk-B{fill:rgb(93.333333%,10.980392%,14.509804%)}.sk-C{fill:rgb(4.313725%,30.588235%,63.529412%)}.sk-D{fill:rgb(100%,100%,100%)}]]></style><path d=\"M0 0h24v18H0z\" class=\"sk-B\"/><path d=\"M0 0h24v12H0zm0 0\" class=\"sk-C\"/><g class=\"sk-D\"><path d=\"M0 0h24v6H0zm0 0\"/><path d=\"M8.738 13.906c-1.613-.777-3.922-2.324-3.922-5.371l.148-4.441h7.551s.145 1.391.145 4.441-2.309 4.59-3.922 5.371zm0 0\"/></g><path d=\"M8.738 13.5c-1.48-.711-3.602-2.129-3.602-4.926L5.273 4.5h6.93s.129 1.273.129 4.074-2.113 4.215-3.594 4.926zm0 0\" class=\"sk-B\"/><path d=\"M9.051 7.836c.402.008 1.188.023 1.879-.207l-.012.539.016.539c-.637-.215-1.426-.219-1.883-.215v1.547h-.629V8.492c-.449-.004-1.242 0-1.879.215l.02-.539-.02-.539c.695.23 1.477.215 1.875.207v-.969c-.363 0-.887.016-1.484.211l.02-.539L6.934 6c.598.199 1.121.219 1.484.215-.02-.617-.199-1.387-.199-1.387l.52.023.516-.023s-.18.77-.199 1.387c.367.004.891-.016 1.488-.215l-.02.539.02.539a4.48 4.48 0 0 0-1.492-.211v.973zm0 0\" class=\"sk-D\"/><path d=\"M8.738 9.875c-.746 0-1.145 1.031-1.145 1.031s-.227-.488-.832-.488c-.414 0-.715.363-.906.703.75 1.191 1.945 1.926 2.883 2.379.938-.449 2.137-1.187 2.883-2.379-.195-.336-.496-.703-.906-.703-.609 0-.832.488-.832.488s-.395-1.031-1.145-1.031zm0 0\" class=\"sk-C\"/></svg>')\n        },\n        sl: {\n            languageName: 'Slovene',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.sl-B{fill-rule:evenodd}.sl-C{fill:rgb(0%,0%,74.901961%)}.sl-D{fill:rgb(100%,100%,100%)}.sl-E{fill:rgb(83.529412%,0%,0%)}.sl-F{fill:rgb(100%,87.45098%,0%)}]]></style><defs><clipPath id=\"A\"><path d=\"M0 0h24v18H-.004zm0 0\"/></clipPath><clipPath id=\"B\"><path d=\"M0 12h24v6H0zm0 0\"/></clipPath><clipPath id=\"C\"><path d=\"M0 0h24v18H-.004zm0 0\"/></clipPath><clipPath id=\"D\"><path d=\"M0 6h24v6H0zm0 0\"/></clipPath><clipPath id=\"E\"><path d=\"M0 0h24v18H-.004zm0 0\"/></clipPath><clipPath id=\"F\"><path d=\"M3 2h6v7H3zm0 0\"/></clipPath><clipPath id=\"G\"><path d=\"M0 0h24v18H-.004zm0 0\"/></clipPath><clipPath id=\"H\"><path d=\"M5 3h2v2H5zm0 0\"/></clipPath><clipPath id=\"I\"><path d=\"M0 0h24v18H-.004zm0 0\"/></clipPath><clipPath id=\"J\"><path d=\"M3 4h5v5H3zm0 0\"/></clipPath><clipPath id=\"K\"><path d=\"M0 0h24v18H-.004zm0 0\"/></clipPath><clipPath id=\"L\"><path d=\"M5 2h2v2H5zm0 0\"/></clipPath><clipPath id=\"M\"><path d=\"M0 0h24v18H-.004zm0 0\"/></clipPath><clipPath id=\"N\"><path d=\"M4 6h4v2H4zm0 0\"/></clipPath><clipPath id=\"O\"><path d=\"M0 0h24v18H-.004zm0 0\"/></clipPath></defs><g clip-path=\"url(#A)\" class=\"sl-D\"><path d=\"M0 0h24v18H0z\"/></g><g clip-path=\"url(#B)\" class=\"sl-B sl-E\"><g clip-path=\"url(#C)\"><path d=\"M-1.652 12h36v6h-36zm0 0\"/></g></g><g clip-path=\"url(#D)\" class=\"sl-B sl-C\"><g clip-path=\"url(#E)\"><path d=\"M-1.652 6h36v6h-36zm0 0\"/></g></g><g clip-path=\"url(#F)\" class=\"sl-B\"><g clip-path=\"url(#G)\"><path d=\"M8.559 3.27c-.141 2.164-.227 3.355-.551 3.902-.359.59-.703 1.023-2.102 1.547-1.391-.523-1.734-.957-2.094-1.547-.332-.547-.41-1.738-.551-3.902l.203-.07.953-.273c.324-.07.605-.148 1.484-.168.879.016 1.16.102 1.488.172.227.047.551.141.961.27zm0 0\" class=\"sl-E\"/><path d=\"M8.355 3.199c-.133 2.16-.246 3.152-.422 3.629-.34.816-.871 1.262-2.027 1.688-1.152-.426-1.687-.871-2.027-1.687-.176-.48-.281-1.469-.414-3.633l.953-.27c.324-.07.605-.152 1.484-.168.879.016 1.16.098 1.488.168l.965.27zm0 0\" class=\"sl-C\"/></g></g><g clip-path=\"url(#H)\" class=\"sl-B sl-F\"><g clip-path=\"url(#I)\"><path d=\"M5.906 3.859l.055.133.246.031-.16.098.152.102-.223.035-.07.121-.07-.125-.211-.027.141-.105-.145-.094.234-.035zm0 0\"/></g></g><g clip-path=\"url(#J)\" class=\"sl-B sl-D\"><g clip-path=\"url(#K)\"><path d=\"M7.852 6.313l-.137-.105-.094-.16-.191-.164-.102-.168-.191-.172-.09-.164-.105-.082-.062-.066-.176.152-.094.164-.113.105-.133-.102-.094-.168-.363-.645-.359.645-.098.168-.129.102-.117-.105-.094-.164-.172-.152-.066.063-.102.086-.094.164-.187.172-.102.168-.191.164-.094.16-.137.105a2.29 2.29 0 0 0 .652 1.277 3.84 3.84 0 0 0 1.285.723 3.69 3.69 0 0 0 1.297-.723c.203-.211.582-.68.652-1.277zm0 0\"/></g></g><g clip-path=\"url(#L)\" class=\"sl-B sl-F\"><g clip-path=\"url(#M)\"><path d=\"M6.484 2.949l.055.129.246.035-.16.098.156.102-.223.035-.07.117-.07-.121-.211-.027.141-.105-.148-.098.23-.035.059-.129zm-1.16 0l.055.129.246.035-.156.094.152.102-.223.035-.07.121-.07-.121-.211-.031.141-.105-.148-.094.234-.035.055-.133zm0 0\"/></g></g><g clip-path=\"url(#N)\" class=\"sl-B sl-C\"><g clip-path=\"url(#O)\"><path d=\"M7.551 7.137h-.262l-.246-.02-.293-.141h-.328l-.285.141-.23.023-.223-.023-.285-.141h-.336l-.293.141-.242.023-.27-.004-.125-.219.004-.008.395.07.242-.02.289-.145h.332l.289.141.223.023.23-.023.285-.141h.328l.297.141.242.023.379-.07.008.012-.129.215zm-3.039.332l.262-.016.289-.141h.332l.289.141.223.016.227-.016.289-.141h.328l.293.141.266.016.168-.211h-.004l-.184.051-.242-.016-.293-.141h-.328l-.289.141-.227.02-.227-.02-.285-.141h-.336l-.293.141-.242.02-.176-.047v.008l.156.195zm0 0\"/></g></g></svg>')\n        },\n        es: {\n            languageName: 'Spanish',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><style><![CDATA[.es-B{stroke:rgb(0%,0%,0%)}.es-C{fill:none}.es-D{stroke-width:.015}.es-E{fill:rgb(78.431373%,69.411765%,0%)}.es-F{stroke-width:.011}.es-G{fill:rgb(100%,100%,100%)}.es-H{fill:rgb(67.843137%,8.235294%,9.803922%)}.es-I{stroke-linejoin:round}.es-J{fill:rgb(85.882353%,26.666667%,27.45098%)}.es-K{stroke-width:.004}.es-L{stroke-width:.019}.es-M{fill:rgb(1.960784%,55.686275%,43.137255%)}.es-N{fill:rgb(0%,0%,0%)}.es-O{fill:rgb(0%,35.686275%,74.901961%)}.es-P{fill:rgb(80%,80%,80%)}.es-Q{stroke-width:.008}.es-R{stroke-width:.022}.es-S{stroke-linecap:round}]]></style><path d=\"M0 0h24v18H0z\" fill=\"rgb(66.666667%,8.235294%,10.588235%)\"/><path d=\"M0 4.5h24v9H0zm0 0\" fill=\"rgb(94.509804%,74.901961%,0%)\"/><path d=\"M4.773 8l-.031-.004-.035-.039-.027-.016-.023-.027s-.023-.043-.016-.078.035-.043.055-.055.035-.016.055-.02l.039-.016.047-.012.02-.008c.008 0 .027 0 .039-.008l.035-.008.063.004h.18c.016 0 .043.012.051.016l.074.023c.02.004.063.012.086.023.016.012.031.027.039.039l.02.035v.043l-.02.027-.023.039-.027.023s-.02.02-.039.016-.18-.031-.285-.031-.273.035-.273.035\" class=\"es-H\"/><path d=\"M4.773 8l-.031-.004-.035-.039-.027-.016-.023-.027s-.023-.043-.016-.078.035-.043.055-.055.035-.016.055-.02l.039-.016.047-.012.02-.008c.008 0 .027 0 .039-.008l.035-.008.063.004h.18c.016 0 .043.012.051.016l.074.023c.02.004.063.012.086.023.016.012.031.027.039.039l.02.035v.043l-.02.027-.023.039-.027.023s-.02.02-.039.016-.18-.031-.285-.031-.273.035-.273.035zm0 0\" class=\"es-B es-C es-F es-I\"/><path d=\"M5 7.762c0-.047.02-.086.047-.086s.055.039.055.09-.023.09-.055.09S5 7.816 5 7.762\" class=\"es-E\"/><path d=\"M5 7.762c0-.047.02-.086.047-.086s.055.039.055.09-.023.09-.055.09S5 7.816 5 7.762zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M5.023 7.762c0-.043.012-.078.027-.078s.023.039.023.078c0 .051-.012.082-.023.082s-.023-.035-.023-.082\" class=\"es-E\"/><path d=\"M5.023 7.762c0-.043.012-.078.027-.078s.023.039.023.078c0 .051-.012.082-.023.082s-.023-.035-.023-.082zm0 0\" class=\"es-B es-C es-F\"/><g class=\"es-E\"><path d=\"M5.016 7.668c0-.016.016-.027.031-.027s.039.012.039.027-.02.035-.039.035-.031-.016-.031-.035\"/><g class=\"es-B es-F\"><path d=\"M5.074 7.656v.023H5.02v-.023h.02v-.043h-.023V7.59h.023v-.02h.02v.02h.023v.023h-.023v.043h.016\"/><path d=\"M5.098 7.656v.023h-.094v-.023h.035v-.043h-.023V7.59h.023v-.02h.02v.02h.023v.023h-.023v.043h.039\"/></g></g><path d=\"M5.059 7.641c.016 0 .023.012.023.027s-.016.035-.031.035-.035-.016-.035-.035.008-.027.023-.027\" class=\"es-B es-C es-F\"/><path d=\"M5.051 7.996h-.176v-.043l-.012-.043-.008-.059c-.047-.062-.094-.105-.109-.094.004-.012.008-.023.02-.023.043-.027.133.035.195.133l.02.027h.141l.016-.027c.066-.102.156-.16.195-.133.012 0 .016.012.02.023-.016-.012-.059.031-.109.094l-.008.059-.008.043-.004.043h-.176\" class=\"es-E\"/><g class=\"es-B es-C es-F\"><path d=\"M5.051 7.996h-.176v-.043l-.012-.043-.008-.059c-.047-.063-.094-.105-.109-.094.004-.012.008-.023.02-.023.043-.027.133.035.195.133l.02.027h.141l.016-.027c.066-.102.156-.16.195-.133.012 0 .016.012.02.023-.016-.012-.059.031-.109.094l-.008.059-.008.043-.004.043h-.176zm0 0\"/><path d=\"M4.754 7.754c.039-.02.113.043.172.137m.414-.137c-.031-.02-.105.043-.168.137\"/></g><g class=\"es-E\"><path d=\"M4.793 8.074l-.02-.039c.18-.051.371-.051.551 0l-.02.031c-.004.008-.008.02-.008.031a.77.77 0 0 0-.25-.031c-.098 0-.195.012-.242.031l-.012-.023\" class=\"es-B es-F\"/><path d=\"M5.047 8.164a1.2 1.2 0 0 0 .223-.023c.023-.008.035-.02.035-.031a.65.65 0 0 0-.258-.043c-.094 0-.187.012-.238.031-.016.023-.004.035.02.043.039.008.133.023.219.023\"/></g><path d=\"M5.047 8.164a1.2 1.2 0 0 0 .223-.023c.023-.008.035-.02.035-.031a.65.65 0 0 0-.258-.043c-.094 0-.187.012-.238.031-.016.023-.004.035.02.043.039.008.133.023.219.023zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M5.328 7.996l-.02-.02s-.02.012-.047.008-.035-.039-.035-.039-.023.027-.047.027-.039-.023-.039-.023-.027.02-.047.016-.047-.031-.047-.031-.023.031-.043.031-.039-.02-.039-.02-.016.023-.043.027-.051-.023-.051-.023-.02.027-.039.039c-.016 0-.043-.016-.043-.016l-.008.02-.012.004.008.02c.09-.023.18-.035.27-.035.113 0 .207.016.277.035l.008-.02\" class=\"es-E\"/><path d=\"M5.328 7.996l-.02-.02s-.02.012-.047.008-.035-.039-.035-.039-.023.027-.047.027-.039-.023-.039-.023-.027.02-.047.016-.047-.031-.047-.031-.023.031-.043.031-.039-.02-.039-.02-.016.023-.043.027-.051-.023-.051-.023-.02.027-.039.039c-.016 0-.043-.016-.043-.016l-.008.02-.012.004.008.02c.09-.023.18-.035.27-.035.113 0 .207.016.277.035l.008-.02zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M5.051 7.902h.008c0 .035.016.051.039.051.016 0 .031-.008.035-.027l.008-.008v.012c.004.02.023.031.043.031s.035-.016.035-.039l.016-.016.008.016c-.004.039.012.055.035.055.016 0 .023-.008.031-.02l.008-.008v.012c0 .012.004.023.016.027 0 0 .016 0 .039-.016l.023-.027v.016s-.016.031-.035.039c-.008.008-.02.016-.031.012S5.305 8 5.301 7.988c-.004.008-.012.008-.023.008-.023 0-.047-.012-.055-.031-.012.012-.023.02-.039.02s-.035-.008-.047-.023c-.008.008-.023.016-.035.016-.02 0-.039-.008-.051-.023-.012.016-.027.023-.043.023s-.035-.004-.047-.016c-.012.016-.027.023-.043.023s-.031-.008-.043-.02c-.008.02-.031.031-.051.031-.008 0-.02 0-.027-.008-.004.012-.016.023-.027.023s-.023 0-.035-.008l-.035-.039.004-.02.031.027c.016.016.031.016.031.016.012 0 .016-.016.016-.027v-.012l.008.008c.008.012.02.02.035.02s.035-.016.035-.039v-.031l.016.016c0 .023.02.039.039.039s.035-.012.039-.035v-.008l.008.008c.008.016.023.027.039.027.023 0 .039-.016.039-.035l.012-.012\" class=\"es-E\"/><path d=\"M5.051 7.902h.008c0 .035.016.051.039.051.016 0 .031-.008.035-.027l.008-.008v.012c.004.02.023.031.043.031s.035-.016.035-.039l.016-.016.008.016c-.004.039.012.055.035.055.016 0 .023-.008.031-.02l.008-.008v.012c0 .012.004.023.016.027 0 0 .016 0 .039-.016l.023-.027v.016s-.016.031-.035.039c-.008.008-.02.016-.031.012S5.305 8 5.301 7.988c-.004.008-.012.008-.023.008-.023 0-.047-.012-.055-.031-.012.012-.023.02-.039.02s-.035-.008-.047-.023c-.008.008-.023.016-.035.016-.02 0-.039-.008-.051-.023-.012.016-.027.023-.043.023s-.035-.004-.047-.016c-.012.016-.027.023-.043.023s-.031-.008-.043-.02c-.008.02-.031.031-.051.031-.008 0-.02 0-.027-.008-.004.012-.016.023-.027.023s-.023 0-.035-.008l-.035-.039.004-.02.031.027c.016.016.031.016.031.016.012 0 .016-.016.016-.027v-.012l.008.008c.008.012.02.02.035.02s.035-.016.035-.039v-.031l.016.016c0 .023.02.039.039.039s.035-.012.039-.035v-.008l.008.008c.008.016.023.027.039.027.023 0 .039-.016.039-.035l.012-.012zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M5.047 8a1.01 1.01 0 0 0-.273.035l-.012-.008.004-.012c.094-.023.188-.035.281-.035a1.11 1.11 0 0 1 .285.035l-.008.02A1.1 1.1 0 0 0 5.047 8\" class=\"es-E\"/><path d=\"M5.047 8a1.01 1.01 0 0 0-.273.035l-.012-.008.004-.012c.094-.023.188-.035.281-.035a1.11 1.11 0 0 1 .285.035l-.008.02A1.1 1.1 0 0 0 5.047 8zm0 0\" class=\"es-B es-C es-F es-I\"/><path d=\"M4.941 8.039c0-.012.008-.016.02-.016s.016.008.016.016-.008.016-.016.016c-.016-.004-.02-.012-.02-.016\" class=\"es-G\"/><g class=\"es-B es-F\"><path d=\"M4.941 8.039c0-.012.008-.016.02-.016s.016.008.016.016-.008.016-.016.016c-.016-.004-.02-.012-.02-.016zm0 0\" class=\"es-C\"/><path d=\"M5.051 8.043h-.035V8.02h.074c.008.02 0 .023-.004.023h-.039\" class=\"es-H\"/><path d=\"M4.875 8.059h-.027l.051-.027c.016.012.016.016.012.02l-.035.004\" class=\"es-M\"/><path d=\"M4.773 8.074l.012-.016h.027l-.016.023-.023-.008\" class=\"es-H\"/></g><path d=\"M5.121 8.039c0-.012.008-.016.016-.016.02.008.02.012.02.016-.008.016-.016.016-.02.016s-.016-.008-.016-.016\" class=\"es-G\"/><g class=\"es-B es-F\"><path d=\"M5.121 8.039c0-.012.008-.016.016-.016.02.008.02.012.02.016-.008.016-.016.016-.02.016s-.016-.008-.016-.016zm0 0\" class=\"es-C\"/><path d=\"M5.223 8.059h.023c.016-.012.012-.02.004-.02l-.047-.008c-.016.016-.012.02-.004.023h.023\" class=\"es-M\"/><path d=\"M5.324 8.078l-.012-.02h-.023l.008.023.023-.004\" class=\"es-H\"/></g><path d=\"M5.047 8.141a.71.71 0 0 1-.223-.023c.148-.035.305-.035.453 0a.96.96 0 0 1-.227.023\" class=\"es-H\"/><path d=\"M5.047 8.141a.71.71 0 0 1-.223-.023c.148-.035.305-.035.453 0a.96.96 0 0 1-.227.023zm0 0\" class=\"es-B es-C es-F es-I\"/><path d=\"M5.324 7.949l-.004-.012c-.016.016-.016.023-.008.023\" class=\"es-E\"/><path d=\"M5.324 7.949l-.004-.012c-.016.016-.016.023-.008.023zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M5.148 7.922h.004\" class=\"es-E\"/><path d=\"M5.148 7.922h.004zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M4.949 7.922l.004-.016c.012.016.012.023.004.023l-.008-.008\" class=\"es-E\"/><path d=\"M4.949 7.922l.004-.016c.012.016.012.023.004.023zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M4.773 7.949l.004-.012c.016.016.016.023.008.023\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M4.773 7.949l.004-.012c.016.016.016.023.008.023zm0 0\" class=\"es-C\"/><g class=\"es-E\"><path d=\"M5.047 7.82l-.031.016.023.051.008.004.008-.004.027-.051-.035-.016\"/><path d=\"M4.98 7.895l.016.02.047-.016.004-.008-.004-.008-.047-.012-.016.023\"/><path d=\"M5.113 7.895l-.008.02-.051-.016-.008-.008.008-.008.051-.012.008.023m-.265-.058l-.023.027.031.039.008.004.004-.004.012-.051-.031-.012\"/><path d=\"M4.801 7.922l.016.016.043-.02V7.91l-.004-.008-.047-.004-.012.023m.133-.026l-.008.023h-.047l-.008-.008.004-.012.047-.023.016.02m-.188.031v.023l-.051.008-.008-.004v-.008l.039-.031.02.012\"/></g></g><path d=\"M4.844 7.91c0-.012.008-.02.02-.02s.02.008.02.02-.012.016-.02.012c-.008.004-.016-.004-.02-.012\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M4.844 7.91c0-.012.008-.02.02-.02s.02.008.02.02-.012.016-.02.012c-.008.004-.016-.004-.02-.012zm0 0\" class=\"es-C\"/><g class=\"es-E\"><path d=\"M5.25 7.836l.027.027-.035.039-.008.004-.004-.004-.012-.051.031-.012\"/><path d=\"M5.301 7.922l-.016.016-.047-.02V7.91l.004-.008.051-.004.008.023m-.133-.026l.012.023h.047l.008-.008-.004-.012-.043-.023-.02.02m.176.031l.004.023.047.008.008-.004v-.008l-.035-.031-.023.012\"/></g></g><path d=\"M5.031 7.891c.004-.008.008-.016.016-.016s.02.008.02.016-.008.02-.02.02-.016-.012-.016-.02\" class=\"es-E\"/><path d=\"M5.031 7.891c.004-.008.008-.016.016-.016s.02.008.02.016-.008.02-.02.02-.016-.012-.016-.02zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M5.215 7.91c0-.012.012-.02.02-.02s.02.008.02.02-.012.016-.02.012c-.008.004-.016-.004-.02-.012\" class=\"es-E\"/><path d=\"M5.215 7.91c0-.012.012-.02.02-.02s.02.008.02.02-.012.016-.02.012c-.008.004-.016-.004-.02-.012zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M4.68 7.957l-.023-.027c-.008-.008-.023-.008-.023-.008s.008-.012.02-.012h.016l.016.047\" class=\"es-E\"/><path d=\"M4.68 7.957l-.023-.027c-.008-.008-.023-.008-.023-.008s.008-.012.02-.012h.016l.016.047zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M4.68 7.949c.027.004.031.012.027.02l-.02-.004c-.008-.004-.012-.016-.008-.02\" class=\"es-E\"/><path d=\"M4.68 7.949c.027.004.031.012.027.02l-.02-.004c-.008-.004-.012-.016-.008-.02zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M5.41 7.957l.023-.027c.008-.008.027-.008.027-.008s-.012-.012-.023-.012h-.016l-.016.035.004.012\" class=\"es-E\"/><path d=\"M5.41 7.957l.023-.027c.008-.008.027-.008.027-.008s-.012-.012-.023-.012h-.016l-.016.035zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M5.41 7.949c-.023.004-.023.012-.02.02l.016-.004\" class=\"es-E\"/><g class=\"es-B\"><path d=\"M5.41 7.949c-.023.004-.023.012-.02.02l.016-.004zm0 0\" class=\"es-C F\"/><path d=\"M4.648 8.363h.805v-.207h-.805v.211zm0 0\" class=\"es-D es-E\"/></g><path d=\"M4.734 8.504h.633c-.02-.004-.035-.023-.039-.043s.02-.043.039-.051H4.75c.004.008.02.027.02.051s-.016.039-.035.043\" class=\"es-E\"/><path d=\"M4.734 8.504h.633c-.02-.004-.035-.023-.039-.043s.02-.043.039-.051H4.75c.004.008.02.027.02.051s-.016.039-.035.043zm0 0\" class=\"es-B es-C es-D es-I\"/><path d=\"M4.746 8.504h.602c.023 0 .039.012.039.027s-.016.031-.039.031h-.602c-.016 0-.035-.016-.035-.031s.02-.031.035-.031\" class=\"es-E\"/><path d=\"M4.746 8.504h.602c.023 0 .039.012.039.027s-.016.031-.039.031h-.602c-.016 0-.035-.016-.035-.031s.02-.031.035-.031zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M4.746 8.363h.602c.023 0 .039.016.039.027s-.016.02-.039.02h-.602c-.016 0-.035-.008-.035-.02s.02-.023.035-.023\" class=\"es-E\"/><path d=\"M4.746 8.363h.602c.023 0 .039.016.039.027s-.016.02-.039.02h-.602c-.016 0-.035-.008-.035-.02s.02-.023.035-.023zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M5.609 11.902c-.051 0-.105-.012-.137-.031-.047-.02-.094-.031-.145-.027s-.102.012-.137.027c-.047.023-.094.031-.145.031s-.105-.012-.137-.031c-.043-.02-.094-.027-.141-.027s-.094.008-.137.027-.094.031-.145.031v.09c.059 0 .105-.016.145-.035a.33.33 0 0 1 .137-.027c.055 0 .102.012.141.027s.082.035.137.035.098-.012.145-.035c.035-.016.086-.027.137-.027a.38.38 0 0 1 .145.027c.035.02.082.035.137.035v-.09\" class=\"es-O\"/><g class=\"es-B es-D\"><path d=\"M5.609 11.902c-.051 0-.105-.012-.137-.031-.047-.02-.094-.031-.145-.027s-.102.012-.137.027c-.047.023-.094.031-.145.031s-.105-.012-.137-.031c-.043-.02-.094-.027-.141-.027s-.094.008-.137.027-.094.031-.145.031v.09c.059 0 .105-.016.145-.035a.33.33 0 0 1 .137-.027c.055 0 .102.012.141.027s.082.035.137.035.098-.012.145-.035c.035-.016.086-.027.137-.027a.38.38 0 0 1 .145.027c.035.02.082.035.137.035zm0 0\" class=\"es-C\"/><path d=\"M5.609 11.992c-.047 0-.094-.012-.137-.035s-.094-.031-.145-.027-.102.012-.137.027-.086.035-.145.035a.27.27 0 0 1-.137-.035c-.043-.02-.094-.027-.141-.027a.33.33 0 0 0-.137.027c-.039.02-.086.035-.145.035v.086c.059 0 .105-.016.145-.031s.09-.031.137-.027c.055 0 .102.008.141.027.086.043.191.043.281 0s.191-.043.281 0a.28.28 0 0 0 .137.031v-.086\" class=\"es-P\"/><path d=\"M5.609 12.074c-.047.004-.094-.008-.137-.027s-.094-.031-.145-.027-.102.008-.137.027-.086.031-.145.031a.32.32 0 0 1-.137-.031c-.043-.023-.094-.031-.141-.031a.28.28 0 0 0-.137.031c-.039.016-.086.031-.145.031v.086c.059 0 .105-.012.145-.031.086-.035.187-.035.277 0 .039.023.09.035.137.031.051.004.098-.008.145-.027.035-.02.086-.031.137-.031.059 0 .105.012.145.031a.34.34 0 0 0 .137.027v-.09\" class=\"es-O\"/><path d=\"M5.609 12.25c-.047.004-.094-.008-.137-.027a.31.31 0 0 0-.141-.031c-.047 0-.098.008-.141.031a.38.38 0 0 1-.145.027c-.047.004-.098-.008-.137-.031-.047-.02-.094-.031-.141-.027s-.102.012-.137.031a.38.38 0 0 1-.145.027v-.086a.37.37 0 0 0 .145-.031c.086-.035.187-.035.277 0 .043.02.09.031.137.031s.098-.008.145-.027a.3.3 0 0 1 .141-.031.31.31 0 0 1 .141.031c.035.016.086.027.137.027v.086\" class=\"es-P\"/></g><path d=\"M5.609 12.336c-.047.004-.094-.008-.137-.027a.31.31 0 0 0-.141-.031c-.047 0-.098.008-.141.031s-.086.027-.145.027c-.047.004-.098-.008-.137-.031a.36.36 0 0 0-.141-.027c-.051 0-.102.012-.137.031s-.086.027-.145.027v-.086c.051.004.098-.008.145-.027.035-.02.086-.031.137-.031s.102.012.141.027c.086.043.191.043.281 0a.36.36 0 0 1 .141-.027.31.31 0 0 1 .141.031.34.34 0 0 0 .137.027v.086\" class=\"es-O\"/><path d=\"M5.609 12.336c-.047.004-.094-.008-.137-.027a.31.31 0 0 0-.141-.031c-.047 0-.098.008-.141.031s-.086.027-.145.027c-.047.004-.098-.008-.137-.031a.36.36 0 0 0-.141-.027c-.051 0-.102.012-.137.031s-.086.027-.145.027v-.086c.051.004.098-.008.145-.027.035-.02.086-.031.137-.031s.102.012.141.027c.086.043.191.043.281 0a.36.36 0 0 1 .141-.027.31.31 0 0 1 .141.031.34.34 0 0 0 .137.027zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M4.734 11.551l.004.02c0 .055-.047.098-.098.098h.824a.1.1 0 0 1-.102-.098v-.02H4.75\" class=\"es-E\"/><path d=\"M4.734 11.551l.004.02c0 .055-.047.098-.098.098h.824a.1.1 0 0 1-.102-.098v-.02H4.75zm0 0\" class=\"es-B es-C es-D es-I\"/><path d=\"M4.746 11.492h.602c.023 0 .039.012.039.031s-.016.027-.039.027h-.602c-.016 0-.035-.012-.035-.031s.02-.027.035-.027\" class=\"es-E\"/><g class=\"es-B es-D\"><path d=\"M4.746 11.492h.602c.023 0 .039.012.039.031s-.016.027-.039.027h-.602c-.016 0-.035-.012-.035-.031s.02-.027.035-.027zm0 0\" class=\"es-C\"/><path d=\"M4.641 11.875h.824v-.211h-.824zm0 0\" class=\"es-E\"/></g><path d=\"M4.574 10.75c-.082.047-.137.094-.125.121 0 .023.027.039.066.059.055.043.094.113.063.152.051-.039.082-.102.082-.168s-.031-.125-.086-.164\" class=\"es-H\"/><path d=\"M4.574 10.75c-.082.047-.137.094-.125.121 0 .023.027.039.066.059.055.043.094.113.062.152.051-.039.082-.102.082-.168s-.031-.125-.086-.164zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M4.754 11.461h.586V8.586h-.586zm0 0\" class=\"es-P\"/><g class=\"es-B es-D\"><path d=\"M5.176 8.594v2.863m.063-2.863v2.863m-.484 0h.586V8.59h-.586v2.871zm0 0\" class=\"es-C\"/><g class=\"es-H\"><path d=\"M5.941 9.664a1.85 1.85 0 0 0-.875-.074c-.352.059-.617.199-.598.312v.008l-.129-.305c-.023-.125.27-.281.66-.348a1.68 1.68 0 0 1 .344-.023c.246 0 .465.027.594.078v.352\" class=\"es-I\"/><path d=\"M4.754 10.023c-.16-.012-.273-.051-.285-.121-.012-.055.047-.109.145-.168l.141.012v.277m.589-.218c.102.016.176.039.215.074l.004.008c.016.035-.074.109-.223.199v-.281\"/></g></g><path d=\"M4.391 10.574c-.016-.043.145-.133.367-.215l.293-.121c.313-.141.539-.297.512-.352v-.008c.016.012.035.297.035.297.031.051-.18.207-.465.344-.094.043-.285.113-.375.148-.164.055-.324.16-.309.199l-.059-.289\" class=\"es-H\"/><path d=\"M4.391 10.574c-.016-.043.145-.133.367-.215l.293-.121c.312-.141.539-.297.512-.352v-.008c.016.012.035.297.035.297.031.051-.18.207-.465.344-.094.043-.285.113-.375.148-.164.055-.324.16-.309.199l-.059-.289zm0 0\" class=\"es-B es-C es-D es-I\"/><path d=\"M4.719 9.523c.07-.02.113-.055.094-.109-.016-.039-.055-.039-.105-.023l-.098.035.086.219.031-.012.027-.012-.035-.094zm-.047-.102l.027-.008c.02-.008.043.004.051.027s.008.039-.016.059l-.023.012-.039-.09m.273-.094l-.031.012h-.031l.047.23.164-.031-.008-.016v-.012l-.094.02-.047-.199m.316.195l.102-.238h-.039l-.066.172-.09-.16-.039.004h-.035l.129.223h.039m.328-.176l.016-.031c-.02-.016-.039-.023-.062-.023-.062-.004-.102.023-.105.063-.008.078.121.074.113.129 0 .023-.027.031-.055.027s-.051-.016-.051-.043h-.012a.19.19 0 0 1-.016.043c.02.012.043.02.066.02.066.008.113-.02.121-.062.008-.074-.121-.078-.117-.129 0-.016.016-.027.051-.023.027 0 .039.012.043.031h.008\" class=\"es-E\"/><path d=\"M10.422 7.934s-.027.031-.051.035c-.016 0-.039-.02-.039-.02s-.02.02-.039.023-.051-.023-.051-.023l-.039.039c-.023 0-.039-.012-.039-.012s-.012.016-.027.023h-.016l-.023-.016-.023-.027-.02-.012-.016-.035v-.02c-.004-.023.031-.055.082-.062a.12.12 0 0 1 .074 0c.02-.02.066-.031.113-.031s.09.012.113.027c.031-.02.07-.031.109-.027.047 0 .094.012.109.031.02-.008.047-.008.078 0 .051.008.086.035.082.063v.02l-.016.035-.023.012-.023.027-.02.012c-.031-.004-.043-.02-.043-.02s-.023.016-.035.008c-.02-.008-.039-.039-.039-.039s-.035.031-.055.027-.035-.023-.035-.023-.027.023-.047.02-.043-.035-.043-.035\" class=\"es-H\"/><path d=\"M10.422 7.934s-.027.031-.051.035c-.016 0-.039-.02-.039-.02s-.02.02-.039.023-.051-.023-.051-.023l-.039.039c-.023 0-.039-.012-.039-.012s-.012.016-.027.023h-.016l-.023-.016-.023-.027-.02-.012-.016-.035v-.02c-.004-.023.031-.055.082-.063a.12.12 0 0 1 .074 0c.02-.02.066-.031.113-.031s.09.012.113.027c.031-.02.07-.031.109-.027.047 0 .094.012.109.031.02-.008.047-.008.078 0 .051.008.086.035.082.063v.02l-.016.035-.023.012-.023.027-.02.012c-.031-.004-.043-.02-.043-.02s-.023.016-.035.008c-.02-.008-.039-.039-.039-.039s-.035.031-.055.027-.035-.023-.035-.023-.027.023-.047.02-.043-.035-.043-.035zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.367 7.785c0-.039.023-.074.051-.074s.047.035.047.074-.016.066-.047.066-.051-.027-.051-.07\" class=\"es-E\"/><path d=\"M10.367 7.785c0-.039.023-.074.051-.074s.047.035.047.074-.016.066-.047.066-.051-.027-.051-.07zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.398 7.785c0-.039.008-.066.02-.066s.027.027.027.066-.012.063-.023.063-.023-.027-.023-.066\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M10.398 7.785c0-.039.008-.066.02-.066s.027.027.027.066-.012.062-.023.062-.023-.027-.023-.066zm0 0\" class=\"es-C\"/><path d=\"M10.164 8.074c-.008-.016-.012-.027-.02-.039a1.03 1.03 0 0 1 .555 0l-.023.031c-.004.008-.008.02-.012.031a.75.75 0 0 0-.246-.031c-.098 0-.195.012-.246.031l-.008-.023\" class=\"es-E\"/></g><path d=\"M10.418 8.164a1.2 1.2 0 0 0 .223-.023c.02-.008.035-.02.035-.031a.7.7 0 0 0-.258-.043.81.81 0 0 0-.242.031c-.012.023-.004.035.023.043.039.008.133.023.219.023\" class=\"es-E\"/><path d=\"M10.418 8.164a1.2 1.2 0 0 0 .223-.023c.02-.008.035-.02.035-.031a.7.7 0 0 0-.258-.043.81.81 0 0 0-.242.031c-.012.023-.004.035.023.043.039.008.133.023.219.023zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.633 7.816c.02-.016.031-.008.031 0s-.008.012-.02.012\" class=\"es-G\"/><g class=\"es-B es-C\"><path d=\"M10.633 7.816c.02-.016.031-.008.031 0s-.008.012-.02.012zm-.008-.055c0-.008.004-.016.016-.016.012.027.004.031 0 .031-.012 0-.016-.008-.016-.016zm-.043-.035c.023-.012.031-.008.031.004-.02.012-.023.012-.027.008zm-.051-.016c0-.008.008-.016.016-.016s.016.008.016.016-.008.016-.016.016-.016-.008-.016-.016zm-.055 0c0-.008.008-.012.02-.012s.016.004.016.016-.008.016-.016.016c-.016-.008-.02-.012-.02-.016zm0 0\" class=\"es-Q\"/><g class=\"es-F\"><path d=\"M10.793 7.922l.008-.039c0-.027-.012-.055-.027-.074s-.047-.031-.074-.031c-.02 0-.039.004-.051.012\" class=\"es-S\"/><path d=\"M10.613 7.844l.008-.027c0-.043-.043-.078-.094-.078-.023 0-.047.008-.063.016\"/></g><path d=\"M10.809 7.875c0-.012.008-.02.016-.02.012.027.004.031 0 .031s-.016-.004-.016-.016zm-.008-.059c0-.008.008-.016.016-.016.016.004.016.008.016.016-.023.012-.031.008-.031 0zm-.039-.043c.012-.016.016-.016.02-.016s.016.004.016.016-.008.016-.016.016c-.016-.008-.02-.012-.02-.016zm-.047-.027c0-.008.008-.012.02-.012.012.023.004.031 0 .031-.02-.008-.023-.012-.02-.02zm-.055.004c0-.008.008-.016.02-.016s.016.008.016.016-.008.016-.016.016-.02-.008-.02-.016zm0 0\" class=\"es-Q\"/></g><path d=\"M10.699 7.996l-.02-.02s-.023.012-.047.008-.035-.039-.035-.039-.027.027-.051.027-.035-.023-.035-.023-.027.02-.051.016-.043-.031-.043-.031-.023.031-.047.031-.035-.02-.035-.02-.012.023-.043.027-.051-.023-.051-.023-.016.027-.039.039c-.02 0-.043-.016-.043-.016l-.004.02-.012.004.004.02c.09-.027.18-.035.273-.035a1.06 1.06 0 0 1 .273.035l.008-.02\" class=\"es-E\"/><path d=\"M10.699 7.996l-.02-.02s-.023.012-.047.008-.035-.039-.035-.039-.027.027-.051.027-.035-.023-.035-.023-.027.02-.051.016-.043-.031-.043-.031-.023.031-.047.031-.035-.02-.035-.02-.012.023-.043.027-.051-.023-.051-.023-.016.027-.039.039c-.02 0-.043-.016-.043-.016l-.004.02-.012.004.004.02c.09-.027.18-.035.273-.035a1.06 1.06 0 0 1 .273.035l.008-.02zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.172 7.816c0-.008.008-.016.016-.016s.016.008.016.016c-.023.012-.031.008-.031 0\" class=\"es-G\"/><g class=\"es-B es-C\"><path d=\"M10.172 7.816c0-.008.008-.016.016-.016s.016.008.016.016c-.023.012-.031.008-.031 0zm.008-.055c0-.012.008-.016.016-.016s.02.004.02.016-.008.016-.02.016-.016-.008-.016-.016zm.039-.035c0-.008.012-.012.02-.012s.02.004.02.016c0 .004-.008.012-.02.012-.016-.008-.016-.012-.016-.016zm.051-.016c0-.008.008-.016.02-.016s.016.008.016.016-.008.016-.016.016-.02-.008-.02-.016zm.055 0c0-.008.008-.012.02-.012s.016.004.016.016-.008.016-.016.016c-.02-.008-.02-.012-.02-.016zm0 0\" class=\"es-Q\"/><g class=\"es-F\"><path d=\"M10.043 7.922c-.004-.016-.008-.027-.008-.039 0-.027.008-.055.027-.074s.047-.031.074-.031c.02 0 .035.004.051.012\" class=\"es-S\"/><path d=\"M10.227 7.844c-.008-.008-.012-.02-.012-.027 0-.039.047-.078.098-.078.02 0 .039.008.055.016\"/></g><path d=\"M9.996 7.875c0-.012.008-.02.016-.02s.016.008.016.016-.008.016-.016.016-.016-.004-.016-.016zM10 7.816c0-.008.012-.016.02-.016s.016.008.016.016c-.023.012-.031.008-.031 0zm.039-.043c0-.012.008-.016.02-.016s.016.008.016.016-.008.016-.016.016c-.02-.008-.02-.012-.02-.016zm.047-.027c0-.008.008-.012.02-.012.016.023.008.031 0 .031-.02-.008-.02-.012-.02-.02zm.055.004c0-.008.008-.016.02-.016.012.023.008.031 0 .031s-.02-.008-.02-.016zm0 0\" class=\"es-Q\"/></g><path d=\"M10.422 7.902h.008c0 .035.02.051.035.051s.035-.008.039-.027l.008-.008v.012c.004.02.023.031.039.031.023 0 .039-.016.039-.039l.016-.016.008.016c-.004.039.012.055.031.055s.027-.008.035-.02l.008-.008v.012c0 .012.004.023.016.027 0 0 .016 0 .035-.016s.027-.027.027-.027v.016s-.02.031-.035.039c-.008.008-.02.016-.031.012s-.023-.012-.027-.023c-.008.004-.016.008-.027.008-.02 0-.043-.012-.051-.031-.012.012-.027.02-.043.02s-.035-.008-.043-.023a.05.05 0 0 1-.039.016c-.02 0-.035-.008-.051-.023-.008.016-.027.023-.047.023-.012 0-.027-.004-.035-.016-.012.016-.031.023-.051.023s-.027-.008-.039-.02c-.008.02-.031.031-.055.031-.008 0-.02 0-.023-.008-.004.012-.016.023-.027.023s-.023 0-.035-.008-.027-.023-.035-.039l.004-.02.027.027c.02.016.035.016.035.016.012 0 .016-.016.016-.027v-.012l.008.008c.008.012.016.02.031.02.023 0 .039-.016.039-.039v-.031l.016.016c0 .023.02.039.035.039.023 0 .039-.012.043-.035v-.008l.008.008c.008.016.023.027.035.027.023 0 .043-.016.043-.035l.008-.012\" class=\"es-E\"/><path d=\"M10.422 7.902h.008c0 .035.02.051.035.051s.035-.008.039-.027l.008-.008v.012c.004.02.023.031.039.031.023 0 .039-.016.039-.039l.016-.016.008.016c-.004.039.012.055.031.055s.027-.008.035-.02l.008-.008v.012c0 .012.004.023.016.027 0 0 .016 0 .035-.016s.027-.027.027-.027v.016s-.02.031-.035.039c-.008.008-.02.016-.031.012s-.023-.012-.027-.023c-.008.004-.016.008-.027.008-.02 0-.043-.012-.051-.031-.012.012-.027.02-.043.02s-.035-.008-.043-.023a.05.05 0 0 1-.039.016c-.02 0-.035-.008-.051-.023-.008.016-.027.023-.047.023-.012 0-.027-.004-.035-.016-.012.016-.031.023-.051.023s-.027-.008-.039-.02c-.008.02-.031.031-.055.031-.008 0-.02 0-.023-.008-.004.012-.016.023-.027.023s-.023 0-.035-.008-.027-.023-.035-.039l.004-.02.027.027c.02.016.035.016.035.016.012 0 .016-.016.016-.027v-.012l.008.008c.008.012.016.02.031.02.023 0 .039-.016.039-.039v-.031l.016.016c0 .023.02.039.035.039.023 0 .039-.012.043-.035v-.008l.008.008c.008.016.023.027.035.027.023 0 .043-.016.043-.035l.008-.012zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.418 8a1.01 1.01 0 0 0-.273.035l-.012-.008.004-.012c.074-.02.172-.035.281-.035a1.11 1.11 0 0 1 .285.035l-.008.02A1.1 1.1 0 0 0 10.418 8\" class=\"es-E\"/><path d=\"M10.418 8a1.01 1.01 0 0 0-.273.035l-.012-.008.004-.012c.074-.02.172-.035.281-.035a1.11 1.11 0 0 1 .285.035l-.008.02A1.1 1.1 0 0 0 10.418 8zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.313 8.039c0-.012.008-.016.02-.016s.016.008.016.016-.008.016-.016.016-.02-.008-.02-.016\" class=\"es-G\"/><g class=\"es-B es-F\"><path d=\"M10.313 8.039c0-.012.008-.016.02-.016s.016.008.016.016-.008.016-.016.016-.02-.008-.02-.016zm0 0\" class=\"es-C\"/><path d=\"M10.422 8.043h-.039V8.02h.074c.008.02.004.023-.004.023h-.035\" class=\"es-H\"/><path d=\"M10.246 8.059h-.023c-.016-.012-.012-.02-.004-.02l.047-.008c.02.012.016.016.016.02l-.035.004\" class=\"es-M\"/><path d=\"M10.145 8.074l.012-.016h.023l-.012.023-.023-.008\" class=\"es-H\"/></g><path d=\"M10.492 8.039c0-.012.008-.016.016-.016s.02.004.02.016-.008.016-.02.016-.016-.008-.016-.016\" class=\"es-G\"/><g class=\"es-B es-F\"><path d=\"M10.492 8.039c0-.012.008-.016.016-.016s.02.004.02.016-.008.016-.02.016-.016-.008-.016-.016zm0 0\" class=\"es-C\"/><path d=\"M10.594 8.059h.027l-.051-.027c-.016.016-.012.02-.004.023h.027\" class=\"es-M\"/><path d=\"M10.691 8.078l-.008-.02h-.027l.012.023.023-.004\" class=\"es-H\"/></g><path d=\"M10.418 8.141c-.074.004-.152-.004-.227-.023.074-.016.148-.023.227-.023.09 0 .168.012.227.023-.059.016-.137.023-.223.023\" class=\"es-H\"/><path d=\"M10.418 8.141c-.074.004-.152-.004-.227-.023a1.09 1.09 0 0 1 .227-.023c.09 0 .168.012.227.023-.059.016-.137.023-.223.023zm0 0\" class=\"es-B es-C es-F es-I\"/><path d=\"M10.695 7.949l-.004-.012-.012.023\" class=\"es-E\"/><path d=\"M10.695 7.949l-.004-.012-.012.023zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.523 7.922c-.012-.016-.02-.012-.02-.004l.02.004\" class=\"es-E\"/><path d=\"M10.523 7.922c-.012-.016-.02-.012-.02-.004zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.32 7.922l.02-.004-.008.012\" class=\"es-E\"/><path d=\"M10.32 7.922l.02-.004-.008.012zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.145 7.949l.004-.012.012.023\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M10.145 7.949l.004-.012.012.023zm0 0\" class=\"es-C\"/><g class=\"es-E\"><path d=\"M10.418 7.82l-.031.016.023.051.008.004.012-.004.023-.051-.035-.016\"/><path d=\"M10.352 7.895l.012.02.051-.016.004-.008-.004-.008-.051-.012-.012.023m.132.001l-.012.02-.047-.016-.004-.008v-.008l.051-.012.016.023m-.269-.058l-.027.027.035.039.008.004.008-.004.008-.051-.031-.012\"/><path d=\"M10.168 7.922l.016.016.047-.02V7.91l-.004-.008-.051-.004-.008.023m.133-.026l-.012.023h-.047l-.008-.008.004-.012.043-.023.02.02m-.184.031v.023l-.051.008-.008-.004v-.008l.035-.031.023.012\"/></g></g><path d=\"M10.215 7.91c0-.012.008-.02.02-.02s.02.008.02.02-.012.016-.02.012c-.008.004-.016-.004-.02-.012\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M10.215 7.91c0-.012.008-.02.02-.02s.02.008.02.02-.012.016-.02.012c-.008.004-.016-.004-.02-.012zm0 0\" class=\"es-C\"/><g class=\"es-E\"><path d=\"M10.621 7.836l.023.027-.031.039-.008.004-.004-.004-.012-.051.031-.012m.052.083l-.02.016-.043-.02V7.91l.004-.008.047-.004.012.023\"/><path d=\"M10.539 7.895l.008.023h.051l.008-.008-.004-.012-.047-.023-.016.02m.176.031v.023l.051.008.008-.004v-.008l-.039-.031-.02.012\"/></g></g><path d=\"M10.402 7.891c0-.008.008-.016.02-.016s.016.008.016.016-.008.02-.016.02-.02-.012-.02-.02\" class=\"es-E\"/><path d=\"M10.402 7.891c0-.008.008-.016.02-.016s.016.008.016.016-.008.02-.016.02-.02-.012-.02-.02zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.586 7.91c0-.012.012-.02.02-.02s.02.008.02.02-.008.012-.02.012-.016-.004-.02-.012\" class=\"es-E\"/><path d=\"M10.586 7.91c0-.012.012-.02.02-.02s.02.008.02.02-.008.012-.02.012-.016-.004-.02-.012zm0 0\" class=\"es-B es-C es-F\"/><g class=\"es-E\"><path d=\"M10.387 7.703c0-.02.016-.031.031-.031s.035.012.035.031-.016.031-.035.031-.027-.016-.031-.031\"/><path d=\"M10.445 7.691v.023h-.059v-.023h.016v-.051h-.02v-.016h.02v-.023h.023v.023h.023v.02h-.023v.047h.016\"/></g><path d=\"M10.445 7.691v.023h-.059v-.023h.016v-.051h-.02v-.016h.02v-.023h.023v.023h.023v.02h-.023v.047zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.461 7.691v.023h-.09v-.023h.039v-.051h-.027v-.016h.023v-.023h.023v.023h.023v.02h-.023v.047h.035\" class=\"es-E\"/><path d=\"M10.43 7.672c.016 0 .023.016.023.031s-.016.031-.035.031-.027-.016-.031-.031.008-.027.023-.031\" class=\"es-B es-C es-F\"/><path d=\"M10.051 7.957l-.023-.027c-.008-.004-.016-.008-.027-.008 0-.004.012-.012.023-.012h.016l.016.047\" class=\"es-E\"/><path d=\"M10.051 7.957l-.023-.027c-.008-.004-.016-.008-.027-.008 0-.004.012-.012.023-.012h.016l.016.047zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.051 7.949c.027.004.027.012.023.02l-.02-.004\" class=\"es-E\"/><path d=\"M10.051 7.949c.027.004.027.012.023.02l-.02-.004zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.781 7.957l.023-.027c.008-.008.023-.008.023-.008s-.008-.012-.02-.012h-.016l-.016.035.004.012\" class=\"es-E\"/><path d=\"M10.781 7.957l.023-.027c.008-.008.023-.008.023-.008s-.008-.012-.02-.012h-.016l-.016.035zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M10.781 7.949c-.027.004-.027.012-.023.02l.02-.004\" class=\"es-E\"/><g class=\"es-B\"><path d=\"M10.781 7.949c-.027.004-.027.012-.023.02l.02-.004zm0 0\" class=\"es-C es-F\"/><path d=\"M10.02 8.363h.805v-.207h-.805v.211zm0 0\" class=\"es-D es-E\"/></g><path d=\"M10.734 8.504h-.633c.023-.008.039-.023.039-.043s-.016-.043-.039-.051h.637-.004c-.02.008-.035.027-.035.051s.016.035.035.043\" class=\"es-E\"/><path d=\"M10.734 8.504h-.633c.023-.008.039-.023.039-.043s-.016-.043-.039-.051h.637-.004c-.02.008-.035.027-.035.051s.016.035.035.043zm0 0\" class=\"es-B es-C es-D es-I\"/><path d=\"M10.121 8.504h.602c.02 0 .035.012.035.027s-.016.031-.035.031h-.602c-.023 0-.039-.016-.039-.031s.02-.031.039-.031\" class=\"es-E\"/><path d=\"M10.121 8.504h.602c.02 0 .035.012.035.027s-.016.031-.035.031h-.602c-.023 0-.039-.016-.039-.031s.02-.031.039-.031zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M10.121 8.363h.602c.02 0 .035.016.035.027s-.016.02-.035.02h-.602c-.023 0-.039-.008-.039-.02s.016-.023.039-.023\" class=\"es-E\"/><path d=\"M10.121 8.363h.602c.02 0 .035.016.035.027s-.016.02-.035.02h-.602c-.023 0-.039-.008-.039-.02s.016-.023.039-.023zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M9.863 11.902c.051 0 .102-.012.137-.031.043-.02.094-.027.141-.027s.105.012.141.027a.31.31 0 0 0 .141.031.3.3 0 0 0 .141-.031.33.33 0 0 1 .137-.027c.047-.004.094.008.137.027a.33.33 0 0 0 .145.031v.09c-.051 0-.098-.012-.145-.035a.33.33 0 0 0-.137-.027.34.34 0 0 0-.137.027.3.3 0 0 1-.141.035.29.29 0 0 1-.141-.035c-.043-.02-.094-.031-.141-.027s-.098.008-.141.027a.3.3 0 0 1-.141.035v-.09\" class=\"es-O\"/><g class=\"es-B es-D\"><path d=\"M9.863 11.902c.051 0 .102-.012.137-.031.043-.02.094-.027.141-.027s.105.012.141.027a.31.31 0 0 0 .141.031.3.3 0 0 0 .141-.031.33.33 0 0 1 .137-.027c.047-.004.094.008.137.027a.33.33 0 0 0 .145.031v.09c-.051 0-.098-.012-.145-.035a.33.33 0 0 0-.137-.027.34.34 0 0 0-.137.027.3.3 0 0 1-.141.035.29.29 0 0 1-.141-.035c-.043-.02-.094-.031-.141-.027s-.098.008-.141.027a.3.3 0 0 1-.141.035v-.09zm0 0\" class=\"es-C\"/><path d=\"M9.863 11.992c.051 0 .102-.016.137-.035s.086-.027.141-.027.105.012.141.027.086.035.141.035a.29.29 0 0 0 .141-.035.33.33 0 0 1 .137-.027c.055 0 .105.012.137.027a.33.33 0 0 0 .145.035v.086a.37.37 0 0 1-.145-.031c-.043-.02-.09-.031-.137-.027-.055 0-.102.008-.137.027s-.086.031-.141.031a.25.25 0 0 1-.141-.031.36.36 0 0 0-.141-.027c-.047-.004-.098.008-.141.027s-.09.031-.141.031v-.086\" class=\"es-P\"/><path d=\"M9.863 12.074c.051 0 .102-.008.137-.027s.086-.027.141-.027.105.008.141.027.086.031.141.031.098-.012.141-.031a.28.28 0 0 1 .137-.031.28.28 0 0 1 .137.031c.039.016.09.031.145.031v.086a.37.37 0 0 1-.145-.031c-.043-.02-.09-.031-.137-.027a.34.34 0 0 0-.137.027.3.3 0 0 1-.141.031.36.36 0 0 1-.141-.027c-.043-.023-.094-.031-.141-.031s-.098.008-.141.031a.36.36 0 0 1-.141.027v-.09\" class=\"es-O\"/><path d=\"M9.863 12.25c.047.004.094-.008.137-.027a.31.31 0 0 1 .141-.031c.051 0 .105.012.141.031s.086.027.141.027a.3.3 0 0 0 .141-.031.33.33 0 0 1 .137-.027c.055 0 .105.012.137.031.047.02.094.031.145.027v-.086a.37.37 0 0 1-.145-.031c-.043-.02-.09-.031-.137-.027a.34.34 0 0 0-.137.027c-.035.016-.086.031-.141.031a.36.36 0 0 1-.141-.027c-.043-.023-.094-.031-.141-.031s-.098.008-.141.031a.36.36 0 0 1-.141.027v.086\" class=\"es-P\"/></g><path d=\"M9.863 12.336c.047.004.094-.008.137-.027a.31.31 0 0 1 .141-.031c.051 0 .105.012.141.031s.086.027.141.027.098-.008.141-.031a.33.33 0 0 1 .137-.027c.055 0 .105.012.137.031a.33.33 0 0 0 .145.027v-.086c-.051.004-.098-.008-.145-.027a.28.28 0 0 0-.137-.031.33.33 0 0 0-.137.027c-.043.02-.09.031-.141.031a.36.36 0 0 1-.141-.027.3.3 0 0 0-.141-.031.31.31 0 0 0-.141.031.36.36 0 0 1-.141.027v.086\" class=\"es-O\"/><path d=\"M9.863 12.336c.047.004.094-.008.137-.027a.31.31 0 0 1 .141-.031c.051 0 .105.012.141.031s.086.027.141.027.098-.008.141-.031a.33.33 0 0 1 .137-.027c.055 0 .105.012.137.031a.33.33 0 0 0 .145.027v-.086c-.051.004-.098-.008-.145-.027a.28.28 0 0 0-.137-.031.33.33 0 0 0-.137.027c-.043.02-.09.031-.141.031a.36.36 0 0 1-.141-.027.3.3 0 0 0-.141-.031.31.31 0 0 0-.141.031.36.36 0 0 1-.141.027v.086zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M10.734 11.551v.02c0 .055.043.098.098.098h-.824a.1.1 0 0 0 .102-.098l-.004-.02h.629\" class=\"es-E\"/><path d=\"M10.734 11.551v.02c0 .055.043.098.098.098h-.824a.1.1 0 0 0 .102-.098l-.004-.02zm0 0\" class=\"es-B es-C es-D es-I\"/><path d=\"M10.121 11.492h.602c.02 0 .035.012.035.031s-.016.027-.035.027h-.602c-.023 0-.039-.012-.039-.031s.02-.027.039-.027\" class=\"es-E\"/><g class=\"es-B es-D\"><path d=\"M10.121 11.492h.602c.02 0 .035.012.035.031s-.016.027-.035.027h-.602c-.023 0-.039-.012-.039-.031s.02-.027.039-.027zm0 0\" class=\"es-C\"/><path d=\"M10.008 11.875h.824v-.211h-.824zm0 0\" class=\"es-E\"/></g><path d=\"M10.898 10.75c.078.047.133.094.125.121s-.027.039-.066.059c-.059.043-.094.113-.066.152-.051-.039-.082-.102-.078-.168s.031-.125.086-.164\" class=\"es-H\"/><path d=\"M10.898 10.75c.078.047.133.094.125.121s-.027.039-.066.059c-.059.043-.094.113-.066.152-.051-.039-.082-.102-.078-.168s.031-.125.086-.164zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M10.129 11.461h.586V8.586h-.586zm0 0\" class=\"es-P\"/><g class=\"es-B es-D\"><path d=\"M10.551 8.59v2.863m.07-2.863v2.863m-.488.008h.582V8.586h-.586v2.871zm0 0\" class=\"es-C\"/><g class=\"es-H\"><path d=\"M9.531 9.664a1.85 1.85 0 0 1 .875-.074c.348.059.613.199.598.312v.008l.129-.305c.023-.125-.273-.281-.66-.348a1.68 1.68 0 0 0-.344-.023c-.25 0-.465.027-.598.078v.352\" class=\"es-I\"/><path d=\"M10.715 10.023c.164-.012.273-.051.289-.121.008-.055-.047-.109-.145-.168l-.145.012v.277m-.589-.218a.49.49 0 0 0-.215.074v.008c-.02.035.07.109.219.199v-.281\"/></g></g><path d=\"M11.078 10.574c.016-.043-.145-.133-.363-.215l-.293-.121c-.312-.141-.539-.297-.512-.352v-.008c-.016.012-.035.297-.035.297-.031.051.18.207.465.344.09.043.285.113.375.148.16.055.324.16.309.199l.055-.289\" class=\"es-H\"/><path d=\"M11.078 10.574c.016-.043-.145-.133-.363-.215l-.293-.121c-.313-.141-.539-.297-.512-.352v-.008c-.016.012-.035.297-.035.297-.031.051.18.207.465.344.09.043.285.113.375.148.16.055.324.16.309.199l.055-.289zm0 0\" class=\"es-B es-C es-D es-I\"/><path d=\"M9.895 9.539c.023-.086.055-.164.082-.246h-.02c-.035.063-.051.125-.07.184-.039-.055-.078-.102-.102-.152l-.039.004h-.039l.152.215h.02l.016-.004m.227-.246h-.039-.027v.23h.156V9.5h-.098l.004-.207m.254.035l.078.012v-.023l-.219-.02v.031c.023-.004.051-.004.074 0l-.016.207h.063l.016-.203m.09.227c.012 0 .02 0 .031.008l.031.008.027-.109.02.047.031.078.039.008c.012 0 .023.008.035.012l-.012-.027c-.016-.039-.035-.07-.047-.109.035 0 .07-.012.078-.047.004-.02 0-.035-.027-.055-.016-.012-.043-.016-.062-.02l-.09-.02-.055.227m.113-.195c.027.008.059.012.059.039v.02c-.012.031-.039.043-.078.031l.02-.09m.301.262l-.008.078.031.016.031.02.02-.262-.023-.012-.23.145.02.008.016.008.063-.043.086.047zm-.062-.055l.074-.055-.008.09-.066-.039\" class=\"es-E\"/><g class=\"es-B\"><path d=\"M6.832 7.215a.08.08 0 0 1 .074-.074c.039 0 .082.035.082.074s-.035.074-.078.074c-.02.004-.039-.004-.055-.02s-.023-.035-.023-.055zm0 0\" class=\"es-C es-K\"/><path d=\"M7.715 6.578c.234 0 .449.035.586.09a1.21 1.21 0 0 0 .551.086 1.07 1.07 0 0 1 .383.09 1.06 1.06 0 0 1 .281.176l-.059.055-.016.141-.152.176-.074.066-.187.148-.094.008-.027.078-1.184-.141-1.191.141-.027-.078-.094-.008-.184-.152-.078-.063-.152-.176-.02-.141-.055-.055a1 1 0 0 1 .281-.176 1 1 0 0 1 .383-.09c.074.008.156.004.246-.008a1.17 1.17 0 0 0 .301-.074 1.53 1.53 0 0 1 .582-.094zm0 0\" class=\"es-F es-H\"/><path d=\"M7.734 8.141c-.445 0-.844-.051-1.125-.133-.02-.008-.031-.027-.027-.047s.012-.039.027-.043c.367-.098.746-.145 1.125-.137.438 0 .836.051 1.117.137.016.004.027.023.027.043s-.012.039-.027.047c-.281.082-.676.133-1.117.133\" class=\"es-D es-E\"/></g><path d=\"M7.73 8.086c-.398 0-.758-.047-1.031-.117.273-.074.633-.113 1.031-.117.348-.004.695.035 1.035.113-.277.074-.641.121-1.035.121\" class=\"es-H\"/><g class=\"es-B es-C\"><path d=\"M7.758 8.09v-.238m-.063.238v-.238\" class=\"es-K\"/><path d=\"M7.637 8.09v-.238m-.062.238v-.238\" class=\"es-Q\"/><path d=\"M7.523 8.09v-.238m-.105.223v-.215m.047.219v-.227m-.141.211v-.195m.047.203v-.211\" class=\"es-F\"/><path d=\"M7.199 8.055v-.18m.039.176v-.176m.043.188v-.187m-.125.176v-.168\" class=\"es-D\"/><path d=\"M7.113 8.043v-.156m-.043.152v-.148\" class=\"es-L\"/><path d=\"M6.977 8.023v-.109m.047.117v-.129m-.094.113v-.102\" class=\"es-R\"/><path d=\"M6.891 8.012v-.09M6.84 8v-.07m-.043.063v-.051\" stroke-width=\".026\"/><path d=\"M6.742 7.98v-.027\" stroke-width=\".034\"/><path d=\"M8.016 8.074v-.219m-.109.227v-.23m-.078.234v-.238\" class=\"es-K\"/></g><g class=\"es-D es-E es-B\"><path d=\"M7.727 7.777c-.383-.004-.762.047-1.125.145.02-.008.016-.035-.012-.109-.039-.094-.09-.09-.09-.09.309-.094.75-.152 1.23-.152a4.71 4.71 0 0 1 1.234.152s-.055-.004-.094.086c-.027.074-.027.105-.008.113-.281-.086-.688-.141-1.133-.141\"/><path d=\"M7.73 7.57c-.484 0-.922.059-1.23.152-.012.004-.02 0-.031-.004s-.016-.012-.02-.02 0-.02.004-.031a.04.04 0 0 1 .023-.02c.406-.109.828-.16 1.254-.156.492 0 .941.062 1.254.156.023.008.035.031.027.051s-.031.031-.051.023c-.312-.094-.75-.152-1.23-.152\"/></g><path d=\"M7.73 8.086c-.398 0-.758-.047-1.031-.117.273-.074.633-.113 1.031-.117.348-.004.695.035 1.035.113-.277.074-.641.121-1.035.121zm0 0\" class=\"es-B es-C es-D es-I\"/><path d=\"M7.387 7.68c0-.02.016-.039.039-.039s.035.02.035.039-.012.039-.035.039-.039-.02-.039-.039\" class=\"es-B es-D es-G\"/><path d=\"M7.73 7.711h-.117c-.023 0-.039-.02-.039-.039s.016-.035.039-.035h.238c.02 0 .039.016.039.035s-.02.039-.039.039h-.117\" class=\"es-B es-D es-H\"/><path d=\"M7.137 7.742l-.086.008c-.023.004-.039-.012-.047-.027 0-.012.004-.023.012-.031s.016-.012.027-.012l.082-.012.09-.012c.02 0 .039.012.043.035s-.012.039-.035.039l-.086.012\" class=\"es-B es-D es-M\"/><path d=\"M6.789 7.75c0-.02.016-.035.039-.035s.039.016.039.035-.016.039-.039.039-.035-.016-.035-.039\" class=\"es-B es-D es-G\"/><path d=\"M6.523 7.82l.047-.063.125.016-.098.074-.07-.027\" class=\"es-B es-D es-H\"/><path d=\"M8.324 7.742l.086.008c.02.004.039-.012.043-.027s-.004-.02-.008-.027-.016-.016-.027-.016l-.082-.012-.09-.012c-.012 0-.02.004-.027.008s-.012.016-.016.027c0 .02.012.039.035.039l.086.012\" class=\"es-B es-D es-M\"/><path d=\"M8 7.68c0-.02.016-.039.035-.039s.039.02.039.039-.016.039-.039.039S8 7.699 8 7.68m.59.07c0-.02.02-.035.039-.035s.043.016.043.035-.016.039-.039.039-.039-.016-.039-.039\" class=\"es-B es-D es-G\"/><path d=\"M8.934 7.82l-.043-.063-.125.016.098.074.07-.027\" class=\"es-B es-D es-H\"/><path d=\"M6.648 7.98c.277-.078.66-.129 1.082-.129s.801.051 1.082.129\" class=\"es-B es-C es-D\"/><g class=\"es-E\"><path d=\"M6.836 6.891l.055.039.074-.121c-.094-.055-.148-.16-.137-.27.008-.152.195-.285.438-.285a.62.62 0 0 1 .32.09c0-.02 0-.043.008-.066-.102-.055-.211-.082-.328-.078-.277 0-.492.152-.504.34-.012.109.031.215.113.285l-.039.066\" class=\"es-B es-D\"/><path d=\"M6.84 6.891c-.09-.063-.145-.16-.148-.273s.074-.227.199-.297a.31.31 0 0 0-.129.254c0 .094.039.188.113.25l-.035.066\" class=\"es-B es-D\"/><path d=\"M6.004 7.016c-.055-.059-.086-.141-.086-.219 0-.051.012-.098.035-.145.078-.156.316-.27.602-.27a1.08 1.08 0 0 1 .223.023l-.039.051c-.059-.012-.121-.016-.184-.016-.262 0-.48.102-.543.238-.02.035-.027.074-.027.117 0 .078.039.156.102.207l-.098.156-.047-.039.063-.105\"/></g><path d=\"M6.004 7.016c-.055-.059-.086-.141-.086-.219 0-.051.012-.098.035-.145.078-.156.316-.27.602-.27a1.08 1.08 0 0 1 .223.023l-.039.051c-.059-.012-.121-.016-.184-.016-.262 0-.48.102-.543.238-.02.035-.027.074-.027.117 0 .078.039.156.102.207l-.098.156-.047-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M6.102 6.5a.37.37 0 0 0-.148.152c-.023.043-.035.094-.035.145 0 .086.035.16.086.219l-.055.094c-.059-.07-.086-.156-.09-.242 0-.152.094-.281.242-.367\" class=\"es-E\"/><path d=\"M6.102 6.5a.37.37 0 0 0-.148.152c-.023.043-.035.094-.035.145 0 .086.035.16.086.219l-.055.094c-.059-.07-.086-.156-.09-.242 0-.152.094-.281.242-.367zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M7.727 6.164c.063 0 .117.043.129.098a.79.79 0 0 1 .016.168v.043c.004.125.023.234.051.305l-.195.188-.195-.187c.023-.07.043-.18.047-.305V6.43c0-.059.008-.113.016-.168s.066-.098.133-.098\" class=\"es-E\"/><path d=\"M7.727 6.164c.062 0 .117.043.129.098a.79.79 0 0 1 .016.168v.043c.004.125.023.234.051.305l-.195.188-.195-.187c.023-.07.043-.18.047-.305V6.43c0-.059.008-.113.016-.168s.066-.098.133-.098zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M7.727 6.227c.035 0 .063.02.066.051a.92.92 0 0 1 .016.156v.039c.004.121.02.227.043.289l-.125.121-.129-.121a.79.79 0 0 0 .043-.289v-.039l.016-.156c.012-.031.039-.051.07-.051\" class=\"es-E\"/><g class=\"es-B es-D\"><path d=\"M7.727 6.227c.035 0 .062.02.066.051a.92.92 0 0 1 .016.156v.039c.004.121.02.227.043.289l-.125.121-.129-.121a.79.79 0 0 0 .043-.289v-.039l.016-.156c.012-.031.039-.051.07-.051zm0 0\" class=\"es-C\"/><g class=\"es-E\"><path d=\"M8.613 6.891l-.047.039-.078-.121c.086-.047.137-.137.137-.234v-.035c-.008-.152-.199-.285-.438-.285a.61.61 0 0 0-.32.09c0-.02-.004-.043-.008-.066.102-.055.215-.082.328-.078.277 0 .492.152.5.34.012.109-.031.215-.109.285l.035.066\"/><path d=\"M8.609 6.891c.094-.059.152-.16.156-.273s-.082-.227-.199-.297c.078.059.125.152.125.254s-.043.188-.117.25l.035.066\"/></g></g><path d=\"M9.449 7.016c.055-.059.086-.141.082-.219 0-.051-.012-.102-.031-.145-.078-.156-.316-.27-.602-.27-.074 0-.152.008-.227.023l.039.051c.063-.012.125-.016.188-.016.262 0 .48.102.539.238.02.035.027.074.027.117a.27.27 0 0 1-.098.207l.094.156.051-.039-.066-.105\" class=\"es-E\"/><path d=\"M9.449 7.016c.055-.059.086-.141.082-.219 0-.051-.012-.102-.031-.145-.078-.156-.316-.27-.602-.27-.074 0-.152.008-.227.023l.039.051c.062-.012.125-.016.188-.016.262 0 .48.102.539.238.02.035.027.074.027.117a.27.27 0 0 1-.098.207l.094.156.051-.039-.066-.105zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M9.348 6.5c.063.035.117.09.152.152.02.043.031.094.031.145 0 .078-.031.16-.086.219l.063.094a.4.4 0 0 0 .086-.242c0-.152-.098-.281-.246-.367\" class=\"es-E\"/><path d=\"M9.348 6.5c.063.035.117.09.152.152.02.043.031.094.031.145 0 .078-.031.16-.086.219l.063.094a.4.4 0 0 0 .086-.242c0-.152-.098-.281-.246-.367zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M7.656 6.801c0-.035.031-.066.07-.066s.07.031.07.066-.035.066-.07.066-.066-.027-.07-.066\" class=\"es-G\"/><g class=\"es-B\"><g class=\"es-D\"><path d=\"M7.656 6.801c0-.035.031-.066.07-.066s.07.031.07.066-.035.066-.07.066-.066-.027-.07-.066zm0 0\" class=\"es-C\"/><path d=\"M7.656 6.676c0-.039.031-.066.07-.066s.07.027.07.066-.035.063-.07.063-.066-.027-.07-.063m.016-.141c0-.023.023-.047.055-.047s.055.023.055.047c0 .031-.027.055-.055.055s-.055-.023-.055-.055m.016-.121c0-.02.016-.039.039-.039s.035.02.035.039-.016.035-.035.035-.039-.016-.039-.035m.008-.105c0-.02.016-.031.031-.031s.031.012.031.031-.016.027-.031.027-.031-.012-.031-.027\" class=\"es-G\"/><path d=\"M7.734 7.191l.043.008c-.016.055-.008.113.027.156s.086.07.141.07c.074 0 .141-.047.164-.113.004 0 .02-.063.027-.063s.004.066.008.063c.012.086.09.141.176.141.051.004.098-.016.133-.051s.047-.086.043-.137l.059-.055.023.074c-.008.023-.016.047-.012.074.004.086.078.156.168.156.059 0 .113-.027.141-.07l.035-.047v.055c0 .059.023.105.074.113 0 0 .063.004.152-.059.078-.062.121-.117.121-.117l.008.063s-.066.105-.141.152c-.039.023-.102.047-.152.035-.051-.004-.09-.047-.113-.094-.035.02-.078.035-.121.035-.098.004-.187-.051-.23-.137a.26.26 0 0 1-.195.078.27.27 0 0 1-.195-.09.25.25 0 0 1-.172.066c-.086 0-.164-.043-.211-.113-.051.07-.129.113-.215.113-.066 0-.129-.023-.176-.066a.27.27 0 0 1-.195.09.26.26 0 0 1-.195-.078c-.043.086-.129.141-.227.137-.043 0-.09-.012-.125-.035-.023.047-.059.09-.113.098a.27.27 0 0 1-.152-.039c-.074-.047-.141-.152-.141-.152l.008-.063s.043.055.125.117.148.059.148.059c.051-.008.074-.055.074-.113v-.055l.039.047c.031.043.082.074.137.074.094 0 .168-.074.168-.16.004-.027 0-.055-.012-.078l.027-.07.059.055v.023c0 .09.074.164.172.164.09 0 .164-.055.176-.141 0 0 0-.059.008-.063s.023.063.027.059c.023.07.094.117.168.117.055 0 .109-.023.141-.07s.043-.102.027-.156l.047-.008\" class=\"es-E\"/><path d=\"M8.949 7.414c.008-.031 0-.059-.023-.066s-.047.012-.059.039 0 .062.023.066.047-.008.059-.039m-.77-.148c0-.031-.012-.063-.039-.063-.02-.004-.035.02-.043.055-.004.027.012.055.031.059s.047-.023.051-.051m-.898 0c0-.031.016-.063.039-.063s.039.02.043.055c.004.027-.008.055-.031.059s-.043-.023-.047-.051m-.77.148c-.008-.031 0-.059.02-.066s.047.012.059.039 0 .062-.02.066-.051-.008-.059-.039\" class=\"es-G\"/><path d=\"M6.852 6.898c.039.027.07.066.082.109 0 0 0-.012.023-.023s.035-.008.035-.008l-.004.047-.008.082c-.008.023-.016.043-.027.062-.016-.016-.035-.02-.059-.016-.016.004-.035.016-.043.031 0 0-.027-.02-.047-.047l-.039-.074-.027-.043s.02-.008.043 0c.02 0 .027.008.027.008-.004-.047.012-.09.039-.129m.016.367c-.012-.008-.02-.02-.023-.035s0-.035.012-.047c0 0-.035-.016-.066-.023s-.078-.008-.086-.008H6.66l.008.02c.008.016.02.023.02.023-.047.012-.086.039-.113.074.039.031.082.043.129.039l-.004.031v.02l.035-.012c.012-.004.059-.02.074-.039.031-.016.059-.043.059-.043m.102-.016c.008-.012.008-.027.008-.043s-.012-.027-.023-.035l.051-.051c.023-.016.051-.023.074-.035l.043-.012v.02c0 .012-.004.02-.008.031.047-.004.09.012.129.039-.027.035-.066.062-.109.074.008.016.016.031.027.043h-.039c-.016 0-.059 0-.086-.008s-.047-.016-.066-.023\" class=\"es-E\"/><path d=\"M6.832 7.215a.08.08 0 0 1 .074-.074c.039 0 .082.035.082.074s-.035.074-.078.074c-.02.004-.039-.004-.055-.02s-.023-.035-.023-.055\" class=\"es-H\"/><g class=\"es-E\"><path d=\"M7.73 6.781c.039.035.063.082.07.137 0 0 .008-.012.031-.02s.047-.008.047-.008l-.02.055-.031.09c-.008.023-.02.043-.035.062-.016-.016-.039-.027-.063-.023s-.047.008-.062.023c0 0-.023-.023-.035-.062l-.031-.09-.02-.055.047.008c.023.008.031.02.031.02 0-.051.031-.105.07-.137\"/><path d=\"M7.672 7.191c-.012-.012-.016-.027-.02-.043s.004-.039.016-.051c0 0-.027-.023-.066-.035-.027-.016-.074-.027-.094-.027l-.047-.008.008.023.016.031c-.051.004-.102.027-.137.066.035.031.086.059.137.059l-.023.059.047-.004c.016-.004.066-.016.094-.027.039-.016.07-.039.07-.039m.113 0c.027-.027.027-.066.004-.098 0 0 .035-.023.066-.035s.062-.023.094-.027l.047-.012-.004.027-.016.031c.051 0 .102.031.133.066-.035.035-.082.055-.133.059.004.02.012.043.02.059l-.047-.004-.094-.027c-.035-.016-.066-.039-.066-.039m.824-.301a.2.2 0 0 0-.082.113l-.027-.023c-.02-.008-.035-.008-.035-.008l.008.047c0 .012 0 .051.008.082.008.039.023.062.023.062.016-.016.039-.02.059-.016s.035.02.047.031l.043-.047c.02-.031.035-.063.039-.074l.027-.043s-.016-.008-.039 0c-.023 0-.035.008-.035.008.004-.047-.012-.09-.039-.129m-.012.367c.012-.008.02-.02.023-.035s0-.031-.008-.047c0 0 .031-.016.063-.023s.078-.008.09-.008h.039l-.012.02c-.004.008-.008.016-.016.023.047.012.086.039.109.074-.039.031-.082.043-.129.039l.008.031v.02l-.039-.012c-.012-.004-.055-.02-.074-.039-.031-.016-.055-.043-.055-.043m-.105-.016c-.004-.016-.008-.027-.008-.043s.012-.031.023-.035c0 0-.023-.031-.051-.051s-.066-.031-.074-.035l-.039-.012v.02a.06.06 0 0 0 .008.031c-.047-.004-.094.008-.133.039.027.031.066.062.113.074 0 0-.012.008-.02.027l-.012.016h.039c.016 0 .063 0 .086-.008s.047-.016.066-.023\"/></g><path d=\"M8.477 7.215c0-.039.035-.074.074-.074s.078.035.078.074-.035.074-.074.074c-.02.004-.043-.004-.055-.02s-.023-.035-.023-.055m.867.164c-.016-.02-.051-.016-.082.008s-.035.062-.02.082.059.016.086-.012c.027-.02.039-.059.02-.074\" class=\"es-H\"/><path d=\"M9.234 7.426l.027-.039c.027-.023.066-.027.086-.008l.004.008s.039-.074.086-.098.129-.02.129-.02c0-.027-.012-.055-.031-.074s-.051-.031-.078-.027a.11.11 0 0 0-.09.035l-.008-.035s-.047.008-.07.066 0 .133 0 .133-.012-.031-.027-.055a.24.24 0 0 0-.09-.059l-.047-.027-.004.02v.027c-.047-.004-.098.004-.141.02.02.039.055.066.094.082l-.027.027c-.008.008-.012.012-.016.02l.047.008.094.008.063-.008m-3.008 0c0-.016-.012-.027-.027-.039-.027-.027-.063-.031-.082-.012l-.008.012s-.039-.074-.086-.102-.125-.02-.125-.02c0-.055.047-.102.105-.102.039 0 .07.012.09.035l.008-.035s.047.008.074.066c.02.055-.004.133-.004.133s.012-.031.031-.055c.027-.023.055-.047.09-.059l.047-.027v.047c.047-.004.098.004.141.02-.02.039-.055.066-.094.082l.031.027.012.02-.043.008-.098.008-.062-.008\" class=\"es-E\"/><path d=\"M6.113 7.379c.023-.02.059-.016.09.012s.035.059.016.074c-.02.023-.059.02-.082-.008-.031-.02-.039-.059-.02-.074m1.535-.234c0-.043.035-.074.078-.074s.078.031.078.074c0 .035-.039.074-.074.074-.023 0-.043-.008-.059-.02s-.023-.035-.023-.055\" class=\"es-H\"/></g><g class=\"es-F\"><path d=\"M7.566 6.023c0-.082.074-.152.164-.152s.156.07.156.152-.07.148-.16.148-.156-.062-.16-.148\" class=\"es-O\"/><path d=\"M7.688 5.598v.082h-.09v.086h.086V6h-.109l-.008.023c0 .023.004.039.012.059h.297c.008-.02.012-.035.012-.059L7.879 6h-.105v-.234h.086V5.68h-.086v-.082h-.09zm0 0\" class=\"es-E\"/></g></g><path d=\"M7.742 12.398c-.461-.004-.914-.105-1.328-.309a.85.85 0 0 1-.48-.766v-1.199h3.613v1.199a.85.85 0 0 1-.48.766c-.41.203-.863.305-1.324.309\" class=\"es-P\"/><g class=\"es-B es-L\"><path d=\"M7.742 12.398c-.461-.004-.914-.105-1.328-.309a.85.85 0 0 1-.48-.766v-1.199h3.613v1.199a.85.85 0 0 1-.48.766c-.41.203-.863.305-1.324.309zm0 0\" class=\"es-C\"/><path d=\"M7.734 10.125h1.812V8.117H7.734zm0 0\" class=\"es-P\"/></g><path d=\"M7.734 11.324c0 .473-.398.859-.898.859s-.906-.387-.906-.863v-1.199h1.805v1.199\" class=\"es-H\"/><g class=\"es-B es-L\"><g class=\"es-E\"><path d=\"M6.324 12.035c.055.027.133.074.215.098l-.004-2.055h-.211zm0 0\"/><path d=\"M5.926 11.309a.89.89 0 0 0 .207.563V10.09H5.93v1.219zm0 0\" class=\"es-I\"/></g><path d=\"M6.727 12.176a.95.95 0 0 0 .211 0v-2.098h-.211v2.102zm0 0\" fill=\"rgb(78.039216%,70.980392%,0%)\"/><path d=\"M7.125 12.133c.078-.02.152-.051.219-.094v-1.961h-.219l-.004 2.055zm0 0\" class=\"es-E\"/><path d=\"M5.93 10.125h1.805V8.117H5.926v2.008zm0 0\" class=\"es-H\"/><path d=\"M7.539 11.852c.09-.078.172-.258.199-.461l.004-1.312h-.203l.004 1.777zm0 0\" class=\"es-E\"/><path d=\"M7.734 11.324c0 .473-.398.859-.898.859s-.906-.387-.906-.863v-1.199h1.805v1.199\" class=\"es-C\"/><path d=\"M9.547 10.125v1.199c0 .473-.406.859-.902.859s-.91-.387-.91-.863v-1.199h1.812\" class=\"es-H\"/></g><g class=\"es-E\"><path d=\"M8.066 11.027l.004.02c0 .023-.02.039-.043.039-.008 0-.02-.004-.027-.012s-.012-.016-.012-.027v-.02H7.93c-.008.051.02.098.07.109v.148h.059v-.148c.031-.008.055-.031.063-.059h.168v-.047h-.227m.816 0v.047H8.73l-.012.023.172.195-.043.035-.176-.199-.004.004v.328h-.062v-.328h-.008l-.18.195-.043-.035.176-.199-.16-.016v-.059h.488zm.098 0v.047h.164c.012.031.035.051.066.059v.148h.059v-.148c.039-.012.066-.047.066-.09l-.059-.02.004.02c0 .023-.02.039-.039.039s-.043-.016-.043-.039l-.219-.02m-.25.832a.55.55 0 0 0 .137-.039l.031.051a.58.58 0 0 1-.16.047c-.012.043-.051.074-.098.074s-.082-.031-.094-.074a.66.66 0 0 1-.172-.047l.027-.051c.051.02.098.035.152.039.012-.023.031-.043.055-.051v-.25h.063v.25c.023.008.047.027.059.051zm-.414-.086l-.027.055a.56.56 0 0 1-.137-.117c-.035.008-.066 0-.094-.02-.02-.016-.031-.039-.035-.062s.008-.051.023-.066l.004-.004a.58.58 0 0 1-.047-.18h.063a.4.4 0 0 0 .039.148c.016 0 .035 0 .051.008l.152-.168.051.035-.152.172c.016.031.016.074-.004.102.031.039.07.07.113.098zm-.223-.18c.012-.016.035-.016.055 0s.02.039.004.055-.043.016-.059.004c-.008-.008-.016-.02-.016-.027s.008-.023.016-.031zm-.082-.168l-.062-.012-.012-.16L8 11.23v.094a.43.43 0 0 0 .008.102zm.051-.199l.063.016v.082a.48.48 0 0 1 .012.078l-.062.023c-.008-.031-.012-.066-.012-.102zm.211.516c.055.043.113.074.18.098l.016-.062a.46.46 0 0 1-.152-.074l-.043.039m-.031.051a.67.67 0 0 0 .18.098l-.043.043a.92.92 0 0 1-.152-.074l.016-.066m.082-.352l.063.027.109-.125-.035-.051-.137.148m-.047-.039l-.039-.051.113-.125.059.027-.133.148m.68.371l.027.055a.56.56 0 0 0 .137-.117c.031.008.066 0 .094-.02.02-.016.031-.039.035-.062s-.008-.051-.023-.066l-.004-.004a.58.58 0 0 0 .047-.18h-.062a.49.49 0 0 1-.039.148c-.016 0-.035 0-.051.008l-.156-.168-.047.035.152.172c-.02.031-.02.074.004.102-.031.039-.07.07-.113.098zm.223-.18c-.016-.012-.039-.012-.055 0s-.02.039-.004.055.043.016.059.004c.008-.008.012-.02.012-.027s-.004-.023-.012-.031zm.082-.168l.063-.012.008-.16-.062-.023v.094c0 .039 0 .07-.008.105zm-.051-.199l-.066.016v.082c0-.027-.008.078-.008.078l.063.023.012-.102v-.098m-.211.516c-.055.043-.113.074-.18.098l-.016-.062a.46.46 0 0 0 .152-.074l.043.039m.031.051a.67.67 0 0 1-.18.098l.043.043a.92.92 0 0 0 .152-.074l-.016-.066m-.082-.352l-.062.027-.109-.125.039-.051.133.148m.047-.039l.039-.051-.113-.125-.059.027.133.148m-.754-.324l.02.059h.168l.02-.059h-.207m.793 0l-.02.059h-.168l-.02-.059h.207m-.437.82c0-.023.02-.039.043-.039.012 0 .02.004.027.012s.012.016.012.027c0 .023-.016.039-.035.039-.012 0-.023-.004-.031-.012s-.012-.016-.016-.027zm.074-.293l.063-.016v-.16l-.062-.02v.195m-.062 0l-.062-.016v-.16l.063-.02v.195\"/><path d=\"M7.93 11.031c.008-.035.039-.059.07-.074v-.195h.059v.199c.031.012.055.035.063.059h.168v.012h-.227c-.008-.012-.023-.02-.039-.02s-.023.008-.035.02H7.93m.461 0v-.012h.152l-.18-.223.043-.039.188.211.008-.004v-.277h.063v.273h.008l.188-.207.043.039-.184.207.012.02h.148v.012zm.809 0c.008-.012.02-.023.035-.02s.031.008.039.02h.059c-.004-.035-.031-.059-.066-.074v-.195h-.059v.199c-.031.012-.055.031-.066.059h-.164v.012h.227m-1.133-.562l.227.258.047-.039-.23-.25.012-.023h.168v-.062h-.168c-.012-.039-.051-.066-.094-.066a.1.1 0 0 0-.07.027c-.016.016-.027.043-.031.066 0 .043.027.078.07.09v.195h.059v-.195zm1.199 0v.199h-.062v-.195l-.242.25-.047-.039.23-.258-.004-.012h-.168v-.062h.168c.016-.039.051-.066.09-.066.027 0 .055.008.07.027s.031.043.031.066c0 .043-.027.082-.07.09zm-.602 0v.125h-.066v-.121c-.027-.008-.051-.031-.062-.059h-.148v-.062h.148c.016-.039.051-.066.094-.066s.082.027.094.066h.148v.059h-.148c-.008.027-.031.051-.059.059zM8 10.621l-.066.016v.16l.066.02v-.195m.059 0l.063.016v.16l-.062.02v-.195m1.148 0l-.066.016v.16l.066.02v-.195m.059 0l.063.016v.16l-.062.02v-.195m-.957.027l.063-.023.109.121-.039.055-.133-.152m-.047.039l-.039.051.113.125.059-.027-.133-.148m.691-.043l-.059-.023-.113.121.039.055.133-.152m.047.039l.039.051-.113.125-.059-.027.133-.148m-.762.336l.02-.059h.168l.02.059h-.207m-.25-.637c0-.023.02-.035.043-.035s.039.016.039.035-.016.039-.039.039c-.008 0-.02-.004-.027-.012s-.016-.016-.016-.027zm.453.031l-.02.059h-.168l-.02-.059h.207m0-.059l-.02-.062h-.168l-.02.063h.207m.59.664l-.02-.059h-.168l-.02.059h.207m.164-.637c0-.023.02-.035.039-.035.012-.004.023 0 .031.008s.012.02.012.027c0 .023-.02.039-.039.039-.008 0-.02-.004-.027-.012s-.016-.016-.016-.027zm-.605 0c0-.023.02-.035.043-.035.012-.004.02 0 .027.008s.012.02.012.027c0 .023-.016.039-.039.039s-.039-.016-.043-.039zm.234.031l.02.059h.172l.02-.059h-.211m0-.059l.02-.062h.172l.02.063h-.211m-.223.188l-.062.016v.164l.063.016v-.199m.066 0l.059.016v.164l-.059.016v-.195\"/></g><g stroke=\"rgb(78.431373%,69.411765%,0%)\" class=\"es-C es-F\"><path d=\"M8.727 11.859a.55.55 0 0 0 .137-.039l.031.051a.58.58 0 0 1-.16.047c-.012.043-.051.074-.098.074s-.082-.031-.094-.074a.66.66 0 0 1-.172-.047l.027-.051c.051.02.098.035.152.039.012-.023.031-.043.055-.051v-.25h.062v.25c.023.008.047.027.059.051zm-.176-.762c-.004-.008-.008-.012-.008-.02h-.152v-.055h.152l-.18-.223.043-.039.188.207.008-.281h.066v.273h.004l.188-.207.043.039-.184.207.012.02h.148v.059H8.73c0 .008-.008.016-.012.02l.176.199-.047.035-.176-.199-.004.004v.328h-.062v-.328l-.008-.004-.18.199-.043-.035.176-.199m-.48-.629l.227.258.047-.039-.23-.25.012-.023h.168v-.062h-.168c-.012-.039-.051-.066-.094-.066-.051 0-.094.043-.098.094 0 .043.027.078.066.09v.195h.059v-.195zm.242 1.305l-.027.055a.56.56 0 0 1-.137-.117c-.035.008-.066 0-.094-.02-.02-.016-.031-.039-.035-.062s.008-.051.023-.066l.004-.004c-.023-.059-.039-.117-.043-.18h.059a.4.4 0 0 0 .039.148c.016 0 .035 0 .051.008l.152-.168.051.035-.152.172c.02.031.016.074-.004.102.031.039.07.07.113.098zM8 11.285v-.148c-.043-.012-.07-.047-.07-.09 0-.035.031-.074.07-.09v-.195h.059v.199c.031.008.055.031.063.059h.168v.059h-.168c-.008.027-.031.051-.059.059v.148H8m.086.309c.016-.016.039-.016.059 0s.02.039.004.055-.043.016-.059.004c-.008-.008-.016-.02-.016-.027s.008-.023.016-.031zm-.074-.168l-.066-.012-.012-.16L8 11.23v.094a.29.29 0 0 0 .012.102zm.051-.199l.059.016v.082a.48.48 0 0 1 .012.078l-.063.023-.012-.102v-.098zm.207.516c.055.043.113.074.18.098l.016-.063a.46.46 0 0 1-.152-.074l-.043.039m-.031.051a.67.67 0 0 0 .18.098l-.043.043a.92.92 0 0 1-.152-.074l.016-.066\"/><path d=\"M8.32 11.441l.063.027.109-.125-.035-.051-.137.148m-.047-.039l-.039-.051.113-.125.059.027-.133.148m-.285-.355c0-.023.02-.035.035-.035.027 0 .047.016.047.035s-.02.043-.043.043c-.008 0-.02-.004-.027-.012s-.012-.016-.012-.027zm.965.727l.027.055a.56.56 0 0 0 .137-.117c.031.008.066 0 .098-.02.02-.016.031-.039.031-.062s-.008-.051-.023-.066l-.004-.004a.58.58 0 0 0 .047-.18h-.062a.49.49 0 0 1-.039.148c-.016 0-.035 0-.051.008l-.156-.168-.047.035.152.172c-.02.031-.02.074.004.102-.031.039-.07.07-.113.098zm.312-.488v-.148c.039-.012.066-.047.066-.09 0-.035-.023-.074-.066-.09v-.195h-.059v.199a.1.1 0 0 0-.066.059h-.164v.059h.164c.012.031.035.047.066.059v.148zm-.086.309c-.016-.016-.043-.016-.059 0s-.02.039-.004.055.043.016.059.004c.008-.008.012-.02.012-.027s-.004-.023-.012-.031zm.074-.168l.066-.012.008-.16-.063-.023v.094c0 .039 0 .066-.008.102zm-.047-.199l-.066.016v.082c0-.027-.008.078-.008.078l.062.023.012-.102v-.098m.059-.754v.195h-.059v-.195l-.242.25-.043-.039.223-.262v-.008h-.168v-.062h.164c.016-.039.055-.066.094-.066.055 0 .098.043.098.094 0 .043-.027.078-.066.09zm-.598 0v.121h-.066v-.121c-.027-.008-.051-.031-.063-.059h-.148v-.062h.148c.016-.039.047-.066.094-.066s.082.027.094.066h.148v.059h-.148c-.008.027-.031.051-.059.059zm.328 1.27c-.055.043-.113.074-.18.098l-.016-.063a.46.46 0 0 0 .152-.074l.043.039m.031.051a.67.67 0 0 1-.18.098l.043.043a.92.92 0 0 0 .152-.074l-.016-.066M8 10.617l-.066.02v.16l.066.02v-.195m.063 0l.059.016v.16l-.059.02v-.203m1.145 0l-.066.02v.16l.066.02v-.199\"/><path d=\"M9.266 10.617l.063.02v.16l-.063.02v-.203m-.32.824l-.063.027-.109-.125.039-.051.133.148m.047-.039l.039-.051-.113-.125-.059.027.133.148m-.684-.75l.063-.023.113.121-.039.055-.137-.152m-.047.039l-.039.051.113.125.059-.027-.133-.148m.691-.043l-.059-.023-.113.121.039.055.133-.152m.047.039l.039.051-.113.121-.059-.023.133-.148m-.762.336l.02-.059h.168l.02.059h-.207m0 .059l.02.059h.168l.02-.059h-.207m-.25-.691c0-.023.02-.035.043-.035s.039.012.039.035-.016.039-.039.039c-.012 0-.023 0-.031-.008s-.012-.02-.012-.031zm.453.031l-.02.059h-.168l-.02-.059h.207m0-.059l-.02-.063h-.168l-.02.063h.207m.754.691c0-.02.02-.035.039-.035s.043.016.043.035-.02.043-.039.043c-.008 0-.02 0-.031-.008s-.012-.02-.012-.031zm-.164-.027l-.02-.059h-.168l-.02.059h.207m0 .059l-.02.059h-.168l-.02-.059h.207m-.437.82c0-.023.02-.039.043-.039s.039.016.039.039-.016.039-.035.039c-.012 0-.023-.004-.031-.012s-.012-.016-.016-.027zm.074-.293l.063-.016v-.16l-.063-.02v.195m-.062 0l-.063-.016v-.16l.063-.02v.195m.59-1.223c0-.023.02-.035.039-.035.012-.004.023 0 .031.008s.012.016.012.027c0 .023-.02.039-.039.039-.008 0-.02-.004-.027-.012s-.016-.016-.016-.027zm-.605 0c0-.023.02-.035.043-.035.012-.004.02 0 .027.008s.012.016.012.027c0 .023-.016.039-.035.039-.012 0-.023-.004-.031-.012s-.012-.016-.016-.027zm.234.031l.02.059h.172l.02-.059h-.207m0-.059l.016-.063h.172l.02.063h-.207m-.227.188l-.059.016v.164l.059.016v-.203m.066 0l.059.016v.164l-.059.016v-.195\"/></g><path d=\"M8.539 11.051c0-.051.043-.094.098-.094s.094.043.098.094c-.004.051-.047.09-.098.09s-.098-.035-.098-.09\" class=\"es-M\"/><path d=\"M8.66 8.613V8.59l.004-.012h-.086c-.035-.012-.062-.027-.09-.047-.027-.027-.039-.039-.059-.047-.047-.004-.086.016-.086.016s.039.016.063.051.059.047.07.051c.02.008.098 0 .113.004l.07.008\" class=\"es-J\"/><g class=\"es-B es-D\"><path d=\"M8.66 8.613V8.59l.004-.012h-.086c-.035-.012-.063-.027-.09-.047-.027-.027-.039-.039-.059-.047-.047-.004-.086.016-.086.016s.039.016.063.051.059.047.07.051c.02.008.098 0 .113.004zm0 0\" class=\"es-C\"/><path d=\"M8.93 8.531v.051c.008.023-.004.047 0 .059s.004.023.012.031l.008.035-.027-.02-.023-.016v.039c.004.008.012.031.023.043l.035.047c.008.02.004.055.004.055s-.012-.027-.027-.031l-.047-.027s.027.031.027.059-.012.059-.012.059-.012-.027-.031-.043l-.035-.031s.016.043.016.074V9l-.035-.039-.039-.023c0-.008.02.02.023.039s.012.086.066.168c.039.051.086.137.199.109s.074-.18.051-.25c-.02-.055-.035-.113-.039-.172 0-.031.023-.109.02-.125-.004-.039-.004-.078.008-.117.016-.047.027-.066.035-.086s.012-.031.012-.047l.004-.051.027.051.004.055s.004-.035.039-.059c.027-.023.066-.043.074-.055s.012.051-.012.082l-.062.074s.023-.012.043-.012h.035s-.023.016-.055.059-.016.047-.035.078c-.023.039-.039.039-.066.059-.035.027-.016.156-.012.176s.074.168.074.207.008.117-.059.172c-.039.035-.109.035-.125.043s-.047.043-.047.105.023.074.039.09c.023.02.043.008.047.023s.008.02.02.027.012.016.008.027-.031.043-.043.066l-.027.09c0 .008-.004.035.004.047 0 0 .031.039.012.047S9.008 9.852 9 9.852l-.035.02c-.012-.004-.012-.012-.012-.031l-.004-.027c-.008 0-.012.008-.016.02s0 .031-.012.031-.02-.016-.031-.02-.031-.008-.031-.016a.05.05 0 0 1 .027-.035c.016 0 .031-.012.02-.02s-.02-.008-.027 0-.027 0-.023-.008v-.031c0-.008-.016-.02.004-.031s.027.008.051.004.031-.008.039-.02.004-.039-.008-.055-.027-.02-.035-.027l-.012-.035v.082l-.027-.031c-.008-.012-.02-.047-.02-.047v.047c0 .016.012.027.008.031s-.031-.027-.039-.031c-.016-.008-.027-.02-.039-.035l-.012-.055c-.004-.016-.004-.035 0-.055l.012-.039h-.051c-.027 0-.047-.012-.055.008s-.008.059.004.105.02.07.016.078-.016.023-.023.031h-.035c-.016-.008-.031-.012-.047-.012h-.047l-.043-.012c-.012.004-.027.012-.02.027.008.023-.008.027-.02.027l-.035-.008c-.016-.004-.031 0-.031-.016s.008-.016.016-.027.008-.02 0-.02h-.02c-.008.008-.02.02-.031.016s-.016-.016-.016-.035-.027-.047 0-.043c.02 0 .051.016.051 0 .008-.012 0-.016-.004-.027s-.031-.016-.012-.023l.023-.02c.004-.008.016-.031.027-.023.023.008 0 .027.023.051s.035.035.074.027c.039 0 .051-.008.051-.02l-.004-.035v-.039s-.016.012-.02.023l-.016.031v-.078c-.004-.008-.004-.02-.008-.027l-.012.031-.004.039s-.027-.02-.02-.055c.004-.027-.004-.063.004-.078.008-.008.027-.055.078-.059h.098l.074-.012-.133-.07c-.027-.02-.055-.047-.074-.074l-.023-.063s-.02 0-.035.012-.035.023-.047.039l-.027.035.004-.043V9.07s-.016.047-.035.066l-.055.035v-.031l.008-.035s-.016.031-.039.035-.07 0-.074.016.008.039 0 .055c0 .012-.012.02-.012.02l-.031-.016c-.016 0-.027.008-.027.008s-.012-.016-.008-.027.027-.023.02-.031l-.031.008c-.012.004-.027.012-.027-.008s.008-.023 0-.035c0-.012 0-.02.008-.023l.043-.004c0-.008-.008-.02-.031-.023s-.027-.02-.016-.031c.008-.004.008-.008.016-.02s.008-.027.027-.02.016.031.039.039.051 0 .074-.008L8.313 9l.059-.039-.039-.027c-.012-.012-.027-.035-.035-.039l-.07-.023c-.02-.004-.043-.008-.063-.016l.031-.012c.008-.008.02-.023.027-.023h.012-.051c-.012-.004-.039-.023-.051-.023l-.027.004s.027-.016.051-.02l.039-.004s-.035-.012-.043-.02l-.023-.039c-.008-.004-.012-.02-.02-.02l-.039.012c-.016 0-.023-.008-.023-.023l-.004-.016c-.008-.012-.023-.031-.008-.039h.055c0-.008-.02-.023-.031-.031s-.039-.02-.027-.027l.031-.02c.008-.012.012-.039.027-.027s.027.047.039.043.012-.031.012-.039c0-.016 0-.039.008-.035s.02.016.039.02.035-.004.035.008-.012.027-.02.039-.016.035-.012.051.023.047.043.055.047.016.063.031.066.047.082.051l.027.016s.02-.008.043-.008.078 0 .098-.008.047-.023.035-.039c-.004-.023-.047-.039-.043-.051s.02-.016.043-.016c.031 0 .07.004.078-.039.008-.035.008-.055-.031-.066s-.066-.008-.074-.039c-.008-.023-.016-.031-.008-.039s.023-.012.051-.016.063 0 .074-.008c.004-.008.008-.027.02-.035s.055-.012.055-.012a.6.6 0 0 0 .102.063c.027.023.055.051.082.078\" fill=\"rgb(92.941176%,44.705882%,66.666667%)\"/></g><path d=\"M8.555 8.504l-.008-.02v-.012s.031 0 .027.012l-.02.02\" class=\"es-N\"/><path d=\"M8.555 8.504l-.008-.02v-.012s.031 0 .027.012zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M8.699 8.453v-.016s.027 0 .039.012c.02.016.031.035.031.035l-.027-.012h-.02l-.012-.004v-.012h-.012\" class=\"es-N\"/><g class=\"es-B es-C\"><path d=\"M8.699 8.453v-.016s.027 0 .039.012c.02.016.031.035.031.035l-.027-.012h-.02l-.012-.004v-.012h-.012zm0 0\" class=\"es-K\"/><path d=\"M8.898 8.672l-.016-.023\" class=\"es-F\"/></g><path d=\"M8.152 8.496s.02.016.031.016h.027s.008-.02.004-.027c-.008-.047-.043-.055-.043-.055s.012.027.004.039-.012.02-.023.027\" class=\"es-J\"/><path d=\"M8.152 8.496s.02.016.031.016h.027s.008-.02.004-.027c-.008-.047-.043-.055-.043-.055s.012.027.004.039-.012.02-.023.027zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.07 8.535s-.016-.027-.051-.023c-.027 0-.051.031-.051.031h.047c.008.012.012.035.012.035l.027-.02c.004-.008.012-.016.016-.023\" class=\"es-J\"/><path d=\"M8.07 8.535s-.016-.027-.051-.023c-.027 0-.051.031-.051.031h.047c.008.012.012.035.012.035l.027-.02c.004-.008.012-.016.016-.023zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.031 8.648s-.027.004-.043.023-.012.047-.012.047.016-.02.035-.02l.035.008-.004-.031-.012-.027\" class=\"es-J\"/><g class=\"es-B\"><path d=\"M8.031 8.648s-.027.004-.043.023-.012.047-.012.047.016-.02.035-.02l.035.008-.004-.031zm0 0\" class=\"es-C es-D\"/><g class=\"es-F es-N\"><path d=\"M8.559 8.645l.012-.02.008.02h-.023\"/><path d=\"M8.586 8.645l.012-.02.016.02h-.031m-.009-.122l.027.012-.023.016-.004-.023\"/><path d=\"M8.605 8.535l.027.008-.02.016-.008-.023\"/></g><path d=\"M8.406 8.766s-.023.004-.035.02-.012.039-.012.039.023-.02.055-.012l.047.012.047-.012s-.023.031-.023.047l.004.043c0 .027-.02.059-.02.059l.035-.008c.023-.008.047-.02.066-.031l.031-.039s-.008.039 0 .055l.008.059.031-.023c.008-.004.027-.016.031-.023l.012-.039s0 .031.016.047l.023.062s.012-.031.023-.043.023-.027.023-.035 0-.023-.004-.035l.016.031m-.41.02s.02-.027.035-.035l.043-.031.035-.016m.035.188l.051-.027c.012-.012.027-.023.035-.039\" class=\"es-C es-D\"/></g><path d=\"M8.121 9.016s-.012-.02-.039-.012c-.027 0-.047.035-.047.035s.023-.008.039-.004.023.012.023.012l.012-.012.012-.023\" class=\"es-J\"/><path d=\"M8.121 9.016s-.012-.02-.039-.012c-.027 0-.047.035-.047.035s.023-.008.039-.004.023.012.023.012l.012-.012.012-.023zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.094 9.121s-.023 0-.043.012-.02.043-.02.043.016-.016.031-.012l.035.008v-.023c.008-.012-.004-.027-.004-.027\" class=\"es-J\"/><path d=\"M8.094 9.121s-.023 0-.043.012-.02.043-.02.043.016-.016.031-.012l.035.008v-.023c.008-.012-.004-.027-.004-.027zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.145 9.219s0 .027.012.047.043.02.043.02l-.012-.027c0-.016.012-.027.012-.027s-.012-.012-.027-.012h-.027\" class=\"es-J\"/><path d=\"M8.145 9.219s0 .027.012.047.043.02.043.02l-.012-.027c0-.016.012-.027.012-.027s-.012-.012-.027-.012zm.602.047s.074.047.07.082-.039.086-.039.086\" class=\"es-B es-C es-D\"/><path d=\"M8.406 9.473s-.016-.023-.039-.023-.055.027-.055.027.031-.004.039.008l.02.023.02-.012.016-.023\" class=\"es-J\"/><path d=\"M8.406 9.473s-.016-.023-.039-.023-.055.027-.055.027.031-.004.039.008l.02.023.02-.012zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.332 9.574s-.035-.004-.051.012-.016.047-.016.047.023-.023.035-.02c.02 0 .039.012.039.012v-.023l-.012-.027\" class=\"es-J\"/><path d=\"M8.332 9.574s-.035-.004-.051.012-.016.047-.016.047.023-.023.035-.02c.02 0 .039.012.039.012v-.023l-.012-.027zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.398 9.68s-.008.023 0 .039.039.031.039.031-.012-.016-.008-.031.027-.027.027-.027l-.055-.008\" class=\"es-J\"/><path d=\"M8.398 9.68s-.008.023 0 .039.039.031.039.031-.012-.016-.008-.031.027-.027.027-.027l-.055-.008zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.852 9.723s-.031-.008-.047 0-.031.055-.031.055.027-.023.047-.02.039.012.039.012v-.031l-.008-.016\" class=\"es-J\"/><path d=\"M8.852 9.723s-.031-.008-.047 0-.031.055-.031.055.027-.023.047-.02.039.012.039.012v-.031zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.863 9.832s-.02.023-.012.043l.02.035s0-.023.008-.035l.039-.012-.027-.02c-.008-.004-.016-.008-.027-.012\" class=\"es-J\"/><path d=\"M8.863 9.832s-.02.023-.012.043l.02.035s0-.023.008-.035l.039-.012-.027-.02a.19.19 0 0 0-.027-.012zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.977 9.863s-.012.027.008.047.039.02.039.02-.012-.027-.008-.039c.004-.02.02-.027.02-.027l-.031-.008-.027.012\" class=\"es-J\"/><g class=\"es-B\"><path d=\"M8.977 9.863s-.012.027.008.047.039.02.039.02-.012-.027-.008-.039c.004-.02.02-.027.02-.027l-.031-.008-.027.012zm0 0\" class=\"es-C es-D\"/><g class=\"es-L\"><path d=\"M7.828 11.863c.078.023.113.078.113.145 0 .086-.082.148-.187.148-.113 0-.199-.063-.199-.148 0-.062.039-.137.113-.145l-.008-.012-.023-.027h.043l.031.02.02-.027c.008-.016.02-.02.02-.02l.023.023.012.02.027-.016.027-.012s0 .016-.008.027l-.004.023\" fill=\"rgb(100%,83.921569%,56.862745%)\"/><path d=\"M7.734 12.25s-.141-.098-.203-.109c-.078-.016-.172 0-.207 0 0 0 .043.027.066.051s.086.055.125.066c.113.031.223-.008.223-.008m.039.008s.09-.094.188-.109c.113-.012.188.012.234.023l-.059.031c-.02.012-.074.055-.148.059s-.164-.012-.18-.008l-.035.004\" class=\"es-M\"/><path d=\"M7.75 12.141c-.035-.031-.059-.082-.059-.133a.19.19 0 0 1 .059-.133c.039.035.059.082.059.133s-.02.098-.059.133\" class=\"es-H\"/><path d=\"M7.715 12.336s.02-.055.02-.102v-.078h.027s.012.043.012.078l-.004.09-.027.004-.027.008\" class=\"es-M\"/></g></g><path d=\"M9.523 7.152c0-.02.02-.039.039-.039s.043.02.043.039-.02.035-.039.035-.039-.016-.039-.035\" class=\"es-G\"/><path d=\"M9.523 7.152c0-.02.02-.039.039-.039s.043.02.043.039-.02.035-.039.035-.039-.016-.039-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M9.578 7.059c0-.023.02-.039.039-.039s.039.016.039.039-.016.035-.039.035-.035-.016-.035-.035\" class=\"es-G\"/><path d=\"M9.578 7.059c0-.023.02-.039.039-.039s.039.016.039.039-.016.035-.039.035-.035-.016-.035-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M9.613 6.945c0-.02.02-.039.039-.039s.043.02.043.039-.02.039-.039.039c-.012 0-.02-.004-.027-.012s-.016-.016-.016-.027\" class=\"es-G\"/><path d=\"M9.613 6.945c0-.02.02-.039.039-.039s.043.02.043.039-.02.039-.039.039c-.012 0-.02-.004-.027-.012s-.016-.016-.016-.027zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M9.617 6.824c0-.02.02-.035.039-.035s.043.016.043.035-.02.039-.039.039-.039-.016-.039-.039\" class=\"es-G\"/><path d=\"M9.617 6.824c0-.02.02-.035.039-.035s.043.016.043.035-.02.039-.039.039-.039-.016-.039-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M9.59 6.711c0-.02.02-.035.035-.035.027 0 .047.016.047.035s-.02.039-.043.039-.035-.016-.035-.039\" class=\"es-G\"/><path d=\"M9.59 6.711c0-.02.02-.035.035-.035.027 0 .047.016.047.035s-.02.039-.043.039-.035-.016-.035-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M9.527 6.605c0-.02.02-.039.039-.039.027 0 .043.02.043.039s-.016.035-.039.035-.039-.016-.039-.035\" class=\"es-G\"/><path d=\"M9.527 6.605c0-.02.02-.039.039-.039.027 0 .043.02.043.039s-.016.035-.039.035-.039-.016-.039-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M9.449 6.516c0-.02.016-.035.039-.035s.035.016.035.035-.012.039-.035.039-.039-.016-.039-.039\" class=\"es-G\"/><path d=\"M9.449 6.516c0-.02.016-.035.039-.035s.035.016.035.035-.012.039-.035.039-.039-.016-.039-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M9.352 6.441c0-.02.02-.035.043-.035s.035.016.035.035-.016.039-.035.039-.039-.016-.039-.039\" class=\"es-G\"/><path d=\"M9.352 6.441c0-.02.02-.035.043-.035s.035.016.035.035-.016.039-.035.039-.039-.016-.039-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M9.242 6.387c0-.023.016-.039.039-.039s.039.016.039.039-.016.035-.039.035-.039-.016-.039-.035\" class=\"es-G\"/><path d=\"M9.242 6.387c0-.023.016-.039.039-.039s.039.016.039.039-.016.035-.039.035-.039-.016-.039-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M9.125 6.34c0-.016.016-.035.039-.035s.039.016.039.035-.016.039-.039.039-.035-.016-.035-.039\" class=\"es-G\"/><path d=\"M9.125 6.34c0-.016.016-.035.039-.035s.039.016.039.035-.016.039-.039.039-.035-.016-.035-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.996 6.32c0-.02.016-.039.039-.039s.035.02.035.039-.016.035-.035.035-.039-.016-.039-.035\" class=\"es-G\"/><path d=\"M8.996 6.32c0-.02.016-.039.039-.039s.035.02.035.039-.016.035-.035.035-.039-.016-.039-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.871 6.313c0-.02.016-.039.039-.039s.039.02.039.039-.016.035-.039.035-.039-.016-.039-.035\" class=\"es-G\"/><path d=\"M8.871 6.312c0-.02.016-.039.039-.039s.039.02.039.039-.016.035-.039.035-.039-.016-.039-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.75 6.32c0-.023.016-.039.035-.039.027 0 .043.016.043.039s-.016.035-.039.035-.035-.016-.035-.035\" class=\"es-G\"/><path d=\"M8.75 6.32c0-.023.016-.039.035-.039.027 0 .043.016.043.039s-.016.035-.039.035-.035-.016-.035-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.629 6.32c0-.023.02-.039.039-.039s.039.016.039.039-.02.035-.035.035-.023 0-.031-.008-.012-.02-.012-.027\" class=\"es-G\"/><g class=\"es-B es-D\"><path d=\"M8.629 6.32c0-.023.02-.039.039-.039s.039.016.039.039-.02.035-.035.035-.023 0-.031-.008-.012-.02-.012-.027zm0 0\" class=\"es-C\"/><path d=\"M8.688 6.422c0-.02.02-.039.039-.039.027 0 .039.02.039.039s-.012.035-.035.035-.039-.016-.039-.035m.023.113c0-.02.016-.035.039-.035s.035.016.035.035-.016.039-.035.039-.039-.016-.039-.039m0 .113c0-.02.023-.039.043-.039s.035.02.035.039-.016.039-.035.039-.039-.02-.039-.039m-.039.105c0-.02.02-.039.039-.039.027 0 .043.02.043.039s-.016.039-.039.039-.039-.02-.039-.039m-.07.098c0-.02.02-.039.039-.039s.043.02.043.039-.02.039-.039.039-.039-.016-.039-.039\" class=\"es-G\"/></g><path d=\"M8.535 6.242c0-.016.02-.035.043-.035s.035.016.035.035-.016.039-.035.039-.039-.016-.039-.039\" class=\"es-G\"/><path d=\"M8.535 6.242c0-.016.02-.035.043-.035s.035.016.035.035-.016.039-.035.039-.039-.016-.039-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.43 6.188c0-.023.016-.039.039-.039s.035.016.035.039-.016.039-.035.039-.039-.02-.039-.039\" class=\"es-G\"/><path d=\"M8.43 6.188c0-.023.016-.039.039-.039s.035.016.035.039-.016.039-.035.039-.039-.02-.039-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.309 6.148c0-.02.02-.035.039-.035s.043.016.043.035-.02.039-.039.039-.043-.02-.043-.039\" class=\"es-G\"/><path d=\"M8.309 6.148c0-.02.02-.035.039-.035s.043.016.043.035-.02.039-.039.039-.043-.02-.043-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.188 6.129c0-.02.016-.039.035-.039s.043.02.043.039-.02.035-.039.035c-.008.004-.02 0-.027-.008s-.012-.02-.012-.027\" class=\"es-G\"/><path d=\"M8.187 6.129c0-.02.016-.039.035-.039s.043.02.043.039-.02.035-.039.035c-.008.004-.02 0-.027-.008s-.012-.02-.012-.027zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M8.063 6.133c0-.023.02-.039.043-.039s.035.016.035.039c0 .016-.016.035-.035.035s-.039-.016-.039-.035\" class=\"es-G\"/><path d=\"M8.063 6.133c0-.023.02-.039.043-.039s.035.016.035.039c0 .016-.016.035-.035.035s-.039-.016-.039-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M7.938 6.148c0-.016.02-.035.039-.035.027 0 .039.02.039.035s-.012.039-.035.039-.039-.016-.039-.039\" class=\"es-G\"/><path d=\"M7.938 6.148c0-.016.02-.035.039-.035.027 0 .039.02.039.035s-.012.039-.035.039-.039-.016-.039-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M7.824 6.191c0-.02.016-.039.035-.039s.043.02.043.039-.02.039-.039.039c-.012 0-.02-.004-.027-.012s-.012-.016-.012-.027\" class=\"es-G\"/><path d=\"M7.824 6.191c0-.02.016-.039.035-.039s.043.02.043.039-.02.039-.039.039c-.012 0-.02-.004-.027-.012s-.012-.016-.012-.027zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M5.852 7.152c0-.02.012-.039.035-.039s.039.02.039.039-.016.035-.039.035-.035-.016-.035-.035\" class=\"es-G\"/><path d=\"M5.852 7.152c0-.02.012-.039.035-.039s.039.02.039.039-.016.035-.039.035-.035-.016-.035-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M5.793 7.059c0-.023.02-.039.039-.039s.035.016.035.039-.012.035-.035.035-.039-.016-.039-.035\" class=\"es-G\"/><path d=\"M5.793 7.059c0-.023.02-.039.039-.039s.035.016.035.039-.012.035-.035.035-.039-.016-.039-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M5.758 6.945c0-.02.016-.039.035-.039.027 0 .043.02.043.039s-.016.039-.039.039-.035-.02-.035-.039\" class=\"es-G\"/><path d=\"M5.758 6.945c0-.02.016-.039.035-.039.027 0 .043.02.043.039s-.016.039-.039.039-.035-.02-.035-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M5.754 6.824c0-.02.016-.035.035-.035s.043.016.043.035-.02.039-.039.039-.035-.016-.035-.039\" class=\"es-G\"/><path d=\"M5.754 6.824c0-.02.016-.035.035-.035s.043.016.043.035-.02.039-.039.039-.035-.016-.035-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M5.781 6.711c0-.02.02-.035.039-.035s.039.016.039.035-.016.039-.039.039-.039-.016-.039-.039\" class=\"es-G\"/><path d=\"M5.781 6.711c0-.02.02-.035.039-.035s.039.016.039.035-.016.039-.039.039-.039-.016-.039-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M5.844 6.605c0-.02.016-.039.035-.039s.043.02.043.039-.02.035-.039.035-.035-.016-.035-.035\" class=\"es-G\"/><path d=\"M5.844 6.605c0-.02.016-.039.035-.039s.043.02.043.039-.02.035-.039.035-.035-.016-.035-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M5.926 6.516c0-.02.016-.035.035-.035S6 6.496 6 6.516s-.016.039-.039.039-.035-.016-.035-.039\" class=\"es-G\"/><path d=\"M5.926 6.516c0-.02.016-.035.035-.035S6 6.496 6 6.516s-.016.039-.039.039-.035-.016-.035-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M6.02 6.441c0-.02.016-.035.035-.035s.039.016.039.035-.016.039-.039.039-.035-.016-.035-.039\" class=\"es-G\"/><path d=\"M6.02 6.441c0-.02.016-.035.035-.035s.039.016.039.035-.016.039-.039.039-.035-.016-.035-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M6.133 6.387c0-.023.012-.039.035-.039s.039.016.039.039-.016.035-.039.035-.035-.016-.035-.035\" class=\"es-G\"/><path d=\"M6.133 6.387c0-.023.012-.039.035-.039s.039.016.039.039-.016.035-.039.035-.035-.016-.035-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M6.246 6.34c0-.016.02-.035.039-.035s.039.016.039.035-.02.039-.039.039-.039-.016-.039-.039\" class=\"es-G\"/><path d=\"M6.246 6.34c0-.016.02-.035.039-.035s.039.016.039.035-.02.039-.039.039-.039-.016-.039-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M6.375 6.32c0-.02.02-.039.043-.039s.035.016.035.039-.016.035-.035.035-.039-.016-.039-.035\" class=\"es-G\"/><path d=\"M6.375 6.32c0-.02.02-.039.043-.039s.035.016.035.039-.016.035-.035.035-.039-.016-.039-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M6.504 6.313c0-.02.012-.039.035-.039s.039.02.039.039-.016.035-.039.035-.035-.016-.035-.035\" class=\"es-G\"/><path d=\"M6.504 6.312c0-.02.012-.039.035-.039s.039.02.039.039-.016.035-.039.035-.035-.016-.035-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M6.621 6.32c0-.023.02-.039.039-.039s.043.016.043.039-.02.035-.039.035c-.012 0-.02 0-.027-.008s-.016-.02-.016-.027\" class=\"es-G\"/><path d=\"M6.621 6.32c0-.023.02-.039.039-.039s.043.016.043.039-.02.035-.039.035c-.012 0-.02 0-.027-.008s-.016-.02-.016-.027zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M6.742 6.32c0-.023.02-.039.039-.039s.043.016.043.039-.02.035-.039.035-.039-.016-.039-.035\" class=\"es-G\"/><g class=\"es-B es-D\"><path d=\"M6.742 6.32c0-.023.02-.039.039-.039s.043.016.043.039-.02.035-.039.035-.039-.016-.039-.035zm0 0\" class=\"es-C\"/><path d=\"M6.684 6.422c0-.02.02-.039.035-.039.027 0 .043.02.043.039s-.016.035-.039.035-.035-.016-.035-.035m-.027.113c0-.02.016-.035.039-.035s.035.016.035.035-.016.039-.035.039-.039-.016-.039-.039m-.008.113c0-.02.02-.039.039-.039s.039.02.039.039-.016.039-.035.039-.039-.02-.039-.039m.035.105c0-.02.016-.039.035-.039s.043.02.043.039-.02.039-.039.039c-.012 0-.02-.004-.027-.012s-.012-.016-.012-.027m.066.098c0-.02.02-.039.039-.039s.035.02.035.039-.016.039-.035.039-.039-.02-.039-.039\" class=\"es-G\"/></g><path d=\"M6.836 6.242c0-.016.02-.035.039-.035s.035.016.035.035-.016.039-.035.039-.039-.016-.039-.039\" class=\"es-G\"/><path d=\"M6.836 6.242c0-.016.02-.035.039-.035s.035.016.035.035-.016.039-.035.039-.039-.016-.039-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M6.945 6.188c0-.023.016-.039.039-.039s.035.016.035.039-.016.039-.035.039-.039-.02-.039-.039\" class=\"es-G\"/><path d=\"M6.945 6.188c0-.023.016-.039.039-.039s.035.016.035.039-.016.039-.035.039-.039-.02-.039-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M7.063 6.148c0-.02.016-.035.035-.035.027 0 .043.016.043.035s-.016.039-.039.039-.035-.02-.035-.039\" class=\"es-G\"/><path d=\"M7.062 6.148c0-.02.016-.035.035-.035.027 0 .043.016.043.035s-.016.039-.039.039-.035-.02-.035-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M7.184 6.129c0-.02.02-.039.039-.039.027 0 .043.02.043.039s-.016.035-.039.035-.039-.016-.039-.035\" class=\"es-G\"/><path d=\"M7.184 6.129c0-.02.02-.039.039-.039.027 0 .043.02.043.039s-.016.035-.039.035-.039-.016-.039-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M7.309 6.133c0-.023.016-.039.039-.039s.035.016.035.039c0 .016-.016.035-.035.035s-.039-.016-.039-.035\" class=\"es-G\"/><path d=\"M7.309 6.133c0-.023.016-.039.039-.039s.035.016.035.039c0 .016-.016.035-.035.035s-.039-.016-.039-.035zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M7.434 6.148c0-.016.02-.035.035-.035.027 0 .043.02.043.035s-.016.039-.039.039-.035-.016-.035-.039\" class=\"es-G\"/><path d=\"M7.434 6.148c0-.016.02-.035.035-.035.027 0 .043.02.043.035s-.016.039-.039.039-.035-.016-.035-.039zm0 0\" class=\"es-B es-C es-D\"/><path d=\"M7.547 6.191c0-.02.02-.039.039-.039.027 0 .043.02.043.039s-.016.039-.039.039-.039-.02-.039-.039\" class=\"es-G\"/><g class=\"es-B es-D\"><path d=\"M7.547 6.191c0-.02.02-.039.039-.039.027 0 .043.02.043.039s-.016.039-.039.039-.039-.02-.039-.039zm0 0\" class=\"es-C\"/><g class=\"es-E\"><path d=\"M6.551 8.582h-.035v-.035h-.059v.133h.059v.094h-.125v.266h.066v.535h-.129v.273h1.02v-.273h-.133v-.535h.066v-.266h-.125V8.68h.059v-.129h-.059v.031h-.031v-.035h-.059v.035h-.043v-.035h-.059v.133h.059v.094h-.125v-.289h.066v-.133h-.066v.035h-.035v-.039h-.059v.039h-.031v-.039h-.063v.137h.066v.289h-.125V8.68h.059v-.129h-.059v.031h-.035v-.035h-.066zm-.223 1.266h1.023m-1.023-.066h1.023m-1.023-.07h1.023m-1.023-.062h1.023m-1.023-.074h1.023m-.895-.059h.758m-.758-.07h.758m-.758-.074h.758m-.758-.062h.758m-.758-.07h.758m-.758-.066h.758m-.758-.062h.758m-.824-.066h.891m-.891-.07h.891m-.891-.066h.891m-.891-.066h.891m-.766-.066h.641m-.383-.066h.125m-.125-.066h.125m-.125-.066h.125m-.125-.066h.125m-.191-.082h.258m-.449.281h.133m-.187-.082h.246m-.25 1.223v-.066m0-.07v-.062m-.066.062v.07m.125 0v-.07m.066.137v-.066m0-.07v-.062m0-.074v-.059m0-.07v-.074m-.066.277v-.074m-.125.074v-.074m.262 0v.074m.055-.074v-.059m-.191-.07v.07m.133-.07v.07m.125-.07v.07m-.063-.066v-.074m.066-.063v.063m0-.199v.066m-.066-.133v.066m.066-.129v.063m-.125-.063v.063m-.133-.063v.063m-.059-.133v.07m.125-.07v.07m.125-.07v.07m.066-.137v.066m-.125-.066v.066M6.52 8.91v.066m-.059-.133v.066m.25-.066v.066m-.125-.199v.066m.574-.066h-.133m.188-.082h-.246m.25 1.223v-.066m0-.07v-.063m.066.063v.07m-.125 0v-.074m-.066.137v-.066m0-.07v-.062m0-.074v-.059m0-.07v-.074m.066.277v-.074m.125.074v-.074m-.262 0v.074m-.055-.074v-.059m.191-.07v.07m-.133-.07v.07m-.125-.07v.07m.066-.07v-.074m-.066-.062v.062m0-.199v.066m.066-.133v.066m-.066-.129v.063m.125-.063v.063m.133-.063v.063m.059-.133v.07m-.125-.07v.07m-.125-.07v.07m-.066-.137v.066m.125-.066v.066m.133-.066v.066m.059-.133v.066m-.25-.066v.066m.125-.199v.066m-.262.676v-.074m0-.203v-.066m0 .203v-.07m0-.195v-.07m0-.066v-.063m0-.137v-.066m0-.063v-.07m-.312.172h.133m.125-.195h.125m.125.195h.133\"/><path d=\"M7.004 9.848v-.176c0-.031-.016-.133-.172-.133-.148 0-.164.102-.164.133v.176zm0 0\"/><path d=\"M6.723 9.684l-.082-.012c0-.035.008-.082.035-.098l.074.055c-.012.008-.027.039-.027.055zm.227 0l.082-.012c0-.035-.008-.082-.035-.098l-.074.055c.012.008.027.039.027.055zm-.082-.086l.035-.078c-.023-.008-.047-.012-.074-.012l-.062.012.039.078zm-.16-.207v-.184c0-.051-.035-.09-.094-.09s-.09.035-.09.09v.184zm.258 0v-.184c0-.051.035-.09.094-.09s.09.035.09.09v.184zm-.066-.449l.016-.168h-.156l.008.168zm.125 0l-.016-.168h.164l-.016.168zm-.375 0l.008-.168H6.5l.016.168zm0 0\"/></g></g><path d=\"M6.949 9.848v-.148c0-.027-.02-.102-.117-.102-.09 0-.109.074-.109.102v.148zm-.258-.477v-.156c0-.039-.023-.082-.078-.082s-.074.039-.074.082v.16h.152zm.293 0v-.156c0-.039.023-.082.074-.082s.074.039.074.082v.16h-.148zm0 0\" fill=\"rgb(0%,22.352941%,94.117647%)\"/><path d=\"M7.156 10.117c0-.363.262-.66.582-.66s.586.297.586.66-.262.656-.586.656-.582-.293-.582-.656\" class=\"es-H\"/><path d=\"M7.156 10.117c0-.363.262-.66.582-.66s.586.297.586.66-.262.656-.586.656-.582-.293-.582-.656zm0 0\" class=\"es-B es-C es-R\"/><path d=\"M7.328 10.113c0-.262.188-.48.41-.48s.414.215.414.48-.187.488-.414.488-.41-.219-.41-.488\" class=\"es-O\"/><path d=\"M7.328 10.113c0-.262.188-.48.41-.48s.414.215.414.48-.188.488-.414.488-.41-.219-.41-.488zm0 0\" class=\"es-B es-C es-R\"/><path d=\"M7.547 9.785s-.051.051-.051.102c0 .031.008.059.023.09-.008-.02-.031-.031-.055-.031s-.051.023-.051.047l.008.031.02.035c.004-.012.016-.02.035-.02s.039.016.039.039l-.047.004v.039h.039l-.031.055.039-.012.031.031.027-.031.039.012-.027-.055h.039v-.039h-.043c0-.031.016-.047.039-.047.016 0 .023.012.035.023l.016-.039.008-.027c0-.027-.023-.047-.051-.047s-.047.012-.055.035c0 0 .023-.047.023-.094s-.051-.102-.051-.102\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M7.547 9.785s-.051.051-.051.102c0 .031.008.059.023.09-.008-.02-.031-.031-.055-.031s-.051.023-.051.047l.008.031.02.035c.004-.012.016-.02.035-.02s.039.016.039.039l-.047.004v.039h.039l-.031.055.039-.012.031.031.027-.031.039.012-.027-.055h.039v-.039h-.043c0-.031.016-.047.039-.047.016 0 .023.012.035.023l.016-.039.008-.027c0-.027-.023-.047-.051-.047s-.047.012-.055.035c0 0 .023-.047.023-.094s-.051-.102-.051-.102zm0 0\" class=\"es-C es-I\"/><path d=\"M7.469 10.121h.156v-.039h-.156zm0 0\" class=\"es-E\"/></g><path d=\"M7.926 9.785s-.047.051-.047.102.023.09.023.09c-.008-.02-.027-.031-.055-.031s-.051.023-.051.047l.008.031.02.035c.004-.012.016-.02.035-.02s.039.016.039.039l-.047.004v.039h.039l-.031.055.039-.012.027.031.031-.031.039.012-.027-.055h.039v-.039h-.043c0-.031.016-.047.039-.047.012 0 .027.012.035.023l.016-.039.008-.027c-.004-.027-.023-.047-.051-.047s-.047.012-.055.035c0 0 .023-.047.023-.094s-.055-.102-.055-.102\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M7.926 9.785s-.047.051-.047.102.023.09.023.09c-.008-.02-.027-.031-.055-.031s-.051.023-.051.047l.008.031.02.035c.004-.012.016-.02.035-.02s.039.016.039.039l-.047.004v.039h.039l-.031.055.039-.012.027.031.031-.031.039.012-.027-.055h.039v-.039h-.043c0-.031.016-.047.039-.047.012 0 .027.012.035.023l.016-.039.008-.027c-.004-.027-.023-.047-.051-.047s-.047.012-.055.035c0 0 .023-.047.023-.094s-.055-.102-.055-.102zm0 0\" class=\"es-C es-I\"/><path d=\"M7.852 10.121h.156v-.039h-.156zm0 0\" class=\"es-E\"/></g><path d=\"M7.734 10.109s-.047.059-.047.105.023.09.023.09c-.008-.02-.027-.035-.055-.035s-.051.023-.051.055l.008.027.02.035c.004-.016.016-.023.035-.023s.039.02.039.039l-.047.012v.039h.039l-.031.055.039-.016.027.035.031-.039.039.02-.027-.055h.039v-.039h-.043c0-.031.016-.051.039-.051.016 0 .023.008.031.023l.02-.035.008-.027c0-.031-.023-.055-.051-.055s-.047.016-.055.039c0 0 .023-.043.023-.094s-.055-.102-.055-.102\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M7.734 10.109s-.047.059-.047.105.023.09.023.09c-.008-.02-.027-.035-.055-.035s-.051.023-.051.055l.008.027.02.035c.004-.016.016-.023.035-.023s.039.02.039.039l-.047.012v.039h.039l-.031.055.039-.016.027.035.031-.039.039.02-.027-.055h.039v-.039h-.043c0-.031.016-.051.039-.051.016 0 .023.008.031.023l.02-.035.008-.027c0-.031-.023-.055-.051-.055s-.047.016-.055.039c0 0 .023-.043.023-.094s-.055-.102-.055-.102zm0 0\" class=\"es-C es-I\"/><path d=\"M7.66 10.449h.156v-.039H7.66zm0 0\" class=\"es-E\"/></g><path d=\"M8.91 8.379h-.012c-.02.02-.035.02-.039.012-.012-.012-.02-.012-.023-.012-.012-.004-.012-.02-.004-.027v-.02H8.82l-.004.008c-.008.012-.02.012-.027.008l-.012-.008c-.016.008-.023-.039-.023-.043l-.008.004s.008.027.004.047-.012.043-.012.043a.44.44 0 0 1 .109.063c.031.023.059.051.082.086l.043-.02c.023-.008.051-.008.051-.008l.008-.008c-.012 0-.059.004-.059-.016v-.004c-.016-.008-.016-.016-.008-.027l.008-.004v-.012h-.012l-.008.004c-.004.012-.02.012-.027 0s-.016-.012-.023-.016-.012-.02 0-.031l.008-.008v-.012\" class=\"es-E\"/><path d=\"M8.91 8.379h-.012c-.02.02-.035.02-.039.012-.012-.012-.02-.012-.023-.012-.012-.004-.012-.02-.004-.027v-.02H8.82l-.004.008c-.008.012-.02.012-.027.008l-.012-.008c-.016.008-.023-.039-.023-.043l-.008.004s.008.027.004.047-.012.043-.012.043a.44.44 0 0 1 .109.063c.031.023.059.051.082.086l.043-.02c.023-.008.051-.008.051-.008l.008-.008c-.012 0-.059.004-.059-.016v-.004c-.016-.008-.016-.016-.008-.027l.008-.004v-.012h-.012l-.008.004c-.004.012-.02.012-.027 0s-.016-.012-.023-.016-.012-.02 0-.031l.008-.008zm0 0\" class=\"es-B es-C es-F\"/><path d=\"M8.828 8.398h.008v.012h-.004\" class=\"es-N\"/><g class=\"es-B es-K\"><path d=\"M8.828 8.398h.008v.012h-.004zm0 0\" class=\"es-C\"/><path d=\"M8.859 8.43l-.008-.008v-.008h.004l.012.012.012.008v.008h-.008l-.012-.012m-.062-.039l-.008-.008.023.004v.004h-.016\" class=\"es-N\"/></g><path d=\"M8.766 8.363h.004v.008h-.004\" class=\"es-N\"/><path d=\"M8.766 8.363h.004v.008h-.004zm0 0\" class=\"es-B es-C es-K\"/><path d=\"M8.898 8.457v-.008h-.012l.004.008h.008\" class=\"es-N\"/><g class=\"es-B es-K\"><path d=\"M8.898 8.457v-.008h-.012l.004.008zm0 0\" class=\"es-C\"/><path d=\"M8.922 8.484l.008.004h.004l-.016-.02h-.004v.008l.008.008\" class=\"es-N\"/></g><path d=\"M8.953 8.512V8.5h-.008v.008h.008\" class=\"es-N\"/><g class=\"es-B\"><path d=\"M8.953 8.512V8.5h-.008v.008h.008zm0 0\" class=\"es-C es-K\"/><g class=\"es-F\"><g class=\"es-E\"><path d=\"M8.859 8.293h-.023l-.004.031v.004h.008l.023-.02-.008-.016\"/><path d=\"M8.797 8.309v.02l.035.004h.004v-.008l-.02-.027-.02.012\"/><path d=\"M8.863 8.348l-.012.012-.023-.027v-.004h.039v.02\"/></g><path d=\"M8.824 8.324zm0 0\" class=\"es-C\"/></g></g><path d=\"M8.746 8.293l-.008-.027-.016-.016s.016-.008.031.004 0 .035 0 .035l-.008.004\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M8.746 8.293l-.008-.027-.016-.016s.016-.008.031.004 0 .035 0 .035zm0 0\" class=\"es-C\"/><path d=\"M8.781 8.301l-.016.016-.02-.02v-.008h.035v.012\" class=\"es-E\"/></g><path d=\"M8.742 8.289l.012-.004v.012l-.012-.004\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M8.742 8.289l.012-.004v.012l-.012-.004zm0 0\" class=\"es-C\"/><g class=\"es-E\"><path d=\"M8.937 8.344h-.02l-.012.027v.008h.008l.031-.016-.008-.02\"/><path d=\"M8.875 8.355v.02l.031.008h.004v-.008l-.016-.027-.02.008\"/><path d=\"M8.941 8.398l-.02.008-.016-.023v-.008h.004l.035.008-.004.016\"/></g></g><path d=\"M8.898 8.371h.016\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M8.898 8.371h.016zm0 0\" class=\"es-C\"/><g class=\"es-E\"><path d=\"M9.008 8.41l.004.02-.031.012h-.008v-.008l.016-.031.02.008\"/><path d=\"M9 8.469l-.02.004-.012-.031v-.004h.008l.031.012-.004.02\"/><path d=\"M8.949 8.41l-.008.02.031.012h.004v-.004l-.012-.031-.016.004\"/></g><path d=\"M8.98 8.445zm0 0\" class=\"es-C\"/></g><path d=\"M9.031 8.512h.027l.02.012s.004-.016-.012-.027-.027.008-.027.008l-.008.008\" class=\"es-E\"/><g class=\"es-B es-F\"><path d=\"M9.031 8.512h.027l.02.012s.004-.016-.012-.027-.027.008-.027.008zm0 0\" class=\"es-C\"/><path d=\"M9.012 8.48L9 8.496l.031.02v-.004h.008l-.004-.035-.023.004\" class=\"es-E\"/></g><path d=\"M9.039 8.512l-.012-.008.008.008\" class=\"es-E\"/><g class=\"es-B es-C\"><path d=\"M9.039 8.512l-.012-.008zm1.422-.82v.023h-.09v-.023h.039v-.051h-.027v-.016h.023v-.023h.023v.023h.023v.02h-.023v.047h.035\" class=\"es-F\"/><path d=\"M4.996 8.141v-.043m-.02.039v-.035m.008.035v-.035m-.027.035v-.035m.008.035v-.035m-.035.035v-.035m.008.035v-.035m.012.035v-.035m-.027.035v-.035m-.008.031v-.027m-.004.027v-.027m-.02.023v-.02m.008.02v-.02m-.016.016v-.016m-.008.016v-.016m-.012.012v-.012m-.012.012v-.008\" class=\"es-K\"/><path d=\"M4.844 8.121v-.008\" class=\"es-Q\"/><path d=\"M10.371 8.141v-.039m-.02.035v-.035m.008.035v-.035m-.027.035v-.035m.012.035v-.035m-.035.035v-.035m.008.035v-.035m.008.035v-.035m-.023.035v-.035m-.012.031v-.027m-.008.027v-.027m-.016.023v-.02m.008.02v-.02m-.016.02v-.02m-.008.016v-.016m-.012.016v-.016m-.008.012v-.008\" class=\"es-K\"/><path d=\"M10.223 8.121v-.008\" class=\"es-Q\"/></g></svg>')\n        },\n        sv: {\n            languageName: 'Swedish',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(2.352941%,41.568627%,65.490196%)\"/><g fill=\"rgb(99.607843%,80%,0%)\"><path d=\"M0 7.199h24v3.602H0zm0 0\"/><path d=\"M6.602 0h3.598v18H6.602zm0 0\"/></g></svg>')\n        },\n        th: {\n            languageName: 'Thai',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(95.686275%,96.078431%,97.254902%)\"/><g fill-rule=\"evenodd\"><path d=\"M0 6.094h24v6H0zm0 0\" fill=\"rgb(17.647059%,16.470588%,29.019608%)\"/><path d=\"M0 0h24v3.094H0zm0 15h24v3H0zm0 0\" fill=\"rgb(64.705882%,9.803922%,19.215686%)\"/></g></svg>')\n        },\n        tr: {\n            languageName: 'Turkish',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(89.019608%,3.921569%,9.019608%)\"/><g fill-rule=\"evenodd\"><path d=\"M15.262 9.281c0 2.484-2.047 4.496-4.574 4.496s-4.574-2.012-4.574-4.5 2.047-4.492 4.574-4.492 4.574 2.012 4.574 4.496zm0 0\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M15.488 9.281c0 1.988-1.637 3.598-3.656 3.598s-3.66-1.613-3.66-3.602 1.637-3.594 3.66-3.594 3.66 1.609 3.66 3.598zm0 0\" fill=\"rgb(89.019608%,3.921569%,9.019608%)\"/><path d=\"M16.152 7.18l-.039 1.664-1.547.418 1.527.543-.035 1.527.992-1.191 1.508.523-.871-1.277 1.063-1.273-1.633.453-.965-1.391zm0 0\" fill=\"rgb(100%,100%,100%)\"/></g></svg>')\n        },\n        uk: {\n            languageName: 'Ukrainian',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(100%,84.313725%,0%)\"/><path d=\"M0 0h24v9H0zm0 0\" fill-rule=\"evenodd\" fill=\"rgb(0%,34.117647%,72.156863%)\"/></svg>')\n        },\n        ur: {\n            languageName: 'Urdu',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><defs><clipPath id=\"A\"><path d=\"M0 0h23.996v18H0zm0 0\"/></clipPath></defs><g clip-path=\"url(#A)\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(4.705882%,34.901961%,4.313725%)\"/></g><g fill-rule=\"evenodd\" fill=\"rgb(100%,100%,100%)\"><path d=\"M-1.504 0h6.77v18h-6.77zm17.535 7.926l-1.098-.234-.578.961-.117-1.109-1.09-.254 1.02-.457-.098-1.117.754.832 1.031-.437-.559.973.738.844zm0 0\"/><path d=\"M16.441 10.758a4.25 4.25 0 0 1-2.402 2.223 4.26 4.26 0 0 1-3.27-.133c-2.148-.996-3.086-3.551-2.09-5.699.48-1.074 1.391-1.895 2.508-2.262l-.414.383a3.95 3.95 0 0 0 .184 5.484c1.531 1.477 3.957 1.48 5.488.004zm0 0\"/></g></svg>')\n        },\n        uz: {\n            languageName: 'Uzbek',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 12h24v6H0zm0 0\" fill=\"rgb(11.764706%,70.980392%,22.745098%)\"/><path d=\"M0 0h24v6H0zm0 0\" fill=\"rgb(0%,60%,70.980392%)\"/><path d=\"M0 5.762h24v6.477H0zm0 0\" fill=\"rgb(80.784314%,6.666667%,14.901961%)\"/><path d=\"M0 6.121h24v5.758H0zm7.199-3.242a2.16 2.16 0 1 1-4.32 0c0-1.191.969-2.16 2.16-2.16a2.16 2.16 0 0 1 2.16 2.16zm0 0\" fill=\"rgb(100%,100%,100%)\"/><path d=\"M7.922 2.879a2.16 2.16 0 1 1-4.32 0 2.16 2.16 0 0 1 2.16-2.16c1.191 0 2.16.969 2.16 2.16zm0 0\" fill=\"rgb(0%,60%,70.980392%)\"/><g fill=\"rgb(100%,100%,100%)\"><path d=\"M9.793 4.176l-.137.41.207.074\"/><path d=\"M9.793 4.176l.137.41-.211.074\"/><path d=\"M10.203 4.477l-.434-.004-.004.219\"/><path d=\"M10.203 4.477l-.348.254-.133-.176\"/><path d=\"M9.379 4.477l.348.254.137-.176\"/><path d=\"M9.379 4.477l.434-.004.004.219\"/><path d=\"M10.047 4.957l-.133-.41-.211.063\"/><path d=\"M10.047 4.957l-.355-.25.129-.18\"/><path d=\"M9.539 4.957l.352-.25-.129-.18\"/><path d=\"M9.539 4.957l.129-.41.211.063m-.086-2.161l-.137.41.207.07\"/><path d=\"M9.793 2.449l.137.41-.211.07\"/><path d=\"M10.203 2.746l-.434-.004-.004.223\"/><path d=\"M10.203 2.746l-.348.258-.133-.176\"/><path d=\"M9.379 2.746l.348.258.137-.176\"/><path d=\"M9.379 2.746l.434-.004.004.223\"/><path d=\"M10.047 3.23l-.133-.414-.211.066\"/><path d=\"M10.047 3.23l-.355-.25.129-.184\"/><path d=\"M9.539 3.23l.352-.25-.129-.184\"/><path d=\"M9.539 3.23l.129-.414.211.066M9.793.723l-.137.41.207.07\"/><path d=\"M9.793.723l.137.41-.211.07\"/><path d=\"M10.203 1.02l-.434-.004-.004.223\"/><path d=\"M10.203 1.02l-.348.258-.133-.176\"/><path d=\"M9.379 1.02l.348.258.137-.176\"/><path d=\"M9.379 1.02l.434-.004.004.223\"/><path d=\"M10.047 1.504l-.133-.414-.211.063\"/><path d=\"M10.047 1.504l-.355-.254.129-.18\"/><path d=\"M9.539 1.504l.352-.254-.129-.18\"/><path d=\"M9.539 1.504l.129-.414.211.063m1.641 3.023l-.137.41.207.074\"/><path d=\"M11.52 4.176l.137.41-.211.074\"/><path d=\"M11.93 4.477l-.434-.004-.004.219\"/><path d=\"M11.93 4.477l-.348.254-.133-.176\"/><path d=\"M11.109 4.477l.348.254.133-.176\"/><path d=\"M11.109 4.477l.43-.004.008.219\"/><path d=\"M11.773 4.957l-.129-.41-.215.063\"/><path d=\"M11.773 4.957l-.352-.25.125-.18\"/><path d=\"M11.266 4.957l.352-.25-.125-.18\"/><path d=\"M11.266 4.957l.129-.41.211.063m-.086-2.161l-.137.41.207.07\"/><path d=\"M11.52 2.449l.137.41-.211.07\"/><path d=\"M11.93 2.746l-.434-.004-.004.223\"/><path d=\"M11.93 2.746l-.348.258-.133-.176\"/><path d=\"M11.109 2.746l.348.258.133-.176\"/><path d=\"M11.109 2.746l.43-.004.008.223\"/><path d=\"M11.773 3.23l-.129-.414-.215.066\"/><path d=\"M11.773 3.23l-.352-.25.125-.184\"/><path d=\"M11.266 3.23l.352-.25-.125-.184\"/><path d=\"M11.266 3.23l.129-.414.211.066M11.52.723l-.137.41.207.07\"/><path d=\"M11.52.723l.137.41-.211.07\"/><path d=\"M11.93 1.02l-.434-.004-.004.223\"/><path d=\"M11.93 1.02l-.348.258-.133-.176\"/><path d=\"M11.109 1.02l.348.258.133-.176\"/><path d=\"M11.109 1.02l.43-.004.008.223\"/><path d=\"M11.773 1.504l-.129-.414-.215.063\"/><path d=\"M11.773 1.504l-.352-.254.125-.18\"/><path d=\"M11.266 1.504l.352-.254-.125-.18\"/><path d=\"M11.266 1.504l.129-.414.211.063m1.64 3.023l-.137.41.211.074\"/><path d=\"M13.246 4.176l.137.41-.207.074\"/><path d=\"M13.656 4.477l-.43-.004-.004.219\"/><path d=\"M13.656 4.477l-.348.254-.133-.176\"/><path d=\"M12.836 4.477l.348.254.133-.176\"/><path d=\"M12.836 4.477l.434-.004.004.219\"/><path d=\"M13.5 4.957l-.129-.41-.211.063\"/><path d=\"M13.5 4.957l-.352-.25.129-.18\"/><path d=\"M12.992 4.957l.352-.25-.125-.18\"/><path d=\"M12.992 4.957l.133-.41.211.063m-.09-2.161l-.137.41.211.07\"/><path d=\"M13.246 2.449l.137.41-.207.07\"/><path d=\"M13.656 2.746l-.43-.004-.004.223\"/><path d=\"M13.656 2.746l-.348.258-.133-.176\"/><path d=\"M12.836 2.746l.348.258.133-.176\"/><path d=\"M12.836 2.746l.434-.004.004.223\"/><path d=\"M13.5 3.23l-.129-.414-.211.066\"/><path d=\"M13.5 3.23l-.352-.25.129-.184\"/><path d=\"M12.992 3.23l.352-.25-.125-.184\"/><path d=\"M12.992 3.23l.133-.414.211.066m-.09-2.159l-.137.41.211.07\"/><path d=\"M13.246.723l.137.41-.207.07\"/><path d=\"M13.656 1.02l-.43-.004-.004.223\"/><path d=\"M13.656 1.02l-.348.258-.133-.176\"/><path d=\"M12.836 1.02l.348.258.133-.176\"/><path d=\"M12.836 1.02l.434-.004.004.223\"/><path d=\"M13.5 1.504l-.129-.414-.211.063\"/><path d=\"M13.5 1.504l-.352-.254.129-.18\"/><path d=\"M12.992 1.504l.352-.254-.125-.18\"/><path d=\"M12.992 1.504l.133-.414.211.063m-7 3.023l-.137.41.207.074\"/><path d=\"M6.336 4.176l.137.41-.211.074\"/><path d=\"M6.746 4.477l-.434-.004-.004.219\"/><path d=\"M6.746 4.477l-.348.254-.133-.176\"/><path d=\"M5.926 4.477l.348.254.133-.176\"/><path d=\"M5.926 4.477l.43-.004.004.219\"/><path d=\"M6.59 4.957l-.133-.41-.211.063\"/><path d=\"M6.59 4.957l-.352-.25.125-.18\"/><path d=\"M6.082 4.957l.352-.25-.129-.18\"/><path d=\"M6.082 4.957l.129-.41.211.063m1.641-.434l-.137.41.211.074\"/><path d=\"M8.063 4.176l.137.41-.207.074\"/><path d=\"M8.473 4.477l-.43-.004-.004.219\"/><path d=\"M8.473 4.477l-.348.254-.133-.176\"/><path d=\"M7.652 4.477L8 4.73l.133-.176\"/><path d=\"M7.652 4.477l.434-.004.004.219\"/><path d=\"M8.316 4.957l-.129-.41-.211.063\"/><path d=\"M8.316 4.957l-.352-.25.129-.18\"/><path d=\"M7.809 4.957l.352-.25-.125-.18\"/><path d=\"M7.809 4.957l.133-.41.211.063m-.09-2.161l-.137.41.211.07\"/><path d=\"M8.063 2.449l.137.41-.207.07\"/><path d=\"M8.473 2.746l-.43-.004-.004.223\"/><path d=\"M8.473 2.746l-.348.258-.133-.176\"/><path d=\"M7.652 2.746L8 3.004l.133-.176\"/><path d=\"M7.652 2.746l.434-.004.004.223\"/><path d=\"M8.316 3.23l-.129-.414-.211.066\"/><path d=\"M8.316 3.23l-.352-.25.129-.184\"/><path d=\"M7.809 3.23l.352-.25-.125-.184\"/><path d=\"M7.809 3.23l.133-.414.211.066\"/></g></svg>')\n        },\n        vi: {\n            languageName: 'Vietnamese',\n            svgIcon: this._domSanitizer.bypassSecurityTrustHtml('<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"18\" class=\"language-svg-icon\"><path d=\"M0 0h24v18H0z\" fill=\"rgb(92.54902%,0%,8.235294%)\"/><path d=\"M15.289 13.395l-3.148-2.344-3.129 2.363 1.16-3.852-3.129-2.379 3.871-.035 1.203-3.848 1.219 3.836 3.871.004-3.113 2.406 1.195 3.852zm0 0\" fill-rule=\"evenodd\" fill=\"rgb(100%,100%,0%)\"/></svg>')\n        }\n    };\n    /* tslint:enable */\n    /* eslint-enable */\n\n    constructor(private _domSanitizer: DomSanitizer) {}\n\n    get languageIcons(): LanguageIcons {\n        return this._languageIcons;\n    }\n\n    public addLanguageIcon(shortName: string, langName: string, svgIcon: SafeHtml) {\n        this._languageIcons[shortName] = {\n            languageName: langName,\n            svgIcon\n        }\n    }\n}\n","import {TranslateService} from '@ngx-translate/core';\nimport {I18nField, I18nFieldValidation} from './models/i18n-field';\nimport {Component, Inject, Optional} from '@angular/core';\nimport {LanguageIconsService} from './language-icons.service';\nimport {AbstractBaseDataFieldComponent} from \"../base-component/abstract-base-data-field.component\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../models/data-field-portal-data-injection-token\";\n\n\n@Component({\n    selector: 'ncc-abstract-i18n-errors',\n    template: ''\n})\nexport abstract class AbstractI18nErrorsComponent extends AbstractBaseDataFieldComponent<I18nField> {\n\n\n    protected constructor(protected languageIconsService: LanguageIconsService,\n                          protected _translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<I18nField>) {\n        super(dataFieldPortalData);\n    }\n\n    getErrorMessage() {\n        if (this.formControlRef.hasError(I18nFieldValidation.REQUIRED_I18N)) {\n            return this._translate.instant('dataField.validations.requiredI18n');\n        }\n        if (this.formControlRef.hasError(I18nFieldValidation.TRANSLATION_REQUIRED)) {\n            const tmp = this.dataField.validations.find(value =>\n                value.validationRule.includes(I18nFieldValidation.TRANSLATION_REQUIRED)\n            ).validationRule.split(' ');\n            const missingLanguages = tmp[1]\n                .replace(' ', '')\n                .split(',')\n                .filter(lanCode => !Object.keys(this.formControlRef.value.translations).includes(lanCode))\n                .map(lanCode => this.languageIconsService.languageIcons[lanCode].languageName)\n                .join(', ');\n            return this.resolveErrorMessage(\n                I18nFieldValidation.TRANSLATION_REQUIRED,\n                this._translate.instant(\n                    'dataField.validations.translationRequired',\n                    {translation: missingLanguages}\n                )\n            );\n        }\n        if (this.formControlRef.hasError(I18nFieldValidation.TRANSLATION_ONLY)) {\n            const tmp = this.dataField.validations.find(value =>\n                value.validationRule.includes(I18nFieldValidation.TRANSLATION_ONLY)\n            ).validationRule.split(' ');\n            const onlyLanguages = tmp[1]\n                .replace(' ', '')\n                .split(',')\n                .map(lanCode => this.languageIconsService.languageIcons[lanCode].languageName)\n                .join(', ');\n            return this.resolveErrorMessage(\n                I18nFieldValidation.TRANSLATION_ONLY,\n                this._translate.instant(\n                    'dataField.validations.translationOnly',\n                    {translation: onlyLanguages}\n                )\n            );\n        }\n        return '';\n    }\n\n    protected resolveErrorMessage(search: string, generalMessage: string) {\n        const validation = this.dataField.validations.find(value => value.validationRule.includes(search));\n        if (validation.validationMessage && validation.validationMessage !== '') {\n            return validation.validationMessage;\n        }\n        return generalMessage;\n    }\n}\n","import {Component, Inject, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {DEFAULT_LANGUAGE_CODE, I18nField} from '../models/i18n-field';\nimport {TranslateService} from '@ngx-translate/core';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {LanguageIconsService} from '../language-icons.service';\nimport {Subscription} from 'rxjs';\nimport {AbstractI18nErrorsComponent} from '../abstract-i18n-errors.component';\nimport {LanguageIcons} from '../models/language-icons';\nimport {I18nFieldTranslations} from '../models/i18n-field-value';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\n\n@Component({\n    selector: 'ncc-abstract-i18n-text-field',\n    template: ''\n})\nexport abstract class AbstractI18nTextFieldComponent extends AbstractI18nErrorsComponent implements OnInit, OnDestroy {\n\n    private fieldValueChangesSubscription: Subscription;\n    private fieldUpdateSubscription: Subscription;\n\n    public languageKeys: Array<string>;\n\n    protected initializedLanguage = false;\n\n    public selectedLanguage: string;\n    public filledShown = false;\n\n    private labelWidth: number;\n    public cutProperty: string;\n\n    public currentValue: I18nFieldTranslations = {};\n    public filledKeys: Array<string>;\n\n    protected constructor(protected languageIconsService: LanguageIconsService,\n                          protected _translateService: TranslateService,\n                          protected _domSanitizer: DomSanitizer,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<I18nField>) {\n        super(languageIconsService, _translateService, dataFieldPortalData);\n        this.selectedLanguage = this._translateService.currentLang;\n        this.languageKeys = Object.keys(this.languageIconsService.languageIcons);\n    }\n\n    ngOnInit(): void {\n        this.currentValue = I18nField.toObject(this.dataField.value);\n        this.fieldUpdateSubscription = this.dataField.updated.subscribe(() => {\n            this.refreshCurrentValue();\n        });\n        this.fieldValueChangesSubscription = this.dataField.valueChanges().subscribe(newValue => {\n            this.refreshCurrentValue(newValue);\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.fieldUpdateSubscription.unsubscribe();\n        this.fieldValueChangesSubscription.unsubscribe();\n    }\n\n    protected refreshCurrentValue(newValue = this.dataField.value): void {\n        if (this.dataField.disabled) {\n            this.selectedLanguage = this._translateService.currentLang;\n            this.filledShown = false;\n            this.initializedLanguage = false;\n            return;\n        }\n        if (!this.initializedLanguage) {\n            if (!(this.selectedLanguage in newValue.translations)) {\n                this.selectedLanguage = DEFAULT_LANGUAGE_CODE;\n            }\n            this.initializedLanguage = true;\n        }\n        this.currentValue = I18nField.toObject(newValue);\n        this.refreshFilledMap();\n    }\n\n    public getLanguageIcons(): LanguageIcons {\n        return this.languageIconsService.languageIcons;\n    }\n\n    public isDefaultValue(chosenLanguage: string): boolean {\n        return chosenLanguage === DEFAULT_LANGUAGE_CODE;\n    }\n\n    public selectLanguage(newLanguage: string): void {\n        this.selectedLanguage = newLanguage;\n        this.refreshFilledMap();\n    }\n\n    public setSelectedValue(): void {\n        if (!this.isDefaultValue(this.selectedLanguage) && this.currentValue[this.selectedLanguage] === '') {\n            delete this.currentValue[this.selectedLanguage];\n        }\n        this.dataField.value = I18nField.fromObject(this.currentValue, this.dataField.value?.key ?? DEFAULT_LANGUAGE_CODE);\n        this.formControlRef.markAsTouched();\n    }\n\n    public refreshFilledMap(): void {\n        this.filledKeys = [];\n        for (const k in this.currentValue) {\n            if (this.selectedLanguage === k) {\n                continue;\n            }\n            this.filledKeys.push(k);\n        }\n        this.filledKeys.sort((a, b) => {\n            return this.languageKeys.indexOf(a) - this.languageKeys.indexOf(b);\n        });\n    }\n\n    public removeTranslation(key: string): void {\n        delete this.currentValue[key];\n        this.dataField.value = I18nField.fromObject(this.currentValue, this.dataField.value?.key ?? DEFAULT_LANGUAGE_CODE);\n        this.formControlRef.markAsTouched();\n        this.refreshFilledMap();\n    }\n\n    public toggleFilled(): void {\n        this.filledShown = !this.filledShown;\n    }\n\n    public getCutProperty(i18nLabel): string {\n        if (this.labelWidth !== i18nLabel.offsetWidth) {\n            this.labelWidth = i18nLabel.offsetWidth;\n            const calculatedWidth = 'calc(0.5em + ' + i18nLabel.offsetWidth / 4 * 3 + 'px)';\n            this.cutProperty = `polygon(0 0, 0 100%, 100% 100%, 100% 0%, ${calculatedWidth} 0, ${calculatedWidth} 6%, 0.5em 6%, 0.5em 0)`;\n        }\n        return this.cutProperty;\n    }\n\n    public hasHint(): boolean {\n        return this.dataField.description !== undefined && this.dataField.description !== '';\n    }\n\n\n    public getTranslation(): string {\n        const locale = this._translateService.currentLang;\n        return locale in this.dataField.value.translations\n            ? this.dataField.value.translations[locale]\n            : this.dataField.value.defaultValue;\n    }\n\n    public getDefaultLanguageCode(): string {\n        return DEFAULT_LANGUAGE_CODE;\n    }\n\n    public isPlainText(): boolean {\n        if (this.checkPropertyInComponent('plainText')) {\n            return this.dataField.component.properties.plainText === 'true';\n        }\n    }\n\n    public isBoldText(): boolean {\n        if (this.textPropertyEnabled('boldText')) {\n            return this.dataField.component.properties.boldText === 'true';\n        }\n    }\n\n    public getTextColor(): string {\n        if (this.checkPropertyInComponent('textColor')) {\n            return this.dataField.component.properties.textColor;\n        }\n    }\n\n    public getTextFontSize(): string {\n        if (this.checkPropertyInComponent('fontSize')) {\n            return this.dataField.component.properties.fontSize + 'px';\n        }\n    }\n\n    public textPropertyEnabled(property: string): boolean {\n        return !!this.dataField?.component?.properties\n            && property in this.dataField.component.properties;\n    }\n}\n","import {Component, Inject, Optional} from '@angular/core';\nimport {I18nField} from '../models/i18n-field';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\n\n@Component({\n    selector: 'ncc-abstract-i18n-divider-field',\n    template: ''\n})\nexport abstract class AbstractI18nDividerFieldComponent extends AbstractBaseDataFieldComponent<I18nField>{\n\n\n    constructor(@Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<I18nField>) {\n        super(dataFieldPortalData);\n    }\n\n    public getDividerColor(): string {\n        if (this.checkPropertyInComponent('dividerColor')) {\n            return this.dataField.component.properties.dividerColor;\n        }\n    }\n\n    public isDividerLGBTQ(): boolean {\n        if (this.checkPropertyInComponent('dividerLGBTQ')) {\n            return this.dataField.component.properties.dividerLGBTQ === 'true';\n        }\n        return false;\n    }\n\n    public getDividerFontSize(): string {\n        if (this.checkPropertyInComponent('fontSize')) {\n            return this.dataField.component.properties.fontSize + 'px';\n        }\n    }\n\n    public dividerPropertyEnabled(property: string): boolean {\n        return !!this.dataField?.component?.properties\n            && property in this.dataField.component.properties;\n    }\n}\n","import {Component, Inject, Input, OnInit, Optional} from '@angular/core';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\nimport {UserListField} from './models/user-list-field';\n\n/**\n * @deprecated\n * */\n@Component({\n  selector: 'ncc-abstract-user-list-field',\n  template: '',\n})\nexport abstract class AbstractUserListFieldComponent extends AbstractDataFieldComponent implements OnInit {\n    /**\n     * Represents info about user from backend.\n     */\n    @Input() public dataField: UserListField;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n    }\n}\n","import {Component, Inject, Optional} from \"@angular/core\";\nimport {UserListField} from \"../models/user-list-field\";\nimport {SnackBarService} from \"../../../snack-bar/services/snack-bar.service\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {UserListInjectedData} from \"../../../side-menu/content-components/user-assign/model/user-list-injected-data\";\nimport {UserListValue} from \"../models/user-list-value\";\nimport {UserValue} from \"../../user-field/models/user-value\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\nimport {MatDialog} from '@angular/material/dialog';\n\n@Component({\n    selector: 'ncc-abstract-user-list-default-field',\n    template: '',\n})\nexport abstract class AbstractUserListDefaultFieldComponent extends AbstractBaseDataFieldComponent<UserListField>{\n\n    protected constructor(protected _dialog: MatDialog,\n                          protected _snackbar: SnackBarService,\n                          protected _translate: TranslateService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<UserListField>) {\n        super(dataFieldPortalData);\n    }\n\n    /**\n     * Call after click on user field button.\n     *\n     * Open [MultiUserAssignDialogComponent]{@link MultiUserAssignDialogComponent} in side menu with data represents preselected user from backend.\n     *\n     * After close side menu, the snackbar info will be displayed either for the unselected user or the selected one.\n     */\n    public selectAbstractUser(component) {\n        let valueReturned = false;\n        const dialogRef = this._dialog.open(component, {\n            panelClass: \"dialog-responsive\",\n            data: {roles: this.dataField.roles, value: this.dataField.value} as UserListInjectedData,\n        });\n        dialogRef.afterClosed().subscribe($event => {\n            if ($event?.data) {\n                this.dataField.value = new UserListValue(new Map<string, UserValue>(($event.data as Array<UserValue>).map(v => [v.id, v])));\n                this._snackbar.openGenericSnackBar(\n                    this._translate.instant('dataField.snackBar.userListAssigned',\n                        {userNames: this.dataField.value.toString()}),\n                    'how_to_reg'\n                );\n                valueReturned = true;\n            } else if (!valueReturned) {\n                this._snackbar.openWarningSnackBar(this._translate.instant('dataField.snackBar.notSelectedUser'));\n            }\n        });\n    }\n\n    public removeAbstractUser(userId: string) {\n        const existingUsers = new UserListValue(new Map<string, UserValue>(this.dataField.value.userValues));\n        existingUsers.removeUserValue(userId);\n        this.dataField.value = existingUsers;\n    }\n\n    public removeAll() {\n        this.dataField.value = new UserListValue(new Map<string, UserValue>())\n    }\n\n}\n","import {Component, Inject, OnInit, Optional} from '@angular/core';\nimport {AbstractDataFieldComponent} from '../models/abstract-data-field-component';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from '../models/invalid-data-policy-token';\nimport {TaskRefDashboardTile} from './model/task-ref-dashboard-tile';\n\n/**\n * @deprecated\n * */\n@Component({\n    selector: 'ncc-abstract-task-ref-field',\n    template: ''\n})\nexport abstract class AbstractTaskRefFieldComponent extends AbstractDataFieldComponent implements OnInit {\n\n    dashboardTiles: Array<TaskRefDashboardTile>;\n\n    protected constructor(@Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) informAboutInvalidData: boolean | null) {\n        super(informAboutInvalidData);\n    }\n}\n","/**\n * A collection of Task ref field dashboard component constants used to reference elements of the underlying processes\n */\nexport enum TaskRefDashboardConstants {\n    DASHBOARD_ROWS = 'rows',\n    DASHBOARD_COLS = 'cols',\n    DASHBOARD_TASK_REF = 'dashboard',\n}\n","/**\n * A collection of Task ref field dashboard tile component constants used to reference elements of the underlying processes\n */\nexport enum TaskRefDashboardTileConstants {\n    DASHBOARD_TILE_X = 'x',\n    DASHBOARD_TILE_Y = 'y',\n    DASHBOARD_TILE_ROWS = 'rows',\n    DASHBOARD_TILE_COLS = 'cols',\n    DASHBOARD_TILE_PARENT_ID = 'parent_dashboard_id',\n    DASHBOARD_TILE_PROCESS_IDENTIFIER = 'dashboard_tile'\n}\n","import {InjectionToken} from '@angular/core';\nimport {TaskOperations} from '../interfaces/task-operations';\n\nexport const NAE_TASK_OPERATIONS = new InjectionToken<TaskOperations>('NaeTaskOperationsInterface');\n","import {Subject} from 'rxjs';\n\nexport class AfterAction extends Subject<boolean> {\n\n    /**\n     * Emits the `resolution` and completes.\n     * @param resolution\n     */\n    public resolve(resolution: boolean) {\n        this.next(resolution);\n        this.complete();\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {Params, ResourceProvider} from '../resource-provider.service';\nimport {Count} from '../interface/count';\nimport {Case} from '../interface/case';\nimport {FileResource} from '../interface/file-resource';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {CountService} from '../abstract-endpoint/count-service';\nimport {Filter} from '../../filter/models/filter';\nimport {FilterType} from '../../filter/models/filter-type';\nimport {Page} from '../interface/page';\nimport {CaseGetRequestBody} from '../interface/case-get-request-body';\nimport {AbstractResourceService} from '../abstract-endpoint/abstract-resource.service';\nimport {EventOutcomeMessageResource} from '../interface/message-resource';\nimport {CreateCaseRequestBody} from '../interface/create-case-request-body';\nimport {HttpParams} from \"@angular/common/http\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class CaseResourceService extends AbstractResourceService implements CountService {\n\n    constructor(provider: ResourceProvider, configService: ConfigurationService) {\n        super('case', provider, configService);\n    }\n\n    /**\n     * Get count of the cases\n     * POST\n     * {{baseUrl}}/api/workflow/case/count\n     */\n    public count(filter: Filter): Observable<Count> {\n        if (filter.type !== FilterType.CASE) {\n            throw new Error('Provided filter doesn\\'t have type CASE');\n        }\n        return this._resourceProvider.post$('workflow/case/count', this.SERVER_URL, filter.getRequestBody(), filter.getRequestParams())\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get all cases of the system\n     * GET\n     * {{baseUrl}}/api/workflow/all\n     */\n    public getAllCase(): Observable<Array<Case>> {\n        return this._resourceProvider.get$('workflow/all', this.SERVER_URL).pipe(map(r => this.changeType(r, 'cases')));\n    }\n\n    /**\n     * Generic case search\n     * POST\n     * {{baseUrl}}/api/workflow/case/search\n     * @param filter filter used to search cases. Must be of type `CASE`.\n     * @param params request parameters, that can be used for sorting of results.\n     */\n    public searchCases(filter: Filter, params?: Params): Observable<Page<Case>> {\n        if (filter.type !== FilterType.CASE) {\n            throw new Error('Provided filter doesn\\'t have type CASE');\n        }\n        params = ResourceProvider.combineParams(filter.getRequestParams(), params);\n        return this._resourceProvider.post$('workflow/case/search', this.SERVER_URL, filter.getRequestBody(), params)\n            .pipe(map(r => this.getResourcePage<Case>(r, 'cases')));\n    }\n\n\n    /**\n     * Delete case\n     * DELETE\n     * {{baseUrl}}/api/workflow/case/:id\n     */\n    public deleteCase(caseID: string, deleteSubtree = false): Observable<EventOutcomeMessageResource> {\n        return this._resourceProvider.delete$('workflow/case/' + caseID,\n            this.SERVER_URL,\n            deleteSubtree ? {deleteSubtree: deleteSubtree.toString()} : {})\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n\n    /**\n     * Download case file field value\n     * GET\n     * {{baseUrl}}/api/workflow/case/:id/file/:field\n     */\n    public getCaseFile(caseID: string, params: HttpParams): Observable<FileResource> {\n        return this._resourceProvider.get$('workflow/case/' + caseID + '/file', this.SERVER_URL, params).pipe(\n            map(r => this.changeType(r, undefined))\n        );\n    }\n\n\n    /**\n     * Create new case\n     * POST\n     * {{baseUrl}}/api/workflow/case\n     */\n    public createCase(body: CreateCaseRequestBody): Observable<EventOutcomeMessageResource> {\n        return this._resourceProvider.post$('workflow/case/', this.SERVER_URL, body).pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get all cases by user that created them\n     * POST\n     * {{baseUrl}}/api/workflow/case/author/:id\n     */\n    public getAllCaseUser(userId: string, body: object): Observable<Array<Case>> {\n        return this._resourceProvider.post$('workflow/case/author/' + userId, this.SERVER_URL, body).pipe(\n            map(r => this.changeType(r, 'cases'))\n        );\n    }\n\n\n    /**\n     * Generic case search with QueryDSL predicate\n     * POST\n     * {{baseUrl}}/api/workflow/case/search2\n     */\n    public getCasesQueryDSL(body: object): Observable<Page<Case>> {\n        return this._resourceProvider.post$('workflow/case/search2', this.SERVER_URL, body).pipe(\n            map(r => this.getResourcePage<Case>(r, 'cases'))\n        );\n    }\n\n    /**\n     * Generic case search with object encoded search query. Similar to [getCasesQueryDSL]{@link CaseResourceService#getCasesQueryDSL}\n     * POST\n     * {{baseUrl}}/api/workflow/case/search_mongo\n     * @param body object defining the search query\n     * @param params request parameters, that can be used for sorting of results.\n     */\n    public getCases(body: CaseGetRequestBody, params?: Params): Observable<Page<Case>> {\n        return this._resourceProvider.post$('workflow/case/search_mongo', this.SERVER_URL, body, params)\n            .pipe(map(r => this.getResourcePage<Case>(r, 'cases')));\n    }\n\n    /**\n     * Search one case by it's id.\n     * GET\n     * {{baseUrl}}/api/workflow/case/:id\n     */\n    public getOneCase(caseId: string): Observable<Case> {\n        return this._resourceProvider.get$('workflow/case/' + caseId, this.SERVER_URL).pipe(map(r => this.changeType(r, undefined)));\n    }\n\n\n    /**\n     * Get options for enumeration or multiple-choice data field\n     * GET\n     * {{baseUrl}}/api/workflow/case/:caseId/field/:fieldId\n     */\n    public getOptionsEnumeration(caseId: string, fieldId: string): Observable<Case> {\n        return this._resourceProvider.get$('workflow/case/' + caseId + '/field/' + fieldId, this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n}\n\n","import {Injectable} from '@angular/core';\nimport {AfterAction} from './after-action';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class CallChainService {\n\n    constructor() {\n    }\n\n    /**\n     * Creates a call chain `Subject` that performs an action when a value is emitted into it.\n     *\n     * Useful for creating call chains for methods like [assign Task]{@link AssignTaskService#assign}.\n     * By using this function you don't have to handle the `Subject` logic and can only focus on the callback.\n     * This can make the code easier to understand as the intent is not obscured by the `Subject` handling.\n     *\n     * @param callback the function that should be executed when a value is emitted into the `Subject`.\n     * The emitted value is passed as the argument.\n     * @returns a subscribed `Subject` instance that performs the provided `callback` on the first emission and then completes\n     */\n    public create(callback: (boolean) => void): AfterAction {\n        const chain = new AfterAction();\n        chain.subscribe(result => {\n            callback(result);\n            chain.complete();\n        });\n        return chain;\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {DataGroup} from '../../resources/interface/data-groups';\nimport {BehaviorSubject, Observable, ReplaySubject, Subject, timer} from 'rxjs';\nimport {Task} from '../../resources/interface/task';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {EnumerationField, EnumerationFieldValue} from '../../data-fields/enumeration-field/models/enumeration-field';\nimport {MultichoiceField} from '../../data-fields/multichoice-field/models/multichoice-field';\nimport {Change, ChangedFields} from '../../data-fields/models/changed-fields';\nimport {FieldConverterService} from './field-converter.service';\nimport {FieldTypeResource} from '../model/field-type-resource';\nimport {DynamicEnumerationField} from '../../data-fields/enumeration-field/models/dynamic-enumeration-field';\nimport {Validation} from '../../data-fields/models/validation';\nimport {TaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/task-event-outcome';\nimport {DataField} from '../../data-fields/models/abstract-data-field';\nimport {TaskFields} from '../model/task-fields';\nimport {TaskRefField} from \"../../data-fields/task-ref-field/model/task-ref-field\";\n\n/**\n * Acts as a communication interface between the Component that renders Task content and it's parent Component.\n * Also provides some general functionality that is needed when working with task content.\n *\n * Notable example of a parent Component is the {@link AbstractTaskPanelComponent}.\n *\n * Notable example of a task content renderer is the {@link AbstractTaskContentComponent}.\n */\n@Injectable()\nexport abstract class TaskContentService implements OnDestroy {\n\n    public static readonly FRONTEND_ACTIONS_KEY = '_frontend_actions';\n    public static readonly ACTION = 'action';\n\n    $shouldCreate: ReplaySubject<Array<DataGroup>>;\n    $shouldCreateCounter: BehaviorSubject<number>;\n    protected _task: Task;\n    protected _taskDataReloadRequest$: Subject<Change>;\n    protected _isExpanding$: BehaviorSubject<boolean>;\n    protected _taskFieldsIndex: {\n        [taskId: string]: TaskFields\n    } = {};\n    protected _referencedTaskAndCaseIds: { [caseId: string]: Array<string> } = {};\n\n    protected constructor(protected _fieldConverterService: FieldConverterService,\n                          protected _snackBarService: SnackBarService,\n                          protected _translate: TranslateService,\n                          protected _logger: LoggerService) {\n        this.$shouldCreate = new ReplaySubject<Array<DataGroup>>(1);\n        this.$shouldCreateCounter = new BehaviorSubject<number>(0);\n        this._isExpanding$ = new BehaviorSubject<boolean>(false);\n        this._task = undefined;\n        this._taskDataReloadRequest$ = new Subject<Change>();\n    }\n\n    ngOnDestroy(): void {\n        if (!this.$shouldCreate.closed) {\n            this.$shouldCreate.complete();\n        }\n        this._taskDataReloadRequest$.complete();\n        this._isExpanding$.complete();\n    }\n\n    /**\n     * @returns the Task object if set and `undefined` otherwise\n     */\n    public abstract get task(): Task | undefined;\n\n    /**\n     * Setting a Task also emits it into the stream accessible by the [task$]{@link TaskContentService#task$} getter method.\n     * @param task the Task that owns the content managed by this service\n     */\n    public abstract set task(task: Task);\n\n    /**\n     * Stream returns a {@link Task} object every time this object is set.\n     *\n     * Use [task]{@link TaskContentService#task} setter method to set the Task.\n     */\n    public abstract get task$(): Observable<Task>;\n\n    /**\n     * Stream that emits every time a data reload is requested.\n     */\n    public get taskDataReloadRequest$(): Observable<Change> {\n        return this._taskDataReloadRequest$.asObservable();\n    }\n\n\n    get taskFieldsIndex(): { [p: string]: TaskFields } {\n        return this._taskFieldsIndex;\n    }\n\n    set taskFieldsIndex(value: { [p: string]: TaskFields }) {\n        this._taskFieldsIndex = value;\n    }\n\n    get referencedTaskAndCaseIds(): { [p: string]: Array<string> } {\n        return this._referencedTaskAndCaseIds;\n    }\n\n    set referencedTaskAndCaseIds(value: { [p: string]: Array<string> }) {\n        this._referencedTaskAndCaseIds = value;\n    }\n\n    /**\n     * Whether the panel that the task content is contained in is currently expanding.\n     *\n     * If the task content is not contained in a panel, `isExpanding` will be always `false`.\n     */\n    public get isExpanding(): boolean {\n        return this._isExpanding$.value;\n    }\n\n    /**\n     * Changes the state of the task content to `expanding`.\n     */\n    public expansionStarted(): void {\n        this._isExpanding$.next(true);\n    }\n\n    /**\n     * Changes the state of the task content to `not expanding`.\n     */\n    public expansionFinished(): void {\n        this._isExpanding$.next(false);\n    }\n\n    /**\n     * Checks the validity of all data fields in the managed {@link Task}.\n     *\n     * If some of the fields are invalid touches them so their validation errors will appear (if set).\n     * A snackbar will also be displayed to the user, informing them of the fact that the fields are invalid.\n     * @returns whether the task is valid or not\n     */\n    public validateTaskData(taskId?: string): boolean {\n        if (!this._task || !this._task.dataGroups) {\n            return false;\n        }\n        const valid = !this._task.dataGroups.filter(group => !!group.parentTaskId && !!taskId ? group.parentTaskId === taskId : true).some(group => group.fields.some(field => !field.valid && !field.disabled));\n        const validDisabled = !this._task.dataGroups.filter(group => !!group.parentTaskId && !!taskId ? group.parentTaskId === taskId : true).some(group => group.fields.some(field => !field.validRequired && field.disabled));\n        if (!valid) {\n            this._snackBarService.openErrorSnackBar(this._translate.instant('tasks.snackbar.invalidData'));\n            this._task.dataGroups.forEach(group => group.fields.forEach(field => field.touch = true));\n        }\n        if (!validDisabled) {\n            this._snackBarService.openErrorSnackBar(this._translate.instant('tasks.snackbar.missingRequired'));\n        }\n        return valid && validDisabled;\n    }\n\n    /**\n     * Finds invalid data of task\n     *\n     * @returns array of invalid datafields\n     */\n    public getInvalidTaskData(): Array<DataField<any>> {\n        const invalidFields = [];\n        this._task.dataGroups.forEach(group => invalidFields.push(...group.fields.filter(field =>\n            (!field.valid && !field.disabled) || (!field.validRequired && !field.disabled))));\n        return invalidFields;\n    }\n\n    public validateDynamicEnumField(): boolean {\n        if (!this._task || !this._task.dataGroups) {\n            return false;\n        }\n        const exists = this._task.dataGroups.some(group => group.fields.some(field => field instanceof DynamicEnumerationField));\n        if (!exists) {\n            return true;\n        }\n        let valid = true;\n        for (const group of this._task.dataGroups) {\n            for (const field of group.fields) {\n                if (field instanceof DynamicEnumerationField) {\n                    if (field.choices !== undefined && field.choices.length !== 0 && field.value !== '' && field.value !== undefined) {\n                        if (!field.choices.some(choice => choice.key === field.value)) {\n                            field.value = '';\n                            if (field.behavior.required) {\n                                valid = false;\n                            }\n                        }\n                    }\n                }\n            }\n        }\n        if (!valid) {\n            this._snackBarService.openErrorSnackBar(this._translate.instant('tasks.snackbar.missingRequired'));\n        }\n        return valid;\n    }\n\n    /**\n     * Changes the blocking state of all fields in the managed Task.\n     * @param blockingState whether the field should be blocked or not\n     */\n    public blockFields(blockingState: boolean): void {\n        if (this._task && this._task.dataGroups) {\n            this._task.dataGroups.forEach(group => {\n                group.fields.forEach(field => {\n                    field.block = blockingState;\n                });\n            });\n        }\n    }\n\n    /**\n     * Clears the assignee, start date and finish date from the managed Task.\n     */\n    public updateStateData(eventOutcome: TaskEventOutcome, isStillExecutable: boolean = true): void {\n        if (this._task) {\n            this._task.user = eventOutcome.task.user;\n            this._task.startDate = eventOutcome.task.startDate;\n            this._task.finishDate = eventOutcome.task.finishDate;\n            this._task.isStillExecutable = isStillExecutable;\n        }\n    }\n\n    /**\n     * Updates the properties of fields in the managed task based on a delta of changes from previous state.\n     * @param chFields object containing the delta of the changes from the previous state\n     */\n    public updateFromChangedFields(chFields: ChangedFields): void {\n        if (!this._task || !this._task.dataGroups) {\n            return;\n        }\n        const frontendActions = chFields.taskId === this.task.stringId && chFields[TaskContentService.FRONTEND_ACTIONS_KEY];\n        Object.keys(chFields).forEach(changedField => {\n            if (chFields.taskId === this._task.stringId && this.isFieldInTask(chFields.taskId, changedField)) {\n                this.updateField(chFields, this.taskFieldsIndex[chFields.taskId].fields[changedField], frontendActions);\n            } else if (!!this.getReferencedTaskId(changedField, chFields)) {\n                this.updateField(chFields, this.taskFieldsIndex[this.getReferencedTaskId(changedField, chFields)].fields[changedField], frontendActions, true);\n            }\n        });\n\n        this.$shouldCreate.next(this._task.dataGroups);\n    }\n\n    protected updateField(chFields: ChangedFields, field: DataField<any>, frontendActions: Change, referenced: boolean = false): void {\n        if (this._fieldConverterService.resolveType(field) === FieldTypeResource.TASK_REF && (!!this._task?.isStillExecutable || this._task?.isStillExecutable === undefined)) {\n            this._taskDataReloadRequest$.next(frontendActions ? frontendActions : undefined);\n            return;\n        }\n\n        const updatedField = chFields[field.stringId];\n        Object.keys(updatedField).forEach(key => {\n            switch (key) {\n                case 'type':\n                    // type is just an information, not an update. A field cannot change its type\n                    return; // continue - the field does not need updating, since nothing changed\n                case 'value':\n                    field.valueWithoutChange(this._fieldConverterService.formatValueFromBackend(field, updatedField[key]));\n                    break;\n                case 'behavior':\n                    if (!referenced && updatedField.behavior[this._task.transitionId]) {\n                        field.behavior = updatedField.behavior[this._task.transitionId];\n                    } else if (referenced) {\n                        const taskId = this.getReferencedTaskId(field.stringId, chFields);\n                        const taskRef = this.findTaskRefId(taskId, this.taskFieldsIndex[this._task.stringId].fields);\n                        const transitionId = this.taskFieldsIndex[taskId].transitionId;\n                        if (!!transitionId && transitionId !== '' && updatedField.behavior[transitionId])\n                            field.behavior = taskRef.behavior.editable ? updatedField.behavior[transitionId] : taskRef.behavior;\n                    }\n                    break;\n                case 'choices':\n                    const newChoices: Array<EnumerationFieldValue> = [];\n                    if (updatedField.choices instanceof Array) {\n                        updatedField.choices.forEach(it => {\n                            newChoices.push({key: it, value: it} as EnumerationFieldValue);\n                        });\n                    } else {\n                        Object.keys(updatedField.choices).forEach(choiceKey => {\n                            newChoices.push({\n                                key: choiceKey,\n                                value: updatedField.choices[choiceKey]\n                            } as EnumerationFieldValue);\n                        });\n                    }\n                    (field as EnumerationField | MultichoiceField).choices = newChoices;\n                    (field as EnumerationField | MultichoiceField).updateChoice();\n                    break;\n                case 'options':\n                    const newOptions = [];\n                    Object.keys(updatedField.options).forEach(optionKey => {\n                        newOptions.push({key: optionKey, value: updatedField.options[optionKey]});\n                    });\n                    (field as EnumerationField | MultichoiceField).choices = newOptions;\n                    (field as EnumerationField | MultichoiceField).updateChoice();\n                    break;\n                case 'validations':\n                    field.replaceValidations(updatedField.validations.map(it => (it as Validation)));\n                    break;\n                default:\n                    field[key] = updatedField[key];\n\n            }\n            field.update();\n        });\n    }\n\n    protected isFieldInTask(taskId: string, changedField: string): boolean {\n        return !!taskId\n            && !!this.taskFieldsIndex[taskId]\n            && !!this.taskFieldsIndex[taskId].fields\n            && !!this.taskFieldsIndex[taskId].fields[changedField]\n    }\n\n    protected getReferencedTaskId(changedField: string, chFields: ChangedFields): string {\n        return !!this.taskFieldsIndex ?\n            (Object.keys(this.taskFieldsIndex).find(taskId => taskId !== this.task.stringId && taskId === chFields.taskId && Object.keys(this.taskFieldsIndex[taskId].fields).includes(changedField))\n            || Object.keys(this.taskFieldsIndex).find(taskId => taskId !== this.task.stringId && Object.keys(this.taskFieldsIndex[taskId].fields).includes(changedField))) : undefined;\n    }\n\n    protected findTaskRefId(taskId: string, fields: { [fieldId: string]: DataField<any>}): DataField<any> {\n        let taskRefId = Object.values(fields).find(f => f instanceof TaskRefField && f.value.includes(taskId));\n        if (!taskRefId) {\n            const referencedTaskIds = Array.prototype.concat.apply([], Object.values(fields).filter(f => f instanceof TaskRefField).map(tr => tr.value));\n            for (const id of referencedTaskIds) {\n                taskRefId = this.findTaskRefId(taskId, this.taskFieldsIndex[id].fields);\n                if (!!taskRefId) {\n                    return taskRefId;\n                }\n            }\n        }\n        return taskRefId\n    }\n}\n","import {TaskContentService} from '../../task-content/services/task-content.service';\nimport {Task} from '../../resources/interface/task';\nimport {SelectedCaseService} from './selected-case.service';\n\n/**\n * Holds the common functionality for all Services that work with a single Task object.\n */\nexport abstract class TaskHandlingService {\n\n    /**\n     * @param _taskContentService the service that holds the currently selected task, that is handled by the implementation of this class\n     * @param _selectedCaseService an optional service, that holds the currently selected case.\n     * It should be injected with the `@Optional()` annotation, since it might not be always provided.\n     */\n    protected constructor(protected _taskContentService: TaskContentService,\n                          protected _selectedCaseService: SelectedCaseService = null) {\n    }\n\n    /**\n     * @returns the Task object held by {@link TaskContentService} or `undefined` if the Service currently holds no Task.\n     */\n    protected get _task(): Task | undefined {\n        return this._taskContentService.task;\n    }\n\n    /**\n     * Throws an error if the {@link TaskContentService} didn't have the Task object set yet.\n     *\n     * @returns the Task object held by {@link TaskContentService}.\n     */\n    protected get _safeTask(): Task {\n        const task = this._taskContentService.task;\n        if (!task) {\n            throw new Error('Attempting to access Task object of an uninitialized TaskContentService');\n        }\n        return task;\n    }\n\n    /**\n     * @returns `true` if a {@link Task} instance is set, `false` otherwise\n     */\n    protected isTaskPresent(): boolean {\n        return !!this._taskContentService.task;\n    }\n\n    /**\n     * Checks whether the current state of the {@link TaskContentService} and optionally if the {@link SelectedCaseService}, is still\n     * relevant to the task that was requested.\n     *\n     * This method is useful if you use {@link UnlimitedTaskContentService}, or a similar implementation. It is possible for the currently\n     * \"selected\" task to change in-between a backend request was sent and the response was received. In that case the response is no longer\n     * relevant and should be discarded, otherwise an illegal task state could be achieved on frontend.\n     * @param requestedTaskId the `stringId` of the requested task\n     * @returns `true` if the requested task is still relevant to the state of the frontend. Returns `false` otherwise.\n     */\n    protected isTaskRelevant(requestedTaskId: string): boolean {\n        return this.isTaskPresent()\n            && this._task.stringId === requestedTaskId\n            && (!this._selectedCaseService\n                || (!!this._selectedCaseService\n                    && !!this._selectedCaseService.selectedCase\n                    && this._task.caseId === this._selectedCaseService.selectedCase.stringId\n                )\n            );\n    }\n}\n","import {TaskEvent} from './task-event';\nimport {Task} from '../../resources/public-api';\nimport {TaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/task-event-outcome';\n\n/**\n * Holds the information about an event that occurred to some {@link Task} resource.\n *\n * Task events correspond more or less 1-to-1 to backend calls and their results.\n */\nexport interface TaskEventNotification {\n    /**\n     * StringId of the affected {@link Task}\n     */\n    taskId: string;\n    /**\n     * StringId of the Transition\n     */\n    transitionId: string;\n    /**\n     * The event that occurred\n     */\n    event: TaskEvent;\n    /**\n     * Success state of the event\n     */\n    success: boolean;\n\n    /**\n     * The task eventOutcome from backend\n     */\n    outcome?: TaskEventOutcome;\n}\n\n/**\n * @param task affected Task object\n * @param event the reported Task event\n * @param success success state of the reported event\n * @param outcome TaskEventOutcome\n * @returns the notification informing about the event\n */\nexport function createTaskEventNotification(task: Task, event: TaskEvent, success: boolean, outcome?: TaskEventOutcome): TaskEventNotification {\n    return {\n        taskId: task.stringId,\n        transitionId: task.transitionId,\n        event,\n        success,\n        outcome\n    };\n}\n","export enum TaskEvent {\n    ASSIGN = 'assign',\n    FINISH = 'finish',\n    CANCEL = 'cancel',\n    DELEGATE = 'delegate',\n    SET_DATA = 'set data',\n    GET_DATA = 'get data',\n}\n","import {AfterAction} from '../../utility/call-chain/after-action';\n\n/**\n * Wrapper for a scheduled event\n */\nexport class QueuedEvent {\n\n    /**\n     * @param _isRelevant a method that determines if the event is still relevant at the time of its execution.\n     * Returns `true` if the event is still relevant (e.g. the set field is still editable). Returns `false` otherwise.\n     * @param _execute executes the scheduled event and then performs the provided after action\n     * @param _revert reverts the scheduled event and then performs the provided after action\n     */\n    constructor(protected _isRelevant: () => boolean,\n                protected _execute: (afterAction: AfterAction) => void,\n                protected _revert: (afterAction: AfterAction) => void = (a) => {\n                    a.resolve(true);\n                }) {\n    }\n\n    /**\n     * Executes the event if it is still relevant, or reverts it if it is not.\n     * Performs the provided after action, once the event is resolved.\n     */\n    public resolve(afterAction: AfterAction): void {\n        if (this._isRelevant()) {\n            this._execute(afterAction);\n        } else {\n            this._revert(afterAction);\n        }\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {TaskContentService} from '../../task-content/services/task-content.service';\nimport {TaskHandlingService} from './task-handling-service';\n\n/**\n * Holds information about the state of backend requests regarding a single {@link Task} instance\n * held within the {@link TaskContentService}.\n *\n * This Service is used by many other Services that handle the necessary logic for working with a single Task on frontend.\n */\n@Injectable()\nexport class TaskRequestStateService extends TaskHandlingService implements OnDestroy {\n\n    protected _loading: LoadingEmitter;\n    protected _updating: LoadingEmitter;\n\n    constructor(_taskContent: TaskContentService) {\n        super(_taskContent);\n        this._loading = new LoadingEmitter();\n        this._updating = new LoadingEmitter();\n        _taskContent.task$.subscribe(() => {\n            this._loading.off();\n            this._updating.off();\n        });\n    }\n\n    /**\n     * @returns whether the task is currently loading, or `undefined` if the queried task is\n     * not held within the injected {@link TaskContentService}.\n     *\n     * @param taskId stringId of the {@link Task} we would like to get information about.\n     * If no value is provided, the state of the task held in the {@link TaskContentService} will be returned.\n     */\n    public isLoading(taskId?: string): boolean | undefined {\n        if (taskId !== undefined && !this.isTaskRelevant(taskId)) {\n            return undefined;\n        }\n        return this._loading.isActive;\n    }\n\n    /**\n     * Changes the state of the loading indicator to `true`,\n     * if the task held within the injected {@link TaskContentService} has the Id that is provided as argument.\n     * This method does nothing otherwise.\n     *\n     * @param taskId stringId of the {@link Task} who's loading state we want to change\n     */\n    public startLoading(taskId: string): void {\n        if (!this.isTaskRelevant(taskId)) {\n            return;\n        }\n        this._loading.on();\n    }\n\n    /**\n     * Changes the state of the loading indicator to `false`,\n     * if the task held within the injected {@link TaskContentService} has the Id that is provided as argument.\n     * This method does nothing otherwise.\n     *\n     * @param taskId stringId of the {@link Task} who's loading state we want to change\n     */\n    public stopLoading(taskId: string): void {\n        if (!this.isTaskRelevant(taskId)) {\n            return;\n        }\n        this._loading.off();\n    }\n\n    /**\n     * @returns whether the task is currently updating it's data fields, or `undefined` if the queried task is\n     * not held within the injected {@link TaskContentService}.\n     *\n     * @param taskId stringId of the {@link Task} we would like to get information about.\n     * If no value is provided, the state of the task held in the {@link TaskContentService} will be returned.\n     */\n    public isUpdating(taskId?: string): boolean | undefined {\n        if (taskId !== undefined && !this.isTaskRelevant(taskId)) {\n            return undefined;\n        }\n        return this._updating.isActive;\n    }\n\n    /**\n     * Changes the state of the updating indicator to `true`,\n     * if the task held within the injected {@link TaskContentService} has the Id that is provided as argument.\n     * This method does nothing otherwise.\n     *\n     * @param taskId stringId of the {@link Task} who's loading state we want to change\n     */\n    public startUpdating(taskId: string): void {\n        if (!this.isTaskRelevant(taskId)) {\n            return;\n        }\n        this._updating.on();\n    }\n\n    /**\n     * Changes the state of the updating indicator to `false`,\n     * if the task held within the injected {@link TaskContentService} has the Id that is provided as argument.\n     * This method does nothing otherwise.\n     *\n     * @param taskId stringId of the {@link Task} who's loading state we want to change\n     */\n    public stopUpdating(taskId: string): void {\n        if (!this.isTaskRelevant(taskId)) {\n            return;\n        }\n        this._updating.off();\n    }\n\n    ngOnDestroy(): void {\n        this._loading.complete();\n        this._updating.complete();\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {TaskContentService} from './task-content.service';\nimport {TaskHandlingService} from '../../task/services/task-handling-service';\nimport {Observable, Subject} from 'rxjs';\nimport {TaskEventNotification} from '../model/task-event-notification';\n\n/**\n * Holds logic about the available operations on a {@link Task} object based on it's state.\n *\n * Beware that it gets the Task from (@link TaskContentService) instance and thus the task might not be always initialized.\n * If the task is not initialized this class cannot work properly.\n */\n@Injectable()\nexport class TaskEventService extends TaskHandlingService implements OnDestroy {\n\n    protected _taskEventNotifications$: Subject<TaskEventNotification>;\n\n    constructor(_taskContentService: TaskContentService) {\n        super(_taskContentService);\n        this._taskEventNotifications$ = new Subject<TaskEventNotification>();\n    }\n\n    /**\n     * Completes the stream\n     */\n    ngOnDestroy(): void {\n        this._taskEventNotifications$.complete();\n    }\n\n    /**\n     * Provides information about results of events executed on the managed {@link Task}\n     */\n    public get taskEventNotifications$(): Observable<TaskEventNotification> {\n        return this._taskEventNotifications$.asObservable();\n    }\n\n    /**\n     * Emits a new {@link TaskEventNotification} into the notifications stream\n     * @param event the event information that will be pushed into the stream\n     */\n    public publishTaskEvent(event: TaskEventNotification): void {\n        this._taskEventNotifications$.next(event);\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {Case} from '../../resources/interface/case';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n/**\n * Holds information about the currently selected {@link Case}.\n *\n * Services that handle various task operations, can use this service to take into consideration changes in frontend data in\n * between backend call and backend response.\n *\n * This service is used by Tree Case View's {@link TreeTaskContentService}.\n */\n@Injectable()\nexport class SelectedCaseService implements OnDestroy {\n\n    /**\n     * Stores the currently selected {@link Case}.\n     *\n     * The initial value is `undefined`.\n     *\n     * Beware that setting new values doesn't make copies of the provided {@link Case} object,\n     * so it is possible that any subscriber could modify the shared object.\n     * Subscribed library services don't modify the provided {@link Case}, only the owner ({@link TreeTaskContentService})\n     * of the {@link Case} object performs modifications of it.\n     */\n    protected _selectedCase$: BehaviorSubject<Case>;\n\n    constructor() {\n        this._selectedCase$ = new BehaviorSubject<Case>(undefined);\n    }\n\n    ngOnDestroy(): void {\n        this._selectedCase$.complete();\n    }\n\n    public get selectedCase$(): Observable<Case> {\n        return this._selectedCase$.asObservable();\n    }\n\n    /**\n     * @param selectedCase the new value, that is emitted into the underlying stream\n     */\n    public set selectedCase(selectedCase: Case) {\n        this._selectedCase$.next(selectedCase);\n    }\n\n    /**\n     * @returns the current value of the underlying stream\n     */\n    public get selectedCase(): Case {\n        return this._selectedCase$.getValue();\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {QueuedEvent} from '../model/queued-event';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {CallChainService} from '../../utility/call-chain/call-chain.service';\n\n/**\n * This service handles the queuing and execution of task related events (assign, finish, cancel, delegate, setData and getData)\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class EventQueueService {\n\n    protected _queue: Array<QueuedEvent>;\n    protected _performingEvent: LoadingEmitter;\n\n    constructor(protected _log: LoggerService, protected _afterActionService: CallChainService) {\n        this._queue = [];\n        this._performingEvent = new LoadingEmitter();\n    }\n\n    /**\n     * Schedules the execution of the provided event\n     * @param event\n     */\n    public scheduleEvent(event: QueuedEvent) {\n        if (this._performingEvent.isActive) {\n            this._log.debug(`Adding scheduled event to queue. Position in queue: ${this._queue.length}`);\n            this._queue.push(event);\n        } else {\n            this._log.debug('Event queue is empty. Executing scheduled event immediately.');\n            this._performingEvent.on();\n            this.executeEvent(event);\n        }\n    }\n\n    protected executeEvent(event: QueuedEvent) {\n        event.resolve(this._afterActionService.create(() => {\n            this.executeNextEventFromQueue();\n        }));\n    }\n\n    protected executeNextEventFromQueue() {\n        this._log.debug('Event finished execution.');\n\n        if (this._queue.length === 0) {\n            this._performingEvent.off();\n            this._log.debug('Last event in queue was executed.');\n            return;\n        }\n\n        this._log.debug('Executing next event in queue.');\n        this.executeEvent(this._queue.shift());\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {UserService} from './user.service';\nimport {IUser} from '../models/iuser';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UserComparatorService {\n\n  constructor(private _userService: UserService) { }\n\n  public compareUsers(user: IUser, acceptImpersonator: boolean = true): boolean {\n      const loggedUser = acceptImpersonator ? this._userService.user.getSelfOrImpersonated() : this._userService.user;\n      return user.email === loggedUser.email ||\n          user.email.includes('anonymous') && this._userService.user.email.includes('anonymous');\n  }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\nimport {ChangedFields} from '../../data-fields/models/changed-fields';\nimport {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map';\n\n@Injectable()\nexport class ChangedFieldsService implements OnDestroy {\n\n    protected _changedFields$: Subject<ChangedFieldsMap>;\n\n    ngOnDestroy(): void {\n        this._changedFields$.complete();\n    }\n\n    constructor() {\n        this._changedFields$ = new Subject<ChangedFieldsMap>();\n    }\n\n    get changedFields$(): Observable<ChangedFieldsMap> {\n        return this._changedFields$.asObservable();\n    }\n\n    public emitChangedFields(changedFields: ChangedFieldsMap): void {\n        if (changedFields === undefined || Object.keys(changedFields).length === 0) {\n            return;\n        }\n        this._changedFields$.next(changedFields);\n    }\n\n    public parseChangedFieldsByCaseAndTaskIds(caseId: string, taskIds: Array<string>,\n                                              changedFieldsMap: ChangedFieldsMap): Array<ChangedFields> {\n        const changedFields: Array<ChangedFields> = [];\n        const filteredTaskIds: Array<string> = Object.keys(changedFieldsMap[caseId]).filter(taskId => taskIds.includes(taskId));\n        filteredTaskIds.forEach(taskId => {\n            changedFields.push(changedFieldsMap[caseId][taskId]);\n        });\n        return changedFields;\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {FrontActionDefinition} from \"../actions/model/front-action-definition\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class FrontActionRegistryService {\n\n    protected _registry: Map<string, FrontActionDefinition>;\n\n    constructor() {\n        this._registry = new Map<string, FrontActionDefinition>();\n    }\n\n    get registry(): Map<string, FrontActionDefinition> {\n        return this._registry;\n    }\n\n    set registry(value: Map<string, FrontActionDefinition>) {\n        this._registry = value;\n    }\n\n    public register(key: string, fn: FrontActionDefinition): void {\n        this._registry.set(key, fn);\n    }\n\n    public contains(key: string): boolean {\n        return this._registry.has(key);\n    }\n\n    public get(key: string): FrontActionDefinition {\n        if (this._registry.has(key)) {\n            return this._registry.get(key);\n        }\n        return undefined;\n    }\n}\n","import {Injectable, Injector} from '@angular/core';\nimport {FrontActionRegistryService} from \"../../registry/front-action-registry.service\";\nimport {FrontAction} from \"../../data-fields/models/changed-fields\";\nimport {LoggerService} from \"../../logger/services/logger.service\";\n\n@Injectable()\nexport class FrontActionService {\n\n    constructor(protected _injector: Injector,\n                protected _frontActionRegistry: FrontActionRegistryService,\n                protected _log: LoggerService) {\n\n    }\n\n    public run(frontAction: FrontAction): void {\n        const fn = this._frontActionRegistry.get(frontAction.id)\n        if (!fn) {\n            this._log.error(\"Frontend action is not defined for ID [\" + frontAction.id +\"]\")\n        }\n        fn.call(this._injector, frontAction)\n    }\n\n    public runAll(frontAction: FrontAction[]): void {\n        frontAction.forEach(a => this.run(a))\n    }\n\n}\n","import {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {Observable, Subject, Subscription} from 'rxjs';\nimport {ChangedFields, FrontAction} from '../../data-fields/models/changed-fields';\nimport {TaskContentService} from '../../task-content/services/task-content.service';\nimport {TaskRequestStateService} from './task-request-state.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TaskResourceService} from '../../resources/engine-endpoint/task-resource.service';\nimport {FieldConverterService} from '../../task-content/services/field-converter.service';\nimport {TaskSetDataRequestBody} from '../../resources/interface/task-set-data-request-body';\nimport {TaskHandlingService} from './task-handling-service';\nimport {NAE_TASK_OPERATIONS} from '../models/task-operations-injection-token';\nimport {TaskOperations} from '../interfaces/task-operations';\nimport {HttpErrorResponse} from '@angular/common/http';\nimport {FileField} from '../../data-fields/file-field/models/file-field';\nimport {SelectedCaseService} from './selected-case.service';\nimport {FileListField} from '../../data-fields/file-list-field/models/file-list-field';\nimport {createTaskEventNotification} from '../../task-content/model/task-event-notification';\nimport {TaskEvent} from '../../task-content/model/task-event';\nimport {TaskEventService} from '../../task-content/services/task-event.service';\nimport {DataField} from '../../data-fields/models/abstract-data-field';\nimport {CallChainService} from '../../utility/call-chain/call-chain.service';\nimport {take} from 'rxjs/operators';\nimport {DynamicEnumerationField} from '../../data-fields/enumeration-field/models/dynamic-enumeration-field';\nimport {DataGroup} from '../../resources/interface/data-groups';\nimport {EventQueueService} from '../../event-queue/services/event-queue.service';\nimport {QueuedEvent} from '../../event-queue/model/queued-event';\nimport {AfterAction} from '../../utility/call-chain/after-action';\nimport {UserComparatorService} from '../../user/services/user-comparator.service';\nimport {TaskSetDataRequestContext} from '../models/task-set-data-request-context';\nimport {EventOutcomeMessageResource} from '../../resources/interface/message-resource';\nimport {EventService} from '../../event/services/event.service';\nimport {ChangedFieldsService} from '../../changed-fields/services/changed-fields.service';\nimport {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map';\nimport {TaskFields} from '../../task-content/model/task-fields';\nimport {EnumerationField} from \"../../data-fields/enumeration-field/models/enumeration-field\";\nimport {FrontActionService} from \"../../actions/services/front-action.service\";\n\n/**\n * Handles the loading and updating of data fields and behaviour of\n * a single Task object managed by a {@link TaskContentService} instance.\n */\n@Injectable()\nexport class TaskDataService extends TaskHandlingService implements OnDestroy {\n\n    protected _updateSuccess$: Subject<boolean>;\n    protected _dataReloadSubscription: Subscription;\n\n    constructor(protected _taskState: TaskRequestStateService,\n                protected _translate: TranslateService,\n                protected _log: LoggerService,\n                protected _snackBar: SnackBarService,\n                protected _taskResourceService: TaskResourceService,\n                protected _fieldConverterService: FieldConverterService,\n                protected _taskEvent: TaskEventService,\n                @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations,\n                @Optional() _selectedCaseService: SelectedCaseService,\n                _taskContentService: TaskContentService,\n                protected _afterActionFactory: CallChainService,\n                protected _eventQueue: EventQueueService,\n                protected _userComparator: UserComparatorService,\n                protected _eventService: EventService,\n                protected _changedFieldsService: ChangedFieldsService,\n                protected _frontActionService: FrontActionService) {\n        super(_taskContentService, _selectedCaseService);\n        this._updateSuccess$ = new Subject<boolean>();\n        this._dataReloadSubscription = this._taskContentService.taskDataReloadRequest$.subscribe(queuedFrontendAction => {\n            this.initializeTaskDataFields(new AfterAction(), true);\n        });\n    }\n\n    ngOnDestroy(): void {\n        this._updateSuccess$.complete();\n        this._dataReloadSubscription.unsubscribe();\n        if (this.isTaskPresent() && this._safeTask.dataGroups) {\n            this._safeTask.dataGroups.forEach(group => {\n                if (group && group.fields) {\n                    group.fields.forEach(field => field.destroy());\n                }\n            });\n        }\n    }\n\n    /**\n     * Contains information about the success or failure of backend\n     * calls in [updateTaskDataFields]{@link TaskDataService#updateTaskDataFields} method.\n     */\n    public get updateSuccess$(): Observable<boolean> {\n        return this._updateSuccess$.asObservable();\n    }\n\n    /**\n     * Loads the Data Fields of an uninitialized Task from backend\n     * and populates the Task managed by {@link TaskContentService} with the appropriate objects.\n     *\n     * Beware that if the Task has some data already loaded this function does nothing\n     * and only passes `true` to the `afterAction` argument.\n     *\n     * If the task held within the {@link TaskContentService} changes before a response is received, the response will be ignored\n     * and the `afterAction` will not be executed.\n     *\n     * @param afterAction if the request completes successfully emits `true` into the Subject, otherwise `false` will be emitted\n     * @param force set to `true` if you need force reload of all task data\n     */\n    public initializeTaskDataFields(afterAction: AfterAction = new AfterAction(), force = false): void {\n        this._eventQueue.scheduleEvent(new QueuedEvent(\n            () => {\n                return this.isTaskPresent();\n            },\n            nextEvent => {\n                this.performGetDataRequest(afterAction, force, nextEvent);\n            }, nextEvent => {\n                afterAction.resolve(false);\n                nextEvent.resolve(false);\n            }\n        ));\n    }\n\n    /**\n     * Performs a `getData` request on the task currently stored in the `taskContent` service\n     * @param afterAction the action that should be performed after the request is processed\n     * @param force set to `true` if you need force reload of all task data\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     */\n    protected performGetDataRequest(afterAction: AfterAction, force: boolean, nextEvent: AfterAction) {\n        if (this._safeTask.dataSize > 0 && !force) {\n            this.sendNotification(TaskEvent.GET_DATA, true);\n            afterAction.resolve(true);\n            this._taskContentService.$shouldCreate.next(this._safeTask.dataGroups);\n            nextEvent.resolve(true);\n            return;\n        }\n        if (force) {\n            this._safeTask.dataSize = 0;\n        }\n\n        const gottenTaskId = this._safeTask.stringId;\n        this._taskState.startLoading(gottenTaskId);\n\n        this._taskResourceService.getData(gottenTaskId).pipe(take(1)).subscribe(dataGroups => {\n            this.processSuccessfulGetDataRequest(gottenTaskId, dataGroups, afterAction, nextEvent);\n        }, error => {\n            this.processErroneousGetDataRequest(gottenTaskId, error, afterAction, nextEvent);\n        });\n    }\n\n    /**\n     * Processes a successful outcome of a `getData` request\n     * @param gottenTaskId the ID of the task whose data was requested\n     * @param dataGroups the returned data groups of the task\n     * @param afterAction the action that should be performed after the request is processed\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     */\n    protected processSuccessfulGetDataRequest(gottenTaskId: string,\n                                              dataGroups: Array<DataGroup>,\n                                              afterAction: AfterAction,\n                                              nextEvent: AfterAction): void {\n        if (!this.isTaskRelevant(gottenTaskId)) {\n            this._log.debug('current task changed before the get data response could be received, discarding...');\n            this._taskState.stopLoading(gottenTaskId);\n            afterAction.complete();\n            nextEvent.resolve(false);\n            return;\n        }\n        this._taskContentService.referencedTaskAndCaseIds = {};\n        this._taskContentService.taskFieldsIndex = {};\n\n        this._safeTask.dataGroups = dataGroups;\n        if (dataGroups.length === 0) {\n            this._log.info('Task has no data ' + this._safeTask);\n            this._safeTask.dataSize = 0;\n            this._taskContentService.taskFieldsIndex[this._safeTask.stringId] = {} as TaskFields;\n        } else {\n            this._taskContentService.referencedTaskAndCaseIds[this._safeTask.caseId] = [this._safeTask.stringId];\n            dataGroups.forEach(group => {\n                const dataGroupParentCaseId: string = group.parentCaseId === undefined ? this._safeTask.caseId : group.parentCaseId;\n                const parentTaskId: string = group.parentTaskId === undefined ? this._safeTask.stringId : group.parentTaskId;\n                const parentTransitionId: string = group.parentTransitionId === undefined ?\n                    this._safeTask.transitionId : group.parentTransitionId;\n                if (dataGroupParentCaseId !== this._safeTask.caseId) {\n                    if (!this._taskContentService.referencedTaskAndCaseIds[dataGroupParentCaseId]) {\n                        this._taskContentService.referencedTaskAndCaseIds[dataGroupParentCaseId] = [group.parentTaskId];\n                    } else {\n                        this._taskContentService.referencedTaskAndCaseIds[dataGroupParentCaseId].push(group.parentTaskId);\n                    }\n                } else if (dataGroupParentCaseId === this._safeTask.caseId\n                    && parentTaskId !== this._safeTask.stringId\n                    && !this._taskContentService.referencedTaskAndCaseIds[dataGroupParentCaseId].includes(parentTaskId)) {\n                    this._taskContentService.referencedTaskAndCaseIds[dataGroupParentCaseId].push(group.parentTaskId);\n                }\n                if (group.fields.length > 0 && !this._taskContentService.taskFieldsIndex[parentTaskId]) {\n                    this._taskContentService.taskFieldsIndex[parentTaskId] = {} as TaskFields;\n                }\n                if (group.fields.length > 0 && !this._taskContentService.taskFieldsIndex[parentTaskId].fields) {\n                    this._taskContentService.taskFieldsIndex[parentTaskId].fields = {};\n                }\n                group.fields.forEach(field => {\n                    this._taskContentService.taskFieldsIndex[parentTaskId].transitionId = parentTransitionId;\n                    this._taskContentService.taskFieldsIndex[parentTaskId].fields[field.stringId] = field;\n                    field.valueChanges().subscribe(() => {\n                        if (this.wasFieldUpdated(field)) {\n                            if (field instanceof DynamicEnumerationField) {\n                                field.loading = true;\n                                this.updateTaskDataFields(this._afterActionFactory.create(bool => {\n                                    field.loading = false;\n                                }));\n                            } else {\n                                this.updateTaskDataFields();\n                            }\n                        }\n                    });\n                    if (field instanceof FileField || field instanceof FileListField) {\n                        field.changedFields$.subscribe((change: ChangedFieldsMap) => {\n                            this._changedFieldsService.emitChangedFields(change);\n                        });\n                    }\n                });\n                this._safeTask.dataSize === undefined ?\n                    this._safeTask.dataSize = group.fields.length :\n                    this._safeTask.dataSize += group.fields.length;\n            });\n        }\n        this._taskState.stopLoading(gottenTaskId);\n        this.sendNotification(TaskEvent.GET_DATA, true);\n        afterAction.resolve(true);\n        nextEvent.resolve(true);\n        this._taskContentService.$shouldCreate.next(this._safeTask.dataGroups);\n        this._taskContentService.$shouldCreateCounter.next(this._taskContentService.$shouldCreateCounter.getValue() + 1);\n    }\n\n    /**\n     * Processes an erroneous outcome of a `getData` request\n     * @param gottenTaskId the ID of the task whose data was requested\n     * @param error the returned error\n     * @param afterAction the action that should be performed after the request is processed\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     */\n    protected processErroneousGetDataRequest(gottenTaskId: string,\n                                             error: HttpErrorResponse | Error,\n                                             afterAction: AfterAction,\n                                             nextEvent: AfterAction) {\n        this._taskState.stopLoading(gottenTaskId);\n        this._log.debug('getting task data failed', error);\n\n        if (!this.isTaskRelevant(gottenTaskId)) {\n            this._log.debug('current task changed before the get data error could be received');\n            afterAction.complete();\n            nextEvent.resolve(false);\n            return;\n        }\n\n        if (error instanceof HttpErrorResponse && error.status === 500 && error.error.message && error.error.message.startsWith('Could not find task with id')) {\n            this._snackBar.openWarningSnackBar(this._translate.instant('tasks.snackbar.noLongerExists'));\n            this._taskOperations.reload();\n        } else if (error instanceof Error) {\n            this._snackBar.openErrorSnackBar(this._translate.instant(error.message));\n        } else {\n            this._snackBar.openErrorSnackBar(`${this._translate.instant('tasks.snackbar.noGroup')}\n                        ${this._taskContentService.task.title} ${this._translate.instant('tasks.snackbar.failedToLoad')}`);\n        }\n        this.sendNotification(TaskEvent.GET_DATA, false);\n        afterAction.resolve(false);\n        nextEvent.resolve(false);\n    }\n\n    /**\n     * Collects all changed data fields and notifies the backend of the changes.\n     *\n     * If the request is successful clears the [changed]{@link DataField#changed} flag on all data fields that were a part of the request\n     * and emits a {@link ChangedFields} object into this object's [changedFields$]{@link TaskDataService#changedFields$} stream.\n     *\n     * If the task held within the {@link TaskContentService} changes before a response is received, the response will be ignored\n     * and the `afterAction` will not be executed.\n     *\n     * @param afterAction if the request completes successfully emits `true` into the Subject, otherwise `false` will be emitted\n     */\n    public updateTaskDataFields(afterAction: AfterAction = new AfterAction()): void {\n        if (!this.isTaskPresent()) {\n            this._log.debug('Task is not present. Update request ignored.');\n            afterAction.resolve(false);\n            return;\n        }\n\n        if (this._safeTask.user === undefined) {\n            this._log.debug('current task is not assigned...');\n            afterAction.resolve(false);\n            return;\n        }\n\n        const setTaskId = this._safeTask.stringId;\n\n        if (this._safeTask.dataSize <= 0) {\n            afterAction.resolve(true);\n            return;\n        }\n\n        const requestContext = this.createUpdateRequestContext();\n\n        this._eventQueue.scheduleEvent(new QueuedEvent(\n            () => this.isSetDataRequestStillValid(requestContext.body),\n            nextEvent => {\n                this.performSetDataRequest(setTaskId, requestContext, afterAction, nextEvent);\n            },\n            nextEvent => {\n                this.revertSetDataRequest(requestContext);\n                nextEvent.resolve(false);\n            }\n        ));\n    }\n\n    /**\n     * @ignore\n     * Goes over all the data fields in the managed Task and if they are valid and changed adds them to the set data request\n     */\n    protected createUpdateRequestContext(): TaskSetDataRequestContext {\n        const context: TaskSetDataRequestContext = {\n            body: {},\n            previousValues: {}\n        };\n\n        this._safeTask.dataGroups.filter(dataGroup => dataGroup.parentTaskId === undefined).forEach(dataGroup => {\n            dataGroup.fields.filter(field => this.wasFieldUpdated(field)).forEach(field => {\n                context.body[this._task.stringId] = {};\n                this.addFieldToSetDataRequestBody(context, this._task.stringId, field);\n            });\n        });\n        this._safeTask.dataGroups.filter(dataGroup => dataGroup.parentTaskId !== undefined).forEach(dataGroup => {\n            if (dataGroup.fields.some(field => this.wasFieldUpdated(field))) {\n                context.body[dataGroup.parentTaskId] = {};\n            } else {\n                return;\n            }\n            dataGroup.fields.filter(field => this.wasFieldUpdated(field)).forEach(field => {\n                this.addFieldToSetDataRequestBody(context, dataGroup.parentTaskId, field);\n            });\n        });\n        return context;\n    }\n\n    protected addFieldToSetDataRequestBody(context: TaskSetDataRequestContext, taskId: string, field: DataField<any>): void {\n        context.body[taskId][field.stringId] = {\n            type: this._fieldConverterService.resolveType(field),\n            value: this._fieldConverterService.formatValueForBackend(field, field.value)\n        };\n        context.previousValues[field.stringId] = field.previousValue;\n        field.changed = false;\n    }\n\n    protected isAutocompleteEnumException(field: DataField<unknown>): boolean{\n        return (field instanceof EnumerationField) && (field.getComponentType() === 'autocomplete') && !(field.valid || field.value === null);\n    }\n\n    /**\n     * @param field the checked field\n     * @returns whether the field was updated on frontend and thus the backend should be notified\n     */\n    protected wasFieldUpdated(field: DataField<unknown>): boolean {\n        return field.initialized && field.changed && (field.valid || field.sendInvalidValues) && (!this.isAutocompleteEnumException(field));\n    }\n\n    /**\n     * Checks whether the request could still be performed by the logged user\n     * @param request\n     */\n    protected isSetDataRequestStillValid(request: TaskSetDataRequestBody): boolean {\n        if (!this.isTaskPresent()) {\n            return false;\n        }\n        if (this._safeTask.user === undefined) {\n            return false;\n        }\n        if (!this._userComparator.compareUsers(this._safeTask.user)) {\n            return false;\n        }\n        const taskIdsInRequest: Array<string> = Object.keys(request);\n        for (const taskId of taskIdsInRequest) {\n            if (!Object.keys(this._taskContentService.taskFieldsIndex).includes(taskId)) {\n                this._log.error(`Task id ${taskId} is not present in task fields index`);\n                return false;\n            }\n            const fieldIdsOfRequest = Object.keys(request[taskId]);\n            for (const fieldId of fieldIdsOfRequest) {\n                const field = this._taskContentService.taskFieldsIndex[taskId].fields[fieldId];\n                if (field === undefined) {\n                    this._log.error(`Unexpected state. Datafield ${fieldId} of task ${taskId\n                    } in setData request is not present in the task.`);\n                    return false;\n                }\n                if (!field.behavior.editable) {\n                    this._log.debug(`Field ${fieldId}, was meant to be set to\n                    ${JSON.stringify(request[taskId][fieldId])\n                    }, but is no loner editable.`);\n                    return false;\n                }\n            }\n        }\n        return true;\n    }\n\n    /**\n     * Performs a `setData` request on the task currently stored in the `taskContent` service\n     * @param setTaskId ID of the task\n     * @param context context of the `setData` request\n     * @param afterAction the action that should be performed after the request is processed\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     */\n    protected performSetDataRequest(setTaskId: string, context: TaskSetDataRequestContext, afterAction: AfterAction, nextEvent: AfterAction) {\n        if (Object.keys(context.body).length === 0) {\n            this.sendNotification(TaskEvent.SET_DATA, true);\n            afterAction.resolve(true);\n            nextEvent.resolve(true);\n            return;\n        }\n\n        this._taskState.startLoading(setTaskId);\n        this._taskState.startUpdating(setTaskId);\n\n        this._taskResourceService.setData(this._safeTask.stringId, context.body).pipe(take(1))\n            .subscribe((response: EventOutcomeMessageResource) => {\n                if (!this.isTaskRelevant(setTaskId)) {\n                    this._log.debug('current task changed before the set data response could be received, discarding...');\n                    this._taskState.stopLoading(setTaskId);\n                    this._taskState.stopUpdating(setTaskId);\n                    afterAction.complete();\n                    nextEvent.resolve(false);\n                    return;\n                }\n                if (response.success) {\n                    this.processSuccessfulSetDataRequest(setTaskId, response, afterAction, nextEvent, context);\n                } else if (response.error !== undefined) {\n                    this.processUnsuccessfulSetDataRequest(setTaskId, response, afterAction, nextEvent, context);\n                }\n            }, error => {\n                this.processErroneousSetDataRequest(setTaskId, error, afterAction, nextEvent, context);\n            });\n    }\n\n    /**\n     * Processes an unsuccessful outcome of a `setData` request\n     * @param setTaskId the ID of the task whose data was set\n     * @param response the resulting Event outcome of the set data request\n     * @param afterAction the action that should be performed after the request is processed\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     * @param body hold the data that was sent in request\n     */\n    protected processUnsuccessfulSetDataRequest(setTaskId: string,\n                                                response: EventOutcomeMessageResource,\n                                                afterAction: AfterAction,\n                                                nextEvent: AfterAction,\n                                                context: TaskSetDataRequestContext) {\n        if (response.error !== '') {\n            this._snackBar.openErrorSnackBar(this._translate.instant(response.error));\n        } else {\n            this._snackBar.openErrorSnackBar(this._translate.instant('tasks.snackbar.failedSave'));\n        }\n        if (response.outcome) {\n            const outcome = response.outcome;\n            const changedFieldsMap: ChangedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(outcome);\n\n            if (Object.keys(changedFieldsMap).length > 0) {\n                this._changedFieldsService.emitChangedFields(changedFieldsMap);\n            }\n        }\n        this.revertToPreviousValue(context);\n        this.clearWaitingForResponseFlag(context.body);\n        this.updateStateInfo(afterAction, false, setTaskId);\n        nextEvent.resolve(false);\n        this._taskOperations.reload();\n    }\n\n    /**\n     * Processes a successful outcome of a `setData` request\n     * @param setTaskId the ID of the task whose data was set\n     * @param response the resulting Event outcome of the set data request\n     * @param afterAction the action that should be performed after the request is processed\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     * @param context hold the data that was sent in request\n     */\n    protected processSuccessfulSetDataRequest(setTaskId: string,\n                                              response: EventOutcomeMessageResource,\n                                              afterAction: AfterAction,\n                                              nextEvent: AfterAction,\n                                              context: TaskSetDataRequestContext) {\n        const outcome = response.outcome;\n        const changedFieldsMap: ChangedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(outcome);\n        const frontActions: Array<FrontAction> = this._eventService.parseFrontActionsFromOutcomeTree(outcome);\n\n        if (Object.keys(changedFieldsMap).length > 0) {\n            this._changedFieldsService.emitChangedFields(changedFieldsMap);\n        }\n        if (!!frontActions && frontActions.length > 0) {\n            this._frontActionService.runAll(frontActions);\n        }\n        this.clearWaitingForResponseFlag(context.body);\n        this._snackBar.openSuccessSnackBar(!!outcome.message ? outcome.message : this._translate.instant('tasks.snackbar.dataSaved'));\n        this.updateStateInfo(afterAction, true, setTaskId);\n        nextEvent.resolve(true);\n    }\n\n    /**\n     * Processes an erroneous outcome of a `setData` request\n     * @param setTaskId the ID of the task whose data was set\n     * @param error the returned error\n     * @param afterAction the action that should be performed after the request is processed\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     * @param body hold the data that was sent in request\n     */\n    protected processErroneousSetDataRequest(setTaskId: string,\n                                             error: HttpErrorResponse,\n                                             afterAction: AfterAction,\n                                             nextEvent: AfterAction,\n                                             context: TaskSetDataRequestContext) {\n        this._log.debug('setting task data failed', error);\n\n        if (!this.isTaskRelevant(setTaskId)) {\n            this._log.debug('current task changed before the get data error could be received');\n            this._taskState.stopLoading(setTaskId);\n            this._taskState.stopUpdating(setTaskId);\n            afterAction.complete();\n            nextEvent.resolve(false);\n            return;\n        }\n\n        this.revertToPreviousValue(context);\n        this.clearWaitingForResponseFlag(context.body);\n        this._snackBar.openErrorSnackBar(this._translate.instant('tasks.snackbar.failedSave'));\n        this.updateStateInfo(afterAction, false, setTaskId);\n        nextEvent.resolve(false);\n        this._taskOperations.reload();\n    }\n\n    /**\n     * Reverts the effects of a failed `setData` request, so that the user sees current values.\n     * @param context the context of the failed request\n     */\n    protected revertSetDataRequest(context: TaskSetDataRequestContext) {\n        // this iteration could be improved if we had a map of all the data fields in a task\n        const totalCount = Object.keys(context.body).length;\n        let foundCount = 0;\n\n        for (const datagroup of this._safeTask.dataGroups) {\n            for (const field of datagroup.fields) {\n                if (!context.body[field.stringId]) {\n                    continue;\n                }\n\n                if (this.compareBackendFormattedFieldValues(\n                    this._fieldConverterService.formatValueForBackend(field, field.value),\n                    context.body[field.stringId].value)\n                ) {\n                    field.valueWithoutChange(context.previousValues[field.stringId]);\n                }\n\n                foundCount++;\n                if (foundCount === totalCount) {\n                    return;\n                }\n            }\n        }\n\n        this._log.error(`Invalid state. Some data fields of task ${this._safeTask.stringId}, are no longer present in it!`);\n    }\n\n    /**\n     * Compares the values that are in the backend compatible format as given by the {@link FieldConverterService}\n     * and determines whether they are the same value, or not.\n     * @param current the current value (can also be called `value1` or `left`)\n     * @param old the new value (can also be called `value2` or `right`)\n     * @returns `true` if the values are the same and `false` otherwise\n     */\n    protected compareBackendFormattedFieldValues(current, old): boolean {\n        if (Array.isArray(current)) {\n            if (!Array.isArray(old)) {\n                throw new Error('Illegal arguments! Cannot compare array value to non-array value');\n            }\n\n            if (current.length !== old.length) {\n                return false;\n            }\n\n            return current.every((value, index) => old[index] === value);\n        }\n\n        return current === old;\n    }\n\n    /**\n     * @ignore\n     *\n     * stops loading and updating indicators, and emits the `result` value\n     * to both the `afterAction` and [_updateSuccess$]{@link TaskDataService#_updateSuccess$} streams.\n     *\n     * @param afterAction the call chain steam of the update data method\n     * @param result result of the update data request\n     * @param setTaskId the ID of the {@link Task}, who's state should be updated\n     */\n    protected updateStateInfo(afterAction: AfterAction, result: boolean, setTaskId: string): void {\n        this._taskState.stopLoading(setTaskId);\n        this._taskState.stopUpdating(setTaskId);\n        if (this._updateSuccess$.observers.length !== 0) {\n            this._updateSuccess$.next(result);\n        }\n        this.sendNotification(TaskEvent.SET_DATA, result);\n        afterAction.resolve(result);\n    }\n\n    /**\n     * Publishes a get/set data notification to the {@link TaskEventService}\n     * @param event the event that occurred to the task\n     * @param success whether the get/set data operation was successful or not\n     */\n    protected sendNotification(event: TaskEvent.GET_DATA | TaskEvent.SET_DATA, success: boolean): void {\n        this._taskEvent.publishTaskEvent(createTaskEventNotification(this._safeTask, event, success));\n    }\n\n    protected revertToPreviousValue(context: TaskSetDataRequestContext): void {\n        this._safeTask.dataGroups.forEach(dataGroup => {\n            dataGroup.fields.forEach(field => {\n                if (field.initialized && field.valid && Object.keys(context.previousValues).includes(field.stringId)) {\n                    field.revertToPreviousValue();\n                }\n            });\n        });\n    }\n\n    protected clearWaitingForResponseFlag(body: TaskSetDataRequestBody) {\n        Object.keys(body).forEach(taskId => {\n            Object.keys(body[taskId]).forEach(fieldId => {\n                this._taskContentService.taskFieldsIndex[taskId].fields[fieldId].waitingForResponse = false;\n            });\n        });\n    }\n}\n","import {Component, Inject, Input, OnDestroy} from '@angular/core';\nimport {TaskRefDashboardTile} from '../../model/task-ref-dashboard-tile';\nimport {CaseResourceService} from '../../../../resources/engine-endpoint/case-resource.service';\nimport {TaskRefField} from '../../model/task-ref-field';\nimport {TaskRefDashboardConstants} from '../../model/task-ref-dashboard-constants';\nimport {TaskRefDashboardTileConstants} from '../../model/task-ref-dashboard-tile-constants';\nimport {Subject, Subscription} from 'rxjs';\nimport {ProcessService} from '../../../../process/process.service';\nimport {switchMap} from 'rxjs/operators';\nimport {CreateCaseEventOutcome} from '../../../../event/model/event-outcomes/case-outcomes/create-case-event-outcome';\nimport {FormControl} from '@angular/forms';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {TaskSetDataRequestBody} from '../../../../resources/interface/task-set-data-request-body';\nimport {TaskResourceService} from '../../../../resources/engine-endpoint/task-resource.service';\nimport {CallChainService} from '../../../../utility/call-chain/call-chain.service';\nimport {FieldTypeResource} from '../../../../task-content/model/field-type-resource';\nimport {TaskContentService} from '../../../../task-content/services/task-content.service';\nimport {TaskOperations} from '../../../../task/interfaces/task-operations';\nimport {NAE_TASK_OPERATIONS} from '../../../../task/models/task-operations-injection-token';\nimport {TaskDataService} from '../../../../task/services/task-data.service';\nimport {AfterAction} from '../../../../utility/call-chain/after-action';\n\n@Component({\n    selector: 'ncc-abstract-task-ref-dashboard-tile',\n    template: '',\n})\nexport abstract class AbstractTaskRefDashboardTileComponent implements OnDestroy {\n\n    @Input() tile: TaskRefDashboardTile;\n    @Input() taskRef: TaskRefField;\n    @Input() fc: FormControl;\n\n    private _sub: Subscription;\n    private caseCreating = false;\n\n    protected constructor(protected _caseResourceService: CaseResourceService,\n                          protected _processService: ProcessService,\n                          protected _logger: LoggerService,\n                          protected _taskResourceService: TaskResourceService,\n                          protected _callChainService: CallChainService,\n                          protected _parentTaskContentService: TaskContentService,\n                          protected _taskDataService: TaskDataService,\n                          @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations) {\n    }\n\n    ngOnDestroy(): void {\n        if (this._sub !== undefined) {\n            this._sub.unsubscribe();\n        }\n    }\n\n    public createNewDashboardTile(): void {\n        if (this.caseCreating) {\n            return;\n        }\n        this.caseCreating = true;\n        this._sub = this._processService.getNet(TaskRefDashboardTileConstants.DASHBOARD_TILE_PROCESS_IDENTIFIER).pipe(\n            switchMap(net => this._caseResourceService.createCase({\n                netId: net.stringId,\n                title: `tile (${this.tile.x}, ${this.tile.y})`\n            }))\n        ).subscribe(outcome => {\n            if (outcome.error) {\n                this._logger.error(`Could not create task ref dashboard tile case`, outcome.error);\n                return;\n            }\n            const _case = (outcome.outcome as CreateCaseEventOutcome).aCase;\n\n            // set tile info\n            this.assignSetData(_case.tasks[0].task, {\n                [_case.tasks[0].task]: {\n                    [TaskRefDashboardTileConstants.DASHBOARD_TILE_X]: {\n                        type: FieldTypeResource.NUMBER,\n                        value: this.tile.x\n                    },\n                    [TaskRefDashboardTileConstants.DASHBOARD_TILE_Y]: {\n                        type: FieldTypeResource.NUMBER,\n                        value: this.tile.y\n                    },\n                    [TaskRefDashboardTileConstants.DASHBOARD_TILE_ROWS]: {\n                        type: FieldTypeResource.NUMBER,\n                        value: this.tile.rows\n                    },\n                    [TaskRefDashboardTileConstants.DASHBOARD_TILE_COLS]: {\n                        type: FieldTypeResource.NUMBER,\n                        value: this.tile.cols\n                    },\n                    [TaskRefDashboardTileConstants.DASHBOARD_TILE_PARENT_ID]: {\n                        type: FieldTypeResource.TEXT,\n                        value: this._parentTaskContentService.task.caseId\n                    }\n                }\n            }, this._callChainService.create(success => {\n                if (!success) {\n                    return;\n                }\n\n                // reference new tile in task ref\n                this._taskResourceService.setData(this._parentTaskContentService.task.stringId, {\n                    [this._parentTaskContentService.task.stringId]: {\n                        [TaskRefDashboardConstants.DASHBOARD_TASK_REF]: {\n                            type: FieldTypeResource.TASK_REF,\n                            value: [...this.taskRef.value, _case.tasks[0].task]\n                        }\n                    }\n                }).subscribe(outcome => {\n                    if (outcome.error) {\n                        this._logger.error(`Could not reference created task ref dashboard tile in the task ref`, outcome.error);\n                        return;\n                    }\n                    this._taskDataService.initializeTaskDataFields(new AfterAction(), true);\n                }, error => {\n                    this._logger.error(`Could not reference created task ref dashboard tile in the task ref`, error);\n                });\n            }));\n        }, error => {\n            this._logger.error(`Could not create task ref dashboard tile case`, error);\n        });\n    }\n\n    // TODO copy of a similar method found in UserFilterService\n    protected assignSetData(taskId: string, data: TaskSetDataRequestBody, callChain: Subject<boolean>): void {\n        this._taskResourceService.assignTask(taskId).subscribe(assignOutcome => {\n            if (assignOutcome.error) {\n                this._logger.error(`Could not assign task '${taskId}'`, assignOutcome.error);\n                callChain.next(false);\n                return;\n            }\n\n            this._taskResourceService.setData(taskId, data).subscribe(setDataOutcome => {\n                if (setDataOutcome.error) {\n                    this._logger.error(`Could not set data of task '${taskId}'`, data, setDataOutcome.error);\n                    callChain.next(false);\n                    return;\n                }\n\n                callChain.next(true);\n\n            }, error => {\n                this._logger.error(`Could not set data of task '${taskId}'`, data, error);\n                callChain.next(false);\n            });\n        }, error => {\n            this._logger.error(`Could not assign task '${taskId}'`, error);\n            callChain.next(false);\n        });\n    }\n}\n","import {Component, Inject, OnInit, Optional} from \"@angular/core\";\nimport {TaskRefField} from \"../model/task-ref-field\";\nimport {TaskRefDashboardTile} from \"../model/task-ref-dashboard-tile\";\nimport {LoggerService} from \"../../../logger/services/logger.service\";\nimport {TaskRefDashboardConstants} from \"../model/task-ref-dashboard-constants\";\nimport {TaskRefDashboardTileConstants} from \"../model/task-ref-dashboard-tile-constants\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\n\n@Component({\n    selector: 'ncc-abstract-task-ref-dashboard',\n    template: ''\n})\nexport abstract class AbstractTaskRefDashboardFieldComponent extends AbstractBaseDataFieldComponent<TaskRefField> implements OnInit {\n\n    dashboardTiles: Array<TaskRefDashboardTile>;\n    protected constructor(protected _logger: LoggerService,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TaskRefField>) {\n        super(dataFieldPortalData);\n    }\n\n    ngOnInit() {\n        this.createDashboardTiles();\n    }\n\n    protected createDashboardTiles() {\n        const gridRows = this.dataField.dashboardRows;\n        if (gridRows === undefined) {\n            this._logger.error(`TaskRef Dashboard '${this.dataField.stringId}' does not specify grid height! Add a number field with id '${TaskRefDashboardConstants.DASHBOARD_ROWS}' to the same task as the task ref field, to specify the height.`);\n        }\n        const gridCols = this.dataField.dashboardCols;\n        if (gridCols === undefined) {\n            this._logger.error(`TaskRef Dashboard '${this.dataField.stringId}' does not specify grid width! Add a number field with id '${TaskRefDashboardConstants.DASHBOARD_COLS}' to the same task as the task ref field, to specify the width.`);\n        }\n        const occupiedTiles = this.createFlagGrid(gridRows, gridCols);\n        this.dashboardTiles = [];\n        if (this.dataField.dashboardTiles && this.dataField.dashboardTiles.length > 0) {\n            for (const extractedTile of this.dataField.dashboardTiles) {\n                const tile = this.createDashboardTile(extractedTile);\n                this.dashboardTiles.push(tile);\n                this.occupySpace(occupiedTiles, tile.y, tile.x, tile.cols, tile.rows);\n            }\n        }\n        for (let y = 0; y < occupiedTiles.length; y++) {\n            for (let x = 0; x < occupiedTiles[y].length; x++) {\n                if (!occupiedTiles[y][x]) {\n                    this.dashboardTiles.push(this.createEmptyDashboardTile(x, y));\n                }\n            }\n        }\n    }\n\n    protected createFlagGrid(rows: number = 1, cols: number = 1): Array<Array<boolean>> {\n        const result = [];\n        for (let r = 0; r < rows; r++) {\n            result.push(Array(cols).fill(false));\n        }\n        return result;\n    }\n\n    protected createDashboardTile(tile: TaskRefDashboardTile): TaskRefDashboardTile {\n        const result: TaskRefDashboardTile = {\n            dataGroups: tile.dataGroups\n        };\n\n        for (const dg of tile.dataGroups) {\n            for (const field of dg.fields) {\n                switch (field.stringId) {\n                    case TaskRefDashboardTileConstants.DASHBOARD_TILE_X:\n                        result.x = field.value;\n                        break;\n                    case TaskRefDashboardTileConstants.DASHBOARD_TILE_Y:\n                        result.y = field.value;\n                        break;\n                    case TaskRefDashboardTileConstants.DASHBOARD_TILE_ROWS:\n                        result.rows = field.value;\n                        break;\n                    case TaskRefDashboardTileConstants.DASHBOARD_TILE_COLS:\n                        result.cols = field.value;\n                        break;\n\n                }\n            }\n        }\n\n        if (result.x === undefined) {\n            if (tile.dataGroups.length > 0) {\n                this._logger.error(`Task ref dashboard tile from task '${tile.dataGroups[0].parentTaskId}' transition '${tile.dataGroups[0].parentTransitionId}' case '${tile.dataGroups[0].parentCaseId}' does not specify tile grid X coordinate! Add a number field with ID '${TaskRefDashboardTileConstants.DASHBOARD_TILE_X}' to the referenced task to specify it.`);\n            }\n            result.x = 0;\n        }\n        if (result.y === undefined) {\n            if (tile.dataGroups.length > 0) {\n                this._logger.error(`Task ref dashboard tile from task '${tile.dataGroups[0].parentTaskId}' transition '${tile.dataGroups[0].parentTransitionId}' case '${tile.dataGroups[0].parentCaseId}' does not specify tile grid Y coordinate! Add a number field with ID '${TaskRefDashboardTileConstants.DASHBOARD_TILE_Y}' to the referenced task to specify it.`);\n            }\n            result.y = 0;\n        }\n        if (result.rows === undefined) {\n            if (tile.dataGroups.length > 0) {\n                this._logger.error(`Task ref dashboard tile from task '${tile.dataGroups[0].parentTaskId}' transition '${tile.dataGroups[0].parentTransitionId}' case '${tile.dataGroups[0].parentCaseId}' does not specify tile height coordinate! Add a number field with ID '${TaskRefDashboardTileConstants.DASHBOARD_TILE_ROWS}' to the referenced task to specify it.`);\n            }\n            result.rows = 1;\n        }\n        if (result.cols === undefined) {\n            if (tile.dataGroups.length > 0) {\n                this._logger.error(`Task ref dashboard tile from task '${tile.dataGroups[0].parentTaskId}' transition '${tile.dataGroups[0].parentTransitionId}' case '${tile.dataGroups[0].parentCaseId}' does not specify tile width coordinate! Add a number field with ID '${TaskRefDashboardTileConstants.DASHBOARD_TILE_COLS}' to the referenced task to specify it.`);\n            }\n            result.cols = 1;\n        }\n\n        return result;\n    }\n\n    // TODO a modified copy of a method of the same name from AbstractTaskContentComponent\n    protected occupySpace(grid: Array<Array<boolean>>, y: number, x: number, width: number, height: number) {\n        for (let j = y; j < y + height; j++) {\n            for (let i = x; i < x + width; i++) {\n                grid[j][i] = true;\n            }\n        }\n    }\n\n    protected createEmptyDashboardTile(x: number, y: number): TaskRefDashboardTile {\n        return {\n            dataGroups: [],\n            x,\n            y,\n            rows: 1,\n            cols: 1,\n            isEmpty: true\n        }\n    }\n}\n","import {AfterViewInit, Component, Inject, Injector, Optional, Type} from \"@angular/core\";\nimport {TaskRefField} from \"../model/task-ref-field\";\nimport {NAE_BASE_FILTER} from \"../../../search/models/base-filter-injection-token\";\nimport {SimpleFilter} from \"../../../filter/models/simple-filter\";\nimport {BaseFilter} from \"../../../search/models/base-filter\";\nimport {NAE_VIEW_ID_SEGMENT} from \"../../../user/models/view-id-injection-tokens\";\nimport {ViewIdService} from \"../../../user/services/view-id.service\";\nimport {AbstractBaseDataFieldComponent} from \"../../base-component/abstract-base-data-field.component\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\n\n@Component({\n    selector: 'ncc-abstract-task-ref-list-field',\n    template: ''\n})\nexport abstract class AbstractTaskRefListFieldComponent extends AbstractBaseDataFieldComponent<TaskRefField> implements AfterViewInit {\n\n    public componentPortal: ComponentPortal<any>;\n\n    protected constructor(protected injector: Injector,\n                          protected taskViewType: Type<any>,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TaskRefField>) {\n        super(dataFieldPortalData);\n    }\n\n    ngAfterViewInit(): void {\n        this.createFilter();\n        this.dataField.valueChanges().subscribe(() => {\n            this.createFilter();\n        });\n    }\n\n    createFilter() {\n        const portalInjector = Injector.create({\n            providers: [\n                {\n                    provide: NAE_BASE_FILTER,\n                    useValue: { filter: SimpleFilter.fromTaskQuery({stringId: this.dataField.value}) } as BaseFilter\n                },\n                {\n                    provide: NAE_VIEW_ID_SEGMENT,\n                    useValue: this.dataField.parentCaseId + '_' + this.dataField.parentTaskId + '_' + this.dataField.stringId\n                },\n                { provide: ViewIdService, useClass: ViewIdService }],\n            parent: this.injector\n        });\n        this.componentPortal = new ComponentPortal(this.taskViewType, null, portalInjector);\n    }\n\n}\n","import {AfterViewInit, Component, Inject, Injector, OnDestroy, Optional, Type} from \"@angular/core\";\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from \"../../models/data-field-portal-data-injection-token\";\nimport {CaseRefField} from '../model/case-ref-field';\nimport {Subscription} from 'rxjs';\nimport {AbstractCaseRefBaseFieldComponent} from '../model/abstract-case-ref-base-field-component';\n\n@Component({\n    selector: 'ncc-abstract-case-ref-default',\n    template: ''\n})\nexport abstract class AbstractCaseRefDefaultComponent extends AbstractCaseRefBaseFieldComponent<CaseRefField> implements AfterViewInit, OnDestroy {\n\n    protected _sub: Subscription;\n    protected _subComp: Subscription;\n\n    protected constructor(protected injector: Injector,\n                          protected caseViewType: Type<any>,\n                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<CaseRefField>) {\n        super(injector, caseViewType, dataFieldPortalData);\n    }\n\n    ngAfterViewInit(): void {\n        this.callCreateFilter();\n        this._sub = this.dataField.valueChanges().subscribe(() => {\n            this.callCreateFilter();\n        });\n        this._subComp = this.dataField.componentChange$().subscribe(() => {\n            this.callCreateFilter();\n        });\n    }\n\n    protected callCreateFilter() {\n        this.createFilter(this.dataField.value.length > 0 ? this.dataField.value : '');\n    }\n\n    ngOnDestroy() {\n        super.ngOnDestroy();\n        this._sub.unsubscribe();\n        this._subComp.unsubscribe()\n    }\n\n}\n","import {Component, ElementRef, Inject, OnInit, Optional, ViewChild} from '@angular/core';\nimport {AbstractBaseDataFieldComponent} from '../../base-component/abstract-base-data-field.component';\nimport {TranslateService} from '@ngx-translate/core';\nimport {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from '../../models/data-field-portal-data-injection-token';\nimport {StringCollectionField} from '../models/string-collection-field';\nimport {ENTER, COMMA, SEMICOLON} from '@angular/cdk/keycodes';\nimport {MatChipInputEvent} from '@angular/material/chips';\nimport {Subscription} from 'rxjs';\n\n@Component({\n    selector: 'ncc-abstract-string-collection-default-field',\n    template: '',\n})\nexport abstract class AbstractStringCollectionDefaultFieldComponent extends AbstractBaseDataFieldComponent<StringCollectionField> implements OnInit {\n\n    @ViewChild('input') input: ElementRef;\n    public separatorKeysCodes: number[] = [ENTER];\n    protected subComp: Subscription;\n\n    protected constructor(protected _translate: TranslateService,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<StringCollectionField>) {\n        super(dataFieldPortalData);\n    }\n\n    ngOnInit() {\n        this.checkProperties();\n        this.subComp = this.dataField.componentChange$().subscribe(() => {\n            this.checkProperties()\n        })\n    }\n\n    checkProperties() {\n        this.checkPropertyForSeparator(this.dataField?.component?.properties?.semicolon === 'true', SEMICOLON)\n        this.checkPropertyForSeparator(this.dataField?.component?.properties?.comma === 'true', COMMA)\n    }\n\n    protected checkPropertyForSeparator(propertyBoolean: boolean, separator: number) {\n        if (propertyBoolean && !this.separatorKeysCodes.includes(separator)) {\n            this.separatorKeysCodes.push(separator);\n        } else if (this.separatorKeysCodes.includes(separator)) {\n            this.separatorKeysCodes = this.separatorKeysCodes.filter(value => value !== separator);\n        }\n    }\n\n    remove(value: string): void {\n        const index = this.dataField.value.indexOf(value);\n\n        if (index >= 0) {\n            const choiceArray = [...this.dataField.value];\n            choiceArray.splice(index, 1);\n            this.dataField.value = choiceArray;\n        }\n    }\n\n    add(event: MatChipInputEvent | FocusEvent): void {\n        const value = event['value'] ?? (event['target']?.['value'] ?? '');\n\n        if (value?.trim()) {\n            this.dataField.value = (this.dataField.value === null || this.dataField.value === undefined) ? [] : this.dataField.value\n            const choiceArray = [...this.dataField.value];\n            choiceArray.push(value);\n            this.dataField.value = choiceArray;\n            this.input.nativeElement.value = '';\n        } else {\n            this.input.nativeElement.value = '';\n        }\n    }\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const BOOLEAN_VALUE_LABEL_ENABLED = new InjectionToken<boolean>('BooleanValueLabelEnabledToken');\n","/**\n * Appearance of rendered material form field.\n *\n * See [Material documentation]{@link https://material.angular.io/components/form-field/overview#form-field-appearance-variants}\n * for more information.\n */\nexport enum MaterialAppearance {\n    LEGACY = 'legacy',\n    STANDARD = 'standard',\n    FILL = 'fill',\n    OUTLINE = 'outline'\n}\n","/**\n * A collection of Task ref field component names supported by the application engine.\n */\nexport enum TaskRefComponents {\n    DASHBOARD = 'dashboard'\n}\n","/* CLASSES */\nexport * from './credentials';\nexport * from './transformer';\nexport * from './user.transformer';\n","import {Injectable} from '@angular/core';\nimport {ActivatedRoute, ActivatedRouteSnapshot, Params, Router, UrlSegment} from '@angular/router';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {Views} from '../../../commons/schema';\nimport {ConfigurationService} from '../../configuration/configuration.service';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class RedirectService {\n\n    public static readonly LOGIN_COMPONENT = 'login';\n    protected _lastIntendedRoute: ActivatedRouteSnapshot;\n    private lastQueryParams: Params;\n\n    constructor(protected _router: Router,\n                protected _log: LoggerService,\n                protected _config: ConfigurationService,\n                protected _route: ActivatedRoute) {\n        this._route.queryParams.subscribe(params => this.lastQueryParams = params);\n    }\n\n    get lastUrl(): Array<UrlSegment> {\n        return this._lastIntendedRoute.url;\n    }\n\n    set intendedRoute(route: ActivatedRouteSnapshot) {\n        this._lastIntendedRoute = route;\n    }\n\n    get queryParams(): Params {\n        return this.lastQueryParams;\n    }\n\n    public redirect(path?: string) {\n        if (!!path) {\n            this._router.navigateByUrl(path).then(log => {\n                this._log.info('Router navigate to path ' + path + ' : ' + log);\n            });\n        } else if (this._lastIntendedRoute && (this._lastIntendedRoute as any)._routerState\n            && (this._lastIntendedRoute as any)._routerState.url) {\n            this._router.navigateByUrl((this._lastIntendedRoute as any)._routerState.url).then(log => {\n                this._log.info('Router navigate to last path : ' + log);\n            });\n        }\n    }\n\n    public redirectFromUrl() {\n        this.lastQueryParams = this._route.snapshot.queryParams;\n        this._router.navigate([this.parseRedirectPath(this._router.url)], { queryParams: this.lastQueryParams });\n    }\n\n    public resolveLoginPath(): string {\n        const config = this._config.get();\n        if (this._config.getToLoginPath()) {\n            return this._config.getToLoginPath();\n        }\n        const route = this.resolveLoginPathFromViewConfiguration(config.views, RedirectService.LOGIN_COMPONENT);\n        if (route !== null) {\n            return route;\n        }\n        throw new Error('No login view found in application. Authentication guard can\\'t redirect. Add a view with'\n            + ' layout.name=\"login\" to your application, or set the desired redirect path in \\'services.auth.toLoginRedirect\\'');\n    }\n\n    protected resolveLoginPathFromViewConfiguration(views: Views, searchedLayout: string): string {\n        if (!views || Object.keys(views).length === 0) {\n            return null;\n        }\n        const route = Object.keys(views).find(routeKey => {\n            const layout = views[routeKey].layout;\n            return !!layout && layout.name === searchedLayout;\n        });\n        if (route) {\n            return (views[route].routing && views[route].routing.path) ? views[route].routing.path : null;\n        }\n        for (const routeKey of Object.keys(views)) {\n            const resolved = this.resolveLoginPathFromViewConfiguration(views[routeKey].children, searchedLayout);\n            if (resolved && views[routeKey].routing && views[routeKey].routing.path) {\n                return views[routeKey].routing.path + '/' + resolved;\n            }\n        }\n        return null;\n    }\n\n    public parseRedirectPath(url: string): string {\n        let path: string;\n        if (url.includes('?')) {\n            path = url.slice(0, url.indexOf('?'));\n        } else {\n            path = url;\n        }\n        return path.replace('/redirect', '');\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {\n    HttpErrorResponse,\n    HttpEvent,\n    HttpHandler,\n    HttpInterceptor,\n    HttpRequest,\n    HttpResponse\n} from '@angular/common/http';\nimport {Observable, throwError} from 'rxjs';\nimport {catchError, tap} from 'rxjs/operators';\nimport {SessionService} from '../session/services/session.service';\nimport {RedirectService} from '../../routing/redirect-service/redirect.service';\nimport {AnonymousService} from '../anonymous/anonymous.service';\nimport {SessionIdleTimerService} from \"../session/services/session-idle-timer.service\";\n\n@Injectable()\nexport class AuthenticationInterceptor implements HttpInterceptor {\n\n    constructor(private _session: SessionService,\n                private _redirect: RedirectService,\n                private _anonymousService: AnonymousService,\n                private idleTimerService: SessionIdleTimerService) {\n    }\n\n    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n        if (!this._session) {\n            return next.handle(req);\n        }\n\n        if (this._session && !!this._session.sessionToken) {\n            req = req.clone({\n                headers: req.headers.set(this._session.sessionHeader, this._session.sessionToken)\n            });\n            this.idleTimerService.resetTimer();\n        }\n        return next.handle(req).pipe(\n            tap(event => {\n                if (event instanceof HttpResponse) {\n                    if (event.headers.has(this._session.sessionHeader) && !event.headers.has(this._anonymousService.jwtHeader)) {\n                        this._session.setVerifiedToken(event.headers.get(this._session.sessionHeader));\n                    }\n                }\n            }),\n            catchError(errorEvent => {\n                if (errorEvent instanceof HttpErrorResponse && errorEvent.status === 401) {\n                    console.debug('Authentication token is invalid. Clearing session token');\n                    this._session.clear();\n                    this._redirect.redirect(this._redirect.resolveLoginPath());\n                }\n                return throwError(errorEvent);\n            })\n        );\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {AuthenticationMethodService} from '../../authentication-method.service';\nimport {Credentials} from '../../../models/credentials';\nimport {Observable, of} from 'rxjs';\nimport {UserResource} from '../../../../resources/interface/user-resource';\n\n@Injectable()\nexport class NullAuthenticationService extends AuthenticationMethodService {\n\n    constructor() {\n        super();\n    }\n\n    login(credentials: Credentials): Observable<UserResource> {\n        return of(null);\n    }\n\n    logout(): Observable<object> {\n        return of({});\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {Observable, throwError} from 'rxjs';\nimport {AuthenticationMethodService} from '../../authentication-method.service';\nimport {Credentials} from '../../../models/credentials';\nimport {ConfigurationService} from '../../../../configuration/configuration.service';\nimport {UserResource} from '../../../../resources/interface/user-resource';\nimport {encodeBase64} from \"../../../../utility/base64\";\n\n\n@Injectable()\nexport class BasicAuthenticationService extends AuthenticationMethodService {\n\n    constructor(private _http: HttpClient, private _config: ConfigurationService) {\n        super();\n    }\n\n    login(credentials: Credentials = {username: '', password: ''}): Observable<UserResource> {\n        const url = this._config.get().providers.auth.address + this._config.get().providers.auth.endpoints['login'];\n        if (!url) {\n            return throwError(new Error('Login URL is not defined in the config [nae.providers.auth.endpoints.login]'));\n        }\n        if (!credentials.username || !credentials.password) {\n            return throwError(new Error('User\\'s credentials are not defined!'));\n        }\n        credentials.username = credentials.username.trim();\n        credentials.password = credentials.password.trim();\n        if (credentials.username === '' || credentials.password === '') {\n            return throwError(new Error('User\\'s credentials are empty!'));\n        }\n        return this._http.get<UserResource>(url, {\n            headers: new HttpHeaders().set('Authorization', 'Basic ' +\n                encodeBase64(`${credentials.username}:${credentials.password}`))\n        });\n    }\n\n    logout(): Observable<object> {\n        const url = this._config.get().providers.auth.address + this._config.get().providers.auth.endpoints['logout'];\n        if (!url) {\n            return throwError(new Error('Logout URL is not defined in the config [nae.providers.auth.endpoints.logout]'));\n        }\n        return this._http.post(url, {});\n    }\n\n}\n","import {ConfigurationService} from '../configuration/configuration.service';\nimport {NullAuthenticationService} from './services/methods/null-authentication/null-authentication.service';\nimport {BasicAuthenticationService} from './services/methods/basic-authentication/basic-authentication.service';\nimport {HttpClient} from '@angular/common/http';\n\nexport function authenticationServiceFactory(config: ConfigurationService, http: HttpClient) {\n    const auth = config.get().providers.auth;\n    if (!auth || !auth.authentication) {\n        return new NullAuthenticationService();\n    }\n\n    const authType = auth.authentication.toLowerCase();\n    if (authType === 'basic') {\n        return new BasicAuthenticationService(http, config);\n    } else {\n        return new NullAuthenticationService();\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from '@angular/common/http';\nimport {Observable, throwError} from 'rxjs';\nimport {catchError, tap} from 'rxjs/operators';\nimport {AnonymousService} from '../anonymous/anonymous.service';\n\n@Injectable()\nexport class AnonymousAuthenticationInterceptor implements HttpInterceptor {\n\n    constructor(protected _anonymousService: AnonymousService) {}\n\n    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n        const jwtAuthToken = this._anonymousService.getToken();\n\n        if (!this._anonymousService) {\n            next.handle(req);\n        }\n\n        if (!!jwtAuthToken) {\n            req = req.clone({\n                headers: req.headers.set(this._anonymousService.jwtHeader, jwtAuthToken)\n            });\n        }\n        return next.handle(req).pipe(\n            tap(event => {\n                if (event instanceof HttpResponse) {\n                    if (event.headers.has(this._anonymousService.jwtHeader)) {\n                        this._anonymousService.setToken(event.headers.get(this._anonymousService.jwtHeader));\n                    }\n                }\n            }),\n            catchError(errorEvent => {\n                if (errorEvent instanceof HttpErrorResponse && errorEvent.status === 401) {\n                    console.debug('Authentication token is invalid. Clearing session token');\n                    this._anonymousService.removeToken();\n                }\n                return throwError(errorEvent);\n            })\n        );\n    }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {HTTP_INTERCEPTORS, HttpClient, HttpClientModule} from '@angular/common/http';\nimport {AuthenticationInterceptor} from './services/authentication-interceptor';\nimport {authenticationServiceFactory} from './authentication.factory';\nimport {ConfigurationService} from '../configuration/configuration.service';\nimport {AuthenticationMethodService} from './services/authentication-method.service';\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {MatProgressSpinnerModule, MatSpinner} from '@angular/material/progress-spinner';\nimport {AnonymousAuthenticationInterceptor} from './services/anonymous-authentication-interceptor';\n\n\n@NgModule({\n    declarations: [],\n    imports: [\n        CommonModule,\n        HttpClientModule,\n        MatProgressSpinnerModule,\n        OverlayModule,\n        // StoreModule.forFeature(AUTHENTICATION_FEATURE_KEY, reducer),\n        // EffectsModule.forFeature([AuthenticationEffects]),\n        // StoreDevtoolsModule.instrument({ maxAge: 25, logOnly: true }),\n    ],\n    providers: [\n        { provide: HTTP_INTERCEPTORS, useClass: AuthenticationInterceptor, multi: true },\n        { provide: HTTP_INTERCEPTORS, useClass: AnonymousAuthenticationInterceptor, multi: true },\n        { provide: AuthenticationMethodService, useFactory: authenticationServiceFactory, deps: [ConfigurationService, HttpClient] },\n        // AuthenticationEffects\n    ]\n})\nexport class AuthenticationModule {\n}\n","import {Injectable} from '@angular/core';\nimport {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport {AuthenticationModule} from '../../authentication.module';\nimport {SessionService} from '../../session/services/session.service';\nimport {RedirectService} from '../../../routing/redirect-service/redirect.service';\n\n@Injectable({\n    providedIn: AuthenticationModule\n})\nexport class AuthenticationGuardService implements CanActivate {\n\n    private readonly _loginUrl: string;\n\n    constructor(private _session: SessionService,\n                private _redirectService: RedirectService,\n                private _router: Router) {\n        this._loginUrl = this._redirectService.resolveLoginPath();\n    }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree {\n        this._redirectService.intendedRoute = route;\n        return this._session.sessionToken && this._session.verified ? true : this._router.parseUrl(this._loginUrl);\n    }\n}\n","/* SERVICES */\nexport * from './authentication/authentication.service';\nexport * from './guard/authentication-guard.service';\nexport * from './authentication-method.service';\nexport * from './methods/basic-authentication/basic-authentication.service';\nexport * from './methods/null-authentication/null-authentication.service';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\n\n@NgModule({\n    declarations: [],\n    imports: [\n        CommonModule\n    ]\n})\nexport class ProfileModule {\n}\n","import {Injectable} from '@angular/core';\nimport {ConfigurationService} from \"../../../configuration/configuration.service\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {LoggerService} from \"../../../logger/services/logger.service\";\nimport {Observable} from \"rxjs\";\nimport {MessageResource} from \"../../../resources/interface/message-resource\";\nimport {switchMap} from \"rxjs/operators\";\nimport {processMessageResponse} from \"../../../utility/process-message-response\";\nimport {UserChangePasswordRequest} from \"../models/user-change-password-request\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class ProfileService {\n\n    protected readonly _changePassword: string;\n\n    constructor(protected _config: ConfigurationService, protected _http: HttpClient, protected _log: LoggerService) {\n        this._changePassword = _config.resolveProvidersEndpoint('changePassword');\n    }\n\n    public changePassword(changePasswordRequest: UserChangePasswordRequest): Observable<MessageResource> {\n        if (!this._changePassword) {\n            throw new Error('Verify URL is not set in authentication provider endpoints!');\n        }\n        return this._http.post<MessageResource>(this._changePassword, changePasswordRequest).pipe(\n            switchMap(processMessageResponse)\n        );\n    }\n\n//TODO: Change Profile photo\n\n\n}\n","\n/* MODULES */\nexport * from './profile.module';\n\n/* SERVICES */\nexport * from './services/profile.service';\n\n/* MODELS */\nexport * from './models/user-change-password-request';\n","/* SERVICES */\nexport * from './services/session.service';\nexport * from './services/session-idle-timer.service'\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\n\n@NgModule({\n    declarations: [],\n    imports: [\n        CommonModule\n    ]\n})\nexport class SignUpModule {\n}\n","import {Injectable} from '@angular/core';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {ConfigurationService} from '../../../configuration/configuration.service';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {UserRegistrationRequest} from '../models/user-registration-request';\nimport {MessageResource} from '../../../resources/interface/message-resource';\nimport {switchMap} from 'rxjs/operators';\nimport {UserInvitationRequest} from '../models/user-invitation-request';\nimport {SignUpModule} from '../sign-up.module';\nimport {processMessageResponse} from '../../../utility/process-message-response';\n\n@Injectable({\n    providedIn: SignUpModule\n})\nexport class SignUpService {\n\n    protected readonly _signUpUrl: string;\n    protected readonly _verifyUrl: string;\n    protected readonly _inviteUrl: string;\n    protected readonly _resetUrl: string;\n    protected readonly _recoverUrl: string;\n\n    constructor(protected _config: ConfigurationService, protected _http: HttpClient, protected _log: LoggerService) {\n        const authAddress = _config.get().providers.auth.address;\n        if (!authAddress) {\n            throw new Error('Authentication provider address is not set!');\n        }\n        this._signUpUrl = this.resolveEndpoint('signup', authAddress);\n        this._verifyUrl = this.resolveEndpoint('verify', authAddress);\n        this._inviteUrl = this.resolveEndpoint('invite', authAddress);\n        this._resetUrl = this.resolveEndpoint('reset', authAddress);\n        this._recoverUrl = this.resolveEndpoint('recover', authAddress);\n    }\n\n    public signup(newUser: UserRegistrationRequest): Observable<MessageResource> {\n        if (!this._signUpUrl) {\n            throw new Error('SingUp URL is not set in authentication provider endpoints!');\n        }\n        newUser.password = btoa(newUser.password);\n        return this._http.post<MessageResource>(this._signUpUrl, newUser).pipe(\n            switchMap(processMessageResponse)\n        );\n    }\n\n    public invite(invitation: UserInvitationRequest): Observable<MessageResource> {\n        if (!this._inviteUrl) {\n            throw new Error('Invite URL is not set in authentication provider endpoints!');\n        }\n        if (!invitation.groups) {\n            invitation.groups = [];\n        }\n        if (!invitation.processRoles) {\n            invitation.processRoles = [];\n        }\n        return this._http.post<MessageResource>(this._inviteUrl, invitation).pipe(\n            switchMap(processMessageResponse)\n        );\n    }\n\n    public resetPassword(email: string): Observable<MessageResource> {\n        if (!this._resetUrl) {\n            throw new Error('Reset URL is not set in authentication provider endpoints!');\n        }\n        return this._http.post<MessageResource>(this._resetUrl, email).pipe(\n            switchMap(processMessageResponse)\n        );\n    }\n\n    public recoverPassword(token, password): Observable<MessageResource> {\n        if (!this._recoverUrl) {\n            throw new Error('Recover URL is not set in authentication provider endpoints!');\n        }\n        const request = {\n            token,\n            password: btoa(password),\n            email: '',\n            name: '',\n            surname: ''\n        };\n        return this._http.post<MessageResource>(this._recoverUrl, request).pipe(\n            switchMap(processMessageResponse)\n        );\n    }\n\n    public verify(token: string): Observable<MessageResource> {\n        if (!this._verifyUrl) {\n            throw new Error('Verify URL is not set in authentication provider endpoints!');\n        }\n        return this._http.post<MessageResource>(this._verifyUrl, token).pipe(\n            switchMap(processMessageResponse)\n        );\n    }\n\n    /**\n     * @param endpointKey the attribute name of the endpoint address in `nae.json`\n     * @param baseUrl the base of the endpoint URL. Content resolved by key from `nae.json` is appended to the URL provided by this argument\n     * @returns the endpoint address or `undefined` if such endpoint is not defined in `nae.json`\n     */\n    protected resolveEndpoint(endpointKey: string, baseUrl: string): string | undefined {\n        const config = this._config.get();\n        if (!config\n            || !config.providers\n            || !config.providers.auth\n            || !config.providers.auth.endpoints\n            || !config.providers.auth.endpoints[endpointKey]) {\n            return undefined;\n        }\n        return baseUrl + config.providers.auth.endpoints[endpointKey];\n    }\n}\n","\n/* MODULES */\nexport * from './sign-up.module';\n\n/* SERVICES */\nexport * from './services/sign-up.service';\n\n/* MODELS */\nexport * from './models/user-invitation-request';\nexport * from './models/user-registration-request';\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {Overlay, OverlayRef} from '@angular/cdk/overlay';\nimport {Subject} from 'rxjs';\nimport {map, scan} from 'rxjs/operators';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {MatSpinner} from '@angular/material/progress-spinner';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SpinnerOverlayService implements OnDestroy {\n\n    private readonly _spinner: OverlayRef;\n    public spin$: Subject<boolean>;\n\n\n    constructor(private overlay: Overlay) {\n        this.spin$ = new Subject<boolean>();\n        this._spinner = this._createSpinner();\n\n        this.spin$.pipe(\n            map(v => v ? 1 : -1),\n            scan((acc, curr) => (acc + curr) >= 0 ? (acc + curr) : 0, 0)\n        ).subscribe(result => result === 1 ? this._show() : (this._spinner.hasAttached() ? this._hide() : null));\n    }\n\n    ngOnDestroy(): void {\n        this.spin$.complete();\n    }\n\n    private _createSpinner() {\n        return this.overlay.create({\n            hasBackdrop: true,\n            // backdropClass: 'dark-backdrop',\n            positionStrategy: this.overlay.position()\n                .global()\n                .centerHorizontally()\n                .centerVertically()\n        });\n    }\n\n    private _show() {\n        this._spinner.attach(new ComponentPortal(MatSpinner));\n    }\n\n    private _hide() {\n        this._spinner.detach();\n    }\n}\n","import {Component, OnDestroy, OnInit} from '@angular/core';\nimport {SessionService} from '../session/services/session.service';\nimport {SpinnerOverlayService} from '../../utility/service/spinner-overlay.service';\nimport {Router} from '@angular/router';\nimport {RedirectService} from '../../routing/redirect-service/redirect.service';\nimport {Subscription} from 'rxjs';\nimport {UserService} from '../../user/services/user.service';\n\n@Component({\n    selector: 'ncc-abstract-auth-overlay',\n    template: ''\n})\nexport abstract class AbstractAuthenticationOverlayComponent implements OnInit, OnDestroy {\n    protected subSession: Subscription;\n    protected user: Subscription;\n    protected subInitializing: Subscription;\n    constructor(protected _session: SessionService, protected _spinnerOverlay: SpinnerOverlayService,\n                protected router: Router, protected redirectService: RedirectService, protected userService: UserService) {\n    }\n\n    ngOnInit(): void {\n        if (this._session.verified) {\n            this.redirectService.redirect();\n        } else if (!this._session.verified && this._session.isVerifying) {\n            this._spinnerOverlay.spin$.next(true);\n            this.subSession = this._session.verifying.subscribe(active => {\n                this.userService.user$.subscribe(user => {\n                    if (!!user && !!user.id && user.id.length > 0) {\n                        this.redirect(!active);\n                    } else if (!active) {\n                        this._spinnerOverlay.spin$.next(false);\n                    }\n                });\n            });\n        } else if (!this._session.verified && !this._session.isInitialized) {\n            this._spinnerOverlay.spin$.next(true);\n            this.subInitializing = this._session.initializing.subscribe(initialized => {\n                this.redirect(initialized);\n            });\n        }\n    }\n\n    protected redirect(bool): void {\n        if (bool) {\n            this._spinnerOverlay.spin$.next(false);\n            if (this._session.verified) {\n                this.redirectService.redirect();\n            }\n        }\n    }\n\n    ngOnDestroy(): void {\n        if (this.subSession) {\n            this.subSession.unsubscribe();\n        }\n        if (this.subInitializing) {\n            this.subInitializing.unsubscribe();\n        }\n        if (this.user) {\n            this.user.unsubscribe();\n        }\n    }\n}\n","import {Component, Input, OnDestroy, OnInit} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {Router} from \"@angular/router\";\nimport {SessionIdleTimerService} from \"../session/services/session-idle-timer.service\";\nimport {UserService} from \"../../user/services/user.service\";\nimport {LoggerService} from \"../../logger/services/logger.service\";\nimport {ConfigurationService} from \"../../configuration/configuration.service\";\n\n\n@Component({\n    selector: 'ncc-abstract-session-idle',\n    template: ''\n})\nexport abstract class AbstractSessionIdleComponent implements OnInit, OnDestroy {\n\n    @Input() alertAtSeconds? = 30;\n\n    private sessionTimerSubscription!: Subscription;\n\n    protected _enableIdle: boolean;\n\n    constructor(protected sessionTimer: SessionIdleTimerService,\n                protected _user: UserService,\n                protected _log: LoggerService,\n                protected _config: ConfigurationService,\n                protected _router: Router) {\n        this._enableIdle = this._config.getConfigurationSubtreeByPath('providers.auth.sessionTimeoutEnabled') ?? false;\n    }\n\n    ngOnInit() {\n        if (!this.sessionTimerSubscription && this._enableIdle) {\n            this.trackSessionTime();\n        }\n    }\n\n    protected trackSessionTime() {\n        this.sessionTimer.startTimer();\n        this.sessionTimerSubscription = this.sessionTimer.remainSeconds$.subscribe(\n            (t) => {\n                if (t === this.alertAtSeconds) {\n                    this.alert();\n                }\n                if (t === 0) {\n                    this.close();\n                    this.logout();\n                }\n            }\n        );\n    }\n\n    continue() {\n        this.sessionTimer.resetTimer();\n        this._user.reload()\n    }\n\n    logout() {\n        this.cleanUp()\n        this._user.logout().subscribe(() => {\n            this._log.debug('User is logged out');\n            if (this._config.getConfigurationSubtreeByPath('services.auth.logoutRedirect')) {\n                const redirectPath = this._config.getConfigurationSubtreeByPath('services.auth.logoutRedirect');\n                this._router.navigate([redirectPath]);\n            }\n        });\n    }\n\n    public abstract alert(): void;\n\n    public abstract close(): void;\n\n    protected cleanUp() {\n        this.sessionTimer.stopTimer();\n    }\n\n    ngOnDestroy(): void {\n        this.cleanUp();\n        if (this.sessionTimerSubscription) {\n            this.sessionTimerSubscription.unsubscribe();\n        }\n    }\n\n}\n","/* APIS */\nexport * from './models/public-api';\nexport * from './services/public-api';\nexport * from './profile/public-api';\nexport * from './session/public-api';\nexport * from './sign-up/public-api';\n\n/* MODULES */\nexport * from './authentication.module';\n\n/* CLASSES */\nexport * from './authentication.factory';\n\n/* SERVICES */\nexport * from './anonymous/anonymous.service';\nexport * from './services/anonymous-authentication-interceptor'\nexport * from './services/authentication-interceptor'\n\n/* COMPONENTS */\nexport * from './components/abstract-authentication-overlay';\nexport * from './components/abstract-session-idle.component'\n","// USER MODELS\nexport * from './iuser';\nexport * from './user';\n\n// PREFERENCE MODELS\nexport * from './view-id-injection-tokens';\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, forkJoin, Observable, of, Subject, timer} from 'rxjs';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {Pagination} from '../../resources/interface/pagination';\nimport {UserResourceService} from '../../resources/engine-endpoint/user-resource.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {catchError, map, mergeMap, scan, tap} from 'rxjs/operators';\nimport {HttpParams} from '@angular/common/http';\nimport {MessageResource} from '../../resources/interface/message-resource';\nimport {Page} from '../../resources/interface/page';\nimport {UserResource} from '../../resources/interface/user-resource';\nimport {PaginationParams} from '../../utility/pagination/pagination-params';\n\nexport interface UserListItem extends UserResource {\n    selected: boolean;\n    roles: Set<string>;\n\n    toggle(): void;\n}\n\nexport interface RolesObject {\n    [k: string]: RoleObject;\n}\n\ninterface RoleObject {\n    perform?: boolean;\n    delegate?: boolean;\n    view?: boolean;\n}\n\n/**\n * Performs paged loading users from backend for [UserAssignComponent]{@link AbstractUserAssignComponent}.\n */\n@Injectable()\nexport class UserListService implements OnDestroy {\n\n    /**\n     * UserValue array stream, that represents users loading from backend.\n     */\n    private readonly _users$: Observable<Array<UserListItem>>;\n    /**\n     * Emit users loading status from backend.\n     */\n    private _loading$: LoadingEmitter;\n    /**\n     * Number stream of next page users list, that to be requested from backend.\n     */\n    private _nextPage$: BehaviorSubject<number>;\n    /**\n     * Signals the end of loaded users.\n     */\n    private _endOfData: boolean;\n    /**\n     * Necessary for pagination parameters in user assign loading from backend.\n     */\n    private _pagination: Pagination;\n    /**\n     * Signals if response is empty or no.\n     */\n    private _clear: boolean;\n    /**\n     * The search content that should be applied to the request\n     */\n    private _searchQuery: string;\n    /**\n     * Roles that should be applied to the request\n     */\n    public rolesQuery: Array<string>;\n    /**\n     * negative Roles that should be applied to the request\n     */\n    public negativeRolesQuery: Array<string>;\n    private _updateProgress$: LoadingEmitter;\n    private _usersReload$: Subject<void>;\n\n    /**\n     * Inject services.\n     * Initialize declared attributes.\n     *\n     * Loading and mapped stream of users.\n     * @param _resources Loading users from backend.\n     * @param _log Logging action status.\n     * @param _snackbar Display info about loading from backend for user.\n     * @param _translate Translate messages for user.\n     */\n    constructor(private _resources: UserResourceService,\n                private _log: LoggerService,\n                private _snackbar: SnackBarService,\n                private _translate: TranslateService) {\n        this._loading$ = new LoadingEmitter();\n        this._updateProgress$ = new LoadingEmitter();\n        this._usersReload$ = new Subject<void>();\n        this._endOfData = false;\n        this._nextPage$ = new BehaviorSubject<number>(null);\n        this._pagination = {\n            size: 20,\n            totalElements: undefined,\n            totalPages: undefined,\n            number: -1\n        };\n        this._clear = false;\n        this._searchQuery = '';\n        this.rolesQuery = new Array<string>();\n        this.negativeRolesQuery = new Array<string>();\n\n        const usersMap = this._nextPage$.pipe(\n            mergeMap(p => this.loadPage(p)),\n            tap(() => {\n                if (!this._clear) { this._usersReload$.next(); }\n            }),\n            scan((acc, value) => {\n                const result = this._clear ? {} : {...acc, ...value};\n                this._clear = false;\n                return result;\n            }, {})\n        );\n        this._users$ = usersMap.pipe(\n            map(v => Object.values(v) as Array<UserListItem>),\n        );\n    }\n\n    ngOnDestroy(): void {\n        this._loading$.complete();\n        this._updateProgress$.complete();\n        this._usersReload$.complete();\n        this._nextPage$.complete();\n    }\n\n    public get loading(): boolean {\n        return this._loading$.isActive;\n    }\n\n    public get loading$(): Observable<boolean> {\n        return this._loading$.asObservable();\n    }\n\n    public get usersReload$(): Observable<void> {\n        return this._usersReload$.asObservable();\n    }\n\n    public get users$(): Observable<Array<UserListItem>> {\n        return this._users$;\n    }\n\n    public get updating$(): Observable<boolean> {\n        return this._updateProgress$.asObservable();\n    }\n\n    public get totalUsers(): number {\n        return this._pagination.totalElements ? this._pagination.totalElements : 0;\n    }\n\n    /**\n     * Get all users from backend and mapped to [UserValue]{@link UserValue} interface with catching errors.\n     * @param page Page number that is requested. / Next page users list.\n     */\n    public loadPage(page: number): Observable<{ [k: string]: UserListItem }> {\n        if (page === null || page === undefined || this._clear) {\n            return of({});\n        }\n        let params: HttpParams = new HttpParams();\n        params = this.addPageParams(params, page);\n        this._loading$.on();\n        return this._resources.search(\n            {fulltext: this._searchQuery, roles: this.rolesQuery, negativeRoles: this.negativeRolesQuery}, params).pipe(\n            catchError(err => {\n                this._log.error('Loading users has failed on page ' + this._pagination.number, err);\n                return of({content: [], pagination: {...this._pagination, number: this._pagination.number - 1}});\n            }),\n            tap(u => this._endOfData = !Array.isArray(u.content) ||\n                (Array.isArray(u.content) && u.content.length === 0) ||\n                u.pagination.number === u.pagination.totalPages),\n            map(users => (Array.isArray(users.content) ? users : {...users, content: []}) as Page<UserResource>),\n            map(users => {\n                this._pagination = users.pagination;\n                return users.content.reduce((acc, curr) => {\n                    const item = curr as UserListItem;\n                    item.roles = new Set<string>(curr.processRoles.map(pr => pr.stringId));\n                    item.processRoles = undefined;\n                    item.selected = false;\n                    item.toggle = function() {\n                        this.selected = !this.selected;\n                    };\n                    return {...acc, [curr.id]: item};\n                }, {});\n            }),\n            tap(_ => this._loading$.off())\n        );\n    }\n\n    /**\n     * Set value to nextPage stream as next page users list.\n     * @param lastRendered Last rendered user index.\n     * @param totalRendered Total loaded size users.\n     */\n    public nextPage(lastRendered: number, totalRendered: number) {\n        if (this.loading || this._endOfData) {\n            return;\n        }\n\n        if (lastRendered === totalRendered) {\n            this._nextPage$.next(this._pagination.number + 1);\n        }\n    }\n\n    /**\n     * Reload page with users.\n     */\n    public reload(newSearchQuery = ''): void {\n        if (!this._users$ || !this._pagination) {\n            return;\n        }\n        this._searchQuery = newSearchQuery;\n        this._clear = true;\n        this._pagination.number = -1;\n        this._endOfData = false;\n        this.nextPage(0, 0);\n        timer(100).subscribe(_ => {\n            this._pagination.number = -1;\n            this.nextPage(0, 0);\n        });\n    }\n\n    public updateRoles(selectedUsers: Array<UserListItem>, selectedRoles: Array<string> = []): Observable<Array<MessageResource>> {\n        if (!selectedUsers || selectedUsers.length === 0) {\n            return of([]);\n        }\n        this._updateProgress$.on();\n        return forkJoin(selectedUsers.map(user => this._resources.assignRoles(user.id + '', selectedRoles))).pipe(\n            tap(messages => {\n                messages.forEach((message, idx) => {\n                    if (message.error) {\n                        this._log.error(message.error, message);\n                        this._snackbar.openErrorSnackBar(message.error);\n                    } else {\n                        this._log.info(message.success);\n                        selectedUsers[idx].roles = new Set<string>(selectedRoles);\n                        this._snackbar.openSuccessSnackBar(this._translate.instant('tasks.snackbar.rolesSuccessAssign'));\n                    }\n                });\n                this._updateProgress$.off();\n            }));\n    }\n\n    /**\n     * Returns HttpParams with page params addition.\n     * @param params Existing HttpParams.\n     * @param page Page number that is requested. / Next page users list.\n     */\n    private addPageParams(params: HttpParams, page?: number): HttpParams {\n        params = params.set(PaginationParams.PAGE_SIZE, `${this._pagination.size}`);\n        page = page !== null ? page : this._pagination.number;\n        params = params.set(PaginationParams.PAGE_NUMBER, `${page}`);\n        return params;\n    }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n    selector: 'ncc-abstract-navigation-resizable-drawer',\n    template: ''\n})\nexport abstract class AbstractNavigationResizableDrawerComponent implements OnInit {\n    @Input() public contentWidth: BehaviorSubject<number>;\n    public width: number;\n\n    constructor() {\n    }\n\n    ngOnInit(): void {\n        if (!!this.contentWidth) {\n            this.contentWidth.subscribe(\n                newWidth => this.width = newWidth\n            );\n        }\n    }\n}\n","import {Component, Injector, Input, OnDestroy, OnInit} from '@angular/core';\nimport {User} from '../../models/user';\nimport {UserService} from '../../services/user.service';\nimport {TooltipPosition} from '@angular/material/tooltip';\nimport {Subscription} from 'rxjs';\nimport {\n    AbstractNavigationResizableDrawerComponent\n} from '../../../navigation/navigation-drawer/abstract-navigation-resizable-drawer.component';\n\nexport type Mode = 'full' | 'horizontal' | 'vertical' | 'icon';\nexport type IconStyle = 'large' | 'small';\n\n@Component({\n    selector: 'ncc-abstract-user-card',\n    template: ''\n})\nexport abstract class AbstractUserCardComponent extends AbstractNavigationResizableDrawerComponent implements OnInit, OnDestroy {\n\n    @Input() public user: User;\n    @Input() public mode: Mode = 'horizontal';\n    @Input() public tooltipPosition: TooltipPosition = 'below';\n    @Input() public iconStyle: IconStyle = 'large';\n    @Input() public link: string;\n    protected subUser: Subscription;\n\n    constructor(protected _injector: Injector) {\n        super();\n    }\n\n    ngOnInit(): void {\n        super.ngOnInit();\n        if (!this.user) {\n            const userService: UserService = this._injector.get(UserService);\n            if (userService) {\n                this.user = userService.user;\n                this.subUser = userService.user$.subscribe(user => this.user = user);\n            }\n        }\n    }\n\n    ngOnDestroy(): void {\n        if (this.subUser) {\n            this.subUser.unsubscribe();\n        }\n    }\n\n    userBannerExists(): boolean {\n        return this.user && this.user['banner'];\n    }\n\n    get userBanner(): string {\n        return this.user && this.user['banner'] ? this.user['banner'] : 'assets/default-user-background.jpg';\n    }\n\n    get userAvatar(): string {\n        return this.user && this.user['avatar'] ? this.user['avatar'] : 'assets/default-user-avatar.png';\n    }\n\n}\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport {User} from '../models/user';\nimport {UserService} from '../services/user.service';\nimport {Subscription} from 'rxjs';\n\n@Component({\n    selector: 'ncc-abstract-profile',\n    template: ''\n})\nexport abstract class AbstractProfileComponent implements OnInit, OnDestroy {\n\n    @Input() public user: User;\n    protected subUser: Subscription;\n\n    constructor(protected _userService: UserService) {\n    }\n\n    ngOnInit(): void {\n        if (!this.user) {\n            this.user = this._userService.user;\n            this.subUser = this._userService.user$.subscribe(user => {\n                this.user = user;\n            });\n        }\n    }\n\n    ngOnDestroy(): void {\n        if (this.subUser) {\n            this.subUser.unsubscribe();\n        }\n    }\n\n    get userBanner(): string {\n        return this.user && this.user['banner'] ? this.user['banner'] : 'assets/default-user-background.jpg';\n    }\n\n    get userAvatar(): string {\n        return this.user && this.user['avatar'] ? this.user['avatar'] : 'assets/default-user-avatar.png';\n    }\n}\n","/* MODELS */\nexport * from './models/public-api';\n\n/* SERVICES */\nexport * from './services/user.service';\nexport * from './services/user-preference.service';\nexport * from './services/user-comparator.service';\nexport * from './services/user-list.service';\nexport * from './services/view-id.service';\n\n/* COMPONENTS */\nexport * from './components/user-card/abstract-user-card.component';\nexport * from './profile/abstract-profile.component';\n","export enum ConfigParams {\n    PANEL_HEADER = 'panelHeader'\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class CaseListFontColorService {\n\n    cache: { [k: string]: string } = {};\n\n    constructor() {\n    }\n\n    /**\n     * Computes if font color of line should be white or black based on chosen hex case color.\n     * Hex color is converted to its rbg components and decides from them if case color is dark or light.\n     * Threshold for color lightness decision can be changed if needed\n     *\n     * @param caseColor string color of case\n     * @returns font color black or white\n     */\n    computeCaseFontColor(caseColor: string): string {\n        // check if hex color\n        if (caseColor === undefined) {\n            return 'black';\n        }\n        if (caseColor in this.cache) {\n            return this.cache[caseColor];\n        }\n        const m = caseColor.match(/^#?([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/i);\n        if (m === null || m.length !== 4) {\n            this.cache[caseColor] = 'black';\n            return 'black';\n        }\n        const r = parseInt(m[1], 16);\n        const g = parseInt(m[2], 16);\n        const b = parseInt(m[3], 16);\n        // možné špecifickejšie upraviť threshold hodnotu\n        const fontColor = (((r * 0.299) + (g * 0.587) + (b * 0.114)) > 150) ?\n            'black' : 'white';\n        this.cache[caseColor] = fontColor;\n        return fontColor;\n    }\n}\n","import {AfterViewInit, Component, EventEmitter, Input, OnDestroy, Output, TemplateRef, ViewChild} from '@angular/core';\nimport {MatExpansionPanel} from '@angular/material/expansion';\nimport {CaseListFontColorService} from '../utility/service/case-list-font-color.service';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { ConfigParams } from './configuration/config-params';\n\n@Component({\n    selector: 'ncc-abstract-panel',\n    template: ''\n})\nexport abstract class AbstractPanelComponent implements AfterViewInit, OnDestroy {\n\n    config: Params;\n    @Input() expansionDisabled = false;\n    @Input() preventExpand = false;\n    @Input() preventCollapse = false;\n    @Input() hidePanelHeader = false;\n    @Input() panelHeader: TemplateRef<object>;\n    @Input() panelContent: TemplateRef<object>;\n    @Input() first: boolean;\n    @Input() last: boolean;\n    @Input() public caseColor: string;\n\n    @Output() stopLoading: EventEmitter<object> = new EventEmitter();\n    @Output() getExpansionPanelRef: EventEmitter<MatExpansionPanel> = new EventEmitter();\n\n    @ViewChild('matExpansionPanel') matExpansionPanel;\n\n    protected constructor(protected _caseListFontColorService: CaseListFontColorService,\n                          protected _activatedRoute?: ActivatedRoute) {\n        if (!!_activatedRoute) {\n            this._activatedRoute.queryParams.subscribe(paramMap => this.config = paramMap);\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.stopLoading.complete();\n        this.getExpansionPanelRef.complete();\n    }\n\n    ngAfterViewInit() {\n        this.getExpansionPanelRef.emit(this.matExpansionPanel);\n    }\n\n    emitExpand() {\n        this.stopLoading.emit();\n    }\n\n    emitCollapse() {\n        this.stopLoading.emit();\n    }\n\n    expandPanel() {\n        if (this.preventExpand) {\n            this.matExpansionPanel.close();\n        }\n    }\n\n    showPanelHeader(): boolean {\n        if (!!this.hidePanelHeader) {\n            return false;\n        }\n        return !(this.config?.[ConfigParams.PANEL_HEADER] === 'false')\n    }\n\n    getCaseFontColor(): string {\n        return this._caseListFontColorService.computeCaseFontColor(this.caseColor);\n    }\n}\n","import moment, {Moment} from 'moment';\n\n/**\n * [year month day hour minute second timestamp]\n * month and day are 1 indexed\n */\nexport type NaeDate = Array<number>;\n\nexport function toMoment(date: NaeDate): Moment {\n    return moment(\n        new Date(date[0],\n                date[1] - 1,\n                date[2],\n                date[3] !== undefined ? date[3] : 12,\n                date[4] !== undefined ? date[4] : 0)\n    );\n}\n","export enum CaseMetaField {\n    MONGO_ID = 'mongoId',\n    VISUAL_ID = 'visualId',\n    TITLE = 'title',\n    AUTHOR = 'author',\n    CREATION_DATE = 'creationDate',\n}\n","import {SortDirection} from '@angular/material/sort';\n\nexport enum HeaderColumnType {\n    META = 'meta',\n    IMMEDIATE = 'immediate',\n}\n\nexport class HeaderColumn {\n\n    public sortDirection: SortDirection;\n    public searchInput: any;\n\n    constructor(public type: HeaderColumnType,\n                public fieldIdentifier: string,\n                public title: string,\n                public fieldType: string,\n                public initial = true,\n                public petriNetIdentifier?: string) {\n        if (this.type === HeaderColumnType.IMMEDIATE && !this.petriNetIdentifier) {\n            throw new Error('HeaderColumn instances of type IMMEDIATE cannot be created without a petriNetIdentifier!');\n        }\n    }\n\n    public get uniqueId(): string {\n        return `${this.type === HeaderColumnType.IMMEDIATE ? this.petriNetIdentifier : 'meta'}-${this.fieldIdentifier}`;\n    }\n}\n","import {Injectable, Optional} from '@angular/core';\nimport {ViewIdService} from '../../user/services/view-id.service';\n\ninterface OverflowState {\n    overflowMode: boolean;\n    columnWidth: number;\n    columnCount: number;\n}\n\n@Injectable()\nexport class OverflowService {\n\n    protected readonly DEFAULT_COLUMN_WIDTH = 200;\n    protected readonly DEFAULT_COLUMN_COUNT = 6;\n    private _overflowMode: boolean;\n    private _columnWidth: number;\n    private _columnCount: number;\n    private _state: OverflowState;\n    private _initializedCount: boolean;\n\n    constructor(@Optional() private _viewIdService: ViewIdService) {\n        this._initializedCount = false;\n        this._overflowMode = this.initializeItem('overflowMode', false) === 'true';\n        this._columnCount = this.checkIsNan(this.initializeItem('columnCount', this.DEFAULT_COLUMN_COUNT), this.DEFAULT_COLUMN_COUNT);\n        this._columnWidth = this.checkIsNan(this.initializeItem('columnWidth', this.DEFAULT_COLUMN_WIDTH), this.DEFAULT_COLUMN_WIDTH);\n    }\n\n    get overflowMode(): boolean {\n        return this._overflowMode;\n    }\n\n    set overflowMode(value: boolean) {\n        this._overflowMode = value;\n    }\n\n    get columnWidth(): number {\n        return this._columnWidth;\n    }\n\n    set columnWidth(value: number) {\n        this._columnWidth = value;\n    }\n\n    get columnCount(): number {\n        return this._columnCount;\n    }\n\n    set columnCount(value: number) {\n        this._columnCount = value;\n    }\n\n    get initializedCount(): boolean {\n        return this._initializedCount;\n    }\n\n    public saveState(): void {\n        this._state = {\n            overflowMode: this._overflowMode,\n            columnWidth: this._columnWidth,\n            columnCount: this._columnCount,\n        };\n    }\n\n    public saveNewState(): void {\n        const viewId = this.getViewId();\n        if (viewId) {\n            localStorage.setItem(viewId + '-overflowMode', this._overflowMode + '');\n            localStorage.setItem(viewId + '-columnCount', this._columnCount + '');\n            localStorage.setItem(viewId + '-columnWidth', this._columnWidth + '');\n        }\n        this._state = undefined;\n    }\n\n    public restoreLastState(): void {\n        this._overflowMode = this._state.overflowMode;\n        this._columnWidth = this._state.columnWidth;\n        this._columnCount = this._state.columnCount;\n        this._state = undefined;\n    }\n\n    protected initializeItem(id: string, defaultValue) {\n        const viewId = this.getViewId();\n        if (!viewId) {\n            return defaultValue;\n        }\n\n        const item = localStorage.getItem(viewId + '-' + id);\n        if (item !== null) {\n            if (id.includes('columnCount')) {\n                this._initializedCount = true;\n            }\n            return item;\n        } else {\n            return defaultValue;\n        }\n    }\n\n    protected checkIsNan(item, defaultValue) {\n        return isNaN(parseInt(item, 10)) ? defaultValue : parseInt(item, 10);\n    }\n\n    /**\n     * @returns the Id of the view, if the ViewIdService was injected. Returns `undefined` if the service was not injected.\n     */\n    protected getViewId(): string | undefined {\n        if (this._viewIdService) {\n            return this._viewIdService.viewId;\n        }\n        return undefined;\n    }\n}\n","import {Component, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {Observable, Subscription} from 'rxjs';\nimport {HeaderColumn, HeaderColumnType} from '../../header/models/header-column';\nimport {FeaturedValue} from './featured-value';\nimport {OverflowService} from '../../header/services/overflow.service';\n\n@Component({\n    selector: 'ncc-abstract-panel-with-header-binding',\n    template: ''\n})\nexport abstract class AbstractPanelWithHeaderBindingComponent implements OnInit, OnDestroy {\n    public selectedHeaders$: Observable<Array<HeaderColumn>>;\n    public firstFeaturedValue: string;\n    public featuredFieldsValues: Array<FeaturedValue> = [];\n    protected _lastSelectedHeaders: Array<HeaderColumn>;\n    protected sub: Subscription;\n\n    protected constructor(@Optional() protected _overflowService: OverflowService) {\n    }\n\n    get overflowMode(): boolean {\n        if(!!this._overflowService){\n            return this._overflowService.overflowMode;\n        } else {\n            return false;\n        }\n    }\n\n    ngOnInit(): void {\n        this.sub = this.selectedHeaders$.subscribe(newSelectedHeaders => {\n            this._lastSelectedHeaders = newSelectedHeaders;\n            this.resolveFeaturedFieldsValues();\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.sub.unsubscribe();\n    }\n\n    /**\n     * If the event was cause by selecting some text, it will not propagate\n     * @param event\n     */\n    public preventSelectionClick(event: MouseEvent): void {\n        if (event.view.getSelection().type === 'Range') {\n            event.stopPropagation();\n        }\n    }\n\n    protected resolveFeaturedFieldsValues(): void {\n        if (!this._lastSelectedHeaders) {\n            return;\n        }\n\n        this.featuredFieldsValues.splice(0, this.featuredFieldsValues.length);\n        this.featuredFieldsValues.push(\n            ...this._lastSelectedHeaders.map<FeaturedValue>(item => this.getFeaturedValue(item))\n        );\n    }\n\n    protected getFeaturedValue(selectedHeader: HeaderColumn): FeaturedValue {\n        if (!selectedHeader) {\n            return {value: '', icon: '', type: ''};\n        }\n        if (selectedHeader.type === HeaderColumnType.META) {\n            return this.getFeaturedMetaValue(selectedHeader);\n        }\n        if (selectedHeader.type === HeaderColumnType.IMMEDIATE) {\n            return this.getFeaturedImmediateValue(selectedHeader);\n        }\n        return {value: '', icon: '', type: ''};\n    }\n\n    protected abstract getFeaturedMetaValue(selectedHeader: HeaderColumn): FeaturedValue;\n\n    protected abstract getFeaturedImmediateValue(selectedHeader: HeaderColumn): FeaturedValue;\n}\n","import {AbstractPanelWithHeaderBindingComponent} from './panel-with-header-binding';\nimport {NaeDate, toMoment} from '../../resources/types/nae-date-type';\nimport {DATE_FORMAT_STRING, DATE_TIME_FORMAT_STRING} from '../../moment/time-formats';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Component, OnDestroy, Optional} from '@angular/core';\nimport {FeaturedValue} from './featured-value';\nimport {CurrencyPipe} from '@angular/common';\nimport {ImmediateData} from '../../resources/interface/immediate-data';\nimport {OverflowService} from '../../header/services/overflow.service';\n\n@Component({\n    selector: 'ncc-abstract-panel-with-immediate',\n    template: ''\n})\nexport abstract class AbstractPanelWithImmediateDataComponent extends AbstractPanelWithHeaderBindingComponent implements OnDestroy {\n    protected constructor(protected _translate: TranslateService,\n                          protected _currencyPipe: CurrencyPipe,\n                          @Optional() protected _overflowService: OverflowService) {\n        super(_overflowService);\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n    }\n\n    protected parseImmediateValue(immediate: ImmediateData): FeaturedValue {\n        if (immediate && immediate.value !== undefined || immediate && immediate.type === 'button') {\n            switch (immediate.type) {\n                case 'date':\n                    return {\n                        value: toMoment(immediate.value as NaeDate).format(DATE_FORMAT_STRING),\n                        icon: 'event',\n                        type: immediate.type\n                    };\n                case 'dateTime':\n                    return {\n                        value: toMoment(immediate.value as NaeDate).format(DATE_TIME_FORMAT_STRING),\n                        icon: 'event', type: immediate.type\n                    };\n                case 'enumeration':\n                    return {value: immediate.value.defaultValue, icon: undefined, type: immediate.type};\n                case 'multichoice':\n                    return {\n                        value: immediate.value.map(it => it.defaultValue).join(', '),\n                        icon: undefined,\n                        type: immediate.type\n                    };\n                case 'enumeration_map':\n                    return {\n                        value: immediate.options[immediate.value].defaultValue,\n                        icon: undefined,\n                        type: immediate.type\n                    };\n                case 'multichoice_map':\n                    return {\n                        value: immediate.value.map(it =>\n                            immediate.options[it].defaultValue).join(', '), icon: undefined, type: immediate.type\n                    };\n                case 'file':\n                    return {value: immediate.value?.name, icon: 'insert_drive_file', type: immediate.type};\n                case 'fileList':\n                    return {\n                        value: immediate.value?.namesPaths.map(obj => obj.name).join(', '),\n                        icon: 'file_copy', type: immediate.type\n                    };\n                case 'userList':\n                    return {value: immediate.value?.userValues.map(obj => obj.fullName).join(', '), icon: 'account_circle', type: immediate.type};\n                case 'user':\n                    return {value: immediate.value.fullName, icon: 'account_circle', type: immediate.type};\n                case 'boolean':\n                    return {\n                        value: this._translate.instant('dataField.values.boolean.' + immediate.value),\n                        icon: undefined, type: immediate.type\n                    };\n                case 'button':\n                    return {\n                        value: (immediate as any).placeholder && (immediate as any).placeholder.defaultValue !== undefined\n                            ? (immediate as any).placeholder.defaultValue : (immediate.name && immediate.name.defaultValue !== undefined\n                                ? immediate.name.defaultValue : this._translate.instant('dialog.submit')),\n                        icon: undefined, type: immediate.type\n                    };\n                case 'filter':\n                    return {\n                        value: undefined, icon: undefined, type: immediate.type,\n                        filterMetadata: {filterMetadata: immediate.filterMetadata, allowedNets: immediate.allowedNets}\n                    };\n                case 'number':\n                    if (immediate.format !== undefined) {\n                        return this.formatCurrencyPipe(immediate.value, immediate.format.code, immediate.format.fractionSize,\n                            immediate.format.locale, immediate.type);\n                    } else if (immediate.component?.name === 'currency') {\n                        return this.formatCurrencyPipe(immediate.value, immediate.component.properties['code'],\n                            immediate.component.properties['fractionSize'], immediate.component.properties['locale'], immediate.type);\n                    }\n                    return {value: immediate.value, icon: undefined, type: immediate.type};\n                default:\n                    return {value: immediate.value, icon: undefined, type: immediate.type};\n            }\n        } else {\n            return {value: '', icon: '', type: ''};\n        }\n    }\n\n    protected formatCurrencyPipe(value: any, code: string, fraction: number, locale: string, type: string) {\n        return {\n            value:\n                this._currencyPipe.transform(\n                    parseFloat(value),\n                    code,\n                    'symbol',\n                    '1.' + fraction + '-' + fraction,\n                    locale),\n            icon: undefined, type\n        };\n    }\n}\n","import {Case} from '../resources/interface/case';\nimport {ImmediateData} from '../resources/interface/immediate-data';\n\n/**\n * @param useCase the {@link Case} object who's immediate data we want to get\n * @param fieldId the identifier of the field we want to get\n * @returns the immediate data field if it exists on the case, `undefined` otherwise\n */\nexport function getImmediateData(useCase: Case, fieldId: string): ImmediateData | undefined {\n    return useCase.immediateData.find(field => field.stringId === fieldId);\n}\n","export interface Permissions {\n    [k: string]: Permission;\n}\n\nexport interface UserPermissions {\n    [k: string]: Permission;\n}\n\nexport interface UserRefs {\n    [k: string]: Permission;\n}\n\nexport interface Permission {\n    create?: boolean;\n    delete?: boolean;\n    view?: boolean;\n    assign?: boolean;\n    assigned?: boolean;\n    cancel?: boolean;\n    finish?: boolean;\n    delegate?: boolean;\n    set?: boolean;\n}\n\nexport enum PermissionType {\n    CREATE = 'create',\n    DELETE = 'delete',\n    VIEW = 'view',\n    ASSIGN = 'assign',\n    CANCEL = 'cancel',\n    FINISH = 'finish',\n    DELEGATE = 'delegate',\n    SET = 'set'\n}\n","import {Filter} from '../../filter/models/filter';\nimport {Pagination} from '../../resources/interface/pagination';\n\n/**\n * Holds the information that accompanies a page load request. These information are held outside of the\n * service that handles the requests, so that state information about multiple requests can be handled independently of each other.\n */\nexport class PageLoadRequestContext {\n    /**\n     * Stores the {@link Filter} object that was used with the request.\n     */\n    filter: Filter;\n    /**\n     * Stores the pagination information that was used with the request.\n     */\n    pagination: Pagination;\n    /**\n     * Whether the existing tasks or cases should be replaced by the result of this request.\n     */\n    clearLoaded: boolean;\n    /**\n     * Whether the tasks on the current page should be reloaded by this request.\n     *\n     * This option does not affect case requests.\n     */\n    reloadCurrentTaskPage: boolean;\n    /**\n     * Used for forcing the request after queued Assign or Cancel.\n     */\n    force: boolean;\n\n    /**\n     * @param requestFilter the {@link Filter} that is used by the request. Context holds the passed reference.\n     * @param requestPagination the {@link Pagination} that is used by the request.\n     * Context creates a local copy of the passed objects content.\n     * @param clearLoaded whether the existing tasks or cases should be cleared and replaced by the result of this request.\n     * @param reloadCurrentTaskPage whether the current page of tasks should be updated with the result of the current request.\n     * Does not affect case requests.\n     */\n    constructor(requestFilter: Filter, requestPagination: Pagination, clearLoaded = false, reloadCurrentTaskPage = false, force = false) {\n        this.filter = requestFilter;\n        this.pagination = Object.assign({}, requestPagination);\n        this.clearLoaded = clearLoaded;\n        this.reloadCurrentTaskPage = reloadCurrentTaskPage;\n        this.force = force;\n    }\n\n    public get pageNumber(): number {\n        return this.pagination && this.pagination.number;\n    }\n}\n","import {BehaviorSubject, from} from 'rxjs';\nimport {Filter} from '../filter/models/filter';\nimport {reduce} from 'rxjs/operators';\n\nexport class LoadingWithFilterEmitter extends BehaviorSubject<boolean> {\n\n    private _loadingStates: Map<Filter, boolean>;\n\n    constructor(initial = false) {\n        super(initial);\n        this._loadingStates = new Map<Filter, boolean>();\n    }\n\n    public get isActive(): boolean {\n        return this.getValue();\n    }\n\n    public isActiveWithFilter(withFilter: Filter): boolean {\n        return !!this._loadingStates.get(withFilter);\n    }\n\n    public on(withFilter: Filter) {\n        this.nextValue(withFilter, true);\n    }\n\n    public off(withFilter: Filter) {\n        this.nextValue(withFilter, false);\n    }\n\n    public toggle(withFilter: Filter) {\n        this.nextValue(withFilter, !this.isActiveWithFilter(withFilter));\n    }\n\n    private nextValue(withFilter: Filter, loading: boolean): void {\n        this._loadingStates.set(withFilter, loading);\n        from(this._loadingStates.values())\n            .pipe(reduce((acc, val) => acc || val, false))\n            .subscribe( result => this.next(result));\n    }\n}\n","import {Observable, timer} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\n\n/**\n * @param observables an array of items\n * @returns an observable that emits each item from the array in order.\n */\nexport function arrayToObservable<T>(observables: Array<T>): Observable<T> {\n    return timer(0, 1).pipe(take(observables.length), map(i => observables[i]));\n}\n","import {InjectionToken} from '@angular/core';\nimport {NewCaseConfiguration} from './new-case-configuration';\n\n/**\n * Can be used to provide case views with configuration of the {@link CaseViewService#createNewCase}[createNewCase()] method without\n * having to extend the service and override the method.\n */\nexport const NAE_NEW_CASE_CONFIGURATION = new InjectionToken<NewCaseConfiguration>('NaeNewCaseConfiguration');\n","export enum HeaderChangeType {\n    /**\n     * Emitted when one of the headers changes the value that is should display\n     */\n    EDIT = 'edit',\n    /**\n     * Emitted when the header mode changes to another one\n     */\n    MODE_CHANGED = 'mode-changed',\n    /**\n     * Emitted when the search input in one of the headers changes\n     */\n    SEARCH = 'search',\n    /**\n     * Emitted when the sort direction in one of the headers changes\n     */\n    SORT = 'sort'\n}\n","import {SortChangeDescription} from '../../header/models/user-changes/sort-change-description';\nimport {HeaderColumnType} from '../../header/models/header-column';\nimport {Observable, Subscription} from 'rxjs';\nimport {HeaderChange} from '../../header/models/user-changes/header-change';\nimport {HttpParams} from '@angular/common/http';\nimport {HeaderChangeType} from '../../header/models/user-changes/header-change-type';\nimport {Component, OnDestroy} from '@angular/core';\nimport {SearchIndexResolverService} from '../../search/search-keyword-resolver-service/search-index-resolver.service';\nimport {SearchIndex} from '../../search/models/search-index';\nimport {PaginationParams} from '../../utility/pagination/pagination-params';\n\n@Component({\n    selector: 'ncc-abstract-sortable-view',\n    template: ''\n})\nexport abstract class AbstractSortableViewComponent implements OnDestroy {\n\n    protected _lastHeaderSearchState: SortChangeDescription;\n    protected _subHeader: Subscription;\n\n    protected constructor(protected _resolver: SearchIndexResolverService) {\n        this._lastHeaderSearchState = {\n            columnType: undefined,\n            fieldIdentifier: '',\n            sortDirection: '',\n            columnIdentifier: -1,\n            fieldType: undefined\n        };\n    }\n\n    ngOnDestroy(): void {\n        if (this._subHeader) {\n            this._subHeader.unsubscribe();\n        }\n    }\n\n    public registerHeaderChange(headerChange$: Observable<HeaderChange>): void {\n        this._subHeader = headerChange$.subscribe((header: HeaderChange) => {\n            if (!header) {\n                return;\n            }\n            if (header.changeType === HeaderChangeType.SORT || header.changeType === HeaderChangeType.SEARCH) {\n                if (header.changeType === HeaderChangeType.SORT) {\n                    this._lastHeaderSearchState = header.description as SortChangeDescription;\n                }\n                // TODO we might not need to search all the time, do some filtering\n                this.reload();\n            }\n        });\n    }\n\n    public abstract reload(): void;\n\n    protected addSortParams(params: HttpParams): HttpParams {\n        if (this._lastHeaderSearchState.sortDirection !== '') {\n            return params.set(PaginationParams.PAGE_SORT, `${this.getSortId()},${this._lastHeaderSearchState.sortDirection}`);\n        } else {\n            return params.set(PaginationParams.PAGE_SORT, this.getDefaultSortParam());\n        }\n    }\n\n    protected getSortId(): string {\n        if (this._lastHeaderSearchState.columnType === HeaderColumnType.META) {\n            return this.getMetaFieldSortId();\n        } else {\n            switch (this._lastHeaderSearchState.fieldType) {\n                case 'number':\n                    return this._resolver.getIndex(this._lastHeaderSearchState.fieldIdentifier, SearchIndex.NUMBER);\n                case 'date':\n                case 'dateTime':\n                    return this._resolver.getIndex(this._lastHeaderSearchState.fieldIdentifier, SearchIndex.TIMESTAMP);\n                case 'user':\n                case 'userList':\n                    return this._resolver.getIndex(this._lastHeaderSearchState.fieldIdentifier, SearchIndex.FULL_NAME, true);\n                default:\n                    return this._resolver.getIndex(this._lastHeaderSearchState.fieldIdentifier, SearchIndex.FULLTEXT, true);\n            }\n        }\n    }\n\n    protected abstract getMetaFieldSortId(): string;\n\n    protected abstract getDefaultSortParam(): string;\n\n}\n","/**\n * Constants for use with the\n */\nexport enum PaginationSort {\n    ASCENDING = 'asc',\n    DESCENDING = 'desc'\n}\n\n/**\n * Creates the configuration string for use with the [PAGE_SORT]{@link PaginationParams#PAGE_SORT} configuration attribute\n * @param attribute the name of the attribute that should be used for sorting the results\n * @param direction the sorting direction\n */\nexport function createSortParam(attribute: string, direction: PaginationSort): string {\n    return `${attribute},${direction}`;\n}\n","import {InjectionToken} from '@angular/core';\nimport {ComponentType} from '@angular/cdk/portal';\n\nexport const NAE_USER_ASSIGN_DIALOG_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeUserAssignDialogComponent');\nexport const NAE_MULTI_USER_ASSIGN_DIALOG_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeMultiUserAssignDialogComponent');\nexport const NAE_IMPORT_NET_DIALOG_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeImportNetDialogComponent');\nexport const NAE_NEW_CASE_DIALOG_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeNewCaseDialogComponent');\nexport const NAE_OPTION_SELECTOR_DIALOG_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeOptionSelectorDialogComponent');\nexport const NAE_SAVE_FILTER_DIALOG_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeSaveFilterDialogComponent');\nexport const NAE_LOAD_FILTER_DIALOG_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeLoadFilterDialogComponent');\nexport const NAE_USER_IMPERSONATE_DIALOG_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeUserImpersonateDialogComponent');\nexport const NAE_ADMIN_IMPERSONATE_DIALOG_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeAdminImpersonateDialogComponent');\n","/**\n * Enum AssignPolicy\n *\n * value: MANUAL | AUTO\n */\nexport enum AssignPolicy {\n    manual = 'MANUAL',\n    auto = 'AUTO'\n}\n/**\n * Enum FinishPolicy\n *\n * value: MANUAL | AUTO_NO_DATA\n */\nexport enum FinishPolicy {\n    manual = 'MANUAL',\n    autoNoData = 'AUTO_NO_DATA'\n}\n/**\n * Enum DataFocusPolicy\n *\n * value: MANUAL | AUTO_EMPTY_REQUIRED\n */\nexport enum DataFocusPolicy {\n    manual = 'MANUAL',\n    autoRequired = 'AUTO_EMPTY_REQUIRED'\n}\n","import {Injectable} from '@angular/core';\nimport {UserComparatorService} from '../../user/services/user-comparator.service';\nimport {AssignPolicy} from '../../task-content/model/policy';\nimport {Task} from '../../resources/interface/task';\nimport {UserService} from '../../user/services/user.service';\nimport {Case} from '../../resources/interface/case';\nimport {PetriNetReferenceWithPermissions} from '../../process/petri-net-reference-with-permissions';\nimport {Permissions, PermissionType, UserPermissions} from '../../process/permissions';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class PermissionService {\n\n    constructor(protected userComparator: UserComparatorService, protected _userService: UserService) {\n    }\n\n    public hasTaskPermission(task: Task | undefined, permission: string): boolean {\n        if (!task) {\n            return false;\n        }\n\n        const rolePermValue = this.checkRolePerms(task.roles, permission);\n        const userPermValue = this.checkUserPerms(task.users, permission);\n        return this.resolvePermissions(rolePermValue, userPermValue);\n    }\n\n    public hasCasePermission(case_: Case | undefined, permission: string): boolean {\n        if (!case_) {\n            return false;\n        }\n\n        const rolePermValue = this.checkRolePerms(case_.permissions, permission);\n        const userPermValue = this.checkUserPerms(case_.users, permission);\n        return this.resolvePermissions(rolePermValue, userPermValue);\n    }\n\n    public resolvePermissions(rolePermValue: boolean | undefined, userPermValue: boolean | undefined): boolean {\n        return userPermValue === undefined ? (!!rolePermValue) : userPermValue;\n    }\n\n    public hasNetPermission(action: string, net: PetriNetReferenceWithPermissions): boolean {\n        if (!net\n            || !net.permissions\n            || !action\n            || !(net.permissions instanceof Object)\n        ) {\n            return false;\n        }\n        if (Object.keys(net.permissions).some(role =>\n            this._userService.hasRoleById(role) ? net.permissions[role][action] === false : false)) {\n            return false;\n        }\n        return Object.keys(net.permissions).some(role =>\n            this._userService.hasRoleById(role) ? !!net.permissions[role][action] : false\n        );\n    }\n\n    public canAssign(task: Task | undefined): boolean {\n        return !!task\n            && (\n                (\n                    task.assignPolicy === AssignPolicy.manual\n                    && !task.user\n                    && this.hasTaskPermission(task, PermissionType.ASSIGN)\n                )\n            );\n    }\n\n    public canCancel(task: Task | undefined): boolean {\n        return !!task && !!task.user\n            && this.hasTaskPermission(task, PermissionType.CANCEL)\n            && ((task.assignedUserPolicy === undefined || task.assignedUserPolicy.cancel === undefined)\n                || task.assignedUserPolicy.cancel);\n    }\n\n    public canReassign(task: Task | undefined): boolean {\n        return !!task && !!task.user && this.userComparator.compareUsers(task.user)\n            && this.hasTaskPermission(task, PermissionType.DELEGATE)\n            && ((task.assignedUserPolicy === undefined || task.assignedUserPolicy.reassign === undefined)\n                || task.assignedUserPolicy.reassign);\n    }\n\n    public canFinish(task: Task | undefined): boolean {\n        return !!task\n            && !!task.user\n            && this.userComparator.compareUsers(task.user)\n            && this.hasTaskPermission(task, PermissionType.FINISH);\n    }\n\n    public canCollapse(task: Task | undefined): boolean {\n        return !!task\n            && task.assignPolicy === AssignPolicy.manual;\n    }\n\n    public checkRolePerms(roles: Permissions, permission: string): boolean | undefined {\n        let rolePermValue: boolean;\n        if (!!roles) {\n            Object.keys(roles).forEach(role => {\n                if (roles[role][permission] !== undefined && this._userService.hasRoleById(role)) {\n                    rolePermValue = rolePermValue === undefined ? roles[role][permission] : rolePermValue && roles[role][permission];\n                }\n            });\n        }\n        return rolePermValue;\n    }\n\n    public checkUserPerms(users: UserPermissions, permission): boolean | undefined {\n        let userPermValue: boolean;\n        if (!!users) {\n            const loggedUserId = this._userService.user.getSelfOrImpersonated().id;\n            Object.keys(users).forEach(user => {\n                if (user === loggedUserId && users[user][permission] !== undefined) {\n                    userPermValue = userPermValue === undefined ?\n                        users[user][permission] : userPermValue && users[user][permission];\n                }\n            });\n        }\n        return userPermValue;\n    }\n}\n","import {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {CaseResourceService} from '../../../resources/engine-endpoint/case-resource.service';\nimport {BehaviorSubject, Observable, of, Subject} from 'rxjs';\nimport {HttpParams} from '@angular/common/http';\nimport {Case} from '../../../resources/interface/case';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {SnackBarService} from '../../../snack-bar/services/snack-bar.service';\nimport {SearchService} from '../../../search/search-service/search.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {catchError, concatMap, filter, map, mergeMap, scan, switchMap, tap} from 'rxjs/operators';\nimport {Pagination} from '../../../resources/interface/pagination';\nimport {CaseMetaField} from '../../../header/case-header/case-menta-enum';\nimport {PageLoadRequestContext} from '../../abstract/page-load-request-context';\nimport {Filter} from '../../../filter/models/filter';\nimport {ListRange} from '@angular/cdk/collections';\nimport {LoadingWithFilterEmitter} from '../../../utility/loading-with-filter-emitter';\nimport {CasePageLoadRequestResult} from '../models/case-page-load-request-result';\nimport {UserService} from '../../../user/services/user.service';\nimport {arrayToObservable} from '../../../utility/array-to-observable';\nimport {PermissionType} from '../../../process/permissions';\nimport {NAE_NEW_CASE_CONFIGURATION} from '../models/new-case-configuration-injection-token';\nimport {NewCaseConfiguration} from '../models/new-case-configuration';\nimport {ProcessService} from '../../../process/process.service';\nimport {PetriNetReferenceWithPermissions} from '../../../process/petri-net-reference-with-permissions';\nimport {\n    SearchIndexResolverService\n} from '../../../search/search-keyword-resolver-service/search-index-resolver.service';\nimport {AllowedNetsService} from '../../../allowed-nets/services/allowed-nets.service';\nimport {AbstractSortableViewComponent} from '../../abstract/sortable-view';\nimport {\n    NewCaseCreationConfigurationData\n} from '../../../side-menu/content-components/new-case/model/new-case-injection-data';\nimport {PermissionService} from '../../../authorization/permission/permission.service';\nimport {EventOutcomeMessageResource} from '../../../resources/interface/message-resource';\nimport {CreateCaseEventOutcome} from '../../../event/model/event-outcomes/case-outcomes/create-case-event-outcome';\nimport {PaginationParams} from '../../../utility/pagination/pagination-params';\nimport {createSortParam, PaginationSort} from '../../../utility/pagination/pagination-sort';\nimport {MatDialog} from '@angular/material/dialog';\nimport {NAE_NEW_CASE_DIALOG_COMPONENT} from '../../../dialog/injection-tokens';\n\n@Injectable()\nexport class CaseViewService extends AbstractSortableViewComponent implements OnDestroy {\n\n    readonly DEFAULT_NEW_CASE_CONFIGURATION: NewCaseConfiguration = {\n        useCachedProcesses: true\n    };\n\n    protected _loading$: LoadingWithFilterEmitter;\n    protected _cases$: Observable<Array<Case>>;\n    protected _cases: Array<Case>;\n    protected _nextPage$: BehaviorSubject<PageLoadRequestContext>;\n    protected _endOfData: boolean;\n    protected _pagination: Pagination;\n    protected _newCaseConfiguration: NewCaseConfiguration;\n    protected _paginationView: boolean = false;\n\n    constructor(protected _allowedNetsService: AllowedNetsService,\n                protected _dialog: MatDialog,\n                protected _caseResourceService: CaseResourceService,\n                protected _log: LoggerService,\n                protected _snackBarService: SnackBarService,\n                protected _searchService: SearchService,\n                protected _translate: TranslateService,\n                protected _user: UserService,\n                protected _processService: ProcessService,\n                resolver: SearchIndexResolverService,\n                @Optional() @Inject(NAE_NEW_CASE_DIALOG_COMPONENT) protected _newCaseComponent: any,\n                @Optional() @Inject(NAE_NEW_CASE_CONFIGURATION) newCaseConfig: NewCaseConfiguration,\n                protected _permissionService: PermissionService) {\n        super(resolver);\n        this._cases = [];\n        this._newCaseConfiguration = {...this.DEFAULT_NEW_CASE_CONFIGURATION};\n        if (newCaseConfig !== null) {\n            Object.assign(this._newCaseConfiguration, newCaseConfig);\n        }\n        this._loading$ = new LoadingWithFilterEmitter();\n        this._searchService.activeFilter$.subscribe(() => {\n            this.reload();\n        });\n        this._endOfData = false;\n        this._pagination = {\n            size: 25,\n            totalElements: undefined,\n            totalPages: undefined,\n            number: -1\n        };\n        this._nextPage$ = new BehaviorSubject<PageLoadRequestContext>(\n            new PageLoadRequestContext(this.activeFilter, Object.assign({}, this._pagination, {number: 0}))\n        );\n\n        const casesMap = this._nextPage$.pipe(\n            mergeMap(p => this.loadPage(p)),\n            map(pageLoadResult => {\n                if (pageLoadResult.requestContext && pageLoadResult.requestContext.clearLoaded) {\n                    // we set an empty value to the virtual scroll and then replace it by the real value forcing it to redraw its content\n                    const results = [{cases: {}, requestContext: null}, pageLoadResult];\n                    return arrayToObservable(results);\n                } else {\n                    return of(pageLoadResult);\n                }\n            }),\n            concatMap(o => o),\n            scan((acc, pageLoadResult) => {\n                if (pageLoadResult.requestContext === null) {\n                    return pageLoadResult.cases;\n                } else {\n                    this._loading$.off(pageLoadResult.requestContext.filter);\n                }\n                Object.assign(this._pagination, pageLoadResult.requestContext.pagination);\n                if (this._paginationView) {\n                    return pageLoadResult.cases;\n                }\n                return {...acc, ...pageLoadResult.cases};\n            }, {})\n        );\n        this._cases$ = casesMap.pipe(\n            map(v => Object.values(v) as Array<Case>),\n            tap(cases => this._cases = cases as Array<Case>),\n        );\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this._loading$.complete();\n        this._nextPage$.complete();\n    }\n\n    public get loading(): boolean {\n        return this._loading$.isActive;\n    }\n\n    public get loading$(): Observable<boolean> {\n        return this._loading$.asObservable();\n    }\n\n    public get cases$(): Observable<Array<Case>> {\n        return this._cases$;\n    }\n\n    public get cases(): Array<Case> {\n        return this._cases;\n    }\n\n    public get pagination(): Pagination {\n        return this._pagination;\n    }\n\n    protected get activeFilter(): Filter {\n        return this._searchService.activeFilter;\n    }\n\n    public set paginationView(value: boolean) {\n        this._paginationView = value;\n    }\n\n    public loadPage(requestContext: PageLoadRequestContext): Observable<CasePageLoadRequestResult> {\n        if (requestContext === null || requestContext.pageNumber < 0) {\n            return of({cases: {}, requestContext});\n        }\n        let params: HttpParams = new HttpParams();\n        params = this.addSortParams(params);\n        params = this.addPageParams(params, requestContext.pagination);\n        this._loading$.on(requestContext.filter);\n\n        return this._caseResourceService.searchCases(requestContext.filter, params).pipe(\n            catchError(err => {\n                this._log.error('Loading cases has failed!', err);\n                this._loading$.off(requestContext.filter);\n                return of({content: [], pagination: {...this._pagination}});\n            }),\n            filter(() => {\n                const r = requestContext.filter === this._searchService.activeFilter;\n                if (!r) {\n                    this._loading$.off(requestContext.filter);\n                    this._log.debug('Received cases page is no longer relevant since the active filter has changed before it could arrive.'\n                        + ' Discarding...');\n                }\n                return r;\n            }),\n            tap(c => {\n                Object.assign(requestContext.pagination, c.pagination);\n            }),\n            tap(c => {\n                this._endOfData = !Array.isArray(c.content)\n                    || c.content.length === 0\n                    || c.pagination.number === c.pagination.totalPages;\n            }),\n            map(cases => Array.isArray(cases.content) ? cases : {...cases, content: []}),\n            map(cases => {\n                return cases.content.reduce((acc, cur) => {\n                    return {...acc, [cur.stringId]: cur};\n                }, {});\n            }),\n            map(cases => ({cases, requestContext}))\n        );\n    }\n\n    public nextPage(renderedRange: ListRange, totalLoaded: number, requestContext?: PageLoadRequestContext) {\n        if (requestContext === undefined) {\n            requestContext = new PageLoadRequestContext(this.activeFilter, this._pagination);\n            requestContext.pagination.number += 1;\n        }\n\n        if (this.isLoadingRelevantFilter(requestContext) || this._endOfData) {\n            return;\n        }\n\n        if (renderedRange.end === totalLoaded) {\n            this._nextPage$.next(requestContext);\n        }\n    }\n\n    public nextPagePagination(length: number, pageIndex: number, requestContext?: PageLoadRequestContext) {\n        if (requestContext === undefined) {\n            requestContext = new PageLoadRequestContext(this.activeFilter, this._pagination);\n            requestContext.pagination.size = length;\n            requestContext.pagination.number = pageIndex;\n        }\n\n        if (this.isLoadingRelevantFilter(requestContext) || this._endOfData) {\n            return;\n        }\n        this._nextPage$.next(requestContext);\n    }\n\n    private isLoadingRelevantFilter(requestContext?: PageLoadRequestContext): boolean {\n        return requestContext === undefined || this._loading$.isActiveWithFilter(requestContext.filter);\n    }\n\n    public createNewCase(newCaseCreationConfiguration: NewCaseCreationConfigurationData = {\n        enableCaseTitle: true,\n        isCaseTitleRequired: true\n    }): Observable<Case> {\n        const myCase = new Subject<Case>();\n        const dialogRef = this._dialog.open(this._newCaseComponent, {\n            width: '40%',\n            minWidth: '300px',\n            panelClass: \"dialog-responsive\",\n            data: {\n                allowedNets$: this.getNewCaseAllowedNets(newCaseCreationConfiguration.blockNets),\n                newCaseCreationConfiguration\n            },\n        });\n        dialogRef.afterClosed().subscribe($event => {\n            if ($event?.data) {\n                this._log.debug($event.message, $event.data);\n                this.reload();\n                myCase.next($event.data);\n            }\n            myCase.complete();\n        });\n        return myCase.asObservable();\n    }\n\n    public createDefaultNewCase(newCaseCreationConfiguration: NewCaseCreationConfigurationData = {\n        enableCaseTitle: true,\n        isCaseTitleRequired: true\n    }): Observable<Case> {\n        const myCase = new Subject<Case>();\n        this.getNewCaseAllowedNets(newCaseCreationConfiguration.blockNets).subscribe((nets: Array<PetriNetReferenceWithPermissions>) => {\n            if (!nets || nets.length === 0) {\n                const errorMessage = this._translate.instant('side-menu.new-case.noNets');\n                this._snackBarService.openErrorSnackBar(errorMessage);\n                this._log.error('No nets available for case creation. Ensure the allowed nets configuration is correct.');\n                return;\n            }\n            this._caseResourceService.createCase({\n                title: null,\n                color: 'panel-primary-icon',\n                netId: nets[0].stringId\n            }).subscribe((response: EventOutcomeMessageResource) => {\n                this._snackBarService.openSuccessSnackBar(this._translate.instant('side-menu.new-case.createCase')\n                    + ' ' + this._translate.instant('side-menu.new-case.defaultCaseName'));\n                this.reload();\n                myCase.next((response.outcome as CreateCaseEventOutcome).aCase);\n                myCase.complete();\n            }, error => {\n                const errorMessage = error.message ? error.message : this._translate.instant('side-menu.new-case.createCaseError');\n                this._snackBarService.openErrorSnackBar(errorMessage);\n                this._log.error('Error occurred during case creation: ' + errorMessage);\n            });\n        }, error => {\n            const errorMessage = error.message || this._translate.instant('side-menu.new-case.errorCreate');\n            this._log.error('Failed to fetch allowed nets. Error: ' + errorMessage);\n            this._snackBarService.openErrorSnackBar(errorMessage);\n        });\n        return myCase;\n    }\n\n    public getNewCaseAllowedNets(blockNets: string[] = []): Observable<Array<PetriNetReferenceWithPermissions>> {\n        if (this._newCaseConfiguration.useCachedProcesses) {\n            return this._allowedNetsService.allowedNets$.pipe(\n                map(net => net.filter(n => blockNets.indexOf(n.identifier) === -1)),\n                map(net => net.filter(n => this._permissionService.hasNetPermission(PermissionType.CREATE, n)))\n            );\n        } else {\n            return this._allowedNetsService.allowedNets$.pipe(\n                switchMap(allowedNets => {\n                    return this._processService.getNetReferences(allowedNets.map(net => net.identifier)).pipe(\n                        map(net => net.filter(n => blockNets.indexOf(n.identifier) === -1)),\n                        map(net => net.filter(n => this._permissionService.hasNetPermission(PermissionType.CREATE, n)))\n                    );\n                })\n            );\n        }\n    }\n\n    /**\n     * Returns number of allowed nets of case view\n     * @returns length of allowedNets array if it is defined, 0 if it is undefined\n     */\n    public getAllowedNetsCount(): number {\n        return this._allowedNetsService.allowedNets === undefined ? 0 : this._allowedNetsService.allowedNets.length;\n    }\n\n    protected addPageParams(params: HttpParams, pagination: Pagination): HttpParams {\n        params = params.set(PaginationParams.PAGE_SIZE, `${pagination.size}`);\n        params = params.set(PaginationParams.PAGE_NUMBER, `${pagination.number}`);\n        return params;\n    }\n\n    protected getDefaultSortParam(): string {\n        return createSortParam('stringId', PaginationSort.DESCENDING);\n    }\n\n    protected getMetaFieldSortId(): string {\n        switch (this._lastHeaderSearchState.fieldIdentifier) {\n            case CaseMetaField.TITLE:\n                return 'title.keyword';\n            case CaseMetaField.VISUAL_ID:\n                return 'visualId.keyword';\n            case CaseMetaField.CREATION_DATE:\n                return 'creationDateSortable';\n            default:\n                return this._lastHeaderSearchState.fieldIdentifier;\n        }\n    }\n\n    public reload(): void {\n        if (!this._cases$ || !this._pagination) {\n            return;\n        }\n\n        this._endOfData = false;\n        const requestContext = new PageLoadRequestContext(this.activeFilter, this._pagination, true);\n        requestContext.pagination.number = 0;\n        const range = {\n            start: -1,\n            end: 0\n        };\n\n        this.nextPage(range, 0, requestContext);\n    }\n\n    public hasAuthority(authority: Array<string> | string): boolean {\n        return this._user.hasAuthority(authority);\n    }\n\n    /**\n     * Determines whether the current user has the [VIEW]{@link PermissionType#VIEW} permission on the current case\n     * @param aCase the tested case\n     * @returns `true` if the current user has the `VIEW` permission on the tested case, `false` otherwise.\n     */\n    public viewEnabled(aCase: Case): boolean {\n        return this._permissionService.hasCasePermission(aCase, PermissionType.VIEW);\n    }\n}\n","import {Component, Input, Optional} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {Case} from '../../resources/interface/case';\nimport {toMoment} from '../../resources/types/nae-date-type';\nimport {HeaderColumn} from '../../header/models/header-column';\nimport {DATE_TIME_FORMAT_STRING} from '../../moment/time-formats';\nimport {CaseMetaField} from '../../header/case-header/case-menta-enum';\nimport {CaseResourceService} from '../../resources/engine-endpoint/case-resource.service';\nimport {CaseViewService} from '../../view/case-view/service/case-view-service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {OverflowService} from '../../header/services/overflow.service';\nimport {AbstractPanelWithImmediateDataComponent} from '../abstract/panel-with-immediate-data';\nimport {UserService} from '../../user/services/user.service';\nimport {take} from 'rxjs/operators';\nimport {getImmediateData} from '../../utility/get-immediate-data';\nimport {FeaturedValue} from '../abstract/featured-value';\nimport {EventOutcomeMessageResource} from '../../resources/interface/message-resource';\nimport {CurrencyPipe} from '@angular/common';\nimport {PermissionService} from '../../authorization/permission/permission.service';\nimport {PermissionType} from '../../process/permissions';\nimport {FormControl} from '@angular/forms';\n\n@Component({\n    selector: 'ncc-abstract-case-panel',\n    template: ''\n})\nexport abstract class AbstractCasePanelComponent extends AbstractPanelWithImmediateDataComponent {\n\n\n    @Input() public case_: Case;\n    @Input() public approval: boolean;\n    @Input() public selectedHeaders$: Observable<Array<HeaderColumn>>;\n    @Input() responsiveBody = true;\n    @Input() first: boolean;\n    @Input() last: boolean;\n    @Input() showCasePanelIcon = true;\n    @Input() showDeleteMenu = false;\n    @Input() textEllipsis = false;\n    protected _approvalFormControl: FormControl;\n\n    protected constructor(protected _caseResourceService: CaseResourceService,\n                          protected _caseViewService: CaseViewService,\n                          protected _snackBarService: SnackBarService,\n                          protected _translateService: TranslateService,\n                          protected _log: LoggerService,\n                          protected _userService: UserService,\n                          protected _currencyPipe: CurrencyPipe,\n                          protected _permissionService: PermissionService,\n                          @Optional() protected _overflowService: OverflowService,) {\n        super(_translateService, _currencyPipe, _overflowService);\n        this._approvalFormControl = new FormControl();\n    }\n\n    get approvalFormControl(): FormControl {\n        return this._approvalFormControl;\n    }\n\n    public show(event: MouseEvent): boolean {\n        event.stopPropagation();\n        return false;\n    }\n\n    protected getFeaturedMetaValue(selectedHeader: HeaderColumn): FeaturedValue {\n        switch (selectedHeader.fieldIdentifier) {\n            case CaseMetaField.MONGO_ID:\n                return {value: this.case_.stringId, icon: undefined, type: 'meta'};\n            case CaseMetaField.VISUAL_ID:\n                return {value: this.case_.visualId, icon: undefined, type: 'meta'};\n            case CaseMetaField.TITLE:\n                return {value: this.case_.title, icon: undefined, type: 'meta'};\n            case CaseMetaField.AUTHOR:\n                return {value: this.case_.author.fullName, icon: 'account_circle', type: 'meta'};\n            case CaseMetaField.CREATION_DATE:\n                return {\n                    value: toMoment(this.case_.creationDate).format(DATE_TIME_FORMAT_STRING),\n                    icon: 'event',\n                    type: 'meta'\n                };\n        }\n    }\n\n    protected getFeaturedImmediateValue(selectedHeader: HeaderColumn): FeaturedValue {\n        const immediate = getImmediateData(this.case_, selectedHeader.fieldIdentifier);\n        return this.parseImmediateValue(immediate);\n    }\n\n    public deleteCase() {\n        this._caseResourceService.deleteCase(this.case_.stringId).pipe(take(1)).subscribe((data: EventOutcomeMessageResource) => {\n            if (data.success) {\n                this._snackBarService.openSuccessSnackBar(data.outcome.message === undefined\n                    ? this._translateService.instant('tasks.snackbar.caseDeleteSuccess')\n                    : data.outcome.message);\n                this._caseViewService.reload();\n            } else if (data.error) {\n                this.throwError(this._translateService.instant('tasks.snackbar.caseDeleteFailed'));\n            }\n        }, error => {\n            this.throwError(this._translateService.instant('tasks.snackbar.caseDeleteFailed'));\n        });\n    }\n\n    public canDelete(): boolean {\n        return this._permissionService.hasCasePermission(this.case_, PermissionType.DELETE);\n    }\n\n    private throwError(message: string) {\n        this._snackBarService.openErrorSnackBar(message);\n        this._log.error(message);\n    }\n\n    public getMinWidth() {\n        return (this._overflowService && this._overflowService.overflowMode) ? `${this._overflowService.columnWidth}px` : '0';\n    }\n}\n","export enum TaskMetaField {\n    CASE = 'caseTitleSortable',\n    CASE_ID = 'caseId',\n    TASK_ID = 'taskId',\n    TITLE = 'title',\n    PRIORITY = 'priority',\n    USER = 'user',\n    ASSIGN_DATE = 'assign-date'\n}\n","import {Task} from '../../../resources/interface/task';\nimport {InjectionToken} from '@angular/core';\n\nexport const NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS = new InjectionToken<DisableButtonFuntions>('NaeTaskPanelDisableFunctions');\n\nexport interface DisableButtonFuntions {\n    finish?: (t: Task) => boolean;\n    assign?: (t: Task) => boolean;\n    delegate?: (t: Task) => boolean;\n    reassign?: (t: Task) => boolean;\n    cancel?: (t: Task) => boolean;\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const NAE_TASK_FORCE_OPEN = new InjectionToken<boolean>('NaeTaskForceOpen');\n","import {InjectionToken} from '@angular/core';\nimport {InjectedTabData} from '../interfaces';\n\n/**\n * Injection token for injection of {@link InjectedTabData} into tabs in {@link TabView}.\n *\n * Also see {@link TabContent} for more information.\n */\nexport const NAE_TAB_DATA = new InjectionToken<InjectedTabData>('NaeTabData');\n","/**\n * Used to determine which backend endpoint should be used to request tasks from\n */\nexport enum TaskEndpoint {\n    MONGO = 1,\n    ELASTIC,\n}\n","import {InjectionToken} from '@angular/core';\nimport {TaskEndpoint} from './task-endpoint';\n\n/**\n * @deprecated in 5.3.0 - Use {@link NAE_TASK_VIEW_CONFIGURATION} instead\n */\nexport const NAE_PREFERRED_TASK_ENDPOINT = new InjectionToken<TaskEndpoint>('NaePreferredTaskEndpoint');\n","import {InjectionToken} from '@angular/core';\nimport {TaskViewConfiguration} from './task-view-configuration';\nimport {InjectedTabbedTaskViewData} from './injected-tabbed-task-view-data';\nimport {of} from 'rxjs';\n\nexport const NAE_TASK_VIEW_CONFIGURATION = new InjectionToken<TaskViewConfiguration>('NaeTaskViewConfiguration');\n\n/**\n * Convenience method that can be used as a task view configuration object factory for tabbed task views.\n *\n * If the injected tab data contain information that is included in the {@link TaskViewConfiguration} interface,\n * this factory will forward this information into the provided object.\n *\n * @param injectedTabData\n */\nexport function tabbedTaskViewConfigurationFactory(injectedTabData: InjectedTabbedTaskViewData): TaskViewConfiguration {\n    if (injectedTabData?.initiallyOpenOneTask !== undefined) {\n        return {initiallyOpenOneTask: of(injectedTabData.initiallyOpenOneTask)};\n    } else {\n        return {};\n    }\n}\n","import {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {BehaviorSubject, Observable, of, ReplaySubject, Subject, Subscription, timer} from 'rxjs';\nimport {TaskPanelData} from '../../../panel/task-panel-list/task-panel-data/task-panel-data';\nimport {TaskResourceService} from '../../../resources/engine-endpoint/task-resource.service';\nimport {UserService} from '../../../user/services/user.service';\nimport {SnackBarService} from '../../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {catchError, concatMap, filter, map, mergeMap, scan, switchMap, take, tap} from 'rxjs/operators';\nimport {HttpParams} from '@angular/common/http';\nimport {Pagination} from '../../../resources/interface/pagination';\nimport {Task} from '../../../resources/interface/task';\nimport {SearchService} from '../../../search/search-service/search.service';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {ListRange} from '@angular/cdk/collections';\nimport {UserComparatorService} from '../../../user/services/user-comparator.service';\nimport {TaskEndpoint} from '../models/task-endpoint';\nimport {Page} from '../../../resources/interface/page';\nimport {NAE_PREFERRED_TASK_ENDPOINT} from '../models/injection-token-task-endpoint';\nimport {PageLoadRequestContext} from '../../abstract/page-load-request-context';\nimport {Filter} from '../../../filter/models/filter';\nimport {TaskPageLoadRequestResult} from '../models/task-page-load-request-result';\nimport {LoadingWithFilterEmitter} from '../../../utility/loading-with-filter-emitter';\nimport {arrayToObservable} from '../../../utility/array-to-observable';\nimport {SearchIndexResolverService} from '../../../search/search-keyword-resolver-service/search-index-resolver.service';\nimport {AbstractSortableViewComponent} from '../../abstract/sortable-view';\nimport {NAE_TASK_VIEW_CONFIGURATION} from '../models/task-view-configuration-injection-token';\nimport {TaskViewConfiguration} from '../models/task-view-configuration';\nimport {ChangedFieldsMap} from '../../../event/services/interfaces/changed-fields-map';\nimport {PaginationParams} from '../../../utility/pagination/pagination-params';\nimport {createSortParam, PaginationSort} from '../../../utility/pagination/pagination-sort';\n\n\n@Injectable()\nexport class TaskViewService extends AbstractSortableViewComponent implements OnDestroy {\n\n    protected _tasks$: Observable<Array<TaskPanelData>>;\n    protected _changedFields$: Subject<ChangedFieldsMap>;\n    protected _requestedPage$: BehaviorSubject<PageLoadRequestContext>;\n    protected _loading$: LoadingWithFilterEmitter;\n    protected _endOfData: boolean;\n    protected _pagination: Pagination;\n    protected _initiallyOpenOneTask: boolean;\n    protected _closeTaskTabOnNoTasks: boolean;\n    protected _panelUpdate$: BehaviorSubject<Array<TaskPanelData>>;\n    protected _closeTab$: ReplaySubject<void>;\n    protected _subInitiallyOpen: Subscription;\n    protected _subCloseTask: Subscription;\n    protected _subSearch: Subscription;\n\n    // Serializing assign after cancel\n    protected _allowMultiOpen: boolean;\n\n    private readonly _initializing: boolean = true;\n\n    constructor(protected _taskService: TaskResourceService,\n                private _userService: UserService,\n                private _snackBarService: SnackBarService,\n                private _translate: TranslateService,\n                protected _searchService: SearchService,\n                private _log: LoggerService,\n                private _userComparator: UserComparatorService,\n                resolver: SearchIndexResolverService,\n                @Optional() @Inject(NAE_PREFERRED_TASK_ENDPOINT) protected readonly _preferredEndpoint: TaskEndpoint = null,\n                @Optional() @Inject(NAE_TASK_VIEW_CONFIGURATION) taskViewConfig: TaskViewConfiguration = null) {\n        super(resolver);\n        this._tasks$ = new Subject<Array<TaskPanelData>>();\n        this._loading$ = new LoadingWithFilterEmitter();\n        this._changedFields$ = new Subject<ChangedFieldsMap>();\n        this._allowMultiOpen = true;\n        this._endOfData = false;\n        this._pagination = {\n            size: 50,\n            totalElements: undefined,\n            totalPages: undefined,\n            number: -1\n        };\n        this._requestedPage$ = new BehaviorSubject<PageLoadRequestContext>(\n            new PageLoadRequestContext(this.activeFilter, Object.assign({}, this._pagination, {number: 0}))\n        );\n        this._panelUpdate$ = new BehaviorSubject<Array<TaskPanelData>>([]);\n        this._closeTab$ = new ReplaySubject<void>(1);\n        this._preferredEndpoint = taskViewConfig?.preferredEndpoint ?? (this._preferredEndpoint ?? TaskEndpoint.MONGO);\n\n        this._initializing = false;\n\n        this._subSearch = this._searchService.activeFilter$.subscribe(() => {\n            this.reload();\n        });\n\n        const tasksMap$ = this._requestedPage$.pipe(\n            mergeMap(p => this.loadPage(p)),\n            map(pageLoadResult => {\n                if (pageLoadResult.requestContext && pageLoadResult.requestContext.clearLoaded) {\n                    // we set an empty value to the virtual scroll and then replace it by the real value forcing it to redraw its content\n                    const results = [{tasks: {}, requestContext: null}, pageLoadResult];\n                    return arrayToObservable(results);\n                } else {\n                    return of(pageLoadResult);\n                }\n            }),\n            concatMap(o => o),\n            scan((acc, pageLoadResult) => {\n                let result: { [k: string]: TaskPanelData };\n                if (pageLoadResult.requestContext === null) {\n                    return pageLoadResult.tasks;\n                }\n\n                if (pageLoadResult.requestContext.reloadCurrentTaskPage) {\n                    Object.keys(acc).forEach(taskId => {\n                        if (!pageLoadResult.tasks[taskId]) {\n                            delete acc[taskId];\n                        } else {\n                            pageLoadResult.tasks[taskId].task.dataGroups = acc[taskId].task.dataGroups;\n                            pageLoadResult.tasks[taskId].initiallyExpanded = acc[taskId].initiallyExpanded;\n                            this.updateTask(acc[taskId].task, pageLoadResult.tasks[taskId].task);\n                            this.blockTaskFields(acc[taskId].task, !(acc[taskId].task.user\n                                && this._userComparator.compareUsers(acc[taskId].task.user)));\n                            delete pageLoadResult.tasks[taskId];\n                        }\n                    });\n                    result = Object.assign(acc, pageLoadResult.tasks);\n                } else {\n                    result = {...acc, ...pageLoadResult.tasks};\n                }\n\n                Object.assign(this._pagination, pageLoadResult.requestContext.pagination);\n                if (pageLoadResult.requestContext !== null) {\n                    this._loading$.off(pageLoadResult.requestContext.filter);\n                }\n                return result;\n            }, {})\n        );\n        this._tasks$ = tasksMap$.pipe(\n            map(v => Object.values(v) as Array<TaskPanelData>),\n            map(taskArray => {\n                if (taskArray.length === 1 && this._initiallyOpenOneTask) {\n                    taskArray[0].task.finishDate === undefined ?\n                        taskArray[0].initiallyExpanded = true :\n                        taskArray[0].initiallyExpanded = false;\n                }\n                return taskArray;\n            }),\n            tap(v => this._panelUpdate$.next(v)));\n\n        this._subInitiallyOpen = (taskViewConfig?.initiallyOpenOneTask ?? of(true)).subscribe(bool => {\n            this._initiallyOpenOneTask = bool;\n        });\n\n        this._subCloseTask = (taskViewConfig?.closeTaskTabOnNoTasks ?? of(true)).subscribe(bool => {\n            this._closeTaskTabOnNoTasks = bool;\n        });\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this._changedFields$.complete();\n        this._requestedPage$.complete();\n        this._panelUpdate$.complete();\n        this._closeTab$.complete();\n        this._subInitiallyOpen.unsubscribe();\n        this._subCloseTask.unsubscribe();\n        this._subSearch.unsubscribe();\n    }\n\n    public get tasks$(): Observable<Array<TaskPanelData>> {\n        return this._tasks$;\n    }\n\n    public get changedFields$(): Subject<ChangedFieldsMap> {\n        return this._changedFields$;\n    }\n\n    public get loading$(): Observable<boolean> {\n        return this._loading$.asObservable();\n    }\n\n    public get loading(): boolean {\n        return this._loading$.isActive;\n    }\n\n    public get panelUpdate(): Observable<Array<TaskPanelData>> {\n        return this._panelUpdate$.asObservable();\n    }\n\n    public get closeTab(): Observable<void> {\n        return this._closeTab$.asObservable();\n    }\n\n    public get pagination(): Pagination {\n        return this._pagination;\n    }\n\n    protected get activeFilter(): Filter {\n        return this._searchService.activeFilter;\n    }\n\n    public set allowMultiOpen(bool: boolean) {\n        this._allowMultiOpen = bool;\n    }\n\n    public get allowMultiOpen(): boolean {\n        return this._allowMultiOpen;\n    }\n\n    public loadPage(requestContext: PageLoadRequestContext): Observable<TaskPageLoadRequestResult> {\n        if (requestContext === null || requestContext.pageNumber < 0) {\n            return of({tasks: {}, requestContext});\n        }\n        let params: HttpParams = new HttpParams();\n        params = this.addSortParams(params);\n        params = this.addPageParams(params, requestContext.pagination);\n        this._loading$.on(requestContext.filter);\n\n        let request: Observable<Page<Task>>;\n        if (requestContext.filter.bodyContainsQuery() || this._preferredEndpoint === TaskEndpoint.ELASTIC) {\n            request = timer(200).pipe(\n                switchMap(() => this._taskService.searchTask(requestContext.filter, params).pipe(take(1)))\n            );\n        } else {\n            request = this._taskService.getTasks(requestContext.filter, params).pipe(take(1));\n        }\n        return request.pipe(\n            catchError(err => {\n                this._log.error('Loading tasks has failed!', err);\n                this._loading$.off(requestContext.filter);\n                return of({content: [], pagination: {...this._pagination}});\n            }),\n            filter(() => {\n                const r = requestContext.filter === this._searchService.activeFilter;\n                if (!r) {\n                    this._loading$.off(requestContext.filter);\n                    this._log.debug('Received tasks page is no longer relevant since the active filter has changed before it could arrive.'\n                        + ' Discarding...');\n                }\n                return r;\n            }),\n            tap(t => {\n                Object.assign(requestContext.pagination, t.pagination);\n            }),\n            tap(t => {\n                if (this._pagination.totalElements && this._pagination.totalElements > 0\n                    && t.pagination.totalElements === 0 && !Array.isArray(t.content) && this._closeTaskTabOnNoTasks) {\n                    this._closeTab$.next();\n                }\n            }),\n            tap(t => {\n                this._endOfData = !Array.isArray(t.content)\n                    || t.content.length === 0\n                    || t.pagination.number === t.pagination.totalPages;\n            }),\n            map(tasks => Array.isArray(tasks.content) ? tasks : {...tasks, content: []}),\n            map(tasks => {\n                return tasks.content.reduce((acc, curr) => {\n                    this.blockTaskFields(curr, !(curr.user && this._userComparator.compareUsers(curr.user)));\n                    return {\n                        ...acc, [curr.stringId]: {\n                            task: curr,\n                            changedFields: this._changedFields$,\n                            initiallyExpanded: false\n                        }\n                    };\n                }, {});\n            }),\n            map(tasks => ({tasks, requestContext}))\n        );\n    }\n\n    private updateTask(old: Task, neww: Task) {\n        Object.keys(old).forEach(key => {\n            if (!neww.hasOwnProperty(key)) {\n                delete old[key];\n            }\n        });\n        Object.keys(neww).forEach(key => {\n            if (neww[key] !== undefined && neww[key] !== null) {\n                old[key] = neww[key];\n            }\n        });\n        this.blockTaskFields(old, !(old.user && this._userComparator.compareUsers(old.user)));\n    }\n\n    private blockTaskFields(task: Task, block: boolean): void {\n        if (!task.dataGroups) {\n            return;\n        }\n        task.dataGroups.forEach(g => g.fields.forEach(f => f.block = block));\n    }\n\n    public nextPage(renderedRange: ListRange, totalLoaded: number, requestContext?: PageLoadRequestContext): void {\n        if (requestContext === undefined) {\n            requestContext = new PageLoadRequestContext(this.activeFilter, this._pagination);\n            requestContext.pagination.number += 1;\n        }\n\n        if (this.isLoadingRelevantFilter(requestContext) || this._endOfData) {\n            return;\n        }\n\n        if (renderedRange.end === totalLoaded) {\n            this._requestedPage$.next(requestContext);\n        }\n    }\n\n    public nextPagePagination(length: number, pageIndex: number, requestContext?: PageLoadRequestContext): void {\n        if (requestContext === undefined) {\n            requestContext = new PageLoadRequestContext(this.activeFilter, this._pagination);\n            requestContext.pagination.size = length;\n            requestContext.pagination.number = pageIndex;\n        }\n\n        if (this.isLoadingRelevantFilter(requestContext) || this._endOfData) {\n            return;\n        }\n        this._requestedPage$.next(requestContext);\n    }\n\n    private isLoadingRelevantFilter(requestContext?: PageLoadRequestContext): boolean {\n        return requestContext === undefined || (this._loading$.isActiveWithFilter(requestContext.filter) && !requestContext.force);\n    }\n\n    public reload(): void {\n        if (!this._tasks$ || !this._pagination) {\n            return;\n        }\n\n        this._endOfData = false;\n        const requestContext = new PageLoadRequestContext(this.activeFilter, this._pagination, true);\n        requestContext.pagination.number = 0;\n        const range = {\n            start: -1,\n            end: 0\n        };\n\n        this.nextPage(range, 0, requestContext);\n    }\n\n    public reloadCurrentPage(force?: boolean): void {\n        if (!this._tasks$ || !this._pagination) {\n            return;\n        }\n\n        this._endOfData = false;\n        const requestContext = new PageLoadRequestContext(this.activeFilter, this._pagination, false, true, force);\n        requestContext.pagination.number = 0; // TODO [BUG] - Reloading only first page\n        const range = {\n            start: -1,\n            end: 0\n        };\n        this.nextPage(range, 0, requestContext);\n    }\n\n    protected getMetaFieldSortId(): string {\n        // TODO Tasks were not sortable on old frontend sorting might require elastic mapping changes on backend\n        return this._lastHeaderSearchState.fieldIdentifier;\n    }\n\n    protected getDefaultSortParam(): string {\n        return createSortParam('priority', PaginationSort.DESCENDING);\n    }\n\n    protected addPageParams(params: HttpParams, pagination: Pagination): HttpParams {\n        params = params.set(PaginationParams.PAGE_SIZE, `${pagination.size}`);\n        params = params.set(PaginationParams.PAGE_NUMBER, `${pagination.number}`);\n        return params;\n    }\n}\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {TaskContentService} from '../../task-content/services/task-content.service';\nimport {TaskResourceService} from '../../resources/engine-endpoint/task-resource.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {TaskRequestStateService} from './task-request-state.service';\nimport {TaskHandlingService} from './task-handling-service';\nimport {NAE_TASK_OPERATIONS} from '../models/task-operations-injection-token';\nimport {TaskOperations} from '../interfaces/task-operations';\nimport {SelectedCaseService} from './selected-case.service';\nimport {TaskEventService} from '../../task-content/services/task-event.service';\nimport {createTaskEventNotification} from '../../task-content/model/task-event-notification';\nimport {TaskEvent} from '../../task-content/model/task-event';\nimport {TaskDataService} from './task-data.service';\nimport {take} from 'rxjs/operators';\nimport {TaskViewService} from '../../view/task-view/service/task-view.service';\nimport {EventQueueService} from '../../event-queue/services/event-queue.service';\nimport {QueuedEvent} from '../../event-queue/model/queued-event';\nimport {AfterAction} from '../../utility/call-chain/after-action';\nimport {AssignTaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/assign-task-event-outcome';\nimport {EventOutcomeMessageResource} from '../../resources/interface/message-resource';\nimport {ChangedFieldsService} from '../../changed-fields/services/changed-fields.service';\nimport {EventService} from '../../event/services/event.service';\nimport {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map';\nimport {TaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/task-event-outcome';\n\n\n/**\n * Service that handles the logic of assigning a task.\n */\n@Injectable()\nexport class AssignTaskService extends TaskHandlingService {\n\n    constructor(protected _log: LoggerService,\n                protected _taskResourceService: TaskResourceService,\n                protected _snackBar: SnackBarService,\n                protected _translate: TranslateService,\n                protected _taskState: TaskRequestStateService,\n                protected _taskEvent: TaskEventService,\n                protected _taskDataService: TaskDataService,\n                protected _eventQueue: EventQueueService,\n                protected _eventService: EventService,\n                protected _changedFieldsService: ChangedFieldsService,\n                @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations,\n                @Optional() _selectedCaseService: SelectedCaseService,\n                @Optional() protected _taskViewService: TaskViewService,\n                _taskContentService: TaskContentService) {\n        super(_taskContentService, _selectedCaseService);\n    }\n\n    /**\n     * Performs the 'assign' operation on the task held by {@link TaskContentService}.\n     *\n     * Doesn't send any requests if the loading indicator is in it's active state.\n     * Otherwise sets the indicator to the active state and disables it once the request response is received.\n     *\n     * The argument can be used to chain operations together,\n     * or to execute code conditionally based on the success state of the assign operation.\n     *\n     * If the task held within the {@link TaskContentService} changes before a response is received, the response will be ignored\n     * and the `afterAction` will not be executed.\n     * @param afterAction if assign completes successfully `true` will be emitted into this Subject, otherwise `false` will be emitted\n     */\n    public assign(afterAction: AfterAction = new AfterAction()): void {\n        this._eventQueue.scheduleEvent(new QueuedEvent(\n            () => {\n                return !this._safeTask.user;\n            },\n            nextEvent => {\n                this.performAssignRequest(afterAction, nextEvent, this._taskViewService !== null && !this._taskViewService.allowMultiOpen);\n            },\n            nextEvent => {\n                this.completeSuccess(afterAction, nextEvent);\n            }\n        ));\n    }\n\n    /**\n     * Performs an `assign` request on the task currently stored in the `taskContent` service\n     * @param afterAction the action that should be performed after the request is processed\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     * @param forceReload whether a force reload of the task data should be performed after assign.\n     * If set to `false` a regular reload is performed instead.\n     */\n    protected performAssignRequest(afterAction: AfterAction, nextEvent: AfterAction, forceReload: boolean) {\n        const assignedTaskId = this._safeTask.stringId;\n\n        // this is probably no longer necessary because of the event queue\n        if (this._taskState.isLoading(assignedTaskId)) {\n            nextEvent.resolve(true);\n            return;\n        }\n\n        this._taskState.startLoading(assignedTaskId);\n        this.assignRequest(afterAction, assignedTaskId, nextEvent, forceReload);\n    }\n\n    /**\n     * Calls the endpoint and processes the possible responses.\n     * @param afterAction the action that should be performed after the request is processed\n     * @param assignedTaskId the id of the task that is being assigned\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     * @param forceReload whether a force reload of the task data should be performed after assign.\n     * If set to `false` a regular reload is performed instead.\n     */\n    protected assignRequest(afterAction: AfterAction = new AfterAction(),\n                            assignedTaskId: string,\n                            nextEvent: AfterAction = new AfterAction(),\n                            forceReload: boolean) {\n        this._taskResourceService.assignTask(this._safeTask.stringId).pipe(take(1))\n            .subscribe((outcomeResource: EventOutcomeMessageResource) => {\n                this._taskState.stopLoading(assignedTaskId);\n                if (!this.isTaskRelevant(assignedTaskId)) {\n                    this._log.debug('current task changed before the assign response could be received, discarding...');\n                    nextEvent.resolve(false);\n                    return;\n                }\n\n                if (outcomeResource.success) {\n                    this._taskContentService.updateStateData(outcomeResource.outcome as AssignTaskEventOutcome);\n                    const changedFieldsMap: ChangedFieldsMap = this._eventService\n                        .parseChangedFieldsFromOutcomeTree(outcomeResource.outcome);\n                    if (!!changedFieldsMap) {\n                        this._changedFieldsService.emitChangedFields(changedFieldsMap);\n                    }\n                    forceReload ? this._taskOperations.forceReload() : this._taskOperations.reload();\n                    this.completeActions(afterAction, nextEvent, true, outcomeResource.outcome as AssignTaskEventOutcome);\n                    this._snackBar.openSuccessSnackBar(!!outcomeResource.outcome.message\n                        ? outcomeResource.outcome.message\n                        : this._translate.instant('tasks.snackbar.assignTaskSuccess'));\n                } else if (outcomeResource.error) {\n                    if (outcomeResource.error !== '') {\n                        this._snackBar.openErrorSnackBar(outcomeResource.error);\n                    }\n                    if (outcomeResource.outcome !== undefined) {\n                        const changedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(outcomeResource.outcome);\n                        this._changedFieldsService.emitChangedFields(changedFieldsMap);\n                    }\n                    this.completeActions(afterAction, nextEvent, false);\n                }\n            }, error => {\n                this._taskState.stopLoading(assignedTaskId);\n                this._log.debug('assigning task failed', error);\n\n                if (!this.isTaskRelevant(assignedTaskId)) {\n                    this._log.debug('current task changed before the assign error could be received');\n                    nextEvent.resolve(false);\n                    return;\n                }\n\n                this._snackBar.openErrorSnackBar(`${this._translate.instant('tasks.snackbar.assignTask')}\n             ${this._taskContentService.task} ${this._translate.instant('tasks.snackbar.failed')}`);\n                this.completeActions(afterAction, nextEvent, false);\n            });\n    }\n\n    /**\n     * Reloads the task and emits `true` to the `afterAction` stream\n     */\n    protected completeSuccess(afterAction: AfterAction, nextEvent: AfterAction): void {\n        this._taskOperations.reload();\n        this.completeActions(afterAction, nextEvent, true);\n    }\n\n    /**\n     * complete all action streams and send notification with selected boolean\n     */\n    protected completeActions(afterAction: AfterAction, nextEvent: AfterAction, bool: boolean, outcome?: TaskEventOutcome): void {\n        this.sendNotification(bool, outcome);\n        afterAction.resolve(bool);\n        nextEvent.resolve(bool);\n    }\n\n    /**\n     * Publishes an assign notification to the {@link TaskEventService}\n     * @param success whether the assign operation was successful or not\n     * @param outcome\n     */\n    protected sendNotification(success: boolean, outcome?: TaskEventOutcome): void {\n        this._taskEvent.publishTaskEvent(createTaskEventNotification(this._safeTask, TaskEvent.ASSIGN, success, outcome));\n    }\n}\n","export enum SideMenuSize {\n    SMALL = 'side-menu-width-small',\n    MEDIUM = 'side-menu-width-medium',\n    LARGE = 'side-menu-width-large',\n    XL = 'side-menu-width-xl',\n}\n","import {InjectionToken} from '@angular/core';\nimport {ComponentType} from '@angular/cdk/portal';\n\nexport const NAE_USER_ASSIGN_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeUserAssignComponent');\nexport const NAE_MULTI_USER_ASSIGN_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeMultiUserAssignComponent');\nexport const NAE_IMPORT_NET_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeImportNetComponent');\nexport const NAE_NEW_CASE_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeNewCaseComponent');\nexport const NAE_OPTION_SELECTOR_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeOptionSelectorComponent');\nexport const NAE_SAVE_FILTER_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeSaveFilterComponent');\nexport const NAE_LOAD_FILTER_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeLoadFilterComponent');\nexport const NAE_USER_IMPERSONATE_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeUserImpersonateComponent');\nexport const NAE_ADMIN_IMPERSONATE_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeAdminImpersonateComponent');\nexport const NAE_TASK_VIEW_COMPONENT = new InjectionToken<ComponentType<unknown>>('NaeTaskViewComponent');\n","import {InjectionToken} from '@angular/core';\nimport {SideMenuControl} from './models/side-menu-control';\n\nexport const NAE_SIDE_MENU_CONTROL = new InjectionToken<SideMenuControl>('NaeSideMenuControl');\n","import {Portal} from '@angular/cdk/portal';\nimport {SideMenuSize} from './side-menu-size';\n\nexport class PortalWrapper<T = any> {\n    constructor(private _portal: Portal<T>, private _width?: SideMenuSize) {}\n\n    get portal(): Portal<T> {\n        return this._portal;\n    }\n\n    get size(): SideMenuSize {\n        return this._width;\n    }\n}\n","import {Observable, Subject, throwError} from 'rxjs';\nimport {SideMenuEvent} from './side-menu-event';\nimport {filter} from 'rxjs/operators';\n\nexport class SideMenuRef {\n\n    constructor(private _event$: Subject<SideMenuEvent>) {\n    }\n\n    get onEvent(): Observable<SideMenuEvent> {\n        return !!this._event$ ? this._event$.asObservable() :\n            throwError(new Error('Side menu event stream was not correctly bound to side menu component!'));\n    }\n\n    get onClose(): Observable<SideMenuEvent> {\n        return !!this._event$ ? this._event$.pipe(filter((event) => !event.opened)) :\n            throwError(new Error('Side menu close event stream was not correctly bound to side menu component!'));\n    }\n\n}\n","import {BehaviorSubject, Observable, of, Subject} from 'rxjs';\nimport {SideMenuEvent} from './side-menu-event';\nimport {SideMenuInjectionData} from './side-menu-injection-data';\nimport {tap} from 'rxjs/operators';\nimport {MatDrawerToggleResult} from '@angular/material/sidenav';\n\nexport class SideMenuControl {\n\n    private _event$: Subject<SideMenuEvent>;\n    private _isOpened: BehaviorSubject<boolean>;\n\n    constructor(bindingsFunction: (event$: Subject<SideMenuEvent>) => void = () => {},\n                sideMenuOpenedStateChange: Observable<boolean> = of(true),\n                private sideMenuCloseFunction: () => Observable<MatDrawerToggleResult>,\n                private readonly _injectionData?: SideMenuInjectionData,\n                public isVersionVisible?: boolean,\n                public allVersionEnabled?: boolean) {\n        this._event$ = new Subject<SideMenuEvent>();\n        this._isOpened = new BehaviorSubject<boolean>(false);\n        bindingsFunction(this._event$);\n        sideMenuOpenedStateChange.subscribe((opened) => {\n            this._isOpened.next(opened);\n            if (!opened) {\n                this._event$.next({opened, message: 'Side menu closed unexpectedly'});\n                this._event$.complete();\n                this._isOpened.complete();\n            }\n        });\n    }\n\n    get data(): SideMenuInjectionData {\n        return this._injectionData;\n    }\n\n    public isOpened(): boolean {\n        return this._isOpened.getValue();\n    }\n\n    public publish(event: SideMenuEvent): void {\n        this._isOpened.next(event.opened);\n        this._event$.next(event);\n    }\n\n    public close(event: SideMenuEvent): Observable<MatDrawerToggleResult> {\n        if (!event.message) {\n            event.message = 'Side menu is closing';\n        }\n        this._event$.next({...event, opened: false});\n        this._isOpened.next(event.opened);\n        return this.sideMenuCloseFunction().pipe(\n            tap((closed) => {\n                if (closed === 'close') {\n                    this._event$.complete();\n                }\n            })\n        );\n    }\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const NAE_NET_VERSION_VISIBLE = new InjectionToken<boolean>('NaeNetVersionVisible');\nexport const NAE_NET_ALL_VERSIONS = new InjectionToken<boolean>('NaeNetAllVersion');\n\n","import {Inject, Injectable, Injector, Optional, TemplateRef, Type} from '@angular/core';\nimport {ComponentPortal, ComponentType, TemplatePortal} from '@angular/cdk/portal';\nimport {Observable} from 'rxjs';\nimport {NAE_SIDE_MENU_CONTROL} from '../side-menu-injection-token';\nimport {SideMenuSize} from '../models/side-menu-size';\nimport {PortalWrapper} from '../models/portal-wrapper';\nimport {SideMenuRef} from '../models/side-menu-ref';\nimport {SideMenuInjectionData} from '../models/side-menu-injection-data';\nimport {SideMenuControl} from '../models/side-menu-control';\nimport {SideMenuEvent} from '../models/side-menu-event';\nimport {MatDrawerToggleResult} from '@angular/material/sidenav';\nimport {NAE_NET_ALL_VERSIONS, NAE_NET_VERSION_VISIBLE} from '../net-version-visible-injection-token';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SideMenuService {\n\n    private _sideMenuComponent: any; // SideMenuContainerComponent\n    private _controlObject: SideMenuControl;\n\n    private readonly isVersionVisible: boolean;\n    private readonly allVersionEnabled: boolean;\n\n    constructor(@Optional() @Inject(NAE_NET_VERSION_VISIBLE) isVersionVisible: boolean,\n                @Optional() @Inject(NAE_NET_ALL_VERSIONS) allVersionEnabled: boolean) {\n        this.isVersionVisible = isVersionVisible !== null ? isVersionVisible : true;\n        this.allVersionEnabled = allVersionEnabled !== null ? allVersionEnabled : false;\n    }\n\n    /**\n     * register SideMenuContainerComponent\n     *\n     * params menu is SideMenuContainerComponent\n     */\n    public registerSideMenu(menu: any): void {\n        if (this._sideMenuComponent) {\n            throw new Error('SideMenuContainerComponent has been already registered!');\n        }\n        this._sideMenuComponent = menu;\n    }\n\n    public isOpened(): boolean {\n        return this._sideMenuComponent.isOpened();\n    }\n\n    /**\n     * Open this _sideMenu, and return a Observable that will resolve when it's fully opened (or get rejected if it didn't).\n     *\n     * @returns Observable<MatDrawerToggleResult>\n     */\n    public open<T>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n                   width: SideMenuSize = SideMenuSize.MEDIUM,\n                   injectionData?: SideMenuInjectionData): SideMenuRef {\n        if (!this.componentIsPresent()) {\n            throw new Error('Side menu is not initialized');\n        }\n        if (this._sideMenuComponent.isOpened()) {\n            throw new Error('Side menu has been already opened with another content');\n        }\n\n        let ref: SideMenuRef = new SideMenuRef(null);\n        this._controlObject = new SideMenuControl(((event) => {\n            ref = new SideMenuRef(event);\n        }), this._sideMenuComponent.openedChange(), () => this._sideMenuComponent.close(this._sideMenuComponent),\n            injectionData, this.isVersionVisible, this.allVersionEnabled);\n\n        const wrapper = this._createPortal(componentOrTemplateRef, width, this._controlObject);\n        this._sideMenuComponent.open(wrapper).subscribe((opened) => {\n            if (opened === 'open') {\n                this._controlObject.publish({opened: true});\n            }\n        });\n        return ref;\n    }\n\n    private _createPortal<T>(template: ComponentType<T> | TemplateRef<T>,\n                             size: SideMenuSize,\n                             controlObject: SideMenuControl): PortalWrapper {\n        if (template === undefined || template === null) {\n            throw new Error('A component template must be provided to open a side menu!');\n        }\n        if (template instanceof TemplateRef) {\n            return new PortalWrapper(new TemplatePortal(template, null), size);\n        }\n        if (template instanceof Type) {\n            const injector = Injector.create({providers: [{provide: NAE_SIDE_MENU_CONTROL, useValue: controlObject}]});\n            return new PortalWrapper(new ComponentPortal(template, null, injector), size);\n        }\n    }\n\n    /**\n     * Close this _sideMenu, and return a Observable that will resolve when it's fully closed (or get rejected if it didn't).\n     *\n     * @returns Observable<MatDrawerToggleResult>\n     */\n    public close(closeEvent?: SideMenuEvent): Observable<MatDrawerToggleResult> {\n        return this._controlObject.close(closeEvent);\n    }\n\n    /**\n     * Toggle this _sideMenu. This is equivalent to calling close() when it's already opened, or open() when it's closed.\n     *\n     * @param  isOpen  Whether the _sideMenu should be open.\n     *\n     * @returns open or close side menu\n     */\n    // public toggle(isOpen?: boolean): Observable<MatDrawerToggleResult> {\n    //     return from(this._sideMenu.toggle(isOpen));\n    // }\n\n    private componentIsPresent(): boolean {\n        return !!this._sideMenuComponent;\n    }\n}\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {SideMenuSize} from '../../side-menu/models/side-menu-size';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {SideMenuService} from '../../side-menu/services/side-menu.service';\nimport {TaskResourceService} from '../../resources/engine-endpoint/task-resource.service';\nimport {TaskContentService} from '../../task-content/services/task-content.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {TaskRequestStateService} from './task-request-state.service';\nimport {TaskHandlingService} from './task-handling-service';\nimport {NAE_TASK_OPERATIONS} from '../models/task-operations-injection-token';\nimport {TaskOperations} from '../interfaces/task-operations';\nimport {UserListInjectedData} from '../../side-menu/content-components/user-assign/model/user-list-injected-data';\nimport {UserValue} from '../../data-fields/user-field/models/user-value';\nimport {SelectedCaseService} from './selected-case.service';\nimport {NAE_USER_ASSIGN_COMPONENT} from '../../side-menu/content-components/injection-tokens';\nimport {createTaskEventNotification} from '../../task-content/model/task-event-notification';\nimport {TaskEvent} from '../../task-content/model/task-event';\nimport {TaskEventService} from '../../task-content/services/task-event.service';\nimport {TaskDataService} from './task-data.service';\nimport {take} from 'rxjs/operators';\nimport {DelegateTaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/delegate-task-event-outcome';\nimport {EventOutcomeMessageResource} from '../../resources/interface/message-resource';\nimport {EventQueueService} from '../../event-queue/services/event-queue.service';\nimport {QueuedEvent} from '../../event-queue/model/queued-event';\nimport {AfterAction} from '../../utility/call-chain/after-action';\nimport {ChangedFieldsService} from '../../changed-fields/services/changed-fields.service';\nimport {EventService} from '../../event/services/event.service';\nimport {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map';\nimport {TaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/task-event-outcome';\n\n\n/**\n * Service that handles the logic of delegating a task.\n */\n@Injectable()\nexport class DelegateTaskService extends TaskHandlingService {\n\n    constructor(protected _log: LoggerService,\n                protected _sideMenuService: SideMenuService,\n                protected _taskResourceService: TaskResourceService,\n                protected _snackBar: SnackBarService,\n                protected _translate: TranslateService,\n                protected _taskState: TaskRequestStateService,\n                protected _taskEvent: TaskEventService,\n                protected _taskDataService: TaskDataService,\n                protected _eventQueue: EventQueueService,\n                protected _eventService: EventService,\n                protected _changedFieldsService: ChangedFieldsService,\n                @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations,\n                @Optional() @Inject(NAE_USER_ASSIGN_COMPONENT) protected _userAssignComponent: any,\n                @Optional() _selectedCaseService: SelectedCaseService,\n                _taskContentService: TaskContentService) {\n        super(_taskContentService, _selectedCaseService);\n    }\n\n    /**\n     * Performs the 'delegate' operation on the task held by {@link TaskContentService}.\n     *\n     * Doesn't send any requests if the loading indicator is in it's active state.\n     * Otherwise sets the indicator to the active state and disables it once the request response is received.\n     *\n     * The argument can be used to chain operations together,\n     * or to execute code conditionally based on the success state of the delegate operation.\n     *\n     * If the task held within the {@link TaskContentService} changes before a response is received, the response will be ignored\n     * and the `afterAction` will not be executed.\n     * @param afterAction if delegate completes successfully `true` will be emitted into this Subject, otherwise `false` will be emitted\n     */\n    public delegate(afterAction: AfterAction = new AfterAction()) {\n        const delegatedTaskId = this._safeTask.stringId;\n\n        if (this._taskState.isLoading(delegatedTaskId)) {\n            return;\n        }\n        this._sideMenuService.open(this._userAssignComponent, SideMenuSize.MEDIUM,\n            {\n                roles: Object.keys(this._safeTask.roles).filter(role =>\n                    this._safeTask.roles[role]['assign'] !== undefined && this._safeTask.roles[role]['assign']),\n                value: !this._safeTask.user ? undefined : new UserValue(\n                    this._safeTask.user.id, this._safeTask.user.name, this._safeTask.user.surname, this._safeTask.user.email\n                ),\n                negativeRoles: Object.keys(this._safeTask.roles).filter(role =>\n                    this._safeTask.roles[role]['assign'] !== undefined && !this._safeTask.roles[role]['assign'])\n            } as UserListInjectedData).onClose.subscribe(event => {\n\n            this._log.debug('Delegate sidemenu event:' + event);\n            if (event.data === undefined) {\n                return;\n            }\n\n            this._eventQueue.scheduleEvent(new QueuedEvent(\n                () => {\n                    const result = this.isTaskRelevant(delegatedTaskId);\n                    if (!result) {\n                        this._log.debug('current task changed before the delegate side menu data was received, discarding...');\n                    }\n                    return result;\n                },\n                nextEvent => {\n                    this.performDelegateRequest(afterAction, delegatedTaskId, event.data.id, nextEvent);\n                }\n            ));\n        });\n    }\n\n    /**\n     * Performs a `delegate` request on the task currently stored in the `taskContent` service\n     * @param afterAction the action that should be performed after the request is processed\n     * @param delegatedTaskId id of the task that is being delegated\n     * @param delegatedUserId id of the user whom the task is being delegated\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     */\n    protected performDelegateRequest(afterAction: AfterAction, delegatedTaskId: string, delegatedUserId: any, nextEvent: AfterAction) {\n        this._taskState.startLoading(delegatedTaskId);\n        this._taskResourceService.delegateTask(this._safeTask.stringId, delegatedUserId).pipe(take(1)).subscribe(\n            (outcomeResource: EventOutcomeMessageResource) => {\n            this._taskState.stopLoading(delegatedTaskId);\n            if (!this.isTaskRelevant(delegatedTaskId)) {\n                this._log.debug('current task changed before the delegate response could be received, discarding...');\n                nextEvent.resolve(false);\n                return;\n            }\n\n            if (outcomeResource.success) {\n                this._taskContentService.updateStateData(outcomeResource.outcome as DelegateTaskEventOutcome);\n                const changedFieldsMap: ChangedFieldsMap = this._eventService\n                    .parseChangedFieldsFromOutcomeTree(outcomeResource.outcome);\n                if (!!changedFieldsMap) {\n                    this._changedFieldsService.emitChangedFields(changedFieldsMap);\n                }\n                this.completeSuccess(afterAction, nextEvent, outcomeResource.outcome as DelegateTaskEventOutcome);\n            } else if (outcomeResource.error) {\n                this._snackBar.openErrorSnackBar(outcomeResource.error);\n                this.completeActions(afterAction, nextEvent, false);\n            }\n        }, error => {\n            this._taskState.stopLoading(delegatedTaskId);\n            this._log.debug('getting task data failed', error);\n\n            if (!this.isTaskRelevant(delegatedTaskId)) {\n                this._log.debug('current task changed before the delegate error could be received');\n                nextEvent.resolve(false);\n                return;\n            }\n\n            this._snackBar.openErrorSnackBar(`${this._translate.instant('tasks.snackbar.assignTask')}\n                     ${this._task} ${this._translate.instant('tasks.snackbar.failed')}`);\n            this.completeActions(afterAction, nextEvent, false);\n        });\n    }\n\n    /**\n     * Reloads the task and emits `true` to the `afterAction` stream\n     */\n    protected completeSuccess(afterAction: AfterAction, nextEvent: AfterAction, outcome?: TaskEventOutcome): void {\n        this._taskOperations.reload();\n        this.completeActions(afterAction, nextEvent, true, outcome);\n    }\n\n    /**\n     * Completes all the action streams and sends the notification, with the provided result\n     */\n    protected completeActions(afterAction: AfterAction, nextEvent: AfterAction, result: boolean, outcome?: TaskEventOutcome) {\n        this.sendNotification(result, outcome);\n        afterAction.resolve(result);\n        nextEvent.resolve(result);\n    }\n\n    /**\n     * Publishes a delegate notification to the {@link TaskEventService}\n     * @param success whether the delegate operation was successful or not\n     * @param outcome\n     */\n    protected sendNotification(success: boolean, outcome?: TaskEventOutcome): void {\n        this._taskEvent.publishTaskEvent(createTaskEventNotification(this._safeTask, TaskEvent.DELEGATE, success, outcome));\n    }\n}\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {TaskContentService} from '../../task-content/services/task-content.service';\nimport {TaskEventService} from '../../task-content/services/task-event.service';\nimport {TaskResourceService} from '../../resources/engine-endpoint/task-resource.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TaskRequestStateService} from './task-request-state.service';\nimport {TaskHandlingService} from './task-handling-service';\nimport {NAE_TASK_OPERATIONS} from '../models/task-operations-injection-token';\nimport {TaskOperations} from '../interfaces/task-operations';\nimport {UserComparatorService} from '../../user/services/user-comparator.service';\nimport {SelectedCaseService} from './selected-case.service';\nimport {createTaskEventNotification} from '../../task-content/model/task-event-notification';\nimport {TaskEvent} from '../../task-content/model/task-event';\nimport {TaskDataService} from './task-data.service';\nimport {take} from 'rxjs/operators';\nimport {TaskViewService} from '../../view/task-view/service/task-view.service';\nimport {CancelTaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/cancel-task-event-outcome';\nimport {EventOutcomeMessageResource} from '../../resources/interface/message-resource';\nimport {EventQueueService} from '../../event-queue/services/event-queue.service';\nimport {QueuedEvent} from '../../event-queue/model/queued-event';\nimport {AfterAction} from '../../utility/call-chain/after-action';\nimport {PermissionService} from '../../authorization/permission/permission.service';\nimport {ChangedFieldsService} from '../../changed-fields/services/changed-fields.service';\nimport { EventService} from '../../event/services/event.service';\nimport {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map';\nimport {TaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/task-event-outcome';\n\n/**\n * Service that handles the logic of canceling a task.\n */\n@Injectable()\nexport class CancelTaskService extends TaskHandlingService {\n\n    constructor(protected _log: LoggerService,\n                protected _taskEventService: TaskEventService,\n                protected _taskResourceService: TaskResourceService,\n                protected _translate: TranslateService,\n                protected _snackBar: SnackBarService,\n                protected _taskState: TaskRequestStateService,\n                protected _userComparator: UserComparatorService,\n                protected _taskEvent: TaskEventService,\n                protected _taskDataService: TaskDataService,\n                protected _eventQueue: EventQueueService,\n                protected _eventService: EventService,\n                protected _changedFieldsService: ChangedFieldsService,\n                @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations,\n                @Optional() _selectedCaseService: SelectedCaseService,\n                @Optional() protected _taskViewService: TaskViewService,\n                _taskContentService: TaskContentService,\n                protected permissionService: PermissionService) {\n        super(_taskContentService, _selectedCaseService);\n    }\n\n    /**\n     * Performs the 'cancel' operation on the task held by {@link TaskContentService}.\n     *\n     * Doesn't send any requests if the loading indicator is in it's active state.\n     * Otherwise sets the indicator to the active state and disables it once the request response is received.\n     *\n     * The argument can be used to chain operations together,\n     * or to execute code conditionally based on the success state of the cancel operation.\n     *\n     * If the task held within the {@link TaskContentService} changes before a response is received, the response will be ignored\n     * and the `afterAction` will not be executed.\n     * @param afterAction if cancel completes successfully `true` will be emitted into this Subject, otherwise `false` will be emitted\n     */\n    public cancel(afterAction: AfterAction = new AfterAction()) {\n        this._eventQueue.scheduleEvent(new QueuedEvent(\n            () => this.permissionService.canCancel(this._safeTask),\n            nextEvent => {\n                this.performCancelRequest(afterAction, nextEvent, this._taskViewService !== null && !this._taskViewService.allowMultiOpen);\n            },\n            nextEvent => {\n                this.completeActions(afterAction, nextEvent, false);\n            }\n        ));\n    }\n\n    /**\n     * Performs a `cancel` request on the task currently stored in the `taskContent` service\n     * @param afterAction the action that should be performed after the request is processed\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     * @param forceReload whether a force reload of the task data should be performed after cancel.\n     * If set to `false` a regular reload is performed instead.\n     */\n    protected performCancelRequest(afterAction: AfterAction, nextEvent: AfterAction, forceReload: boolean) {\n        const canceledTaskId = this._safeTask.stringId;\n\n        // this is probably no longer necessary because of the event queue\n        if (this._taskState.isLoading(canceledTaskId)) {\n            nextEvent.resolve(true);\n            return;\n        }\n\n        this._taskState.startLoading(canceledTaskId);\n        this.cancelRequest(afterAction, canceledTaskId, nextEvent, forceReload);\n    }\n\n    /**\n     * Calls the endpoint and processes the possible responses.\n     * @param afterAction the action that should be performed after the request is processed\n     * @param canceledTaskId the id of the task that is being canceled\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     * @param forceReload whether a force reload of the task data should be performed after cancel.\n     * If set to `false` a regular reload is performed instead.\n     */\n    protected cancelRequest(afterAction: AfterAction = new AfterAction(),\n                            canceledTaskId: string,\n                            nextEvent: AfterAction = new AfterAction(),\n                            forceReload: boolean) {\n        this._taskResourceService.cancelTask(this._safeTask.stringId).pipe(take(1)).subscribe(\n            (outcomeResource: EventOutcomeMessageResource) => {\n            this._taskState.stopLoading(canceledTaskId);\n            if (!this.isTaskRelevant(canceledTaskId)) {\n                this._log.debug('current task changed before the cancel response could be received, discarding...');\n                nextEvent.resolve(false);\n                return;\n            }\n\n            if (outcomeResource.success) {\n                this._taskContentService.updateStateData(outcomeResource.outcome as CancelTaskEventOutcome);\n                const changedFieldsMap: ChangedFieldsMap = this._eventService\n                    .parseChangedFieldsFromOutcomeTree(outcomeResource.outcome);\n                if (!!changedFieldsMap) {\n                    this._changedFieldsService.emitChangedFields(changedFieldsMap);\n                }\n                forceReload ? this._taskOperations.forceReload() : this._taskOperations.reload();\n                this.completeActions(afterAction, nextEvent, true, outcomeResource.outcome as CancelTaskEventOutcome);\n            } else if (outcomeResource.error !== undefined) {\n                if (outcomeResource.error !== '') {\n                    this._snackBar.openErrorSnackBar(outcomeResource.error);\n                }\n                if (outcomeResource.outcome !== undefined) {\n                    const changedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(outcomeResource.outcome);\n                    this._changedFieldsService.emitChangedFields(changedFieldsMap);\n                }\n                this.completeActions(afterAction, nextEvent, false);\n            }\n        }, error => {\n            this._taskState.stopLoading(canceledTaskId);\n            this._log.debug('canceling task failed', error);\n\n            if (!this.isTaskRelevant(canceledTaskId)) {\n                this._log.debug('current task changed before the cancel error could be received');\n                nextEvent.resolve(false);\n                return;\n            }\n\n            this._snackBar.openErrorSnackBar(`${this._translate.instant('tasks.snackbar.cancelTask')}\n             ${this._task} ${this._translate.instant('tasks.snackbar.failed')}`);\n            this.completeActions(afterAction, nextEvent, false);\n        });\n    }\n\n    /**\n     * complete all action streams and send notification with selected boolean\n     */\n    protected completeActions(afterAction: AfterAction, nextEvent: AfterAction, bool: boolean, outcome?: TaskEventOutcome): void {\n        this.sendNotification(bool, outcome);\n        afterAction.resolve(bool);\n        nextEvent.resolve(bool);\n    }\n\n    /**\n     * Publishes a cancel notification to the {@link TaskEventService}\n     * @param success whether the cancel operation was successful or not\n     * @param outcome\n     */\n    protected sendNotification(success: boolean, outcome?: TaskEventOutcome): void {\n        this._taskEvent.publishTaskEvent(createTaskEventNotification(this._safeTask, TaskEvent.CANCEL, success, outcome));\n    }\n}\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {take} from 'rxjs/operators';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {TaskContentService} from '../../task-content/services/task-content.service';\nimport {TaskResourceService} from '../../resources/engine-endpoint/task-resource.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {TaskRequestStateService} from './task-request-state.service';\nimport {TaskDataService} from './task-data.service';\nimport {TaskHandlingService} from './task-handling-service';\nimport {NAE_TASK_OPERATIONS} from '../models/task-operations-injection-token';\nimport {TaskOperations} from '../interfaces/task-operations';\nimport {CallChainService} from '../../utility/call-chain/call-chain.service';\nimport {SelectedCaseService} from './selected-case.service';\nimport {createTaskEventNotification} from '../../task-content/model/task-event-notification';\nimport {TaskEvent} from '../../task-content/model/task-event';\nimport {TaskEventService} from '../../task-content/services/task-event.service';\nimport {FinishTaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/finish-task-event-outcome';\nimport {EventOutcomeMessageResource} from '../../resources/interface/message-resource';\nimport {EventQueueService} from '../../event-queue/services/event-queue.service';\nimport {QueuedEvent} from '../../event-queue/model/queued-event';\nimport {AfterAction} from '../../utility/call-chain/after-action';\nimport {ChangedFieldsService} from '../../changed-fields/services/changed-fields.service';\nimport {EventService} from '../../event/services/event.service';\nimport {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map';\nimport {TaskEventOutcome} from '../../event/model/event-outcomes/task-outcomes/task-event-outcome';\n\n\n/**\n * Service that handles the logic of finishing a task.\n */\n@Injectable()\nexport class FinishTaskService extends TaskHandlingService {\n\n    constructor(protected _log: LoggerService,\n                protected _taskResourceService: TaskResourceService,\n                protected _snackBar: SnackBarService,\n                protected _translate: TranslateService,\n                protected _taskState: TaskRequestStateService,\n                protected _taskDataService: TaskDataService,\n                protected _callChain: CallChainService,\n                protected _taskEvent: TaskEventService,\n                protected _eventQueue: EventQueueService,\n                protected _eventService: EventService,\n                protected _changedFieldsService: ChangedFieldsService,\n                @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations,\n                @Optional() _selectedCaseService: SelectedCaseService,\n                _taskContentService: TaskContentService) {\n        super(_taskContentService, _selectedCaseService);\n    }\n\n    /**\n     * Updates the task data to their current state from backend, checks the validity of the data and\n     * sends a finish request to backend.\n     *\n     * Finish request is not sent if the task contains invalid data.\n     *\n     * If an update to the data is already in progress waits for it's successful completion and sends the finish request after.\n     *\n     * @param afterAction if finish request completes successfully `true` will be emitted into this Subject,\n     * otherwise `false` will be emitted\n     */\n    public validateDataAndFinish(afterAction: AfterAction = new AfterAction()): void {\n        if (this.dataIsEmpty()) {\n            this._taskDataService.initializeTaskDataFields(this._callChain.create(() => {\n                if (this._safeTask.dataSize <= 0 ||\n                    (this._taskContentService.validateDynamicEnumField() && this._taskContentService.validateTaskData())) {\n                    this.queueFinishTaskRequest(afterAction);\n                }\n            }));\n        } else if (this._taskContentService.validateDynamicEnumField() && this._taskContentService.validateTaskData()) {\n            const finishedTaskId = this._safeTask.stringId;\n            this._taskDataService.updateTaskDataFields(this._callChain.create(success => {\n                    if (success && this._taskState.isUpdating(finishedTaskId)) {\n                        this._taskDataService.updateSuccess$.pipe(take(1)).subscribe(bool => {\n                            if (bool) {\n                                this.queueFinishTaskRequest(afterAction);\n                            }\n                        });\n                    } else if (success) {\n                        this.queueFinishTaskRequest(afterAction);\n                    }\n            }));\n        }\n    }\n\n    /**\n     * Sends the finish request to backend and notifies the user about the outcome of the operation via a snack bar message.\n     *\n     * Doesn't send any requests if the loading indicator is in it's active state.\n     * Otherwise sets the indicator to the active state and disables it once the request response is received.\n     *\n     * The argument can be used to chain operations together,\n     * or to execute code conditionally based on the success state of the finish request.\n     *\n     * If the task held within the {@link TaskContentService} changes before a response is received, the response will be ignored\n     * and the `afterAction` will not be executed.\n     * @param afterAction if finish request completes successfully `true` will be emitted into this Subject,\n     * otherwise `false` will be emitted\n     */\n    protected queueFinishTaskRequest(afterAction: AfterAction): void {\n        this._eventQueue.scheduleEvent(new QueuedEvent(\n            () => true,\n            nextEvent => {\n                this.performFinishRequest(afterAction, nextEvent);\n            }\n        ));\n    }\n\n    /**\n     * Performs a `finish` request on the task currently stored in the `taskContent` service\n     * @param afterAction the action that should be performed after the request is processed\n     * @param nextEvent indicates to the event queue that the next event can be processed\n     */\n    protected performFinishRequest(afterAction: AfterAction, nextEvent: AfterAction) {\n        const finishedTaskId = this._safeTask.stringId;\n\n        // this is probably no longer necessary because of the event queue\n        if (this._taskState.isLoading(finishedTaskId)) {\n            nextEvent.resolve(true);\n            return;\n        }\n\n        this._taskState.startLoading(finishedTaskId);\n\n        this._taskResourceService.finishTask(this._safeTask.stringId).pipe(take(1))\n            .subscribe((outcomeResource: EventOutcomeMessageResource) => {\n            this._taskState.stopLoading(finishedTaskId);\n            if (!this.isTaskRelevant(finishedTaskId)) {\n                this._log.debug('current task changed before the finish response could be received, discarding...');\n                nextEvent.resolve(false);\n                return;\n            }\n\n            if (outcomeResource.success) {\n                const outcome = outcomeResource.outcome as FinishTaskEventOutcome\n                this._taskContentService.updateStateData(outcome, outcome.isTaskStillExecutable);\n                const changedFieldsMap: ChangedFieldsMap = this._eventService\n                    .parseChangedFieldsFromOutcomeTree(outcomeResource.outcome);\n                if (!!changedFieldsMap) {\n                    this._changedFieldsService.emitChangedFields(changedFieldsMap);\n                }\n                this._taskOperations.reload();\n                this.completeActions(afterAction, nextEvent, true, outcomeResource.outcome as FinishTaskEventOutcome);\n                this._taskOperations.close();\n                this._snackBar.openSuccessSnackBar(outcomeResource.outcome.message === undefined\n                    ? this._translate.instant('tasks.snackbar.finishTaskSuccess')\n                    : outcomeResource.outcome.message);\n            } else if (outcomeResource.error !== undefined) {\n                if (outcomeResource.error !== '') {\n                    this._snackBar.openErrorSnackBar(outcomeResource.error);\n                }\n                if (outcomeResource.outcome !== undefined) {\n                    const changedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(outcomeResource.outcome);\n                    this._changedFieldsService.emitChangedFields(changedFieldsMap);\n                }\n                this.completeActions(afterAction, nextEvent, false);\n            }\n        }, error => {\n            this._taskState.stopLoading(finishedTaskId);\n            this._log.debug('finishing task failed', error);\n\n            if (!this.isTaskRelevant(finishedTaskId)) {\n                this._log.debug('current task changed before the finish error could be received');\n                nextEvent.resolve(false);\n                return;\n            }\n\n            this._snackBar.openErrorSnackBar(`${this._translate.instant('tasks.snackbar.finishTask')}\n             ${this._task.title} ${this._translate.instant('tasks.snackbar.failed')}`);\n            this.completeActions(afterAction, nextEvent, false);\n        });\n    }\n\n    /**\n     * Completes all the action streams and sends the notification, with the provided result\n     */\n    protected completeActions(afterAction: AfterAction, nextEvent: AfterAction, result: boolean, outcome?: TaskEventOutcome) {\n        this.sendNotification(result, outcome);\n        afterAction.resolve(result);\n        nextEvent.resolve(result);\n    }\n\n    /**\n     * Publishes a finish notification to the {@link TaskEventService}\n     * @param success whether the finish operation was successful or not\n     * @param outcome TaskEventOutcome\n     */\n    protected sendNotification(success: boolean, outcome?: TaskEventOutcome): void {\n        this._taskEvent.publishTaskEvent(createTaskEventNotification(this._safeTask, TaskEvent.FINISH, success, outcome));\n    }\n\n    /**\n     * Checks data size\n     * @return boolean whether the task contains data or not\n     */\n    private dataIsEmpty(): boolean {\n        return this._safeTask.dataSize <= 0 || !this._safeTask.dataGroups || this._safeTask.dataGroups.length <= 0;\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {DataFocusPolicy} from '../../task-content/model/policy';\nimport {TaskContentService} from '../../task-content/services/task-content.service';\nimport {TaskHandlingService} from './task-handling-service';\n\n/**\n * Handles the sequence of actions that are performed when a task si [opened]{@link TaskOperations#open}.\n */\n@Injectable()\nexport class DataFocusPolicyService extends TaskHandlingService {\n\n    constructor(_taskContentService: TaskContentService) {\n        super(_taskContentService);\n    }\n\n    /**\n     * Performs the selection of some data fields if the policy is set to [Auto Required]{@link DataFocusPolicy#autoRequired}.\n     */\n    public performDataFocusPolicy(): void {\n        if (this._safeTask.dataFocusPolicy === DataFocusPolicy.autoRequired) {\n            this.autoRequiredDataFocusPolicy();\n        }\n    }\n\n    /**\n     * Currently does nothing\n     */\n    private autoRequiredDataFocusPolicy(): void {\n        // TODO Implement focus in FUTURE, if someone wants this feature (for now we don't want it )\n    }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {TaskHandlingService} from './task-handling-service';\nimport {TaskContentService} from '../../task-content/services/task-content.service';\nimport {FinishPolicy} from '../../task-content/model/policy';\nimport {DataFocusPolicyService} from './data-focus-policy.service';\nimport {NAE_TASK_OPERATIONS} from '../models/task-operations-injection-token';\nimport {TaskOperations} from '../interfaces/task-operations';\nimport {FinishTaskService} from './finish-task.service';\nimport {Subject} from 'rxjs';\nimport {AfterAction} from '../../utility/call-chain/after-action';\n\n/**\n * Handles the sequence of actions that are performed when a task is being finished, based on the task's configuration.\n */\n@Injectable()\nexport class FinishPolicyService extends TaskHandlingService {\n\n    constructor(protected _dataFocusPolicyService: DataFocusPolicyService,\n                protected _finishTaskService: FinishTaskService,\n                @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations,\n                taskContentService: TaskContentService) {\n        super(taskContentService);\n    }\n\n    /**\n     * Performs the actions that correspond to the policy defined by the Task when it's finished.\n     * @param afterAction the action that should be performed when the finish policy finishes\n     */\n    public performFinishPolicy(afterAction: AfterAction = new AfterAction()): void {\n        if (this._safeTask.finishPolicy === FinishPolicy.autoNoData && !!this._safeTask.user) {\n            this.autoNoDataFinishPolicy(afterAction);\n        } else {\n            this.manualFinishPolicy(afterAction);\n        }\n    }\n\n    /**\n     * Performs the actions that correspond to the [Auto Finish Policy]{@link FinishPolicy#autoNoData}.\n     *\n     * If the task has no data performs finish and [closes]{@link TaskOperations#close} the task.\n     * Otherwise [opens]{@link TaskOperations#open} it and performs the [data focus policy]{@link DataFocusPolicyService}.\n     *\n     * @param afterAction the action that should be performed when the finish policy finishes\n     */\n    protected autoNoDataFinishPolicy(afterAction: AfterAction): void {\n        if (this._safeTask.dataSize <= 0) {\n            this._finishTaskService.validateDataAndFinish(afterAction);\n        } else {\n            this._taskOperations.open();\n            this._dataFocusPolicyService.performDataFocusPolicy();\n            afterAction.resolve(true);\n        }\n    }\n\n    /**\n     * Performs the actions that correspond to the [Manual Finish Policy]{@link FinishPolicy#manual}.\n     *\n     * [Opens]{@link TaskOperations#open} the task and performs the [data focus policy]{@link DataFocusPolicyService}.\n     *\n     * @param afterAction the action that should be performed when the finish policy finishes\n     */\n    protected manualFinishPolicy(afterAction: Subject<boolean>): void {\n        this._taskOperations.open();\n        this._dataFocusPolicyService.performDataFocusPolicy();\n        afterAction.next(true);\n        afterAction.complete();\n    }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {AssignPolicy} from '../../task-content/model/policy';\nimport {TaskHandlingService} from './task-handling-service';\nimport {TaskContentService} from '../../task-content/services/task-content.service';\nimport {TaskDataService} from './task-data.service';\nimport {AssignTaskService} from './assign-task.service';\nimport {CancelTaskService} from './cancel-task.service';\nimport {FinishPolicyService} from './finish-policy.service';\nimport {NAE_TASK_OPERATIONS} from '../models/task-operations-injection-token';\nimport {TaskOperations} from '../interfaces/task-operations';\nimport {CallChainService} from '../../utility/call-chain/call-chain.service';\nimport {race, Subject} from 'rxjs';\nimport {UserComparatorService} from '../../user/services/user-comparator.service';\nimport {AfterAction} from '../../utility/call-chain/after-action';\nimport {PermissionService} from '../../authorization/permission/permission.service';\nimport {PermissionType} from '../../process/permissions';\nimport {UserService} from \"../../user/services/user.service\";\nimport {filter, take} from \"rxjs/operators\";\n\n/**\n * Handles the sequence of actions that are performed when a task is being assigned, based on the task's configuration.\n */\n@Injectable()\nexport class AssignPolicyService extends TaskHandlingService {\n\n    private _isForced = false;\n\n    constructor(protected _taskDataService: TaskDataService,\n                protected _assignTaskService: AssignTaskService,\n                protected _cancelTaskService: CancelTaskService,\n                protected _finishPolicyService: FinishPolicyService,\n                protected _callchain: CallChainService,\n                protected _userComparatorService: UserComparatorService,\n                @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: TaskOperations,\n                taskContentService: TaskContentService,\n                protected _permissionService: PermissionService,\n                protected _userService: UserService) {\n        super(taskContentService);\n    }\n\n    get forced() {\n        return this._isForced;\n    }\n\n    set forced(bool: boolean) {\n        this._isForced = bool;\n    }\n\n    /**\n     * Performs the actions that correspond to the policy defined by the Task on it's assignment.\n     * @param taskOpened whether the Task was 'opened' (eg. task panel is expanding) or 'closed' (eg. task panel is collapsing)\n     * @param afterAction the action that should be performed when the assign policy (and all following policies) finishes\n     */\n    public performAssignPolicy(taskOpened: boolean, afterAction: AfterAction = new AfterAction()): void {\n        if (!this._userService.isCurrentUserEmpty()) {\n            this.performAssign(taskOpened, afterAction);\n        } else {\n            race([\n                this._userService.anonymousUser$,\n                this._userService.user$\n            ])\n                .pipe(filter(user => !this._userService.isUserEmpty(user)))\n                .pipe(take(1))\n                .subscribe(user => this.performAssign(taskOpened, afterAction));\n        }\n    }\n\n    private performAssign(taskOpened: boolean, afterAction: AfterAction = new AfterAction()): void {\n        if (this._safeTask.assignPolicy === AssignPolicy.auto\n            && this._permissionService.hasTaskPermission(this._safeTask, PermissionType.ASSIGN)) {\n            this.autoAssignPolicy(taskOpened, afterAction);\n        } else {\n            this.manualAssignPolicy(taskOpened, afterAction);\n        }\n    }\n\n    /**\n     * Performs the actions that correspond to the [Auto Assign Policy]{@link AssignPolicy#auto}.\n     * @param taskOpened whether the Task was 'opened' (eg. task panel is expanding) or 'closed' (eg. task panel is collapsing)\n     * @param afterAction the action that should be performed when the assign policy (and all following policies) finishes\n     */\n    protected autoAssignPolicy(taskOpened: boolean, afterAction: AfterAction): void {\n        if (taskOpened) {\n            this.autoAssignOpenedPolicy(afterAction);\n        } else {\n            this.autoAssignClosedPolicy(afterAction);\n        }\n    }\n\n    /**\n     * Performs the actions that correspond to the [Auto Assign Policy]{@link AssignPolicy#auto}\n     * when a task is 'opening' (eg. task panel is expanding).\n     *\n     * Assigns the task, reloads the current task page, loads task data and performs the finish policy.\n     *\n     * See [finish policy]{@link FinishPolicyService#performFinishPolicy} for more information.\n     *\n     * @param afterAction the action that should be performed when the assign policy (and all following policies) finishes\n     */\n    protected autoAssignOpenedPolicy(afterAction: AfterAction): void {\n        this._assignTaskService.assign(\n            this._callchain.create((assignSuccess => {\n                this.afterAssignOpenPolicy(assignSuccess, afterAction);\n            }))\n        );\n    }\n\n    /**\n     * Reloads the current page of tasks if the preceding assign operation succeeded. Then initializes the task's data fields.\n     * @param assignSuccess whether the preceding assign succeeded or not\n     * @param afterAction the action that should be performed when the assign policy (and all following policies) finishes\n     */\n    protected afterAssignOpenPolicy(assignSuccess: boolean, afterAction: AfterAction): void {\n        if (!assignSuccess) {\n            afterAction.resolve(false);\n            return;\n        }\n\n        this._taskDataService.initializeTaskDataFields(\n            this._callchain.create((requestSuccessful) => {\n                if (requestSuccessful) {\n                    this._finishPolicyService.performFinishPolicy(afterAction);\n                } else {\n                    afterAction.resolve(false);\n                }\n            }),\n            this._isForced\n        );\n    }\n\n    /**\n     * Requests a reload of the task and then requests the task to be closed.\n     *\n     * @param afterAction the action that should be performed when the assign policy (and all following policies) finishes\n     */\n    protected autoAssignClosedPolicy(afterAction: Subject<boolean>): void {\n        if (!this._userComparatorService.compareUsers(this._task.user)) {\n            this._taskOperations.close();\n            afterAction.next(false);\n            afterAction.complete();\n            return;\n        }\n        this._cancelTaskService.cancel(\n            this._callchain.create((requestSuccess) => {\n                this._taskOperations.close();\n                afterAction.next(requestSuccess);\n                afterAction.complete();\n            })\n        );\n    }\n\n    /**\n     * Performs the actions that correspond to the [Manual Assign Policy]{@link AssignPolicy#manual}.\n     * @param taskOpened whether the Task was 'opened' (eg. task panel is expanding) or 'closed' (eg. task panel is collapsing)\n     * @param afterAction the action that should be performed when the assign policy (and all following policies) finishes\n     */\n    protected manualAssignPolicy(taskOpened: boolean, afterAction: AfterAction): void {\n        if (taskOpened) {\n            this.manualAssignOpenedPolicy(afterAction);\n        } else {\n            afterAction.resolve(false);\n        }\n    }\n\n    /**\n     * Performs the actions that correspond to the [Manual Assign Policy]{@link AssignPolicy#manual}\n     * when a task is 'opening' (eg. task panel is expanding).\n     *\n     * Loads task data and performs the [finish policy]{@link FinishPolicyService#performFinishPolicy}.\n     *\n     * See [finish policy]{@link FinishPolicyService#performFinishPolicy} for more information.\n     *\n     * @param afterAction the action that should be performed when the assign policy (and all following policies) finishes\n     */\n    protected manualAssignOpenedPolicy(afterAction: AfterAction): void {\n        this._taskDataService.initializeTaskDataFields(\n            this._callchain.create((requestSuccessful) => {\n                if (requestSuccessful) {\n                    this._finishPolicyService.performFinishPolicy(afterAction);\n                } else {\n                    afterAction.resolve(false);\n                }\n            }),\n            this._isForced\n        );\n    }\n}\n","import {TaskOperations} from '../interfaces/task-operations';\nimport {Observable, Subject} from 'rxjs';\nimport {OnDestroy} from '@angular/core';\n\n/**\n * An implementation of the {@link TaskOperations} interface that provides a Subject for both operations.\n */\nexport class SubjectTaskOperations implements TaskOperations {\n\n    protected _open: Subject<void>;\n    protected _close: Subject<void>;\n    protected _reload: Subject<void>;\n    protected _forceReload: Subject<void>;\n\n    constructor() {\n        this._open = new Subject<void>();\n        this._close = new Subject<void>();\n        this._reload = new Subject<void>();\n        this._forceReload = new Subject<void>();\n    }\n\n    /**\n     * Emits into the [open$]{@link SubjectTaskOperations#open$} stream.\n     */\n    open(): void {\n        this._open.next();\n    }\n\n    /**\n     * Emits into the [close$]{@link SubjectTaskOperations#close$} stream.\n     */\n    close(): void {\n        this._close.next();\n    }\n\n    /**\n     * Emits into the [reload$]{@link SubjectTaskOperations#reload$} stream.\n     */\n    reload(): void {\n        this._reload.next();\n    }\n\n    /**\n     * Emits into the [forceReload$]{@link SubjectTaskOperations#forceReload$} stream.\n     */\n    forceReload(): void {\n        this._forceReload.next();\n    }\n\n    public get open$(): Observable<void> {\n        return this._open.asObservable();\n    }\n\n    public get close$(): Observable<void> {\n        return this._close.asObservable();\n    }\n\n    public get reload$(): Observable<void> {\n        return this._reload.asObservable();\n    }\n\n    public get forceReload$(): Observable<void> {\n        return this._forceReload.asObservable();\n    }\n\n    /**\n     * Completes the underlying streams\n     */\n    destroy(): void {\n        this._open.complete();\n        this._close.complete();\n        this._reload.complete();\n        this._forceReload.complete();\n    }\n}\n\n","import {\n    AfterViewInit,\n    Component,\n    EventEmitter,\n    Inject,\n    Input,\n    OnDestroy,\n    OnInit,\n    Optional,\n    Output,\n    TemplateRef,\n    Type\n} from '@angular/core';\nimport {MatExpansionPanel} from '@angular/material/expansion';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {TaskContentService} from '../../task-content/services/task-content.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {TaskPanelData} from '../task-panel-list/task-panel-data/task-panel-data';\nimport {Observable, Subscription} from 'rxjs';\nimport {TaskViewService} from '../../view/task-view/service/task-view.service';\nimport {filter, map, take} from 'rxjs/operators';\nimport {HeaderColumn} from '../../header/models/header-column';\nimport {toMoment} from '../../resources/types/nae-date-type';\nimport {DATE_TIME_FORMAT_STRING} from '../../moment/time-formats';\nimport {PaperViewService} from '../../navigation/quick-panel/components/paper-view.service';\nimport {TaskEventService} from '../../task-content/services/task-event.service';\nimport {AssignTaskService} from '../../task/services/assign-task.service';\nimport {DelegateTaskService} from '../../task/services/delegate-task.service';\nimport {CancelTaskService} from '../../task/services/cancel-task.service';\nimport {FinishTaskService} from '../../task/services/finish-task.service';\nimport {TaskMetaField} from '../../header/task-header/task-meta-enum';\nimport {TaskRequestStateService} from '../../task/services/task-request-state.service';\nimport {TaskDataService} from '../../task/services/task-data.service';\nimport {AssignPolicyService} from '../../task/services/assign-policy.service';\nimport {SubjectTaskOperations} from '../../task/models/subject-task-operations';\nimport {CallChainService} from '../../utility/call-chain/call-chain.service';\nimport {TaskEventNotification} from '../../task-content/model/task-event-notification';\nimport {DisableButtonFuntions, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS} from './models/disable-functions';\nimport {Task} from '../../resources/interface/task';\nimport {ChangedFields} from '../../data-fields/models/changed-fields';\nimport {AbstractPanelWithImmediateDataComponent} from '../abstract/panel-with-immediate-data';\nimport {TranslateService} from '@ngx-translate/core';\nimport {FeaturedValue} from '../abstract/featured-value';\nimport {CurrencyPipe} from '@angular/common';\nimport {PermissionService} from '../../authorization/permission/permission.service';\nimport {ChangedFieldsService} from '../../changed-fields/services/changed-fields.service';\nimport {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map';\nimport {TaskPanelContext} from './models/task-panel-context';\nimport {OverflowService} from '../../header/services/overflow.service';\nimport {NAE_TASK_FORCE_OPEN} from '../../view/task-view/models/injection-token-task-force-open';\nimport {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport { FinishPolicyService } from '../../task/services/finish-policy.service';\nimport {NAE_TAB_DATA} from '../../tabs/tab-data-injection-token/tab-data-injection-token';\nimport {InjectedTabData} from '../../tabs/interfaces';\nimport {AfterAction} from '../../utility/call-chain/after-action';\n\n@Component({\n    selector: 'ncc-abstract-legal-notice',\n    template: ''\n})\nexport abstract class AbstractTaskPanelComponent extends AbstractPanelWithImmediateDataComponent implements OnInit, AfterViewInit, OnDestroy {\n\n    /**\n     * @ignore\n     * Set by an @Input() on a setter function, that also resolves featured fields.\n     */\n    protected _taskPanelData: TaskPanelData;\n    protected _forceLoadDataOnOpen = false;\n    @Input() taskListVirtualScroll: CdkVirtualScrollViewport;\n    @Input() panelContentComponent: Type<any>;\n    @Input() public selectedHeaders$: Observable<Array<HeaderColumn>>;\n    @Input() public first: boolean;\n    @Input() public last: boolean;\n    @Input() responsiveBody = true;\n    @Input() preventCollapse = false;\n    @Input() hidePanelHeader = false;\n    @Input() hideActionRow = false;\n    @Input() actionButtonTemplates: Array<TemplateRef<any>>;\n    @Input() actionRowJustifyContent: 'space-between' | 'flex-start' | 'flex-end' | 'center' | 'space-around' |\n        'initial' | 'start' | 'end' | 'left' | 'right' | 'revert' | 'inherit' | 'unset'\n    @Input() showMoreMenu: boolean = true;\n\n    thisContext: TaskPanelContext = {\n        canAssign: () => this.canAssign(),\n        assign: () => this.assign(),\n        getAssignTitle: () => this.getAssignTitle(),\n        delegate: () => this.delegate(),\n        getDelegateTitle: () => this.getDelegateTitle(),\n        canReassign: () => this.canReassign(),\n        canCancel: () => this.canCancel(),\n        cancel: () => this.cancel(),\n        getCancelTitle: () => this.getCancelTitle(),\n        canFinish: () => this.canFinish(),\n        finish: () => this.finish(),\n        getFinishTitle: () => this.getFinishTitle(),\n        canCollapse: () => this.canCollapse(),\n        collapse: () => this.collapse(),\n        canDisable: (arg: string) => this.canDisable(arg),\n        canDo: (arg: string) => this.canDo(arg),\n        isLoading: () => this.isLoading\n    };\n\n\n    @Input()\n    set forceLoadDataOnOpen(force: boolean) {\n        this._forceLoadDataOnOpen = force;\n        this._assignPolicyService.forced = force;\n    }\n\n    @Input() textEllipsis = false;\n    /**\n     * Emits notifications about task events\n     */\n    @Output() taskEvent: EventEmitter<TaskEventNotification>;\n    @Output() panelRefOutput: EventEmitter<MatExpansionPanel>;\n\n    public portal: ComponentPortal<any>;\n    public panelRef: MatExpansionPanel;\n    protected _sub: Subscription;\n    protected _subTaskEvent: Subscription;\n    protected _subTaskData: Subscription;\n    protected _subPanelUpdate: Subscription;\n    protected _taskDisableButtonFunctions: DisableButtonFuntions;\n    protected _unsub: Subscription;\n    protected _canReload: boolean;\n\n    protected constructor(protected _taskContentService: TaskContentService,\n                          protected _log: LoggerService,\n                          protected _taskViewService: TaskViewService,\n                          protected _paperView: PaperViewService,\n                          protected _taskEventService: TaskEventService,\n                          protected _assignTaskService: AssignTaskService,\n                          protected _delegateTaskService: DelegateTaskService,\n                          protected _cancelTaskService: CancelTaskService,\n                          protected _finishTaskService: FinishTaskService,\n                          protected _taskState: TaskRequestStateService,\n                          protected _taskDataService: TaskDataService,\n                          protected _assignPolicyService: AssignPolicyService,\n                          protected _finishPolicyService: FinishPolicyService,\n                          protected _callChain: CallChainService,\n                          protected _taskOperations: SubjectTaskOperations,\n                          @Optional() @Inject(NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS) protected _disableFunctions: DisableButtonFuntions,\n                          protected _translate: TranslateService,\n                          protected _currencyPipe: CurrencyPipe,\n                          protected _changedFieldsService: ChangedFieldsService,\n                          protected _permissionService: PermissionService,\n                          @Optional() overflowService: OverflowService,\n                          @Optional() @Inject(NAE_TASK_FORCE_OPEN) protected _taskForceOpen: boolean,\n                          @Optional() @Inject(NAE_TAB_DATA) injectedTabData: InjectedTabData) {\n        super(_translate, _currencyPipe, overflowService);\n        this.taskEvent = new EventEmitter<TaskEventNotification>();\n        this.panelRefOutput = new EventEmitter<MatExpansionPanel>();\n        this._subTaskEvent = _taskEventService.taskEventNotifications$.subscribe(event => {\n            this.taskEvent.emit(event);\n        });\n        this._subTaskData = _changedFieldsService.changedFields$.subscribe((changedFieldsMap: ChangedFieldsMap) => {\n            const filteredCaseIds: Array<string> = Object.keys(changedFieldsMap).filter(\n                caseId => Object.keys(this._taskContentService.referencedTaskAndCaseIds).includes(caseId)\n            );\n            const changedFields: Array<ChangedFields> = [];\n            filteredCaseIds.forEach(caseId => {\n                const taskIds: Array<string> = this._taskContentService.referencedTaskAndCaseIds[caseId];\n                changedFields.push(...this._changedFieldsService.parseChangedFieldsByCaseAndTaskIds(caseId, taskIds, changedFieldsMap));\n            });\n            changedFields.filter(fields => fields !== undefined).forEach(fields => {\n                this.taskPanelData.changedFields.next(fields);\n            });\n        });\n        _taskOperations.open$.subscribe(() => {\n            this.expand();\n        });\n        _taskOperations.close$.subscribe(() => {\n            if (!this._taskForceOpen) {\n                this.collapse();\n            }\n        });\n        _taskOperations.reload$.subscribe(() => {\n            this._taskViewService.reloadCurrentPage();\n        });\n        _taskOperations.forceReload$.subscribe(() => {\n            this._taskViewService.reloadCurrentPage(true);\n        });\n        this._taskDisableButtonFunctions = {\n            finish: (t: Task) => false,\n            assign: (t: Task) => false,\n            delegate: (t: Task) => false,\n            reassign: (t: Task) => false,\n            cancel: (t: Task) => false,\n        };\n        if (_disableFunctions) {\n            Object.assign(this._taskDisableButtonFunctions, _disableFunctions);\n        }\n        if (injectedTabData !== null) {\n            this._unsub = injectedTabData.tabSelected$.pipe(\n                filter(bool => bool && this.isExpanded())\n            ).subscribe( () => {\n                if (this._canReload) {\n                    this._taskDataService.initializeTaskDataFields(new AfterAction(), true)\n                } else {\n                    this._canReload = true;\n                }\n            });\n        }\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n        this._taskContentService.task = this._taskPanelData.task;\n\n        this.createContentPortal();\n        this._sub = this._taskPanelData.changedFields.subscribe(chFields => {\n            this._taskContentService.updateFromChangedFields(chFields);\n        });\n\n        this._subPanelUpdate = this._taskViewService.panelUpdate.pipe(\n            map(a => a.find(p => p.task.stringId === this.taskPanelData.task.stringId)),\n            filter(p => !!p)\n        ).subscribe(value => {\n            this.resolveFeaturedFieldsValues();\n        });\n    }\n\n    ngAfterViewInit() {\n        this.panelRef.opened.subscribe(() => {\n            this._taskContentService.expansionStarted();\n            if (!this._taskState.isLoading()) {\n                this._assignPolicyService.performAssignPolicy(true);\n            }\n        });\n        this.panelRef.closed.subscribe(() => {\n            if (!this._taskState.isLoading()) {\n                this._assignPolicyService.performAssignPolicy(false);\n            }\n        });\n        this.panelRef.afterExpand.subscribe(() => {\n            this._taskContentService.$shouldCreate.pipe(take(1)).subscribe(() => {\n                this._taskContentService.blockFields(this.hasNoFinishPermission());\n                this._taskPanelData.initiallyExpanded = true;\n            });\n            this._taskContentService.expansionFinished();\n        });\n        this.panelRef.afterCollapse.subscribe(() => {\n            this._taskPanelData.initiallyExpanded = false;\n        });\n\n        if (this._taskPanelData.initiallyExpanded || this._taskForceOpen) {\n            this.panelRef.expanded = true;\n        }\n    }\n\n    protected abstract createContentPortal(): void;\n\n    @Input()\n    public set taskPanelData(data: TaskPanelData) {\n        this._taskPanelData = data;\n        this.resolveFeaturedFieldsValues();\n    }\n\n    public get taskPanelData(): TaskPanelData {\n        return this._taskPanelData;\n    }\n\n    public get isLoading(): boolean {\n        return this._taskState.isLoading();\n    }\n\n    public stopLoading(): void {\n        this._taskState.stopLoading(this._taskPanelData.task.stringId);\n    }\n\n    public preventPanelOpen($event: MouseEvent): boolean {\n        $event.stopPropagation();\n        return false;\n    }\n\n    public isPaperView() {\n        return this._paperView.paperView;\n    }\n\n    public setPanelRef(panelRef: MatExpansionPanel) {\n        this.panelRef = panelRef;\n        this.panelRefOutput.emit(panelRef);\n    }\n\n    assign() {\n        this._assignTaskService.assign(this._callChain.create((afterAction => {\n            if (afterAction) {\n                this._taskDataService.initializeTaskDataFields();\n                this._finishPolicyService.performFinishPolicy();\n            }\n        })));\n    }\n\n    delegate() {\n        this._delegateTaskService.delegate();\n    }\n\n    cancel() {\n        this._cancelTaskService.cancel(this._callChain.create(() => {\n            this._taskOperations.reload();\n            this._taskOperations.close();\n        }));\n    }\n\n    finish() {\n        if (!this._taskContentService.validateTaskData()) {\n            if (this._taskContentService.task.dataSize <= 0) {\n                this._taskDataService.initializeTaskDataFields();\n            }\n            const invalidFields = this._taskContentService.getInvalidTaskData();\n            document.getElementById(invalidFields[0].stringId).scrollIntoView({\n                behavior: 'smooth',\n                block: 'start',\n                inline: 'nearest'\n            });\n        } else {\n            this._finishTaskService.validateDataAndFinish();\n        }\n    }\n\n    collapse() {\n        this.panelRef.close();\n        this.panelRef.expanded = false;\n    }\n\n    expand() {\n        this.panelRef.open();\n        this.panelRef.expanded = true;\n    }\n\n    public canAssign(): boolean {\n        return this._permissionService.canAssign(this.taskPanelData.task) && this.getAssignTitle() !== '';\n    }\n\n    public canReassign(): boolean {\n        return this._permissionService.canReassign(this.taskPanelData.task);\n    }\n\n    public canCancel(): boolean {\n        return this._permissionService.canCancel(this.taskPanelData.task) && this.getCancelTitle() !== '';\n    }\n\n    public canFinish(): boolean {\n        return this._permissionService.canFinish(this.taskPanelData.task) && this.getFinishTitle() !== '';\n    }\n\n    private hasNoFinishPermission(): boolean {\n        return !this._permissionService.canFinish(this.taskPanelData.task)\n    }\n\n    public canCollapse(): boolean {\n        return this._taskForceOpen ? false : this._permissionService.canCollapse(this.taskPanelData.task);\n    }\n\n    public canDo(action): boolean {\n        return this._permissionService.hasTaskPermission(this.taskPanelData.task, action) && this.getDelegateTitle() !== '';\n    }\n\n    public getAssignTitle(): string {\n        return (this.taskPanelData.task.assignTitle === '' || this.taskPanelData.task.assignTitle)\n            ? this.taskPanelData.task.assignTitle : 'tasks.view.assign';\n    }\n\n    public getCancelTitle(): string {\n        return (this.taskPanelData.task.cancelTitle === '' || this.taskPanelData.task.cancelTitle)\n            ? this.taskPanelData.task.cancelTitle : 'tasks.view.cancel';\n    }\n\n    public getDelegateTitle(): string {\n        return (this.taskPanelData.task.delegateTitle === '' || this.taskPanelData.task.delegateTitle)\n            ? this.taskPanelData.task.delegateTitle : 'tasks.view.delegate';\n    }\n\n    public getFinishTitle(): string {\n        return (this.taskPanelData.task.finishTitle === '' || this.taskPanelData.task.finishTitle)\n            ? this.taskPanelData.task.finishTitle : 'tasks.view.finish';\n    }\n\n    public canDisable(type: string): boolean {\n        let disable = false;\n        if (!!this.taskPanelData && !!this.taskPanelData.task) {\n            disable = disable\n                || !!this._taskState.isLoading(this.taskPanelData.task.stringId)\n                || !!this._taskState.isUpdating(this.taskPanelData.task.stringId);\n        }\n        return disable || this._taskDisableButtonFunctions[type]({...this._taskContentService.task});\n    }\n\n    protected getFeaturedMetaValue(selectedHeader: HeaderColumn): FeaturedValue {\n        const task = this._taskPanelData.task;\n        switch (selectedHeader.fieldIdentifier) {\n            case TaskMetaField.CASE:\n                return {value: task.caseTitle, icon: '', type: 'meta'};\n            case TaskMetaField.CASE_ID:\n                return {value: task.caseId, icon: '', type: 'meta'};\n            case TaskMetaField.TASK_ID:\n                return {value: task.stringId, icon: '', type: 'meta'};\n            case TaskMetaField.TITLE:\n                return {value: task.title, icon: '', type: 'meta'};\n            case TaskMetaField.PRIORITY:\n                // TODO priority\n                if (!task.priority || task.priority < 2) {\n                    return {value: 'high', icon: 'error', type: 'meta'};\n                }\n                if (task.priority === 2) {\n                    return {value: 'medium', icon: 'north', type: 'meta'};\n                }\n                return {value: 'low', icon: 'south', type: 'meta'};\n            case TaskMetaField.USER:\n                return {value: task.user ? task.user.fullName : '', icon: 'account_circle', type: 'meta'};\n            case TaskMetaField.ASSIGN_DATE:\n                return {\n                    value: task.startDate ? toMoment(task.startDate).format(DATE_TIME_FORMAT_STRING) : '',\n                    icon: 'event',\n                    type: 'meta'\n                };\n        }\n    }\n\n    protected getFeaturedImmediateValue(selectedHeader: HeaderColumn): FeaturedValue {\n        if (this._taskContentService.task && this._taskContentService.task.immediateData) {\n            const immediate = this._taskContentService.task.immediateData.find(it => it.stringId === selectedHeader.fieldIdentifier);\n            return this.parseImmediateValue(immediate);\n        }\n        return {value: '', icon: '', type: ''};\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this._sub.unsubscribe();\n        this._subTaskEvent.unsubscribe();\n        this._subTaskData.unsubscribe();\n        this._taskOperations.destroy();\n        this._subPanelUpdate.unsubscribe();\n        this.taskEvent.complete();\n        if (this._unsub) {\n            this._unsub.unsubscribe();\n        }\n    }\n\n    public isForceOpen(): boolean {\n        return this._taskForceOpen && !!this.taskListVirtualScroll?.getElementRef()?.nativeElement;\n    }\n\n    public getContentMinHeight(): string {\n        return this.taskListVirtualScroll.getElementRef().nativeElement.offsetHeight - 32 + 'px';\n    }\n\n    public isExpanded() {\n        return this.panelRef?.expanded && !this._taskContentService?.isExpanding;\n    }\n}\n","import {InjectedTabData} from '../../tabs/interfaces';\nimport {Component, Inject, OnDestroy, Optional} from '@angular/core';\nimport {NAE_TAB_DATA} from '../../tabs/tab-data-injection-token/tab-data-injection-token';\nimport {filter, take} from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\n\n@Component({\n    selector: 'ncc-abstract-tabbed-virtual-scroll',\n    template: ''\n})\nexport abstract class TabbedVirtualScrollComponent implements OnDestroy {\n\n    protected _showVirtualScroll = false;\n    protected _sub: Subscription;\n\n    protected constructor(@Optional() @Inject(NAE_TAB_DATA) injectedTabData: InjectedTabData) {\n        if (injectedTabData === null) {\n            this._showVirtualScroll = true;\n        } else {\n            this._sub = injectedTabData.tabSelected$.pipe(\n                filter(bool => bool),\n                take(1)\n            ).subscribe( () => {\n                this._showVirtualScroll = true;\n            });\n        }\n    }\n\n    ngOnDestroy(): void {\n        if (this._sub) {\n            this._sub.unsubscribe();\n        }\n    }\n\n    public get showVirtualScroll(): boolean {\n        return this._showVirtualScroll;\n    }\n}\n","import {MatExpansionPanel} from '@angular/material/expansion';\nimport {ActivatedRoute} from '@angular/router';\nimport {filter} from 'rxjs/operators';\nimport {TabbedVirtualScrollComponent} from '../../abstract/tabbed-virtual-scroll.component';\nimport {AfterViewInit, Component, EventEmitter, Inject, Input, OnDestroy, Optional, Output} from '@angular/core';\nimport {Observable, Subject, Subscription} from 'rxjs';\nimport {TaskPanelData} from '../task-panel-data/task-panel-data';\nimport {HeaderColumn} from '../../../header/models/header-column';\nimport {TaskEventNotification} from '../../../task-content/model/task-event-notification';\nimport {TaskViewService} from '../../../view/task-view/service/task-view.service';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {NAE_TAB_DATA} from '../../../tabs/tab-data-injection-token/tab-data-injection-token';\nimport {InjectedTabData} from '../../../tabs/interfaces';\n\n\n@Component({\n    selector: 'ncc-abstract-default-task-list',\n    template: ''\n})\nexport abstract class AbstractDefaultTaskListComponent extends TabbedVirtualScrollComponent implements AfterViewInit, OnDestroy {\n\n    protected _tasks$: Observable<Array<TaskPanelData>>;\n    protected _redirectTaskId: string;\n    protected _unsubscribe$: Subject<void>;\n    protected _allowMultiOpen = true;\n    protected _taskPanelRefs: Map<string, MatExpansionPanel>;\n    @Input() loading$: Observable<boolean>;\n    @Input() selectedHeaders$: Observable<Array<HeaderColumn>>;\n    @Input() responsiveBody = true;\n    @Input() forceLoadDataOnOpen = false;\n    @Input() textEllipsis = false;\n    @Input() showMoreMenu: boolean = true;\n\n    @Input()\n    set allowMultiOpen(bool: boolean) {\n        this._allowMultiOpen = bool;\n        this._taskViewService.allowMultiOpen = bool;\n    }\n\n    get allowMultiOpen(): boolean {\n        return this._allowMultiOpen;\n    }\n\n    /**\n     * Emits notifications about task events\n     */\n    @Output() taskEvent: EventEmitter<TaskEventNotification>;\n    protected _unsub: Subscription;\n    protected _canReload: boolean;\n\n    constructor(protected _taskViewService: TaskViewService,\n                protected _log: LoggerService,\n                @Optional() @Inject(NAE_TAB_DATA) injectedTabData: InjectedTabData,\n                protected route?: ActivatedRoute) {\n        super(injectedTabData);\n        this.taskEvent = new EventEmitter<TaskEventNotification>();\n        this._taskPanelRefs = new Map<string, MatExpansionPanel>();\n        this._unsubscribe$ = new Subject<void>();\n        if (injectedTabData !== null) {\n            this._unsub = injectedTabData.tabSelected$.pipe(\n                filter(bool => bool)\n            ).subscribe( () => {\n                if (this._canReload) {\n                    this._taskViewService.reloadCurrentPage();\n                } else {\n                    this._canReload = true;\n                }\n            });\n        }\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.taskEvent.complete();\n        this._unsubscribe$.complete();\n        if (this._unsub) {\n            this._unsub.unsubscribe();\n        }\n    }\n\n    ngAfterViewInit() {\n        this.onRedirect();\n    }\n\n    public trackBy(_idx: number, item: TaskPanelData): any {\n        return item.task.stringId;\n    }\n\n    /**\n     * Emits an event into this component's @Output attribute\n     * @param event the event that will be emitted\n     */\n    public emitTaskEvent(event: TaskEventNotification) {\n        this.taskEvent.emit(event);\n    }\n\n    public addToPanelRefs(task: TaskPanelData, panelRef: MatExpansionPanel) {\n        this._taskPanelRefs.set(task.task.stringId, panelRef);\n    }\n\n    public onRedirect() {\n        this.route.queryParams.pipe(filter(pm => !!pm['taskId'])).subscribe(pm => {\n            this._redirectTaskId = pm['taskId'];\n            this._tasks$.pipe().subscribe(tasks => {\n                const task = tasks.find(t => t.task.stringId === this._redirectTaskId);\n                if (!!task && !task.initiallyExpanded) {\n                    this._taskPanelRefs.get(this._redirectTaskId).open();\n                    this._taskPanelRefs.get(this._redirectTaskId).expanded = true;\n                    this._unsubscribe$.next();\n                }\n            });\n        });\n    }\n}\n","import {Component, Inject, Input, Optional, ViewChild} from '@angular/core';\nimport {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {TaskViewService} from '../../view/task-view/service/task-view.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {NAE_TAB_DATA} from '../../tabs/tab-data-injection-token/tab-data-injection-token';\nimport {InjectedTabData} from '../../tabs/interfaces';\nimport {ActivatedRoute} from '@angular/router';\nimport {AbstractDefaultTaskListComponent} from './default-task-panel-list/abstract-default-task-list.component';\nimport {Observable} from 'rxjs';\nimport {TaskPanelData} from './task-panel-data/task-panel-data';\n\n@Component({\n    selector: 'ncc-abstract-task-list',\n    template: ''\n})\nexport abstract class AbstractTaskListComponent extends AbstractDefaultTaskListComponent {\n\n    @Input()\n    set tasks$(tasks: Observable<Array<TaskPanelData>>) {\n        this._tasks$ = tasks;\n    }\n\n    get tasks$(): Observable<Array<TaskPanelData>> {\n        return this._tasks$;\n    }\n    @ViewChild(CdkVirtualScrollViewport) public viewport: CdkVirtualScrollViewport;\n\n    protected constructor(protected _taskViewService: TaskViewService,\n                          protected _log: LoggerService,\n                          @Optional() @Inject(NAE_TAB_DATA) injectedTabData: InjectedTabData,\n                          protected route?: ActivatedRoute) {\n        super(_taskViewService, _log, injectedTabData, route);\n    }\n\n    public loadNextPage(): void {\n        if (!this.viewport) {\n            return;\n        }\n        this._taskViewService.nextPage(this.viewport.getRenderedRange(), this.viewport.getDataLength());\n    }\n}\n","import {Component, Inject, Input, Optional} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {tap} from 'rxjs/operators';\nimport {ActivatedRoute} from '@angular/router';\nimport {AbstractDefaultTaskListComponent} from '../default-task-panel-list/abstract-default-task-list.component';\nimport {TaskPanelData} from '../task-panel-data/task-panel-data';\nimport {TaskViewService} from '../../../view/task-view/service/task-view.service';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {NAE_TAB_DATA} from '../../../tabs/tab-data-injection-token/tab-data-injection-token';\nimport {InjectedTabData} from '../../../tabs/interfaces';\n\n@Component({\n    selector: 'ncc-abstract-task-list-pagination-component',\n    template: ''\n})\nexport abstract class AbstractTaskListPaginationComponent extends AbstractDefaultTaskListComponent {\n\n    public length: number;\n    public pageSize = 20;\n    public pageIndex = 0;\n    public pageSizeOptions: Array<number> = [10, 20, 50, 100];\n\n    @Input() public disabled: boolean;\n    @Input()\n    set tasks$(tasks: Observable<Array<TaskPanelData>>) {\n        this._tasks$ = tasks.pipe((tap(() => {\n            this.length = this._taskViewService.pagination.totalElements;\n            this.pageIndex = this._taskViewService.pagination.number;\n        })));\n    }\n\n    get tasks$(): Observable<Array<TaskPanelData>> {\n        return this._tasks$;\n    }\n\n    constructor(protected _taskViewService: TaskViewService,\n                protected _log: LoggerService,\n                @Optional() @Inject(NAE_TAB_DATA) injectedTabData: InjectedTabData,\n                protected route?: ActivatedRoute) {\n        super(_taskViewService, _log, injectedTabData, route);\n    }\n\n    public onPageChanged(e) {\n        this.pageIndex = e.pageIndex;\n        this.pageSize = e.pageSize;\n        this._taskViewService.nextPagePagination(this.pageSize, this.pageIndex);\n    }\n}\n","export enum WorkflowMetaField {\n    INITIALS = 'initials',\n    NET_ID = 'netId',\n    TITLE = 'title',\n    VERSION = 'version',\n    AUTHOR = 'author',\n    CREATION_DATE = 'creationDate',\n}\n","import {InjectionToken} from '@angular/core';\nimport {PetriNetRequestBody} from '../../../resources/interface/petri-net-request-body';\n\n/**\n * An InjectionToken that can be used to set the process filter in workflow view\n */\nexport const NAE_WORKFLOW_SERVICE_FILTER = new InjectionToken<PetriNetRequestBody>('NaeWorkflowServiceFilter');\n\n/**\n * An InjectionToken that can be used to enable/disable process delete confirmation dialog\n */\nexport const NAE_WORKFLOW_SERVICE_CONFIRM_DELETE = new InjectionToken<boolean>('NaeWorkflowServiceConfirmDelete');\n","import {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {AbstractSortableViewComponent} from '../abstract/sortable-view';\nimport {PetriNetResourceService} from '../../resources/engine-endpoint/petri-net-resource.service';\nimport {BehaviorSubject, Observable, of} from 'rxjs';\nimport {Net} from '../../process/net';\nimport {catchError, concatMap, map, mergeMap, scan, tap} from 'rxjs/operators';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {PetriNetReference} from '../../resources/interface/petri-net-reference';\nimport {HttpParams} from '@angular/common/http';\nimport {Pagination} from '../../resources/interface/pagination';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {Page} from '../../resources/interface/page';\nimport {ListRange} from '@angular/cdk/collections';\nimport {hasContent} from '../../utility/pagination/page-has-content';\nimport {PetriNetRequestBody} from '../../resources/interface/petri-net-request-body';\nimport {\n    NAE_WORKFLOW_SERVICE_CONFIRM_DELETE,\n    NAE_WORKFLOW_SERVICE_FILTER\n} from './models/injection-token-workflow-service';\nimport {DialogService} from '../../dialog/services/dialog.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {arrayToObservable} from '../../utility/array-to-observable';\nimport {SearchIndexResolverService} from '../../search/search-keyword-resolver-service/search-index-resolver.service';\nimport {PaginationParams} from '../../utility/pagination/pagination-params';\n\n\n@Injectable()\nexport class WorkflowViewService extends AbstractSortableViewComponent implements OnDestroy {\n\n    // TODO 19.10.2020 - Add support for requests with context (filter), same as Case- and TaskViewServices\n    protected _loading$: LoadingEmitter;\n    protected _workflows$: Observable<Array<Net>>;\n    protected _clear: boolean;\n    protected _nextPage$: BehaviorSubject<Pagination>;\n    protected _endOfData: boolean;\n    protected _pagination: Pagination;\n    protected _baseFilter: PetriNetRequestBody;\n    protected _showDeleteConfirmationDialog: boolean;\n\n    constructor(protected _petriNetResource: PetriNetResourceService,\n                protected _log: LoggerService,\n                protected _dialogService: DialogService,\n                protected _snackBarService: SnackBarService,\n                protected _translate: TranslateService,\n                resolver: SearchIndexResolverService,\n                @Optional() @Inject(NAE_WORKFLOW_SERVICE_FILTER) injectedBaseFilter: PetriNetRequestBody,\n                @Optional() @Inject(NAE_WORKFLOW_SERVICE_CONFIRM_DELETE) confirmDelete: boolean) {\n        super(resolver);\n        this._loading$ = new LoadingEmitter();\n        this._clear = false;\n        this._endOfData = false;\n        this._pagination = {\n            size: 25,\n            totalElements: undefined,\n            totalPages: undefined,\n            number: -1\n        };\n        this._nextPage$ = new BehaviorSubject<Pagination>(\n            Object.assign({}, this._pagination, {number: 0})\n        );\n\n        this._baseFilter = injectedBaseFilter !== null ? injectedBaseFilter : {};\n        this._showDeleteConfirmationDialog = confirmDelete === null || confirmDelete;\n\n        const workflowsMap = this._nextPage$.pipe(\n            mergeMap(p => this.loadPage(p)),\n            map(petriNets => {\n                if (this._clear) {\n                    // we set an empty value to the virtual scroll and then replace it by the real value forcing it to redraw its content\n                    const results = [{content: [], stopLoading: false}, {content: petriNets, stopLoading: true}];\n                    return arrayToObservable(results);\n                } else {\n                    return of({content: petriNets, stopLoading: true});\n                }\n            }),\n            concatMap(o => o),\n            map(o => {\n                if (o.stopLoading) {\n                    this._loading$.off();\n                }\n                return o.content;\n            }),\n            map(petriNets => {\n                return petriNets.reduce((acc, cur) => {\n                    return {...acc, [cur.stringId]: cur};\n                }, {});\n            }),\n            scan((acc, petriNetsMap) => {\n                if (this._clear) {\n                    this._clear = false;\n                    return {...petriNetsMap};\n                }\n                return {...acc, ...petriNetsMap};\n            }, {})\n        );\n\n        this._workflows$ = workflowsMap.pipe(\n            map(v => Object.values(v))\n        );\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this._loading$.complete();\n        this._nextPage$.complete();\n    }\n\n    public get loading(): boolean {\n        return this._loading$.isActive;\n    }\n\n    public get loading$(): Observable<boolean> {\n        return this._loading$.asObservable();\n    }\n\n    public get workflows$(): Observable<Array<Net>> {\n        return this._workflows$;\n    }\n\n    public loadPage(pageRequest: Pagination): Observable<Array<Net>> {\n        if (pageRequest.number < 0) {\n            return of([]);\n        }\n        let params: HttpParams = new HttpParams();\n        params = this.addSortParams(params);\n        params = this.addPageParams(params, pageRequest);\n        this._loading$.on();\n\n        return this._petriNetResource.searchPetriNets(this._baseFilter, params).pipe(\n            catchError(err => {\n                this._log.error('Loading Petri nets has failed!', err);\n                return of({content: [], pagination: {...this._pagination}});\n            }),\n            tap(res => {\n                Object.assign(this._pagination, res.pagination);\n            }),\n            tap(res => {\n                this._endOfData = !hasContent(res)\n                    || res.pagination.number === res.pagination.totalPages - 1;\n            }),\n            map((netsPage: Page<PetriNetReference>) => {\n                if (hasContent(netsPage)) {\n                    const array: Array<Net> = [];\n                    netsPage.content.forEach(net => {\n                        array.push(new Net(net));\n                    });\n                    return array;\n                }\n                return [];\n            })\n        );\n    }\n\n    public nextPage(renderedRange: ListRange, totalLoaded: number, pagination?: Pagination) {\n        if (this._endOfData) {\n            return;\n        }\n\n        if (renderedRange.end === totalLoaded) {\n            let p = pagination;\n            if (p === undefined) {\n                p = Object.assign({}, this._pagination);\n                p.number += 1;\n            }\n            this._nextPage$.next(p);\n        }\n    }\n\n    public reload(): void {\n        if (!this._workflows$ || !this._pagination) {\n            return;\n        }\n\n        this._endOfData = false;\n        this._clear = true;\n        const p = Object.assign({}, this._pagination);\n        p.number = 0;\n        const range = {\n            start: -1,\n            end: 0\n        };\n        this.nextPage(range, 0, p);\n    }\n\n    /**\n     * Opens a dialog (if configured) and then asks the service to delete the selected workflow.\n     * @param workflow the workflow that should be deleted\n     */\n    public deleteWorkflow(workflow: Net): void {\n        if (this._showDeleteConfirmationDialog) {\n            const confirmationText = this._translate.instant('workflow.delete').toUpperCase();\n\n            this._dialogService.openPromptDialog(\n                this._translate.instant('workflow.dialog.header', {name: workflow.title, version: workflow.version}),\n                this._translate.instant('workflow.dialog.content'),\n                this._translate.instant('workflow.dialog.typeToConfirm', {delete: confirmationText}))\n                .afterClosed().subscribe(result => {\n                if (result !== undefined && result.prompt === confirmationText) {\n                    this._deleteWorkflow(workflow);\n                } else {\n                    this._snackBarService.openGenericSnackBar(this._translate.instant('workflow.snackBar.deleteCanceled'), 'info');\n                }\n            });\n        } else {\n            this._deleteWorkflow(workflow);\n        }\n    }\n\n    /**\n     * Sends the workflow delete to backend and processes the result.\n     * @param workflow the workflow that should be deleted\n     */\n    protected _deleteWorkflow(workflow: Net): void {\n        this._petriNetResource.deletePetriNet(workflow.stringId).subscribe(response => {\n                this._snackBarService.openSuccessSnackBar(this._translate.instant('workflow.snackBar.deleteInProgress'));\n                this._log.info('Process delete success. Server response: ' + response.success);\n                this.reload();\n            },\n            error => {\n                this._snackBarService.openErrorSnackBar(this._translate.instant('workflow.snackBar.deleteError'));\n                this._log.error('Process delete failed. Server response: ' + error);\n            }\n        );\n    }\n\n    protected getMetaFieldSortId(): string {\n        return this._lastHeaderSearchState.fieldIdentifier;\n    }\n\n    protected getDefaultSortParam(): string {\n        // TODO 7.4.2020 - workflow sorting and searching\n        return '';\n    }\n\n    protected addPageParams(params: HttpParams, pagination: Pagination): HttpParams {\n        params = params.set(PaginationParams.PAGE_SIZE, `${pagination.size}`);\n        params = params.set(PaginationParams.PAGE_NUMBER, `${pagination.number}`);\n        return params;\n    }\n\n}\n","import {Component, Input, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {MatExpansionPanel} from '@angular/material/expansion';\nimport {AbstractPanelWithHeaderBindingComponent} from '../abstract/panel-with-header-binding';\nimport {HeaderColumn} from '../../header/models/header-column';\nimport {Observable, Subscription} from 'rxjs';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {toMoment} from '../../resources/types/nae-date-type';\nimport {DATE_TIME_FORMAT_STRING} from '../../moment/time-formats';\nimport {TextField} from '../../data-fields/text-field/models/text-field';\nimport {DateTimeField} from '../../data-fields/date-time-field/models/date-time-field';\nimport {Behavior} from '../../data-fields/models/behavior';\nimport {Net} from '../../process/net';\nimport {TranslateService, TranslationChangeEvent} from '@ngx-translate/core';\nimport {WorkflowMetaField} from '../../header/workflow-header/workflow-meta-enum';\nimport {WorkflowViewService} from '../../view/workflow-view/workflow-view.service';\nimport {FeaturedValue} from '../abstract/featured-value';\nimport {PetriNetResourceService} from '../../resources/engine-endpoint/petri-net-resource.service';\nimport {ProgressType, ProviderProgress} from '../../resources/resource-provider.service';\nimport {OverflowService} from '../../header/services/overflow.service';\n\n\nexport interface WorkflowPanelContent {\n    netIdentifier: TextField;\n    title: TextField;\n    version: TextField;\n    author: TextField;\n    uploaded: DateTimeField;\n}\n\n@Component({\n    selector: 'ncc-abstract-workflow-panel',\n    template: ''\n})\nexport abstract class AbstractWorkflowPanelComponent extends AbstractPanelWithHeaderBindingComponent implements OnInit, OnDestroy {\n\n    @Input() public workflow: Net;\n    @Input() public selectedHeaders$: Observable<Array<HeaderColumn>>;\n    @Input() responsiveBody = true;\n    @Input() showDeleteMenu = false;\n    @Input() public first: boolean;\n    @Input() public last: boolean;\n    public panelRef: MatExpansionPanel;\n    public panelContent: WorkflowPanelContent;\n    private _subscription: Subscription;\n    private readonly TRANSLATION_NET = 'panel.workflow.net';\n    private readonly TRANSLATION_TITLE = 'panel.workflow.title';\n    private readonly TRANSLATION_VERSION = 'panel.workflow.version';\n    private readonly TRANSLATION_AUTHOR = 'panel.workflow.author';\n    private readonly TRANSLATION_UPLOAD = 'panel.workflow.upload';\n\n    protected dataFieldsBehaviour: Behavior = {visible: true, editable: false};\n\n    protected constructor(protected _log: LoggerService,\n                          protected _translate: TranslateService,\n                          protected _workflowService: WorkflowViewService,\n                          protected _petriNetResource: PetriNetResourceService,\n                          @Optional() protected _overflowService: OverflowService) {\n        super(_overflowService);\n\n        this._subscription = _translate.onLangChange.subscribe((event: TranslationChangeEvent) => {\n            this.panelContent.netIdentifier.title = this._translate.instant(this.TRANSLATION_NET);\n            this.panelContent.title.title = this._translate.instant(this.TRANSLATION_TITLE);\n            this.panelContent.version.title = this._translate.instant(this.TRANSLATION_VERSION);\n            this.panelContent.author.title = this._translate.instant(this.TRANSLATION_AUTHOR);\n            this.panelContent.uploaded.title = this._translate.instant(this.TRANSLATION_UPLOAD);\n        });\n    }\n\n    ngOnInit(): void {\n        super.ngOnInit();\n        this.panelContent = this.createPanelContent();\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this._subscription.unsubscribe();\n    }\n\n    public show(event: MouseEvent): boolean {\n        event.stopPropagation();\n        return false;\n    }\n\n    public collapse() {\n    }\n\n    public setPanelRef(panelRef: MatExpansionPanel) {\n        this.panelRef = panelRef;\n    }\n\n    /**\n     * Handles the logic that should be executed when the \"delete workflow\" button is clicked.\n     *\n     * Calls the appropriate method in the {@link WorkflowViewService}.\n     */\n    public deleteWorkflow(): void {\n        this._workflowService.deleteWorkflow(this.workflow);\n    }\n\n    /**\n     * Handles the logic that should be executed when the \"download workflow\" button is clicked.\n     *\n     * Calls the appropriate method in the {@link WorkflowViewService}.\n     */\n    public downloadNetFile() {\n        this._petriNetResource.getNetFile(this.workflow.stringId).subscribe(response => {\n            if (!(response as ProviderProgress).type || (response as ProviderProgress).type !== ProgressType.DOWNLOAD) {\n                this._log.debug(`File ${this.workflow.identifier} was successfully downloaded`);\n                this.downloadViaAnchor(response as Blob);\n            }\n        }, error => {\n            this._log.error(`Downloading file ${this.workflow.identifier} has failed!`, error);\n        });\n    }\n\n    public downloadViaAnchor(blob: Blob): void {\n        const a = document.createElement('a');\n        document.body.appendChild(a);\n        a.setAttribute('style', 'display: none');\n        blob = new Blob([blob], {type: blob.type});\n\n        const url = window.URL.createObjectURL(blob);\n        a.href = url;\n        a.download = this.workflow.identifier;\n        a.click();\n        window.URL.revokeObjectURL(url);\n        document.body.removeChild(a);\n    }\n\n    /**\n     * Populate data fields group for every petri net model\n     */\n    protected createPanelContent(): WorkflowPanelContent {\n        return {\n            netIdentifier: new TextField('', this._translate.instant(this.TRANSLATION_NET),\n                this.workflow.identifier, this.dataFieldsBehaviour),\n            title: new TextField('', this._translate.instant(this.TRANSLATION_TITLE),\n                this.workflow.title, this.dataFieldsBehaviour),\n            version: new TextField('', this._translate.instant(this.TRANSLATION_VERSION),\n                this.workflow.version, this.dataFieldsBehaviour),\n            author: new TextField('', this._translate.instant(this.TRANSLATION_AUTHOR),\n                this.workflow.author.fullName, this.dataFieldsBehaviour),\n            uploaded: new DateTimeField('', this._translate.instant(this.TRANSLATION_UPLOAD),\n                toMoment(this.workflow.createdDate), this.dataFieldsBehaviour)\n        };\n    }\n\n    protected resolveFeaturedFieldsValues(): void {\n        if (!this._lastSelectedHeaders) {\n            return;\n        }\n\n        this.featuredFieldsValues.splice(0, this.featuredFieldsValues.length);\n        this._lastSelectedHeaders.forEach(header => {\n            this.featuredFieldsValues.push(this.getFeaturedValue(header));\n        });\n    }\n\n    protected getFeaturedMetaValue(selectedHeader: HeaderColumn): FeaturedValue {\n        switch (selectedHeader.fieldIdentifier) {\n            case WorkflowMetaField.INITIALS:\n                return {value: this.workflow.initials, icon: '', type: 'meta'};\n            case WorkflowMetaField.TITLE:\n                return {value: this.workflow.title, icon: '', type: 'meta'};\n            case WorkflowMetaField.NET_ID:\n                return {value: this.workflow.stringId, icon: '', type: 'meta'};\n            case WorkflowMetaField.VERSION:\n                return {value: this.workflow.version, icon: '', type: 'meta'};\n            case WorkflowMetaField.AUTHOR:\n                return {value: this.workflow.author.fullName, icon: 'account_circle', type: 'meta'};\n            case WorkflowMetaField.CREATION_DATE:\n                return {value: toMoment(this.workflow.createdDate).format(DATE_TIME_FORMAT_STRING), icon: 'event', type: 'meta'};\n        }\n    }\n\n    protected getFeaturedImmediateValue(selectedHeader: HeaderColumn): FeaturedValue {\n        this._log.warn('Immediate data in workflow panel headers are currently not supported');\n        return {value: '', icon: '', type: ''};\n    }\n\n}\n","import {InjectionToken} from '@angular/core';\nimport {FilterMetadataAllowedNets} from '../../../search/models/persistance/filter-metadata-allowed-nets';\n\nexport interface FilterTextConfiguration {\n    metadata: FilterMetadataAllowedNets;\n    ellipsis: boolean;\n}\n\n/**\n * Provides necessary data for the display of immediate filter fields on panels\n */\nexport const NAE_FILTER_TEXT = new InjectionToken<FilterTextConfiguration>('NaeFilterText');\n","import {Component, Injector, Input, OnInit, StaticProvider} from '@angular/core';\nimport {FilterMetadataAllowedNets} from '../../search/models/persistance/filter-metadata-allowed-nets';\nimport {ComponentPortal, ComponentType} from '@angular/cdk/portal';\nimport {AbstractImmediateFilterTextContentComponent} from './abstract-immediate-filter-text-content.component';\nimport {NAE_FILTER_TEXT} from './model/filter-text-injection-token';\n\n@Component({\n    selector: 'ncc-abstract-immediate-filter-text',\n    template: ''\n})\nexport abstract class AbstractImmediateFilterTextComponent implements OnInit {\n\n    @Input() public ellipsis: boolean;\n    @Input() public filterMetadata: FilterMetadataAllowedNets;\n    public portal: ComponentPortal<AbstractImmediateFilterTextContentComponent>;\n    public initialized: boolean;\n\n    protected constructor(protected _parenInjector: Injector) {\n    }\n\n    ngOnInit(): void {\n        const providers: Array<StaticProvider> = [\n            {provide: NAE_FILTER_TEXT, useValue: {metadata: this.filterMetadata, ellipsis: this.ellipsis}}\n        ];\n        const injector = Injector.create({providers, parent: this._parenInjector});\n        this.portal = new ComponentPortal(this.getFilterTextContentComponent(), null, injector);\n        this.initialized = true;\n    }\n\n    protected abstract getFilterTextContentComponent(): ComponentType<AbstractImmediateFilterTextContentComponent>;\n\n}\n","import {Component, Inject, OnDestroy} from '@angular/core';\nimport {FilterTextConfiguration, NAE_FILTER_TEXT} from './model/filter-text-injection-token';\nimport {SearchService} from '../../search/search-service/search.service';\nimport {Subscription} from 'rxjs';\nimport {filter, take} from 'rxjs/operators';\nimport {FilterTextSegment} from '../../search/models/persistance/filter-text-segment';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n    selector: 'ncc-abstract-immediate-filter-text-content',\n    template: ''\n})\nexport abstract class AbstractImmediateFilterTextContentComponent implements OnDestroy {\n\n    private readonly _searchServiceSub: Subscription;\n\n    public segments: Array<FilterTextSegment> = [];\n\n    public tooltip: string;\n\n    public get ellipsis(): boolean {\n        return this._configuration.ellipsis;\n    }\n\n    protected constructor(@Inject(NAE_FILTER_TEXT) protected _configuration: FilterTextConfiguration,\n                          protected _textSearchService: SearchService,\n                          protected _translateService: TranslateService) {\n        this._textSearchService.loadFromMetadata(this._configuration.metadata.filterMetadata);\n        this._searchServiceSub = this._textSearchService.loadingFromMetadata$.pipe(filter(loading => !loading), take(1)).subscribe(() => {\n            this.segments = this._textSearchService.createFilterTextSegments();\n            this.tooltip = this.segments.map(segment => {\n                const translation = this._translateService.instant(segment.segment);\n                if (segment.uppercase) {\n                    return translation.toUpperCase();\n                }\n                return translation;\n            }).join(' ');\n        });\n    }\n\n    ngOnDestroy(): void {\n        if (this._searchServiceSub && !this._searchServiceSub.closed) {\n            this._searchServiceSub.unsubscribe();\n        }\n    }\n\n}\n","import {Component, Input} from '@angular/core';\nimport { FeaturedValue } from '../abstract/featured-value';\n\n@Component({\n    selector: 'ncc-abstract-panel-item-component',\n    template: ''\n})\nexport abstract class AbstractPanelItemComponent {\n\n    @Input() leadingIcon: string;\n    @Input() leadingIconEnabled: boolean;\n    @Input() featuredValue: FeaturedValue;\n    @Input() textEllipsis = false;\n\n    constructor() {\n\n    }\n}\n","import { Component, EventEmitter, Inject, Input, OnDestroy, Optional, Output, TemplateRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { TaskPanelData } from '../task-panel-list/task-panel-data/task-panel-data';\nimport { MatExpansionPanel } from '@angular/material/expansion';\nimport { HeaderColumn } from '../../header/models/header-column';\nimport { TaskEventNotification } from '../../task-content/model/task-event-notification';\nimport { LoggerService } from '../../logger/services/logger.service';\nimport { NAE_TAB_DATA } from '../../tabs/tab-data-injection-token/tab-data-injection-token';\nimport { InjectedTabData } from '../../tabs/interfaces';\nimport { ActivatedRoute } from '@angular/router';\n\n\n@Component({\n    selector: 'ncc-abstract-single-task',\n    template: ''\n})\nexport abstract class AbstractSingleTaskComponent implements OnDestroy {\n\n    protected _taskPanelRef: MatExpansionPanel;\n    @Input() task$: Observable<TaskPanelData>;\n    @Input() loading$: Observable<boolean>;\n    @Input() selectedHeaders$: Observable<Array<HeaderColumn>>;\n    @Input() responsiveBody = true;\n    @Input() forceLoadDataOnOpen = false;\n    @Input() textEllipsis = false;\n    @Input() preventCollapse = true;\n    @Input() hidePanelHeader = true;\n    @Input() hideActionRow = true;\n    @Input() noTaskSection: TemplateRef<any>;\n    @Input() pageHeader: TemplateRef<any>;\n    @Input() pageFooter: TemplateRef<any>;\n    @Input() showPageHeader: boolean = true;\n    @Input() showPageFooter: boolean = true;\n    @Input() headerTitle: string;\n    @Input() footerText: string;\n    @Input() actionButtonTemplates: Array<TemplateRef<any>>;\n    @Input() actionRowJustifyContent: 'space-between' | 'flex-start' | 'flex-end' | 'center' | 'space-around' |\n        'initial' | 'start' | 'end' | 'left' | 'right' | 'revert' | 'inherit' | 'unset'\n    @Output() taskEvent: EventEmitter<TaskEventNotification>;\n\n    constructor(protected _log: LoggerService,\n                protected _route: ActivatedRoute,\n                @Optional() @Inject(NAE_TAB_DATA) _injectedTabData: InjectedTabData) {\n        this.taskEvent = new EventEmitter<TaskEventNotification>();\n    }\n\n    ngOnDestroy(): void {\n        this.taskEvent.complete();\n    }\n\n    public setPanelRef(panelRef: MatExpansionPanel) {\n        this._taskPanelRef = panelRef;\n    }\n\n    public trackBy(_idx: number, item: TaskPanelData): any {\n        return item.task.stringId;\n    }\n\n    /**\n     * Emits an event into this component's @Output attribute\n     * @param event the event that will be emitted\n     */\n    public emitTaskEvent(event: TaskEventNotification) {\n        this.taskEvent.emit(event);\n    }\n}\n","/* COMPONENTS */\nexport * from './abstract-panel.component';\nexport * from './case-panel/abstract-case-panel.component';\nexport * from './task-panel/abstract-task-panel.component';\nexport * from './task-panel-list/abstract-task-list.component';\nexport * from './task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component';\nexport * from './workflow-panel/abstract-workflow-panel.component';\nexport * from './abstract/tabbed-virtual-scroll.component';\nexport * from './immediate/abstract-immediate-filter-text.component';\nexport * from './immediate/abstract-immediate-filter-text-content.component';\nexport * from './panel-item/abstract-panel-item.component';\nexport * from './task-panel-single/abstract-single-task.component';\n\n/* DATA */\nexport * from './task-panel-list/task-panel-data/task-panel-data';\nexport * from './task-panel/models/disable-functions';\nexport * from './abstract/featured-value';\nexport * from './immediate/model/filter-text-injection-token';\nexport * from './task-panel/models/task-panel-context';\n\n/* ENUM */\nexport * from './configuration/config-params';\n","/* SERVICES */\nexport * from './configuration.service';\n","import {Component, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {FormSubmitEvent, HasForm} from '../has-form';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\n\n@Component({\n    selector: 'ncc-abstract-email-submission-form',\n    template: ''\n})\nexport abstract class AbstractEmailSubmissionFormComponent implements HasForm, OnDestroy {\n\n    public rootFormGroup: FormGroup;\n\n    @Input() public displayLegalNotice = true;\n    public loading = new LoadingEmitter();\n\n    @Output() public formSubmit: EventEmitter<FormSubmitEvent>;\n    @Output() public goBackButton: EventEmitter<void>;\n\n    protected constructor(formBuilder: FormBuilder) {\n        this.rootFormGroup = formBuilder.group({\n            email: ['', Validators.email]\n        });\n        this.formSubmit = new EventEmitter<FormSubmitEvent>();\n        this.goBackButton = new EventEmitter<void>();\n    }\n\n    ngOnDestroy(): void {\n        this.formSubmit.complete();\n        this.goBackButton.complete();\n        this.loading.complete();\n    }\n\n    public emitGoBack() {\n        this.goBackButton.emit();\n    }\n\n    public onSubmit() {\n        if (!this.rootFormGroup.valid) {\n            return;\n        }\n        this.formSubmit.emit({email: this.rootFormGroup.controls['email'].value, loading: this.loading});\n    }\n}\n","import {Component, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\nimport {FormBuilder, FormGroup} from '@angular/forms';\nimport {FormSubmitEvent, HasForm} from '../has-form';\nimport {UserService} from '../../user/services/user.service';\nimport {User} from '../../user/models/user';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {take} from 'rxjs/operators';\n\n@Component({\n    selector: 'ncc-abstract-login-field',\n    template: ''\n})\nexport abstract class AbstractLoginFormComponent implements HasForm, OnDestroy {\n\n    public rootFormGroup: FormGroup;\n    public hidePassword = true;\n    public loading: LoadingEmitter;\n\n    @Input() public showSignUpButton: boolean;\n    @Input() public showForgottenPasswordButton: boolean;\n    @Output() public login: EventEmitter<User>;\n    @Output() public resetPassword: EventEmitter<void>;\n    @Output() public signUp: EventEmitter<void>;\n    @Output() public formSubmit: EventEmitter<FormSubmitEvent>;\n\n    protected constructor(formBuilder: FormBuilder, protected _userService: UserService) {\n        this.rootFormGroup = formBuilder.group({\n            login: [''],\n            password: ['']\n        });\n        this.login = new EventEmitter<User>();\n        this.resetPassword = new EventEmitter<void>();\n        this.signUp = new EventEmitter<void>();\n        this.formSubmit = new EventEmitter<FormSubmitEvent>();\n        this.loading = new LoadingEmitter();\n    }\n\n    ngOnDestroy(): void {\n        this.loading.complete();\n        this.login.complete();\n        this.resetPassword.complete();\n        this.signUp.complete();\n        this.formSubmit.complete();\n    }\n\n    onSubmit() {\n        if (!this.rootFormGroup.valid || this.loading.isActive) {\n            return;\n        }\n        const credential = {username: this.rootFormGroup.controls['login'].value, password: this.rootFormGroup.controls['password'].value};\n\n        this.loading.on();\n        this.formSubmit.emit(credential);\n        this._userService.login(credential).pipe(take(1)).subscribe((user: User) => {\n            this.login.emit(user);\n            this.loading.off();\n        });\n    }\n\n    resetEmit() {\n        this.resetPassword.emit();\n    }\n\n    signUpEmit() {\n        this.signUp.emit();\n    }\n\n    getButtonsFxLayoutAlign(): string {\n        if (this.showSignUpButton || this.showForgottenPasswordButton) {\n            return 'space-between';\n        }\n        return 'end';\n    }\n}\n","import {AbstractControl} from '@angular/forms';\n\n/**\n * Validator to check that passwords are the same\n */\nexport function passwordValidator(control: AbstractControl): { [key: string]: boolean } | null {\n    const password = control.get('password');\n    const confirmPassword = control.get('confirmPassword');\n    if (!password || !confirmPassword) {\n        return null;\n    }\n    if (password.pristine || confirmPassword.pristine) {\n        return null;\n    }\n    if (password && confirmPassword && password.value !== confirmPassword.value) {\n        confirmPassword.setErrors({mismatchedPassword: true});\n        return {misMatch: true};\n    } else {\n        return null;\n    }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const NAE_MIN_PASSWORD_LENGTH = new InjectionToken<number>('naeMinPasswordLength');\n\nexport const NAE_DEFAULT_MIN_PASSWORD_LENGTH = 8\n","import {Component, EventEmitter, Inject, Input, OnDestroy, Optional, Output} from '@angular/core';\nimport {FormSubmitEvent, HasForm} from '../has-form';\nimport {FormGroup} from '@angular/forms';\nimport {MessageResource} from '../../resources/interface/message-resource';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {SignUpService} from '../../authentication/sign-up/services/sign-up.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {UserRegistrationRequest} from '../../authentication/sign-up/models/user-registration-request';\nimport {Observable} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {take} from 'rxjs/operators';\nimport {NAE_DEFAULT_MIN_PASSWORD_LENGTH, NAE_MIN_PASSWORD_LENGTH} from \"../min-password-length-token\";\n\n/**\n * Holds the logic that is shared between `RegistrationFormComponent` and `ForgottenPasswordFormComponent`.\n */\n@Component({\n    selector: 'ncc-abstract-registration',\n    template: ''\n})\nexport abstract class AbstractRegistrationComponent implements HasForm, OnDestroy {\n\n    public rootFormGroup: FormGroup;\n    public hidePassword: boolean;\n    public hideRepeatPassword: boolean;\n\n    @Output() public formSubmit: EventEmitter<FormSubmitEvent>;\n    @Output() public register: EventEmitter<MessageResource>;\n    /**\n     * Emits whenever the provided token gets resolved as invalid\n     */\n    @Output() public invalidToken: EventEmitter<void>;\n\n    private _token: string;\n    private _tokenVerified: boolean;\n    public loadingToken: LoadingEmitter;\n    public loadingSubmit: LoadingEmitter;\n    public userEmail: string;\n\n    protected constructor(protected _signupService: SignUpService,\n                          protected _log: LoggerService,\n                          protected _translate: TranslateService,\n                          @Optional() @Inject(NAE_MIN_PASSWORD_LENGTH) protected minPasswordLength: number | undefined) {\n        this.minPasswordLength = minPasswordLength ?? NAE_DEFAULT_MIN_PASSWORD_LENGTH;\n        this.hidePassword = true;\n        this.hideRepeatPassword = true;\n        this.formSubmit = new EventEmitter<FormSubmitEvent>();\n        this.register = new EventEmitter<MessageResource>();\n        this.invalidToken = new EventEmitter<void>();\n        this._tokenVerified = false;\n        this.loadingToken = new LoadingEmitter(true);\n        this.loadingSubmit = new LoadingEmitter(false);\n    }\n\n    ngOnDestroy(): void {\n        this.formSubmit.complete();\n        this.register.complete();\n        this.invalidToken.complete();\n        this.loadingToken.complete();\n        this.loadingSubmit.complete();\n    }\n\n    @Input()\n    set token(token: string) {\n        this._token = token;\n        if (!this._token) {\n            this._tokenVerified = false;\n            return;\n        }\n        this.loadingToken.on();\n        this._signupService.verify(this._token).pipe(take(1)).subscribe(message => {\n            this._log.info('Token ' + this._token + ' has been successfully verified');\n            if (message.success) {\n                this.userEmail = message.success;\n            }\n            this._tokenVerified = true;\n            this.loadingToken.off();\n        }, (error: Error) => {\n            this._log.error(error.message);\n            this._tokenVerified = false;\n            this.loadingToken.off();\n            this.invalidToken.emit();\n        });\n    }\n\n    get token(): string {\n        return this._token;\n    }\n\n    get tokenVerified(): boolean {\n        return this._tokenVerified;\n    }\n\n    public onSubmit(): void {\n        if (!this.rootFormGroup.valid) {\n            return;\n        }\n        const request = this.createRequestBody();\n        this.formSubmit.emit(request);\n\n        if (!this._tokenVerified) {\n            this.register.emit({error: 'Provided token ' + this._token + ' is not valid'});\n            return;\n        }\n        request.token = this._token;\n        this.loadingSubmit.on();\n        this.callRegistration(request).pipe(take(1)).subscribe(message => {\n            this.register.emit(message);\n            this.loadingSubmit.off();\n        }, error => {\n            this.register.emit({error});\n            this.loadingSubmit.off();\n        });\n    }\n\n    public isFieldValid(formControlName: string): boolean {\n        return this.rootFormGroup.get(formControlName).valid;\n    }\n\n    public getErrorMessage(formControlName: string): string {\n        const errors = this.rootFormGroup.get(formControlName).errors;\n        if (errors === null)\n            return;\n        switch (Object.keys(errors)[0]) {\n            case 'required':\n                return this._translate.instant('dataField.validations.required');\n            case 'minlength':\n                return this._translate.instant('dataField.validations.minLength', {length: this.minPasswordLength});\n            case 'mismatchedPassword':\n                return this._translate.instant('forms.register.passwordsMustMatch');\n        }\n    }\n\n    protected abstract createRequestBody(): UserRegistrationRequest;\n\n    protected abstract callRegistration(requestBody: UserRegistrationRequest): Observable<MessageResource>;\n}\n","import {FormBuilder, Validators} from '@angular/forms';\nimport {passwordValidator} from '../models/password.validator';\nimport {SignUpService} from '../../authentication/sign-up/services/sign-up.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {AbstractRegistrationComponent} from '../models/abstract-registration.component';\nimport {UserRegistrationRequest} from '../../authentication/sign-up/models/user-registration-request';\nimport {Observable} from 'rxjs';\nimport {MessageResource} from '../../resources/interface/message-resource';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Component, Inject, Input, OnDestroy, Optional} from '@angular/core';\nimport {NAE_MIN_PASSWORD_LENGTH} from \"../min-password-length-token\";\n\n/**\n * Holds the logic of the `RegistrationFormComponent`.\n */\n@Component({\n    selector: 'ncc-abstract-registration-form',\n    template: ''\n})\nexport abstract class AbstractRegistrationFormComponent extends AbstractRegistrationComponent implements OnDestroy {\n\n    @Input() public displayLegalNotice = true;\n\n    protected constructor(formBuilder: FormBuilder,\n                          signupService: SignUpService,\n                          log: LoggerService,\n                          translate: TranslateService,\n                          @Optional() @Inject(NAE_MIN_PASSWORD_LENGTH) minPasswordLength) {\n        super(signupService, log, translate, minPasswordLength);\n        this.rootFormGroup = formBuilder.group({\n            name: ['', Validators.required],\n            surname: ['', Validators.required],\n            password: ['', [Validators.required, Validators.minLength(this.minPasswordLength)]],\n            confirmPassword: ['', [Validators.required, Validators.minLength(this.minPasswordLength)]]\n        }, {validator: passwordValidator});\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n    }\n\n    protected createRequestBody(): UserRegistrationRequest {\n        return {\n            token: undefined,\n            name: this.rootFormGroup.controls['name'].value,\n            surname: this.rootFormGroup.controls['surname'].value,\n            password: this.rootFormGroup.controls['password'].value\n        };\n    }\n\n    protected callRegistration(requestBody: UserRegistrationRequest): Observable<MessageResource> {\n        return this._signupService.signup(requestBody);\n    }\n}\n","import {AbstractRegistrationComponent} from '../models/abstract-registration.component';\nimport {passwordValidator} from '../models/password.validator';\nimport {SignUpService} from '../../authentication/sign-up/services/sign-up.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {FormBuilder, Validators} from '@angular/forms';\nimport {UserRegistrationRequest} from '../../authentication/sign-up/models/user-registration-request';\nimport {Observable} from 'rxjs';\nimport {MessageResource} from '../../resources/interface/message-resource';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Component, Inject, Input, OnDestroy, Optional} from '@angular/core';\nimport {NAE_MIN_PASSWORD_LENGTH} from \"../min-password-length-token\";\n\n@Component({\n    selector: 'ncc-abstract-forgotten-password',\n    template: ''\n})\nexport abstract class AbstractForgottenPasswordComponent extends AbstractRegistrationComponent implements OnDestroy {\n\n    @Input() public displayLegalNotice = false;\n\n    protected constructor(formBuilder: FormBuilder,\n                          signupService: SignUpService,\n                          log: LoggerService,\n                          translate: TranslateService,\n                          @Optional() @Inject(NAE_MIN_PASSWORD_LENGTH) minPasswordLength) {\n        super(signupService, log, translate, minPasswordLength);\n        this.rootFormGroup = formBuilder.group({\n            password: ['', [Validators.required, Validators.minLength(this.minPasswordLength)]],\n            confirmPassword: ['', [Validators.required, Validators.minLength(this.minPasswordLength)]]\n        }, {validator: passwordValidator});\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n    }\n\n    protected createRequestBody(): UserRegistrationRequest {\n        return {\n            token: undefined,\n            name: undefined,\n            surname: undefined,\n            password: this.rootFormGroup.controls['password'].value\n        };\n    }\n\n    protected callRegistration(requestBody: UserRegistrationRequest): Observable<MessageResource> {\n        return this._signupService.recoverPassword(requestBody.token, requestBody.password);\n    }\n}\n","import {passwordValidator} from '../models/password.validator';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {MessageResource} from '../../resources/interface/message-resource';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Component, EventEmitter, Inject, OnDestroy, Optional, Output} from '@angular/core';\nimport {FormSubmitEvent, HasForm} from \"../has-form\";\nimport {LoadingEmitter} from \"../../utility/loading-emitter\";\nimport {take} from \"rxjs/operators\";\nimport {UserChangePasswordRequest} from \"../../authentication/profile/models/user-change-password-request\";\nimport {ProfileService} from \"../../authentication/profile/services/profile.service\";\nimport {UserService} from \"../../user/services/user.service\";\nimport {encodeBase64} from '../../utility/base64';\nimport {NAE_DEFAULT_MIN_PASSWORD_LENGTH, NAE_MIN_PASSWORD_LENGTH} from \"../min-password-length-token\";\n\nexport const OLD_PASSWORD = 'oldPassword';\nexport const PASSWORD = 'password';\nexport const CONFIRM_PASSWORD = 'confirmPassword';\n\n@Component({\n    selector: 'ncc-abstract-change-password',\n    template: ''\n})\nexport abstract class AbstractChangePasswordComponent implements HasForm, OnDestroy {\n\n    public rootFormGroup: FormGroup;\n    public hideOldPassword: boolean;\n\n    public hidePassword: boolean;\n    public hideRepeatPassword: boolean;\n\n    @Output() public formSubmit: EventEmitter<FormSubmitEvent>;\n    @Output() public changePassword: EventEmitter<MessageResource>;\n\n    public loadingSubmit: LoadingEmitter;\n\n    protected constructor(protected formBuilder: FormBuilder,\n                          protected profileService: ProfileService,\n                          protected user: UserService,\n                          protected _log: LoggerService,\n                          protected _translate: TranslateService,\n                          @Optional() @Inject(NAE_MIN_PASSWORD_LENGTH) protected minPasswordLength: number | undefined) {\n        this.minPasswordLength = minPasswordLength ?? NAE_DEFAULT_MIN_PASSWORD_LENGTH;\n        this.hidePassword = true;\n        this.hideOldPassword = true;\n        this.hideRepeatPassword = true;\n        this.formSubmit = new EventEmitter<FormSubmitEvent>();\n        this.changePassword = new EventEmitter<MessageResource>();\n        this.loadingSubmit = new LoadingEmitter(false);\n        this.rootFormGroup = formBuilder.group({\n            oldPassword: ['', [Validators.required, Validators.minLength(1)]],\n            password: ['', [Validators.required, Validators.minLength(this.minPasswordLength)]],\n            confirmPassword: ['', [Validators.required, Validators.minLength(this.minPasswordLength)]]\n        }, {validator: passwordValidator});\n    }\n\n\n    public isFieldValid(formControlName: string): boolean {\n        return this.rootFormGroup.get(formControlName).valid;\n    }\n\n    protected createRequestBody(): UserChangePasswordRequest {\n        return {\n            login: this.user.user.email,\n            password: encodeBase64(this.rootFormGroup.controls[OLD_PASSWORD].value),\n            newPassword: encodeBase64(this.rootFormGroup.controls[PASSWORD].value)\n        };\n    }\n\n    public getErrorMessage(formControlName: string): string {\n        const errors = this.rootFormGroup.get(formControlName).errors;\n        if (errors === null) {\n            return;\n        }\n        switch (Object.keys(errors)[0]) {\n            case 'mismatchedPassword':\n                return this._translate.instant('forms.register.passwordsMustMatch');\n            case 'minlength':\n                return this._translate.instant('dataField.validations.minLength', {length: this.minPasswordLength});\n            case 'required':\n                return this._translate.instant('dataField.validations.required');\n        }\n    }\n\n    public onSubmit(): void {\n        if (!this.rootFormGroup.valid) {\n            return;\n        }\n        const request = this.createRequestBody();\n        this.formSubmit.emit(request);\n\n        this.loadingSubmit.on();\n        this.profileService.changePassword(request).pipe(take(1)).subscribe(message => {\n            if (message.error) {\n                this.changePassword.emit({error: message.error});\n            } else {\n                this.changePassword.emit({success: message.success});\n            }\n            this.loadingSubmit.off();\n        }, error => {\n            this.changePassword.emit({error});\n            this.loadingSubmit.off();\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.formSubmit.complete();\n        this.changePassword.complete();\n        this.loadingSubmit.complete();\n    }\n\n}\n","import {Component, Input} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {LanguageService} from '../translate/language.service';\n\n@Component({\n    selector: 'ncc-abstract-toolbar',\n    template: ''\n})\nexport abstract class AbstractToolbarComponent {\n\n    @Input()\n    public loggedUser: string;\n\n    @Input()\n    public appName: string;\n\n    @Input()\n    public logoSrc: string;\n\n    @Input()\n    public logoAlt: string;\n\n    constructor(protected translate: TranslateService, protected selectLangService: LanguageService) {\n    }\n\n    setLang(lang: string): void {\n        this.selectLangService.setLanguage(lang);\n    }\n\n    activeLang(lang: string): boolean {\n        return this.translate.currentLang === lang;\n    }\n}\n","import {BehaviorSubject, ReplaySubject} from 'rxjs';\n\nexport class TabLabelStream {\n\n    public icon$?: BehaviorSubject<string | undefined>;\n\n    public text$?: ReplaySubject<string>;\n\n    constructor(icon?: string, text?: string) {\n        this.text$ = new ReplaySubject<string>(1);\n        this.icon$ = new BehaviorSubject<string>(icon);\n        if (!!text) {\n            this.text$.next(text);\n        }\n    }\n\n    public destroy(): void {\n        this.text$.complete();\n        this.icon$.complete();\n    }\n\n}\n","import {TabContent, TabLabel} from '../interfaces';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {Type} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\nimport {TabLabelStream} from './tab-label-stream';\n\n/**\n * Holds the information of tab opened in a tab view.\n *\n * See {@link TabView} for more information.\n */\nexport class OpenedTab implements TabContent {\n\n    /**\n     * See {@link TabContent#label}.\n     */\n    public label: TabLabel;\n    /**\n     * See [TabContent.canBeClosed]{@link TabContent#canBeClosed}.\n     */\n    public canBeClosed: boolean;\n    /**\n     * See [TabContent.tabContentComponent]{@link TabContent#tabContentComponent}.\n     */\n    public tabContentComponent: Type<any>;\n    /**\n     * See [TabContent.injectedObject]{@link TabContent#injectedObject}.\n     */\n    public injectedObject: object = {};\n    /**\n     * See [TabContent.order]{@link TabContent#order}.\n     */\n    public order = 0;\n    /**\n     * See [TabContent.initial]{@link TabContent#initial}.\n     */\n    public initial = false;\n    /**\n     * See [TabContent.parentUniqueId]{@link TabContent#parentUniqueId}.\n     */\n    public parentUniqueId = undefined;\n    /**\n     * Reference to the component portal that is used to display the tab content\n     */\n    public portal: ComponentPortal<any>;\n    /**\n     * Whether the tab was initialized after it's creation.\n     *\n     * See [TabGroup.initializeTab()]{@link TabView#initializeTab} for more information.\n     */\n    public isTabInitialized = false;\n    /**\n     * A stream that is injected into each tab and is used to inform that tab whenever it is selected or deselected\n     */\n    public tabSelected$: BehaviorSubject<boolean>;\n    /**\n     * A stream that is injected into each tab and is used to inform the tab about its termination\n     */\n    public tabClosed$: Subject<void>;\n\n    protected _label$: TabLabelStream;\n\n    /**\n     * @param tabContent - content of the tab\n     * @param uniqueId - unique identifier for the tab\n     */\n    constructor(tabContent: TabContent, public uniqueId: string) {\n        Object.assign(this, tabContent);\n        this.tabSelected$ = new BehaviorSubject<boolean>(false);\n        this.tabClosed$ = new Subject();\n        this._label$ = new TabLabelStream(this.label?.icon, this.label?.text)\n    }\n\n    public setIcon(icon: string) {\n        this._label$.icon$.next(icon);\n    }\n\n    public setText(text: string) {\n        this._label$.text$.next(text);\n    }\n\n    public getIcon$(): Observable<string> {\n        return this._label$.icon$.asObservable();\n    }\n\n    public getIcon(): string | undefined {\n        return this._label$.icon$.getValue();\n    }\n\n    public getText$(): Observable<string> {\n        return this._label$.text$.asObservable();\n    }\n\n    /**\n     * Closes the stream held in this object\n     */\n    public destroy(): void {\n        this.tabSelected$.complete();\n        this.tabClosed$.complete();\n        this._label$.destroy()\n    }\n}\n","import {InjectedTabData, TabContent, TabViewInterface} from '../interfaces';\nimport {OpenedTab} from './opened-tab';\nimport {Injector, StaticProvider} from '@angular/core';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {orderBy} from 'natural-orderby';\nimport {NAE_TAB_DATA} from '../tab-data-injection-token/tab-data-injection-token';\nimport {ViewService} from '../../routing/view-service/view.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {InjectedTabbedTaskViewData} from '../../view/task-view/models/injected-tabbed-task-view-data';\nimport {TaskSearchCaseQuery, TaskSearchRequestBody} from '../../filter/models/task-search-request-body';\nimport {MatTabChangeEvent} from '@angular/material/tabs';\nimport {IncrementingCounter} from '../../utility/incrementing-counter';\nimport {NAE_VIEW_ID_SEGMENT} from '../../user/models/view-id-injection-tokens';\nimport {FormControl} from '@angular/forms';\n\n/**\n * Holds the logic for tab management in {@link AbstractTabViewComponent}.\n * If you want to implement your own TabViewComponent, you might want to extend this class to hold your logic.\n */\nexport class TabView implements TabViewInterface {\n\n    public static readonly DYNAMIC_TAB_VIEW_ID_SEGMENT = 'dynamic';\n\n    /**\n     * Holds the tabs that are opened in the tab view, and allows them to be bound to HTML.\n     */\n    public openedTabs: Array<OpenedTab>;\n    /**\n     * Holds the index of the currently selected tab.\n     *\n     * Selected index initializes to `0`.\n     */\n    public selectedIndex: FormControl;\n\n    private uniqueIdCounter = new IncrementingCounter();\n    /**\n     * @ignore\n     * Holds a reference to an object that hides some public attributes and methods from tabs.\n     */\n    private tabViewInterface: TabViewInterface = {\n        currentlySelectedTab: () => this.currentlySelectedTab(),\n        openTab: (tabContent: TabContent, autoswitch = false) => this.openTab(tabContent, autoswitch),\n        switchToTabIndex: (index: number) => this.switchToTabIndex(index),\n        switchToTabUniqueId: (uniqueId: string) => this.switchToTabUniqueId(uniqueId),\n        closeTabIndex: (index: number, force = false) => this.closeTabIndex(index, force),\n        closeTabUniqueId: (uniqueId: string, force = false) => this.closeTabUniqueId(uniqueId, force)\n    };\n\n    /**\n     * @param _viewService [ViewService]{@link ViewService} reference\n     * @param _logger [Logger]{@link LoggerService} reference\n     * @param _initialTabs Tabs that should be initially opened in the tab view\n     * @param _parentInjector `Injector` instance of the [TabViewComponent]{@link AbstractTabViewComponent},\n     * to be passed onto each tab, so that the dependency injection tree is not broken\n     */\n    constructor(private _viewService: ViewService,\n                private _logger: LoggerService,\n                private _initialTabs: Array<TabContent>,\n                private _parentInjector: Injector) {\n        this._initialTabs.forEach(tab => {\n            if (tab.order === undefined) {\n                tab.order = 0;\n            }\n            tab.initial = true;\n        });\n        this.selectedIndex = new FormControl(0);\n\n        // orderBy is a stable sort\n        // Native javascript implementation has undefined stability and it depends on it's implementation (browser)\n        this.openedTabs = orderBy(this._initialTabs, v => v.order, 'asc').map(tabData =>\n            new OpenedTab(tabData, `${this.uniqueIdCounter.next()}`));\n        if (this.openedTabs.length > 0) {\n            this.openedTabs[0].tabSelected$.next(true);\n        }\n    }\n\n    /**\n     * @returns the index of the currently selected tab\n     */\n    public currentlySelectedTab(): number {\n        return this.selectedIndex.value;\n    }\n\n    /**\n     * Opens a new tab with the provided content.\n     * @param tabContent - content of the new tab\n     * @param autoswitch - whether the newly opened tab should be switched to. Defaults to `false`.\n     * @param openExisting - whether the opened tab already existing should be switched to existing one. Defaults to `true`.\n     * @returns the `tabUniqueId` of the newly opened tab\n     */\n    public openTab(tabContent: TabContent, autoswitch = false, openExisting = true): string {\n        if (tabContent.initial) {\n            this._logger.warn(`'initial' attribute is not meant to be used with new tabs and will be ignored`);\n            delete tabContent.initial;\n        }\n\n        const newTab = new OpenedTab(tabContent, `${this.uniqueIdCounter.next()}`);\n        const indexExisting = this.findIndexExistingTab(newTab);\n        if (indexExisting === -1 || !openExisting) {\n            return this.openNewTab(newTab, autoswitch);\n        } else {\n            this.setTabIndexWithNotification(indexExisting);\n            return this.openedTabs[indexExisting].uniqueId;\n        }\n    }\n\n    protected findIndexExistingTab(newTab: OpenedTab) {\n        if (!this.searchesForOneCaseId(newTab)) {\n            return -1;\n        }\n        return this.openedTabs.findIndex(existingTab =>\n            this.searchesForOneCaseId(existingTab) && this.getSearchedCaseId(existingTab) === this.getSearchedCaseId(newTab));\n    }\n\n    private searchesForOneCaseId(tab: OpenedTab): boolean {\n        return this.hasCaseFilterParamSet(tab)\n            && !Array.isArray(this.getSearchedCase(tab))\n            && !!this.getSearchedCaseId(tab);\n    }\n\n    private getSearchedCaseId(tab: OpenedTab): string {\n        return (this.getSearchedCase(tab) as TaskSearchCaseQuery).id;\n    }\n\n    private getSearchedCase(tab: OpenedTab): TaskSearchCaseQuery | Array<TaskSearchCaseQuery> {\n        return ((tab.injectedObject as InjectedTabbedTaskViewData).baseFilter.getRequestBody() as TaskSearchRequestBody).case;\n    }\n\n    private hasCaseFilterParamSet(tab: OpenedTab): boolean {\n        return this.hasBaseFilter(tab)\n            && !!(((tab.injectedObject as InjectedTabbedTaskViewData).baseFilter.getRequestBody() as TaskSearchRequestBody).case);\n    }\n\n    private hasBaseFilter(tab: OpenedTab): boolean {\n        return this.hasInjectedObject(tab) && !!((tab.injectedObject as InjectedTabbedTaskViewData).baseFilter);\n    }\n\n    private hasInjectedObject(tab: OpenedTab): boolean {\n        return !!tab.injectedObject;\n    }\n\n    /**\n     * Adds a new tab into the correct position based on its `order` property.\n     * @param newTab the tab that should be opened\n     * @param autoswitch whether the new tab should be switched to after it is created\n     * @returns the `uniqueId` of the opened tab\n     */\n    protected openNewTab(newTab: OpenedTab, autoswitch: boolean): string {\n        let index = this.openedTabs.findIndex(existingTab => existingTab.order > newTab.order);\n        if (index === -1) {\n            index = this.openedTabs.length;\n        }\n        this.openedTabs.splice(index, 0, newTab);\n\n        if (autoswitch || this.openedTabs.length === 1) {\n            this.setTabIndexWithNotification(index);\n        }\n        return newTab.uniqueId;\n    }\n\n    /**\n     * Switches to a tab with the given `index`.\n     *\n     * Throws an error if the `index` is invalid.\n     * @param index - index of the tab that should be switched to\n     */\n    public switchToTabIndex(index: number): void {\n        this.checkIndexRange(index);\n        this.setTabIndexWithNotification(index)\n    }\n\n    /**\n     * Switches to a tab with the given `uniqueId`.\n     *\n     * Throws an error if the `uniqueId` is invalid.\n     * @param uniqueId - id of the tab that should be switched to\n     */\n    public switchToTabUniqueId(uniqueId: string): void {\n        this.setTabIndexWithNotification(this.getTabIndex(uniqueId));\n    }\n\n    private setTabIndexWithNotification(index: number): void {\n        this.openedTabs[this.selectedIndex.value].tabSelected$.next(false);\n        this.selectedIndex.setValue(index);\n        this.openedTabs[this.selectedIndex.value].tabSelected$.next(true);\n    }\n\n    /**\n     * Closes the tab with the given `index`.\n     *\n     * Throws an error if the `index` is invalid.\n     *\n     * Throws an error if the tab has it's `canBeClosed` property set to `false`.\n     * @param index index of the tab that should be closed\n     * @param force when `true` closes a tab even if it's `cantBeClosed` attribute is set to `true`\n     */\n    public closeTabIndex(index: number, force = false): void {\n        this.closeTab(index, force, `Tab at index ${index} can't be closed`);\n    }\n\n    /**\n     * Closes the tab with the given `uniqueId`. Throws an error if the `uniqueId` is invalid.\n     * Throws an error if the tab has it's `canBeClosed` property set to `false`.\n     * @param uniqueId - id of the tab that should be closed\n     * @param force when `true` closes a tab even if it's `cantBeClosed` attribute is set to `true`\n     */\n    public closeTabUniqueId(uniqueId: string, force = false): void {\n        const index = this.getTabIndex(uniqueId);\n        this.closeTab(index, force, `Tab with ID ${uniqueId} can't be closed`);\n    }\n\n    /**\n     * Closes the tab at the given index.\n     *\n     * If the conditions for closing a tab are not met throws an `Error` with the given message.\n     * @param index index of the tab that should be closed\n     * @param force when `true` closes a tab even if it's `cantBeClosed` attribute is set to `true`\n     * @param error the message that should be displayed if the conditions for closing a tab are not met\n     */\n    protected closeTab(index: number, force: boolean, error: string): void {\n        this.checkIndexRange(index);\n        if (!force && !this.openedTabs[index].canBeClosed) {\n            throw new Error(error);\n        }\n        if (index === this.selectedIndex.value && this.openedTabs[index].parentUniqueId &&\n            this.openedTabs.findIndex(tab => tab.uniqueId === this.openedTabs[index].parentUniqueId) !== -1) {\n            this.switchToTabUniqueId(this.openedTabs[index].parentUniqueId);\n        }\n        if (index === this.selectedIndex.value && this.selectedIndex.value + 1 < this.openedTabs.length) {\n            this.openedTabs[index + 1].tabSelected$.next(true);\n        }\n        this.openedTabs[index].tabClosed$.next();\n        const deleted = this.openedTabs.splice(index, 1);\n        deleted[0].destroy();\n        if (index < this.selectedIndex.value) {\n            this.selectedIndex.setValue(this.selectedIndex.value - 1);\n        }\n    }\n\n    /**\n     * Initializes the tab if it wasn't initialized yet.\n     * Creates a new {@link ComponentPortal} for the tab and provides the data for the tab under the `NAE_TAB_DATA` injection token.\n     * @param index - index of the tab that should be initialized\n     */\n    public initializeTab(index: number): void {\n        this.checkIndexRange(index);\n        const tab = this.openedTabs[index];\n        if (!tab.isTabInitialized) {\n            Object.assign(tab.injectedObject, {\n                tabUniqueId: tab.uniqueId,\n                tabViewRef: Object.assign({\n                    setIcon: t => tab.setIcon(t),\n                    setText: t => tab.setText(t),\n                    getIcon$: () => tab.getIcon$(),\n                    getText$: () => tab.getText$(),\n                }, this.tabViewInterface),\n                tabSelected$: tab.tabSelected$.asObservable(),\n                tabClosed$: tab.tabClosed$.asObservable(),\n            } as InjectedTabData);\n\n            const providers: Array<StaticProvider> = [\n                {provide: NAE_TAB_DATA, useValue: tab.injectedObject}\n            ];\n            providers.push({\n                provide: NAE_VIEW_ID_SEGMENT,\n                useValue: tab.initial ? tab.uniqueId : ((tab.injectedObject as InjectedTabData)?.loadFilter?.id ?? TabView.DYNAMIC_TAB_VIEW_ID_SEGMENT)\n            });\n\n            const injector = Injector.create({providers, parent: this._parentInjector});\n\n            tab.portal = new ComponentPortal(tab.tabContentComponent, null, injector);\n            tab.isTabInitialized = true;\n        }\n    }\n\n    public tabChange(event: MatTabChangeEvent) {\n        if (event.index !== this.selectedIndex.value) {\n            let tab = this.openedTabs[this.selectedIndex.value];\n            if (tab) {\n                tab.tabSelected$.next(false);\n            }\n            tab = this.openedTabs[event.index];\n            if (tab) {\n                tab.tabSelected$.next(true);\n            }\n            this.selectedIndex.setValue(event.index);\n        }\n    }\n\n    /**\n     * Transforms a tab `uniqueId` into it's index.\n     *\n     * Throws an error if no tab with the given `uniqueId` exists.\n     * @param uniqueId - id of the tab that we want to find index for\n     * @returns index of the tab with the given id\n     */\n    private getTabIndex(uniqueId: string): number {\n        const index = this.openedTabs.findIndex(tab => tab.uniqueId === uniqueId);\n        if (index === -1) {\n            throw new Error(`No tab with ID ${uniqueId} exists`);\n        }\n        return index;\n    }\n\n    private checkIndexRange(index: number): void {\n        if (index < 0 || index >= this.openedTabs.length) {\n            throw new Error(`No tab with index ${index} exists`);\n        }\n    }\n}\n","import {Type} from '@angular/core';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {Router} from '@angular/router';\nimport {ViewEntry} from './model/view-entry';\n\n/**\n * Holds information about views in the application. Can be used to resolve view component class objects from their names.\n */\nexport abstract class ViewService {\n\n    /**\n     * @ignore\n     * Stores a mapping of component names to their classes\n     */\n    private _nameToClass: Map<string, Type<any>>;\n\n    /**\n     * @param componentClasses Class objects of view components that should be dynamically routed\n     * @param configService application's ConfigurationService\n     * @param _router the application's Router\n     * @param _logger application's logging service\n     */\n    protected constructor(componentClasses: Array<Type<any> | ViewEntry>,\n                          // TODO 29.4.2021 - remove unused class attributes\n                          configService: ConfigurationService,\n                          protected _router: Router,\n                          protected _logger: LoggerService) {\n        this._nameToClass = new Map<string, Type<any>>();\n        componentClasses.forEach(component => {\n            if (component instanceof Type) {\n                this._nameToClass.set(component.name, component);\n            } else {\n                this._nameToClass.set(component.id, component.class);\n            }\n        });\n    }\n\n    /**\n     * @param componentClassName class name of a view component\n     * @returns the Class object with the provided name or `null` if such name is not registered\n     */\n    public resolveNameToClass(componentClassName: string): Type<any> | undefined {\n        return this._nameToClass.get(componentClassName);\n    }\n}\n","import {Component, Injector, Input, OnDestroy, OnInit} from '@angular/core';\nimport {TabContent} from '../interfaces';\nimport {TabView} from '../classes/tab-view';\nimport {ViewService} from '../../routing/view-service/view.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {ReplaySubject} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\n/**\n * Component that renders a tab view.\n *\n * See {@link TabView} for the class that holds the logic for this view.\n */\n@Component({\n    selector: 'ncc-abstract-tab-view',\n    template: ''\n})\nexport abstract class AbstractTabViewComponent implements OnInit, OnDestroy {\n\n    /**\n     * Tabs that are opened initially in the view\n     */\n    @Input() public initialTabs: Array<TabContent>;\n    /**\n     * Flag if the height of the content has to stretch to fill the available window\n     */\n    @Input() public stretch: boolean;\n    public tabView: TabView;\n\n    @Input() public align = 'start';\n\n    public offset = '';\n\n    /**\n     * @ignore\n     * lambda function that is passed to the {@link AbstractTabCreationDetectorComponent}s\n     */\n    public initializeTabLambda = (index: number) => {this.tabView.initializeTab(index); };\n\n    protected constructor(protected _viewService: ViewService, protected _logger: LoggerService, protected _injector: Injector) {\n    }\n\n    ngOnInit(): void {\n        this.tabView = new TabView(this._viewService, this._logger, this.initialTabs, this._injector);\n    }\n\n    ngOnDestroy(): void {\n        this.tabView.openedTabs.forEach(tab => tab.destroy());\n    }\n\n    badgeHidden(tab: TabContent) {\n        const stream$ = new ReplaySubject<boolean>(1);\n        if (tab.label && tab.label.count) {\n            tab.label.count.pipe(take(1)).subscribe(() => {\n                stream$.next(false);\n                stream$.complete();\n            });\n        } else {\n            stream$.next(true);\n            stream$.complete();\n        }\n        return stream$;\n    }\n\n    badgeCount(tab: TabContent) {\n        const stream$ = new ReplaySubject<string>(1);\n        if (tab.label && tab.label.count) {\n            tab.label.count.pipe(take(1)).subscribe(count => {\n                stream$.next( count + '');\n                this.setOffset((count + '').length);\n                stream$.complete();\n            });\n        } else {\n            stream$.next('0');\n            stream$.complete();\n        }\n        return stream$;\n    }\n\n    private setOffset(count: number) {\n        this.offset = Array(count * 2).join('\\xa0');\n    }\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n/**\n * @ignore\n * Class that detects tab content creation and then initializes then calls the provided `initializeTab` function.\n * It is necessary if the tab content is lazy loaded, because the\n * ComponentPortal's outlet must be initialized before the Portal itself is created.\n */\n@Component({\n    selector: 'ncc-abstract-tab-creation-detector',\n    template: ''\n})\nexport abstract class AbstractTabCreationDetectorComponent implements OnInit {\n\n    /**\n     * function that should be called when the tab content is created\n     */\n    @Input() initializeTabFunction: (index: number) => void;\n    /**\n     * index of the tab that the `initializeTabFunction` should be called for\n     */\n    @Input() tabIndex: number;\n\n    ngOnInit() {\n        this.initializeTabFunction(this.tabIndex);\n    }\n\n}\n","import {InjectionToken} from '@angular/core';\n\n/**\n * Case search request page size\n */\nexport const NAE_URI_NODE_CASES_PAGE_SIZE = new InjectionToken<string>('NaeUriNodeCasesPageSize');\n","export enum GroupNavigationConstants {\n    /**\n     * Name of the component that indicates the position of the group specific navigation elements.\n     */\n    GROUP_NAVIGATION_OUTLET = 'groupNavigation',\n    /**\n     * Name of the router param that is used to provide information about the selected filter to the group navigation view component\n     */\n    GROUP_NAVIGATION_ROUTER_PARAM = 'filterCaseId',\n    /**\n     * Field id, that contains the tab name of the navigation item.\n     */\n    NAVIGATION_ENTRY_TITLE_FIELD_ID_SUFFIX = 'tab_name',\n    /**\n     * Boolean field id, that determines if the navigation defines a tab icon.\n     */\n    NAVIGATION_ENTRY_ICON_ENABLED_FIELD_ID_SUFFIX = 'use_tab_icon',\n    /**\n     * Text field id, that contains the id of the used material icon.\n     */\n    NAVIGATION_ENTRY_ICON_FIELD_ID_SUFFIX = 'tab_icon',\n\n    /**\n     * TaskRef field, that contains taskId of filter task\n     * */\n    ITEM_FIELD_ID_FILTER_TASKREF = 'current_filter_preview',\n\n    /**\n     * Text field id, that contains title of create case button\n     * */\n    ITEM_FIELD_ID_CREATE_CASE_BUTTON_TITLE = 'create_case_button_title',\n\n    /**\n     * Text field id, that contains icon name of create case button\n     * */\n    ITEM_FIELD_ID_CREATE_CASE_BUTTON_ICON = 'create_case_button_icon',\n\n    /**\n     * Boolean field, that is true if the create case button is shown in case view\n     * */\n    ITEM_FIELD_ID_SHOW_CREATE_CASE_BUTTON = \"show_create_case_button\",\n\n    /**\n     * EnumerationMap field, that contains selected search type for case view\n     * */\n    ITEM_FIELD_ID_CASE_VIEW_SEARCH_TYPE = 'case_view_search_type',\n\n    /**\n     * EnumerationMap field, that contains selected search type for task view\n     * */\n    ITEM_FIELD_ID_TASK_VIEW_SEARCH_TYPE = 'task_view_search_type',\n\n    /**\n     * Boolean field, that is true if user wants to merge base filter and custom filter\n     * */\n    ITEM_FIELD_ID_MERGE_FILTERS = 'merge_filters',\n\n    /**\n     * TaskRef field, that contains taskId of custom filter for task view\n     * */\n    ITEM_FIELD_ID_ADDITIONAL_FILTER_TASKREF = 'current_additional_filter_preview',\n\n    /**\n     * Boolean field, that is true if the user wants to see more menu for case item in case view\n     * */\n    ITEM_FIELD_ID_CASE_SHOW_MORE_MENU = 'case_show_more_menu',\n\n    /**\n     * Boolean field, that is true if no input for title in case creation is shown\n     * */\n    ITEM_FIELD_ID_CASE_TITLE_IN_CREATION = 'case_require_title_in_creation',\n\n    /**\n     * Text field, that contains banned processes in case creation as a value\n     * */\n    ITEM_FIELD_ID_CASE_BANNED_PROCESS_CREATION = 'case_banned_nets_in_creation',\n\n    /**\n     * Boolean field, that is true if the user wants to see more menu for task item in task view\n     * */\n    ITEM_FIELD_ID_TASK_SHOW_MORE_MENU = 'task_show_more_menu',\n\n    /**\n     * MultichoiceMap field, that contains selected header modes for case view as a value\n     * */\n    ITEM_FIELD_ID_CASE_HEADERS_MODE = 'case_headers_mode',\n\n    /**\n     * Boolean field, that is true if table mode can be applied in case view\n     * */\n    ITEM_FIELD_ID_CASE_ALLOW_TABLE_MODE = 'case_allow_header_table_mode',\n\n    /**\n     * EnumerationMap field, that contains selected default header mode for case view as a value\n     * */\n    ITEM_FIELD_ID_CASE_DEFAULT_HEADERS_MODE = 'case_headers_default_mode',\n\n    /**\n     * Boolean field, that is true if table mode can be applied in case view\n     * */\n    ITEM_FIELD_ID_CASE_ALLOW_EXPORT = 'case_allow_export',\n\n    /**\n     * Boolean field, that is true to make mode menu in case view visible\n     * */\n    ITEM_FIELD_ID_CASE_HEADERS_CHANGEABLE = 'case_is_header_mode_changeable',\n\n    /**\n     * MultichoiceMap field, that contains selected header modes for task view as a value\n     * */\n    ITEM_FIELD_ID_TASK_HEADERS_MODE = 'task_headers_mode',\n\n    /**\n     * Boolean field, that is true if table mode can be applied in task view\n     * */\n    ITEM_FIELD_ID_TASK_ALLOW_TABLE_MODE = 'task_allow_header_table_mode',\n\n    /**\n     * EnumerationMap field, that contains selected default header mode for task view as a value\n     * */\n    ITEM_FIELD_ID_TASK_DEFAULT_HEADERS_MODE = 'task_headers_default_mode',\n\n    /**\n     * Boolean field, that is true to make mode menu in task view visible\n     * */\n    ITEM_FIELD_ID_TASK_HEADERS_CHANGEABLE = 'task_is_header_mode_changeable',\n\n    /**\n     * Boolean field, that is true to use default headers configuration for case view\n     * */\n    ITEM_FIELD_ID_USE_CASE_DEFAULT_HEADERS = 'use_case_default_headers',\n\n    /**\n     * Text field, that contains default header metadata separated by comma for case view as a value\n     * */\n    ITEM_FIELD_ID_CASE_DEFAULT_HEADERS = 'case_default_headers',\n\n    /**\n     * Boolean field, that is true to use default headers configuration for task view\n     * */\n    ITEM_FIELD_ID_USE_TASK_DEFAULT_HEADERS = 'use_task_default_headers',\n\n    /**\n     * Text field, that contains default header metadata separated by comma for task view as a value\n     * */\n    ITEM_FIELD_ID_TASK_DEFAULT_HEADERS = 'task_default_headers',\n\n    /**\n     * MultichoiceMap field, that contains allowed roles as value\n     * */\n    ITEM_FIELD_ID_ALLOWED_ROLES = 'allowed_roles',\n\n    /**\n     * MultichoiceMap field, that contains banned roles as value\n     * */\n    ITEM_FIELD_ID_BANNED_ROLES = 'banned_roles',\n\n    /**\n     * Text field, that contains icon identifier\n     * */\n    ITEM_FIELD_ID_MENU_ICON = 'menu_icon',\n\n    /**\n     * I18n field, that contains labels of menu item\n     * */\n    ITEM_FIELD_ID_MENU_NAME = 'menu_name',\n\n    /**\n     * Text field, that contains URI\n     * */\n    ITEM_FIELD_ID_NODE_PATH = 'nodePath',\n\n    /**\n     * Boolean field, that is true if item contains child items\n     * */\n    ITEM_FIELD_ID_HAS_CHILDREN = 'hasChildren',\n\n    /**\n     * CaseField containing stringIds of child instances of process preference_item\n     * */\n    ITEM_FIELD_ID_CHILD_ITEM_IDS = 'childItemIds',\n\n}\n","import {Injectable} from '@angular/core';\nimport {AbstractResourceService} from '../../resources/abstract-endpoint/abstract-resource.service';\nimport {ResourceProvider} from '../../resources/resource-provider.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {UriNodeResource} from '../model/uri-resource';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n/**\n * Service for accessing backend resource to resolve URI objects\n * */\n@Injectable({\n    providedIn: 'root'\n})\nexport class UriResourceService extends AbstractResourceService {\n\n    constructor(provider: ResourceProvider, configService: ConfigurationService) {\n        super('petrinet', provider, configService);\n    }\n\n    public getRoot(): Observable<UriNodeResource> {\n        return this._resourceProvider.get$('uri/root', this.SERVER_URL).pipe(\n            map(r => this.changeType(r, 'uriNode')));\n    }\n\n    public getByLevel(level: number): Observable<Array<UriNodeResource>> {\n        return this._resourceProvider.get$('uri/level/' + level, this.SERVER_URL).pipe(\n            map(r => this.changeType(r, 'uriNodes')));\n    }\n\n    public getNodesByParent(parentId: string): Observable<Array<UriNodeResource>> {\n        return this._resourceProvider.get$('uri/parent/' + parentId, this.SERVER_URL).pipe(\n            map(r => this.changeType(r, 'uriNodes')));\n    }\n\n    public getNodeByUri(uriPath: string): Observable<UriNodeResource> {\n        return this._resourceProvider.get$('uri/' + btoa(uriPath), this.SERVER_URL).pipe(\n            map(r => this.changeType(r, 'uriNode')));\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {UserService} from '../../user/services/user.service';\nimport {CaseResourceService} from '../../resources/engine-endpoint/case-resource.service';\nimport {SimpleFilter} from '../../filter/models/simple-filter';\nimport {HttpParams} from '@angular/common/http';\nimport {map, switchMap} from 'rxjs/operators';\nimport {Case} from '../../resources/interface/case';\nimport {BehaviorSubject, Observable, of, Subscription} from 'rxjs';\nimport {PaginationParams} from '../../utility/pagination/pagination-params';\n\n/**\n * This service allows access to information about the groups of the currently logged user.\n *\n * If no user is logged an empty array is provided.\n *\n * If a user can be owner of at most one group, this service provides utility methods to access this group directly.\n *\n * The groups are assumed to be instances of the engine group process, this is never checked nor enforced.\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class NextGroupService implements OnDestroy {\n\n    protected _memberGroups$: BehaviorSubject<Array<Case>>;\n    protected _ownerGroups$: BehaviorSubject<Array<Case>>;\n\n    private _userSub: Subscription;\n\n    constructor(protected _userService: UserService, protected _caseResourceService: CaseResourceService) {\n        this._ownerGroups$ = new BehaviorSubject<Array<Case>>([]);\n        this._memberGroups$ = new BehaviorSubject<Array<Case>>([]);\n\n        this._userSub = this._userService.user$.pipe(\n            switchMap(user => {\n                if (!user || user.id === '') {\n                    return of([]);\n                }\n\n                const params = new HttpParams();\n                params.set(PaginationParams.PAGE_SIZE, `${(user as any).nextGroups.length}`);\n\n                return this._caseResourceService.searchCases(SimpleFilter.fromCaseQuery({stringId: (user as any).nextGroups}), params)\n                    .pipe(\n                        map(page => page.content ? page.content : []),\n                        map(groups => groups.filter(group => group.author.fullName !== 'application engine'))\n                    );\n            })\n        ).subscribe(groups => {\n            const ownerGroups = groups.filter(g => g.author.email === this._userService.user.email);\n            this._ownerGroups$.next(ownerGroups);\n            this._memberGroups$.next(groups);\n        });\n    }\n\n    ngOnDestroy(): void {\n        this._userSub.unsubscribe();\n        this._memberGroups$.complete();\n        this._ownerGroups$.complete();\n    }\n\n    /**\n     * @returns an Observable of all the groups the currently logged user is a member of\n     */\n    public get memberGroups$(): Observable<Array<Case>> {\n        return this._memberGroups$.asObservable();\n    }\n\n    /**\n     * @returns an Observable of all the groups the currently logged user is an owner of\n     */\n    public get ownerGroups$(): Observable<Array<Case>> {\n        return this._ownerGroups$.asObservable();\n    }\n\n    /**\n     * @returns an Array of all the groups the currently logged user is a member of\n     */\n    public get memberGroups(): Array<Case> {\n        return this._memberGroups$.getValue();\n    }\n\n    /**\n     * @returns an Array of all the groups the currently logged user is an owner of\n     */\n    public get ownerGroups(): Array<Case> {\n        return this._ownerGroups$.getValue();\n    }\n\n    /**\n     * @returns an Observable containing the first element of the [ownerGroups$]{@link NextGroupService#ownerGroups$} observable,\n     * or `undefined` if the contained array is empty\n     */\n    public get firstOwnerGroup$(): Observable<Case | undefined> {\n        return this._ownerGroups$.pipe(map(array => array.length > 0 ? array[0] : undefined));\n    }\n\n    /**\n     * @returns the first element of the [ownerGroups]{@link NextGroupService#ownerGroups} array, or `undefined` if the array is empty\n     */\n    public get firstOwnerGroup(): Case | undefined {\n        const ownerGroups = this.ownerGroups;\n        return ownerGroups.length > 0 ? ownerGroups[0] : undefined;\n    }\n\n    /**\n     * @deprecated in NAE 5.6.0 - use [ownerGroups]{@link NextGroupService#ownerGroups} instead\n     */\n    get groupOfUser(): Array<Case> {\n        return this.ownerGroups;\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\nimport {Case} from '../../resources/interface/case';\nimport {NextGroupService} from './next-group.service';\nimport {map} from 'rxjs/operators';\n\n/**\n * This service to the groups that are \"active\" for the logged user.\n *\n * The meaning of \"active\" can wary from application to application. And this service provides the utility to track this state.\n *\n * The active groups are assumed to be a subset of the groups the logged user is a member of,\n * but this assumption is not enforced nor checked.\n *\n * If at most one group can be active at a time, this service provides utility methods to access this group directly.\n *\n * The groups are assumed to be instances of the engine group process, this is never checked nor enforced.\n *\n * In the default implementation the initially active groups are all the groups the logged user is a member of.\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class ActiveGroupService implements OnDestroy {\n\n    protected _activeGroups$: BehaviorSubject<Array<Case>>;\n\n    private _groupSub: Subscription;\n\n    constructor(protected _groupService: NextGroupService) {\n        this._activeGroups$ = new BehaviorSubject<Array<Case>>([]);\n        this._groupSub = this._groupService.memberGroups$.subscribe(groups => {\n            this._activeGroups$.next(groups);\n        });\n    }\n\n    ngOnDestroy(): void {\n        this._groupSub.unsubscribe();\n        this._activeGroups$.complete();\n    }\n\n    /**\n     * In the default implementation this stream copies the values of the [memberGroups$]{@link NextGroupService#memberGroups$} stream\n     * of the {@link NextGroupService}. Whenever the copies stream emits, the underlying stream in this class emits the same value.\n     *\n     * @returns an Observable of all the groups that are currently active\n     */\n    get activeGroups$(): Observable<Array<Case>> {\n        return this._activeGroups$.asObservable();\n    }\n\n    get activeGroups(): Array<Case> {\n        return this._activeGroups$.getValue();\n    }\n\n    set activeGroups(activeGroups: Array<Case>) {\n        this._activeGroups$.next(activeGroups);\n    }\n\n    /**\n     * @returns an Observable containing the first element of the [activeGroups$]{@link ActiveGroupService#activeGroups$} observable,\n     * or `undefined` if the contained array is empty\n     */\n    get activeGroup$(): Observable<Case | undefined> {\n        return this.activeGroups$.pipe(map(array => array.length > 0 ? array[0] : undefined));\n    }\n\n    /**\n     * @returns the first element of the [activeGroups]{@link ActiveGroupService#activeGroups} array, or `undefined` if the array is empty\n     */\n    get activeGroup(): Case | undefined {\n        const activeGroups = this.activeGroups;\n        return activeGroups.length > 0 ? activeGroups[0] : undefined;\n    }\n\n    /**\n     * Emits a new array into the [activeGroups$]{@link ActiveGroupService#activeGroups$} observable, that contains only\n     * the provided {@link Case} object. If `undefined` is passed as argument, an empty array will be pushed into the observable.\n     * @param activeGroup the new active group case reference\n     */\n    set activeGroup(activeGroup: Case) {\n        if (activeGroup === undefined) {\n            this._activeGroups$.next([]);\n        } else {\n            this._activeGroups$.next([activeGroup]);\n        }\n    }\n}\n","import {HttpParams} from '@angular/common/http';\nimport {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {BehaviorSubject, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {CaseSearchRequestBody, PetriNetSearchRequest} from '../../filter/models/case-search-request-body';\nimport {SimpleFilter} from '../../filter/models/simple-filter';\nimport {ActiveGroupService} from '../../groups/services/active-group.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {CaseResourceService} from '../../resources/engine-endpoint/case-resource.service';\nimport {Case} from '../../resources/interface/case';\nimport {Page} from '../../resources/interface/page';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {PaginationParams} from '../../utility/pagination/pagination-params';\nimport {NAE_URI_NODE_CASES_PAGE_SIZE} from '../model/size-menu-injection-token';\nimport {UriNodeResource} from '../model/uri-resource';\nimport {UriResourceService} from './uri-resource.service';\nimport {GroupNavigationConstants} from \"../model/group-navigation-constants\";\n\n/**\n * Service for managing URIs\n * */\n@Injectable({\n    providedIn: 'root',\n})\nexport class UriService implements OnDestroy {\n\n    public static ROOT: string = 'root';\n    private _rootNode: UriNodeResource;\n    private readonly _rootLoading$: LoadingEmitter;\n    private readonly _parentLoading$: LoadingEmitter;\n    private readonly _activeNode$: BehaviorSubject<UriNodeResource>;\n\n    constructor(protected _logger: LoggerService,\n                protected _resourceService: UriResourceService,\n                protected _caseResourceService: CaseResourceService,\n                protected _activeGroupService: ActiveGroupService,\n                @Optional() @Inject(NAE_URI_NODE_CASES_PAGE_SIZE) protected pageSize: string | number) {\n        if (!pageSize) {\n            this.pageSize = 20;\n        }\n        if (typeof this.pageSize === 'string') {\n            this.pageSize = parseInt(this.pageSize);\n        }\n        this._rootLoading$ = new LoadingEmitter();\n        this._parentLoading$ = new LoadingEmitter();\n        this._activeNode$ = new BehaviorSubject<UriNodeResource>(undefined);\n        this.loadRoot();\n    }\n\n    public ngOnDestroy() {\n        this._rootLoading$.complete();\n        this._parentLoading$.complete();\n        this._activeNode$.complete();\n    }\n\n    public get root(): UriNodeResource {\n        return this._rootNode;\n    }\n\n    public get rootLoaded$(): LoadingEmitter {\n        return this._rootLoading$;\n    }\n\n    public isRoot(node: UriNodeResource): boolean {\n        return node.id === this._rootNode.id && node.uriPath === this._rootNode.uriPath;\n    }\n\n    public get activeNode(): UriNodeResource {\n        return this._activeNode$.getValue();\n    }\n\n    public set activeNode(node: UriNodeResource) {\n        if (node.parentId && !node.parent) {\n            if (node.parentId === this._rootNode.id) {\n                node.parent = this._rootNode;\n            } else {\n                this._parentLoading$.on();\n                this.getNodeByPath(this.resolveParentPath(node)).subscribe(n => {\n                    node.parent = !n ? this._rootNode : n;\n                    this._parentLoading$.off();\n                }, error => {\n                    this._logger.error(error);\n                    this._parentLoading$.off();\n                });\n            }\n        }\n        this._activeNode$.next(node);\n    }\n\n    public get activeNode$(): Observable<UriNodeResource> {\n        return this._activeNode$;\n    }\n\n    public get parentNodeLoading$(): Observable<boolean> {\n        return this._parentLoading$;\n    }\n\n\n    /**\n     * Loads root ID into variable.\n     * When root node is loaded and active node is not set yet the root node is set as active node\n     * */\n    private loadRoot(): void {\n        this._rootLoading$.on();\n        this._resourceService.getRoot().subscribe(node => {\n            if (!!node) {\n                this._rootNode = node;\n                if (!this.activeNode) {\n                    this.activeNode = this._rootNode;\n                }\n            }\n            this._rootLoading$.off();\n        }, error => {\n            this._logger.error(error);\n            this._rootLoading$.off();\n        });\n    }\n\n    public reset(): UriNodeResource {\n        this.activeNode = this._rootNode;\n        return this._rootNode;\n    }\n\n    /**\n     * Get uri node by uri path.\n     * @param path\n     */\n    public getNodeByPath(path: string): Observable<UriNodeResource> {\n        return this._resourceService.getNodeByUri(path).pipe(\n            map(n => this.capitalizeName(n)),\n        );\n    }\n\n    /**\n     * Get child nodes of provides node.\n     * @param node parent node\n     */\n    public getChildNodes(node?: UriNodeResource): Observable<Array<UriNodeResource>> {\n        if (!node) node = this.activeNode;\n        return this._resourceService.getNodesByParent(node.id).pipe(\n            map(nodes => {\n                this.capitalizeNames(nodes);\n                return nodes;\n            }),\n        );\n    }\n\n    /**\n     * Get cases under uri node\n     * @param node parent node of cases\n     * @param processIdentifiers optional search filter for process identifier to get only cases from the process\n     * @param pageNumber optional parameter for load page on the index. Default value is 0 (the first page).\n     * @param pageSize optional parameter for loaded page size. Defaults to value of injection token URI_NODE_CASES_PAGE_SIZE or to value \"20\".\n     */\n    public getCasesOfNode(node?: UriNodeResource, processIdentifiers?: Array<string>, pageNumber: number = 0, pageSize: string | number = this.pageSize): Observable<Page<Case>> {\n        if (!node) node = this.activeNode;\n        const searchBody: CaseSearchRequestBody = {\n            uriNodeId: node.id,\n        };\n        if (!!processIdentifiers) {\n            searchBody.process = processIdentifiers.map(id => ({identifier: id} as PetriNetSearchRequest));\n        }\n        // TODO active group is broken a given the wrong id\n        // if (!!this._activeGroupService.activeGroup) {\n        //     searchBody.data = {};\n        //     searchBody.data['parentId'] = this._activeGroupService.activeGroup.stringId;\n        // }\n        let httpParams = new HttpParams()\n            .set(PaginationParams.PAGE_SIZE, pageSize)\n            .set(PaginationParams.PAGE_NUMBER, pageNumber);\n        return this._caseResourceService.searchCases(SimpleFilter.fromCaseQuery(searchBody), httpParams);\n    }\n\n    /**\n     * Get menu item case by nodePath field value\n     * @param node a node, that is represented by the wanted case\n     * @return page containing 1 case\n     */\n    public getItemCaseByNodePath(node?: UriNodeResource): Observable<Page<Case>> {\n        if (!node) {\n            node = this.activeNode;\n        }\n        const searchBody: CaseSearchRequestBody = {\n            data: {\n                [GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH] : node.uriPath\n            },\n            process: {identifier: \"preference_item\"}\n        };\n\n        let httpParams = new HttpParams()\n            .set(PaginationParams.PAGE_SIZE, 1)\n            .set(PaginationParams.PAGE_NUMBER, 0);\n        return this._caseResourceService.searchCases(SimpleFilter.fromCaseQuery(searchBody), httpParams);\n    }\n\n    /**\n     * Get siblings node of the provided node\n     * @param node siblings node\n     */\n    public getSiblingsOfNode(node?: UriNodeResource): Observable<Array<UriNodeResource>> {\n        if (!node) node = this.activeNode;\n        return this._resourceService.getNodesByParent(node.parentId).pipe(\n            map(nodes => {\n                this.capitalizeNames(nodes);\n                return nodes;\n            }),\n        );\n    }\n\n    /**\n     * Get nodes on the same uri level starting from 0. Root node is no 0 level.\n     * @param level\n     * @param parent optional parameter to filter nodes with common parent\n     */\n    public getNodesOnLevel(level: number, parent?: UriNodeResource): Observable<Array<UriNodeResource>> {\n        if (level === 0) return of([this.root]);\n        return this._resourceService.getByLevel(level).pipe(\n            map(nodes => {\n                const ns = !!parent?.id ? nodes.filter(n => n.parentId === parent.id) : nodes;\n                this.capitalizeNames(ns);\n                return ns;\n            }),\n        );\n    }\n\n    public resolveParentPath(node?: UriNodeResource): string {\n        if (!node) node = this.activeNode;\n        const lastDelimiter = node.uriPath.lastIndexOf('/');\n        if (lastDelimiter === 0) return '/';\n        return node.uriPath.substring(0, lastDelimiter);\n    }\n\n    public splitNodePath(node: UriNodeResource): Array<string> {\n        return node?.uriPath.split('/').filter(s => s !== UriService.ROOT);\n    }\n\n    private capitalizeNames(nodes: Array<UriNodeResource>) {\n        if (!(nodes instanceof Array)) return;\n        nodes.forEach(n => this.capitalizeName(n));\n    }\n\n    /**\n     *  /netgrif/nae_system/processes/... => Netgrif -> Nae Systems -> Processes\n     * @param node\n     * @private\n     */\n    private capitalizeName(node: UriNodeResource) {\n        let parts = node.name.split('_');\n        parts = parts.map(p => {\n            if (p === undefined || p.length === 0) return;\n            if (p.length === 1) return p.toUpperCase();\n            return p.charAt(0).toUpperCase() + p.substring(1);\n        });\n        node.name = parts.join(' ');\n        return node;\n    }\n}\n","import {AfterViewInit, Component} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {SideMenuControl} from '../../models/side-menu-control';\nimport {PetriNetResourceService} from '../../../resources/engine-endpoint/petri-net-resource.service';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {EventOutcomeMessageResource} from '../../../resources/interface/message-resource';\nimport {ProgressType, ProviderProgress} from '../../../resources/resource-provider.service';\nimport {SnackBarService} from '../../../snack-bar/services/snack-bar.service';\nimport {FileUploadDataModel} from '../../../data-fields/file-field/models/file-field';\nimport {Subscription} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {PetriNetEventOutcome} from '../../../event/model/event-outcomes/petrinet-outcomes/petri-net-event-outcome';\nimport {UriService} from \"../../../navigation/service/uri.service\";\n\nexport class FileUploadModel {\n    stringId: string;\n    data: File | FileUploadDataModel;\n    inProgress: boolean;\n    progress: number;\n    completed: boolean;\n    error?: boolean;\n    uploaded?: boolean;\n    downloading: boolean;\n    sub?: Subscription;\n}\n\ninterface FileList {\n    [key: string]: FileUploadModel;\n}\n\n@Component({\n    selector: 'ncc-abstract-import-net',\n    template: ''\n})\nexport abstract class AbstractImportNetComponent implements AfterViewInit {\n\n    public files: FileList = {};\n    public releaseTypes: Array<string> = ['Major', 'Minor', 'Patch'];\n    public releaseTypeControl = new FormControl(this.releaseTypes[0]);\n\n    protected _response: PetriNetEventOutcome = undefined;\n    protected _fileInput: HTMLInputElement;\n\n    constructor(protected _sideMenuControl: SideMenuControl,\n                protected _petriNetResource: PetriNetResourceService,\n                protected _uriService: UriService,\n                protected _log: LoggerService,\n                protected _snackbar: SnackBarService,\n                protected _translate: TranslateService) {\n    }\n\n    ngAfterViewInit(): void {\n        this._fileInput = document.getElementById('sidemenu-fileUpload') as HTMLInputElement;\n        this._fileInput.onchange = () => {\n            for (const fileIndex of Array.from(Array(this._fileInput.files.length).keys())) {\n                const file = this._fileInput.files[fileIndex];\n                if (this.files[file.name]) {\n                    const knownFile = this.files[file.name].data as File;\n                    if (knownFile.type !== file.type || knownFile.lastModified !== file.lastModified) {\n                        this.files[file.name] = this.setupFile(file);\n                    }\n                } else {\n                    this.files[file.name] = this.setupFile(file);\n                }\n            }\n            this.uploadFiles();\n        };\n    }\n\n    get fileList(): Array<FileUploadModel> {\n        return Object.values(this.files);\n    }\n\n    get isAllFinished(): boolean {\n        return Object.values(this.files).every(file => !file.inProgress && file.progress === 100);\n    }\n\n    public onProcessFileChosen() {\n        if (this._fileInput) {\n            this._fileInput.click();\n        }\n    }\n\n    public cancelFile(file: FileUploadModel) {\n        file.sub.unsubscribe();\n        this.removeFile(file);\n    }\n\n    public retryFile(file: FileUploadModel) {\n        this.uploadFile(file);\n    }\n\n    public close(): void {\n        this._sideMenuControl.close({\n            opened: false,\n            message: 'All process files were processed',\n            data: this._response ? { net: this._response.net } : undefined\n        });\n    }\n\n    protected setupFile(file: File): FileUploadModel {\n        return {\n            data: file, stringId: '', downloading: false, inProgress: false, progress: 0, completed: false, uploaded: false\n        };\n    }\n\n    protected uploadFiles() {\n        this._fileInput.value = '';\n\n        this.fileList.filter(fileModel => !fileModel.completed && fileModel.progress === 0).forEach(file => {\n            this.uploadFile(file);\n        });\n    }\n\n    protected removeFile(file: FileUploadModel) {\n        if (this.files[file.data.name]) {\n            delete this.files[file.data.name];\n            this._sideMenuControl.publish({\n                opened: true,\n                message: 'Process ' + file.data.name + ' was deleted from the list',\n                data: file\n            });\n        }\n    }\n\n    protected uploadFile(file: FileUploadModel) {\n        const fileFormData = new FormData();\n        fileFormData.append('file', file.data as File);\n        fileFormData.append('uriNodeId', this._uriService.activeNode.id);\n        fileFormData.append('meta', this.releaseTypeControl.value.toString().toUpperCase());\n\n        file.inProgress = true;\n        file.completed = false;\n        file.error = false;\n        file.sub = this._petriNetResource.importPetriNet(fileFormData).subscribe((response: EventOutcomeMessageResource) => {\n            if ((response as ProviderProgress).type && (response as ProviderProgress).type === ProgressType.UPLOAD) {\n                file.progress = (response as ProviderProgress).progress;\n                if (file.progress === 100) {\n                    file.uploaded = true;\n                }\n            } else {\n                this._log.info(response.success);\n                this._response = response.outcome as PetriNetEventOutcome;\n                file.inProgress = false;\n                file.completed = true;\n                this._snackbar.openSuccessSnackBar(response.outcome.message === undefined\n                    ? this._translate.instant('workflow.snackBar.uploadSuccess')\n                    : response.outcome.message);\n                this._sideMenuControl.publish({\n                    opened: true,\n                    message: response.outcome.message === undefined\n                        ? 'Process ' + file.data.name + ' successfully uploaded'\n                        : response.outcome.message\n                    ,\n                    data: {net: (response.outcome as PetriNetEventOutcome).net}\n                });\n            }\n        }, error => {\n            file.inProgress = false;\n            file.completed = false;\n            file.error = true;\n            this._log.error('Importing process file has failed!', error);\n            this._snackbar.openErrorSnackBar(\n                `${this._translate.instant('workflow.snackBar.uploadFailed')} ${error?.error?.message ?? ''}`);\n        });\n    }\n\n}\n","import {Component, Inject, OnDestroy, ViewChild} from '@angular/core';\nimport {FormBuilder, FormControl, Validators} from '@angular/forms';\nimport {StepperSelectionEvent} from '@angular/cdk/stepper';\nimport {map, startWith, tap} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Observable, ReplaySubject, Subscription} from 'rxjs';\nimport {SnackBarService} from '../../../snack-bar/services/snack-bar.service';\nimport {NAE_SIDE_MENU_CONTROL} from '../../side-menu-injection-token';\nimport {SideMenuControl} from '../../models/side-menu-control';\nimport {CaseResourceService} from '../../../resources/engine-endpoint/case-resource.service';\nimport {NewCaseInjectionData} from './model/new-case-injection-data';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Hotkey, HotkeysService} from 'angular2-hotkeys';\nimport {MatToolbar} from '@angular/material/toolbar';\nimport semver from 'semver';\nimport {CreateCaseEventOutcome} from '../../../event/model/event-outcomes/case-outcomes/create-case-event-outcome';\nimport {EventOutcomeMessageResource} from '../../../resources/interface/message-resource';\nimport {MatOption} from '@angular/material/core';\nimport {LoadingEmitter} from '../../../utility/loading-emitter';\n\ninterface Form {\n    value: string;\n    viewValue: string;\n    version?: string;\n}\n\n@Component({\n    selector: 'ncc-abstract-new-case',\n    template: ''\n})\nexport abstract class AbstractNewCaseComponent implements OnDestroy {\n\n    processFormControl = new FormControl('', Validators.required);\n    titleFormControl = new FormControl('', Validators.required);\n    netVersion: string;\n\n    options: Array<Form> = [];\n    colors: Array<Form> = [\n        {value: 'panel-primary-icon', viewValue: 'Primary'},\n        {value: 'panel-accent-icon', viewValue: 'Accent'},\n    ];\n    filteredOptions$: Observable<Array<Form>>;\n    @ViewChild('toolbar') toolbar: MatToolbar;\n\n    @ViewChild('stepper1') stepper1;\n    @ViewChild('stepper2') stepper2;\n\n    public loadingSubmit: LoadingEmitter;\n    protected _options$: ReplaySubject<Array<Form>>;\n    protected _injectedData: NewCaseInjectionData;\n    protected _hasMultipleNets$: ReplaySubject<boolean>;\n    protected _notInitialized$: BehaviorSubject<boolean>;\n    private _allowedNetsSubscription: Subscription;\n\n    protected constructor(@Inject(NAE_SIDE_MENU_CONTROL) protected _sideMenuControl: SideMenuControl,\n                          protected _formBuilder: FormBuilder,\n                          protected _snackBarService: SnackBarService,\n                          protected _caseResourceService: CaseResourceService,\n                          protected _hotkeysService: HotkeysService,\n                          protected _translate: TranslateService) {\n        if (this._sideMenuControl.data) {\n            this._injectedData = this._sideMenuControl.data as NewCaseInjectionData;\n        }\n        if (!this._injectedData) {\n            this.closeNoNets();\n        }\n        this._hotkeysService.add(new Hotkey('enter', (event: KeyboardEvent): boolean => {\n            this.nextStep();\n            return false;\n        }));\n\n        this._hasMultipleNets$ = new ReplaySubject(1);\n        this._notInitialized$ = new BehaviorSubject<boolean>(true);\n        this._options$ = new ReplaySubject(1);\n        this.loadingSubmit = new LoadingEmitter(false);\n\n        this._allowedNetsSubscription = this._injectedData.allowedNets$.pipe(\n            map(nets => nets.map(petriNet => ({\n                value: petriNet.stringId,\n                viewValue: petriNet.title,\n                version: petriNet.version\n            }))),\n            map(nets => {\n                if (!this._sideMenuControl.allVersionEnabled) {\n                    return this.removeOldVersions(nets);\n                } else {\n                    return nets;\n                }\n            }),\n            tap(options => {\n                if (options.length === 0) {\n                    this.closeNoNets();\n                }\n                this.options = options;\n                this._hasMultipleNets$.next(options.length > 1);\n            })\n        ).subscribe(options => {\n            this._options$.next(options);\n            if (!this._notInitialized$.closed) {\n                this._notInitialized$.next(false);\n                this._notInitialized$.complete();\n            }\n        });\n\n        this.filteredOptions$ = combineLatest([this._options$, this.processFormControl.valueChanges.pipe(startWith(''))]).pipe(\n            map(sources => {\n                const options = sources[0];\n                const input = typeof sources[1] === 'string' || sources[1] === null ? sources[1] : sources[1].viewValue;\n                return input ? this._filter(input, options) : options.slice();\n            }),\n            tap(filteredOptions => {\n                if (filteredOptions.length === 1) {\n                    this.processFormControl.setValue(filteredOptions[0], {emitEvent: false});\n                }\n            })\n        );\n    }\n\n    ngOnDestroy(): void {\n        this._hasMultipleNets$.complete();\n        this.loadingSubmit.complete();\n        this._allowedNetsSubscription.unsubscribe();\n    }\n\n    public get hasMultipleNets$(): Observable<boolean> {\n        return this._hasMultipleNets$.asObservable();\n    }\n\n    public get notInitialized$(): Observable<boolean> {\n        return this._notInitialized$.asObservable();\n    }\n\n    public stepChange($event: StepperSelectionEvent): void {\n        this._sideMenuControl.publish({\n            opened: true,\n            message: 'Active step has changed',\n            data: $event\n        });\n    }\n\n    displayFn(process: Form): string {\n        return process && process.viewValue ? process.viewValue : '';\n    }\n\n    public createNewCase(): void {\n        if (this.loadingSubmit.value) {\n            return\n        }\n\n        if (!this._sideMenuControl.isOpened()) {\n            return\n        }\n\n        if (this.titleFormControl.valid || !this.isCaseTitleRequired()) {\n            const newCase = {\n                title: this.titleFormControl.value === '' ? null : this.titleFormControl.value,\n                color: 'panel-primary-icon',\n                netId: this.options.length === 1 ? this.options[0].value : this.processFormControl.value.value\n            };\n            this.loadingSubmit.on();\n            this._caseResourceService.createCase(newCase)\n                .subscribe(\n                    (response: EventOutcomeMessageResource) => {\n                        this.loadingSubmit.off();\n                        if (!!response.outcome) {\n                            this._snackBarService.openSuccessSnackBar(response.outcome.message === undefined\n                                ? this._translate.instant('side-menu.new-case.createCase') + ' ' + newCase.title\n                                : response.outcome.message);\n                            this._sideMenuControl.close({\n                                opened: false,\n                                message: response.outcome.message === undefined\n                                    ? 'Confirm new case setup'\n                                    : response.outcome.message\n                                ,\n                                data: (response.outcome as CreateCaseEventOutcome).aCase\n                            });\n                        } else if (!!response.error) {\n                            this._snackBarService.openWarningSnackBar(this._translate.instant('side-menu.new-case.createCaseError') + ' ' + newCase.title);\n                            this._sideMenuControl.close({\n                                opened: false,\n                                message: response.error === undefined\n                                    ? 'Confirm new case setup'\n                                    : response.error\n                            });\n                        }\n                        this.titleFormControl.markAsUntouched();\n                        this.titleFormControl.setValue(null);\n                    },\n                    error => {\n                        this.loadingSubmit.off();\n                        this._snackBarService.openErrorSnackBar(error.message ? error.message : error);\n                    }\n                );\n        }\n    }\n\n    /**\n     * Function to filter out matchless options without accent and case-sensitive differences\n     * @param value to compare matching options\n     * @param options that should be filtered\n     * @return  return matched options\n     */\n    protected _filter(value: string, options: Array<Form>): Array<Form> {\n        const filterValue = value.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n\n        return options.filter(option => option.viewValue.toLowerCase().normalize('NFD')\n            .replace(/[\\u0300-\\u036f]/g, '').indexOf(filterValue) === 0);\n    }\n\n    protected closeNoNets() {\n        this._snackBarService.openErrorSnackBar(this._translate.instant('side-menu.new-case.noNets'));\n        this._sideMenuControl.close({\n            opened: false\n        });\n    }\n\n    nextStep() {\n        if (this.stepper1) {\n            if (this.stepper1.selectedIndex === 1) {\n                this.createNewCase();\n            } else {\n                this.stepper1.next();\n            }\n        }\n        if (this.stepper2) {\n            if (this.stepper2.selectedIndex === 0) {\n                this.createNewCase();\n            } else {\n                this.stepper2.next();\n            }\n        }\n    }\n\n    titleShortening() {\n        let size;\n        if (this.toolbar && this.toolbar._elementRef && this.toolbar._elementRef.nativeElement &&\n            this.toolbar._elementRef.nativeElement.offsetWidth) {\n            switch (this.toolbar._elementRef.nativeElement.offsetWidth) {\n                case 296:\n                    size = 22;\n                    break;\n                case 496:\n                    size = 42;\n                    break;\n                case 246:\n                    size = 18;\n                    break;\n                default:\n                    size = 32;\n                    break;\n            }\n        } else {\n            size = 32;\n        }\n\n        const caze = this._translate.instant('side-menu.new-case.case');\n        const name = typeof this.processFormControl.value === 'string' || this.processFormControl.value === null ?\n            undefined : this.processFormControl.value.viewValue;\n        const title = name === undefined ? caze : caze + ' - ' + name;\n        if (title.length > size) {\n            const tmp = title.slice(0, size);\n            return tmp + '...';\n        }\n        return title;\n    }\n\n    private removeOldVersions(options: Array<Form>): Array<Form> {\n        const tempNets = Object.assign([], options);\n        const petriNetIds = new Set(options.map(form => form.value));\n        const newestNets = new Array<Form>();\n\n        for (const value of petriNetIds) {\n            let current: Form = {value, version: '1.0.0', viewValue: ''};\n            for (const net of tempNets) {\n                if (value === net.value && !semver.lt(net.version, current.version)) {\n                    current = net;\n                }\n            }\n            newestNets.push(current);\n        }\n        return newestNets;\n    }\n\n    isCaseTitleEnabled(): boolean {\n        return !!(this._injectedData?.newCaseCreationConfiguration?.enableCaseTitle ?? true);\n    }\n\n    isCaseTitleRequired(): boolean {\n        return this.isCaseTitleEnabled() && !!(this._injectedData?.newCaseCreationConfiguration?.isCaseTitleRequired ?? true);\n    }\n\n    showVersion(option: MatOption): void {\n        if (option !== undefined && option.value !== undefined && option.value.version !== undefined)\n            this.netVersion = option.value.version;\n    }\n\n    checkVersion(viewValue: any): void {\n        const currentOption = typeof viewValue === 'string' || viewValue === null ? undefined : viewValue.version;\n        if (currentOption === undefined) {\n            this.netVersion = '';\n        }\n    }\n\n    toNextStep(viewValue: any): void {\n        if (viewValue !== null && viewValue.value !== undefined) {\n            this.stepper1.next();\n        }\n    }\n}\n","import {UserValue} from '../../../data-fields/user-field/models/user-value';\nimport {FormControl} from '@angular/forms';\nimport {SideMenuControl} from '../../models/side-menu-control';\nimport {UserListInjectedData} from './model/user-list-injected-data';\nimport {ProcessRole} from '../../../resources/interface/process-role';\nimport {Component} from '@angular/core';\n\n/**\n * Is the main - parent component of the entire user assignment in the side menu.\n *\n * Holds logic link of the [UserAssignListComponent]{@link AbstractUserAssignListComponent}\n * along with searching, selecting, and then assigning to the user field.\n */\n@Component({\n    selector: 'ncc-abstract-user-assign',\n    template: ''\n})\nexport abstract class AbstractUserAssignComponent {\n    /**\n     * Form control for user search value.\n     */\n    public searchUserControl = new FormControl();\n\n    /**\n     * Data about preselected user send from [UserFieldComponent]{@link AbstractUserFieldComponent}.\n     */\n    public injectedData: UserListInjectedData;\n\n    /**\n     * Value of the current selected user.\n     */\n    protected _currentUser: UserValue;\n\n    /**\n     * Inject and set data send from [UserFieldComponent]{@link AbstractUserFieldComponent} if the user is preselected.\n     * @param _sideMenuControl Contains [Roles]{@link ProcessRole} and [UserValue]{@link UserValue}.\n     */\n    protected constructor(protected _sideMenuControl: SideMenuControl) {\n        if (this._sideMenuControl.data) {\n            this.injectedData = this._sideMenuControl.data as UserListInjectedData;\n        }\n    }\n\n    /**\n     * The user that is initially selected, or `undefined` if none is\n     */\n    public get initiallySelectedUser(): UserValue | undefined {\n        return this.injectedData ? this.injectedData.value as UserValue : undefined;\n    }\n\n    public get roles(): Array<string> | Array<ProcessRole> {\n        return this.injectedData ? this.injectedData.roles : [];\n    }\n\n    public get negativeRoles(): Array<string> | Array<ProcessRole> {\n        return this.injectedData ? this.injectedData.negativeRoles : [];\n    }\n\n    /**\n     * On select user from users assign list publish side menu with selected user as data and message about selection.\n     * @param user Select current user as [UserValue]{@link UserValue}\n     */\n    public userWasSelected(user: UserValue): void {\n        this._currentUser = user;\n        this._sideMenuControl.publish({\n            opened: true,\n            message: 'New selected user',\n            data: this._currentUser\n        });\n    }\n\n    /**\n     * On assign button close side menu with selected user as data and message about confirm.\n     */\n    public assign(): void {\n        if (this._currentUser !== undefined) {\n            this._sideMenuControl.close({\n                opened: false,\n                message: 'Selected user was confirmed',\n                data: this._currentUser\n            });\n        }\n    }\n}\n","import {Component, Input, OnDestroy, OnInit, ViewChild} from \"@angular/core\";\nimport {RolesObject, UserListItem, UserListService} from \"../../../../user/services/user-list.service\";\nimport {FormControl} from \"@angular/forms\";\nimport {CdkVirtualScrollViewport} from \"@angular/cdk/scrolling\";\nimport {debounceTime} from \"rxjs/operators\";\nimport {UserValue} from \"../../../../data-fields/user-field/models/user-value\";\n\n@Component({\n    selector: 'ncc-base-user-assign-list',\n    template: ''\n})\nexport abstract class AbstractBaseUserAssignListComponent implements OnInit, OnDestroy {\n\n    protected SEARCH_DEBOUNCE_TIME = 600;\n\n    @Input() searchUserControl: FormControl;\n\n    @Input() roles: RolesObject | Array<string>;\n\n    @Input() negativeRoles: RolesObject | Array<string>;\n\n    @ViewChild(CdkVirtualScrollViewport) public viewport: CdkVirtualScrollViewport;\n\n    constructor(protected _userListService: UserListService) {\n\n    }\n\n    ngOnInit() {\n        this.searchUserControl.valueChanges.pipe(debounceTime(this.SEARCH_DEBOUNCE_TIME)).subscribe(searchText => {\n            this._userListService.reload(searchText);\n        });\n        if (this.roles instanceof Array) {\n            this._userListService.rolesQuery = this.roles;\n        } else if (this.roles !== undefined && this.roles !== null) {\n            this._userListService.rolesQuery = Object.keys(this.roles);\n        }\n        if (this.negativeRoles instanceof Array) {\n            this._userListService.negativeRolesQuery = this.negativeRoles;\n        } else if (this.negativeRoles !== undefined && this.negativeRoles !== null) {\n            this._userListService.negativeRolesQuery = Object.keys(this.negativeRoles);\n        }\n    }\n\n    abstract ngOnDestroy();\n\n    abstract select(selectedUser: UserListItem);\n\n    public trackBy(index: number, item: UserValue): any {\n        return item.id;\n    }\n\n    public get loading(): boolean {\n        return this._userListService.loading;\n    }\n\n    public loadNextPage(): void {\n        if (!this.viewport) {\n            return;\n        }\n        this._userListService.nextPage(this.viewport.getRenderedRange().end, this.viewport.getDataLength());\n    }\n}\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {Observable, ReplaySubject} from 'rxjs';\nimport {UserListItem, UserListService} from '../../../../user/services/user-list.service';\nimport {UserValue} from '../../../../data-fields/user-field/models/user-value';\nimport {AbstractBaseUserAssignListComponent} from \"../base-user-assign-list/abstract-base-user-assign-list.component\";\n\n/**\n * Is responsible for displaying, filtering, loading and selecting users.\n */\n@Component({\n    selector: 'ncc-abstract-user-assign-list',\n    template: ''\n})\nexport abstract class AbstractUserAssignListComponent extends AbstractBaseUserAssignListComponent implements OnInit, OnDestroy {\n\n    /**\n     * The user that is initially selected, or `undefined` if none is\n     */\n    @Input() initiallySelectedUser: UserValue | undefined;\n\n    /**\n     * Emit selected user to parent component.\n     */\n    @Output() userSelected: EventEmitter<UserValue>;\n\n    /**\n     * UserValue array stream, that represents users loading from backend.\n     */\n    public users$: Observable<Array<UserListItem>>;\n    /**\n     * Stream of selected user with his value that we can subscribe to like the observable.\n     */\n    protected _selectedUser$: ReplaySubject<string>;\n\n    /**\n     * Inject and initialize attributes.\n     * @param _userListService Service to get paginated loading users from backend.\n     */\n    constructor(_userListService: UserListService) {\n        super(_userListService);\n        this.users$ = this._userListService.users$;\n        this.userSelected = new EventEmitter();\n        this._selectedUser$ = new ReplaySubject<string>(1);\n    }\n\n    /**\n     * On initialize component set value to stream selectedUser with preselected user.\n     * Observes search user control stream on value change.\n     */\n    ngOnInit() {\n        super.ngOnInit();\n        if (this.initiallySelectedUser) {\n            this._selectedUser$.next(this.initiallySelectedUser.id);\n        }\n    }\n\n    ngOnDestroy(): void {\n        this._selectedUser$.complete();\n    }\n\n    /**\n     * ID of the currently selected user\n     */\n    public get selectedUser$(): Observable<string> {\n        return this._selectedUser$.asObservable();\n    }\n\n    /**\n     * Sets current user to the selected user.\n     *\n     * Emit selected user to parent component.\n     *\n     * Marks selected user in users list.\n     * @param selectedUser [UserValue]{@link UserValue}\n     */\n    public select(selectedUser: UserListItem): void {\n        this.userSelected.emit(new UserValue(selectedUser.id, selectedUser.name, selectedUser.surname, selectedUser.email));\n        this._markSelectedUser(selectedUser);\n    }\n\n    /**\n     * Marks user as selected in users list.\n     * @param selectedUser Current select user value.\n     */\n    protected _markSelectedUser(selectedUser: UserListItem) {\n        if (!selectedUser) return;\n        this._selectedUser$.next(selectedUser.id);\n    }\n}\n","import {Component} from \"@angular/core\";\nimport {FormControl} from \"@angular/forms\";\nimport {UserListInjectedData} from \"./model/user-list-injected-data\";\nimport {UserValue} from \"../../../data-fields/user-field/models/user-value\";\nimport {SideMenuControl} from \"../../models/side-menu-control\";\nimport {ProcessRole} from \"../../../resources/interface/process-role\";\nimport {UserListValue} from \"../../../data-fields/user-list-field/models/user-list-value\";\n\n@Component({\n    selector: 'ncc-abstract-multi-user-assign',\n    template: ''\n})\nexport abstract class AbstractMultiUserAssignComponent {\n\n    public searchUserControl = new FormControl();\n\n    public injectedData: UserListInjectedData;\n\n    protected _currentUsers: Array<UserValue>;\n\n    protected constructor(protected _sideMenuControl: SideMenuControl) {\n        this._currentUsers = [];\n        if (this._sideMenuControl.data) {\n            this.injectedData = this._sideMenuControl.data as UserListInjectedData;\n            if (!!this.injectedData.value) {\n                this._currentUsers.push(...(this.injectedData.value as UserListValue).userValues.values());\n            }\n        }\n    }\n\n    public get initiallySelectedUsers(): Array<UserValue> | undefined {\n        return this.injectedData && this.injectedData.value ? [...(this.injectedData.value as UserListValue).userValues.values()] : undefined;\n    }\n\n    public get roles(): Array<string> | Array<ProcessRole> {\n        return this.injectedData ? this.injectedData.roles : [];\n    }\n\n    public get negativeRoles(): Array<string> | Array<ProcessRole> {\n        return this.injectedData ? this.injectedData.negativeRoles : [];\n    }\n\n    public get currentUsers(): Array<UserValue> {\n        return this._currentUsers;\n    }\n\n    public userWasUnselected(user: UserValue): void {\n        const index = this._currentUsers.findIndex(v => v.id === user.id);\n        if (index > -1) {\n            this._currentUsers.splice(index, 1);\n            this._sideMenuControl.publish({\n                opened: true,\n                message: 'User was unselected',\n                data: this._currentUsers\n            });\n        }\n    }\n\n    public userWasSelected(user: UserValue): void {\n        this._currentUsers.push(user);\n        this._sideMenuControl.publish({\n            opened: true,\n            message: 'User was selected',\n            data: this._currentUsers\n        });\n    }\n\n    /**\n     * On save button close side menu with selected user as data and message about confirm.\n     */\n    public save(): void {\n        if (this._currentUsers !== undefined) {\n            this._sideMenuControl.close({\n                opened: false,\n                message: 'Selected users were confirmed',\n                data: this._currentUsers\n            });\n        }\n    }\n}\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {Observable, ReplaySubject} from 'rxjs';\nimport {UserListItem, UserListService} from '../../../../user/services/user-list.service';\nimport {UserValue} from '../../../../data-fields/user-field/models/user-value';\nimport {AbstractBaseUserAssignListComponent} from \"../base-user-assign-list/abstract-base-user-assign-list.component\";\n\n/**\n * Is responsible for displaying, filtering, loading and selecting users.\n */\n@Component({\n    selector: 'ncc-abstract-multi-user-assign-list',\n    template: ''\n})\nexport abstract class AbstractMultiUserAssignListComponent extends AbstractBaseUserAssignListComponent implements OnInit, OnDestroy {\n\n    @Input() initiallySelectedUsers: Array<UserValue> | undefined;\n\n    @Output() userSelected: EventEmitter<UserValue>;\n\n    @Output() userUnselected: EventEmitter<UserValue>;\n\n\n    public users$: Observable<Array<UserListItem>>;\n\n    protected _selectedUsers$: ReplaySubject<Array<string>>;\n\n    protected _currentlySelectedUsers: Array<string>;\n\n    constructor(_userListService: UserListService) {\n        super(_userListService);\n        this.users$ = this._userListService.users$;\n        this.userSelected = new EventEmitter<UserValue>();\n        this.userUnselected = new EventEmitter<UserValue>();\n        this._selectedUsers$ = new ReplaySubject<Array<string>>(1);\n        this._currentlySelectedUsers = new Array<string>();\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n        if (this.initiallySelectedUsers) {\n            this._selectedUsers$.next(this.initiallySelectedUsers.map(v => v.id));\n            this._currentlySelectedUsers.push(...this.initiallySelectedUsers.map(v => v.id));\n        }\n    }\n\n    ngOnDestroy(): void {\n        this._selectedUsers$.complete();\n    }\n\n    public get selectedUsers$(): Observable<Array<string>> {\n        return this._selectedUsers$.asObservable();\n    }\n\n    public get currentlySelectedUsers(): string[] {\n        return this._currentlySelectedUsers;\n    }\n\n    public select(selectedUser: UserListItem): void {\n        const index = this._currentlySelectedUsers.indexOf(selectedUser.id);\n        if (index > -1) {\n            this._currentlySelectedUsers.splice(index, 1);\n            this.userUnselected.emit(new UserValue(selectedUser.id, selectedUser.name, selectedUser.surname, selectedUser.email));\n        } else {\n            this._currentlySelectedUsers.push(selectedUser.id);\n            this.userSelected.emit(new UserValue(selectedUser.id, selectedUser.name, selectedUser.surname, selectedUser.email));\n        }\n        this._selectedUsers$.next([...this._currentlySelectedUsers]);\n    }\n}\n","import {Component, Input} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {UserListItem} from '../../../../../user/services/user-list.service';\n\n/**\n * Includes avatar user icon and full username in the side menu.\n */\n@Component({\n    selector: 'ncc-abstract-user-assign-item',\n    template: ''\n})\nexport abstract class AbstractMultiUserAssignItemComponent {\n    /**\n     * Value of the user held in this item component\n     */\n    @Input() user: UserListItem;\n\n    /**\n     * ID of the currently selected user\n     */\n    @Input() selectedIds$: Observable<Array<string>>;\n\n    constructor() {\n    }\n}\n","import {Component, Input} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {UserListItem} from '../../../../../user/services/user-list.service';\n\n/**\n * Includes avatar user icon and full username in the side menu.\n */\n@Component({\n    selector: 'ncc-abstract-user-assign-item',\n    template: ''\n})\nexport abstract class AbstractUserAssignItemComponent {\n    /**\n     * Value of the user held in this item component\n     */\n    @Input() user: UserListItem;\n\n    /**\n     * ID of the currently selected user\n     */\n    @Input() selectedId$: Observable<string>;\n\n    constructor() {\n    }\n}\n","/**\n * Simple class that generalizes filtering of array of elements.\n * Filtered Results are contained in a separate array and can be bound to HTML.\n * @typeparam T type of elements contained in the arrays.\n */\nexport class FilteredArray<T> {\n\n    /**\n     * Contains all the elements from the provided array, that match the provided predicate.\n     */\n    public filtered: Array<T>;\n\n    /**\n     * @param _unfiltered elements that can be filtered\n     * @param _filterPredicate predicate that is used to filter elements of the provided array. It should return `true` if `item` with\n     * the given `data` should appear in the filtered array.\n     */\n    constructor(private _unfiltered: Array<T>, private _filterPredicate: (item: T, data: any) => boolean) {\n        this.filtered = [];\n        this.filtered.push(...this._unfiltered);\n    }\n\n    /**\n     * Applies the filter predicate on all items of the unfiltered array.\n     * Each item that returns `true` will be included in the filtered array.\n     * @param data data that is sent to the {@link FilteredArray#_filterPredicate} for evaluation\n     */\n    public filter(data: any): void {\n        this.filtered.splice(0, this.filtered.length);\n        this._unfiltered.forEach(item => {\n            if (this._filterPredicate(item, data)) {\n                this.filtered.push(item);\n            }\n        });\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {ConfigurationService} from '../configuration/configuration.service';\nimport {ConfigFilter} from '../../commons/schema';\nimport {LoggerService} from '../logger/services/logger.service';\nimport {MergeOperator} from './models/merge-operator';\nimport {FilterType} from './models/filter-type';\nimport {SimpleFilter} from './models/simple-filter';\nimport {Filter} from './models/filter';\nimport {MergedFilter} from './models/merged-filter';\n\n\n/**\n * Allows access to filters defined in nae.json during runtime.\n *\n * Filters are always returned as copies to avoid unintended side effects when operating on them.\n *\n * Also see {@link Filter}.\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class FilterRepository {\n\n    /**\n     * Stores the filters managed by the repository. Keys are filterIds.\n     */\n    protected _filters: Map<string, Filter> = new Map<string, Filter>();\n\n    /**\n     * Loads and creates filters declared in nae.json.\n     */\n    constructor(protected _configService: ConfigurationService, protected _log: LoggerService) {\n        const filters = _configService.get().filters;\n        if (!filters) {\n            return;\n        }\n\n        Object.keys(filters).forEach(filterId => {\n            const configFilter: ConfigFilter = filters[filterId];\n            // TODO 17.4.2020 - don't ignore filter.access property\n            if (!configFilter.type || !configFilter.body) {\n                _log.warn(`Filter '${filterId}' doesn't define all the necessary properties. Skipping.`);\n                return;\n            }\n            if (Array.isArray(configFilter.body)) {\n                if (!configFilter.mergeOperator) {\n                    _log.warn(`Filter '${filterId}' contains multiple filters, but doesn't define a merge operator. Skipping.`);\n                    return;\n                }\n                this.warnIfFilterExists(filterId);\n\n                const filter = new MergedFilter(filterId, configFilter.type as FilterType,\n                    configFilter.body, configFilter.mergeOperator as MergeOperator, configFilter.title);\n                this._filters.set(filterId, filter);\n\n            } else {\n                this.warnIfFilterExists(filterId);\n                const filter = new SimpleFilter(filterId, configFilter.type as FilterType, configFilter.body, configFilter.title);\n                this._filters.set(filterId, filter);\n            }\n        });\n    }\n\n    /**\n     * Logs a warning if filter with the given id already exists. The warning states that the filter will be replaced.\n     * @param filterId ID of the filter who's existence should be checked\n     */\n    protected warnIfFilterExists(filterId: string): void {\n        if (this._filters.has(filterId)) {\n            this._log.warn(`Filter with id '${filterId}' already exists in the repository and will be replaced!`);\n        }\n    }\n\n    /**\n     * @param filterId ID of the filter that should be retrieved\n     * @returns a copy of the specified filter, or `undefined` if such filter doesn't exist in the repository.\n     */\n    public getFilter(filterId: string): Filter | undefined {\n        let filter = this._filters.get(filterId);\n        if (!!filter) {\n            filter = filter.clone();\n        }\n        return filter;\n    }\n\n    /**\n     * Stores a new filter into the repository. If the repository already contains a filter with the same ID, the stored filter\n     * will be replaced and a warning will be logged.\n     *\n     * The repository stores a copy of the provided filter, to ensure that the objects in the repository aren't referenced from outside.\n     * @param filter the filter that should be stored\n     */\n    public saveFilter(filter: Filter): void {\n        this.warnIfFilterExists(filter.id);\n        this._filters.set(filter.id, filter.clone());\n    }\n\n    /**\n     * @returns list of case filter identifiers stored in the repository\n     */\n    public getCaseFilterList(): Array<string> {\n        return this.getFilterList(filter => filter.type === FilterType.CASE);\n    }\n\n    /**\n     * @returns list of task filter identifiers stored in the repository\n     */\n    public getTaskFilterList(): Array<string> {\n        return this.getFilterList(filter => filter.type === FilterType.TASK);\n    }\n\n    /**\n     * @param predicate condition that must be fulfilled by the filters in the repository in order to be included in the result\n     * @returns list of filter identifiers that fulfill the given predicate\n     */\n    protected getFilterList(predicate: (f: Filter) => boolean): Array<string> {\n        const result = [];\n        this._filters.forEach(filter => {\n            if (predicate(filter)) {\n                result.push(filter.id);\n            }\n        });\n        return result;\n    }\n\n    /**\n     * @param filterIds list of ids of filters that should be returned\n     * @returns list of copies of specified filters. If some of the filters don't exist in the repository, they won't be included\n     * and the array will contain less elements than the input array.\n     */\n    public getFilters(filterIds: Array<string>): Array<Filter> {\n        const result = [];\n        filterIds.forEach(id => {\n            const filter = this.getFilter(id);\n            if (filter !== undefined) {\n               result.push(filter);\n            }\n        });\n        return result;\n    }\n\n    /**\n     * Removes all stored filters from the repository\n     */\n    public removeAllFilters(): void {\n        this._filters = new Map<string, Filter>();\n    }\n}\n","import {Component, Inject, OnDestroy, ViewChild} from '@angular/core';\nimport {NAE_SIDE_MENU_CONTROL} from '../../side-menu-injection-token';\nimport {SideMenuControl} from '../../models/side-menu-control';\nimport {FilterRepository} from '../../../filter/filter.repository';\nimport {Filter} from '../../../filter/models/filter';\nimport {FilterSelectorInjectionData} from './model/filter-selector-injection-data';\nimport {FilteredArray} from './model/filtered-array';\nimport {FilterType} from '../../../filter/models/filter-type';\nimport {FormControl} from '@angular/forms';\nimport {MatSelectionList, MatSelectionListChange} from '@angular/material/list';\nimport {Subscription} from 'rxjs';\n\n/**\n * Allows user to choose a {@link Filter} from the {@link FilterRepository}.\n *\n * Publishes events to the {@link SideMenuControl} object when:\n *\n * - filter is selected by the user. Message: `New selected filter`, Data: is either the selected filter or `undefined` if the user\n * deselected the filter\n *\n * - filter selection is confirmed by the user. Message: `Selected filter was confirmed`, Data: the selected filter. If the user didn't\n * select any filter this event will not be published.\n *\n */\n@Component({\n    selector: 'ncc-abstract-filter-selector',\n    template: ''\n})\nexport abstract class AbstractFilterSelectorComponent implements OnDestroy {\n\n    /**\n     * @ignore\n     * Case filters bound to HTML\n     */\n    public caseFilters: FilteredArray<Filter>;\n    /**\n     * @ignore\n     * Task filters bound to html\n     */\n    public taskFilters: FilteredArray<Filter>;\n    /**\n     * @ignore\n     * Task filters bound to html\n     */\n    protected subValue: Subscription;\n    /**\n     * @ignore\n     * `FormControl` for the search input\n     */\n    public searchFormControl: FormControl;\n\n    /**\n     * @ignore\n     * Currently selected filter. `undefined` if no filter is selected.\n     */\n    protected _selectedFilter: Filter;\n\n    /**\n     * @ignore\n     * Reference to the `mat-selection-list` component, that holds the list of case filters.\n     */\n    @ViewChild('caseFilterList') caseFilterList: MatSelectionList;\n    /**\n     * @ignore\n     * Reference to the `mat-selection-list` component, that holds the list of task filters.\n     */\n    @ViewChild('taskFilterList') taskFilterList: MatSelectionList;\n\n    /**\n     * @ignore\n     * Stores the predicate used for filtering of filters with {@linkFilteredArray}.\n     * @param item some filter from the list\n     * @param searchInput value the user is searching for\n     */\n    protected _filterPredicate = (item: Filter, searchInput: string) => {\n        return item.title\n        ? item.title.toLocaleLowerCase().includes(searchInput.toLocaleLowerCase())\n        : item.id.toLocaleLowerCase().includes(searchInput.toLocaleLowerCase());\n    }\n\n    /**\n     * Retrieves the {@link Filter} objects from the {@link FilterRepository} and instantiates this component.\n     *\n     * Filters that are available for selection can be set using the injected data. See {@link FilterSelectorInjectionData}\n     * for more information.\n     * @param _sideMenuControl -\n     * @param _filterRepository -\n     */\n    constructor(@Inject(NAE_SIDE_MENU_CONTROL) protected _sideMenuControl: SideMenuControl,\n                protected _filterRepository: FilterRepository) {\n        const filterConstraints = _sideMenuControl.data as FilterSelectorInjectionData;\n\n        let caseFilters = [];\n        let taskFilters = [];\n        if (filterConstraints && filterConstraints.filterIdsConstraint) {\n            const filters = this._filterRepository.getFilters(filterConstraints.filterIdsConstraint);\n            filters.forEach(filter => {\n                if (filter.type === FilterType.CASE &&\n                    (!filterConstraints.filterTypeConstraint || filterConstraints.filterTypeConstraint === FilterType.CASE)) {\n                    caseFilters.push(filter);\n                } else if (filter.type === FilterType.TASK &&\n                    (!filterConstraints.filterTypeConstraint || filterConstraints.filterTypeConstraint === FilterType.TASK)) {\n                    taskFilters.push(filter);\n                }\n            });\n        } else {\n            if (!filterConstraints ||\n                !filterConstraints.filterTypeConstraint ||\n                filterConstraints.filterTypeConstraint === FilterType.CASE) {\n                caseFilters = this._filterRepository.getFilters(this._filterRepository.getCaseFilterList());\n            }\n            if (!filterConstraints ||\n                !filterConstraints.filterTypeConstraint ||\n                filterConstraints.filterTypeConstraint === FilterType.TASK) {\n                taskFilters = this._filterRepository.getFilters(this._filterRepository.getTaskFilterList());\n            }\n        }\n\n        this.caseFilters = new FilteredArray<Filter>(caseFilters, this._filterPredicate);\n        this.taskFilters = new FilteredArray<Filter>(taskFilters, this._filterPredicate);\n\n        this.searchFormControl = new FormControl();\n        this.subValue = this.searchFormControl.valueChanges.subscribe(newValue => this.filterFilters(newValue));\n    }\n\n    ngOnDestroy(): void {\n        this.subValue.unsubscribe();\n    }\n\n    /**\n     * @ignore\n     * Changes the currently selected filter and publishes an event about this to the output stream in {@link SideMenuControl}.\n     * @param filter the newly selected filter\n     */\n    public filterSelected(filter: Filter): void {\n        this._selectedFilter = filter;\n        this._sideMenuControl.publish({\n            opened: true,\n            message: 'New selected filter',\n            data: this._selectedFilter\n        });\n    }\n\n    /**\n     * @ignore\n     * Closes the side menu and publishes an event with the currently selected filter.\n     */\n    public filterSelectionConfirmed(): void {\n        if (this._selectedFilter !== undefined) {\n            this._sideMenuControl.close({\n                opened: false,\n                message: 'Selected filter was confirmed',\n                data: this._selectedFilter\n            });\n        }\n    }\n\n    /**\n     * @ignore\n     * Clears selection of task filters and ensures that only one case filter can be selected at once.\n     * @param event list change event published byt the material component\n     */\n    public caseFilterSelected(event: MatSelectionListChange): void {\n        if (event.options[0].selected) {\n            this.filterSelected(event.options[0].value);\n            if (this.taskFilterList) {\n                this.taskFilterList.deselectAll();\n            }\n            // TODO 20.4.2020 - change to [multiple] input attribute on MatSelectionList in HTML,\n            //  once Covalent supports material 9.1.0 or above\n            this.caseFilterList.deselectAll();\n            event.options[0].selected = true;\n        } else {\n            this.filterSelected(undefined);\n        }\n    }\n\n    /**\n     * @ignore\n     * Clears selection of case filters and ensures that only one task filter can be selected at once.\n     * @param event list change event published byt the material component\n     */\n    public taskFilterSelected(event: MatSelectionListChange): void {\n        if (event.options[0].selected) {\n            this.filterSelected(event.options[0].value);\n            if (this.caseFilterList) {\n                this.caseFilterList.deselectAll();\n            }\n            // TODO 20.4.2020 - change to [multiple] input attribute on MatSelectionList in HTML,\n            //  once Covalent supports material 9.1.0 or above\n            this.taskFilterList.deselectAll();\n            event.options[0].selected = true;\n        } else {\n            this.filterSelected(undefined);\n        }\n    }\n\n    /**\n     * @ignore\n     * Filters both lists of filters based on user search input.\n     * @param newValue user search input value\n     */\n    public filterFilters(newValue: string): void {\n        this.caseFilters.filter(newValue);\n        this.taskFilters.filter(newValue);\n    }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {Filter} from '../../../../filter/models/filter';\n\n/**\n * @ignore\n * Renders a single filter in the selection list.\n */\n@Component({\n    selector: 'ncc-abstract-filter-selector-list-item',\n    template: ''\n})\nexport abstract class AbstractFilterSelectorListItemComponent implements OnInit {\n\n    /**\n     * Filter that should be rendered\n     */\n    @Input() filter: Filter;\n    /**\n     * Text that is bound to HTML\n     */\n    public text: string;\n\n    /**\n     * Sets the text bound to HTML, to either the filter title (if it exists), or to it's ID.\n     */\n    ngOnInit(): void {\n        if (this.filter.title) {\n            this.text = this.filter.title;\n        } else {\n            this.text = this.filter.id;\n        }\n    }\n\n}\n","import {SideMenuControl} from '../../models/side-menu-control';\nimport {Option, OptionSelectorInjectionData} from './model/option-selector-injection-data';\nimport {FormControl, Validators} from '@angular/forms';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\nimport {Component} from '@angular/core';\n\n@Component({\n    selector: 'ncc-abstract-option-selector',\n    template: ''\n})\nexport abstract class AbstractOptionSelectorComponent {\n\n    data: OptionSelectorInjectionData;\n    selectorFormControl = new FormControl('', Validators.required);\n    filteredOptions: Observable<Array<Option>>;\n\n    constructor(protected _sideMenuControl: SideMenuControl) {\n        this.data = _sideMenuControl.data as OptionSelectorInjectionData;\n\n        this.filteredOptions = this.selectorFormControl.valueChanges.pipe(\n            startWith(''),\n            map(input => typeof input === 'string' ? input : input.value),\n            map(name => name ? this._filter(name) : this.data.options.slice())\n        );\n    }\n\n    submit(): void {\n        if (this.selectorFormControl.valid) {\n            this._sideMenuControl.close({\n                opened: false,\n                message: 'Selected option was confirmed',\n                data: this.selectorFormControl.value\n            });\n        }\n    }\n\n    displayFn(option: Option): string {\n        return option.text;\n    }\n\n    protected _filter(value: string): Array<Option> {\n        const filterValue = value.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n\n        return this.data.options.filter(option => option.value.toLowerCase().normalize('NFD')\n            .replace(/[\\u0300-\\u036f]/g, '').indexOf(filterValue) === 0);\n    }\n\n}\n","import {Observable, ReplaySubject} from 'rxjs';\nimport {HeaderColumn} from '../../header/models/header-column';\nimport {AbstractHeaderComponent} from '../../header/abstract-header.component';\nimport {AbstractSortableViewComponent} from './sortable-view';\nimport { Component, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { ConfigParams } from '../../panel/configuration/config-params';\n\n@Component({\n    selector: 'ncc-abstract-view-with-headers',\n    template: ''\n})\nexport abstract class AbstractViewWithHeadersComponent implements OnDestroy {\n\n    public config: Params;\n    protected _selectedHeaders$: ReplaySubject<Array<HeaderColumn>>;\n\n    protected constructor(private _sortableView?: AbstractSortableViewComponent, protected _activatedRoute?: ActivatedRoute) {\n        this._selectedHeaders$ = new ReplaySubject<Array<HeaderColumn>>(1);\n        if (!!_activatedRoute) {\n            this._activatedRoute.queryParams.subscribe(paramMap => this.config = paramMap);\n        }\n    }\n\n    public get selectedHeaders$(): Observable<Array<HeaderColumn>> {\n        return this._selectedHeaders$.asObservable();\n    }\n\n    protected initializeHeader(headerComponent: AbstractHeaderComponent): void {\n        headerComponent.headerService.selectedHeaders$.subscribe(selectedHeaders => this._selectedHeaders$.next(selectedHeaders));\n        if (!!this._sortableView) {\n            this._sortableView.registerHeaderChange(headerComponent.headerService.headerChange$);\n        }\n    }\n\n    ngOnDestroy(): void {\n        this._selectedHeaders$.complete();\n    }\n\n    showHeader(): boolean {\n        return !(this.config?.[ConfigParams.PANEL_HEADER] === 'false')\n    }\n}\n","import {Observable} from 'rxjs';\nimport {Component, OnDestroy} from '@angular/core';\nimport {TaskPanelData} from '../../panel/task-panel-list/task-panel-data/task-panel-data';\nimport {TaskViewService} from './service/task-view.service';\nimport {AbstractViewWithHeadersComponent} from '../abstract/view-with-headers';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n    selector: 'ncc-abstract-task-view',\n    template: ''\n})\nexport abstract class AbstractTaskViewComponent extends AbstractViewWithHeadersComponent implements OnDestroy {\n\n    public tasks$: Observable<Array<TaskPanelData>>;\n    public loading$: Observable<boolean>;\n\n    protected constructor(protected taskViewService: TaskViewService,\n                          _activatedRoute?: ActivatedRoute) {\n        super(taskViewService, _activatedRoute);\n        this.tasks$ = this.taskViewService.tasks$;\n        this.loading$ = this.taskViewService.loading$;\n    }\n\n    ngOnDestroy() {\n        super.ngOnDestroy();\n    }\n}\n","/**\n * Holds all identifiers of the Filter process in an accessible manner\n */\nexport enum UserFilterConstants {\n    /**\n     * Identifier of the filter process\n     */\n    FILTER_NET_IDENTIFIER = 'filter',\n    /**\n     * Transition ID of the \"Set filter metadata\" transition used for setting filter metadata to new filter cases\n     */\n    SET_FILTER_METADATA_TRANSITION_ID = 'frontend_create',\n    /**\n     * Transition ID of the \"New Filter\" transition displayed in the side menu\n     */\n    NEW_FILTER_TRANSITION_ID = 'newFilter',\n    /**\n     * ID of the field containing the saved filter\n     */\n    FILTER_FIELD_ID = 'filter',\n    /**\n     * ID of the field containing the saved filter type\n     */\n    FILTER_TYPE_FIELD_ID = 'filter_type',\n    /**\n     * ID of the field containing the viewId of the filters origin (if the filter originates from an app view)\n     */\n    ORIGIN_VIEW_ID_FIELD_ID = 'origin_view_id',\n    /**\n     * ID of the field containing the filter case ID\n     */\n    FILTER_CASE_ID_FIELD_ID = 'filter_case_id',\n    /**\n     * ID of the field containing the filter case ID of the parent filter (if the filter has a filter parent)\n     */\n    PARENT_FILTER_CASE_ID_FIELD_ID = 'parent_filter_id',\n\n    /**\n     * ID of allowed net field in filter and filter_preference_item processes\n     * */\n    ALLOWED_NETS_FIELD_ID = 'allowed_nets'\n}\n","import {DataField} from '../data-fields/models/abstract-data-field';\nimport {DataGroup} from '../resources/interface/data-groups';\n\n/**\n * @param fields a collection of data fields\n * @param fieldId the id of the desired field\n * @returns a reference to the datafield with the specified id or `undefined` if such datafield could not be found\n */\nexport function getField(fields: Array<DataField<any>>, fieldId: string): DataField<any> | undefined {\n    const index = getFieldIndex(fields, fieldId);\n    return index === -1 ? undefined : fields[index];\n}\n\n/**\n * @param fields a collection of data fields\n * @param fieldId the id of the desired field\n * @returns the index of the datafield with the specified id or `-1` if such datafield could not be found\n */\nexport function getFieldIndex(fields: Array<DataField<any>>, fieldId: string): number {\n    return fields.findIndex(field => field.stringId === fieldId);\n}\n\n/**\n * @param groups a list of searched data groups\n * @param fieldId the id of the desired field\n * @returns a reference to the first occurrence of the datafield with the specified id or `undefined` if such datafield could not be found\n */\nexport function getFieldFromDataGroups(groups: Array<DataGroup>, fieldId: string): DataField<any> | undefined {\n    const indices = getFieldIndexFromDataGroups(groups, fieldId);\n    if (indices !== undefined) {\n        return groups[indices.dataGroupIndex].fields[indices.fieldIndex];\n    }\n    return undefined;\n}\n\n/**\n * @param groups a list of searched data groups\n * @param fieldId the id of the desired field\n * @returns an object containing the index of the data group and the field within it corresponding to the first occurrence of a\n * datafield with the specified id or `undefined` if such datafield could not be found\n */\nexport function getFieldIndexFromDataGroups(groups: Array<DataGroup>, fieldId: string): DataGroupFieldIndex | undefined {\n    for (let i = 0; i < groups.length; i++) {\n        const fieldIndex = getFieldIndex(groups[i].fields, fieldId);\n        if (fieldIndex !== -1) {\n            return {\n                dataGroupIndex: i,\n                fieldIndex\n            };\n        }\n    }\n    return undefined;\n}\n\n/**\n * Contains the index of the data group and the index of the field within it that contains some data field\n */\nexport interface DataGroupFieldIndex {\n    dataGroupIndex: number;\n    fieldIndex: number;\n}\n","import {Inject, Injectable, OnDestroy, Optional, Type} from '@angular/core';\nimport {Observable, of, ReplaySubject, Subject} from 'rxjs';\nimport {CaseResourceService} from '../resources/engine-endpoint/case-resource.service';\nimport {TaskResourceService} from '../resources/engine-endpoint/task-resource.service';\nimport {SearchService} from '../search/search-service/search.service';\nimport {ProcessService} from '../process/process.service';\nimport {LoggerService} from '../logger/services/logger.service';\nimport {filter, take} from 'rxjs/operators';\nimport {SimpleFilter} from './models/simple-filter';\nimport {hasContent} from '../utility/pagination/page-has-content';\nimport {Task} from '../resources/interface/task';\nimport {CallChainService} from '../utility/call-chain/call-chain.service';\nimport {TaskSetDataRequestBody, TaskSetDataRequestFields} from '../resources/interface/task-set-data-request-body';\nimport {FieldTypeResource} from '../task-content/model/field-type-resource';\nimport {Category} from '../search/models/category/category';\nimport {Net} from '../process/net';\nimport {UserFilterConstants} from './models/user-filter-constants';\nimport {SaveFilterInjectionData} from '../side-menu/content-components/save-filter/model/save-filter-injection-data';\nimport {SideMenuService} from '../side-menu/services/side-menu.service';\nimport {ComponentType} from '@angular/cdk/portal';\nimport {LoadFilterInjectionData} from '../side-menu/content-components/load-filter/model/load-filter-injection-data';\nimport {FilterType} from './models/filter-type';\nimport {Filter} from './models/filter';\nimport {MergeOperator} from './models/merge-operator';\nimport {SavedFilterMetadata} from '../search/models/persistance/saved-filter-metadata';\nimport {FilterMetadata} from '../search/models/persistance/filter-metadata';\nimport {CreateCaseEventOutcome} from '../event/model/event-outcomes/case-outcomes/create-case-event-outcome';\nimport {CategoryResolverService} from '../search/category-factory/category-resolver.service';\nimport {DataGroup} from '../resources/interface/data-groups';\nimport {getFieldFromDataGroups} from '../utility/get-field';\nimport {EventOutcomeMessageResource} from '../resources/interface/message-resource';\nimport {MatDialog} from '@angular/material/dialog';\nimport {NAE_LOAD_FILTER_DIALOG_COMPONENT, NAE_SAVE_FILTER_DIALOG_COMPONENT} from '../dialog/injection-tokens';\n\n/**\n * Service that manages filters created by users of the application.\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class UserFiltersService implements OnDestroy {\n\n    protected _initialized$: ReplaySubject<boolean>;\n    protected _filterNet: Net;\n\n    constructor(protected _caseService: CaseResourceService,\n                protected _taskService: TaskResourceService,\n                protected _processService: ProcessService,\n                protected _callChainService: CallChainService,\n                protected _sideMenuService: SideMenuService,\n                protected _log: LoggerService,\n                protected _categoryResolverService: CategoryResolverService,\n                protected _dialog: MatDialog,\n                @Optional() @Inject(NAE_SAVE_FILTER_DIALOG_COMPONENT) protected _saveFilterComponent: ComponentType<unknown>,\n                @Optional() @Inject(NAE_LOAD_FILTER_DIALOG_COMPONENT) protected _loadFilterComponent: ComponentType<unknown>) {\n        this._initialized$ = new ReplaySubject<boolean>(1);\n        this._processService.getNet(UserFilterConstants.FILTER_NET_IDENTIFIER).subscribe(net => {\n            this._filterNet = net;\n            this._initialized$.next(true);\n        }, error => {\n            this._log.error(`Filter net could not be loaded with error`, error);\n            this._initialized$.next(false);\n        });\n    }\n\n    ngOnDestroy(): void {\n        this._initialized$.complete();\n    }\n\n    /**\n     * Deletes the specified filter case by its case id.\n     * @param filterCaseId StringId of the filter case that should be deleted\n     * @returns an Observable that emits `true` if the case was successfully deleted and `false` otherwise\n     */\n    public delete(filterCaseId: string): Observable<boolean> {\n        const result$ = new ReplaySubject<boolean>(1);\n        this._caseService.deleteCase(filterCaseId).subscribe((response: EventOutcomeMessageResource) => {\n            if (response.success) {\n                this._log.debug('Filter case delete success', response);\n                result$.next(true);\n                result$.complete();\n            } else {\n                this._log.error('Filter case delete failure', response);\n                result$.next(false);\n                result$.complete();\n            }\n        }, e => {\n            this._log.error('Filter case delete error', e);\n            result$.next(false);\n            result$.complete();\n        });\n        return result$.asObservable();\n    }\n\n    /**\n     * Opens a side menu with filter cases and allows the user to select one of them.\n     *\n     * The default filter constrains the cases to be instances of the filter process and to be filters of the specified type\n     * (`Case` or `Task`).\n     *\n     * @param filterType whether `Case` or `Task` user filters should be loaded\n     * @param additionalFilter additional constrains on the displayed user filter cases. Must be of type `Case`\n     * otherwise the method throws an error. If it is a {@link MergedFilter} must use the `AND` {@link MergeOperator} otherwise an error\n     * will be thrown\n     * @returns an Observable that emits the data necessary to reconstruct the selected filter, or `undefined` if no filter was selected\n     */\n    public load(filterType: FilterType, additionalFilter?: Filter): Observable<any> {\n        if (additionalFilter?.type === FilterType.TASK) {\n            this._log.error('The additional filter applied to UserFiltersService.load() must be of type Case', additionalFilter);\n            throw Error('The additional filter applied to UserFiltersService.load() must be of type Case');\n        }\n\n        let filterCasesFilter = SimpleFilter.fromCaseQuery({\n            process: {\n                identifier: UserFilterConstants.FILTER_NET_IDENTIFIER\n            },\n            query: `dataSet.${UserFilterConstants.FILTER_TYPE_FIELD_ID}.keyValue:${filterType}`\n        });\n        if (!!additionalFilter) {\n            filterCasesFilter = filterCasesFilter.merge(additionalFilter, MergeOperator.AND);\n        }\n\n        const result = new ReplaySubject<any>(1);\n        const ref = this._dialog.open(this._loadFilterComponent, {\n            panelClass: \"dialog-responsive\",\n            data: {\n                filter: filterCasesFilter\n            } as LoadFilterInjectionData,\n        });\n        ref.afterClosed().subscribe(event => {\n            if (event.message === 'Side menu closed unexpectedly') {\n                result.next();\n            } else {\n                result.next(event.data);\n            }\n            result.complete();\n        });\n        return result.asObservable();\n    }\n\n    /**\n     * Saves the predicate filter contained in the provided {@link SearchService} instance.\n     *\n     * The base filter of the search service is not saved.\n     *\n     * A new filter case is created and the necessary filter information is set into it.\n     *\n     * Then a side menu with the filter is opened for the user to enter the name and other properties.\n     * The user can confirm or cancel the save by finishing the task in the side menu, or by canceling/closing.\n     *\n     * @param searchService search service containing a predicate filter, we want to save\n     * @param allowedNets allowed nets of the view, that contains the search service\n     * @param searchCategories search categories available in the saved advanced search component\n     * @param viewId the viewId of the view which contained the filter.\n     * If neither the `viewId` nor the `navigationItemTaskData` attribute is set the filter will be created as a new root filter\n     * without any parent filter link. This will most likely result in the filter being less restrictive than what\n     * the user sees in the current view, since the base filter of the view will NOT be saved alongside the saved filter.\n     * @param additionalData set data request body, that is sent to the filter in addition to the default body.\n     * The default body is applied first and can be overridden by this argument.\n     * @param withDefaultCategories Whether the saved filter should be saved with\n     * the [defaultSearchCategories]{@link FilterMetadata#defaultSearchCategories} flag set to `true`, or `false`.\n     * @param inheritAllowedNets Whether the saved filter should merge its allowed nets with the allowed nets provided by\n     * the {@link BaseAllowedNetsService}.\n     * @param navigationItemTaskData if provided then it implies the filter has a parent filter that created its host dynamic view.\n     * If this is the case the case ID of the parent filter will be set into the newly created filter case.\n     * If not set it implies this is a filter originating in an in-app view and its view id will be set into the created filter.\n     * @returns an observable that emits the id of the created Filter case instance or `undefined` if the user canceled the save process,\n     * or the filter could not be saved\n     */\n    public save(searchService: SearchService,\n                allowedNets: ReadonlyArray<string>,\n                searchCategories: ReadonlyArray<Type<Category<any>>>,\n                viewId?: string,\n                additionalData: TaskSetDataRequestFields = {},\n                withDefaultCategories = true,\n                inheritAllowedNets = true,\n                navigationItemTaskData: Array<DataGroup> = null): Observable<SavedFilterMetadata> {\n        if (!searchService.additionalFiltersApplied) {\n            this._log.warn('The provided SearchService contains no filter besides the base filter. Nothing to save.');\n            return of(undefined);\n        }\n\n        const result = new ReplaySubject<SavedFilterMetadata>(1);\n        this.createFilterCaseAndSetData(\n            searchService,\n            allowedNets,\n            searchCategories,\n            viewId,\n            additionalData,\n            withDefaultCategories,\n            inheritAllowedNets,\n            navigationItemTaskData\n        ).subscribe(filterCaseId => {\n            const ref = this._dialog.open(this._saveFilterComponent, {\n                panelClass: \"dialog-responsive\",\n                data: {\n                    newFilterCaseId: filterCaseId\n                } as SaveFilterInjectionData,\n            });\n            ref.afterClosed().subscribe(event => {\n                if (event.message === 'Side menu closed unexpectedly') {\n                    this.delete(filterCaseId);\n                    result.next();\n                } else {\n                    result.next({\n                        filterCaseId,\n                        allowedNets: [...allowedNets],\n                        originViewId: viewId,\n                        filterMetadata: this.filterMetadataFromSearchService(\n                            searchService,\n                            searchCategories,\n                            withDefaultCategories,\n                            inheritAllowedNets\n                        ),\n                        filter: SimpleFilter.fromQuery({query: searchService.rootPredicate.query.value}, searchService.filterType)\n                    });\n                }\n                result.complete();\n            });\n        });\n        return result.asObservable();\n    }\n\n    /**\n     * Saves the predicate filter contained in the provided {@link SearchService} instance.\n     *\n     * The base filter of the search service is not saved.\n     *\n     * A new filter case is created and the necessary filter information is set into it.\n     *\n     * @param searchService search service containing a predicate filter, we want to save\n     * @param allowedNets allowed nets of the view, that contains the search service\n     * @param searchCategories search categories available in the saved advanced search component\n     * @param viewId the viewId of the view which contained the filter.\n     * If neither the `viewId` nor the `navigationItemTaskData` attribute is set the filter will be created as a new root filter\n     * without any parent filter link. This will most likely result in the filter being less restrictive than what\n     * the user sees in the current view, since the base filter of the view will NOT be saved alongside the saved filter.\n     * @param additionalData set data request body, that is sent to the filter in addition to the default body.\n     * The default body is applied first and can be overridden by this argument.\n     * @param withDefaultCategories Whether the saved filter should be saved with\n     * the [defaultSearchCategories]{@link FilterMetadata#defaultSearchCategories} flag set to `true`, or `false`.\n     * @param inheritAllowedNets Whether the saved filter should merge its allowed nets with the allowed nets provided by\n     * the {@link BaseAllowedNetsService}.\n     * @param navigationItemTaskData if provided then it implies the filter has a parent filter that created its host dynamic view.\n     * If this is the case the case ID of the parent filter will be set into the newly created filter case.\n     * If not set it implies this is a filter originating in an in-app view and its view id will be set into the created filter.\n     * @returns an observable that emits the id of the created Filter case instance\n     */\n    public createFilterCaseAndSetData(searchService: SearchService,\n                                      allowedNets: ReadonlyArray<string>,\n                                      searchCategories: ReadonlyArray<Type<Category<any>>>,\n                                      viewId?: string,\n                                      additionalData: TaskSetDataRequestFields = {},\n                                      withDefaultCategories = true,\n                                      inheritAllowedNets = true,\n                                      navigationItemTaskData: Array<DataGroup> = null): Observable<string> {\n        const result = new ReplaySubject<string>(1);\n        this.whenInitialized(() => {\n            this._caseService.createCase({\n                title: this._filterNet.defaultCaseName,\n                netId: this._filterNet.stringId\n            }).subscribe(filterCase => {\n                this._taskService.getTasks(SimpleFilter.fromTaskQuery({\n                    case: {\n                        id: (filterCase.outcome as CreateCaseEventOutcome).aCase.stringId\n                    }\n                })).subscribe(page => {\n                    if (!hasContent(page)) {\n                        throw new Error('Expected filter process to contain tasks, but none were found!');\n                    }\n\n                    const initTask = page.content.find(task => task.transitionId === UserFilterConstants.SET_FILTER_METADATA_TRANSITION_ID);\n                    if (initTask === undefined) {\n                        throw new Error(`Expected filter process to contain task '${UserFilterConstants.SET_FILTER_METADATA_TRANSITION_ID\n                        }', but none was found!`);\n                    }\n\n                    const requestBody = {\n                        [UserFilterConstants.FILTER_TYPE_FIELD_ID]: {\n                            type: FieldTypeResource.ENUMERATION_MAP,\n                            value: searchService.filterType\n                        },\n                        [UserFilterConstants.FILTER_FIELD_ID]: {\n                            type: FieldTypeResource.FILTER,\n                            value: searchService.rootPredicate.query.value,\n                            allowedNets,\n                            filterMetadata: this.filterMetadataFromSearchService(\n                                searchService,\n                                searchCategories,\n                                withDefaultCategories,\n                                inheritAllowedNets\n                            )\n                        },\n                    };\n\n                    let parentFilterCaseIdField;\n                    if (navigationItemTaskData !== null && navigationItemTaskData !== undefined) {\n                        parentFilterCaseIdField = getFieldFromDataGroups(navigationItemTaskData,\n                            UserFilterConstants.FILTER_CASE_ID_FIELD_ID);\n                    }\n\n                    if (parentFilterCaseIdField !== undefined) {\n                        requestBody[UserFilterConstants.PARENT_FILTER_CASE_ID_FIELD_ID] = {\n                            type: FieldTypeResource.TEXT,\n                            value: parentFilterCaseIdField.value\n                        };\n                    } else if (viewId !== undefined || viewId !== '') {\n                        requestBody[UserFilterConstants.ORIGIN_VIEW_ID_FIELD_ID] = {\n                            type: FieldTypeResource.TEXT,\n                            value: viewId\n                        };\n                    }\n\n                    this.assignSetDataFinish(initTask, {\n                        [initTask.stringId]: {\n                            ...requestBody,\n                            ...additionalData\n                        }\n                    }, this._callChainService.create(success => {\n                        if (!success) {\n                            throw new Error('Filter instance could not be initialized');\n                        }\n\n                        result.next((filterCase.outcome as CreateCaseEventOutcome).aCase.stringId);\n                        result.complete();\n                    }));\n                });\n            });\n        }, 'saveWithSideMenu');\n        return result.asObservable();\n    }\n\n    protected whenInitialized(onSuccess: () => void,\n                              method?: string,\n                              onFailure: () => void = () => {\n                                  this._log.error(`UserFilterService failed to initialize and the called method${\n                                      method ? ' (' + method + ')' : ''\n                                  } cannot be performed`);\n                              }) {\n        this._initialized$.asObservable().pipe(take(1)).subscribe(initialized => {\n            initialized ? onSuccess() : onFailure();\n        });\n    }\n\n    // TODO 6.4.2021 IMPROVEMENT - extract similar method into some utility service\n    protected assignSetDataFinish(task: Task, data: TaskSetDataRequestBody, callChain: Subject<boolean>): void {\n        this._taskService.assignTask(task.stringId).subscribe(assignOutcome => {\n            if (assignOutcome.error) {\n                this._log.error(`Could not assign task '${task.title}'`, task, assignOutcome.error);\n                callChain.next(false);\n                return;\n            }\n\n            this._taskService.setData(task.stringId, data).subscribe(() => {\n                this._taskService.finishTask(task.stringId).subscribe(finishOutcome => {\n                    if (finishOutcome.error) {\n                        this._log.error(`Could not finish task '${task.title}'`, task, finishOutcome.error);\n                        callChain.next(false);\n                        return;\n                    }\n\n                    callChain.next(true);\n                }, error => {\n                    this._log.error(`Could not finish task '${task.title}'`, task, error);\n                    callChain.next(false);\n                });\n            }, error => {\n                this._log.error(`Could not set data of task '${task.title}'`, task, data, error);\n                callChain.next(false);\n            });\n        }, error => {\n            this._log.error(`Could not assign task '${task.title}'`, task, error);\n            callChain.next(false);\n        });\n    }\n\n    protected filterMetadataFromSearchService(searchService: SearchService,\n                                              searchCategories: ReadonlyArray<Type<Category<any>>>,\n                                              withDefaultCategories: boolean,\n                                              inheritAllowedNets: boolean): FilterMetadata {\n        return {\n            filterType: searchService.filterType,\n            predicateMetadata: searchService.createPredicateMetadata(),\n            searchCategories: searchCategories.map(c => this._categoryResolverService.serialize(c)),\n            defaultSearchCategories: withDefaultCategories,\n            inheritAllowedNets\n        };\n    }\n}\n","import {Component, Inject} from '@angular/core';\nimport {NAE_SIDE_MENU_CONTROL} from '../../side-menu-injection-token';\nimport {SideMenuControl} from '../../models/side-menu-control';\nimport {SaveFilterInjectionData} from './model/save-filter-injection-data';\nimport {AbstractTaskViewComponent} from '../../../view/task-view/abstract-task-view';\nimport {TaskViewService} from '../../../view/task-view/service/task-view.service';\nimport {TaskEventNotification} from '../../../task-content/model/task-event-notification';\nimport {TaskEvent} from '../../../task-content/model/task-event';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {UserFiltersService} from '../../../filter/user-filters.service';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n    selector: 'ncc-abstract-save-filter',\n    template: ''\n})\nexport abstract class AbstractSaveFilterComponent extends AbstractTaskViewComponent {\n\n    protected _injectedData: SaveFilterInjectionData;\n\n    protected constructor(@Inject(NAE_SIDE_MENU_CONTROL) protected _sideMenuControl: SideMenuControl,\n                          protected _userFilterService: UserFiltersService,\n                          protected _log: LoggerService,\n                          taskViewService: TaskViewService,\n                          _activatedRoute?: ActivatedRoute) {\n        super(taskViewService, _activatedRoute);\n        if (this._sideMenuControl.data) {\n            this._injectedData = this._sideMenuControl.data as SaveFilterInjectionData;\n        }\n    }\n\n    public processTaskEvents(notification: TaskEventNotification): void {\n        if (!notification.success) {\n            return;\n        }\n\n        if (notification.event === TaskEvent.FINISH) {\n            this._sideMenuControl.close({opened: false, message: 'Filter saved'});\n        }\n\n        if (notification.event === TaskEvent.CANCEL) {\n            this._userFilterService.delete(this._injectedData.newFilterCaseId);\n            this._sideMenuControl.close({opened: false, message: 'Filter save canceled'});\n        }\n    }\n}\n","export enum HeaderType {\n    CASE = 'case',\n    TASK = 'task',\n    WORKFLOW = 'workflow',\n}\n","import {SideMenuInjectionData} from '../../../models/side-menu-injection-data';\nimport {Observable} from 'rxjs';\nimport {PetriNetReference} from '../../../../resources/interface/petri-net-reference';\nimport {InjectionToken} from '@angular/core';\n\nexport interface NewCaseInjectionData extends SideMenuInjectionData {\n    allowedNets$: Observable<Array<PetriNetReference>>;\n}\n\nexport const NAE_NEW_CASE_CREATION_CONFIGURATION_DATA = new InjectionToken<NewCaseCreationConfigurationData>('NewCaseCreationConfigurationData');\n\n/**\n * injection token used for new case configuration\n */\nexport interface NewCaseCreationConfigurationData {\n\n    enableCaseTitle: boolean;\n\n    isCaseTitleRequired: boolean;\n\n    newCaseButtonConfig?: NewCaseButtonConfiguration;\n\n    blockNets?: string[];\n\n}\n\nexport interface NewCaseButtonConfiguration {\n\n    createCaseButtonTitle?: string;\n\n    createCaseButtonIcon?: string;\n\n    showCreateCaseButton?: boolean;\n\n}\n","import {Case} from '../../resources/interface/case';\nimport {Observable, Subscription} from 'rxjs';\nimport {HeaderType} from '../../header/models/header-type';\nimport {CaseViewService} from './service/case-view-service';\nimport {AbstractViewWithHeadersComponent} from '../abstract/view-with-headers';\nimport {Authority} from '../../resources/interface/authority';\nimport {OverflowService} from '../../header/services/overflow.service';\nimport {\n    NAE_NEW_CASE_CREATION_CONFIGURATION_DATA,\n    NewCaseCreationConfigurationData\n} from '../../side-menu/content-components/new-case/model/new-case-injection-data';\nimport {Component, Inject, Optional, OnDestroy} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n    selector: 'ncc-abstract-case-view',\n    template: ''\n})\nexport abstract class AbstractCaseViewComponent extends AbstractViewWithHeadersComponent implements OnDestroy{\n\n    public readonly MINIMAL_OFFSET = 120;\n    public readonly headerType: HeaderType = HeaderType.CASE;\n    public cases$: Observable<Array<Case>>;\n    public loading: boolean;\n    public canCreate: boolean;\n    public authorityToCreate: Array<string>;\n    protected canCreateSub: Subscription;\n\n    protected constructor(protected _caseViewService: CaseViewService,\n                          protected _overflowService?: OverflowService,\n                          protected _authority: Array<Authority> = [{authority: 'ROLE_USER'}],\n                          @Optional() @Inject(NAE_NEW_CASE_CREATION_CONFIGURATION_DATA) protected _newCaseCreationConfig: NewCaseCreationConfigurationData = {\n                              enableCaseTitle: true,\n                              isCaseTitleRequired: true\n                          },\n                          protected _activatedRoute?: ActivatedRoute) {\n        super(_caseViewService, _activatedRoute);\n        this._caseViewService.loading$.subscribe(loading => {\n            this.loading = loading;\n        });\n        this.canCreateSub = this._caseViewService.getNewCaseAllowedNets().subscribe(allowedNets => {\n            this.canCreate = allowedNets.length > 0;\n        });\n        this.cases$ = this._caseViewService.cases$;\n        this.authorityToCreate = _authority.map(a => a.authority);\n    }\n\n    get newCaseCreationConfig(): NewCaseCreationConfigurationData {\n        return this._newCaseCreationConfig;\n    }\n\n    public abstract handleCaseClick(clickedCase: Case): void;\n\n    public hasAuthority(): boolean {\n        return (this._caseViewService.hasAuthority(this.authorityToCreate) && this.canCreate);\n    }\n\n    public getWidth() {\n        return (this._overflowService && this._overflowService.overflowMode && this._overflowService.columnCount) ?\n            `${this._overflowService.columnCount * this._overflowService.columnWidth + this.MINIMAL_OFFSET}px` : '100%';\n    }\n\n    public getOverflowStatus() {\n        return this._overflowService ? this._overflowService.overflowMode : false;\n    }\n\n    ngOnDestroy() {\n        super.ngOnDestroy();\n        if (this.canCreateSub) {\n            this.canCreateSub.unsubscribe();\n        }\n    }\n}\n","import {Component, Inject} from '@angular/core';\nimport {NAE_SIDE_MENU_CONTROL} from '../../side-menu-injection-token';\nimport {SideMenuControl} from '../../models/side-menu-control';\nimport {LoadFilterInjectionData} from './model/load-filter-injection-data';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {AbstractCaseViewComponent} from '../../../view/case-view/abstract-case-view';\nimport {CaseViewService} from '../../../view/case-view/service/case-view-service';\nimport {Case} from '../../../resources/interface/case';\nimport {getImmediateData} from '../../../utility/get-immediate-data';\nimport {UserFilterConstants} from '../../../filter/models/user-filter-constants';\nimport {SavedFilterMetadata} from '../../../search/models/persistance/saved-filter-metadata';\nimport {SimpleFilter} from '../../../filter/models/simple-filter';\n\n@Component({\n    selector: 'ncc-abstract-load-filter',\n    template: ''\n})\nexport abstract class AbstractLoadFilterComponent extends AbstractCaseViewComponent {\n\n    protected _injectedData: LoadFilterInjectionData;\n\n    protected constructor(@Inject(NAE_SIDE_MENU_CONTROL) protected _sideMenuControl: SideMenuControl,\n                          protected _log: LoggerService,\n                          caseViewService: CaseViewService) {\n        super(caseViewService);\n        if (this._sideMenuControl.data) {\n            this._injectedData = this._sideMenuControl.data as LoadFilterInjectionData;\n        }\n    }\n\n    handleCaseClick(clickedCase: Case) {\n        const immediate = getImmediateData(clickedCase, UserFilterConstants.FILTER_FIELD_ID);\n        this._sideMenuControl.close({\n            opened: false,\n            message: 'Filter selected',\n            data: {\n                allowedNets: immediate.allowedNets,\n                filterMetadata: immediate.filterMetadata,\n                originViewId: getImmediateData(clickedCase, UserFilterConstants.ORIGIN_VIEW_ID_FIELD_ID).value,\n                filterCase: clickedCase,\n                filterCaseId: clickedCase.stringId,\n                filter: new SimpleFilter(clickedCase.stringId, immediate.filterMetadata.filterType, {\n                    query: immediate.value\n                }, clickedCase.title)\n            } as SavedFilterMetadata\n        });\n    }\n}\n","import {SideMenuControl} from '../../models/side-menu-control';\nimport {Component, Inject} from '@angular/core';\nimport {NAE_SIDE_MENU_CONTROL} from '../../side-menu-injection-token';\nimport {CaseViewService} from '../../../view/case-view/service/case-view-service';\nimport {Case} from '../../../resources/interface/case';\nimport {AbstractCaseViewComponent} from '../../../view/case-view/abstract-case-view';\nimport {UserImpersonateConfigMetadata} from '../../../impersonation/models/user-impersonate-config-metadata';\nimport {UserImpersonateInjectionData} from './model/user-impersonate-injection-data';\n\n@Component({\n    selector: 'ncc-abstract-user-impersonate',\n    template: ''\n})\nexport abstract class AbstractUserImpersonateComponent extends AbstractCaseViewComponent {\n\n    protected _injectedData: UserImpersonateInjectionData;\n\n    protected constructor(@Inject(NAE_SIDE_MENU_CONTROL) protected _sideMenuControl: SideMenuControl,\n                          caseViewService: CaseViewService) {\n        super(caseViewService);\n        if (this._sideMenuControl.data) {\n            this._injectedData = this._sideMenuControl.data as UserImpersonateInjectionData;\n        }\n    }\n\n    handleCaseClick(clickedCase: Case) {\n        this._sideMenuControl.close({\n            opened: false,\n            message: 'User selected',\n            data: {\n                stringId: clickedCase.stringId\n            } as UserImpersonateConfigMetadata\n        });\n    }\n}\n","/* COMPONENTS */\nexport * from './import-net/abstract-import-net.component';\nexport * from './new-case/abstract-new-case.component';\nexport * from './user-assign/abstract-user-assign.component';\nexport * from './user-assign/user-assign-list/abstract-user-assign-list.component';\nexport * from './user-assign/abstract-multi-user-assign.component';\nexport * from './user-assign/multi-user-assign-list/abstract-multi-user-assign-list.component';\nexport * from './user-assign/multi-user-assign-list/multi-user-assign-item/abstract-multi-user-assign-item.component';\nexport * from './user-assign/user-assign-list/user-assign-item/abstract-user-assign-item.component';\nexport * from './filter-selector/abstract-filter-selector.component';\nexport * from './filter-selector/filter-selector-list-item/abstract-filter-selector-list-item.component';\nexport * from './option-selector/abstract-option-selector.component';\nexport * from './save-filter/abstract-save-filter.component';\nexport * from './load-filter/abstract-load-filter.component';\nexport * from './user-impersonate/abstract-user-impersonate.component';\n\n/* MODELS */\nexport * from './filter-selector/model/filter-selector-injection-data';\nexport * from './filter-selector/model/filtered-array';\nexport * from './option-selector/model/option-selector-injection-data';\nexport * from './user-assign/model/user-list-injected-data';\nexport * from './save-filter/model/save-filter-injection-data';\nexport * from './load-filter/model/load-filter-injection-data';\nexport * from './injection-tokens';\nexport * from './new-case/model/new-case-injection-data';\nexport * from './user-impersonate/model/user-impersonate-injection-data';\nexport * from './task-view/model/task-view-injection-data';\n","import {AfterViewInit, Component, ViewChild} from '@angular/core';\nimport {PortalWrapper} from '../models/portal-wrapper';\nimport {SideMenuService} from '../services/side-menu.service';\nimport {Observable} from 'rxjs';\nimport {fromPromise} from 'rxjs/internal-compatibility';\nimport {tap} from 'rxjs/operators';\nimport {MatDrawerToggleResult, MatSidenav} from '@angular/material/sidenav';\n\n@Component({\n    selector: 'ncc-abstract-side-menu-container',\n    template: ''\n})\nexport abstract class AbstractSideMenuContainerComponent implements AfterViewInit {\n\n    @ViewChild('rightSideMenu') public sideMenu: MatSidenav;\n    public portalWrapper: PortalWrapper;\n\n\n    public constructor(protected _sideMenuService: SideMenuService) {\n        this.portalWrapper = new PortalWrapper<any>(null, null);\n    }\n\n    ngAfterViewInit() {\n        this._sideMenuService.registerSideMenu(this);\n    }\n\n    public open(portalWrapper: PortalWrapper): Observable<MatDrawerToggleResult> {\n        this.portalWrapper = portalWrapper;\n        return fromPromise(this.sideMenu.open());\n    }\n\n    public close(context: AbstractSideMenuContainerComponent): Observable<MatDrawerToggleResult> {\n        return fromPromise(context.sideMenu.close()).pipe(\n            tap((result) => {\n                if (result === 'close') {\n                    context.portalWrapper = context.portalWrapper = new PortalWrapper<any>(null, null);\n                }\n            })\n        );\n    }\n\n    public isOpened(): boolean {\n        return this.sideMenu.opened;\n    }\n\n    public openedChange(): Observable<boolean> {\n        return this.sideMenu.openedChange.asObservable();\n    }\n\n}\n","/* APIS */\nexport * from './content-components/public-api';\n\n/* COMPONENTS */\nexport * from './side-menu-container/abstract-side-menu-container.component';\n\n/* SERVICES */\nexport * from './services/side-menu.service';\nexport * from './side-menu-injection-token';\nexport * from './net-version-visible-injection-token';\n\n/* MODELS */\nexport * from './models/side-menu-control';\nexport * from './models/side-menu-event';\nexport * from './models/side-menu-injection-data';\nexport * from './models/side-menu-ref';\nexport * from './models/side-menu-size';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {AlertDialogComponent} from './alert-dialog.component';\nimport {FlexLayoutModule} from '@angular/flex-layout';\nimport {MaterialModule} from '../../../material/material.module';\n\n\n@NgModule({\n    declarations: [\n        AlertDialogComponent\n    ],\n    exports: [\n        AlertDialogComponent\n    ],\n    imports: [\n        CommonModule,\n        MaterialModule,\n        FormsModule,\n        FlexLayoutModule\n    ]\n})\nexport class AlertDialogModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {FlexLayoutModule} from '@angular/flex-layout';\nimport {MaterialModule} from '../../../material/material.module';\nimport {ConfirmDialogComponent} from './confirm-dialog.component';\n\n\n@NgModule({\n    declarations: [\n        ConfirmDialogComponent\n    ],\n    exports: [\n        ConfirmDialogComponent\n    ],\n    imports: [\n        CommonModule,\n        MaterialModule,\n        FormsModule,\n        FlexLayoutModule\n    ]\n})\nexport class ConfirmDialogModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {FlexLayoutModule} from '@angular/flex-layout';\nimport {MaterialModule} from '../../../material/material.module';\nimport {PromptDialogComponent} from './prompt-dialog.component';\nimport {TranslateLibModule} from '../../../translate/translate-lib.module';\n\n\n@NgModule({\n    declarations: [\n        PromptDialogComponent\n    ],\n    exports: [\n        PromptDialogComponent\n    ],\n    imports: [\n        CommonModule,\n        MaterialModule,\n        FormsModule,\n        FlexLayoutModule,\n        TranslateLibModule\n    ]\n})\nexport class PromptDialogModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {FlexLayoutModule} from '@angular/flex-layout';\nimport {MaterialModule} from '../material/material.module';\nimport {AlertDialogModule} from './components/alert-dialog/alert-dialog.module';\nimport {ConfirmDialogModule} from './components/confirm-dialog/confirm-dialog.module';\nimport {PromptDialogModule} from './components/prompt-dialog/prompt-dialog.module';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        MaterialModule,\n        FormsModule,\n        FlexLayoutModule,\n        AlertDialogModule,\n        ConfirmDialogModule,\n        PromptDialogModule\n    ],\n    exports: [\n        AlertDialogModule,\n        ConfirmDialogModule,\n        PromptDialogModule\n    ]\n})\nexport class DialogModule {\n}\n","// COMPONENTS\nexport * from './components/alert-dialog/alert-dialog.component';\nexport * from './components/confirm-dialog/confirm-dialog.component';\nexport * from './components/prompt-dialog/prompt-dialog.component';\n\n// MODULES\nexport * from './components/alert-dialog/alert-dialog.module';\nexport * from './components/confirm-dialog/confirm-dialog.module';\nexport * from './components/prompt-dialog/prompt-dialog.module';\nexport * from './dialog.module';\n\n// SERVICES\nexport * from './services/dialog.service';\nexport * from './injection-tokens';\n","export enum HeaderMode {\n    SORT = 'sort',\n    SEARCH = 'search',\n    EDIT = 'edit',\n}\n","import {HeaderMode} from './models/header-mode';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {HeaderColumn} from './models/header-column';\n\n\nexport interface HeaderStateInterface {\n    mode: HeaderMode;\n    readonly selectedHeaders$: Observable<Array<HeaderColumn>>;\n    readonly selectedHeaders: Array<HeaderColumn>;\n    readonly lastSelectedHeaders: Array<HeaderColumn>;\n    saveState: () => void;\n    restoreLastState: () => void;\n    restoreLastMode: () => void;\n}\n\n/**\n * Keeps the current state of the header\n */\nexport class HeaderState implements HeaderStateInterface {\n\n    public mode: HeaderMode = HeaderMode.SORT;\n\n    private _lastMode: HeaderMode = HeaderMode.SORT;\n    private _selectedHeaders$: BehaviorSubject<Array<HeaderColumn>>;\n    private _lastSelectedHeaders: Array<HeaderColumn>;\n\n    constructor(initialHeaders: Array<HeaderColumn>) {\n        this._lastSelectedHeaders = new Array<HeaderColumn>();\n        this._selectedHeaders$ = new BehaviorSubject<Array<HeaderColumn>>(initialHeaders);\n    }\n\n    public get selectedHeaders$(): Observable<Array<HeaderColumn>> {\n        return this._selectedHeaders$.asObservable();\n    }\n\n    public get selectedHeaders(): Array<HeaderColumn> {\n        return this._selectedHeaders$.getValue();\n    }\n\n    get lastSelectedHeaders(): Array<HeaderColumn> {\n        return this._lastSelectedHeaders;\n    }\n    public saveState(): void {\n        this._lastMode = this.mode;\n        this._lastSelectedHeaders = this._selectedHeaders$.getValue();\n    }\n\n    public restoreLastMode(): void {\n        this.mode = this._lastMode;\n    }\n\n    public restoreLastState(): void {\n        this.mode = this._lastMode;\n        this._selectedHeaders$.next(this._lastSelectedHeaders);\n    }\n\n    public restoreLastHeadersToIndex(count: number): void {\n        this._selectedHeaders$.next(this._lastSelectedHeaders.slice(0, count))\n    }\n\n    public updateSelectedHeaders(newSelectedHeaders: Array<HeaderColumn>): void {\n        this._selectedHeaders$.next(newSelectedHeaders);\n    }\n\n    public asInterface(): HeaderStateInterface {\n        return {\n            mode: this.mode,\n            selectedHeaders$: this.selectedHeaders$,\n            selectedHeaders: this.selectedHeaders,\n            lastSelectedHeaders: this.lastSelectedHeaders,\n            saveState: this.saveState,\n            restoreLastState: this.restoreLastState,\n            restoreLastMode: this.restoreLastMode\n        };\n    }\n}\n","import {BehaviorSubject, Observable, ReplaySubject, Subject} from 'rxjs';\nimport {FieldsGroup} from './models/fields-group';\nimport {HeaderState, HeaderStateInterface} from './header-state';\nimport {Injectable, OnDestroy, Optional} from '@angular/core';\nimport {SortChangeDescription} from './models/user-changes/sort-change-description';\nimport {SearchChangeDescription} from './models/user-changes/search-change-description';\nimport {HeaderChange} from './models/user-changes/header-change';\nimport {PetriNetReference} from '../resources/interface/petri-net-reference';\nimport {HeaderType} from './models/header-type';\nimport {HeaderMode} from './models/header-mode';\nimport {HeaderColumn, HeaderColumnType} from './models/header-column';\nimport {UserPreferenceService} from '../user/services/user-preference.service';\nimport {LoggerService} from '../logger/services/logger.service';\nimport {LoadingEmitter} from '../utility/loading-emitter';\nimport {SortDirection} from '@angular/material/sort';\nimport {HeaderChangeType} from './models/user-changes/header-change-type';\nimport {ViewIdService} from '../user/services/view-id.service';\nimport {Net} from '../process/net';\nimport {OverflowService} from './services/overflow.service';\n\n@Injectable()\nexport abstract class AbstractHeaderService implements OnDestroy {\n\n    public static readonly DEFAULT_HEADER_COUNT = 5;\n    public static readonly DEFAULT_HEADER_RESPONSIVITY = true;\n\n    protected _headerColumnCount$: BehaviorSubject<number>;\n    protected _preferenceColumnCount$: ReplaySubject<number>;\n    protected _responsiveHeaders$: BehaviorSubject<boolean>;\n    protected _headerState: HeaderState;\n    protected _headerChange$: Subject<HeaderChange>;\n    protected _clearHeaderSearch$: Subject<number>;\n    private _initDefaultHeaders: Array<string>;\n    private _initializedCount: boolean;\n\n    public loading: LoadingEmitter;\n    public fieldsGroup: Array<FieldsGroup>;\n\n    protected constructor(protected _headerType: HeaderType,\n                          protected _preferences: UserPreferenceService,\n                          protected _logger: LoggerService,\n                          @Optional() private _viewIdService: ViewIdService,\n                          @Optional() protected _overflowService: OverflowService) {\n        this.loading = new LoadingEmitter(true);\n        this._headerChange$ = new Subject<HeaderChange>();\n        this.fieldsGroup = [{groupTitle: 'Meta data', fields: this.createMetaHeaders()}];\n        this._headerColumnCount$ = new BehaviorSubject<number>(AbstractHeaderService.DEFAULT_HEADER_COUNT);\n        this._responsiveHeaders$ = new BehaviorSubject<boolean>(AbstractHeaderService.DEFAULT_HEADER_RESPONSIVITY);\n        this._preferenceColumnCount$ = new ReplaySubject<number>();\n        this._clearHeaderSearch$ = new Subject<number>();\n        this._initializedCount = false;\n\n        if (this._viewIdService === null) {\n            this._logger.warn('Header service could not inject ViewIdService! User preferences won\\'t be loaded or saved!');\n        }\n\n        this._preferences.preferencesChanged$.subscribe(() => {\n            this.loadHeadersFromPreferences();\n        });\n\n        this.initializeHeaderState();\n    }\n\n    /**\n     * Provides Observable for all changes in header\n     */\n    get headerChange$(): Observable<HeaderChange> {\n        return this._headerChange$.asObservable();\n    }\n\n    get selectedHeaders$(): Observable<Array<HeaderColumn>> {\n        return this._headerState.selectedHeaders$;\n    }\n\n    get headerState(): HeaderStateInterface {\n        return this._headerState.asInterface();\n    }\n\n    get headerType(): HeaderType {\n        return this._headerType;\n    }\n\n    get overflowMode(): boolean {\n        if (!!this._overflowService) {\n            return this._overflowService.overflowMode;\n        } else {\n            return false;\n        }\n    }\n\n    get headerColumnCount(): number {\n        return this._headerColumnCount$.getValue();\n    }\n\n    set headerColumnCount(maxColumns: number) {\n        if (maxColumns !== this.headerColumnCount) {\n            this._headerColumnCount$.next(maxColumns);\n            this.updateHeaderColumnCount();\n            if (!this._initializedCount) {\n                this.initializeDefaultHeaderState();\n                this._initializedCount = true;\n            }\n        }\n    }\n\n    get headerColumnCount$(): Observable<number> {\n        return this._headerColumnCount$.asObservable();\n    }\n\n    get responsiveHeaders(): boolean {\n        return this._responsiveHeaders$.getValue();\n    }\n\n    set responsiveHeaders(responsiveHeaders: boolean) {\n        this._responsiveHeaders$.next(responsiveHeaders);\n    }\n\n    get responsiveHeaders$(): Observable<boolean> {\n        return this._responsiveHeaders$.asObservable();\n    }\n\n    get clearHeaderSearch$(): Observable<number> {\n        return this._clearHeaderSearch$.asObservable();\n    }\n\n    set initDefaultHeaders(defaultHeaders: Array<string>) {\n        this._initDefaultHeaders = defaultHeaders;\n    }\n\n    get initDefaultHeaders(): Array<string> {\n        return this._initDefaultHeaders;\n    }\n\n    get preferenceColumnCount$(): Observable<number> {\n        return this._preferenceColumnCount$.asObservable();\n    }\n\n    private initializeHeaderState(): void {\n        const defaultHeaders = [];\n        for (let i = 0; i < this.fieldsGroup[0].fields.length && defaultHeaders.length < this.headerColumnCount; i++) {\n            if (this.fieldsGroup[0].fields[i].initial) {\n                defaultHeaders.push(this.fieldsGroup[0].fields[i]);\n            }\n        }\n        while (defaultHeaders.length < this.headerColumnCount) {\n            defaultHeaders.push(null);\n        }\n        this._headerState = new HeaderState(defaultHeaders);\n    }\n\n    protected initializeDefaultHeaderState(): void {\n        if (this.initDefaultHeaders && Array.isArray(this.initDefaultHeaders)) {\n            const defaultHeaders = [];\n            for (let i = 0; i < this.headerColumnCount; i++) {\n                defaultHeaders.push(null);\n            }\n            for (let i = 0; i < this.initDefaultHeaders.length; i++) {\n                if (i >= this.headerColumnCount) {\n                    this._logger.warn('there are more NAE_DEFAULT_HEADERS than header columns. Skipping the rest...');\n                    break;\n                }\n                for (const h of this.fieldsGroup) {\n                    const head = h.fields.find(header => header.uniqueId === this.initDefaultHeaders[i]);\n                    if (head) {\n                        defaultHeaders[i] = head;\n                        break;\n                    }\n                }\n            }\n            this._headerState.updateSelectedHeaders(defaultHeaders);\n        }\n        this.loadHeadersFromPreferences();\n    }\n\n    /**\n     * Adds `null` headers if the new count is greater than the current count.\n     *\n     * Removes extra headers if the new count is smaller than the current count.\n     */\n    protected updateHeaderColumnCount(): void {\n        let headers = this._headerState.selectedHeaders;\n        if (headers.length < this.headerColumnCount) {\n            const lastSelectedHeaders = this._headerState.lastSelectedHeaders;\n            if (headers.length < this.headerColumnCount && !!lastSelectedHeaders && headers.length < lastSelectedHeaders.length) {\n                headers.push(...lastSelectedHeaders.slice(headers.length, this.headerColumnCount));\n            }\n            while (headers.length <= this.headerColumnCount) {\n                headers.push(null);\n            }\n        } else if (headers.length > this.headerColumnCount) {\n            headers = headers.slice(0, this.headerColumnCount);\n        }\n        this._headerState.updateSelectedHeaders(headers);\n    }\n\n    public setAllowedNets(allowedNets: Array<PetriNetReference>) {\n        /* TODO by simply replacing the select options with new object, we don't loose the old references.\n             Columns with headers from nets that are no longer allowed should have their value cleared.\n             Columns with valid values that are not metadata should have their selection remapped to the new objects.\n         */\n\n        const fieldsGroups: Array<FieldsGroup> = [];\n        allowedNets.forEach(allowedNet => {\n            const fieldsGroup: FieldsGroup = {\n                groupTitle: allowedNet.title,\n                fields: []\n            };\n            allowedNet.immediateData.forEach(immediate => {\n                fieldsGroup.fields.push(\n                    new HeaderColumn(HeaderColumnType.IMMEDIATE, immediate.stringId, immediate.title,\n                        immediate.type, false, allowedNet.identifier)\n                );\n            });\n            fieldsGroups.push(fieldsGroup);\n        });\n\n        this.fieldsGroup.splice(1, this.fieldsGroup.length - 1);\n        this.fieldsGroup.push(...fieldsGroups);\n    }\n\n    public setTaskAllowedNets(allowedNets: Array<Net>) {\n        /* TODO by simply replacing the select options with new object, we don't loose the old references.\n             Columns with headers from nets that are no longer allowed should have their value cleared.\n             Columns with valid values that are not metadata should have their selection remapped to the new objects.\n         */\n\n        const fieldsGroups: Array<FieldsGroup> = [];\n        allowedNets.forEach(allowedNet => {\n            const fieldsGroup: FieldsGroup = {\n                groupTitle: allowedNet.title,\n                fields: []\n            };\n            const existing = new Set();\n            allowedNet.transitions.forEach(trans => {\n                trans.immediateData.forEach(data => {\n                    if (!existing.has(data.stringId)) {\n                        existing.add(data.stringId);\n                        fieldsGroup.fields.push(\n                            new HeaderColumn(HeaderColumnType.IMMEDIATE, data.stringId,\n                                data.title, data.type, false, allowedNet.identifier)\n                        );\n                    }\n                });\n            });\n            fieldsGroups.push(fieldsGroup);\n        });\n\n        this.fieldsGroup.splice(1, this.fieldsGroup.length - 1);\n        this.fieldsGroup.push(...fieldsGroups);\n    }\n\n    /**\n     * If this view has som headers stored in it's preferences attempts to load them.\n     * If the preferences contain nonexistent headers they will be skipped.\n     *\n     * This function is NOT called by the abstract class' constructor.\n     * It is the responsibility of the child class to call it at an appropriate moment.\n     */\n    protected loadHeadersFromPreferences(): void {\n        const viewId = this.getViewId();\n        if (!viewId) {\n            return;\n        }\n        const preferredHeaderKeys = this._preferences.getHeaders(viewId);\n        if (!preferredHeaderKeys) {\n            return;\n        }\n        const newHeaders = [];\n        preferredHeaderKeys.forEach(headerKey => {\n            for (const fieldGroup of this.fieldsGroup) {\n                for (const header of fieldGroup.fields) {\n                    if (header.uniqueId === headerKey) {\n                        newHeaders.push(header);\n                        return; // continue the outermost loop\n                    }\n                }\n            }\n            // no match found\n            newHeaders.push(null);\n            this._logger.warn(\n                `Could not restore header with ID '${headerKey}' from preferences. It is not one of the available headers for this view.`);\n        });\n        this._preferenceColumnCount$.next(newHeaders.length);\n        this._headerState.updateSelectedHeaders(newHeaders);\n    }\n\n    protected abstract createMetaHeaders(): Array<HeaderColumn>;\n\n    /**\n     * Change sort mode for selected column all other column are set to default sort mode\n     * Emit request for sorted panels\n     * @param columnIndex index of the column that caused the sort change\n     * @param active Represents column identifier\n     * @param direction Represent one of sort modes: asd, desc and ''\n     */\n    public sortHeaderChanged(columnIndex: number, active: string, direction: SortDirection): void {\n        let sortChangeDescription: SortChangeDescription;\n        let foundFirstMatch = false; // column can feature in the header in multiple positions => we don't want to send multiple events\n        this.headerState.selectedHeaders.filter(header => !!header).forEach(header => {\n            if (header.uniqueId === active && !foundFirstMatch) {\n                sortChangeDescription = {\n                    sortDirection: direction,\n                    columnType: header.type,\n                    fieldIdentifier: header.fieldIdentifier,\n                    petriNetIdentifier: header.petriNetIdentifier,\n                    columnIdentifier: columnIndex,\n                    fieldType: header.fieldType\n                };\n                header.sortDirection = direction;\n                foundFirstMatch = true;\n            } else {\n                header.sortDirection = '';\n            }\n        });\n        this._headerChange$.next({\n            headerType: this.headerType,\n            changeType: HeaderChangeType.SORT,\n            description: sortChangeDescription\n        });\n    }\n\n    /**\n     * Saves the search value in the appropriate column in the header\n     * Emit request for searched panels by user input query\n     */\n    public headerSearchInputChanged(columnIndex: number, searchInput: any) {\n        const affectedHeader = this.headerState.selectedHeaders[columnIndex];\n        affectedHeader.searchInput = searchInput;\n        const searchChangeDescription: SearchChangeDescription = {\n            fieldIdentifier: affectedHeader.fieldIdentifier,\n            fieldType: affectedHeader.fieldType,\n            fieldTitle: affectedHeader.title,\n            searchInput,\n            type: affectedHeader.type,\n            petriNetIdentifier: affectedHeader.petriNetIdentifier,\n            columnIdentifier: columnIndex\n        };\n        this._headerChange$.next({\n            headerType: this.headerType,\n            changeType: HeaderChangeType.SEARCH,\n            description: searchChangeDescription\n        });\n    }\n\n    /**\n     * Change active header and titles of panels\n     */\n    public headerColumnSelected(columnIndex: number, newHeaderColumn: HeaderColumn): void {\n        const newHeaders: Array<HeaderColumn> = [];\n        newHeaders.push(...this._headerState.selectedHeaders);\n        if (!!newHeaders[columnIndex]) {\n            newHeaders[columnIndex].sortDirection = '';\n            newHeaders[columnIndex].searchInput = undefined;\n        }\n        newHeaders[columnIndex] = newHeaderColumn;\n        this._headerState.updateSelectedHeaders(newHeaders);\n        this._headerChange$.next({\n            headerType: this.headerType,\n            changeType: HeaderChangeType.EDIT,\n            description: {preferredHeaders: this._headerState.selectedHeaders}\n        });\n    }\n\n    /**\n     * Change selected header mode there are three possible modes: SORT, SEARCH and EDIT\n     * @param newMode the mode that the header should change to\n     * @param saveLastMode whether the last state should be remembered.\n     * It can be restored with the [HeaderState.restoreLastMode()]{@link HeaderState#restoreLastMode} method.\n     */\n    public changeMode(newMode: HeaderMode, saveLastMode = true): void {\n        if (newMode === this._headerState.mode) {\n            return;\n        }\n\n        if (saveLastMode) {\n            this._headerState.saveState();\n            this.saveState();\n        }\n\n        const change = this.modeChangeFromCurrent(newMode);\n        this._headerState.mode = newMode;\n        this._headerChange$.next(change);\n    }\n\n    public confirmEditMode(): void {\n        this._headerState.restoreLastMode();\n        this.saveNewState();\n        const change = this.modeChangeAfterEdit();\n        const viewId = this.getViewId();\n        if (!!viewId) {\n            const headers = this.headerState.selectedHeaders;\n            this._preferences.setHeaders(viewId, headers.map(header => !!header ? header.uniqueId : ''));\n        }\n        this._headerChange$.next(change);\n    }\n\n    /**\n     * When user cancels the edit mode, the last saved headers state is loaded and emitted\n     * Last mode in header is reloaded as well. Possible reloaded modes: sort or search\n     */\n    public revertEditMode(): void {\n        this._headerState.restoreLastState();\n        this.restoreLastState();\n        const change = this.modeChangeAfterEdit();\n        this._headerChange$.next({\n            headerType: this.headerType,\n            changeType: HeaderChangeType.EDIT,\n            description: {preferredHeaders: this._headerState.selectedHeaders}\n        });\n        this._headerChange$.next(change);\n    }\n\n    ngOnDestroy(): void {\n        this._headerChange$.complete();\n        this._clearHeaderSearch$.complete();\n        this._headerColumnCount$.complete();\n        this._responsiveHeaders$.complete();\n        this.loading.complete();\n        this._preferenceColumnCount$.complete();\n    }\n\n    /**\n     * @param newMode the {@link HeaderMode} that is being selected as the next mode\n     * @returnsa {@link HeaderChange} object with {@link ModeChangeDescription} object as it's `description`,\n     * where the `previousMode` is set to the currently selected mode and the `currentMode` is set to the provided argument\n     */\n    protected modeChangeFromCurrent(newMode: HeaderMode): HeaderChange {\n        return this.createModeChange(this._headerState.mode, newMode);\n    }\n\n    /**\n     * @returns a {@link HeaderChange} object with {@link ModeChangeDescription} object as it's `description`,\n     * where the `previousMode` is set to [EDIT]{@link HeaderMode#EDIT} and the `currentMode` to the mode\n     * that is currently selected\n     */\n    protected modeChangeAfterEdit(): HeaderChange {\n        return this.createModeChange(HeaderMode.EDIT, this._headerState.mode);\n    }\n\n    /**\n     * @param oldMode the {@link HeaderMode} that was previously selected\n     * @param newMode the {@link HeaderMode} that is selected now\n     * @returns a {@link HeaderChange} object with {@link ModeChangeDescription} object as it's `description`\n     * containing information about a change to the header mode\n     */\n    protected createModeChange(oldMode: HeaderMode, newMode: HeaderMode): HeaderChange {\n        return {\n            changeType: HeaderChangeType.MODE_CHANGED,\n            description: {\n                currentMode: newMode,\n                previousMode: oldMode\n            },\n            headerType: this.headerType\n        };\n    }\n\n    /**\n     * Emits a new value into the [clearHeaderSearch$]{@link AbstractHeaderService#clearHeaderSearch$} stream, that notifies\n     * the header search component, that it should clear the input for the specified column.\n     * @param columnIndex the index of the column that should be cleared\n     */\n    public clearHeaderSearch(columnIndex: number): void {\n        this._clearHeaderSearch$.next(columnIndex);\n    }\n\n    /**\n     * @returns the Id of the view, if the ViewIdService was injected. Returns `undefined` if the service was not injected.\n     */\n    protected getViewId(): string | undefined {\n        if (this._viewIdService) {\n            return this._viewIdService.viewId;\n        }\n        return undefined;\n    }\n\n    protected abstract saveState();\n\n    protected abstract saveNewState();\n\n    protected abstract restoreLastState();\n}\n","import {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {AbstractHeaderService} from '../abstract-header-service';\nimport {HeaderType} from '../models/header-type';\nimport {HeaderColumn, HeaderColumnType} from '../models/header-column';\nimport {CaseMetaField} from './case-menta-enum';\nimport {UserPreferenceService} from '../../user/services/user-preference.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {NAE_DEFAULT_HEADERS} from '../models/default-headers-token';\nimport {Subscription} from 'rxjs';\nimport {OverflowService} from '../services/overflow.service';\nimport {ViewIdService} from '../../user/services/view-id.service';\nimport {AllowedNetsService} from '../../allowed-nets/services/allowed-nets.service';\n\n\n@Injectable()\nexport class CaseHeaderService extends AbstractHeaderService implements OnDestroy {\n    protected subAllowedNets: Subscription;\n\n    constructor(protected _allowedNetsService: AllowedNetsService,\n                preferences: UserPreferenceService,\n                logger: LoggerService,\n                @Optional() viewIdService: ViewIdService,\n                @Optional() protected overflowService: OverflowService,\n                @Optional() @Inject(NAE_DEFAULT_HEADERS) naeDefaultHeaders: Array<string>) {\n        super(HeaderType.CASE, preferences, logger, viewIdService, overflowService);\n        this.subAllowedNets = _allowedNetsService.allowedNets$.subscribe(allowedNets => {\n            this.setAllowedNets(allowedNets);\n            if (naeDefaultHeaders && Array.isArray(naeDefaultHeaders) && naeDefaultHeaders.length > 0) {\n                this.initDefaultHeaders = naeDefaultHeaders;\n                this.initializeDefaultHeaderState();\n            } else {\n                this.loadHeadersFromPreferences();\n            }\n            this.loading.off();\n        });\n    }\n\n    protected createMetaHeaders(): Array<HeaderColumn> {\n        return [\n            new HeaderColumn(HeaderColumnType.META, CaseMetaField.VISUAL_ID, 'headers.caseMeta.visualID', 'text'),\n            new HeaderColumn(HeaderColumnType.META, CaseMetaField.MONGO_ID, 'headers.caseMeta.mongoID', 'text', false),\n            new HeaderColumn(HeaderColumnType.META, CaseMetaField.TITLE, 'headers.caseMeta.title', 'text'),\n            new HeaderColumn(HeaderColumnType.META, CaseMetaField.AUTHOR, 'headers.caseMeta.author', 'user'),\n            new HeaderColumn(HeaderColumnType.META, CaseMetaField.CREATION_DATE, 'headers.caseMeta.creationDate', 'date'),\n        ];\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.subAllowedNets.unsubscribe();\n    }\n\n    public updateColumnCount() {\n        this.updateHeaderColumnCount();\n    }\n\n    protected saveState() {\n        if (this.overflowService) {\n            this.overflowService.saveState();\n        }\n    }\n\n    protected saveNewState() {\n        if (this.overflowService) {\n            this.overflowService.saveNewState();\n        }\n        this.updateHeaderColumnCount();\n    }\n\n    protected restoreLastState() {\n        if (this.overflowService) {\n            this.overflowService.restoreLastState();\n        }\n    }\n}\n","import {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {AbstractHeaderService} from '../abstract-header-service';\nimport {HeaderType} from '../models/header-type';\nimport {HeaderColumn, HeaderColumnType} from '../models/header-column';\nimport {TaskMetaField} from './task-meta-enum';\nimport {UserPreferenceService} from '../../user/services/user-preference.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {Subscription} from 'rxjs';\nimport {NAE_DEFAULT_HEADERS} from '../models/default-headers-token';\nimport {ViewIdService} from '../../user/services/view-id.service';\nimport {AllowedNetsService} from '../../allowed-nets/services/allowed-nets.service';\nimport {OverflowService} from '../services/overflow.service';\n\n\n@Injectable()\nexport class TaskHeaderService extends AbstractHeaderService implements OnDestroy {\n    protected subAllowedNets: Subscription;\n\n    constructor(protected _allowedNetsService: AllowedNetsService,\n                preferences: UserPreferenceService,\n                logger: LoggerService,\n                @Optional() viewIdService: ViewIdService,\n                @Optional() overflowService: OverflowService,\n                @Optional() @Inject(NAE_DEFAULT_HEADERS) naeDefaultHeaders: Array<string>) {\n        super(HeaderType.TASK, preferences, logger, viewIdService, overflowService);\n        this.subAllowedNets = _allowedNetsService.allowedNets$.subscribe(allowedNets => {\n            this.setTaskAllowedNets(allowedNets);\n            if (naeDefaultHeaders && Array.isArray(naeDefaultHeaders) && naeDefaultHeaders.length > 0) {\n                this.initDefaultHeaders = naeDefaultHeaders;\n                this.initializeDefaultHeaderState();\n            } else {\n                this.loadHeadersFromPreferences();\n            }\n            this.loading.off();\n        });\n    }\n\n    protected createMetaHeaders(): Array<HeaderColumn> {\n        return [\n            new HeaderColumn(HeaderColumnType.META, TaskMetaField.CASE, 'headers.taskMeta.case', 'text'),\n            new HeaderColumn(HeaderColumnType.META, TaskMetaField.CASE_ID, 'headers.taskMeta.caseID', 'text', false),\n            new HeaderColumn(HeaderColumnType.META, TaskMetaField.TASK_ID, 'headers.taskMeta.taskID', 'text', false),\n            new HeaderColumn(HeaderColumnType.META, TaskMetaField.TITLE, 'headers.caseMeta.title', 'text'),\n            new HeaderColumn(HeaderColumnType.META, TaskMetaField.PRIORITY, 'headers.taskMeta.priority', 'enumeration'),\n            new HeaderColumn(HeaderColumnType.META, TaskMetaField.USER, 'headers.taskMeta.user', 'text'),\n            new HeaderColumn(HeaderColumnType.META, TaskMetaField.ASSIGN_DATE, 'headers.taskMeta.assignDate', 'date'),\n        ];\n    }\n\n    protected saveState() {\n    }\n\n    protected saveNewState() {\n    }\n\n    protected restoreLastState() {\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.subAllowedNets.unsubscribe();\n    }\n}\n","import {Injectable, OnDestroy, Optional} from '@angular/core';\nimport {AbstractHeaderService} from '../abstract-header-service';\nimport {HeaderType} from '../models/header-type';\nimport {HeaderColumn, HeaderColumnType} from '../models/header-column';\nimport {UserPreferenceService} from '../../user/services/user-preference.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {WorkflowMetaField} from './workflow-meta-enum';\nimport {ViewIdService} from '../../user/services/view-id.service';\nimport {OverflowService} from '../services/overflow.service';\n\n@Injectable()\nexport class WorkflowHeaderService extends AbstractHeaderService implements OnDestroy {\n\n    constructor(preferences: UserPreferenceService,\n                logger: LoggerService,\n                @Optional() viewIdService: ViewIdService,\n                @Optional() overflowService: OverflowService) {\n        super(HeaderType.WORKFLOW, preferences, logger, viewIdService, overflowService);\n        this.loadHeadersFromPreferences();\n        this.loading.off();\n    }\n\n    protected createMetaHeaders(): Array<HeaderColumn> {\n        return [\n            new HeaderColumn(HeaderColumnType.META, WorkflowMetaField.INITIALS, 'headers.workflowMeta.initials', 'text'),\n            new HeaderColumn(HeaderColumnType.META, WorkflowMetaField.TITLE, 'headers.workflowMeta.title', 'text'),\n            new HeaderColumn(HeaderColumnType.META, WorkflowMetaField.NET_ID, 'headers.workflowMeta.netId', 'text', false),\n            new HeaderColumn(HeaderColumnType.META, WorkflowMetaField.VERSION, 'headers.workflowMeta.version', 'text'),\n            new HeaderColumn(HeaderColumnType.META, WorkflowMetaField.AUTHOR, 'headers.workflowMeta.author', 'text'),\n            new HeaderColumn(HeaderColumnType.META, WorkflowMetaField.CREATION_DATE, 'headers.workflowMeta.creationDate', 'date'),\n        ];\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n    }\n\n    protected saveState() {\n    }\n\n    protected saveNewState() {\n    }\n\n    protected restoreLastState() {\n    }\n}\n","import {Injectable, OnDestroy, Optional} from '@angular/core';\nimport {SearchService} from '../search-service/search.service';\nimport {AbstractHeaderService} from '../../header/abstract-header-service';\nimport {HeaderType} from '../../header/models/header-type';\nimport {filter} from 'rxjs/operators';\nimport {HeaderChangeType} from '../../header/models/user-changes/header-change-type';\nimport {HeaderMode} from '../../header/models/header-mode';\nimport {ModeChangeDescription} from '../../header/models/user-changes/mode-change-description';\nimport {SearchChangeDescription} from '../../header/models/user-changes/search-change-description';\nimport {HeaderColumnType} from '../../header/models/header-column';\nimport {CaseMetaField} from '../../header/case-header/case-menta-enum';\nimport {CategoryFactory} from '../category-factory/category-factory';\nimport {CaseVisualId} from '../models/category/case/case-visual-id';\nimport {Category} from '../models/category/category';\nimport {CaseAuthor} from '../models/category/case/case-author';\nimport {CaseCreationDate} from '../models/category/case/case-creation-date';\nimport {CaseTitle} from '../models/category/case/case-title';\nimport {CaseStringId} from '../models/category/case/case-string-id';\nimport {Predicate} from '../models/predicate/predicate';\nimport {ProcessService} from '../../process/process.service';\nimport {CaseSimpleDataset} from '../models/category/case/case-simple-dataset';\nimport {TranslateService} from '@ngx-translate/core';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {Subscription} from 'rxjs';\n\n/**\n * Holds the Id of the predicate in the {@link SearchService}\n */\ninterface PredicateId {\n    predicateId: number;\n}\n\n/**\n * Holds the information necessary for the configuration of a {@link Category} class to generate\n * a predicate for a Meta header field\n */\ninterface MetaGeneratorConfiguration {\n    type: HeaderColumnType.META;\n    fieldIdentifier: string;\n    userInput: Array<any>;\n}\n\n/**\n * Holds the information necessary for the configuration of a {@link Category} class to generate\n * a predicate for a Data header field\n */\ninterface DataGeneratorConfiguration {\n    type: HeaderColumnType.IMMEDIATE;\n    fieldType: string;\n    fieldTitle: string;\n    userInput: Array<any>;\n}\n\ntype HeaderConfiguration = PredicateId & (MetaGeneratorConfiguration | DataGeneratorConfiguration);\n\n/**\n * Acts as an intermediary between the {@link AbstractHeaderService} instances of various types and the {@link SearchService}\n */\n@Injectable()\nexport class HeaderSearchService implements OnDestroy {\n\n    protected _headerService: AbstractHeaderService;\n    protected _columnToConfiguration: Map<number, HeaderConfiguration>;\n    protected _typeToCategory: Map<string, Category<any>>;\n    protected _headerSub: Subscription;\n    protected _searchSub: Subscription;\n\n    constructor(protected _categoryFactory: CategoryFactory,\n                protected _processService: ProcessService,\n                protected _translate: TranslateService,\n                protected _logger: LoggerService,\n                @Optional() protected _searchService: SearchService) {\n        this._columnToConfiguration = new Map<number, HeaderConfiguration>();\n        this._typeToCategory = new Map<string, Category<any>>();\n        [\n            {k: CaseMetaField.VISUAL_ID, v: CaseVisualId},\n            {k: CaseMetaField.TITLE, v: CaseTitle},\n            {k: CaseMetaField.CREATION_DATE, v: CaseCreationDate},\n            {k: CaseMetaField.AUTHOR, v: CaseAuthor},\n            {k: CaseMetaField.MONGO_ID, v: CaseStringId}\n        ].forEach(pair => {\n            this._typeToCategory.set(pair.k, this._categoryFactory.getWithDefaultOperator(pair.v));\n        });\n        this._typeToCategory.set(HeaderColumnType.IMMEDIATE, this._categoryFactory.get(CaseSimpleDataset));\n    }\n\n    ngOnDestroy(): void {\n        if (this._headerSub) {\n            this._headerSub.unsubscribe();\n        }\n        if (this._searchSub) {\n            this._searchSub.unsubscribe();\n        }\n        for (const cat of this._typeToCategory.values()) {\n            cat.destroy();\n        }\n    }\n\n    public set headerService(headerService: AbstractHeaderService) {\n        if (headerService.headerType === HeaderType.CASE || headerService.headerType === HeaderType.TASK) {\n            this._headerService = headerService;\n        }\n\n        if (headerService && this._searchService) {\n            this.initializeHeaderSearch();\n        }\n    }\n\n    /**\n     * {@link HeaderSearchService} can only be initialized if it successfully injected a {@link SearchService}\n     * and a {@link AbstractHeaderService} instance of any of the supported types was set into it.\n     *\n     * Currently only task and case header searching is supported.\n     */\n    protected initializeHeaderSearch(): void {\n        if (!this._searchService) {\n            this._logger.error('You can\\'t call initializeHeaderSearch without providing a SearchService to be injected!');\n            return;\n        }\n        if (!this._headerService) {\n            this._logger.error('You can\\'t call initializeHeaderSearch without setting an AbstractHeaderService implementation instance!');\n            return;\n        }\n\n        this._headerSub = this._headerService.headerChange$\n            .pipe(filter(change => change.changeType === HeaderChangeType.SEARCH || change.changeType === HeaderChangeType.MODE_CHANGED))\n            .subscribe(change => {\n                if (change.changeType === HeaderChangeType.SEARCH) {\n                    this.processSearchChange(change.headerType, change.description as SearchChangeDescription);\n                } else if ((change.description as ModeChangeDescription).previousMode === HeaderMode.SEARCH) {\n                    this.processModeChange();\n                }\n            });\n\n        this._searchSub =\n            this._searchService.predicateRemoved$.subscribe(event => this.handlePredicateRemoval(event.index, event.clearInput));\n    }\n\n    /**\n     * Pushes all the predicates from the headers into the search interface and clears the header inputs\n     */\n    protected processModeChange(): void {\n        const addedPredicateIds = [];\n        this._columnToConfiguration.forEach(config => {\n            this._searchService.removePredicate(config.predicateId);\n\n            let editableCategory;\n            if (config.type === HeaderColumnType.META) {\n                editableCategory = this._typeToCategory.get(config.fieldIdentifier).duplicate();\n                editableCategory.selectDefaultOperator();\n                editableCategory.setOperands(config.userInput);\n            } else {\n                const dataset = (this._typeToCategory.get(HeaderColumnType.IMMEDIATE) as CaseSimpleDataset);\n                editableCategory = dataset.transformToCaseDataset(config.fieldType, config.fieldTitle, config.userInput);\n            }\n            addedPredicateIds.push(this._searchService.addGeneratedLeafPredicate(editableCategory));\n        });\n\n        this._searchService.show(addedPredicateIds);\n\n        this._columnToConfiguration.clear();\n    }\n\n    /**\n     * Transforms the {@link HeaderChange} object into a search predicate\n     */\n    protected processSearchChange(headerType: HeaderType, changeDescription: SearchChangeDescription): void {\n        if (headerType === HeaderType.CASE) {\n            this.processCaseSearch(changeDescription);\n        }\n    }\n\n    /**\n     * Processes the change object and resolves it into the appropriate case search predicate change\n     * @param changeDescription the change object that should be resolved\n     */\n    protected processCaseSearch(changeDescription: SearchChangeDescription): void {\n        if (this.emptyInput(changeDescription)) {\n            this.removePredicate(changeDescription.columnIdentifier);\n            return;\n        }\n\n        if (changeDescription.type === HeaderColumnType.META) {\n            this.processCaseMetaSearch(changeDescription);\n        } else {\n            this.processCaseDataSearch(changeDescription);\n        }\n    }\n\n    /**\n     * Processes the change object of a case meta header and resolves it into the appropriate case search predicate change\n     * @param changeDescription the change object that should be resolved\n     */\n    protected processCaseMetaSearch(changeDescription: SearchChangeDescription): void {\n        const config = {\n            fieldIdentifier: changeDescription.fieldIdentifier,\n            userInput: [changeDescription.searchInput]\n        };\n        const category = this._typeToCategory.get(config.fieldIdentifier);\n        const predicate = category.generatePredicate(config.userInput);\n        this.addPredicate(changeDescription.columnIdentifier, predicate, {\n            type: HeaderColumnType.META,\n            ...config\n        });\n    }\n\n    /**\n     * Processes the change object of a case immediate data header and resolves it into the appropriate case search predicate change\n     * @param changeDescription the change object that should be resolved\n     */\n    protected processCaseDataSearch(changeDescription: SearchChangeDescription): void {\n        this._processService.getNet(changeDescription.petriNetIdentifier).subscribe(net => {\n            const config = {\n                fieldType: changeDescription.fieldType,\n                fieldTitle: changeDescription.fieldTitle,\n                userInput: [changeDescription.searchInput]\n            };\n            const category = this._typeToCategory.get(changeDescription.type) as CaseSimpleDataset;\n            category.configure(changeDescription.fieldIdentifier, config.fieldType, [net.identifier]);\n            const predicate = category.generatePredicate(config.userInput);\n            this.addPredicate(changeDescription.columnIdentifier, predicate, {\n                type: HeaderColumnType.IMMEDIATE,\n                ...config\n            });\n        });\n    }\n\n    /**\n     * @param changeDescription information about the search header change\n     * @returns whether the input was cleared\n     */\n    protected emptyInput(changeDescription: SearchChangeDescription): boolean {\n        return changeDescription.searchInput === undefined\n            || changeDescription.searchInput === null\n            || (typeof changeDescription.searchInput === 'string' && changeDescription.searchInput.length === 0);\n    }\n\n    /**\n     * Updates a Predicate for a given column.\n     * Removes an existing predicate for this column if it exists and adds the new Predicate.\n     * @param column the index of the header column\n     * @param predicate the Predicate that should be added\n     * @param configuration data necessary for the configuration of the {@link Category} that generates the added predicate\n     */\n    protected addPredicate(column: number,\n                           predicate: Predicate,\n                           configuration: MetaGeneratorConfiguration | DataGeneratorConfiguration): void {\n\n        this.removePredicate(column, !this._columnToConfiguration.has(column));\n        const predicateId = this._searchService.addPredicate(predicate);\n        this._columnToConfiguration.set(column, {predicateId, ...configuration});\n    }\n\n    /**\n     * Removes a predicate that corresponds to the provided column\n     * @param column the index of the column that cleared it's search\n     * @param clearInput whether the corresponding header search input should be cleared\n     */\n    protected removePredicate(column: number, clearInput = true): void {\n        const predicateConfig = this._columnToConfiguration.get(column);\n        if (predicateConfig !== undefined) {\n            this._searchService.removePredicate(predicateConfig.predicateId, clearInput);\n            this._columnToConfiguration.delete(column);\n        }\n    }\n\n    /**\n     * @param removedId the id of the removed {@link Predicate}\n     * @param clearInput whether the corresponding header search input should be cleared\n     */\n    protected handlePredicateRemoval(removedId: number, clearInput = true): void {\n        if (this._headerService && clearInput) {\n            this._headerService.clearHeaderSearch(removedId);\n        }\n        this._columnToConfiguration.delete(removedId);\n    }\n}\n","export function stopPropagation($event) {\n    $event.stopPropagation();\n    $event.preventDefault();\n}\n","import {Component, Inject, Injector, Input, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {AbstractHeaderService} from './abstract-header-service';\nimport {CaseHeaderService} from './case-header/case-header.service';\nimport {TaskHeaderService} from './task-header/task-header.service';\nimport {WorkflowHeaderService} from './workflow-header/workflow-header.service';\nimport {HeaderType} from './models/header-type';\nimport {HeaderMode} from './models/header-mode';\nimport {HeaderSearchService} from '../search/header-search-service/header-search.service';\nimport {FormControl, Validators} from '@angular/forms';\nimport {TranslateService} from '@ngx-translate/core';\nimport {OverflowService} from './services/overflow.service';\nimport {stopPropagation} from '../utility/stop-propagation';\nimport {Subscription} from 'rxjs';\nimport {debounceTime} from \"rxjs/operators\";\nimport {CaseViewService} from \"../view/case-view/service/case-view-service\";\nimport {\n    DATA_FIELD_PORTAL_DATA,\n    DataFieldPortalData\n} from \"../data-fields/models/data-field-portal-data-injection-token\";\nimport {MultichoiceField} from \"../data-fields/multichoice-field/models/multichoice-field\";\nimport {EnumerationField} from \"../data-fields/enumeration-field/models/enumeration-field\";\n\n@Component({\n    selector: 'ncc-abstract-header',\n    template: ''\n})\nexport abstract class AbstractHeaderComponent implements OnInit, OnDestroy {\n\n    protected readonly DEFAULT_COLUMN_COUNT = 6;\n    protected readonly DEFAULT_COLUMN_WIDTH = 220;\n    protected readonly INPUT_DEBOUNCE_TIME = 600;\n    @Input() type: HeaderType = HeaderType.CASE;\n    @Input() hideHeaderMenu = false;\n    @Input() showEditButton = true;\n    @Input() showSortButton = true;\n    @Input() showSearchButton = true;\n    @Input() showTableSection = true;\n    @Input() public approval: boolean;\n\n    public headerService: AbstractHeaderService;\n    protected _headerSearch: HeaderSearchService;\n    public readonly headerModeEnum = HeaderMode;\n    public readonly headerTypeEnum = HeaderType;\n    public overflowControl: FormControl;\n    public columnCountControl: FormControl;\n    public columnWidthControl: FormControl;\n    public canOverflow: boolean;\n    public subOverflowControl: Subscription;\n    public subColumnCountControl: Subscription;\n    public subColumnWidthControl: Subscription;\n\n    protected _initHeaderCount: number = undefined;\n    protected _initResponsiveHeaders: boolean = undefined;\n    protected _approvalFormControl: FormControl;\n    protected _changeValue: boolean;\n    protected _subCases: Subscription;\n\n    constructor(protected _injector: Injector,\n                protected _translate: TranslateService,\n                @Optional() protected _overflowService: OverflowService,\n                @Optional() protected _caseViewService: CaseViewService,\n                @Optional() @Inject(DATA_FIELD_PORTAL_DATA) protected _dataFieldPortalData: DataFieldPortalData<MultichoiceField | EnumerationField>) {\n        this.initializeFormControls(this._overflowService !== null);\n        this._changeValue = true;\n    }\n\n    @Input()\n    public set maxHeaderColumns(count: number) {\n        if (this.headerService) {\n            this.headerService.headerColumnCount = count;\n        } else {\n            this._initHeaderCount = count;\n        }\n        if (this._overflowService === null || (this._overflowService !== null && !this._overflowService.initializedCount)) {\n            this.columnCountControl.setValue(count);\n        }\n    }\n\n    @Input()\n    public set responsiveHeaders(responsive: boolean) {\n        if (this.headerService) {\n            this.headerService.responsiveHeaders = responsive;\n        } else {\n            this._initResponsiveHeaders = responsive;\n        }\n    }\n\n    get approvalFormControl(): FormControl {\n        return this._approvalFormControl;\n    }\n\n    public changeHeadersMode(mode: HeaderMode, saveLastMode: boolean = true) {\n        if (this.headerService) {\n            this.headerService.changeMode(mode, saveLastMode)\n        }\n    }\n\n    ngOnInit(): void {\n        this.resolveHeaderService();\n        this.initializedHeaderSearch();\n        if (this._initHeaderCount !== undefined) {\n            this.headerService.headerColumnCount = this._initHeaderCount;\n        }\n        if (this._initResponsiveHeaders !== undefined) {\n            this.headerService.responsiveHeaders = this._initResponsiveHeaders;\n        }\n        this.headerService.preferenceColumnCount$.subscribe(value => this.columnCountControl.setValue(value));\n        this.resolveApprovalDatafields();\n    }\n\n    ngOnDestroy(): void {\n        if (this.canOverflow) {\n            this.subColumnWidthControl.unsubscribe();\n            this.subColumnCountControl.unsubscribe();\n            this.subOverflowControl.unsubscribe();\n        }\n        if (this._subCases) {\n            this._subCases.unsubscribe();\n        }\n    }\n\n    /**\n     * Injects the correct {@link AbstractHeaderService} instance based on this component's type\n     */\n    protected resolveHeaderService() {\n        switch (this.type) {\n            case HeaderType.CASE:\n                this.headerService = this._injector.get(CaseHeaderService);\n                break;\n            case HeaderType.TASK:\n                this.headerService = this._injector.get(TaskHeaderService);\n                break;\n            case HeaderType.WORKFLOW:\n                this.headerService = this._injector.get(WorkflowHeaderService);\n                break;\n        }\n    }\n\n    /**\n     * Sets the correct {@link AbstractHeaderService} instance to the {@link HeaderSearchService}\n     */\n    protected initializedHeaderSearch() {\n        if (this.type === HeaderType.CASE) {\n            this._headerSearch = this._injector.get(HeaderSearchService);\n            this._headerSearch.headerService = this.headerService;\n        }\n    }\n\n    clickStop($event) {\n        stopPropagation($event);\n    }\n\n    getMinWidth() {\n        return (this._overflowService && this._overflowService.overflowMode) ? `${this._overflowService.columnWidth}px` : '0';\n    }\n\n    confirmEditMode() {\n        if (!this.overflowControl.value || (this.overflowControl.value && this.columnWidthControl.valid && this.columnWidthControl.valid)) {\n            this.headerService.confirmEditMode();\n        }\n    }\n\n    getErrorMessageWidth() {\n        return this.buildErrorMessage(this.columnWidthControl, 180);\n    }\n\n    getErrorMessageCount() {\n        return this.buildErrorMessage(this.columnCountControl, 1);\n    }\n\n    buildErrorMessage(formControlRef: FormControl, minNumber) {\n        if (formControlRef.hasError('required')) {\n            return this._translate.instant('dataField.validations.required');\n        }\n        if (formControlRef.hasError('min')) {\n            return this._translate.instant('dataField.validations.min', {length: minNumber});\n        }\n        return '';\n    }\n\n    protected initializeFormControls(exist: boolean) {\n        this.canOverflow = exist;\n        this.overflowControl = new FormControl(exist ? this._overflowService.overflowMode : false);\n        this.columnCountControl = new FormControl(exist ? this._overflowService.columnCount : this.DEFAULT_COLUMN_COUNT, [\n            Validators.required,\n            Validators.min(1)]);\n        this.columnWidthControl = new FormControl(exist ? this._overflowService.columnWidth : this.DEFAULT_COLUMN_WIDTH, [\n            Validators.required,\n            Validators.min(180)]);\n        this._approvalFormControl = new FormControl(false);\n        if (exist) {\n            this.initializeValueChanges();\n        }\n    }\n\n    protected initializeValueChanges() {\n        this.subOverflowControl = this.overflowControl.valueChanges.subscribe(value => {\n            this._overflowService.overflowMode = value;\n        });\n        this.subColumnCountControl = this.columnCountControl.valueChanges.pipe(debounceTime(this.INPUT_DEBOUNCE_TIME)).subscribe(value => {\n            if (this.columnCountControl.valid) {\n                this._overflowService.columnCount = value;\n                if (this.headerService && this.type === HeaderType.CASE) {\n                    this.headerService.headerColumnCount = value;\n                    (this.headerService as CaseHeaderService).updateColumnCount();\n                }\n            }\n        });\n        this.subColumnWidthControl = this.columnWidthControl.valueChanges.pipe(debounceTime(this.INPUT_DEBOUNCE_TIME)).subscribe(value => {\n            if (this.columnWidthControl.valid) {\n                this._overflowService.columnWidth = value;\n                if (this.headerService && this.type === HeaderType.CASE) {\n                    (this.headerService as CaseHeaderService).updateColumnCount();\n                }\n            }\n        });\n    }\n\n    public indeterminate() {\n        if (this._caseViewService) {\n            return this._dataFieldPortalData?.dataField?.value?.length > 0 &&\n                this._caseViewService.cases.some(value => this._dataFieldPortalData?.dataField.value.includes(value.stringId)) &&\n                !this.resolveApprovalValue();\n        }\n        return this._dataFieldPortalData?.dataField?.value?.length > 0 &&\n            this._dataFieldPortalData?.dataField?.value?.length < this._dataFieldPortalData?.dataField?.choices?.length;\n    }\n\n    public typeApproval() {\n        return this._dataFieldPortalData?.dataField instanceof MultichoiceField ? 'multichoice' : 'enumeration';\n    }\n\n    protected resolveApprovalDatafields() {\n        if (this._dataFieldPortalData !== null && this._dataFieldPortalData.dataField instanceof MultichoiceField && this._caseViewService) {\n            this.approvalFormControl.setValue(this.resolveApprovalValue());\n            this.approvalFormControl.valueChanges.subscribe(value => {\n                if (this._changeValue) {\n                    if (value) {\n                        this._dataFieldPortalData.dataField.value = this._caseViewService.cases.map(caze => caze.stringId);\n                    } else {\n                        this._dataFieldPortalData.dataField.value = [];\n                    }\n                }\n                this._changeValue = true;\n            })\n            this._dataFieldPortalData.dataField.valueChanges().subscribe(() => {\n                this._changeValue = false;\n                this.approvalFormControl.setValue(this.resolveApprovalValue());\n            })\n            this._subCases = this._caseViewService.cases$.subscribe(() => {\n                this._changeValue = false;\n                this.approvalFormControl.setValue(this.resolveApprovalValue());\n            })\n        }\n        if (this._dataFieldPortalData !== null && this._dataFieldPortalData.dataField instanceof EnumerationField) {\n            this.approvalFormControl.valueChanges.subscribe(value => {\n                this._dataFieldPortalData.dataField.value = null;\n            })\n        }\n    }\n\n    protected resolveApprovalValue() {\n        if (this._caseViewService.cases.length === 0) {\n            return false;\n        }\n        return this._caseViewService.cases.every(value => this._dataFieldPortalData?.dataField.value.includes(value.stringId));\n    }\n}\n","import {Component, Input} from '@angular/core';\nimport {FormControl} from '@angular/forms';\n\n@Component({\n    selector: 'ncc-abstract-header-mode',\n    template: ''\n})\nexport abstract class AbstractHeaderModeComponent {\n\n    @Input() public overflowWidth: string;\n    @Input() public approval: boolean;\n    @Input() public indeterminate: boolean;\n    @Input() public approvalFormControl: FormControl;\n    @Input() public typeApproval: string;\n\n    constructor() {\n    }\n\n    getMinWidth() {\n        return this.overflowWidth;\n    }\n}\n","import {Component, Input} from '@angular/core';\nimport {AbstractHeaderService} from '../../abstract-header-service';\nimport {Sort} from '@angular/material/sort';\nimport {AbstractHeaderModeComponent} from '../abstract-header-mode.component';\n\n\n@Component({\n    selector: 'ncc-abstract-sort-mode',\n    template: ''\n})\nexport abstract class AbstractSortModeComponent extends AbstractHeaderModeComponent {\n\n    @Input()\n    public headerService: AbstractHeaderService;\n\n    constructor() {\n        super();\n    }\n\n    public sortHeaderChanged(sortEvent: Sort): void {\n        const firstDash = sortEvent.active.indexOf('-');\n        this.headerService.sortHeaderChanged(\n            parseInt(sortEvent.active.substring(0, firstDash), 10),\n            sortEvent.active.substr(firstDash + 1, sortEvent.active.length),\n            sortEvent.direction);\n    }\n\n}\n\n\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport {AbstractHeaderService} from '../../abstract-header-service';\nimport {HeaderColumn} from '../../models/header-column';\nimport {FormControl} from '@angular/forms';\nimport {map, startWith} from 'rxjs/operators';\nimport {TranslateService} from '@ngx-translate/core';\nimport {FieldsGroup} from '../../models/fields-group';\nimport {orderBy} from 'natural-orderby';\nimport {Observable, Subscription} from 'rxjs';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {AbstractHeaderModeComponent} from '../abstract-header-mode.component';\n\nexport interface HeaderOption {\n    groupTitle: string;\n    fields: Array<HeaderColumn>;\n}\n\n@Component({\n    selector: 'ncc-abstract-edit-mode',\n    template: ''\n})\nexport abstract class AbstractEditModeComponent extends AbstractHeaderModeComponent implements OnInit, OnDestroy {\n    public formControls: Array<FormControl> = [];\n    public filterOptions: Array<Observable<Array<HeaderOption>>> = [];\n    protected subHeader: Subscription;\n\n    @Input() public headerService: AbstractHeaderService;\n\n    protected constructor(protected _translate: TranslateService,\n                          protected _log: LoggerService) {\n        super();\n    }\n\n    ngOnInit(): void {\n        this.subHeader = this.headerService.headerColumnCount$.subscribe(newCount => this.updateHeaderCount(newCount));\n    }\n\n    ngOnDestroy(): void {\n        this.subHeader.unsubscribe();\n    }\n\n    protected updateHeaderCount(newCount: number): void {\n        if (this.formControls.length > newCount) {\n            this.formControls = this.formControls.slice(0, newCount);\n            this.filterOptions = this.filterOptions.slice(0, newCount);\n            return;\n        }\n\n        while (this.formControls.length < newCount) {\n            const i = this.formControls.length;\n            const formControl = new FormControl();\n            formControl.setValue(this.headerService.headerState.selectedHeaders[i] ?? this.headerService.headerState.lastSelectedHeaders[i] ?? null);\n            this.formControls.push(formControl);\n            this.filterOptions.push(formControl.valueChanges.pipe(\n                startWith(''),\n                map(inputText => this._filter(inputText)))\n            );\n        }\n    }\n\n    protected _filter(value): Array<HeaderOption> {\n        let filterValue;\n        if (typeof value === 'string') {\n            filterValue = (value as string).toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n        } else {\n            filterValue = '';\n        }\n\n        const arrayGroup: Array<FieldsGroup> = [];\n        arrayGroup.push(...this.headerService.fieldsGroup);\n        const meta = arrayGroup.splice(0, 1);\n        // TODO IMPROVEMENT 17.7.2020 - don't sort the fieldsGroup array here, but sort it once in the headerService and maintain\n        //  the sorted order there\n        meta.push(...orderBy(arrayGroup, v => v.groupTitle, 'asc'));\n        meta.forEach(group => group.fields = orderBy(group.fields, v => v.title, 'asc'));\n\n        return meta.map(group => ({\n            groupTitle: group.groupTitle,\n            fields: group.fields.filter(option => this.checkImmediateTitle(option) &&\n                this._translate.instant(option.title).toLowerCase().normalize('NFD')\n                .replace(/[\\u0300-\\u036f]/g, '').indexOf(filterValue) === 0)\n        })).filter(group => group.fields.length > 0);\n    }\n\n    public headerColumnSelected(columnIndex: number, newHeaderColumn: HeaderColumn) {\n        this.headerService.headerColumnSelected(columnIndex, newHeaderColumn);\n    }\n\n    public renderSelection = (header) => {\n        return header ? this._translate.instant(header.title) : '';\n    }\n\n    private checkImmediateTitle(option: HeaderColumn): boolean {\n        if (option.title === undefined || option.title === '') {\n            this._log.warn('Immediate field in column [' + option.uniqueId + '] does not have a title');\n            return false;\n        }\n        return true;\n    }\n}\n","import {Component, Input} from '@angular/core';\nimport {AbstractHeaderService} from '../../abstract-header-service';\nimport {AbstractHeaderModeComponent} from '../abstract-header-mode.component';\n\n@Component({\n    selector: 'ncc-abstract-loading-mode',\n    template: ''\n})\nexport abstract class AbstractLoadingModeComponent extends AbstractHeaderModeComponent {\n\n    @Input()\n    public headerService: AbstractHeaderService;\n\n    constructor() {\n        super();\n    }\n\n}\n","import {Component, Input, OnDestroy, OnInit, Type} from '@angular/core';\nimport {AbstractHeaderService} from '../../abstract-header-service';\nimport {FormControl} from '@angular/forms';\nimport {debounceTime, map} from 'rxjs/operators';\nimport {UserValue} from '../../../data-fields/user-field/models/user-value';\nimport {SideMenuService} from '../../../side-menu/services/side-menu.service';\nimport {Subscription} from 'rxjs';\nimport {AbstractHeaderModeComponent} from '../abstract-header-mode.component';\n\n@Component({\n    selector: 'ncc-abstract-seatch-mode',\n    template: ''\n})\nexport abstract class AbstractSearchModeComponent extends AbstractHeaderModeComponent implements OnInit, OnDestroy {\n\n    /**\n     * The time that must elapse since last keypress in search input before a search request is sent\n     */\n    protected SEARCH_DEBOUNCE_TIME = 600;\n    protected subHeaderColumn: Subscription;\n    protected subClearHeader: Subscription;\n\n    public formControls: Array<FormControl> = [];\n\n    @Input()\n    public headerService: AbstractHeaderService;\n\n    constructor(protected _sideMenuService: SideMenuService) {\n        super();\n    }\n\n    ngOnInit() {\n        this.subHeaderColumn = this.headerService.headerColumnCount$.subscribe(newCount => this.updateHeaderCount(newCount));\n        this.subClearHeader = this.headerService.clearHeaderSearch$.subscribe(columnNumber => this.clearInput(columnNumber));\n    }\n\n    ngOnDestroy(): void {\n        this.subClearHeader.unsubscribe();\n        this.subHeaderColumn.unsubscribe();\n    }\n\n    /**\n     * Updates the underlying objects to match the new desired number of columns.\n     *\n     * If the new number of columns is greater than the current one, the columns will be filled with default/blank values.\n     *\n     * If the new number of columns is smaller than the current one, the superfluous columns will be removed.\n     *\n     * @param newCount the new number of columns\n     */\n    protected updateHeaderCount(newCount: number): void {\n        if (newCount < this.formControls.length) {\n            this.formControls = this.formControls.slice(0, newCount);\n            return;\n        }\n\n        while (this.formControls.length < newCount) {\n            this.addNewColumn();\n        }\n    }\n\n    /**\n     * Adds a new column to the headers search and binds it's FormControl to the service\n     */\n    protected addNewColumn(): void {\n        const formControl = new FormControl();\n        const i = this.formControls.length;\n        formControl.valueChanges.pipe(\n            debounceTime(this.SEARCH_DEBOUNCE_TIME),\n            map(value => value instanceof UserValue ? value.id : value)\n        ).subscribe(value => {\n            this.headerService.headerSearchInputChanged(i, value);\n        });\n        this.formControls.push(formControl);\n    }\n\n    /**\n     * Opens a user assign side menu component and sets the selected user as value of the form control object\n     * that corresponds to the given column.\n     *\n     * If no user is selected the value of the corresponding form control si cleared.\n     * @param column the index of the columns that should have it's form control value set to the selected user\n     * @param component is the component that we want to open\n     */\n    public selectAbstractUser(column: number, component: Type<any>): void {\n        let valueReturned = false;\n        this._sideMenuService.open(component).onClose.subscribe($event => {\n            if ($event.data) {\n                this.formControls[column].setValue(($event.data as UserValue).fullName);\n                this.formControls[column].setValue($event.data as UserValue, {emitModelToViewChange: false});\n                valueReturned = true;\n            } else if (!valueReturned) {\n                this.formControls[column].setValue(undefined);\n            }\n        });\n    }\n\n    /**\n     * Clears the value of the form control object in the given column\n     * @param column the index of the column that should have it's value cleared\n     */\n    protected clearInput(column: number): void {\n        if (column >= 0 && column < this.formControls.length) {\n            this.formControls[column].setValue(undefined);\n        }\n    }\n}\n","/*\n * Public API Surface of netgrif-components-core\n */\n\n/* COMPONENTS */\nexport * from './abstract-header.component';\nexport * from './header-modes/sort-mode/abstract-sort-mode.component';\nexport * from './header-modes/edit-mode/abstract-edit-mode.component';\nexport * from './header-modes/loading-mode/abstract-loading-mode.component';\nexport * from './header-modes/search-mode/abstract-search-mode.component';\n\n/* MODELS */\nexport * from './models/public-api';\nexport * from './case-header/case-menta-enum';\nexport * from './task-header/task-meta-enum';\nexport * from './workflow-header/workflow-meta-enum';\n\n/* SERVICES */\nexport * from './case-header/case-header.service';\nexport * from './task-header/task-header.service';\nexport * from './abstract-header-service';\nexport * from './workflow-header/workflow-header.service';\nexport * from './services/overflow.service';\n","import {Injectable} from '@angular/core';\nimport {ResourceProvider} from '../resource-provider.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {HttpParams} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {AggregationQuery} from '../../dashboard/cards/model/custom-dashboard-model/aggregation-query';\nimport {AggregationResult} from '../../dashboard/cards/model/custom-dashboard-model/aggregation-result';\nimport {AbstractResourceService} from '../abstract-endpoint/abstract-resource.service';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class DashboardResourceService extends AbstractResourceService {\n\n    constructor(provider: ResourceProvider, configService: ConfigurationService) {\n        super('dashboard', provider, configService);\n    }\n\n    public getDashboardData(type: string, jsonQuery: AggregationQuery): Observable<AggregationResult> {\n        let params: HttpParams = new HttpParams();\n        params = params.set('type', type);\n        return this._resourceProvider.post$<AggregationResult>('/dashboard/search', this.SERVER_URL, jsonQuery, params);\n    }\n}\n","import { Injectable } from '@angular/core';\nimport {AbstractResourceService} from '../abstract-endpoint/abstract-resource.service';\nimport {Params, ResourceProvider} from '../resource-provider.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {Observable} from 'rxjs';\nimport {MessageResource} from '../interface/message-resource';\nimport {map} from 'rxjs/operators';\nimport {LdapGroupResponseBody} from '../interface/ldapGroupResponseBody';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LdapGroupResourceService extends AbstractResourceService {\n\n    constructor(provider: ResourceProvider, configService: ConfigurationService) {\n        super('user', provider, configService);\n    }\n\n    /**\n     * Search Ldap group\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/ldap/search\n     */\n    public searchLdapGroups(body: object, params?: Params): Observable<LdapGroupResponseBody> {\n        return this._resourceProvider.post$('ldap/search', this.SERVER_URL, body)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n\n    /**\n     * Assign role to the ldap group\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/ldap/role/assign\n     */\n    public assignRolesToLdapGroup(body: object, params?: Params): Observable<MessageResource> {\n        return this._resourceProvider.post$('ldap/role/assign', this.SERVER_URL, body, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n\n}\n","import {Injectable} from '@angular/core';\n\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {CaseResourceService} from '../case-resource.service';\nimport {ResourceProvider} from '../../resource-provider.service';\nimport {ConfigurationService} from '../../../configuration/configuration.service';\nimport {EventOutcomeMessageResource} from '../../interface/message-resource';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class PublicCaseResourceService extends CaseResourceService {\n\n    constructor(provider: ResourceProvider, configService: ConfigurationService) {\n        super(provider, configService);\n    }\n\n    /**\n     * Get all case data\n     * GET\n     * {{baseUrl}}/api/public/case/:id/data\n     */\n    public getCaseData(caseID: string): Observable<EventOutcomeMessageResource> {\n        return this._resourceProvider.get$('public/case/' + caseID + '/data', this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Create new case\n     * POST\n     * {{baseUrl}}/api/workflow/case\n     */\n    public createCase(body: object): Observable<EventOutcomeMessageResource> {\n        return this._resourceProvider.post$('public/case/', this.SERVER_URL, body)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n}\n","import { Injectable } from '@angular/core';\nimport {PetriNetResourceService} from '../petri-net-resource.service';\nimport {Params, ResourceProvider} from '../../resource-provider.service';\nimport {ConfigurationService} from '../../../configuration/configuration.service';\nimport {Observable} from 'rxjs';\nimport {PetriNet} from '../../interface/petri-net';\nimport {PetriNetReference} from '../../interface/petri-net-reference';\nimport {map} from 'rxjs/operators';\nimport {PetriNetRequestBody} from '../../interface/petri-net-request-body';\nimport {Page} from '../../interface/page';\nimport Transaction from '../../../process/transaction';\nimport Transition from '../../../process/transition';\nimport {HttpParams} from '@angular/common/http';\nimport RolesAndPermissions from '../../../process/rolesAndPermissions';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PublicPetriNetResourceService extends PetriNetResourceService {\n\n    constructor(protected provider: ResourceProvider, protected _configService: ConfigurationService) {\n        super(provider, _configService);\n    }\n\n    /**\n     * get One Net by ID\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/public/petrinet/{id}\n     */\n    public getOneById(netId: string, params?: Params): Observable<PetriNet> {\n        return this.provider.get$('public/petrinet/' + netId, this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * get One Net\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/public/petrinet/{identifier}/{version}\n     */\n    public getOne(identifier: string, version: string, params?: Params): Observable<PetriNetReference> {\n        return this.provider.get$('public/petrinet/' + btoa(identifier) + '/' + version, this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, 'petriNetReferences')));\n    }\n\n    /**\n     * search PetriNets\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/search\n     */\n    public searchPetriNets(body: PetriNetRequestBody, params?: Params): Observable<Page<PetriNetReference>> {\n        return this._resourceProvider.post$('public/petrinet/search', this.SERVER_URL, body, params)\n            .pipe(map(r => this.getResourcePage<PetriNetReference>(r, 'petriNetReferences')));\n    }\n\n    /**\n     * Get Roles References Using\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/{id}/roles\n     */\n    public getPetriNetRoles(netId: string, params?: Params): Observable<RolesAndPermissions> {\n        return this._resourceProvider.get$('public/petrinet/' + netId + '/roles', this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, 'processRoles')));\n    }\n\n    /**\n     * Get Transaction References Using\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/{id}/transactions\n     */\n    public getPetriNetTransactions(netId: string, params?: Params): Observable<Array<Transaction>> {\n        return this._resourceProvider.get$('public/petrinet/' + netId + '/transactions', this.SERVER_URL, params)\n            .pipe(map(r => this.changeType(r, 'transactions')));\n    }\n\n    /**\n     * Get Data Field References Using\n     *\n     * **Request Type:** POST\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/data\n     */\n    public getDataPetriNet(body: object): Observable<any> {  // TODO: response\n        return this._resourceProvider.post$('public/petrinet/data', this.SERVER_URL, body)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get Transition References Using\n     *\n     * **Request Type:** GET\n     *\n     * **Request URL:** {{baseUrl}}/api/petrinet/transitions\n     */\n    public getPetriNetTransitions(netId: string): Observable<Array<Transition>> {\n        return this._resourceProvider.get$('public/petrinet/transitions', this.SERVER_URL, new HttpParams().set('ids', netId))\n            .pipe(map(r => this.changeType(r, 'transitionReferences')));\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {TaskResourceService} from '../task-resource.service';\nimport {FieldConverterService} from '../../../task-content/services/field-converter.service';\nimport {ConfigurationService} from '../../../configuration/configuration.service';\nimport {Params, ProviderProgress, ResourceProvider} from '../../resource-provider.service';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {Observable} from 'rxjs';\nimport {filter, map} from 'rxjs/operators';\nimport {FilterType} from '../../../filter/models/filter-type';\nimport {Filter} from '../../../filter/models/filter';\nimport {Page} from '../../interface/page';\nimport {TaskSetDataRequestBody} from '../../interface/task-set-data-request-body';\nimport {TaskReference} from '../../interface/task-reference';\nimport {Task} from '../../interface/task';\nimport {HttpEventType, HttpParams} from '@angular/common/http';\nimport {EventOutcomeMessageResource, MessageResource} from '../../interface/message-resource';\nimport {FileFieldRequest} from \"../../interface/file-field-request-body\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class PublicTaskResourceService extends TaskResourceService {\n\n    constructor(protected _provider: ResourceProvider,\n                protected _configService: ConfigurationService,\n                protected _fieldConverter: FieldConverterService,\n                protected _logger: LoggerService) {\n        super(_provider, _configService, _fieldConverter, _logger);\n    }\n\n    /**\n     * Assign task\n     * GET\n     */\n    // {{baseUrl}}/api/public/task/assign/:id\n    public assignTask(taskId: string): Observable<EventOutcomeMessageResource> {\n        return this._provider.get$('public/task/assign/' + taskId, this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Cancel task\n     * GET\n     */\n    // {{baseUrl}}/api/public/task/cancel/:id\n    public cancelTask(taskId: string): Observable<EventOutcomeMessageResource> {\n        return this._provider.get$('public/task/cancel/' + taskId, this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Finish task\n     * GET\n     */\n    // {{baseUrl}}/api/public/task/finish/:id\n    public finishTask(taskId: string): Observable<EventOutcomeMessageResource> {\n        return this._provider.get$('public/task/finish/' + taskId, this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get tasks of the case\n     * GET\n     */\n    // {{baseUrl}}/api/public/task/case/:id\n    public getAllTasksByCase(caseId: string): Observable<Array<TaskReference>> {\n        return this._provider.get$('public/task/case/' + caseId, this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Get all task data\n     *\n     * GET\n     *\n     * If you don't want to parse the response yourself use [getData]{@link TaskResourceService#getData} instead.\n     *\n     * @returns the raw backend response without any additional processing\n     */\n    // {{baseUrl}}/api/public/task/:id/data\n    public rawGetData(taskId: string): Observable<EventOutcomeMessageResource> {\n        return this._provider.get$('public/task/' + taskId + '/data', this.SERVER_URL)\n            .pipe(map(r => this.changeType(r, 'dataGroups')));\n    }\n\n    /**\n     * Set task data\n     * POST\n     */\n    // {{baseUrl}}/api/public/task/:id/data\n    public setData(taskId: string, body: TaskSetDataRequestBody): Observable<EventOutcomeMessageResource> {\n        return this._provider.post$('public/task/' + taskId + '/data', this.SERVER_URL, body)\n            .pipe(map(r => this.changeType(r, undefined)));\n    }\n\n    /**\n     * Searches tasks trough the Mongo endpoint.\n     * POST\n     * @param filterParam filter used to search the tasks. Must be of type `TASK`.\n     * Note that the `query` attribute of the filter cannot be used with this endpoint.\n     * Attempting to use it will display a warning and remove the attribute from the request.\n     * @param params Additional request parameters\n     */\n    // {{baseUrl}}/api/public/task/search\n    public getTasks(filterParam: Filter, params?: Params): Observable<Page<Task>> {\n        if (filterParam.type !== FilterType.TASK) {\n            throw new Error('Provided filter doesn\\'t have type TASK');\n        }\n\n        if (filterParam.bodyContainsQuery()) {\n            throw new Error('getTasks endpoint cannot be queried with filters that contain the \\'query\\' attribute');\n        }\n\n        params = ResourceProvider.combineParams(filterParam.getRequestParams(), params);\n        return this._provider.post$('public/task/search', this.SERVER_URL, filterParam.getRequestBody(), params)\n            .pipe(map(r => this.getResourcePage<Task>(r, 'tasks')));\n    }\n\n    /**\n     * Download task file field value\n     * GET\n     */\n    public downloadFile(taskId: string, params: HttpParams): Observable<ProviderProgress | Blob> {\n        const url = `public/task/${taskId}/file${params?.has(\"fileName\") ? '/named' : ''}`;\n        return this._resourceProvider.getBlob$(url, this.SERVER_URL, params).pipe(\n            map(event => {\n                switch (event.type) {\n                    case HttpEventType.DownloadProgress:\n                        return ResourceProvider.getProgress(event);\n                    case HttpEventType.Response:\n                        return event.body;\n                    default:\n                        return undefined;\n                }\n            }),\n            filter(value => !!value)\n        );\n    }\n\n    /**\n     * Upload file into the task\n     * POST\n     */\n    public uploadFile(taskId: string, body: object, multipleFiles: boolean):\n        Observable<ProviderProgress | EventOutcomeMessageResource> {\n        const url = `public/task/${taskId}/${multipleFiles ? 'files' : 'file'}`;\n        return this._resourceProvider.postWithEvent$<EventOutcomeMessageResource>(url, this.SERVER_URL, body).pipe(\n            map(event => {\n                switch (event.type) {\n                    case HttpEventType.UploadProgress:\n                        return ResourceProvider.getProgress(event);\n                    case HttpEventType.Response:\n                        return event.body;\n                    default:\n                        return undefined;\n                }\n            }),\n            filter(value => !!value)\n        );\n    }\n\n    /**\n     * Delete file from the task\n     * DELETE\n     */\n    public deleteFile(taskId: string, body: FileFieldRequest): Observable<MessageResource> {\n        const url = `public/task/${taskId}/file${body.fileName ? '/named' : ''}`;\n        return this._resourceProvider.delete$(url, this.SERVER_URL, {}, {}, 'json', body).pipe(\n            map(r => this.changeType(r, undefined))\n        );\n    }\n\n    /**\n     * Download task file preview for field value\n     * GET\n     */\n    public downloadFilePreview(taskId: string, params: HttpParams): Observable<ProviderProgress | Blob> {\n        const url = `public/task/${taskId}/file_preview`;\n        return this._resourceProvider.getBlob$(url, this.SERVER_URL, params).pipe(\n            map(event => {\n                switch (event.type) {\n                    case HttpEventType.DownloadProgress:\n                        return ResourceProvider.getProgress(event);\n                    case HttpEventType.Response:\n                        return event.body;\n                    default:\n                        return undefined;\n                }\n            }),\n            filter(value => !!value)\n        );\n    }\n}\n","import {DataField} from '../../data-fields/models/abstract-data-field';\nimport {DataGroupLayout} from './data-group-layout';\n\n/**\n * Object from Backend\n */\nexport interface DataGroup extends ParentDataGroupInformation{\n    /**\n     * Array [DataField]{@link DataField}\n     */\n    fields: Array<DataField<any>>;\n    /**\n     * Name of the data group\n     */\n    title?: string;\n    /**\n     * Design alignment\n     * ***Example:*** start\n     */\n    alignment: DataGroupAlignment;\n    /**\n     * Design stretch\n     *\n     * ***Example:*** true\n     */\n    stretch: boolean;\n    layout?: DataGroupLayout;\n}\n\n/**\n * An object containing the information about the parent of a data group\n */\nexport interface ParentDataGroupInformation {\n    /**\n     * String id of parent task, only set if dataGroup is loaded by {@link TaskRefField}\n     */\n    parentTaskId?: string;\n    /**\n     * String id of parent task, only set if dataGroup is loaded by {@link TaskRefField}\n     */\n    parentTransitionId?: string;\n    /**\n     * String id of parent case, only set if dataGroup is loaded by {@link TaskRefField}\n     */\n    parentCaseId?: string;\n    /**\n     * String id of the parent task ref. Only set if the data group is loaded via a {@link TaskRefField}\n     */\n    parentTaskRefId?: string;\n    /**\n     * Level of nesting in a task reffed data group. Only set if the data group is loaded via a {@link TaskRefField}\n     */\n    nestingLevel?: number;\n}\n\n/**\n * Determines the position of the last data field when the number of data fields in a data group is odd.\n */\nexport enum DataGroupAlignment {\n    /**\n     * Positioned in the left column\n     */\n    START = 'start',\n    /**\n     * Positioned in the center of the screen\n     */\n    CENTER = 'center',\n    /**\n     * Positioned in the right column\n     */\n    END = 'end'\n}\n","/**\n * Determines where within its grid tile should a field be aligned vertically\n */\nexport enum FieldAlignment {\n    TOP = 'top',\n    CENTER = 'center',\n    BOTTOM = 'bottom'\n}\n","/* SERVICES */\nexport * from './resource-provider.service';\nexport * from './engine-endpoint/case-resource.service';\nexport * from './engine-endpoint/task-resource.service';\nexport * from './engine-endpoint/petri-net-resource.service';\nexport * from './engine-endpoint/user-resource.service';\nexport * from './engine-endpoint/dashboard-resource.service';\nexport * from './engine-endpoint/ldap-group-resource.service';\n\n/* PUBLIC SERVICES */\nexport * from './engine-endpoint/public/public-case-resource.service';\nexport * from './engine-endpoint/public/public-petri-net-resource.service';\nexport * from './engine-endpoint/public/public-task-resource.service';\n\nexport * from './interface/author';\nexport * from './interface/immediate-data';\nexport * from './interface/response-data';\nexport * from './interface/case';\nexport * from './interface/message-resource';\nexport * from './interface/task';\nexport * from './interface/count';\nexport * from './interface/petri-net-object-id';\nexport * from './interface/data-groups';\nexport * from './interface/petri-net-reference';\nexport * from './interface/fields';\nexport * from './interface/authority';\nexport * from './interface/link';\nexport * from './interface/pagination';\nexport * from './interface/user-process-role';\nexport * from './interface/process-role';\nexport * from './interface/changed-field-container';\nexport * from './interface/file-resource';\nexport * from './interface/task-reference';\nexport * from './interface/task-set-data-request-body';\nexport * from './interface/case-get-request-body';\nexport * from './interface/field-alignment';\nexport * from './interface/event-outcome';\nexport * from './interface/group';\nexport * from './interface/petri-net-request-body';\nexport * from './interface/page';\nexport * from './interface/preferences';\nexport * from './interface/user-resource-small';\nexport * from './interface/user-resource';\nexport * from './interface/create-case-request-body';\nexport * from './interface/ldapGroupResponseBody';\nexport * from './interface/task-pair';\n\nexport * from './types/nae-date-type';\n\n/* ABSTRACTIONS */\nexport * from './abstract-endpoint/count-service';\nexport * from './abstract-endpoint/abstract-resource.service';\n","import {Component, Input, OnInit} from '@angular/core';\nimport {LanguageService} from '../../../translate/language.service';\nimport {PaperViewService} from './paper-view.service';\nimport {AbstractNavigationResizableDrawerComponent} from '../../navigation-drawer/abstract-navigation-resizable-drawer.component';\n\nexport type QuickPanelItem = 'language' | 'settings' | 'logout' | 'impersonation';\n\n@Component({\n    selector: 'ncc-abstract-quick-panel',\n    template: ''\n})\nexport abstract class AbstractQuickPanelComponent extends AbstractNavigationResizableDrawerComponent implements OnInit {\n\n    @Input() public items: Array<QuickPanelItem>;\n\n    constructor(protected _select: LanguageService, protected _paperView: PaperViewService) {\n        super();\n    }\n\n    ngOnInit(): void {\n        super.ngOnInit();\n    }\n\n    setPaperView() {\n        this._paperView.paperView = !this._paperView.paperView;\n    }\n\n    isPaperView() {\n        return this._paperView.paperView;\n    }\n}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n    selector: 'ncc-abstract-internal-link',\n    template: ''\n})\nexport abstract class AbstractInternalLinkComponent {\n\n    @Input() public link: string;\n    @Input() public icon: string;\n\n    constructor() {\n    }\n\n}\n","import {Component, EventEmitter, Output} from '@angular/core';\nimport {UserService} from '../../../../user/services/user.service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {ConfigurationService} from '../../../../configuration/configuration.service';\nimport {Router} from '@angular/router';\n\n@Component({\n    selector: 'ncc-abstract-logout-shortcut',\n    template: '',\n})\nexport abstract class AbstractLogoutShortcutComponent {\n\n    @Output() loggedOut = new EventEmitter<any>(true);\n\n    constructor(protected _user: UserService,\n                protected _log: LoggerService,\n                protected _config: ConfigurationService,\n                protected _router: Router) {\n    }\n\n    logout(): void {\n        this._user.logout().subscribe(response => {\n            this._log.debug('User is logged out');\n            this.loggedOut.emit(response);\n            const redirectPath = this._config.getOnLogoutPath();\n            if (redirectPath) {\n                this._log.info('Redirecting to ' + redirectPath);\n                this._router.navigate([redirectPath]);\n            }\n        });\n    }\n\n}\n","import {Component} from '@angular/core';\nimport {LanguageService} from '../../../../translate/language.service';\nimport {LanguageIconsService} from '../../../../data-fields/i18n-field/language-icons.service';\nimport {SafeHtml} from '@angular/platform-browser';\n\n@Component({\n    selector: 'ncc-abstract-language-selector',\n    template: ''\n})\nexport abstract class AbstractLanguageSelectorComponent {\n\n    protected constructor(protected _langService: LanguageService,\n                          protected _languageIconsService: LanguageIconsService) {\n    }\n\n    public getLangKeys() {\n        return this._langService.getTranslations().map(trans => trans.key);\n    }\n\n    public getCurrentLang() {\n        return this._langService.getLanguage();\n    }\n\n    public setLang(lang: string) {\n        this._langService.setLanguage(lang, true);\n    }\n\n    public getLanguageIcons() {\n        return this._languageIconsService.languageIcons;\n    }\n\n    public getLangIcon(lang: string): SafeHtml {\n        return this._languageIconsService.languageIcons[lang].svgIcon;\n    }\n}\n","/* COMPONENTS */\nexport * from './components/abstract-quick-panel.component';\nexport * from './components/internal-link/abstract-internal-link.component';\nexport * from './components/logout-shortcut/abstract-logout-shortcut.component';\nexport * from './components/language-selector/abstract-language-selector.component';\n\n/* SERVICES */\nexport * from './components/paper-view.service';\n","import {Injectable} from '@angular/core';\nimport {ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport {UserService} from '../../user/services/user.service';\nimport {AuthenticationModule} from '../../authentication/authentication.module';\nimport {RedirectService} from '../../routing/redirect-service/redirect.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {Access, RoleAccess, View} from '../../../commons/schema';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {Observable} from 'rxjs';\n\n\ninterface RoleConstraint {\n    processIdentifier: string;\n    roleIdentifier?: string;\n    roleName?: string;\n}\n\n@Injectable({\n    providedIn: AuthenticationModule\n})\nexport class RoleGuardService implements CanActivate {\n\n    private readonly _loginUrl: string;\n\n    constructor(protected _redirectService: RedirectService,\n                protected _userService: UserService,\n                protected _configService: ConfigurationService,\n                protected _log: LoggerService) {\n        this._loginUrl = this._redirectService.resolveLoginPath();\n    }\n\n    canActivate(route: ActivatedRouteSnapshot,\n                state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n        this._redirectService.intendedRoute = route;\n        const view = this._configService.getViewByUrl(state.url.toString());\n        return this.canAccessView(view, state.url.toString());\n    }\n\n    public canAccessView(view: View, url: string): boolean {\n        if (typeof view.access !== 'string' && (view.access.hasOwnProperty('role') || view.access.hasOwnProperty('bannedRole'))) {\n\n            if (view.access.hasOwnProperty('role') && view.access.hasOwnProperty('bannedRole')) {\n                const bannedRoles = this.parseRoleConstraints(view.access.bannedRole, url);\n                const allowedRoles = this.parseRoleConstraints(view.access.role, url);\n\n                if (bannedRoles.some(role => this.decideAccessByRole(role))) {\n                    return false;\n                }\n\n                if (allowedRoles.length === 0) {\n                    this._log.warn(`View at '${url}' defines role access constraint with an empty array!`\n                        + ` No users will be allowed to enter this view!`);\n                }\n                return allowedRoles.some(role => this.decideAccessByRole(role)); // user was not denied access by a banned role, they need at least one allowed role\n            }\n\n            if (view.access.hasOwnProperty('bannedRole')) {\n                const bannedRoles = this.parseRoleConstraints(view.access.bannedRole, url);\n                return !bannedRoles.some(constraint => {\n                    return this.decideAccessByRole(constraint);\n                });\n            }\n\n            if (view.access.hasOwnProperty('role')) {\n                const allowedRoles = this.parseRoleConstraints(view.access.role, url);\n                if (allowedRoles.length === 0) {\n                    this._log.warn(`View at '${url}' defines role access constraint with an empty array!`\n                        + ` No users will be allowed to enter this view!`);\n                }\n                return allowedRoles.some(constraint => {\n                    return this.decideAccessByRole(constraint);\n                });\n            }\n        }\n        throw new Error('Role guard is declared for a view with no role guard configuration!'\n            + ` Add role guard configuration for view at ${url}, or remove the guard.`);\n    }\n\n    protected parseRoleConstraints(roleConstrains: Access['role'] | Access['bannedRole'], viewUrl: string): Array<RoleConstraint> {\n        if (typeof roleConstrains === 'string') {\n            return this.parseStringRoleConstraints(roleConstrains);\n        }\n        if (Array.isArray(roleConstrains)) {\n            if (roleConstrains.length === 0) {\n                return [];\n            }\n            if (typeof roleConstrains[0] === 'string') {\n                return this.parseStringRoleConstraints(roleConstrains as Array<string>);\n            }\n        }\n        return this.parseObjectRoleConstrains(roleConstrains as RoleAccess | Array<RoleAccess>);\n    }\n\n    /**\n     * @deprecated in 5.0.0\n     */\n    protected parseStringRoleConstraints(roleConstrains: string | Array<string>): Array<RoleConstraint> {\n        if (!Array.isArray(roleConstrains)) {\n            roleConstrains = [roleConstrains];\n        }\n\n        this._log.warn('Using string role guard configuration is deprecated! Migrate to object based configuration instead.');\n\n        return roleConstrains.map(constraint => {\n            const splitRoleArray = constraint.split('.');\n            if (splitRoleArray.length === 2) {\n                return {processIdentifier: splitRoleArray[0], roleName: splitRoleArray[1]};\n            } else {\n                throw new Error('Please enter the correct format <net import id>.<role name>');\n            }\n        });\n    }\n\n    protected parseObjectRoleConstrains(roleConstrains: RoleAccess | Array<RoleAccess>): Array<RoleConstraint> {\n        if (!Array.isArray(roleConstrains)) {\n            roleConstrains = [roleConstrains];\n        }\n\n        return roleConstrains.map(constraint => {\n            if (!constraint.roleId || !constraint.processId) {\n                throw new Error('Please enter both process and role id for a role constraint: ' + constraint);\n            }\n            return {processIdentifier: constraint.processId, roleIdentifier: constraint.roleId};\n        });\n    }\n\n    private decideAccessByRole(constraint: RoleConstraint): boolean {\n        if (constraint.roleIdentifier) {\n            return this._userService.hasRoleByIdentifier(constraint.roleIdentifier, constraint.processIdentifier);\n        } else {\n            return this._userService.hasRoleByName(constraint.roleName, constraint.processIdentifier);\n        }\n    }\n\n}\n","import {Injectable} from '@angular/core';\nimport {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport {UserService} from '../../user/services/user.service';\nimport {AuthenticationModule} from '../../authentication/authentication.module';\nimport {RedirectService} from '../../routing/redirect-service/redirect.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {Observable} from 'rxjs';\nimport {View} from '../../../commons/schema';\n\n@Injectable({\n    providedIn: AuthenticationModule\n})\nexport class AuthorityGuardService implements CanActivate {\n\n    private readonly _loginUrl: string;\n\n    constructor(protected _redirectService: RedirectService,\n                protected _userService: UserService,\n                protected _configService: ConfigurationService,\n                protected _router: Router) {\n        this._loginUrl = this._redirectService.resolveLoginPath();\n    }\n\n    canActivate(route: ActivatedRouteSnapshot,\n                state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n        this._redirectService.intendedRoute = route;\n        const view = this._configService.getViewByUrl(state.url.toString());\n        return this.canAccessView(view);\n    }\n\n    public canAccessView(view: View): boolean {\n        if (typeof view.access !== 'string' && view.access.hasOwnProperty('authority')) {\n            return this._userService.hasAuthority(view.access.authority);\n        }\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {AuthenticationModule} from '../../authentication/authentication.module';\nimport {ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport {Observable} from 'rxjs';\nimport {RedirectService} from '../../routing/redirect-service/redirect.service';\nimport {UserService} from '../../user/services/user.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {View} from '../../../commons/schema';\nimport {NextGroupService} from '../../groups/services/next-group.service';\n\n@Injectable({\n        providedIn: AuthenticationModule\n})\nexport class GroupGuardService implements CanActivate {\n\n    private readonly _loginUrl: string;\n\n    constructor(protected _redirectService: RedirectService,\n                protected _userService: UserService,\n                protected _nextGroupService: NextGroupService,\n                protected _configService: ConfigurationService,\n                protected _log: LoggerService) {\n        this._loginUrl = this._redirectService.resolveLoginPath();\n    }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):\n        Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n        this._redirectService.intendedRoute = route;\n        const view = this._configService.getViewByUrl(state.url.toString());\n        return this.canAccessView(view, state.url.toString());\n    }\n\n    public canAccessView(view: View, url: string): boolean {\n        if (typeof view.access !== 'string' && view.access.hasOwnProperty('group')) {\n            let allowedGroups: Array<string>;\n            if (Array.isArray(view.access.group)) {\n                allowedGroups = view.access.group;\n            } else {\n                allowedGroups = [view.access.group];\n            }\n            const groupOfUser = this._nextGroupService.groupOfUser.map(group => group.title);\n\n            return allowedGroups.some(groupTitle => {\n                return groupOfUser.includes(groupTitle);\n            });\n        }\n        throw new Error('Group guard is declared for a view with no group guard configuration!'\n            + ` Add group guard configuration for view at ${url}, or remove the guard.`);\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {RoleGuardService} from \"../role/role-guard.service\";\nimport {AuthorityGuardService} from \"../authority/authority-guard.service\";\nimport {GroupGuardService} from \"../group/group-guard.service\";\nimport {ConfigurationService} from \"../../configuration/configuration.service\";\nimport {View} from \"../../../commons/schema\";\nimport {UserService} from '../../user/services/user.service';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class AccessService {\n\n    constructor(\n        private _config: ConfigurationService,\n        private _userService: UserService,\n        private _roleGuard: RoleGuardService,\n        private _authorityGuard: AuthorityGuardService,\n        private _groupGuard: GroupGuardService,\n    ) {\n    }\n\n    /**\n     * @param view the view whose access permissions we want to check\n     * @param url URL to which the view maps. Is used only for error message generation\n     * @returns whether the user can access the provided view\n     */\n    public canAccessView(view: View, url?: string): boolean {\n        if (!view.hasOwnProperty('access')) {\n            return true;\n        }\n\n        if (typeof view.access === 'string') {\n            if (view.access === 'public') {\n                return true;\n            }\n            if (view.access !== 'private') {\n                throw new Error(`Unknown access option '${view.access}'. Only 'public' or 'private' is allowed.`);\n            }\n            return !this._userService.user.isEmpty();\n        }\n\n        if (!url) {\n            url = view?.routing?.path;\n        }\n\n        return !this._userService.user.isEmpty() // AuthGuard\n            && this.passesRoleGuard(view, url)\n            && this.passesAuthorityGuard(view)\n            && this.passesGroupGuard(view, url);\n    }\n\n    /**\n     * @param view the view whose access permissions we want to check\n     * @param url URL to which the view maps. Is used only for error message generation\n     * @returns whether the user passes the role guard condition for accessing the specified view\n     */\n    public passesRoleGuard(view: View, url: string): boolean {\n        return (!view.access.hasOwnProperty('role') && !view.access.hasOwnProperty('bannedRole')) || this._roleGuard.canAccessView(view, url);\n    }\n\n    /**\n     * @param view the view whose access permissions we want to check\n     * @returns whether the user passes the authority guard condition for accessing the specified view\n     */\n    public passesAuthorityGuard(view: View): boolean {\n        return !view.access.hasOwnProperty('authority') || this._authorityGuard.canAccessView(view);\n    }\n\n    /**\n     * @param view the view whose access permissions we want to check\n     * @param url URL to which the view maps. Is used only for error message generation\n     * @returns whether the user passes the role guard condition for accessing the specified view\n     */\n    public passesGroupGuard(view: View, url: string): boolean {\n        return !view.access.hasOwnProperty('group') || this._groupGuard.canAccessView(view, url);\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {ConfigurationService} from '../../configuration/configuration.service';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class DynamicNavigationRouteProviderService {\n\n    protected _route: string | undefined;\n\n    constructor(protected _config: ConfigurationService) {\n    }\n\n    public set route(route: string) {\n        this._route = route;\n    }\n\n    /**\n     * @Returns the configuration set by the {@link RoutingBuilderService} or if dynamic navigation is not used the value set in the\n     * nae.json\n     */\n    public get route(): string {\n        if (this._route !== undefined) {\n            return this._route;\n        }\n        return this._config.getServicesConfiguration()?.groupNavigation?.groupNavigationRoute;\n    }\n}\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport {NestedTreeControl} from '@angular/cdk/tree';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {View, Views} from '../../../commons/schema';\nimport {NavigationEnd, Router} from '@angular/router';\nimport {MatTreeNestedDataSource} from '@angular/material/tree';\nimport {ReplaySubject, Subscription} from 'rxjs';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {UserService} from '../../user/services/user.service';\nimport {\n    AbstractNavigationResizableDrawerComponent\n} from '../navigation-drawer/abstract-navigation-resizable-drawer.component';\nimport {ActiveGroupService} from '../../groups/services/active-group.service';\nimport {debounceTime, filter} from 'rxjs/operators';\nimport {TaskResourceService} from '../../resources/engine-endpoint/task-resource.service';\nimport {LanguageService} from '../../translate/language.service';\nimport {\n    DynamicNavigationRouteProviderService\n} from '../../routing/dynamic-navigation-route-provider/dynamic-navigation-route-provider.service';\nimport {AccessService} from \"../../authorization/permission/access.service\";\n\nexport interface NavigationNode {\n    name: string;\n    icon?: string;\n    url: string;\n    children?: Array<NavigationNode>;\n    level?: number;\n    translate?: boolean;\n}\n\n@Component({\n    selector: 'ncc-abstract-navigation-tree',\n    template: ''\n})\nexport abstract class AbstractNavigationTreeComponent extends AbstractNavigationResizableDrawerComponent implements OnInit, OnDestroy {\n\n    @Input() public viewPath: string;\n    @Input() public parentUrl: string;\n    @Input() public routerChange: boolean;\n\n    protected _reloadNavigation: ReplaySubject<void>;\n\n    private _subscriptions: Array<Subscription>;\n    private _subGroupResolution: Subscription;\n    private _subLangChange: Subscription;\n\n    treeControl: NestedTreeControl<NavigationNode>;\n    dataSource: MatTreeNestedDataSource<NavigationNode>;\n\n    protected constructor(protected _config: ConfigurationService,\n                          protected _router: Router,\n                          protected _log: LoggerService,\n                          protected _userService: UserService,\n                          protected _accessService: AccessService,\n                          protected _activeGroupService: ActiveGroupService,\n                          protected _taskResourceService: TaskResourceService,\n                          protected _languageService: LanguageService,\n                          protected _navigationRouteProvider: DynamicNavigationRouteProviderService) {\n        super();\n        this.treeControl = new NestedTreeControl<NavigationNode>(node => node.children);\n        this.dataSource = new MatTreeNestedDataSource<NavigationNode>();\n        this.dataSource.data = this.resolveNavigationNodes(_config.getConfigurationSubtree(['views']), '');\n        this.resolveLevels(this.dataSource.data);\n        this._reloadNavigation = new ReplaySubject<void>(1);\n    }\n\n    ngOnInit(): void {\n        super.ngOnInit();\n        if (this.viewPath && this.parentUrl !== undefined && this.routerChange) {\n            this.resolveNavigationNodesWithOffsetRoot();\n        }\n\n        this._subscriptions = [\n            this._router.events.pipe(filter(event => event instanceof NavigationEnd && this.routerChange))\n                .subscribe(() => this._reloadNavigation.next()),\n            this._userService.user$.subscribe(() => this._reloadNavigation.next()),\n            this._activeGroupService.activeGroups$.subscribe(() => this._reloadNavigation.next())\n        ];\n\n        this._subscriptions.push(\n            this._reloadNavigation.pipe(debounceTime(100)).subscribe(() => {\n                this.resolveNavigation();\n            })\n        );\n    }\n\n    ngOnDestroy(): void {\n        for (const sub of this._subscriptions) {\n            if (!sub.closed) {\n                sub.unsubscribe();\n            }\n        }\n        this._reloadNavigation.complete();\n        if (this._subGroupResolution !== undefined) {\n            this._subGroupResolution.unsubscribe();\n        }\n        if (this._subLangChange !== undefined) {\n            this._subLangChange.unsubscribe();\n        }\n    }\n\n    public hasChild(_: number, node: NavigationNode): boolean {\n        return !!node.children && node.children.length > 0;\n    }\n\n    protected resolveNavigation(): void {\n        let nodes;\n        if (this.viewPath && this.parentUrl !== undefined && this.routerChange) {\n            nodes = this.resolveNavigationNodesWithOffsetRoot();\n        } else {\n            nodes = this.resolveNavigationNodes(this._config.getConfigurationSubtree(['views']), '');\n        }\n        this.dataSource.data = nodes;\n        this.resolveLevels(this.dataSource.data);\n    }\n\n    protected resolveNavigationNodesWithOffsetRoot(): Array<NavigationNode> {\n        const view = this._config.getViewByPath(this.viewPath);\n        if (view && view.children) {\n            return this.resolveNavigationNodes(view.children, this.parentUrl);\n        }\n        return this.dataSource.data;\n    }\n\n    /**\n     * Converts the provided {@link Views} object into the corresponding navigation tree\n     * @param views navigation configuration\n     * @param parentUrl URL of the parent navigation tree node\n     * @param ancestorNodeContainer if the parent node has no navigation this attribute contains the\n     * closest ancestor that has navigation\n     * @protected\n     */\n    protected resolveNavigationNodes(\n        views: Views,\n        parentUrl: string,\n        ancestorNodeContainer?: Array<NavigationNode>\n    ): Array<NavigationNode> {\n        if (!views || Object.keys(views).length === 0) {\n            return null;\n        }\n\n        const nodes: Array<NavigationNode> = [];\n        Object.keys(views).forEach((viewKey: string) => {\n            const view = views[viewKey];\n\n            if (!this.hasNavigation(view) && !this.hasSubRoutes(view)) {\n                return; // continue\n            }\n            const routeSegment = this.getNodeRouteSegment(view);\n\n            if (routeSegment === undefined) {\n                throw new Error('Route segment doesnt exist in view ' + parentUrl + '/' + viewKey + ' !');\n            }\n\n            if (!this._accessService.canAccessView(view, this.appendRouteSegment(parentUrl, routeSegment))) {\n                return; // continue\n            }\n\n            if (this.hasNavigation(view)) {\n                const node: NavigationNode = this.buildNode(view, routeSegment, parentUrl);\n                if (this.hasSubRoutes(view)) {\n                    node.children = this.resolveNavigationNodes(view.children, node.url);\n                }\n                nodes.push(node);\n            } else {\n                if (this.hasSubRoutes(view)) {\n                    nodes.push(...this.resolveNavigationNodes(\n                        view.children,\n                        this.appendRouteSegment(parentUrl, routeSegment), ancestorNodeContainer ?? nodes)\n                    );\n                }\n            }\n        });\n        return nodes;\n    }\n\n    protected hasNavigation(route: View): boolean {\n        if (!route.navigation) {\n            return false;\n        }\n        if (typeof route.navigation === 'boolean') {\n            return route.navigation;\n        }\n        if (typeof route.navigation === 'object') {\n            return Object.keys(route.navigation).length !== 0;\n        }\n    }\n\n    protected hasSubRoutes(route: View): boolean {\n        if (!route.children) {\n            return false;\n        }\n        if (typeof route.children === 'object') {\n            return Object.keys(route.children).length !== 0;\n        }\n    }\n\n    protected buildNode(view: View, routeSegment: string, parentUrl: string): NavigationNode {\n        const node: NavigationNode = {\n            name: null,\n            url: null\n        };\n        node.name = this.getNodeName(view, routeSegment);\n        node.icon = this.getNodeIcon(view);\n        node.url = this.appendRouteSegment(parentUrl, routeSegment);\n        node.translate = this.getNodeTranslateFlag(view);\n        return node;\n    }\n\n    protected getNodeName(view: View, routeSegment: string): string {\n        if (view.navigation['title']) {\n            return view.navigation['title'];\n        }\n        const str = routeSegment.replace('_', ' ');\n        return str.charAt(0).toUpperCase() + str.substring(1);\n    }\n\n    protected getNodeIcon(view: View): string {\n        return !view.navigation['icon'] ? undefined : view.navigation['icon'];\n    }\n\n    /**\n     * @param view configuration of some view, whose routeSegment we want to determine\n     * @returns the routeSegment for the provided view, or undefined if none is specified\n     */\n    protected getNodeRouteSegment(view: View): string {\n        return !!view.routing && (typeof view.routing.path === 'string') ? view.routing.path : undefined;\n    }\n\n    protected getNodeTranslateFlag(view: View): boolean {\n        return view.navigation['translate'] ?? false;\n    }\n\n    /**\n     * Appends the route segment to the parent URL.\n     * @param parentUrl URL of the parent. Should not end with '/'\n     * @param routeSegment URL segment of the child\n     * @returns `parentUrl/routeSegment` if the `routeSegment` is truthy (not an empty string).\n     * Returns `parentUrl` if `routeSegment` is falsy (empty string).\n     */\n    protected appendRouteSegment(parentUrl: string, routeSegment: string): string {\n        return routeSegment ? parentUrl + '/' + routeSegment : parentUrl;\n    }\n\n    protected resolveLevels(nodes: Array<NavigationNode>, parentLevel?: number): void {\n        if (!nodes) {\n            return;\n        }\n        const currentLevel = parentLevel === null || parentLevel === undefined ? 0 : parentLevel + 1;\n        nodes.forEach(node => {\n            node.level = currentLevel;\n            if (node.children) {\n                this.resolveLevels(node.children, currentLevel);\n            }\n        });\n    }\n\n    protected resolveChange() {\n        const view = this._config.getViewByPath(this.viewPath);\n        if (view && view.children) {\n            this.dataSource.data = this.resolveNavigationNodes(view.children, this.parentUrl);\n        }\n        this.resolveLevels(this.dataSource.data);\n    }\n}\n","import {AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {User} from '../../user/models/user';\nimport 'hammerjs';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {MatDrawerToggleResult, MatSidenav} from '@angular/material/sidenav';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {BehaviorSubject, Subscription} from 'rxjs';\nimport {ResizeEvent} from 'angular-resizable-element';\nimport {UserPreferenceService} from '../../user/services/user-preference.service';\nimport {MenuResizeEvent} from '../model/navigation-menu-events';\n\nconst DRAWER_DEFAULT_MIN_WIDTH = 200;\nconst DRAWER_MAX_WIDTH = 450;\n\n@Component({\n    selector: 'ncc-abstract-navigation-drawer',\n    template: '',\n})\nexport abstract class AbstractNavigationDrawerComponent implements OnInit, AfterViewInit, OnDestroy {\n\n\n    @Input() public showUser: boolean;\n    @Input() public user: User;\n    @Input() public showQuickPanel: boolean;\n    @Input() public quickPanelItems: Array<any>; // QuickPanelItem\n    @Input() public navigation: boolean;\n\n    @Output() public openedChange: EventEmitter<boolean>;\n    @Output() public resized: EventEmitter<MenuResizeEvent>;\n\n    @ViewChild('sidenav') protected _sideNav: MatSidenav;\n\n    public opened: boolean;\n    protected _fixed: boolean;\n    protected subBreakpoint: Subscription;\n\n    public width: number;\n    public contentWidth: BehaviorSubject<number>;\n\n    protected _config = {\n        mode: 'over',\n        opened: true,\n        disableClose: false,\n    };\n\n    constructor(protected breakpoint: BreakpointObserver,\n                protected _log: LoggerService,\n                protected userPreferenceService: UserPreferenceService) {\n        this.openedChange = new EventEmitter<boolean>();\n        this.resized = new EventEmitter<MenuResizeEvent>();\n        this._fixed = true;\n        this.opened = true;\n        this.quickPanelItems = ['language', 'settings', 'logout', 'impersonation'];\n        if (this.userPreferenceService.drawerWidth !== undefined) {\n            this.contentWidth = new BehaviorSubject<number>(this.userPreferenceService.drawerWidth);\n        } else {\n            this.contentWidth = new BehaviorSubject<number>(DRAWER_DEFAULT_MIN_WIDTH);\n        }\n    }\n\n    ngOnInit(): void {\n        this.resolveLayout(this._fixed);\n        this.subBreakpoint = this.breakpoint.observe([Breakpoints.HandsetLandscape]).subscribe(result => {\n            this._log.info('BreakpointObserver matches width of window: ' + this.breakpoint.isMatched('(max-width: 959.99px)'));\n            if (this.breakpoint.isMatched('(max-width: 959.99px)')) {\n                this.resolveLayout(false);\n                this.opened = this._config.opened;\n            } else {\n                this.resolveLayout(this._fixed);\n                this.opened = this._config.opened;\n            }\n        });\n        this.opened = this._config.opened;\n        this.userPreferenceService.preferencesChanged$.subscribe(() => {\n            this.width = this.userPreferenceService.drawerWidth;\n            this.contentWidth.next(this.width);\n        });\n        // this.width = this.userPreferenceService.getDrawerWidth();\n    }\n\n    ngAfterViewInit(): void {\n        this.openedChange = this._sideNav.openedChange;\n    }\n\n    ngOnDestroy(): void {\n        this.subBreakpoint.unsubscribe();\n        this.openedChange.complete();\n        this.resized.complete();\n    }\n\n    get config() {\n        return this._config;\n    }\n\n    get fixed(): boolean {\n        return this._fixed;\n    }\n\n    @Input()\n    set fixed(value: boolean) {\n        this._fixed = value;\n        this.resolveLayout(this._fixed);\n    }\n\n    open(): Promise<MatDrawerToggleResult> {\n        if (!this._sideNav.opened) {\n            this._sideNav.open();\n        }\n        return Promise.resolve('open');\n    }\n\n    close(): Promise<MatDrawerToggleResult> {\n        if (this._fixed) {\n            return Promise.resolve('close');\n        }\n        return this._sideNav.close();\n    }\n\n    toggle(): Promise<MatDrawerToggleResult> {\n        if (this._fixed) {\n            return Promise.resolve('open');\n        }\n        return this._sideNav.toggle();\n    }\n\n    private resolveLayout(bool: boolean): void {\n        this._config = bool ? {\n            mode: 'side',\n            opened: true,\n            disableClose: true,\n        } : {\n            mode: 'over',\n            opened: false,\n            disableClose: false,\n        };\n        if (bool && this._sideNav) {\n            this._sideNav.open();\n        }\n    }\n\n    swipeRight() {\n        if (this.breakpoint.isMatched('(max-width: 959.99px)')) {\n            this._sideNav.open();\n        }\n    }\n\n    swipeLeft() {\n        if (this.breakpoint.isMatched('(max-width: 959.99px)')) {\n            this._sideNav.close();\n        }\n    }\n\n    onResizeEvent(event: ResizeEvent): void {\n        if (event.rectangle.width > DRAWER_MAX_WIDTH) {\n            this.width = DRAWER_MAX_WIDTH;\n        } else if (event.rectangle.width < DRAWER_DEFAULT_MIN_WIDTH) {\n            this.width = DRAWER_DEFAULT_MIN_WIDTH;\n        } else {\n            this.width = event.rectangle.width;\n        }\n        this.userPreferenceService._drawerWidthChanged$.next(this.width);\n        this.contentWidth.next(this.width);\n        this.resized.emit({width: this.width});\n    }\n}\n","export class ImportToAdd {\n    constructor(public className: string, public fileImportPath: string) {}\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n *\n * File copied from: angular_devkit/core/src/utils/strings.ts\n */\nconst STRING_DASHERIZE_REGEXP = (/[ _]/g);\nconst STRING_DECAMELIZE_REGEXP = (/([a-z\\d])([A-Z])/g);\nconst STRING_CAMELIZE_REGEXP = (/(-|_|\\.|\\s)+(.)?/g);\nconst STRING_UNDERSCORE_REGEXP_1 = (/([a-z\\d])([A-Z]+)/g);\nconst STRING_UNDERSCORE_REGEXP_2 = (/-|\\s+/g);\n\n/**\n * Converts a camelized string into all lower case separated by underscores.\n *\n * ```javascript\n * decamelize('innerHTML');         // 'inner_html'\n * decamelize('action_name');       // 'action_name'\n * decamelize('css-class-name');    // 'css-class-name'\n * decamelize('my favorite items'); // 'my favorite items'\n * ```\n * @method decamelize\n * @param str The string to decamelize.\n * @return the decamelized string.\n */\nexport function decamelize(str: string): string {\n    return str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase();\n}\n\n/**\n * Replaces underscores, spaces, or camelCase with dashes.\n * ```javascript\n * dasherize('innerHTML');         // 'inner-html'\n * dasherize('action_name');       // 'action-name'\n * dasherize('css-class-name');    // 'css-class-name'\n * dasherize('my favorite items'); // 'my-favorite-items'\n * ```\n * @method dasherize\n * @param str The string to dasherize.\n * @return the dasherized string.\n */\nexport function dasherize(str: string): string {\n    return decamelize(str).replace(STRING_DASHERIZE_REGEXP, '-');\n}\n\n/**\n * Returns the lowerCamelCase form of a string.\n * ```javascript\n * camelize('innerHTML');          // 'innerHTML'\n * camelize('action_name');        // 'actionName'\n * camelize('css-class-name');     // 'cssClassName'\n * camelize('my favorite items');  // 'myFavoriteItems'\n * camelize('My Favorite Items');  // 'myFavoriteItems'\n * ```\n * @method camelize\n * @param str The string to camelize.\n * @return the camelized string.\n */\nexport function camelize(str: string): string {\n    return str\n        .replace(STRING_CAMELIZE_REGEXP, (_match: string, _separator: string, chr: string) => {\n            return chr ? chr.toUpperCase() : '';\n        })\n        .replace(/^([A-Z])/, (match: string) => match.toLowerCase());\n}\n\n/**\n * Returns the UpperCamelCase form of a string.\n * ```javascript\n * 'innerHTML'.classify();          // 'InnerHTML'\n * 'action_name'.classify();        // 'ActionName'\n * 'css-class-name'.classify();     // 'CssClassName'\n * 'my favorite items'.classify();  // 'MyFavoriteItems'\n * ```\n * @method classify\n * @param str the string to classify\n * @return the classified string\n */\nexport function classify(str: string): string {\n    return str.split('.').map(part => capitalize(camelize(part))).join('.');\n}\n\n/**\n * More general than decamelize. Returns the lower\\_case\\_and\\_underscored\n * form of a string.\n * ```javascript\n * 'innerHTML'.underscore();          // 'inner_html'\n * 'action_name'.underscore();        // 'action_name'\n * 'css-class-name'.underscore();     // 'css_class_name'\n * 'my favorite items'.underscore();  // 'my_favorite_items'\n * ```\n * @method underscore\n * @param str The string to underscore.\n * @return the underscored string.\n */\nexport function underscore(str: string): string {\n    return str\n        .replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2')\n        .replace(STRING_UNDERSCORE_REGEXP_2, '_')\n        .toLowerCase();\n}\n\n/**\n * Returns the Capitalized form of a string\n * ```javascript\n * 'innerHTML'.capitalize()         // 'InnerHTML'\n * 'action_name'.capitalize()       // 'Action_name'\n * 'css-class-name'.capitalize()    // 'Css-class-name'\n * 'my favorite items'.capitalize() // 'My favorite items'\n * ```\n * @method capitalize\n * @param str The string to capitalize.\n * @return The capitalized string.\n */\nexport function capitalize(str: string): string {\n    return str.charAt(0).toUpperCase() + str.substr(1);\n}\n\n/**\n * Calculate the levenshtein distance of two strings.\n * See https://en.wikipedia.org/wiki/Levenshtein_distance.\n * Based off https://gist.github.com/andrei-m/982927 (for using the faster dynamic programming\n * version).\n *\n * @param a String a.\n * @param b String b.\n * @returns A number that represents the distance between the two strings. The greater the number\n *   the more distant the strings are from each others.\n */\nexport function levenshtein(a: string, b: string): number {\n    if (a.length === 0) {\n        return b.length;\n    }\n    if (b.length === 0) {\n        return a.length;\n    }\n\n    const matrix = [];\n\n    // increment along the first column of each row\n    for (let i = 0; i <= b.length; i++) {\n        matrix[i] = [i];\n    }\n\n    // increment each column in the first row\n    for (let j = 0; j <= a.length; j++) {\n        matrix[0][j] = j;\n    }\n\n    // Fill in the rest of the matrix\n    for (let i = 1; i <= b.length; i++) {\n        for (let j = 1; j <= a.length; j++) {\n            if (b.charAt(i - 1) === a.charAt(j - 1)) {\n                matrix[i][j] = matrix[i - 1][j - 1];\n            } else {\n                matrix[i][j] = Math.min(\n                    matrix[i - 1][j - 1] + 1, // substitution\n                    matrix[i][j - 1] + 1, // insertion\n                    matrix[i - 1][j] + 1, // deletion\n                );\n            }\n        }\n    }\n\n    return matrix[b.length][a.length];\n}\n","import {ImportToAdd} from './import-to-add';\nimport {classify, dasherize} from './angular-cli-devkit-core-strings';\n\nexport class ViewClassInfo extends ImportToAdd {\n\n    /**\n     * for `caseView` located at route `cases/all/` this is equal to `cases-all`\n     */\n    public prefix: string;\n    /**\n     * for `caseView` located at route `cases/all/` this is equal to `CasesAllCaseView`\n     */\n    public nameWithoutComponent: string;\n    /**\n     * for `caseView` located at route `cases/all/` this is equal to `CasesAllCaseViewComponent`\n     */\n    public className: string;\n    /**\n     * for `caseView` located at route `cases/all/` this is equal to `./views/cases/all/cases-all-case-view.component`\n     */\n    public fileImportPath: string;\n\n    constructor(path: string, viewType: string, customComponentName?: string) {\n        super('', '');\n        if (!customComponentName) {\n            this.prefix = ViewClassInfo.convertPathToClassNamePrefix(path);\n            const classSuffix = ViewClassInfo.resolveClassSuffixForView(viewType);\n            this.nameWithoutComponent = `${classify(this.prefix)}${classSuffix}`;\n            this.fileImportPath = `./views/${path}/${this.prefix}-${dasherize(classSuffix)}.component`;\n        } else {\n            this.prefix = '';\n            this.nameWithoutComponent = classify(customComponentName);\n            this.fileImportPath = `./views/${path}/${dasherize(customComponentName)}.component`;\n        }\n        this.className = `${this.nameWithoutComponent}Component`;\n    }\n\n    private static convertPathToClassNamePrefix(path: string): string {\n        const regexDash = /-/g;\n        return path.replace(regexDash, '_').replace(/\\//g, '-').toLocaleLowerCase();\n    }\n\n    private static resolveClassSuffixForView(view: string): string {\n        switch (view) {\n            case 'login':\n                return 'Login';\n            case 'tabView':\n                return 'TabView';\n            case 'taskView':\n                return 'TaskView';\n            case 'caseView':\n                return 'CaseView';\n            case 'emptyView':\n                return 'EmptyView';\n            case 'sidenavView':\n                return 'SidenavView';\n            case 'doubleDrawerView':\n                return 'DoubleDrawerView';\n            case 'toolbarView':\n                return 'ToolbarView';\n            case 'sidenavAndToolbarView':\n                return 'SidenavAndToolbarView';\n            case 'groupView':\n                return 'GroupView';\n            case 'dashboard':\n                return 'Dashboard';\n            case 'treeCaseView':\n                return 'TreeCaseView';\n            case 'workflowView':\n                return 'WorkflowView';\n            case 'roleAssignmentView':\n                return 'RoleAssignmentView';\n            case 'ldapRoleAssignmentView':\n                return 'LdapRoleAssignmentView';\n            default:\n                throw new Error(`Unknown view type '${view}'`);\n        }\n    }\n}\n","import {InjectionToken, Type} from '@angular/core';\nimport {AbstractGroupNavigationComponentResolverComponent\n} from '../group-navigation-component-resolver/abstract-group-navigation-component-resolver.component';\n\n/**\n * Holds component for dynamic routing resolution of group navigation component resolver component by the {@link RoutingBuilderService}.\n */\nexport const NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT\n    = new InjectionToken<Type<AbstractGroupNavigationComponentResolverComponent>>('NaeGroupNavigationComponentResolverComponent');\n","import {Inject, Injectable, Optional, Type} from '@angular/core';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {ViewService} from '../view-service/view.service';\nimport {Route, Router} from '@angular/router';\nimport {View} from '../../../commons/schema';\nimport {AuthenticationGuardService} from '../../authentication/services/guard/authentication-guard.service';\nimport {ViewClassInfo} from '../../../commons/view-class-info';\nimport {classify} from '../../../commons/angular-cli-devkit-core-strings';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {AuthorityGuardService} from '../../authorization/authority/authority-guard.service';\nimport {RoleGuardService} from '../../authorization/role/role-guard.service';\nimport {GroupGuardService} from '../../authorization/group/group-guard.service';\nimport {GroupNavigationConstants} from '../../navigation/model/group-navigation-constants';\nimport {\n    NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT\n} from '../../navigation/model/group-navigation-component-resolver-component-injection-token';\nimport {\n    AbstractGroupNavigationComponentResolverComponent\n} from '../../navigation/group-navigation-component-resolver/abstract-group-navigation-component-resolver.component';\nimport {\n    DynamicNavigationRouteProviderService\n} from '../dynamic-navigation-route-provider/dynamic-navigation-route-provider.service';\n\nexport const NAE_ROUTING_CONFIGURATION_PATH = \"configPath\";\n\n/**\n * Uses the information from nae.json to construct the application's routing\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class RoutingBuilderService {\n\n    private _groupNavigationRouteGenerated = false;\n\n    constructor(router: Router,\n                private _configService: ConfigurationService,\n                private _viewService: ViewService,\n                private _logger: LoggerService,\n                private _dynamicNavigationRouteService: DynamicNavigationRouteProviderService,\n                @Optional() @Inject(NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT)\n                private _groupNavigationComponentResolverComponent: Type<AbstractGroupNavigationComponentResolverComponent>) {\n        router.relativeLinkResolution = 'legacy';\n        router.config.splice(0, router.config.length);\n        for (const [pathSegment, view] of Object.entries(_configService.get().views)) {\n            const route = this.constructRouteObject(view, pathSegment);\n            if (route !== undefined) {\n                router.config.push(route);\n            }\n        }\n        router.config.push(...this.defaultRoutesRedirects());\n    }\n\n    private constructRouteObject(view: View, configPath: string, ancestors: Array<Route> = []): Route | undefined {\n        const component = this.resolveComponentClass(view, configPath);\n        if (component === undefined) {\n            return undefined;\n        }\n        if (!view.routing) {\n            this._logger.warn(`nae.json configuration is invalid. View at path '${configPath}'` +\n                ` must define a 'routing' attribute. Skipping this view for routing generation.`);\n            return undefined;\n        }\n\n        const route: Route = {\n            path: view.routing.path,\n            data: {\n                [NAE_ROUTING_CONFIGURATION_PATH]: configPath\n            },\n            component\n        };\n\n        if (view?.layout?.name === GroupNavigationConstants.GROUP_NAVIGATION_OUTLET) {\n            if (this._groupNavigationRouteGenerated) {\n                this._logger.warn(`Multiple groupNavigationOutlets are present in nae.json. Duplicate entry found at path ${configPath}`);\n            } else {\n                this._logger.debug(`GroupNavigationOutlet found in nae.json at path '${configPath}'`);\n            }\n\n            const pathNoParams = route.path;\n            route.path = `${pathNoParams}/:${GroupNavigationConstants.GROUP_NAVIGATION_ROUTER_PARAM}`;\n            route.canActivate = [AuthenticationGuardService];\n            const parentPathSegments = ancestors.map(a => a.path);\n            parentPathSegments.push(pathNoParams);\n            this._dynamicNavigationRouteService.route = parentPathSegments.join('/');\n\n            this._groupNavigationRouteGenerated = true;\n            return route;\n        }\n\n        if (view.routing.match !== undefined && view.routing.match) {\n            route['pathMatch'] = 'full';\n        }\n        route['canActivate'] = [];\n        if (view.access === 'private'\n            || view.access.hasOwnProperty('role')\n            || view.access.hasOwnProperty('group')\n            || view.access.hasOwnProperty('authority')) {\n            route['canActivate'].push(AuthenticationGuardService);\n        }\n        if (view.access.hasOwnProperty('role')) {\n            route['canActivate'].push(RoleGuardService);\n        }\n        if (view.access.hasOwnProperty('authority')) {\n            route['canActivate'].push(AuthorityGuardService);\n        }\n        if (view.access.hasOwnProperty('group')) {\n            route['canActivate'].push(GroupGuardService);\n        }\n        if (!!view.children) {\n            route['children'] = [];\n            Object.entries(view.children).forEach(([configPathSegment, childView]) => {\n                // TODO check if routes are constructed correctly regarding empty route segments\n                const childRoute = this.constructRouteObject(childView, `${configPath}/${configPathSegment}`, [...ancestors, route]);\n                if (childRoute !== undefined) {\n                    route['children'].push(childRoute);\n                }\n            });\n        }\n        if (view?.layout?.name === 'tabView') {\n            if (!view.children) {\n                route['children'] = [];\n            }\n            route['children'].push({\n                path: '**',\n                component\n            });\n        }\n\n        return route;\n    }\n\n    private resolveComponentClass(view: View, configPath: string): Type<any> | undefined {\n        let result;\n        if (!!view.component) {\n            result = this._viewService.resolveNameToClass(view.component.class);\n        } else if (!!view.layout) {\n            result = this.resolveComponentClassFromLayout(view, configPath);\n        } else {\n            this._logger.warn(`nae.json configuration is invalid. View at path '${configPath}'` +\n                ` must define either a 'layout' or a 'component' attribute. Skipping this view for routing generation.`);\n            return undefined;\n        }\n        if (result === undefined) {\n            this._logger.warn(`Some views from nae.json configuration have not been created in the project.` +\n                ` Run create-view schematic to rectify this. Skipping this view for routing generation.`);\n            return undefined;\n        }\n        return result;\n    }\n\n    private resolveComponentClassFromLayout(view: View, configPath: string): Type<any> | undefined {\n        if (view.layout.name === GroupNavigationConstants.GROUP_NAVIGATION_OUTLET) {\n            return this._groupNavigationComponentResolverComponent;\n        }\n\n        const className = RoutingBuilderService.parseClassNameFromView(view, configPath);\n        return this._viewService.resolveNameToClass(className);\n    }\n\n    public static parseClassNameFromView(view: View, configPath: string): string {\n        if (!!view.layout.componentName) {\n            return `${classify(view.layout.componentName)}Component`;\n        } else {\n            const classInfo = new ViewClassInfo(configPath, view.layout.name, view.layout.componentName);\n            return classInfo.className;\n        }\n    }\n\n    private defaultRoutesRedirects(): Array<Route> {\n        const result = [];\n        const servicesConfig = this._configService.getServicesConfiguration();\n        if (!!servicesConfig && !!servicesConfig.routing) {\n            if (!!servicesConfig.routing.defaultRedirect) {\n                result.push({\n                    path: '',\n                    redirectTo: servicesConfig.routing.defaultRedirect,\n                    pathMatch: 'full'\n                });\n            }\n            if (!!servicesConfig.routing.wildcardRedirect) {\n                result.push({\n                    path: '**',\n                    redirectTo: servicesConfig.routing.wildcardRedirect\n                });\n            }\n        }\n        return result;\n    }\n}\n","import {MatDrawerMode} from '@angular/material/sidenav';\nimport {View} from '../../../commons/schema';\nimport {Case} from '../../resources/interface/case';\n\nexport interface ConfigDoubleMenu {\n    mode: MatDrawerMode;\n    opened: boolean;\n    disableClose: boolean;\n    width: number;\n}\n\nexport interface NavigationItem extends View {\n    id: string;\n    resource?: Case;\n}\n\nexport const MENU_IDENTIFIERS = [\n    'preference_item',\n];\nexport const SETTINGS_TRANSITION_ID = 'item_settings';\n\nexport const LEFT_DRAWER_DEFAULT_WIDTH = 60;\nexport const RIGHT_DRAWER_DEFAULT_WIDTH = 240;\nexport const RIGHT_DRAWER_DEFAULT_MIN_WIDTH = 180;\nexport const RIGHT_DRAWER_MAX_WIDTH = 460;\nexport const RIGHT_SIDE_NEW_PAGE_SIZE = 10\nexport const RIGHT_SIDE_INIT_PAGE_SIZE = 20\n\nexport enum MenuOrder {\n    Ascending,\n    Descending\n}\n","/**\n * Holds all identifiers of the Impersonation config process in an accessible manner\n */\nexport enum UserImpersonationConstants {\n\n    IMPERSONATION_CONFIG_NET_IDENTIFIER = 'impersonation_config',\n\n    IMPERSONATION_CONFIG_FIELD_IMPERSONATED = 'impersonated',\n    IMPERSONATION_CONFIG_FIELD_ROLES = 'impersonated_roles',\n    IMPERSONATION_CONFIG_FIELD_AUTHS = 'impersonated_authorities',\n\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {AbstractResourceService, ResourceProvider, UserResource} from '../../resources/public-api';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {UserService} from '../../user/services/user.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {FilterRepository} from '../../filter/filter.repository';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {Observable, Subject, Subscription} from 'rxjs';\nimport {User} from '../../user/models/user';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class ImpersonationService extends AbstractResourceService implements OnDestroy {\n\n    private _impersonating$ = new Subject<boolean>();\n\n    private _lastUser: User;\n    private _sub: Subscription;\n\n    public constructor(protected provider: ResourceProvider,\n                       protected _router: Router,\n                       protected _configService: ConfigurationService,\n                       protected _userService: UserService,\n                       protected _snackbar: SnackBarService,\n                       protected _filter: FilterRepository,\n                       protected _log: LoggerService,\n                       protected _translate: TranslateService) {\n        super('impersonation', provider, _configService);\n        this._sub = this._userService.user$.subscribe(user => this._resolveUserChange(user));\n    }\n\n    public get impersonating$(): Observable<boolean> {\n        return this._impersonating$.asObservable();\n    }\n\n    public impersonateUser(userId: string): void {\n        this.provider.post$('impersonate/user/' + userId, this.SERVER_URL, {}).subscribe((user: UserResource) => {\n            this._resolveSuccess(user);\n        }, (response => {\n            this._resolveError(response);\n        }));\n    }\n\n    public impersonateByConfig(configId: string): void {\n        this.provider.post$('impersonate/config/' + configId, this.SERVER_URL, {}).subscribe((user: UserResource) => {\n            this._resolveSuccess(user);\n        }, (response => {\n            this._resolveError(response);\n        }));\n    }\n\n    public cease(): void {\n        this.provider.post$('impersonate/clear', this.SERVER_URL, {}).subscribe(user => {\n            this._snackbar.openSuccessSnackBar(this._translate.instant('impersonation.action.deactivated'));\n            return this._triggerReload();\n        }, (error => {\n            this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.action.failed'));\n        }));\n    }\n\n    protected _resolveSuccess(user: UserResource) {\n        this._snackbar.openSuccessSnackBar(this._translate.instant('impersonation.user.successfullyRepresented'));\n        this._triggerReload();\n    }\n\n    protected _resolveError(response: any) {\n        if (response.status === 400) {\n            response.error.alreadyImpersonated ?\n                this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.user.currentlyAlreadyRepresented')) :\n                this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.user.currentlyLogged'));\n        } else {\n            this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.action.failed'));\n        }\n    }\n\n    protected _triggerReload(): void {\n        this._userService.reload();\n    }\n\n    protected _resolveUserChange(user: User) {\n        if (this._lastUser && this._lastUser.isImpersonating() != user.isImpersonating()) {\n            this._filter.removeAllFilters();\n            this._impersonating$.next(user.isImpersonating());\n        }\n        this._lastUser = user;\n    }\n\n    ngOnDestroy(): void {\n        if (this._sub) {\n            this._sub.unsubscribe();\n        }\n    }\n}\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {ImpersonationService} from \"./impersonation.service\";\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {UserImpersonateConfigMetadata} from '../models/user-impersonate-config-metadata';\nimport {\n    UserImpersonateInjectionData\n} from '../../side-menu/content-components/user-impersonate/model/user-impersonate-injection-data';\nimport {SimpleFilter} from '../../filter/models/simple-filter';\nimport {UserImpersonationConstants} from '../models/user-impersonation-constants';\nimport moment from 'moment';\nimport {UserService} from '../../user/services/user.service';\nimport {MatDialog} from '@angular/material/dialog';\nimport {\n    NAE_ADMIN_IMPERSONATE_DIALOG_COMPONENT,\n    NAE_USER_IMPERSONATE_DIALOG_COMPONENT\n} from '../../dialog/injection-tokens';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ImpersonationUserSelectService {\n\n    constructor(protected _log: LoggerService,\n                protected _snackBar: SnackBarService,\n                protected _impersonation: ImpersonationService,\n                protected _user: UserService,\n                protected _dialog: MatDialog,\n                @Optional() @Inject(NAE_USER_IMPERSONATE_DIALOG_COMPONENT) protected _userImpersonateComponent: any,\n                @Optional() @Inject(NAE_ADMIN_IMPERSONATE_DIALOG_COMPONENT) protected _adminImpersonateComponent: any,\n    ) {}\n\n    /**\n     * Opens side menu with users who can be impersonated by logged user\n     */\n    public selectImpersonate(): void {\n        if (this.isAdmin()) {\n            const dialogRef = this._dialog.open(this._adminImpersonateComponent, {\n                panelClass: \"dialog-responsive\",\n                data: this.injectedData(),\n            });\n            dialogRef.afterClosed().subscribe(event => {\n                this._log.debug('Impersonable user select :' + event);\n                if (event?.data === undefined) {\n                    return;\n                }\n                this._impersonation.impersonateUser(event.data._id);\n            });\n        } else {\n            const dialogRef = this._dialog.open(this._userImpersonateComponent, {\n                panelClass: \"dialog-responsive\",\n                data: this.injectedData(),\n            });\n            dialogRef.afterClosed().subscribe(event => {\n                this._log.debug('Impersonable config select :' + event);\n                if (event?.data === undefined) {\n                    return;\n                }\n                this._impersonation.impersonateByConfig((event.data as UserImpersonateConfigMetadata).stringId);\n            });\n        }\n    }\n\n    protected injectedData(): UserImpersonateInjectionData {\n        const currentTime = moment();\n        let filterCasesFilter = SimpleFilter.fromCaseQuery({\n            process: {\n                identifier: UserImpersonationConstants.IMPERSONATION_CONFIG_NET_IDENTIFIER\n            },\n            query: `\n            (dataSet.impersonators.keyValue:${this._user.user.id}) AND\n            (dataSet.is_active.booleanValue:true) AND\n            ((!(_exists_:dataSet.valid_from.timestampValue)) OR (dataSet.valid_from.timestampValue:<` + currentTime.valueOf() + `)) AND\n            ((!(_exists_:dataSet.valid_to.timestampValue)) OR (dataSet.valid_to.timestampValue:>${currentTime.valueOf()}))\n            `\n        });\n        return {\n            filter: filterCasesFilter\n        } as UserImpersonateInjectionData\n    }\n\n    protected isAdmin(): boolean {\n        return this._user.hasAuthority('ROLE_ADMIN');\n    }\n\n}\n","import {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {HttpParams} from '@angular/common/http';\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, TemplateRef} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ResizeEvent} from 'angular-resizable-element';\nimport {Observable, of, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {RoleAccess, View} from '../../../commons/schema';\nimport {AccessService} from '../../authorization/permission/access.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {I18nFieldValue} from '../../data-fields/i18n-field/models/i18n-field-value';\nimport {CaseSearchRequestBody, PetriNetSearchRequest} from '../../filter/models/case-search-request-body';\nimport {SimpleFilter} from '../../filter/models/simple-filter';\nimport {ImpersonationUserSelectService} from '../../impersonation/services/impersonation-user-select.service';\nimport {ImpersonationService} from '../../impersonation/services/impersonation.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {CaseResourceService} from '../../resources/engine-endpoint/case-resource.service';\nimport {Case} from '../../resources/interface/case';\nimport {Page} from '../../resources/interface/page';\nimport {\n    DynamicNavigationRouteProviderService,\n} from '../../routing/dynamic-navigation-route-provider/dynamic-navigation-route-provider.service';\nimport {NAE_ROUTING_CONFIGURATION_PATH} from '../../routing/routing-builder/routing-builder.service';\nimport {LanguageService} from '../../translate/language.service';\nimport {User} from '../../user/models/user';\nimport {UserService} from '../../user/services/user.service';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {PaginationParams} from '../../utility/pagination/pagination-params';\nimport {GroupNavigationConstants} from '../model/group-navigation-constants';\nimport {\n    ConfigDoubleMenu,\n    LEFT_DRAWER_DEFAULT_WIDTH,\n    MENU_IDENTIFIERS,\n    MenuOrder,\n    NavigationItem,\n    RIGHT_DRAWER_DEFAULT_MIN_WIDTH,\n    RIGHT_DRAWER_DEFAULT_WIDTH,\n    RIGHT_DRAWER_MAX_WIDTH,\n    RIGHT_SIDE_INIT_PAGE_SIZE,\n    RIGHT_SIDE_NEW_PAGE_SIZE,\n    SETTINGS_TRANSITION_ID,\n} from '../model/navigation-configs';\nimport {\n    MenuItemClickEvent,\n    MenuItemLoadedEvent,\n    MenuResizeEvent,\n    MenuStateChangeEvent,\n} from '../model/navigation-menu-events';\nimport {UriNodeResource} from '../model/uri-resource';\nimport {UriService} from '../service/uri.service';\n\n@Component({\n    selector: 'ncc-abstract-navigation-double-drawer',\n    template: '',\n})\nexport abstract class AbstractNavigationDoubleDrawerComponent implements OnInit, OnDestroy {\n\n    @Input() portalLeftMenu: TemplateRef<any>;\n    @Input() portalRightMenu: TemplateRef<any>;\n    @Input() imageRouterLink: string = '/';\n    @Input() imageAlt: string = 'Logo';\n    @Input() image: string;\n    @Input() profileRouterLink: string = '/profile';\n    @Input() includeUser: boolean = true;\n    @Input() includeLanguage: boolean = true;\n    @Input() includeMoreMenu: boolean = true;\n    @Input() includeImpersonation: boolean = true;\n    @Input() allClosable: boolean = true;\n    @Input() folderIcon: string = 'folder';\n    @Input() openedFolderIcon: string = 'folder_open';\n    @Input() filterIcon: string = 'filter_alt';\n    @Input() foldersCategoryName: string = 'toolbar.menu.folders';\n    @Input() viewsCategoryName: string = 'toolbar.menu.views';\n\n    @Output() loggedOut = new EventEmitter<any>(true); // on logout\n    @Output() stateChanged = new EventEmitter<MenuStateChangeEvent>(); // on menu state change\n    @Output() itemClicked = new EventEmitter<MenuItemClickEvent>(); // on item click\n    @Output() resized = new EventEmitter<MenuResizeEvent>(true); // on menu resize\n    @Output() itemLoaded = new EventEmitter<MenuItemLoadedEvent>(true); // on item loaded\n\n\n    /**\n     * List of displayed items on the left side\n     * */\n    leftItems: Array<NavigationItem>;\n\n    /**\n     * List of displayed items on the right side\n     * */\n    rightItems: Array<NavigationItem>;\n\n    /**\n     * List of hidden items\n     * */\n    moreItems: Array<NavigationItem>;\n\n    /**\n     * List of custom items in more menu\n     * */\n    hiddenCustomItems: Array<NavigationItem>;\n\n    itemsOrder: MenuOrder;\n\n    protected _breakpointSubscription: Subscription;\n    protected _currentNodeSubscription: Subscription;\n\n    /**\n     * Currently display uri\n     * Siblings of the node are on the left, children are on the right\n     */\n    protected _currentNode: UriNodeResource;\n\n    leftLoading$: LoadingEmitter;\n    rightLoading$: LoadingEmitter;\n    nodeLoading$: LoadingEmitter;\n\n    protected _configLeftMenu: ConfigDoubleMenu = {\n        mode: 'side',\n        opened: true,\n        disableClose: false,\n        width: LEFT_DRAWER_DEFAULT_WIDTH,\n    };\n    protected _configRightMenu: ConfigDoubleMenu = {\n        mode: 'side',\n        opened: true,\n        disableClose: false,\n        width: RIGHT_DRAWER_DEFAULT_WIDTH,\n    };\n\n    protected _childCustomViews: { [uri: string]: { [key: string]: NavigationItem } };\n\n    protected constructor(protected _router: Router,\n                          protected _activatedRoute: ActivatedRoute,\n                          protected _breakpoint: BreakpointObserver,\n                          protected _languageService: LanguageService,\n                          protected _translateService: TranslateService,\n                          protected _userService: UserService,\n                          protected _accessService: AccessService,\n                          protected _log: LoggerService,\n                          protected _config: ConfigurationService,\n                          protected _uriService: UriService,\n                          protected _caseResourceService: CaseResourceService,\n                          protected _impersonationUserSelect: ImpersonationUserSelectService,\n                          protected _impersonation: ImpersonationService,\n                          protected _dynamicRoutingService: DynamicNavigationRouteProviderService) {\n        this.leftItems = new Array<NavigationItem>();\n        this.rightItems = new Array<NavigationItem>();\n        this.leftLoading$ = new LoadingEmitter();\n        this.rightLoading$ = new LoadingEmitter();\n        this.nodeLoading$ = new LoadingEmitter();\n        this.itemsOrder = MenuOrder.Ascending;\n        this.hiddenCustomItems = [];\n        this.moreItems = new Array<NavigationItem>();\n        this._childCustomViews = {};\n    }\n\n    ngOnInit(): void {\n        this._breakpointSubscription = this._breakpoint.observe([Breakpoints.HandsetLandscape]).subscribe(() => {\n            if (this._breakpoint.isMatched('(max-width: 959.99px)')) {\n                this.resolveLayout(false);\n            } else {\n                this.resolveLayout(true);\n            }\n        });\n\n        this._currentNodeSubscription = this._uriService.activeNode$.subscribe(node => {\n            this.currentNode = node;\n        });\n\n        const viewConfigurationPath = this._activatedRoute.snapshot.data[NAE_ROUTING_CONFIGURATION_PATH];\n        if (!!viewConfigurationPath) {\n            const viewConfiguration = this._config.getViewByPath(viewConfigurationPath);\n            Object.entries(viewConfiguration.children).forEach(([key, childView]) => {\n                this.resolveUriForChildViews(viewConfigurationPath + '/' + key, childView);\n                this.resolveHiddenMenuItemFromChildViews(viewConfigurationPath + '/' + key, childView);\n            });\n        }\n    }\n\n    get currentNode(): UriNodeResource {\n        return this._currentNode;\n    }\n\n    set currentNode(node: UriNodeResource) {\n        if (node === this._currentNode || this.leftLoading$.isActive || this.rightLoading$.isActive) {\n            return;\n        }\n        this._currentNode = node;\n        if (!node) {\n            return;\n        }\n        if (node.parentId && !node.parent) {\n            if (node.parentId === this._uriService.root.id) {\n                node.parent = this._uriService.root;\n            } else {\n                this.nodeLoading$.on();\n                this._uriService.getNodeByPath(this._uriService.resolveParentPath(node)).subscribe(n => {\n                    node.parent = !n ? this._uriService.root : n;\n                    this.nodeLoading$.off();\n                }, error => {\n                    this._log.error(error);\n                    this.nodeLoading$.off();\n                });\n            }\n        }\n        if (this.nodeLoading$.isActive) {\n            this.nodeLoading$.subscribe(() => {\n                this.resolveMenuItems(node);\n            });\n        } else {\n            this.resolveMenuItems(node);\n        }\n    }\n\n    protected resolveMenuItems(node: UriNodeResource) {\n        if (this._uriService.isRoot(node)) {\n            this.leftItems = [];\n            this.loadRightSide();\n        } else {\n            if (!this.leftItems.find(item => item.resource?.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH)?.value === node.uriPath)) {\n                this.loadLeftSide();\n            }\n            this.loadRightSide();\n        }\n    }\n\n    ngOnDestroy(): void {\n        this._breakpointSubscription?.unsubscribe();\n        this._currentNodeSubscription?.unsubscribe();\n        this.leftLoading$.complete();\n        this.rightLoading$.complete();\n        this.nodeLoading$.complete();\n        this.loggedOut.complete();\n        this.stateChanged.complete();\n        this.itemClicked.complete();\n        this.resized.complete();\n        this.itemLoaded.complete();\n    }\n\n    get configLeftMenu() {\n        return this._configLeftMenu;\n    }\n\n    get configRightMenu() {\n        return this._configRightMenu;\n    }\n\n    toggleMenu() {\n        this.toggleRightMenu();\n        if (this.allClosable) {\n            this.toggleLeftMenu();\n        }\n    }\n\n    toggleLeftMenu() {\n        this._configLeftMenu.opened = !this._configLeftMenu.opened;\n        this.stateChanged.emit({menu: 'left', isOpened: this._configLeftMenu.opened});\n    }\n\n    toggleRightMenu() {\n        this._configRightMenu.opened = !this._configRightMenu.opened;\n        this.stateChanged.emit({menu: 'right', isOpened: this._configRightMenu.opened});\n    }\n\n    protected resolveLayout(isLargeScreen: boolean): void {\n        this._configLeftMenu = isLargeScreen ? {\n            mode: 'side',\n            opened: true,\n            disableClose: true,\n            width: this._configLeftMenu.width,\n        } : {\n            mode: 'over',\n            opened: false,\n            disableClose: false,\n            width: this._configLeftMenu.width,\n        };\n        this._configRightMenu = isLargeScreen ? {\n            mode: 'side',\n            opened: true,\n            disableClose: true,\n            width: this._configRightMenu.width,\n        } : {\n            mode: 'over',\n            opened: false,\n            disableClose: false,\n            width: this._configRightMenu.width,\n        };\n    }\n\n    getLang() {\n        return this._languageService.getLanguage();\n    }\n\n    logout(): void {\n        this._userService.logout().subscribe(response => {\n            this._log.debug('User is logged out');\n            this.loggedOut.emit(response);\n            if (this._config.get().services && this._config.get().services.auth && this._config.getOnLogoutPath()) {\n                const redirectPath = this._config.getOnLogoutPath();\n                this._log.info('Redirecting to ' + redirectPath);\n                this._router.navigate([redirectPath]);\n            }\n        });\n    }\n\n    impersonate(): void {\n        this._impersonationUserSelect.selectImpersonate();\n    }\n\n    stopImpersonating(): void {\n        this._impersonation.cease();\n    }\n\n    get user(): User {\n        return this._userService.user;\n    }\n\n    get canGoBackLoading$(): Observable<boolean> {\n        return this.nodeLoading$;\n    }\n\n    /**\n     * On home click, the current level is set to 0, and current parent is\n     * set to root node.\n     * */\n    onHomeClick(): void {\n        if (this.leftLoading$.isActive || this.rightLoading$.isActive) {\n            return;\n        }\n        this._uriService.activeNode = this._uriService.root;\n        this.itemClicked.emit({uriNode: this._uriService.activeNode, isHome: true});\n    }\n\n    /**\n     * On back click, the parent is set to parent of left nodes, that will solve\n     * the right side menu (elements that were in left side, after backward\n     * navigation will be on the right side).\n     * Current level is set to a lower number in order to set the left side menu.\n     * */\n    onBackClick(): void {\n        if (this.leftLoading$.isActive || this.rightLoading$.isActive || this._uriService.isRoot(this._currentNode)) {\n            return;\n        }\n        this._uriService.activeNode = this._currentNode.parent;\n        this.itemClicked.emit({uriNode: this._uriService.activeNode, isHome: false});\n    }\n\n    onItemClick(item: NavigationItem): void {\n        if (item.resource === undefined) {\n            // custom view represented only in nae.json\n            if (item.processUri === this.currentNode.uriPath) {\n                this._uriService.activeNode = this._currentNode;\n            } else {\n                this._uriService.activeNode = this._currentNode.parent;\n            }\n            this.itemClicked.emit({uriNode: this._uriService.activeNode, isHome: false});\n        } else {\n            const path = item.resource.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH)?.value;\n            if (this.hasItemChildren(item) && !this.leftLoading$.isActive && !this.rightLoading$.isActive) {\n                this._uriService.getNodeByPath(path).subscribe(node => {\n                    this._uriService.activeNode = node;\n                    this.itemClicked.emit({uriNode: this._uriService.activeNode, isHome: false});\n                }, error => {\n                    this._log.error(error);\n                });\n            } else if (!path.includes(this.currentNode.uriPath)) {\n                this._uriService.activeNode = this._currentNode.parent;\n                this.itemClicked.emit({uriNode: this._uriService.activeNode, isHome: false});\n            } else {\n                this._uriService.activeNode = this._currentNode;\n                this.itemClicked.emit({uriNode: this._uriService.activeNode, isHome: false});\n            }\n        }\n    }\n\n    hasItemChildren(item: NavigationItem): boolean {\n        return item.resource?.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_HAS_CHILDREN)?.value;\n    }\n\n    isItemAndNodeEqual(item: NavigationItem, node: UriNodeResource): boolean {\n        return item.resource?.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH)?.value === node.uriPath;\n    }\n\n    protected loadLeftSide() {\n        if (this._uriService.isRoot(this._currentNode)) {\n            this.leftItems = [];\n            return;\n        }\n        this.leftLoading$.on();\n        this._uriService.getItemCaseByNodePath(this.currentNode.parent).subscribe(page => {\n            let childCases$;\n            let targetItem;\n            let orderedChildCaseIds;\n\n            if (page?.pagination?.totalElements === 0) {\n                childCases$ = of([]);\n            } else {\n                targetItem = page.content[0];\n                orderedChildCaseIds = this.extractChildCaseIds(targetItem);\n                childCases$ = this.getItemCasesByIdsInOnePage(orderedChildCaseIds).pipe(\n                    map(p => p.content),\n                );\n            }\n\n            childCases$.subscribe(result => {\n                result = result.map(folder => this.resolveItemCaseToNavigationItem(folder)).filter(i => !!i);\n                this.leftItems = result.sort((a, b) => orderedChildCaseIds.indexOf(a.resource.stringId) - orderedChildCaseIds.indexOf(b.resource.stringId));\n                this.resolveCustomViewsInLeftSide();\n                this.leftLoading$.off();\n                this.itemLoaded.emit({menu: 'left', items: this.leftItems});\n            }, error => {\n                this._log.error(error);\n                this.leftItems = [];\n                this.resolveCustomViewsInLeftSide();\n                this.leftLoading$.off();\n            });\n        }, error => {\n            this._log.error(error);\n            this.leftItems = [];\n            this.resolveCustomViewsInLeftSide();\n            this.leftLoading$.off();\n        });\n    }\n\n    protected loadRightSide() {\n        this.rightLoading$.on();\n        this.moreItems = [];\n        this._uriService.getItemCaseByNodePath(this.currentNode).subscribe(page => {\n            let childCases$;\n            let targetItem;\n            let orderedChildCaseIds;\n\n            if (page?.pagination?.totalElements === 0) {\n                childCases$ = of([]);\n            } else {\n                targetItem = page.content[0];\n                orderedChildCaseIds = this.extractChildCaseIds(targetItem);\n                childCases$ = this.getItemCasesByIdsInOnePage(orderedChildCaseIds).pipe(\n                    map(p => p.content),\n                );\n            }\n\n            childCases$.subscribe(result => {\n                result = (result as Case[]).sort((a, b) => orderedChildCaseIds.indexOf(a.stringId) - orderedChildCaseIds.indexOf(b.stringId));\n                if (result.length > RIGHT_SIDE_INIT_PAGE_SIZE) {\n                    const rawRightItems: Case[] = result.splice(0, RIGHT_SIDE_INIT_PAGE_SIZE);\n                    this.rightItems = rawRightItems.map(folder => this.resolveItemCaseToNavigationItem(folder)).filter(i => !!i);\n                    this.moreItems = result.map(folder => this.resolveItemCaseToNavigationItem(folder)).filter(i => !!i);\n                } else {\n                    this.rightItems = result.map(folder => this.resolveItemCaseToNavigationItem(folder)).filter(i => !!i);\n                }\n                this.resolveCustomViewsInRightSide();\n                this.rightLoading$.off();\n                this.itemLoaded.emit({menu: 'right', items: this.rightItems});\n            }, error => {\n                this._log.error(error);\n                this.rightItems = [];\n                this.moreItems = [];\n                this.resolveCustomViewsInRightSide();\n                this.rightLoading$.off();\n            });\n        }, error => {\n            this._log.error(error);\n            this.rightItems = [];\n            this.moreItems = [];\n            this.resolveCustomViewsInRightSide();\n            this.rightLoading$.off();\n        });\n    }\n\n    protected extractChildCaseIds(item: Case): string[] {\n        return item.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_CHILD_ITEM_IDS)?.value;\n    }\n\n    protected getItemCasesByIdsInOnePage(caseIds: string[]): Observable<Page<Case>> {\n        return this.getItemCasesByIds(caseIds, 0, caseIds.length);\n    }\n\n    protected getItemCasesByIds(caseIds: string[], pageNumber: number, pageSize: string | number): Observable<Page<Case>> {\n        const searchBody: CaseSearchRequestBody = {\n            stringId: caseIds,\n            process: MENU_IDENTIFIERS.map(id => ({identifier: id} as PetriNetSearchRequest)),\n        };\n\n        let httpParams = new HttpParams()\n            .set(PaginationParams.PAGE_SIZE, pageSize)\n            .set(PaginationParams.PAGE_NUMBER, pageNumber);\n        return this._caseResourceService.searchCases(SimpleFilter.fromCaseQuery(searchBody), httpParams);\n    }\n\n    public loadMoreItems() {\n        if (this.moreItems.length > RIGHT_SIDE_NEW_PAGE_SIZE) {\n            this.rightItems.push(...this.moreItems.splice(0, RIGHT_SIDE_NEW_PAGE_SIZE));\n        } else {\n            this.rightItems.push(...this.moreItems);\n            this.moreItems = [];\n        }\n    }\n\n    public isAscending() {\n        return this.itemsOrder === MenuOrder.Ascending;\n    }\n\n    public switchOrder() {\n        this.itemsOrder = (this.itemsOrder + 1) % 2;\n        let multiplier = 1;\n        if (this.itemsOrder === MenuOrder.Descending) {\n            multiplier = -1;\n        }\n        this.rightItems.sort((a, b) => multiplier * (a?.navigation as NavigationItem)?.title.localeCompare((b?.navigation as NavigationItem)?.title));\n        this.leftItems.sort((a, b) => multiplier * (a?.navigation as NavigationItem)?.title.localeCompare((b?.navigation as NavigationItem)?.title));\n    }\n\n    protected resolveCustomViewsInRightSide() {\n        if (!!this._childCustomViews[this._currentNode.uriPath]) {\n            this.rightItems.push(...Object.values(this._childCustomViews[this._currentNode.uriPath]));\n        }\n    }\n\n    protected resolveCustomViewsInLeftSide() {\n        if (!!this._childCustomViews[this._currentNode.parent.uriPath]) {\n            this.leftItems.push(...Object.values(this._childCustomViews[this._currentNode.parent.uriPath]));\n        }\n    }\n\n    protected resolveItemCaseToNavigationItem(itemCase: Case): NavigationItem | undefined {\n        if (this.representsRootNode(itemCase)) {\n            return;\n        }\n        const item: NavigationItem = {\n            access: {},\n            navigation: {\n                icon: itemCase.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_MENU_ICON)?.value || this.filterIcon,\n                title: this.getTranslation(itemCase.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_MENU_NAME)?.value) || itemCase.title,\n            },\n            routing: {\n                path: this.getItemRoutingPath(itemCase),\n            },\n            id: itemCase.stringId,\n            resource: itemCase,\n        };\n        const resolvedRoles = this.resolveAccessRoles(itemCase, GroupNavigationConstants.ITEM_FIELD_ID_ALLOWED_ROLES);\n        const resolvedBannedRoles = this.resolveAccessRoles(itemCase, GroupNavigationConstants.ITEM_FIELD_ID_BANNED_ROLES);\n        if (!!resolvedRoles) item.access['role'] = resolvedRoles;\n        if (!!resolvedBannedRoles) item.access['bannedRole'] = resolvedBannedRoles;\n        if (!this._accessService.canAccessView(item, item.routingPath)) return;\n        return item;\n    }\n\n    protected representsRootNode(item: Case): boolean {\n        return item.immediateData.find(f => f.stringId === GroupNavigationConstants.ITEM_FIELD_ID_NODE_PATH).value === '/';\n    }\n\n    protected getTranslation(value: I18nFieldValue): string {\n        const locale = this._translateService.currentLang.split('-')[0];\n        return locale in value.translations ? value.translations[locale] : value.defaultValue;\n    }\n\n    protected resolveAccessRoles(filter: Case, roleType: string): Array<RoleAccess> | undefined {\n        const allowedRoles = filter.immediateData.find(f => f.stringId === roleType)?.options;\n        if (!allowedRoles || Object.keys(allowedRoles).length === 0) return undefined;\n        const roles = [];\n        Object.keys(allowedRoles).forEach(combined => {\n            const parts = combined.split(':');\n            roles.push({\n                processId: parts[1],\n                roleId: parts[0],\n            });\n        });\n        return roles;\n    }\n\n    protected getItemRoutingPath(itemCase: Case) {\n        const transId = SETTINGS_TRANSITION_ID;\n        const taskId = itemCase.tasks.find(taskPair => taskPair.transition === transId).task;\n        const url = this._dynamicRoutingService.route;\n        return `/${url}/${taskId}`;\n    }\n\n    /**\n     * Function to check whether the back button should be displayed\n     * @returns boolean if the back button should be displayed\n     * */\n    isOnZeroLevel(): boolean {\n        return !!this._currentNode?.level ? this._currentNode.level == 0 : true;\n    }\n\n    isLeftItemsEmpty(): boolean {\n        return this.leftItems === undefined || this.leftItems.length === 0;\n    }\n\n    isRightItemsEmpty(): boolean {\n        return this.rightItems === undefined || this.rightItems.length === 0;\n    }\n\n    uriNodeTrackBy(index: number, node: UriNodeResource) {\n        return node.id;\n    }\n\n    itemsTrackBy(index: number, item: NavigationItem) {\n        return item.id;\n    }\n\n    onResizeEvent(event: ResizeEvent): void {\n        if (event.rectangle.width > RIGHT_DRAWER_MAX_WIDTH) {\n            this._configRightMenu.width = RIGHT_DRAWER_MAX_WIDTH;\n        } else if (event.rectangle.width < RIGHT_DRAWER_DEFAULT_MIN_WIDTH) {\n            this._configRightMenu.width = RIGHT_DRAWER_DEFAULT_MIN_WIDTH;\n        } else {\n            this._configRightMenu.width = event.rectangle.width;\n        }\n        this.resized.emit({width: this._configRightMenu.width});\n        // TODO implement saving drawer width to user preferences\n        // this.userPreferenceService._drawerWidthChanged$.next(this.width);\n        // this.contentWidth.next(this.width);\n    }\n\n    protected resolveUriForChildViews(configPath: string, childView: View): void {\n        if (!childView.processUri) return;\n        if (!this._accessService.canAccessView(childView, configPath)) return;\n        if (!this._childCustomViews[childView.processUri]) {\n            this._childCustomViews[childView.processUri] = {};\n        }\n        this._childCustomViews[childView.processUri][configPath] = {\n            id: configPath,\n            ...childView,\n        };\n    }\n\n    protected resolveHiddenMenuItemFromChildViews(configPath: string, childView: View): void {\n        if (!childView.navigation) return;\n        if (!this._accessService.canAccessView(childView, configPath)) return;\n        if (!!((childView?.navigation as any)?.hidden)) {\n            this.hiddenCustomItems.push({\n                id: configPath,\n                ...childView,\n            });\n        }\n    }\n\n}\n","import {Component, EventEmitter, Input, OnDestroy, Output, ViewChild} from '@angular/core';\nimport {MatSidenav} from '@angular/material/sidenav';\n\n@Component({\n    selector: 'ncc-abstract-navigation-rail',\n    template: ''\n})\nexport abstract class AbstractNavigationRailComponent implements OnDestroy {\n\n    @Input() public expandOnHover: boolean;\n    @Output() public expandChange: EventEmitter<boolean>;\n\n    @ViewChild('sideRail') protected _rail: MatSidenav;\n\n    protected _expanded: boolean;\n\n    constructor() {\n        this.expandChange = new EventEmitter<boolean>();\n        this.expandOnHover = false;\n        this._expanded = false;\n    }\n\n    ngOnDestroy(): void {\n        this.expandChange.complete();\n    }\n\n    get expanded(): boolean {\n        return this._expanded;\n    }\n\n    public open(): void {\n        this._expanded = true;\n        this.expandChange.emit(this._expanded);\n    }\n\n    public close(): void {\n        this._expanded = false;\n        this.expandChange.emit(this._expanded);\n    }\n\n    public toggle(): void {\n        this._expanded = !this._expanded;\n        this.expandChange.emit(this._expanded);\n    }\n}\n","import {Subscription} from 'rxjs';\n\n/**\n * Unsubscribes the provided subscription, if it exists and is still opened\n * @param sub the subscription that should be destroyed\n */\nexport function destroySubscription(sub: Subscription): void {\n    if (sub && !sub.closed) {\n        sub.unsubscribe();\n    }\n}\n","import {InjectionToken} from '@angular/core';\nimport {DataGroup} from '../../resources/public-api';\n\n/**\n * Holds a navigation item task data containing the aggregated data describing the navigation item\n */\nexport const NAE_NAVIGATION_ITEM_TASK_DATA = new InjectionToken<Array<DataGroup>>('NaeNavigationItemTaskData');\n","import {Injector, Type} from '@angular/core';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {Observable, ReplaySubject, Subject} from 'rxjs';\nimport {NAE_NAVIGATION_ITEM_TASK_DATA} from '../model/filter-case-injection-token';\nimport {TaskResourceService} from '../../resources/engine-endpoint/task-resource.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {DataGroup} from '../../resources/interface/data-groups';\nimport {HttpErrorResponse} from '@angular/common/http';\n\nexport abstract class GroupNavigationComponentResolverService {\n\n    protected constructor(protected _taskResourceService: TaskResourceService,\n                          protected _log: LoggerService) {\n    }\n\n    protected abstract resolveViewComponent(navigationItemTaskData: Array<DataGroup>): Type<any>;\n\n    public createResolvedViewComponentPortal(taskId: string, parentInjector: Injector): Observable<ComponentPortal<any>> {\n        const result = new ReplaySubject<ComponentPortal<any>>(1);\n        this._taskResourceService.getData(taskId).subscribe(taskData => {\n            try {\n                result.next(new ComponentPortal(\n                    this.resolveViewComponent(taskData),\n                    null,\n                    Injector.create({\n                        providers: [\n                            {provide: NAE_NAVIGATION_ITEM_TASK_DATA, useValue: taskData},\n                        ],\n                        parent: parentInjector\n                    })\n                ));\n                result.complete();\n            } catch (e) {\n                this.forwardError(result, e);\n            }\n        }, e => {\n            this.forwardError(result, e);\n        });\n\n        return result.asObservable();\n    }\n\n    private forwardError(result: Subject<any>, error: Error): void {\n        result.error(error instanceof HttpErrorResponse ? error.error.message : error.message);\n        result.complete();\n    }\n}\n","import {GroupNavigationComponentResolverService} from './group-navigation-component-resolver.service';\nimport {Component, Injector, OnDestroy, OnInit} from '@angular/core';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\nimport {GroupNavigationConstants} from '../model/group-navigation-constants';\nimport {Subscription} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {destroySubscription} from '../../utility/destroy-subscription';\nimport {LoggerService} from '../../logger/services/logger.service';\n\n@Component({\n    selector: 'ncc-abstract-group-nagiation-resolver',\n    template: ''\n})\nexport abstract class AbstractGroupNavigationComponentResolverComponent implements OnInit, OnDestroy {\n\n    public portal: ComponentPortal<any>;\n    public initialized = false;\n    public errored = false;\n\n    private _portalSub: Subscription;\n    private _routerSub: Subscription;\n\n    protected constructor(protected _componentResolverService: GroupNavigationComponentResolverService,\n                          protected _parentInjector: Injector,\n                          protected _activatedRoute: ActivatedRoute,\n                          protected _router: Router,\n                          protected _log: LoggerService) {\n    }\n\n    ngOnInit(): void {\n        this.resolveComponent();\n        this._routerSub = this._router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {\n            this.resolveComponent();\n        });\n    }\n\n    ngOnDestroy(): void {\n        destroySubscription(this._portalSub);\n        destroySubscription(this._routerSub);\n    }\n\n    protected resolveComponent(): void {\n        this.initialized = false;\n        this._portalSub = this._componentResolverService.createResolvedViewComponentPortal(\n            this._activatedRoute.snapshot.paramMap.get(GroupNavigationConstants.GROUP_NAVIGATION_ROUTER_PARAM),\n            this._parentInjector\n        ).subscribe(portal => {\n            this.portal = portal;\n            this.initialized = true;\n        }, error => {\n            this._log.error(error);\n            this.errored = true;\n        });\n    }\n}\n","import {AfterViewInit, Component, Input, OnDestroy} from '@angular/core';\nimport {UriService} from '../service/uri.service';\nimport {CaseResourceService} from \"../../resources/engine-endpoint/case-resource.service\";\nimport {CaseSearchRequestBody} from \"../../filter/models/case-search-request-body\";\nimport {HttpParams} from \"@angular/common/http\";\nimport {PaginationParams} from \"../../utility/pagination/pagination-params\";\nimport {SimpleFilter} from \"../../filter/models/simple-filter\";\nimport {take} from \"rxjs/operators\";\nimport {BehaviorSubject, Subscription} from \"rxjs\";\nimport {ActivatedRoute, Router} from \"@angular/router\";\nimport {\n    DynamicNavigationRouteProviderService\n} from \"../../routing/dynamic-navigation-route-provider/dynamic-navigation-route-provider.service\";\nimport {Case} from \"../../resources/interface/case\";\nimport {I18nFieldValue} from \"../../data-fields/i18n-field/models/i18n-field-value\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {LoggerService} from \"../../logger/services/logger.service\";\n\n@Component({\n    selector: 'ncc-breadcrumbs-component',\n    template: ''\n})\nexport abstract class AbstractBreadcrumbsComponent implements OnDestroy, AfterViewInit {\n\n    @Input() showHome: boolean = true;\n    @Input() showFilter: boolean = true;\n    @Input() redirectOnClick: boolean = true;\n    @Input() lengthOfPath: number = 30;\n    @Input() partsAfterDots: number = 2;\n\n    filterName: string;\n    breadcrumbsParts: Array<string>;\n\n    private static DOTS: string = '...';\n    private static DELIMETER: string = '/';\n    private static NODE_PATH: string = 'nodePath';\n    private static ITEM_SETTINGS: string = 'item_settings';\n    private _showPaths: boolean = false;\n    private nicePath: BehaviorSubject<Array<string>>;\n    private redirectUrls: Map<string, Array<string>>;\n    private nicePathSubscription: Subscription;\n\n    protected constructor(protected _uriService: UriService,\n                          protected _caseResourceService: CaseResourceService,\n                          protected _activatedRoute: ActivatedRoute,\n                          protected _router: Router,\n                          protected _dynamicRoutingService: DynamicNavigationRouteProviderService,\n                          protected _translateService: TranslateService,\n                          protected _log: LoggerService) {\n        this.nicePath = new BehaviorSubject<Array<string>>(undefined);\n        this.redirectUrls = new Map<string, Array<string>>();\n        this.initNicePath();\n    }\n\n    ngAfterViewInit() {\n        this.resolveBreadcrumbs();\n    }\n\n    ngOnDestroy(): void {\n        if (!!this.nicePathSubscription) {\n            this.nicePathSubscription.unsubscribe();\n        }\n    }\n\n    public resolveBreadcrumbs() {\n        const filterId = this._activatedRoute.snapshot.params.filterCaseId\n        if (!filterId) {\n            this._log.error(\"Missing required data for resolving breadcrumbs.\")\n            return;\n        }\n        const splitPath = this._uriService.splitNodePath(this._uriService.activeNode);\n        const fullPath = this.createFullPath(splitPath);\n        const fullPathQueries = fullPath.map(p => '(processIdentifier:preference_item AND dataSet.nodePath.textValue.keyword:\\\"' + p + '\\\")')\n        fullPathQueries.push('(taskMongoIds:\\\"' + filterId + '\\\")')\n\n        const searchBody: CaseSearchRequestBody = {\n            query: fullPathQueries.join(\" OR \")\n        };\n        let httpParams = new HttpParams()\n            .set(PaginationParams.PAGE_SIZE, 25)\n            .set(PaginationParams.PAGE_NUMBER, 0);\n\n        this._caseResourceService.searchCases(SimpleFilter.fromCaseQuery(searchBody), httpParams).pipe(take(1)).subscribe(result => {\n            const cases = result.content;\n            const filterCaseIndex = cases.findIndex(c => c.tasks.some(t => t.task === filterId) && !fullPath.includes(this.immediateValue(c, AbstractBreadcrumbsComponent.NODE_PATH)));\n            if (filterCaseIndex >= 0) {\n                const filterCase = cases.splice(cases.findIndex(c => c.tasks.some(t => t.task === filterId) && !fullPath.includes(this.immediateValue(c, AbstractBreadcrumbsComponent.NODE_PATH))), 1)[0];\n                this.filterName = this.getTranslation(this.immediateValue(filterCase, 'menu_name'));\n            }\n            cases.sort((a, b) => fullPath.indexOf(this.immediateValue(a, AbstractBreadcrumbsComponent.NODE_PATH)) - fullPath.indexOf(this.immediateValue(b, AbstractBreadcrumbsComponent.NODE_PATH)));\n            if (this.redirectOnClick) {\n                cases.forEach(c => this.redirectUrls.set(this.immediateValue(c, AbstractBreadcrumbsComponent.NODE_PATH), [this._dynamicRoutingService.route, c.tasks.find(t => t.transition === AbstractBreadcrumbsComponent.ITEM_SETTINGS).task]))\n            }\n            this.nicePath.next([\"\", ...cases.map(c => this.getTranslation(this.immediateValue(c, 'menu_name')))]);\n        });\n    }\n\n    public initNicePath() {\n        this.nicePathSubscription = this.nicePath.subscribe(np => {\n            if (!!np) {\n                const path = np;\n                if (path?.length > this.partsAfterDots + 1 && this._uriService.activeNode?.uriPath.length > this.lengthOfPath && !this._showPaths) {\n                    const newPath = [path[0], AbstractBreadcrumbsComponent.DOTS];\n                    for (let i = path.length - this.partsAfterDots; i < path.length; i++) {\n                        newPath.push(path[i]);\n                    }\n                    this.breadcrumbsParts = newPath;\n                    return;\n                }\n                this.breadcrumbsParts = path === undefined ? [] : path;\n            }\n        });\n    }\n\n    public redirect() {\n        if (!this.redirectOnClick) {\n            return;\n        }\n        this._router.navigate(this.redirectUrls.get(this._uriService.activeNode.uriPath)).then(r => {})\n    }\n\n    public reset(): void {\n        this.filterName = undefined;\n        this._uriService.reset();\n        this.nicePath.next([\"\"])\n    }\n\n    public changePath(path: string, count: number) {\n        if (path === AbstractBreadcrumbsComponent.DOTS && count === 1) {\n            this._showPaths = true;\n            this.nicePath.next(this.nicePath.value);\n            return;\n        }\n        let fullPath: string = '';\n        const tmp = this._uriService.splitNodePath(this._uriService.activeNode);\n        if (tmp === undefined) return;\n        const control = this.resultCounter(count, tmp);\n        for (let i = 0; i <= control; i++) {\n            fullPath += tmp[i];\n            if (i !== control) fullPath += AbstractBreadcrumbsComponent.DELIMETER;\n        }\n        this._uriService.getNodeByPath(fullPath).subscribe(node => {\n            this._uriService.activeNode = node;\n            this.filterName = undefined;\n            this.nicePath.next(this.nicePath.value.slice(0, control + 1))\n            this.redirect();\n        })\n    }\n\n    private resultCounter(count: number, tmp: string[]): number {\n        if (tmp?.length > this.partsAfterDots + 1 && this._uriService.activeNode?.uriPath.length > this.lengthOfPath && !this._showPaths) {\n            return tmp.length - this.partsAfterDots + (count - 2);\n        }\n        return count;\n    }\n\n    private createFullPath(splitPath: Array<string>): Array<string> {\n        let tmp = '';\n        return splitPath.filter(s => s !== \"\").map((value) => {\n            tmp += AbstractBreadcrumbsComponent.DELIMETER + value;\n            return tmp.replace(\"//\", AbstractBreadcrumbsComponent.DELIMETER)\n        });\n    }\n\n    private immediateValue(aCase: Case, fieldId: string): any {\n        return aCase.immediateData.find(s => s.stringId === fieldId)?.value\n    }\n\n    private getTranslation(value: I18nFieldValue): string {\n        const locale = this._translateService.currentLang.split('-')[0];\n        return locale in value.translations ? value.translations[locale] : value.defaultValue;\n    }\n}\n","/**\n * Search component search mode\n */\nexport enum SearchMode {\n    FULLTEXT,\n    ADVANCED\n}\n","import {GroupNavigationItemLabel} from '../model/group-navigation-item-label';\nimport {DataGroup} from '../../resources/interface/data-groups';\nimport {getFieldFromDataGroups} from '../../utility/get-field';\nimport {GroupNavigationConstants} from '../model/group-navigation-constants';\nimport {Filter} from '../../filter/models/filter';\nimport {UserFilterConstants} from '../../filter/models/user-filter-constants';\nimport {FilterField} from '../../data-fields/filter-field/models/filter-field';\nimport {SimpleFilter} from '../../filter/models/simple-filter';\nimport {MultichoiceField} from '../../data-fields/multichoice-field/models/multichoice-field';\nimport {SearchMode} from \"../../search/models/component-configuration/search-mode\";\nimport {TranslateService} from \"@ngx-translate/core\";\n\n/**\n * Extracts the item name and item icon (if any) rom a section of the navigation item task data.\n * @param dataSection an array containing the data groups that correspond to a single navigation entry\n * @param translateService is a service to translate label name\n */\nexport function extractIconAndTitle(dataSection: Array<DataGroup>, translateService: TranslateService): GroupNavigationItemLabel {\n    const result: GroupNavigationItemLabel = {name: ''};\n\n    if (dataSection.length === 0) {\n        throw new Error('The provided task data does not belong to a Navigation menu item task. Icon and title cannot be extracted');\n    }\n\n    const nameField = getFieldFromDataGroups(dataSection, GroupNavigationConstants.NAVIGATION_ENTRY_TITLE_FIELD_ID_SUFFIX);\n\n    if (nameField === undefined) {\n        throw new Error('Navigation name could not be resolved');\n    }\n\n    const locale = translateService.currentLang.split('-')[0];\n    result.name = locale in nameField.value.translations ? nameField.value.translations[locale] : nameField.value.defaultValue;\n\n    const useIcon = getFieldFromDataGroups(dataSection, GroupNavigationConstants.NAVIGATION_ENTRY_ICON_ENABLED_FIELD_ID_SUFFIX);\n    if (useIcon !== undefined && useIcon.value) {\n        const icon = getFieldFromDataGroups(dataSection, GroupNavigationConstants.NAVIGATION_ENTRY_ICON_FIELD_ID_SUFFIX);\n        if (icon === undefined) {\n            this._log.error('Navigation entry icon could not be resolved, but is enabled. Icon was ignored');\n        } else {\n            result.icon = icon.value;\n        }\n    }\n    return result;\n}\n\n/**\n * Based on provided parameter extracts allowed or banned roles into an Array of strings from a section of the navigation item task data.\n * Each item has format ROLE_IMPORT_ID:NET_IMPORT_ID\n * @param dataSection an array containing the data groups that correspond to a single navigation entry\n * @param roleFieldId ID of field containing banned or allowed role IDs\n * @returns an Array of string values representing role IDs\n */\nexport function extractRoles(dataSection: Array<DataGroup>, roleFieldId: string): Array<string> {\n    if (dataSection.length === 0) {\n        throw new Error('The provided task data does not belong to a Navigation menu item task. Role entries cannot be extracted');\n    }\n\n    const roleIds = getFieldFromDataGroups(dataSection, roleFieldId);\n    if (roleIds === undefined) {\n        throw new Error('Navigation entry role authorization field could not be resolved');\n    }\n\n    return (roleIds as unknown as MultichoiceField).choices.map(choice => choice.key);\n}\n\n/**\n * Extracts the data and creates a filter object from the navigation item task data.\n * @param dataSection an array containing the data groups that correspond to a single navigation entry\n */\nexport function extractFilterFromData(dataSection: Array<DataGroup>): Filter {\n    return extractFilterFromFilterField(extractFilterFieldFromData(dataSection));\n}\n\n/**\n * Extracts the filter field from the navigation item task data.\n * @param dataSection an array containing the data groups that correspond to a single navigation entry\n * @returns The extracted {@link FilterField} or `undefined` if it could not be extracted.\n */\nexport function extractFilterFieldFromData(dataSection: Array<DataGroup>): FilterField | undefined {\n    const filterField = getFieldFromDataGroups(dataSection, UserFilterConstants.FILTER_FIELD_ID);\n\n    if (filterField === undefined || !(filterField instanceof FilterField)) {\n        throw new Error(`Filter could not be extracted. The provided datagroups do not contain a filter field with ID '${\n            UserFilterConstants.FILTER_FIELD_ID}'`);\n    }\n\n    return filterField;\n}\n\n/**\n * @returns a {@link SimpleFilter} containing the filter stored in the provided {@link FilterField}.\n * Throws an error if this is not possible.\n */\nexport function extractFilterFromFilterField(filterField: FilterField): Filter {\n    if (filterField === undefined || !(filterField instanceof FilterField)) {\n        throw new Error('Filter could not be resolved');\n    }\n    return SimpleFilter.fromQuery({query: filterField.value}, filterField.filterMetadata.filterType);\n}\n\n/**\n * Extracts the selected search type from enumeration field of the navigation item task data.\n * @returns a {@link SearchMode} containing {@link SearchMode.ADVANCED} or {@link SearchMode.FULLTEXT} or {@link undefined}\n * if unexpected value is found\n * */\nexport function extractSearchTypeFromData(dataSection: Array<DataGroup>, typeFieldId: string): SearchMode {\n    const typeField = getFieldFromDataGroups(dataSection, typeFieldId);\n    if (typeField === undefined) {\n        throw new Error('Navigation entry search type field could not be resolved');\n    }\n\n    switch (typeField.value) {\n        case 'fulltext':\n            return SearchMode.FULLTEXT;\n        case 'fulltext_advanced':\n            return SearchMode.ADVANCED;\n        default:\n            return undefined\n    }\n}\n\n/**\n * Extracts field value from data\n * @returns value of extracted field\n * @throws Error if no field is found\n * */\nexport function extractFieldValueFromData<T>(dataSection: Array<DataGroup>, fieldId: string): T {\n    const field = getFieldFromDataGroups(dataSection, fieldId);\n    if (field === undefined) {\n        throw new Error(`Field ${fieldId} could not be resolved`);\n    }\n    return field.value;\n}\n","import {Injectable} from '@angular/core';\nimport {ProcessService} from '../../../process/process.service';\nimport {AllowedNetsService} from '../allowed-nets.service';\nimport {switchMap} from 'rxjs/operators';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport {PetriNetResourceService} from '../../../resources/engine-endpoint/petri-net-resource.service';\nimport {ConfigurationService} from '../../../configuration/configuration.service';\nimport {CaseViewParams} from '../../../view/case-view/models/case-view-params';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {TaskViewParams} from '../../../view/task-view/models/task-view-params';\nimport {InjectedTabbedTaskViewData} from '../../../view/task-view/models/injected-tabbed-task-view-data';\nimport {Case} from '../../../resources/interface/case';\nimport {getImmediateData} from '../../../utility/get-immediate-data';\nimport {UserFilterConstants} from '../../../filter/models/user-filter-constants';\nimport {DataGroup} from '../../../resources/public-api';\nimport {getFieldFromDataGroups} from '../../../utility/get-field';\nimport {FilterField} from '../../../data-fields/filter-field/models/filter-field';\nimport {BaseAllowedNetsService} from '../base-allowed-nets.service';\nimport {MultichoiceField} from \"../../../data-fields/multichoice-field/models/multichoice-field\";\n\nfunction addAllowedNets(allowedNets, existingAllowedNets) {\n    if (!!allowedNets && allowedNets.length > 0) {\n        existingAllowedNets.next([...allowedNets]);\n    }\n}\n\n/**\n * Convenience method that can be used as an allowed nets factory for tabbed task views.\n * If no allowed nets are provided in the injected data then an {@link AllowedNetsService} with no allowed nets is created.\n * It has a dependency on this class and {@link NAE_TAB_DATA} injection token.\n */\nexport function tabbedAllowedNetsServiceFactory(factory: AllowedNetsServiceFactory,\n                                                tabData: InjectedTabbedTaskViewData): AllowedNetsService {\n    return factory.createFromArray(tabData?.allowedNets ?? []);\n}\n\n/**\n * Convenience method that can be used as an allowed nets factory for views that are loaded from filter process instances.\n * It has a dependency on this class and {@link NAE_NAVIGATION_ITEM_TASK_DATA} injection token.\n */\nexport function navigationItemTaskAllowedNetsServiceFactory(factory: AllowedNetsServiceFactory,\n                                                            baseAllowedNets: BaseAllowedNetsService,\n                                                            navigationItemTaskData: Array<DataGroup>): AllowedNetsService {\n    const filterField = getFieldFromDataGroups(navigationItemTaskData, UserFilterConstants.FILTER_FIELD_ID) as FilterField;\n    const allowedNetsField = getFieldFromDataGroups(navigationItemTaskData, UserFilterConstants.ALLOWED_NETS_FIELD_ID) as MultichoiceField;\n\n    if (filterField === undefined) {\n        throw new Error(`Provided navigation item task data does not contain a filter field with ID '${UserFilterConstants.FILTER_FIELD_ID\n        }'! Allowed nets cannot be generated from it!`);\n    }\n    const nets = new BehaviorSubject<Array<string>>(Array.from(new Set<string>([...filterField.allowedNets])));\n    if (filterField.filterMetadata.inheritAllowedNets) {\n        baseAllowedNets.allowedNets$.subscribe(allowedNets => {\n            const netSet = new Set<string>(allowedNets);\n            nets.next(Array.from(netSet));\n        });\n    }\n    if (!!allowedNetsField) {\n        addAllowedNets(allowedNetsField.value, nets);\n        allowedNetsField.valueChanges().subscribe(allowedNets => {\n            addAllowedNets(allowedNetsField.value, nets);\n        });\n    }\n    return factory.createFromObservable(nets.asObservable());\n}\n\n/**\n * Simplifies the creation of {@link AllowedNetsService} instances\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class AllowedNetsServiceFactory {\n\n    constructor(protected _processService: ProcessService,\n                protected _petriNetResource: PetriNetResourceService,\n                protected _configService: ConfigurationService,\n                protected _log: LoggerService) {\n    }\n\n    /**\n     * Creates an instance of {@link AllowedNetsService} without having to provide all the dependencies yourself.\n     * @returns an instance of {@link AllowedNetsService} with all nets set as the `allowedNets`\n     */\n    public createWithAllNets(): AllowedNetsService {\n        return new AllowedNetsService(\n            this._petriNetResource.getAll().pipe(\n                switchMap(nets => {\n                    if (nets && Array.isArray(nets)) {\n                        return of(nets.map(n => n.identifier));\n                    } else {\n                        return of([]);\n                    }\n                })\n            ),\n            this._processService\n        );\n    }\n\n    /**\n     * Creates an instance of {@link AllowedNetsService} without having to provide all the dependencies yourself.\n     * @param allowedNetsIdentifiers identifiers of the allowed nets\n     */\n    public createFromArray(allowedNetsIdentifiers: Array<string>): AllowedNetsService {\n        return new AllowedNetsService(\n            of(allowedNetsIdentifiers),\n            this._processService\n        );\n    }\n\n    /**\n     * Creates an instance of {@link AllowedNetsService} without having to provide all the dependencies yourself.\n     * @param webViewPath path to the view as specified in its configuration. No leading backslash.\n     * Allowed nets are loaded from the configuration of the view.\n     */\n    public createFromConfig(webViewPath: string): AllowedNetsService {\n        const view = this._configService.getViewByPath(webViewPath);\n        if (view?.layout?.params === undefined) {\n            throw new Error(`Can't load configuration for view with webPath: '${webViewPath}'`);\n        }\n        const viewParams = view.layout.params as CaseViewParams | TaskViewParams;\n        if (viewParams.allowedNets === undefined) {\n            this._log.warn(`No 'allowedNets' provided for view with webPath '${webViewPath}'`);\n        }\n        return new AllowedNetsService(\n            of(viewParams.allowedNets ?? []),\n            this._processService\n        );\n    }\n\n    /**\n     * Creates an instance of {@link AllowedNetsService} without having to provide all the dependencies yourself.\n     * @param netIdentifiers$ observable containing the identifiers of the allowed nets.\n     * When a new value is emitted the allowed nets will be updated.\n     */\n    public createFromObservable(netIdentifiers$: Observable<Array<string>>): AllowedNetsService {\n        return new AllowedNetsService(\n            netIdentifiers$,\n            this._processService\n        );\n    }\n\n    /**\n     * Creates an instance of {@link AllowedNetsService} without having to provide all the dependencies yourself.\n     * @param filterCase a filter process instance\n     * Allowed nets are set from filter process immediate data\n     */\n    public createFromFilterCase(filterCase: Case): AllowedNetsService {\n        const filterData = getImmediateData(filterCase, UserFilterConstants.FILTER_FIELD_ID);\n        if (filterData === undefined) {\n            throw new Error(`Cannot get filter from case '${filterCase.title}' with id '${filterCase.stringId}'`);\n        }\n        return new AllowedNetsService(\n            of(filterData.allowedNets),\n            this._processService\n        );\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class BaseAllowedNetsService implements OnDestroy {\n\n    protected _baseAllowedNets: BehaviorSubject<Array<string>>;\n    private _sub: Subscription;\n\n    constructor() {\n        this._baseAllowedNets = new BehaviorSubject([]);\n    }\n\n    ngOnDestroy(): void {\n        this._baseAllowedNets.complete();\n\n        if (this._sub !== undefined) {\n            this._sub.unsubscribe();\n        }\n    }\n\n    /**\n     * Sets the new identifiers of the base allowed nets\n     * @param nets new base net identifiers\n     */\n    public set allowedNets(nets: Array<string>) {\n        this._baseAllowedNets.next(nets);\n    }\n\n    /**\n     * @deprecated This method should not be used. Use {@link BaseAllowedNetsService#allowedNets$} instead\n     * @returns the currently set allowed nets. Returns an empty array if no value was set.\n     */\n    public get allowedNets(): Array<string> {\n        return this._baseAllowedNets.value;\n    }\n\n    /**\n     * Subscribes to the provided `Observable` and forwards the emissions to the baseAllowedNets `Subject`.\n     * If a new `Observable` is set, the previous Subscription is unsubscribed.\n     * @param observableNets an observable emitting the new base net identifiers\n     */\n    public set allowedNets$(observableNets: Observable<Array<string>>) {\n        if (this._sub !== undefined) {\n            this._sub.unsubscribe();\n        }\n\n        this._sub = observableNets.subscribe(nets => {\n            this._baseAllowedNets.next(nets);\n        });\n    }\n\n    /**\n     * @returns an observable that emits the currently set base allowed nets and any subsequent values\n     */\n    public get allowedNets$(): Observable<Array<string>> {\n        return this._baseAllowedNets.asObservable();\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {Filter} from '../../filter/models/filter';\nimport {DataGroup} from '../../resources/interface/data-groups';\nimport {extractFilterFromFilterField} from './navigation-item-task-utility-methods';\nimport {getFieldFromDataGroups, getFieldIndexFromDataGroups} from '../../utility/get-field';\nimport {UserFilterConstants} from '../../filter/models/user-filter-constants';\nimport {FilterRepository} from '../../filter/filter.repository';\nimport {TextField} from '../../data-fields/text-field/models/text-field';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {MergeOperator} from '../../filter/models/merge-operator';\nimport {TaskResourceService} from '../../resources/engine-endpoint/task-resource.service';\nimport {FilterField} from '../../data-fields/filter-field/models/filter-field';\nimport {DataField} from '../../data-fields/models/abstract-data-field';\nimport {GroupNavigationConstants} from \"../model/group-navigation-constants\";\nimport {AllowedNetsService} from \"../../allowed-nets/services/allowed-nets.service\";\nimport {\n    AllowedNetsServiceFactory,\n    navigationItemTaskAllowedNetsServiceFactory\n} from \"../../allowed-nets/services/factory/allowed-nets-service-factory\";\nimport {BaseAllowedNetsService} from \"../../allowed-nets/services/base-allowed-nets.service\";\n\n/**\n * This service is able to load the full saved filter including all of its ancestor filters.\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class FilterExtractionService {\n\n    // the same regex is used in a backend filter process action. Please keep them in sync\n    protected static readonly UNTABBED_VIEW_ID_EXTRACTOR = '^.*?(-\\\\d+)?$';\n\n    constructor(protected _filterRepository: FilterRepository,\n                protected _taskResourceService: TaskResourceService,\n                protected _factory: AllowedNetsServiceFactory,\n                protected baseAllowedNets: BaseAllowedNetsService,\n                protected _log: LoggerService) {\n    }\n\n    public extractAdditionalFilterAllowedNets(dataSection: Array<DataGroup>): AllowedNetsService {\n        const taskRefIndex = getFieldIndexFromDataGroups(dataSection, GroupNavigationConstants.ITEM_FIELD_ID_ADDITIONAL_FILTER_TASKREF);\n        if (taskRefIndex === undefined) {\n            return undefined;\n        }\n        const sliced = dataSection.slice(taskRefIndex.dataGroupIndex + 1)\n        if (sliced.length == 0) {\n            return undefined\n        }\n        return navigationItemTaskAllowedNetsServiceFactory(this._factory, this.baseAllowedNets, sliced)\n    }\n\n    public extractCompleteAdditionalFilterFromData(dataSection: Array<DataGroup>): Filter | undefined {\n        const taskRefIndex = getFieldIndexFromDataGroups(dataSection, GroupNavigationConstants.ITEM_FIELD_ID_ADDITIONAL_FILTER_TASKREF);\n        if (taskRefIndex === undefined) {\n            return undefined;\n        }\n\n        return this.extractCompleteFilterFromData(dataSection.slice(taskRefIndex.dataGroupIndex + 1));\n    }\n\n    public extractCompleteFilterFromData(dataSection?: Array<DataGroup>, filterData?: Filter, fieldId: string = UserFilterConstants.FILTER_FIELD_ID): Filter | undefined {\n        const filterIndex = getFieldIndexFromDataGroups(dataSection, fieldId);\n\n        if (filterIndex === undefined) {\n            return undefined;\n        }\n\n        let filterSegment: Filter;\n        try {\n            filterSegment = extractFilterFromFilterField(\n                dataSection[filterIndex.dataGroupIndex].fields[filterIndex.fieldIndex] as FilterField\n            );\n        } catch (e) {\n            throw new Error('Filter segment could not be extracted from filter field');\n        }\n\n        if (!!filterData) {\n            filterSegment = filterSegment.merge(filterData, MergeOperator.AND);\n        }\n\n        const parentFilter = this.extractCompleteFilterFromData(dataSection.slice(filterIndex.dataGroupIndex + 1), filterData);\n\n        if (parentFilter !== undefined && parentFilter.type === filterSegment.type) {\n            return filterSegment.merge(parentFilter, MergeOperator.AND);\n        }\n\n        // Is the filter view rooted?\n        const rootViewIdField = getFieldFromDataGroups(dataSection, UserFilterConstants.ORIGIN_VIEW_ID_FIELD_ID);\n        if (rootViewIdField === undefined) {\n            return filterSegment;\n        }\n\n        const rootViewFilter = this.extractViewFilter(rootViewIdField);\n        if (rootViewFilter !== undefined && rootViewFilter.type === filterSegment.type) {\n            return filterSegment.merge(rootViewFilter, MergeOperator.AND);\n        }\n        return filterSegment;\n    }\n\n    protected extractViewFilter(originViewIdField: DataField<any>): Filter | undefined {\n        if (originViewIdField === undefined || !(originViewIdField instanceof TextField)) {\n            throw new Error('Could not extract origin view id field from task data');\n        }\n        const originViewId = originViewIdField.value;\n\n        const match = originViewId.match(FilterExtractionService.UNTABBED_VIEW_ID_EXTRACTOR);\n        if (match === null) {\n            throw new Error('Unexpected state. View Id of origin app view could not be extracted');\n        }\n        const originUntabbedViewId = originViewId.substring(0, originViewId.length - (match[1]?.length ?? 0));\n        const appOriginFilter = this._filterRepository.getFilter(originUntabbedViewId);\n        if (appOriginFilter === undefined) {\n            this._log.error(`Could not retrieve origin app filter with id '${originUntabbedViewId}'. Falling back to empty filter`);\n            return undefined;\n        }\n        return appOriginFilter;\n    }\n\n}\n","\nexport interface UriNodeResource {\n    id: string;\n    uriPath: string;\n    name: string;\n    parentId: string;\n    parent: UriNodeResource;\n    childrenId: Set<string>;\n    children: Set<UriNodeResource>;\n    level: number;\n    contentTypes: Set<UriContentType>\n}\n\nexport enum UriContentType {\n    PROCESS,\n    CASE\n}\n","import {ActivatedRoute} from '@angular/router';\nimport {GroupNavigationConstants} from '../model/group-navigation-constants';\n\nexport function groupNavigationViewIdSegmentFactory(activatedRoute: ActivatedRoute): string {\n    return activatedRoute.snapshot.paramMap.get(GroupNavigationConstants.GROUP_NAVIGATION_ROUTER_PARAM);\n}\n","/* APIS */\nexport * from './quick-panel/public-api';\n\n/* COMPONENTS */\nexport * from './navigation-tree/abstract-navigation-tree.component';\nexport * from './navigation-drawer/abstract-navigation-drawer.component';\nexport * from './navigation-double-drawer/abstract-navigation-double-drawer';\nexport * from './navigation-rail/abstract-navigation-rail.component';\nexport * from './group-navigation-component-resolver/abstract-group-navigation-component-resolver.component';\nexport * from './breadcrumbs/abstract-breadcrumbs.component';\n\n/* SERVICES */\nexport * from './group-navigation-component-resolver/group-navigation-component-resolver.service';\nexport * from './utility/filter-extraction.service';\nexport * from './service/uri.service';\nexport * from './service/uri-resource.service';\n\n/* MODELS */\nexport * from './model/group-navigation-constants';\nexport * from './model/group-navigation-component-resolver-component-injection-token';\nexport * from './model/filter-case-injection-token';\nexport * from './model/size-menu-injection-token'\nexport * from './model/group-navigation-item-label';\nexport * from './model/uri-resource';\nexport * from './model/navigation-configs';\nexport * from './model/navigation-menu-events';\n\n/* UTILITY METHODS */\nexport * from './utility/navigation-item-task-utility-methods';\nexport * from './group-navigation-component-resolver/group-navigation-view-id-segment-factory';\n","/**\n * Contains the ids of the elements in Petriflow process that are used to represent the tree structure\n */\nexport enum TreePetriflowIdentifiers {\n    /**\n     * Immediate case ref data variable that contains the children of this tree node\n     */\n    CHILDREN_CASE_REF = 'treeChildCases',\n    /**\n     * Immediate boolean data variable that determines whether the option to can add new child nodes should be displayed.\n     *\n     * The type of node added is determined by the `allowedNets` property of the case ref field that holds the children\n     */\n    CAN_ADD_CHILDREN = 'canAddTreeChildren',\n    /**\n     * Immediate text data variable that contains the id of the transition who's task should be displayed when the case node is selected.\n     */\n    FEATURED_TRANSITION = 'treeTaskTransitionId',\n    /**\n     * Immediate boolean data variable that determines whether the option to remove this node from the tree should be displayed\n     */\n    CAN_REMOVE_NODE = 'canRemoveTreeNode',\n    /**\n     * Immediate text data variable that contains the default case title for this node's children.\n     *\n     * If no value is provided an appropriate translation of 'New Node' will be used instead.\n     */\n    CHILD_NODE_TITLE = 'childNodeCaseTitle',\n    /**\n     * Id of the transition that is executed to set the new child data\n     */\n    CASE_REF_TRANSITION = 'treeCaseRefAccessor',\n    /**\n     * Before text icon\n     */\n    BEFORE_TEXT_ICON = 'beforeTextIcon',\n    /**\n     * Add icon in tree\n     */\n    TREE_ADD_ICON = 'treeAddIcon',\n}\n","import {Case} from '../../../../resources/interface/case';\nimport {LoadingEmitter} from '../../../../utility/loading-emitter';\nimport {TreePetriflowIdentifiers} from '../../model/tree-petriflow-identifiers';\nimport {ImmediateData} from '../../../../resources/interface/immediate-data';\n\nexport class CaseTreeNode {\n    public case: Case;\n    public children: Array<CaseTreeNode>;\n    public dirtyChildren: boolean;\n    public loadingChildren: LoadingEmitter;\n    public removingNode: LoadingEmitter;\n    public addingNode: LoadingEmitter;\n    public parent: CaseTreeNode;\n\n    constructor(nodeCase: Case, parentNode: CaseTreeNode) {\n        this.case = nodeCase;\n        this.children = [];\n        this.dirtyChildren = true;\n        this.loadingChildren = new LoadingEmitter();\n        this.removingNode = new LoadingEmitter();\n        this.addingNode = new LoadingEmitter();\n        this.parent = parentNode;\n    }\n\n    /**\n     * @returns whether this node has the value `true` in it's [immediate data field]{@link TreePetriflowIdentifiers#CAN_ADD_CHILDREN}\n     * that controls this behavior.\n     */\n    public canAddChildren(): boolean {\n        const immediate = this.searchImmediateData(TreePetriflowIdentifiers.CAN_ADD_CHILDREN);\n        return !!immediate && immediate.value;\n    }\n\n    /**\n     * @returns whether this node has the value `true` in it's [immediate data field]{@link TreePetriflowIdentifiers#CAN_REMOVE_NODE}\n     * that controls this behavior.\n     */\n    public canBeRemoved(): boolean {\n        const immediate = this.searchImmediateData(TreePetriflowIdentifiers.CAN_REMOVE_NODE);\n        return this.parent && !!immediate && immediate.value;\n    }\n\n    /**\n     * @returns whether this node's children are currently being loaded\n     */\n    public isLoadingChildren(): boolean {\n        return this.loadingChildren.isActive;\n    }\n\n    /**\n     * @returns whether this node is being removed from the tree\n     */\n    public isBeingRemoved(): boolean {\n        return this.removingNode.isActive;\n    }\n\n    /**\n     * @returns whether children are being added to this node\n     */\n    public isAddingNode(): boolean {\n        return this.addingNode.isActive;\n    }\n\n    /**\n     * @returns return node value, if immediate date of [immediate data field]{@link TreePetriflowIdentifiers#BEFORE_TEXT_ICON} type exists\n     */\n    public beforeTextIcon(): string {\n        const immediate = this.searchImmediateData(TreePetriflowIdentifiers.BEFORE_TEXT_ICON);\n        if (immediate === undefined) {\n            return undefined;\n        }\n        return immediate.value;\n    }\n\n    /**\n     * @returns return node value, if immediate date of [immediate data field]{@link TreePetriflowIdentifiers#TREE_ADD_ICON} type exists\n     */\n    public treeAddTextIcon(): string {\n        const immediate = this.searchImmediateData(TreePetriflowIdentifiers.TREE_ADD_ICON);\n        if (immediate === undefined) {\n            return undefined;\n        }\n        return immediate.value;\n    }\n\n    /**\n     * @returns return node title, if immediate date of [immediate data field]{@link TreePetriflowIdentifiers#BEFORE_TEXT_ICON} type exists\n     */\n    public beforeTextIconTitle(): string {\n        const immediate = this.searchImmediateData(TreePetriflowIdentifiers.BEFORE_TEXT_ICON);\n        if (immediate === undefined || !(immediate.name && immediate.name.defaultValue)) {\n            return undefined;\n        }\n        return immediate.name.defaultValue;\n    }\n\n    /**\n     * @returns return node title if immediate date of [immediate data field]{@link TreePetriflowIdentifiers#TREE_ADD_ICON} type exists\n     */\n    public treeAddTextIconTitle(): string {\n        const immediate = this.searchImmediateData(TreePetriflowIdentifiers.TREE_ADD_ICON);\n        if (immediate === undefined || !(immediate.name && immediate.name.defaultValue)) {\n            return undefined;\n        }\n        return immediate.name.defaultValue;\n    }\n\n    private searchImmediateData(dataId: string): ImmediateData | undefined {\n        return this.case.immediateData.find(data => data.stringId === dataId);\n    }\n\n    /**\n     * @returns an object representing the same CaseTreeNode, but with circular references removed, so that it can be serialized and logged.\n     * The [parent]{@link CaseTreeNode#parent} reference is replaced by the parents case stringId (if defined).\n     * The [children]{@link CaseTreeNode#children} references are replaced by the child's case stringId (if defined).\n     */\n    public toLoggableForm(): object {\n        return {\n            case: this.case,\n            dirtyChildren: this.dirtyChildren,\n            parent: this.parent ? this.parent.case.stringId : this.parent,\n            children: this.children.map(c => c.case.stringId),\n        };\n    }\n}\n","import {MatPaginatorIntl} from '@angular/material/paginator';\nimport {Injectable} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {LanguageService} from '../../translate/language.service';\n\n@Injectable()\nexport class NetgrifPaginatorIntl implements MatPaginatorIntl {\n\n    public changes;\n    public firstPageLabel;\n    public itemsPerPageLabel;\n    public lastPageLabel;\n    public nextPageLabel;\n    public previousPageLabel;\n\n    constructor(protected _translate: TranslateService, protected _languageService: LanguageService) {\n        this.changes = new Subject<void>();\n        this.initTranslations();\n        this._languageService.getLangChange$().subscribe(lang => {\n            this.initTranslations();\n        });\n    }\n\n\n    public initTranslations() {\n        this.firstPageLabel = this._translate.instant('paginator.firstPage');\n        this.itemsPerPageLabel = this._translate.instant('paginator.itemsPage');\n        this.lastPageLabel = this._translate.instant('paginator.lastPage');\n        this.nextPageLabel = this._translate.instant('paginator.nextPage');\n        this.previousPageLabel = this._translate.instant('paginator.previousPage');\n    }\n\n    public getRangeLabel(page: number, pageSize: number, length: number): string {\n        if (length === 0) {\n            return this._translate.instant('paginator.pageOne');\n        }\n        const amountPages = Math.ceil(length / pageSize);\n        return this._translate.instant('paginator.pageAmount', {page: page + 1, amountPages});\n    }\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const NAE_AUTOSWITCH_TAB_TOKEN = new InjectionToken<boolean>('NaeAutoswitchTabToken');\n","import {InjectionToken} from '@angular/core';\n\nexport const NAE_OPEN_EXISTING_TAB = new InjectionToken<boolean>('NaeOpenExistingTab');\n","import {AbstractCaseViewComponent} from './abstract-case-view';\nimport {Component, Inject, Optional, Type} from '@angular/core';\nimport {NAE_TAB_DATA} from '../../tabs/tab-data-injection-token/tab-data-injection-token';\nimport {InjectedTabData} from '../../tabs/interfaces';\nimport {Case} from '../../resources/interface/case';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {CaseViewService} from './service/case-view-service';\nimport {SimpleFilter} from '../../filter/models/simple-filter';\nimport {FilterType} from '../../filter/models/filter-type';\nimport {OverflowService} from '../../header/services/overflow.service';\nimport {\n    NAE_NEW_CASE_CREATION_CONFIGURATION_DATA,\n    NewCaseCreationConfigurationData\n} from '../../side-menu/content-components/new-case/model/new-case-injection-data';\nimport {NAE_AUTOSWITCH_TAB_TOKEN} from './models/autoswitch-token';\nimport {NAE_OPEN_EXISTING_TAB} from './models/open-existing-tab-token';\nimport { ActivatedRoute } from '@angular/router';\n\nexport interface InjectedTabbedCaseViewData extends InjectedTabData {\n    tabViewComponent: Type<any>;\n    tabViewOrder: number;\n}\n\n@Component({\n    selector: 'ncc-abstract-tabbed-case-view',\n    template: ''\n})\nexport abstract class AbstractTabbedCaseViewComponent extends AbstractCaseViewComponent {\n\n    private readonly _correctlyInjected;\n\n    protected constructor(caseViewService: CaseViewService,\n                          protected _loggerService: LoggerService,\n                          @Inject(NAE_TAB_DATA) protected _injectedTabData: InjectedTabbedCaseViewData,\n                          protected _overflowService?: OverflowService,\n                          @Optional() @Inject(NAE_AUTOSWITCH_TAB_TOKEN) protected _autoswitchToTaskTab = true,\n                          @Optional() @Inject(NAE_OPEN_EXISTING_TAB) protected _openExistingTab = true,\n                          @Optional() @Inject(NAE_NEW_CASE_CREATION_CONFIGURATION_DATA) protected _newCaseCreationConfig: NewCaseCreationConfigurationData = {\n                              enableCaseTitle: true,\n                              isCaseTitleRequired: true\n                          },\n                          protected _activatedRoute?: ActivatedRoute) {\n\n        super(caseViewService, _overflowService, undefined, _newCaseCreationConfig, _activatedRoute);\n        this._correctlyInjected = !!this._injectedTabData.tabViewComponent && this._injectedTabData.tabViewOrder !== undefined;\n        if (!this._correctlyInjected) {\n            this._loggerService.warn('AbstractTabbedCaseViewComponent must inject a filled object of type InjectedTabbedCaseViewData to work properly!');\n        }\n    }\n\n    public handleCaseClick(clickedCase: Case): void {\n        if (this._correctlyInjected) {\n            this.openTab(clickedCase);\n        }\n    }\n\n    protected openTab(openCase: Case) {\n        this._injectedTabData.tabViewRef.openTab({\n            label: {\n                text: openCase.title,\n                icon: openCase.icon ? openCase.icon : 'check_box'\n            },\n            canBeClosed: true,\n            tabContentComponent: this._injectedTabData.tabViewComponent,\n            injectedObject: {\n                baseFilter: new SimpleFilter('', FilterType.TASK, {case: {id: `${openCase.stringId}`}}),\n                allowedNets: [openCase.processIdentifier]\n            },\n            order: this._injectedTabData.tabViewOrder,\n            parentUniqueId: this._injectedTabData.tabUniqueId\n        }, this._autoswitchToTaskTab, this._openExistingTab);\n    }\n}\n","import {AbstractTaskViewComponent} from './abstract-task-view';\nimport {TaskViewService} from './service/task-view.service';\nimport {Component, Inject, OnDestroy} from '@angular/core';\nimport {NAE_TAB_DATA} from '../../tabs/tab-data-injection-token/tab-data-injection-token';\nimport {InjectedTabbedTaskViewData} from './models/injected-tabbed-task-view-data';\nimport {Subscription} from 'rxjs';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n    selector: 'ncc-abstract-tabbed-task-view',\n    template: ''\n})\nexport abstract class AbstractTabbedTaskViewComponent extends AbstractTaskViewComponent implements OnDestroy {\n    protected subTaskView: Subscription;\n\n    protected constructor(taskViewService: TaskViewService,\n                          @Inject(NAE_TAB_DATA) protected _injectedTabData: InjectedTabbedTaskViewData,\n                          _activatedRoute?: ActivatedRoute) {\n        super(taskViewService, _activatedRoute);\n        this.subTaskView = taskViewService.closeTab.subscribe(() => {\n            _injectedTabData.tabViewRef.closeTabIndex(_injectedTabData.tabViewRef.currentlySelectedTab());\n        });\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.subTaskView.unsubscribe();\n    }\n}\n","import {InjectionToken} from '@angular/core';\nimport {TreeCaseViewConfiguration} from './tree-case-view-configuration';\n\n\nexport const NAE_TREE_CASE_VIEW_CONFIGURATION = new InjectionToken<TreeCaseViewConfiguration>('NaeTreeCaseViewConfiguration');\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {Case} from '../../resources/interface/case';\n\n@Injectable()\nexport class TreeCaseViewService implements OnDestroy {\n\n    public loadTask$: BehaviorSubject<Case>;\n    public reloadCase$: Subject<void>;\n\n    constructor() {\n        this.loadTask$ = new BehaviorSubject<Case>(undefined);\n        this.reloadCase$ = new Subject<void>();\n    }\n\n    ngOnDestroy(): void {\n        this.loadTask$.complete();\n        this.reloadCase$.complete();\n    }\n}\n","/**\n * A utility class that carries an operation result of any type\n * along with executable after actions that should be performed at a later time.\n */\nexport class ResultWithAfterActions<T> {\n\n    /**\n     * @param _result the result of an operation\n     * @param _afterActions the lambdas that should be executed at some later time. Defaults to an empty array.\n     */\n    constructor(protected _result: T, protected _afterActions: Array<() => void> = []) {\n    }\n\n    /**\n     * The result of an operations.\n     */\n    public get result(): T {\n        return this._result;\n    }\n\n    /**\n     * Executes all the after action lambdas.\n     */\n    public executeAfterActions(): void {\n        this._afterActions.forEach(action => action());\n    }\n}\n","import {MatTreeNestedDataSource} from '@angular/material/tree';\n\n/**\n * Forces a re-render of the tree backed by the datasource\n */\nexport function refreshTree(tree: MatTreeNestedDataSource<unknown>) {\n    const d = tree.data;\n    tree.data = null;\n    tree.data = d;\n}\n","import {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {Filter} from '../../../filter/models/filter';\nimport {HttpParams} from '@angular/common/http';\nimport {CaseResourceService} from '../../../resources/engine-endpoint/case-resource.service';\nimport {CaseTreeNode} from './model/case-tree-node';\nimport {TreeCaseViewService} from '../tree-case-view.service';\nimport {TaskResourceService} from '../../../resources/engine-endpoint/task-resource.service';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {ImmediateData} from '../../../resources/interface/immediate-data';\nimport {Case} from '../../../resources/interface/case';\nimport {ProcessService} from '../../../process/process.service';\nimport {SideMenuService} from '../../../side-menu/services/side-menu.service';\nimport {SideMenuSize} from '../../../side-menu/models/side-menu-size';\nimport {forkJoin, Observable, of, ReplaySubject, Subject, Subscription, throwError} from 'rxjs';\nimport {Page} from '../../../resources/interface/page';\nimport {TreePetriflowIdentifiers} from '../model/tree-petriflow-identifiers';\nimport {tap} from 'rxjs/operators';\nimport {TranslateService} from '@ngx-translate/core';\nimport {hasContent} from '../../../utility/pagination/page-has-content';\nimport {NestedTreeControl} from '@angular/cdk/tree';\nimport {MatTreeNestedDataSource} from '@angular/material/tree';\nimport {ofVoid} from '../../../utility/of-void';\nimport {CaseGetRequestBody} from '../../../resources/interface/case-get-request-body';\nimport {getImmediateData} from '../../../utility/get-immediate-data';\nimport {NAE_OPTION_SELECTOR_COMPONENT} from '../../../side-menu/content-components/injection-tokens';\nimport {SimpleFilter} from '../../../filter/models/simple-filter';\nimport {CaseTreePath} from './model/case-tree-path';\nimport {ExpansionTree} from './model/expansion-tree';\nimport {ResultWithAfterActions} from '../../../utility/result-with-after-actions';\nimport {EventOutcomeMessageResource} from '../../../resources/interface/message-resource';\nimport {SetDataEventOutcome} from '../../../event/model/event-outcomes/data-outcomes/set-data-event-outcome';\nimport {CreateCaseEventOutcome} from '../../../event/model/event-outcomes/case-outcomes/create-case-event-outcome';\nimport {refreshTree} from '../../../utility/refresh-tree';\nimport {NAE_TREE_CASE_VIEW_CONFIGURATION} from './model/tree-configuration-injection-token';\nimport {TreeCaseViewConfiguration} from './model/tree-case-view-configuration';\nimport {PaginationParams} from '../../../utility/pagination/pagination-params';\nimport {createSortParam, PaginationSort} from '../../../utility/pagination/pagination-sort';\n\n/**\n * An internal helper object, that is used to return two values from a function.\n */\ninterface CaseUpdateResult {\n    /**\n     * Whether the attributes that are visible on the tree changed\n     */\n    visibleTreePropertiesChanged: boolean;\n    /**\n     * Whether the nodes children changed\n     */\n    childrenChanged: boolean;\n}\n\n@Injectable()\nexport class CaseTreeService implements OnDestroy {\n\n    public static readonly DEFAULT_PAGE_SIZE = 50;\n\n    protected _currentNode: CaseTreeNode;\n    private _rootNodesFilter: Filter;\n    private readonly _treeDataSource: MatTreeNestedDataSource<CaseTreeNode>;\n    private readonly _treeControl: NestedTreeControl<CaseTreeNode>;\n    private _treeRootLoaded$: ReplaySubject<boolean>;\n    private _rootNode: CaseTreeNode;\n    private _showRoot: boolean;\n    /**\n     * Weather the tree is eager loaded or not.\n     *\n     * Defaults to `false`.\n     *\n     * It is not recommended to eager load large trees as each node sends a separate backend request to load its data.\n     */\n    private _isEagerLoaded = false;\n    /**\n     * string id of the case, that is currently being reloaded, `undefined` if no case is currently being reloaded\n     */\n    private _reloadedCaseId: string;\n\n    constructor(protected _caseResourceService: CaseResourceService,\n                protected _treeCaseViewService: TreeCaseViewService,\n                protected _taskResourceService: TaskResourceService,\n                protected _logger: LoggerService,\n                protected _processService: ProcessService,\n                protected _sideMenuService: SideMenuService,\n                protected _translateService: TranslateService,\n                @Optional() @Inject(NAE_OPTION_SELECTOR_COMPONENT) protected _optionSelectorComponent: any,\n                @Optional() @Inject(NAE_TREE_CASE_VIEW_CONFIGURATION) protected _treeConfiguration: TreeCaseViewConfiguration) {\n        if (!this._treeConfiguration) {\n            this._treeConfiguration = {\n                pageSize: CaseTreeService.DEFAULT_PAGE_SIZE\n            };\n        }\n\n        this._treeDataSource = new MatTreeNestedDataSource<CaseTreeNode>();\n        this._treeControl = new NestedTreeControl<CaseTreeNode>(node => node.children);\n        _treeCaseViewService.reloadCase$.asObservable().subscribe(() => {\n            this.reloadCurrentCase();\n        });\n        this._treeRootLoaded$ = new ReplaySubject<boolean>(1);\n    }\n\n    ngOnDestroy(): void {\n        this._treeRootLoaded$.complete();\n    }\n\n    public set rootFilter(filter: Filter) {\n        this._rootNodesFilter = filter;\n        this.dataSource.data = [];\n        this.loadTreeRoot();\n    }\n\n    public get dataSource(): MatTreeNestedDataSource<CaseTreeNode> {\n        return this._treeDataSource;\n    }\n\n    public get treeControl(): NestedTreeControl<CaseTreeNode> {\n        return this._treeControl;\n    }\n\n    public get currentNode(): CaseTreeNode {\n        return this._currentNode;\n    }\n\n    /**\n     * Emits a value whenever a new root node Filter is set.\n     *\n     * `true` is emitted if the root node was successfully loaded. `false` otherwise.\n     *\n     * On subscription emits the last emitted value (if any) to the subscriber.\n     */\n    public get treeRootLoaded$(): Observable<boolean> {\n        return this._treeRootLoaded$.asObservable();\n    }\n\n    protected get _currentCase(): Case | undefined {\n        return this._currentNode ? this._currentNode.case : undefined;\n    }\n\n    /**\n     * @returns an `Observable` of the {@link LoadingEmitter} representing the loading state of the root node.\n     * Returns `undefined` if the tree has not yet been initialized.\n     *\n     * Wait for an emission on the [treeRootLoaded$]{@link CaseTreeService#treeRootLoaded$} stream before getting this Observable.\n     *\n     * The first value emitted by the Observable is `false`, when the tree finishes initializing.\n     */\n    public get rootNodeLoading$(): Observable<boolean> | undefined {\n        return !!this._rootNode ? this._rootNode.loadingChildren.asObservable() : undefined;\n    }\n\n    /**\n     * @returns an `Observable` of the {@link LoadingEmitter} representing whether the root node is currently\n     * in the process of adding a new child node or not.\n     * Returns `undefined` if the tree has not yet been initialized.\n     *\n     * Wait for an emission on the [treeRootLoaded$]{@link CaseTreeService#treeRootLoaded$} stream before getting this Observable.\n     *\n     * The first value emitted by the Observable is `false`, when the tree finishes initializing.\n     */\n    public get rootNodeAddingChild$(): Observable<boolean> | undefined {\n        return !!this._rootNode ? this._rootNode.addingNode.asObservable() : undefined;\n    }\n\n    /**\n     * Weather the tree is eager loaded or not.\n     *\n     * Defaults to `false`.\n     *\n     * It is not recommended to eager load large trees as each node sends a separate backend request to load its data.\n     */\n    public get isEagerLoaded(): boolean {\n        return this._isEagerLoaded;\n    }\n\n    /**\n     * Weather the tree is eager loaded or not.\n     *\n     * Defaults to `false`.\n     *\n     * It is not recommended to eager load large trees as each node sends a separate backend request to load its data.\n     *\n     * @param eager the new setting for eager loading\n     */\n    public set isEagerLoaded(eager: boolean) {\n        this._isEagerLoaded = eager;\n    }\n\n    /**\n     * Loads and populates the topmost level of the tree.\n     *\n     * The displayed cases are determined by this object's [rootFilter]{@link CaseTreeService#rootFilter}.\n     *\n     * Cases are loaded one page at a time and the tree is refreshed after each page.\n     * [finishedLoadingFirstLevel$]{@link CaseTreeService#treeRootLoaded$}\n     * will emit `true` once the last page loads successfully.\n     * `false` will be emitted if any of the requests fail.\n     */\n    protected loadTreeRoot() {\n        if (this._rootNodesFilter) {\n            this._caseResourceService.searchCases(this._rootNodesFilter).subscribe(page => {\n                if (hasContent(page)) {\n                    this._rootNode = new CaseTreeNode(page.content[0], undefined);\n                    if (page.content.length !== 1) {\n                        this._logger.warn('Filter for tree root returned more than one case. Using the first value as tree root...');\n                    }\n                    this._treeRootLoaded$.next(true);\n                } else {\n                    this._logger.error('Tree root cannot be generated from the provided filter', page);\n                }\n            }, error => {\n                this._logger.error('Root node of the case tree could not be loaded', error);\n                this._treeRootLoaded$.next(false);\n            });\n        }\n    }\n\n    /**\n     * Adds the loaded tree root to the display based on the setting.\n     * @param showRoot whether the root of the tree should be displayed in the tree or not.\n     * If the root is not displayed it's children will be displayed on the first level.\n     * @returns an Observable that emits when the tree finishes initialization.\n     */\n    public initializeTree(showRoot: boolean): Observable<void> {\n        if (!this._rootNode) {\n            this._logger.error('Set a Filter before initializing the case tree');\n            return throwError(new Error('Set a Filter before initializing the case tree'));\n        }\n\n        this._showRoot = showRoot;\n\n        if (showRoot) {\n            this.dataSource.data = [this._rootNode];\n        } else {\n            this.dataSource.data = this._rootNode.children;\n        }\n\n        let ret: Observable<void>;\n        if (!showRoot || this._isEagerLoaded) {\n            const result = new ReplaySubject<void>(1);\n            ret = result.asObservable();\n            this.expandNode(this._rootNode).subscribe(() => {\n                this.refreshTree();\n                result.next();\n                result.complete();\n            });\n        } else {\n            this.refreshTree();\n            ret = ofVoid();\n        }\n        return ret;\n    }\n\n    /**\n     * Notifies the parent TreeCaseView that a case was clicked in the tree and it's Task should be displayed\n     */\n    public changeActiveNode(node: CaseTreeNode | undefined): void {\n        this._currentNode = node;\n        this._treeCaseViewService.loadTask$.next(node ? node.case : undefined);\n    }\n\n    /**\n     * Toggles the expansion state of a node\n     * @param node the {@link CaseTreeNode} who's content should be toggled\n     */\n    public toggleNode(node: CaseTreeNode): void {\n        if (this._treeControl.isExpanded(node)) {\n            this._treeControl.collapse(node);\n        } else {\n            this.expandNode(node);\n        }\n    }\n\n    /**\n     * Expands the target node in the tree and reloads it's children if they are marked as dirty\n     * @param node the {@link CaseTreeNode} that should be expanded\n     * @returns emits `true` if the node is expanded and `false` if not. If the expansion causes more node expansions\n     * (e.g. eager loaded tree) then, the Observable emits after all the subtree expansions complete.\n     */\n    protected expandNode(node: CaseTreeNode): Observable<boolean> {\n        this._logger.debug('Requesting expansion of tree node', node.toLoggableForm());\n\n        if (node.loadingChildren.isActive) {\n            this._logger.debug('Node requested for expansion is loading. Expansion canceled.');\n            return of(false);\n        }\n\n        if (!node.dirtyChildren) {\n            this._logger.debug('Node requested for expansion has clean children. Simple expansion.');\n            this.treeControl.expand(node);\n            return of(true);\n        }\n\n        const ret = new ReplaySubject<boolean>(1);\n        this.updateNodeChildren(node).subscribe(() => {\n            this._logger.debug('Node requested for expansion with dirty children had its children reloaded.');\n            if (node.children.length > 0) {\n                this._logger.debug('Node expanded.', node.toLoggableForm());\n                this.treeControl.expand(node);\n                if (this._isEagerLoaded) {\n                    this._logger.debug(`Eager loading children of tree node with case id '${node.case.stringId}'`);\n                    const innerObservables = node.children.map(childNode => this.expandNode(childNode));\n                    // forkJoin doesn't emit with 0 input observables\n                    innerObservables.push(of(true));\n                    forkJoin(innerObservables).subscribe(() => {\n                        ret.next(true);\n                        ret.complete();\n                    });\n                } else {\n                    ret.next(true);\n                    ret.complete();\n                }\n            } else {\n                ret.next(false);\n                ret.complete();\n            }\n        });\n        return ret.asObservable();\n    }\n\n    /**\n     * Checks whether dirty children need to be reloaded and reloads them if needed.\n     * @param node the {@link CaseTreeNode} who's children are updated\n     * @returns emits when loading finishes\n     */\n    protected updateNodeChildren(node: CaseTreeNode): Observable<void> {\n        node.loadingChildren.on();\n\n        const childrenCaseRef = getImmediateData(node.case, TreePetriflowIdentifiers.CHILDREN_CASE_REF);\n        if (!childrenCaseRef || childrenCaseRef.value.length === 0) {\n            node.children = [];\n            this.refreshTree();\n            node.dirtyChildren = false;\n            node.loadingChildren.off();\n            return ofVoid();\n        }\n\n        if (node.children.length === childrenCaseRef.value.length) {\n            const existingChildren = new Set<string>();\n            node.children.forEach(childNode => existingChildren.add(childNode.case.stringId));\n            if (childrenCaseRef.value.every(caseId => existingChildren.has(caseId))) {\n                node.dirtyChildren = false;\n                node.loadingChildren.off();\n                return ofVoid();\n            }\n        }\n\n        return this.updatePageOfChildren(node, 0).pipe(\n            tap(() => {\n                    this.refreshTree();\n                    node.dirtyChildren = false;\n                    node.loadingChildren.off();\n                }\n            )\n        );\n    }\n\n    /**\n     * Loads every page of children from the given number and updates the existing children.\n     *\n     * Missing nodes are removed. Existing nodes are marked as dirty. New nodes are added.\n     *\n     * Nodes are returned in their insertion order.\n     * @param node the {@link CaseTreeNode} who's children are updated\n     * @param pageNumber the number of the first page that should be loaded. All following pages are loaded as well\n     * @returns next is emitted when loading of all pages completes (regardless of the outcome)\n     */\n    protected updatePageOfChildren(node: CaseTreeNode, pageNumber: number): Observable<void> {\n        const requestBody = this.createChildRequestBody(node);\n        if (!requestBody) {\n            this._logger.error('Cannot create filter to find children of the given node', node.case);\n            return throwError(new Error('Cannot create filter to find children of the given node'));\n        }\n\n        const done = new ReplaySubject<void>(1);\n\n        let params: HttpParams = new HttpParams();\n        params = params.set(PaginationParams.PAGE_SIZE, `${this._treeConfiguration.pageSize}`)\n                       .set(PaginationParams.PAGE_NUMBER, `${pageNumber}`)\n                       .set(PaginationParams.PAGE_SORT, createSortParam('creationDate', PaginationSort.ASCENDING));\n        this._caseResourceService.getCases(requestBody, params).subscribe(page => {\n            if (!hasContent(page)) {\n                this._logger.error('Child cases invalid page content', page);\n                done.next();\n                done.complete();\n                return;\n            }\n\n            this.updateCurrentChildrenWithNewPage(node, page);\n\n            if (pageNumber + 1 < page.pagination.totalPages) {\n                this.updatePageOfChildren(node, pageNumber + 1).subscribe(() => {\n                    done.next();\n                    done.complete();\n                });\n            } else {\n                done.next();\n                done.complete();\n            }\n\n        }, error => {\n            this._logger.error('Child cases could not be loaded', error);\n            done.next();\n            done.complete();\n        });\n\n        return done.asObservable();\n    }\n\n    /**\n     * Updates the children of the given {@link CaseTreeNode} with [Cases]{@link Case} from the provided {@link Page}.\n     * @param node the {@link CaseTreeNode} who's children are updated\n     * @param page the {@link Page} that contains the updated children\n     */\n    protected updateCurrentChildrenWithNewPage(node: CaseTreeNode, page: Page<Case>): void {\n        page.content.forEach((newCase, index) => {\n            const position = page.pagination.size * page.pagination.number + index;\n            while (position < node.children.length && node.children[position].case.stringId !== newCase.stringId) {\n                node.children.splice(position, 1);\n            }\n            if (node.children.length === position) {\n                node.children.push(new CaseTreeNode(newCase, node));\n            } else {\n                node.children[position].case = newCase;\n                node.dirtyChildren = true;\n                this.treeControl.collapseDescendants(node.children[position]);\n            }\n        });\n    }\n\n    /**\n     * @param node the {@link CaseTreeNode} who's children the {@link Filter} should return\n     * @returns a request body that finds all child cases of the given `node`.\n     * Returns `undefined` if the provided `node` doesn't contain enough information to create the request body.\n     */\n    protected createChildRequestBody(node: CaseTreeNode): CaseGetRequestBody {\n        const childCaseRef = getImmediateData(node.case, TreePetriflowIdentifiers.CHILDREN_CASE_REF);\n        if (!childCaseRef) {\n            return undefined;\n        }\n\n        return {stringId: (childCaseRef.value as Array<string>)};\n    }\n\n    /**\n     * Adds a child to the root node.\n     *\n     * Useful if you are using the layout where the root node is hidden.\n     * @returns emits `true` if the child was successfully added, `false` if not\n     */\n    public addRootChildNode(): Observable<boolean> {\n        const ret = new ReplaySubject<boolean>(1);\n        this.addChildNode(this._rootNode).subscribe(added => {\n            if (added) {\n                if (!this._showRoot && this._treeDataSource.data.length === 0) {\n                    this._treeDataSource.data = this._rootNode.children;\n                    this.refreshTree();\n                }\n            }\n            ret.next(added);\n            ret.complete();\n        });\n        return ret;\n    }\n\n    /**\n     * Adds a new child node to the given node based on the properties of the node's case\n     * @returns emits `true` if the child was successfully added, `false` if not\n     */\n    public addChildNode(clickedNode: CaseTreeNode): Observable<boolean> {\n        clickedNode.addingNode.on();\n        const caseRefField = getImmediateData(clickedNode.case, TreePetriflowIdentifiers.CHILDREN_CASE_REF);\n\n        if (caseRefField.allowedNets.length === 0) {\n            this._logger.error(`Case ${clickedNode.case.stringId} can add new tree nodes but has no allowed nets`);\n            clickedNode.addingNode.off();\n            return of(false);\n        }\n\n        const ret = new ReplaySubject<boolean>(1);\n\n        if (caseRefField.allowedNets.length === 1) {\n            this.createAndAddChildCase(caseRefField.allowedNets[0], clickedNode, ret);\n        } else {\n            this._processService.getNets(caseRefField.allowedNets).subscribe(nets => {\n                const sideMeuRef = this._sideMenuService.open(this._optionSelectorComponent, SideMenuSize.MEDIUM, {\n                    title: clickedNode.case.title,\n                    options: nets.map(net => ({text: net.title, value: net.identifier}))\n                });\n                let sideMenuSubscription: Subscription;\n                sideMenuSubscription = sideMeuRef.onClose.subscribe(event => {\n                    if (!!event.data) {\n                        this.createAndAddChildCase(event.data.value, clickedNode, ret);\n                        sideMenuSubscription.unsubscribe();\n                    } else {\n                        clickedNode.addingNode.off();\n                        ret.next(false);\n                        ret.complete();\n                    }\n                });\n            });\n        }\n        return ret.asObservable();\n    }\n\n    /**\n     * Creates a new case and adds it to the children of the specified node\n     * @param processIdentifier identifier of the process that should be created\n     * @param clickedNode the node that is the parent of the new case\n     * @param operationResult the result of the operation will be emitted into this stream when the operation completes\n     */\n    protected createAndAddChildCase(processIdentifier: string,\n                                    clickedNode: CaseTreeNode,\n                                    operationResult: Subject<boolean>) {\n        this._processService.getNet(processIdentifier).subscribe(net => {\n            const childTitleImmediate = getImmediateData(clickedNode.case, TreePetriflowIdentifiers.CHILD_NODE_TITLE);\n            let childTitle = this._translateService.instant('caseTree.newNodeDefaultName');\n            if (!!childTitleImmediate) {\n                childTitle = childTitleImmediate.value;\n            } else if (!!net.defaultCaseName) {\n                childTitle = net.defaultCaseName;\n            }\n            this._caseResourceService.createCase({\n                title: childTitle,\n                netId: net.stringId\n            }).subscribe((outcomeResource: EventOutcomeMessageResource) => {\n                const caseRefField = getImmediateData(clickedNode.case, TreePetriflowIdentifiers.CHILDREN_CASE_REF);\n                const setCaseRefValue = [...caseRefField.value, (outcomeResource.outcome as CreateCaseEventOutcome).aCase.stringId];\n                this.performCaseRefCall(clickedNode.case.stringId, setCaseRefValue).subscribe(\n                    valueChange => this.updateTreeAfterChildAdd(clickedNode, valueChange ? valueChange : setCaseRefValue, operationResult)\n                );\n            });\n        });\n    }\n\n    /**\n     * Updates the tree after adding a new child\n     * @param clickedNode the parent node\n     * @param newCaseRefValue the new value of the parent node's case ref\n     * @param operationResult the result of the operation will be emitted into this stream when the operation completes\n     */\n    protected updateTreeAfterChildAdd(clickedNode: CaseTreeNode, newCaseRefValue: Array<string>, operationResult: Subject<boolean>): void {\n        this.updateNodeChildrenFromChangedFields(clickedNode, newCaseRefValue).subscribe(result => {\n            clickedNode.addingNode.off();\n            this.expandNode(clickedNode).subscribe(expandSuccess => {\n                if (expandSuccess) {\n                    this.changeActiveNode(clickedNode.children[clickedNode.children.length - 1]);\n                    result.executeAfterActions();\n                }\n                operationResult.next(true);\n                operationResult.complete();\n            });\n        });\n    }\n\n    /**\n     * removes the provided non-root node if the underlying case allows it.\n     *\n     * The underlying case is removed from the case ref of it's parent element with the help from the `remove`\n     * operation provided by case ref itself.\n     * @param node the node that should be removed from the tree\n     */\n    public removeNode(node: CaseTreeNode): void {\n        if (!node.parent) {\n            this._logger.error('Case tree doesn\\'t support removal of the root node, as it has no parent case ref.');\n            return;\n        }\n\n        node.removingNode.on();\n        const caseRefImmediate = getImmediateData(node.parent.case, TreePetriflowIdentifiers.CHILDREN_CASE_REF);\n        const setCaseRefValue = (caseRefImmediate.value as Array<string>).filter(id => id !== node.case.stringId);\n        this.performCaseRefCall(node.parent.case.stringId, setCaseRefValue).subscribe(caseRefChange => {\n            const newCaseRefValue = caseRefChange ? caseRefChange : setCaseRefValue;\n            this.deleteRemovedNodes(node.parent, newCaseRefValue);\n            this.updateNodeChildrenFromChangedFields(node.parent, newCaseRefValue);\n\n            node.removingNode.off();\n        });\n\n        this.deselectNodeIfDescendantOf(node);\n    }\n\n    /**\n     * Expands all nodes in the tree dictated by the argument.\n     *\n     * @param path nodes that should be expanded along with their path from the root node\n     */\n    public expandPath(path: CaseTreePath): void {\n        if (this.dataSource.data.length === 0) {\n            return;\n        }\n        let rootNode = this.dataSource.data[0];\n        while (rootNode.parent !== undefined) {\n            rootNode = rootNode.parent;\n        }\n        this.expandLevel([rootNode], this.convertPathToExpansionTree(path));\n    }\n\n    /**\n     * Transforms a {@Link CaseTreePath} object into an {@link ExpansionTree} object.\n     * The result has all the common paths merged into single branches of the resulting tree structure.\n     *\n     * @param paths nodes that should be expanded along with their path from the root node\n     * @returns an {@link ExpansionTree} equivalent to the provided {@link CaseTreePath}\n     */\n    protected convertPathToExpansionTree(paths: CaseTreePath): ExpansionTree {\n        const result = {};\n        Object.values(paths).forEach(path => {\n            let currentNode = result;\n            path.forEach(nodeId => {\n                if (currentNode[nodeId] === undefined) {\n                    currentNode[nodeId] = {};\n                }\n                currentNode = currentNode[nodeId];\n            });\n        });\n        return result;\n    }\n\n    /**\n     * Recursively expands all nodes from the provided array of nodes, that appear in the top level of the {@link ExpansionTree} object.\n     *\n     * @param levelNodes nodes from which the expansion should start\n     * @param targets a tree structure representing the nodes that are to be expanded recursively.\n     * The top level nodes are expanded first, from the provided `levelNodes`.\n     */\n    protected expandLevel(levelNodes: Array<CaseTreeNode>, targets: ExpansionTree): void {\n        const desiredIds = new Set(Object.keys(targets));\n        if (desiredIds.size === 0) {\n            return;\n        }\n\n        levelNodes.forEach(n => {\n            const node = n;\n            if (!desiredIds.has(node.case.stringId)) {\n                return; // continue\n            }\n            this.expandNode(node).subscribe(success => {\n                if (!success) {\n                    this._logger.debug('Could not expand tree node with ID: ' + node.case.stringId);\n                    return;\n                }\n                this.expandLevel(node.children, targets[node.case.stringId]);\n            });\n        });\n    }\n\n    /**\n     * Deletes the subtrees rooted at the nodes that are present in the parent node's child case ref values,\n     * but are no longer present in the new value\n     * @param parentNode an inner node of the tree that had some of it's children removed\n     * @param newCaseRefValue the new value of the parent node's case ref\n     */\n    protected deleteRemovedNodes(parentNode: CaseTreeNode, newCaseRefValue: Array<string>): void {\n        const removedChildren = new Set<string>();\n        getImmediateData(parentNode.case, TreePetriflowIdentifiers.CHILDREN_CASE_REF).value.forEach(id => removedChildren.add(id));\n        newCaseRefValue.forEach(id => removedChildren.delete(id));\n        removedChildren.forEach(removedId => this._caseResourceService.deleteCase(removedId, true)\n            .subscribe(responseMessage => {\n                if (responseMessage.error) {\n                    this._logger.error('Removal of child case unsuccessful', responseMessage.error);\n                }\n            }));\n    }\n\n    /**\n     * Deselects the currently selected node if it is a descendant of the provided node\n     * @param node the node who's descendants should be deselected\n     */\n    protected deselectNodeIfDescendantOf(node: CaseTreeNode): void {\n        let bubblingNode = this.currentNode;\n        while (bubblingNode && bubblingNode !== this._rootNode) {\n            if (bubblingNode === node) {\n                this.changeActiveNode(undefined);\n                break;\n            }\n            bubblingNode = bubblingNode.parent;\n        }\n    }\n\n    /**\n     * Performs a backend call on the given case, and sets the value of the case ref field in the transition defined by\n     * [CASE_REF_TRANSITION]{@link TreePetriflowIdentifiers#CASE_REF_TRANSITION}.\n     * @param caseId string ID of the case that should have it's tree case ref set\n     * @param newCaseRefValue the new value of the case ref field\n     */\n    private performCaseRefCall(caseId: string, newCaseRefValue: Array<string>): Observable<Array<string> | undefined> {\n        const result$ = new ReplaySubject<Array<string>>(1);\n\n        this._taskResourceService.getTasks(SimpleFilter.fromTaskQuery({\n            case: {id: caseId},\n            transitionId: TreePetriflowIdentifiers.CASE_REF_TRANSITION\n        })).subscribe(page => {\n            if (!hasContent(page)) {\n                this._logger.error('Case ref accessor task doesn\\'t exist!');\n                result$.complete();\n                return;\n            }\n\n            const task = page.content[0];\n\n            this._taskResourceService.assignTask(task.stringId).subscribe(assignResponse => {\n                if (!assignResponse.success) {\n                    this._logger.error('Case ref accessor task could not be assigned', assignResponse.error);\n                }\n\n                const body = {};\n                body[task.stringId] = {\n                    [TreePetriflowIdentifiers.CHILDREN_CASE_REF]: {\n                        type: 'caseRef',\n                        value: newCaseRefValue\n                    }\n                };\n                this._taskResourceService.setData(task.stringId, body).subscribe((outcomeResource: EventOutcomeMessageResource) => {\n                    const changedFields = (outcomeResource.outcome as SetDataEventOutcome).changedFields.changedFields;\n                    const caseRefChanges = changedFields[TreePetriflowIdentifiers.CHILDREN_CASE_REF];\n                    result$.next(caseRefChanges ? caseRefChanges.value : undefined);\n                    result$.complete();\n                    this._taskResourceService.finishTask(task.stringId).subscribe(finishResponse => {\n                        if (finishResponse.success) {\n                            this._logger.debug('Case ref accessor task finished', finishResponse.success);\n                        } else {\n                            this._logger.error('Case ref accessor task finish failed', finishResponse.error);\n                        }\n                    });\n                }, error => {\n                    this._logger.error('Could not set data to tree case ref', error);\n                    result$.complete();\n                });\n            }, error => {\n                this._logger.error('Case ref accessor task could not be assigned', error);\n                result$.complete();\n            });\n        }, error => {\n            this._logger.error('Case ref accessor task could not be found', error);\n            result$.complete();\n        });\n        return result$.asObservable();\n    }\n\n    /**\n     * Performs an update after adding or removing a node from the tree.\n     *\n     * If only one node was added adds it into the tree\n     *\n     * If only one node was removed removes it from the tree\n     *\n     * Otherwise collapses the affected node and marks it's children as dirty\n     *\n     * @param affectedNode node that had it's children changed\n     * @param newCaseRefValue new value of the caseRef field returned by backend\n     * @returns an `Observable` that emits an object with the [result]{@link ResultWithAfterActions#result} attribute set to `true` if\n     * the update completes successfully and `false` otherwise.\n     */\n    private updateNodeChildrenFromChangedFields(affectedNode: CaseTreeNode,\n                                                newCaseRefValue: Array<string>): Observable<ResultWithAfterActions<boolean>> {\n        const caseRefField = getImmediateData(affectedNode.case, TreePetriflowIdentifiers.CHILDREN_CASE_REF);\n        const newChildren = new Set<string>();\n        newCaseRefValue.forEach(id => newChildren.add(id));\n\n        let numberOfMissingChildren = 0;\n        for (let i = 0; i < caseRefField.value.length && numberOfMissingChildren < 2; i++) {\n            if (!newChildren.has(caseRefField.value[i])) {\n                numberOfMissingChildren++;\n            }\n        }\n\n        const exactlyOneChildAdded = caseRefField.value.length + 1 === newCaseRefValue.length\n            && caseRefField.value.every(it => newChildren.has(it));\n\n        const exactlyOneChildRemoved = caseRefField.value.length - 1 === newCaseRefValue.length\n            && numberOfMissingChildren === 1;\n\n        if (!exactlyOneChildAdded && !exactlyOneChildRemoved) {\n            caseRefField.value = newCaseRefValue;\n            this._treeControl.collapseDescendants(affectedNode);\n            affectedNode.dirtyChildren = true;\n            return of(new ResultWithAfterActions(true));\n        }\n\n        if (exactlyOneChildAdded) {\n            return this.processChildNodeAdd(affectedNode, caseRefField, newCaseRefValue);\n        } else {\n            return this.processChildNodeRemove(affectedNode, caseRefField, newChildren);\n        }\n    }\n\n    /**\n     * Adds a new child node to the `affectedNode` by adding the last Case from the `newCaseRefValue`\n     * @param affectedNode the node in the tree that had a child added - the parent node\n     * @param caseRefField the case ref field of the affected node\n     * @param newCaseRefValue the new value of the case ref field in the node\n     * @returns an `Observable` that emits `true` if a node was successfully added, `false` otherwise.\n     */\n    protected processChildNodeAdd(affectedNode: CaseTreeNode,\n                                  caseRefField: ImmediateData,\n                                  newCaseRefValue: Array<string>): Observable<ResultWithAfterActions<boolean>> {\n        const result$ = new ReplaySubject<ResultWithAfterActions<boolean>>(1);\n\n        caseRefField.value = newCaseRefValue;\n        this._caseResourceService.getOneCase(newCaseRefValue[newCaseRefValue.length - 1]).subscribe(childCase => {\n            if (childCase) {\n                this._logger.debug('Pushing child node to tree', {childCase, affectedNode: affectedNode.toLoggableForm()});\n                const childNode = this.pushChildToTree(affectedNode, childCase);\n                result$.next(new ResultWithAfterActions(true, [() => {\n                    if (this._isEagerLoaded) {\n                        this._logger.debug('Eagerly expanding a newly added node.', childNode.toLoggableForm());\n                        this.expandNode(childNode);\n                    }\n                }]));\n            } else {\n                this._logger.error('New child case was not found, illegal state', childCase);\n                result$.next(new ResultWithAfterActions(false));\n            }\n            result$.complete();\n        }, error => {\n            this._logger.error('New child node case could not be found', error);\n            result$.next(new ResultWithAfterActions(false));\n            result$.complete();\n        });\n\n        return result$.asObservable();\n    }\n\n    /**\n     * Adds a new child node to the target parent node.\n     * @param parentNode the nodes whose child should be added\n     * @param childCase the child case\n     * @returns the newly added node\n     */\n    protected pushChildToTree(parentNode: CaseTreeNode, childCase: Case): CaseTreeNode {\n        const childNode = new CaseTreeNode(childCase, parentNode);\n        parentNode.children.push(childNode);\n        this.refreshTree();\n        return childNode;\n    }\n\n    /**\n     * Removes the deleted node from the children of the `affectedNode`\n     * @param affectedNode the node in the tree that had it's child removed\n     * @param caseRefField the case ref field of the affected node\n     * @param newCaseRefValues the new value of the case ref field in the node\n     * @returns an `Observable` that emits `true` when the remove operation completes.\n     */\n    protected processChildNodeRemove(affectedNode: CaseTreeNode,\n                                     caseRefField: ImmediateData,\n                                     newCaseRefValues: Set<string>): Observable<ResultWithAfterActions<boolean>> {\n        const index = caseRefField.value.findIndex(it => !newCaseRefValues.has(it));\n        caseRefField.value.splice(index, 1);\n        affectedNode.children.splice(index, 1);\n        this.refreshTree();\n        return of(new ResultWithAfterActions(true));\n    }\n\n    /**\n     * @ignore\n     * Forces a rerender of the tree content\n     */\n    private refreshTree(): void {\n        refreshTree(this._treeDataSource);\n    }\n\n    /**\n     * Reloads the currently selected case node. The {@link Case} object held in the {@link CaseTreeNode} instance is not replaced,\n     * but the new Case is `Object.assign`-ed into it. This means that the reference to the Case instance is unchanged but references\n     * to all it's non-primitive attributes are changed.\n     *\n     * If a reload of the current node is initiated before the previous one completed, the new one is ignored.\n     *\n     * If the currently selected case changed before a response from backend was received the response is ignored.\n     *\n     * Note that the parent node, nor the child nodes are reloaded.\n     */\n    protected reloadCurrentCase(): void {\n        if (!this._currentNode) {\n            this._logger.debug('No Tree Case Node selected, nothing to reload');\n            return;\n        }\n        if (this._reloadedCaseId && this._currentNode.case.stringId !== this._reloadedCaseId) {\n            this._logger.debug('Reload of the current case already in progress');\n            return;\n        }\n        this._reloadedCaseId = this._currentNode.case.stringId;\n        this._caseResourceService.getOneCase(this._currentCase.stringId).subscribe(reloadedCurrentCase => {\n            if (!reloadedCurrentCase) {\n                this._logger.error('Current Case Tree Node could not be reloaded. Invalid server response', reloadedCurrentCase);\n                return;\n            }\n            if (this._currentNode && reloadedCurrentCase.stringId === this._currentNode.case.stringId) {\n                this._reloadedCaseId = undefined;\n                const change = this.determineCaseUpdate(this._currentCase, reloadedCurrentCase);\n                Object.assign(this._currentCase, reloadedCurrentCase);\n                this._treeCaseViewService.loadTask$.next(this._currentCase);\n                if (change.visibleTreePropertiesChanged) {\n                    this.refreshTree();\n                }\n                if (change.childrenChanged) {\n                    this._currentNode.dirtyChildren = true;\n                    this.expandNode(this._currentNode);\n                }\n                this._logger.debug('Current Case Tree Node reloaded');\n            } else {\n                this._logger.debug('Discarding case reload response, since the current node has changed before its case was received');\n            }\n        }, error => {\n            this._logger.error('Current Case Tree Node reload request failed', error);\n        });\n    }\n\n    /**\n     * Determines if anny of the case attributes that are visible on the tree changed.\n     * @param oldCase the previous version of the Case object, that is currently displayed on the tree\n     * @param newCase the new version of the Case object, that should replace the old one\n     */\n    private determineCaseUpdate(oldCase: Case, newCase: Case): CaseUpdateResult {\n        const visibleAttributes = [\n            TreePetriflowIdentifiers.CAN_ADD_CHILDREN,\n            TreePetriflowIdentifiers.CAN_REMOVE_NODE,\n            TreePetriflowIdentifiers.BEFORE_TEXT_ICON,\n            TreePetriflowIdentifiers.TREE_ADD_ICON\n        ];\n\n        const result: CaseUpdateResult = {\n            visibleTreePropertiesChanged: true, // for short-circuiting the evaluation, if nodes children changed\n            childrenChanged: false\n        };\n\n        const oldChildCaseRef = getImmediateData(oldCase, TreePetriflowIdentifiers.CHILDREN_CASE_REF);\n        if (oldChildCaseRef !== undefined) {\n            const oldChildren = new Set(oldChildCaseRef.value);\n            const newChildren = new Set(getImmediateData(newCase, TreePetriflowIdentifiers.CHILDREN_CASE_REF).value);\n\n            result.childrenChanged = oldChildren.size !== newChildren.size;\n            if (!result.childrenChanged) {\n                result.childrenChanged = Array.from(oldChildren).some(childId => !newChildren.has(childId));\n            }\n\n            // short-circuit\n            if (result.childrenChanged) {\n                return result;\n            }\n        }\n\n        result.visibleTreePropertiesChanged = visibleAttributes.some(attribute => {\n            return getImmediateData(oldCase, attribute)\n                && getImmediateData(oldCase, attribute).value !== getImmediateData(newCase, attribute).value;\n        });\n\n        return result;\n    }\n}\n","import {Inject, Injectable, OnDestroy} from '@angular/core';\nimport {TaskContentService} from '../../../task-content/services/task-content.service';\nimport {TaskDataService} from '../../../task/services/task-data.service';\nimport {CancelTaskService} from '../../../task/services/cancel-task.service';\nimport {TaskEventService} from '../../../task-content/services/task-event.service';\nimport {TaskResourceService} from '../../../resources/engine-endpoint/task-resource.service';\nimport {TreeCaseViewService} from '../tree-case-view.service';\nimport {Case} from '../../../resources/interface/case';\nimport {Task} from '../../../resources/interface/task';\nimport {AssignPolicyService} from '../../../task/services/assign-policy.service';\nimport {AssignPolicy} from '../../../task-content/model/policy';\nimport {NAE_TASK_OPERATIONS} from '../../../task/models/task-operations-injection-token';\nimport {SubjectTaskOperations} from '../../../task/models/subject-task-operations';\nimport {UserComparatorService} from '../../../user/services/user-comparator.service';\nimport {TreePetriflowIdentifiers} from '../model/tree-petriflow-identifiers';\nimport {CallChainService} from '../../../utility/call-chain/call-chain.service';\nimport {LoadingEmitter} from '../../../utility/loading-emitter';\nimport {Observable, ReplaySubject, Subject} from 'rxjs';\nimport {hasContent} from '../../../utility/pagination/page-has-content';\nimport {getImmediateData} from '../../../utility/get-immediate-data';\nimport {filter} from 'rxjs/operators';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {SelectedCaseService} from '../../../task/services/selected-case.service';\nimport {Filter} from '../../../filter/models/filter';\nimport {SimpleFilter} from '../../../filter/models/simple-filter';\nimport {PermissionService} from '../../../authorization/permission/permission.service';\nimport {ChangedFieldsService} from '../../../changed-fields/services/changed-fields.service';\nimport {ChangedFields} from '../../../data-fields/models/changed-fields';\nimport {ChangedFieldsMap} from '../../../event/services/interfaces/changed-fields-map';\n\n@Injectable()\nexport class TreeTaskContentService implements OnDestroy {\n\n    private _processingTaskChange: LoadingEmitter;\n    private _displayedTaskText$: Subject<string>;\n    /**\n     * a unique identifier consisting of caseId and transition ID\n     *\n     * Is set if a reload of the given task is currently taking place, `undefined` otherwise.\n     */\n    private _reloadedTaskUniqueIdentifier: string;\n\n    constructor(protected _treeCaseService: TreeCaseViewService,\n                protected _taskDataService: TaskDataService,\n                protected _taskContentService: TaskContentService,\n                protected _taskResourceService: TaskResourceService,\n                protected _taskEventService: TaskEventService,\n                protected _assignPolicy: AssignPolicyService,\n                protected _cancel: CancelTaskService,\n                protected _userComparator: UserComparatorService,\n                protected _callchain: CallChainService,\n                protected _logger: LoggerService,\n                protected _selectedCaseService: SelectedCaseService,\n                protected _changedFieldsService: ChangedFieldsService,\n                protected _permissionService: PermissionService,\n                @Inject(NAE_TASK_OPERATIONS) protected _taskOperations: SubjectTaskOperations) {\n        this._processingTaskChange = new LoadingEmitter();\n        this._displayedTaskText$ = new ReplaySubject<string>();\n\n        this._changedFieldsService.changedFields$.subscribe((changedFieldsMap: ChangedFieldsMap) => {\n            const filteredCaseIds: Array<string> = Object.keys(changedFieldsMap).filter(\n                caseId => Object.keys(this._taskContentService.referencedTaskAndCaseIds).includes(caseId)\n            );\n            const changedFields: Array<ChangedFields> = [];\n            filteredCaseIds.forEach(caseId => {\n                const taskIds: Array<string> = this._taskContentService.referencedTaskAndCaseIds[caseId];\n                changedFields.push(...this._changedFieldsService.parseChangedFieldsByCaseAndTaskIds(caseId, taskIds, changedFieldsMap));\n            });\n            changedFields.filter(fields => fields !== undefined).forEach(fields => {\n                this._taskContentService.updateFromChangedFields(fields);\n            });\n        });\n        _taskDataService.updateSuccess$.subscribe(result => {\n            if (result) {\n                this._treeCaseService.reloadCase$.next();\n                this.resolveTaskBlockState();\n            }\n        });\n\n        _treeCaseService.loadTask$.asObservable().pipe(filter(selectedCase => this.taskChanged(selectedCase))).subscribe(selectedCase => {\n            this.cancelAndLoadFeaturedTask(selectedCase);\n        });\n\n        _taskOperations.reload$.subscribe(() => {\n            this.updateTaskState();\n            this._treeCaseService.reloadCase$.next();\n        });\n        _taskOperations.open$.subscribe(() => {\n            this._taskContentService.blockFields(false);\n        });\n        _taskOperations.close$.subscribe(() => {\n            this._taskContentService.blockFields(true);\n        });\n    }\n\n    public get taskContentText$(): Observable<string> {\n        return this._displayedTaskText$.asObservable();\n    }\n\n    public get processingTaskChange(): boolean {\n        return this._processingTaskChange.isActive;\n    }\n\n    public displayEmptyTaskContent(): void {\n        this._taskContentService.$shouldCreate.next([]);\n        this._displayedTaskText$.next('caseTree.noTaskSelected');\n    }\n\n    /**\n     * Cancels the currently selected {@link Task} if any. And then loads and assigns the new Task.\n     * @param selectedCase the Case who's task should be now displayed\n     */\n    protected cancelAndLoadFeaturedTask(selectedCase: Case | undefined) {\n        this._processingTaskChange.on();\n        this._taskContentService.blockFields(true);\n        if (this.shouldCancelTask) {\n            this._cancel.cancel(this._callchain.create(success => {\n                if (success) {\n                    this._logger.debug('Old tree task successfully canceled');\n                } else {\n                    this._logger.warn('Old tree task could not be canceled');\n                }\n            }));\n        }\n        this.loadFeaturedTask(selectedCase);\n    }\n\n    /**\n     * Changes the currently displayed {@link Task} based on the selected {@link Case} from the Tree.\n     * @param selectedCase the Case who's task should be now displayed\n     */\n    protected loadFeaturedTask(selectedCase: Case | undefined): void {\n        this._selectedCaseService.selectedCase = selectedCase;\n\n        const requestBody = this.getTaskFilter();\n        if (requestBody === undefined) {\n            this.clearCurrentTask();\n            return;\n        }\n\n        this._taskResourceService.getTasks(requestBody).subscribe(page => {\n            if (hasContent(page)) {\n                this.setStandardTaskText();\n                this.switchToTask(page.content[0]);\n            } else {\n                this.clearCurrentTask();\n            }\n        });\n    }\n\n    /**\n     * Checks whether the currently displayed task differs from the new one\n     * @param newCase [Case]{@link Case} object that holds the newly selected {@link Task}\n     * @returns `true` if the currently selected Case has a different ID from the newly selected Case.\n     * If the IDs are the same returns `true` if the transition IDs are different.\n     * Returns `false` otherwise.\n     */\n    private taskChanged(newCase: Case | undefined): boolean {\n        const currentCaseId = this._selectedCaseService.selectedCase ? this._selectedCaseService.selectedCase.stringId : undefined;\n        const newCaseId = newCase ? newCase.stringId : undefined;\n        if (currentCaseId !== newCaseId) {\n            return true;\n        }\n\n        const currentTransitionId = this.getTransitionId(this._selectedCaseService.selectedCase);\n        const newTransitionId = this.getTransitionId(newCase);\n        return currentTransitionId !== newTransitionId;\n    }\n\n    /**\n     * Checks whether a Task object is currently selected and if it can be cancelled by the user\n     */\n    private get shouldCancelTask(): boolean {\n        return this._taskContentService.task && this._permissionService.canCancel(this._taskContentService.task);\n    }\n\n    /**\n     * Creates a {@link Filter} object that finds the specified Task for the currently selected Case in a Tree Case View\n     * @returns a request body that finds tasks of the given case with task id that corresponds to the value in the `treeTaskTransitionId`\n     * immediate data field. Returns `undefined` if the request body cannot be created.\n     */\n    protected getTaskFilter(): Filter | undefined {\n        const transitionId = this.getTransitionId(this._selectedCaseService.selectedCase);\n        if (transitionId) {\n            return SimpleFilter.fromTaskQuery({\n                case: {id: this._selectedCaseService.selectedCase.stringId},\n                transitionId\n            });\n        }\n        return undefined;\n    }\n\n    /**\n     * @param examinedCase the {@link Case} object from which we want to extract the transition ID\n     * @returns the ID of the transition that should be displayed in the {@link AbstractTaskContentComponent},\n     * or `undefined` if the currently selected case doesn't define it\n     */\n    protected getTransitionId(examinedCase: Case): string | undefined {\n        if (examinedCase && examinedCase.immediateData) {\n            const transitionId = getImmediateData(examinedCase, TreePetriflowIdentifiers.FEATURED_TRANSITION);\n            return transitionId ? transitionId.value : undefined;\n        }\n        return undefined;\n    }\n\n    /**\n     * Changes the currently selected {@link Task}.\n     * @param task the Task that should now be selected\n     */\n    protected switchToTask(task: Task): void {\n        if (task.caseId !== this._selectedCaseService.selectedCase.stringId) {\n            this._logger.debug('Tree featured task has been loaded, but the selected case has changed since. Discarding...');\n            return;\n        }\n\n        task.assignPolicy = AssignPolicy.auto;\n        this._taskContentService.task = task;\n        this._taskContentService.blockFields(true);\n        this._assignPolicy.performAssignPolicy(true, this._callchain.create(() => {\n            this._processingTaskChange.off();\n        }));\n    }\n\n    /**\n     * Notifies all connected Services that no Task is currently selected\n     */\n    protected clearCurrentTask(): void {\n        this._taskContentService.task = undefined;\n        this.displayEmptyTaskContent();\n        this._processingTaskChange.off();\n    }\n\n    /**\n     * Updates the state of the current Task from backend\n     */\n    protected updateTaskState(): void {\n        const uniqueTaskIdentifier = this.getUniqueTaskIdentifier();\n        if (uniqueTaskIdentifier === this._reloadedTaskUniqueIdentifier) {\n            this._logger.debug('The currently selected task is already being reloaded. Ignoring reload request.');\n            return;\n        }\n        this._reloadedTaskUniqueIdentifier = uniqueTaskIdentifier;\n        this._taskResourceService.getTasks(this.getTaskFilter()).subscribe(page => {\n            if (hasContent(page)) {\n                if (this._taskContentService.task && this._taskContentService.task.stringId === page.content[0].stringId) {\n                    this._reloadedTaskUniqueIdentifier = undefined;\n                    Object.assign(this._taskContentService.task, page.content[0]);\n                }\n                this.resolveTaskBlockState();\n            }\n        });\n    }\n\n    /**\n     * If the current {@link Task} is assigned to the current user it is unblocked. Otherwise it is blocked.\n     */\n    protected resolveTaskBlockState(): void {\n        const taskShouldBeBlocked = !this._taskContentService.task\n                                    || this._taskContentService.task.user === undefined\n                                    || !this._userComparator.compareUsers(this._taskContentService.task.user);\n        this._taskContentService.blockFields(taskShouldBeBlocked);\n    }\n\n    /**\n     * Sets the noData text in the task content to it's default value\n     */\n    protected setStandardTaskText(): void {\n        this._displayedTaskText$.next();\n    }\n\n    /**\n     * Attempts to cancel the currently opened Task if the Task is in such state that allows cancellation.\n     */\n    ngOnDestroy(): void {\n        if (this.shouldCancelTask) {\n            this._cancel.cancel();\n        }\n        if (this._taskOperations) {\n            this._taskOperations.destroy();\n        }\n    }\n\n    /**\n     * @returns a unique identifier for the currently selected task, that consists of it's case's id and it's transition id.\n     *\n     * Returns `undefined`, if no task is currently selected.\n     */\n    protected getUniqueTaskIdentifier(): string {\n        if (!this._selectedCaseService.selectedCase) {\n            return undefined;\n        }\n        return `${this._selectedCaseService.selectedCase.stringId}#${this.getTransitionId(this._selectedCaseService.selectedCase)}`;\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {LoadingEmitter} from '../../../utility/loading-emitter';\nimport {Observable} from 'rxjs';\n\n@Injectable()\nexport class PublicTaskLoadingService {\n\n    protected _loading$: LoadingEmitter;\n\n    constructor() {\n        this._loading$ = new LoadingEmitter();\n    }\n\n    public get loading$(): Observable<boolean> {\n        return this._loading$.asObservable();\n    }\n\n    public setLoading$(bool: boolean) {\n        this._loading$.next(bool);\n    }\n}\n","import {AfterViewInit, Component, Input, ViewChild} from '@angular/core';\nimport {SideMenuService} from '../../side-menu/services/side-menu.service';\nimport {WorkflowViewService} from './workflow-view.service';\nimport {AbstractHeaderComponent} from '../../header/abstract-header.component';\nimport {AbstractViewWithHeadersComponent} from '../abstract/view-with-headers';\nimport {HeaderType} from '../../header/models/header-type';\nimport {Observable} from 'rxjs';\nimport {Net} from '../../process/net';\nimport {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {ProcessService} from '../../process/process.service';\nimport { ActivatedRoute } from '@angular/router';\nimport {MatDialog} from '@angular/material/dialog';\n\n@Component({\n    selector: 'ncc-abstract-workflow-view',\n    template: ''\n})\nexport abstract class AbstractWorkflowViewComponent extends AbstractViewWithHeadersComponent implements AfterViewInit {\n\n    @Input() public footerSize: number;\n    @Input() showDeleteMenu = false;\n    @ViewChild('header') public workflowHeader: AbstractHeaderComponent;\n\n    public readonly headerType = HeaderType.WORKFLOW;\n    public workflows$: Observable<Array<Net>>;\n    public loading$: Observable<boolean>;\n\n    @ViewChild(CdkVirtualScrollViewport) public viewport: CdkVirtualScrollViewport;\n\n    protected constructor(protected _dialog: MatDialog,\n                          protected _workflowViewService: WorkflowViewService,\n                          protected _log: LoggerService,\n                          protected _processService: ProcessService,\n                          _activatedRoute?: ActivatedRoute) {\n        super(_workflowViewService, _activatedRoute);\n        this.workflows$ = this._workflowViewService.workflows$;\n        this.loading$ = this._workflowViewService.loading$;\n        this.footerSize = 0;\n    }\n\n    ngAfterViewInit(): void {\n        this.initializeHeader(this.workflowHeader);\n    }\n\n    public importSidemenuNet(component) {\n        const dialogRef = this._dialog.open(component, {\n            width: '40%',\n            minWidth: '300px',\n            panelClass: \"dialog-responsive\",\n        });\n        dialogRef.afterClosed().subscribe(event => {\n            if (event.data?.net !== undefined) {\n                this._workflowViewService.reload();\n                if (event.data?.net) {\n                    this._processService.updateNet(new Net(event.data.net));\n                }\n            } else {\n                this._log.debug('');\n            }\n        });\n    }\n\n    public trackBy(i): any {\n        return i;\n    }\n\n    public loadNextPage(): void {\n        if (!this.viewport) {\n            return;\n        }\n        this._workflowViewService.nextPage(this.viewport.getRenderedRange(), this.viewport.getDataLength());\n    }\n\n    protected calculateListHeight(preciseHeight?: number): void {\n        if (!this.viewport) {\n            return;\n        }\n        const element = this.viewport.getElementRef().nativeElement;\n        if (preciseHeight !== null && preciseHeight !== undefined) {\n            element.style.height = preciseHeight + 'px';\n        } else {\n            const viewportHeight = window.innerHeight - element.offsetTop - this.footerSize;\n            if (element.style.height !== viewportHeight + 'px') {\n                this._log.info('Virtual scroll height change to: ' + viewportHeight);\n                element.style.height = viewportHeight + 'px';\n            }\n        }\n    }\n\n}\n","import {Component, EventEmitter, Inject, Input, OnDestroy, Optional, Output} from '@angular/core';\nimport {Observable, Subject, Subscription} from 'rxjs';\nimport {Case} from '../../../../resources/interface/case';\nimport {HeaderColumn} from '../../../../header/models/header-column';\nimport {CaseViewService} from '../../service/case-view-service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {NAE_TAB_DATA} from '../../../../tabs/tab-data-injection-token/tab-data-injection-token';\nimport {InjectedTabData} from '../../../../tabs/interfaces';\nimport {ActivatedRoute} from '@angular/router';\nimport {filter, takeUntil} from 'rxjs/operators';\nimport {TabbedVirtualScrollComponent} from '../../../../panel/abstract/tabbed-virtual-scroll.component';\n\n@Component({\n    selector: 'ncc-abstract-default-case-list',\n    template: ''\n})\nexport abstract class AbstractDefaultCaseListComponent extends TabbedVirtualScrollComponent implements OnDestroy {\n\n    @Input() selectedHeaders$: Observable<Array<HeaderColumn>>;\n    @Input() responsiveBody = true;\n    @Output() caseClick: EventEmitter<Case>;\n    @Input() showCasePanelIcon = true;\n    @Input() showDeleteMenu = false;\n    @Input() textEllipsis = false;\n    @Input() width: string;\n    @Input() redirectEnabled = true;\n\n    public cases$: Observable<Array<Case>>;\n    public loading$: Observable<boolean>;\n    protected redirectCaseId: string;\n    protected _unsubscribe$: Subject<void>;\n    protected _unsub: Subscription;\n    protected _canReload: boolean;\n\n    constructor(protected _caseViewService: CaseViewService,\n                protected _log: LoggerService,\n                @Optional() @Inject(NAE_TAB_DATA) injectedTabData: InjectedTabData,\n                protected route?: ActivatedRoute) {\n        super(injectedTabData);\n        this._unsubscribe$ = new Subject<void>();\n        this.loading$ = this._caseViewService.loading$;\n        this.caseClick = new EventEmitter<Case>();\n        if (injectedTabData !== null) {\n            this._unsub = injectedTabData.tabSelected$.pipe(\n                filter(bool => bool)\n            ).subscribe( () => {\n                if (this._canReload) {\n                    this._caseViewService.reload();\n                } else {\n                    this._canReload = true;\n                }\n            });\n        }\n    }\n\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.caseClick.complete();\n        this._unsubscribe$.complete();\n        if (this._unsub) {\n            this._unsub.unsubscribe();\n        }\n    }\n\n    public onCaseClick(case_: Case) {\n        this.caseClick.emit(case_);\n    }\n\n    public onRedirect() {\n        if (!this.redirectEnabled) {\n            return;\n        }\n\n        this.route.queryParams.pipe(filter(pm => !!pm['caseId'])).subscribe(paramMap => {\n            this.redirectCaseId = paramMap['caseId'];\n            this.cases$.pipe(takeUntil(this._unsubscribe$)).subscribe(cases => {\n                if (cases !== undefined && cases.length > 0) {\n                    const _case = cases.find(c => c.stringId === this.redirectCaseId);\n                    if (_case !== undefined) {\n                        this.caseClick.emit(_case);\n                        this._unsubscribe$.next();\n                    }\n                }\n            });\n        });\n    }\n}\n","import {\n    Component,\n    Inject,\n    Optional,\n    ViewChild\n} from '@angular/core';\nimport {CaseViewService} from '../../service/case-view-service';\nimport {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {NAE_TAB_DATA} from '../../../../tabs/tab-data-injection-token/tab-data-injection-token';\nimport {InjectedTabData} from '../../../../tabs/interfaces';\nimport {ActivatedRoute} from '@angular/router';\nimport {AbstractDefaultCaseListComponent} from '../default-case-list/abstract-default-case-list.component';\n\n@Component({\n    selector: 'ncc-abstract-case-list',\n    template: ''\n})\nexport abstract class AbstractCaseListComponent extends AbstractDefaultCaseListComponent {\n\n    @ViewChild(CdkVirtualScrollViewport) public viewport: CdkVirtualScrollViewport;\n\n    protected constructor(protected _caseViewService: CaseViewService,\n                          protected _log: LoggerService,\n                          @Optional() @Inject(NAE_TAB_DATA) injectedTabData: InjectedTabData,\n                          protected route?: ActivatedRoute) {\n        super(_caseViewService, _log, injectedTabData, route);\n        this.cases$ = this._caseViewService.cases$;\n        this.onRedirect();\n    }\n\n    public trackBy(i): any {\n        return i;\n    }\n\n    public get loadedDataSize(): number {\n        return this.viewport && this.viewport.getDataLength() ? this.viewport.getDataLength() : 0;\n    }\n\n    public loadNextPage(): void {\n        if (!this.viewport) {\n            return;\n        }\n        this._caseViewService.nextPage(this.viewport.getRenderedRange(), this.viewport.getDataLength());\n    }\n}\n","import {Component, Inject, Input, Optional} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {tap} from 'rxjs/operators';\nimport {Case} from '../../../../resources/interface/case';\nimport {CaseViewService} from '../../service/case-view-service';\nimport {LoggerService} from '../../../../logger/services/logger.service';\nimport {NAE_TAB_DATA} from '../../../../tabs/tab-data-injection-token/tab-data-injection-token';\nimport {InjectedTabData} from '../../../../tabs/interfaces';\nimport {AbstractDefaultCaseListComponent} from '../default-case-list/abstract-default-case-list.component';\n\n@Component({\n    selector: 'ncc-abstract-case-list-paginator',\n    template: ''\n})\nexport abstract class AbstractCaseListPaginatorComponent extends AbstractDefaultCaseListComponent {\n\n    public length: number;\n    public pageSize = 20;\n    public pageIndex = 0;\n    public pageSizeOptions: number[] = [10, 20, 50, 100];\n    @Input() public approval: boolean;\n    @Input() public disabled: boolean;\n\n    constructor(protected _caseViewService: CaseViewService,\n                protected _log: LoggerService,\n                @Optional() @Inject(NAE_TAB_DATA) injectedTabData: InjectedTabData,\n                protected route?: ActivatedRoute) {\n        super(_caseViewService, _log, injectedTabData, route);\n        this._caseViewService.nextPagePagination(this.pageSize, this.pageIndex);\n        this._caseViewService.paginationView = true;\n        this.cases$ = this._caseViewService.cases$.pipe(tap(() => {\n            this.length = this._caseViewService.pagination.totalElements;\n            this.pageIndex = this._caseViewService.pagination.number;\n        }));\n        this.onRedirect();\n    }\n\n    public onPageChanged(e) {\n        this.pageIndex = e.pageIndex;\n        this.pageSize = e.pageSize;\n        this._caseViewService.nextPagePagination(this.pageSize, this.pageIndex);\n    }\n\n    public trackById(_index: number, caze: Case) {\n        return caze.stringId;\n    }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {NestedTreeControl} from '@angular/cdk/tree';\nimport {Filter} from '../../../filter/models/filter';\nimport {CaseTreeService} from './case-tree.service';\nimport {CaseTreeNode} from './model/case-tree-node';\nimport {TreePetriflowIdentifiers} from '../model/tree-petriflow-identifiers';\nimport {MatTreeNestedDataSource} from '@angular/material/tree';\nimport {CaseTreePath} from './model/case-tree-path';\n\n@Component({\n    selector: 'ncc-abstract-tree',\n    template: ''\n})\nexport abstract class AbstractTreeComponent {\n\n    /**\n     * `true` is emitted whenever the tree's root node is in it's loading state.\n     *\n     * `false` is emitted when the root node is no longer in the loading state.\n     *\n     * The first value emitted from this Output is `false`, when the tree finishes initializing.\n     *\n     * The root node enters it's loading state when it's children are being loaded.\n     */\n    @Output() treeRootLoading = new EventEmitter<boolean>();\n\n    /**\n     * `true` is emitted whenever the tree's root node is adding a new child node.\n     *\n     * `false` is emitted when the root node is no longer adding a new child node.\n     *\n     * The first value emitted from this Output is `false`, when the tree finishes initializing.\n     *\n     * No further calls to add a child node should be made, while a child is being added.\n     */\n    @Output() treeRootAddingChild = new EventEmitter<boolean>();\n\n    protected constructor(protected _treeService: CaseTreeService) {\n        this._treeService.treeRootLoaded$.subscribe(success => {\n            if (success) {\n                this._treeService.rootNodeLoading$.subscribe(loading => {\n                    this.treeRootLoading.emit(loading);\n                });\n                this._treeService.rootNodeAddingChild$.subscribe(addingChild => {\n                    this.treeRootAddingChild.emit(addingChild);\n                });\n            }\n        });\n    }\n\n    /**\n     * The {@link Filter} that determines the root node of the tree.\n     *\n     * The tree can only have one root. If more than one case is returned by the Filter.\n     * The first result will be used as the tree root.\n     *\n     * If you want to have multiple nodes in the first level checkout the [showTreeRoot]{@link AbstractTreeComponent#showTreeRoot} property.\n     * @param filter Case Filter that determines the tree root\n     */\n    @Input() set filter(filter: Filter) {\n        this._treeService.rootFilter = filter;\n    }\n\n    /**\n     * Whether the tree root should be displayed as a node or not.\n     *\n     * `true` displays the root as the only node in the first level.\n     *\n     * `false` displays the root's child nodes in the first level.\n     *\n     * If you want to add more children while the root is hidden use the [addRootChildNode]\n     * {@link AbstractTreeComponent#addRootChildNode} method.\n     * @param showTreeRoot whether the root node should be displayed in the tree or not\n     */\n    @Input() set showTreeRoot(showTreeRoot: boolean) {\n        this._treeService.treeRootLoaded$.subscribe(success => {\n            if (success) {\n                this._treeService.initializeTree(showTreeRoot);\n            }\n        });\n    }\n\n    /**\n     * Weather the tree is eager loaded or not.\n     *\n     * Defaults to `false`.\n     *\n     * It is not recommended to eager load large trees as each node sends a separate backend request to load its data.\n     *\n     * @param eager the new setting for eager loading\n     */\n    @Input() set eagerLoaded(eager: boolean) {\n        this._treeService.isEagerLoaded = eager;\n    }\n\n    /**\n     * @ignore\n     */\n    public get dataSource(): MatTreeNestedDataSource<CaseTreeNode> {\n        return this._treeService.dataSource;\n    }\n\n    /**\n     * @ignore\n     */\n    public get treeControl(): NestedTreeControl<CaseTreeNode> {\n        return this._treeService.treeControl;\n    }\n\n    /**\n     * @ignore\n     */\n    hasChild = (_: number, node: CaseTreeNode) => {\n        const childrenCaseRef = node.case.immediateData.find(data => data.stringId === TreePetriflowIdentifiers.CHILDREN_CASE_REF);\n        return !!childrenCaseRef && !!childrenCaseRef.value && childrenCaseRef.value.length > 0;\n    }\n\n    /**\n     * @ignore\n     */\n    caseNodeClicked(node: CaseTreeNode) {\n        this._treeService.changeActiveNode(node);\n    }\n\n    /**\n     * @ignore\n     */\n    toggleCaseNode(event: Event, node: CaseTreeNode) {\n        event.stopPropagation();\n        this._treeService.toggleNode(node);\n    }\n\n    /**\n     * @ignore\n     */\n    selectedCaseNode(node: CaseTreeNode) {\n        return node === this._treeService.currentNode;\n    }\n\n    /**\n     * Adds a child to the root node.\n     *\n     * Useful if you set the [showTreeRoot]{@link AbstractTreeComponent#showTreeRoot} property to `false`.\n     */\n    public addRootChildNode(): void {\n        this._treeService.addRootChildNode();\n    }\n\n    /**\n     * Expands all nodes in the tree dictated by the argument.\n     *\n     * @param path nodes that should be expanded along with their path from the root node\n     */\n    public expandPath(path: CaseTreePath): void {\n        this._treeService.expandPath(path);\n    }\n}\n","import {Component, Input} from '@angular/core';\nimport {CaseTreeService} from '../case-tree.service';\nimport {CaseTreeNode} from '../model/case-tree-node';\n\n@Component({\n    selector: 'ncc-abstract-add-child-node',\n    template: ''\n})\nexport abstract class AbstractAddChildNodeComponent {\n\n    @Input() node: CaseTreeNode;\n\n    constructor(protected _treeService: CaseTreeService) {\n    }\n\n    public addChild(event: Event): void {\n        event.stopPropagation();\n        this._treeService.addChildNode(this.node);\n    }\n}\n","import {Component, Input} from '@angular/core';\nimport {CaseTreeNode} from '../model/case-tree-node';\nimport {CaseTreeService} from '../case-tree.service';\n\n@Component({\n    selector: 'ncc-abstract-remove-node',\n    template: ''\n})\nexport abstract class AbstractRemoveNodeComponent {\n\n    @Input() node: CaseTreeNode;\n\n    constructor(protected _treeService: CaseTreeService) {\n    }\n\n    public removeNode(event: Event): void {\n        event.stopPropagation();\n        this._treeService.removeNode(this.node);\n    }\n\n}\n","import {AfterViewInit, Component, Input} from '@angular/core';\nimport {TaskContentService} from '../../../task-content/services/task-content.service';\nimport {AssignTaskService} from '../../../task/services/assign-task.service';\nimport {TaskEventService} from '../../../task-content/services/task-event.service';\nimport {CancelTaskService} from '../../../task/services/cancel-task.service';\nimport {FinishTaskService} from '../../../task/services/finish-task.service';\nimport {TreeTaskContentService} from './tree-task-content.service';\nimport {Observable} from 'rxjs';\nimport {PermissionService} from '../../../authorization/permission/permission.service';\n\n@Component({\n    selector: 'ncc-abstract-tree-task-content',\n    template: ''\n})\nexport abstract class AbstractTreeTaskContentComponent implements AfterViewInit {\n\n    @Input() public displayTaskControlButtons = true;\n\n    constructor(protected _treeTaskContentService: TreeTaskContentService,\n                protected _taskEventService: TaskEventService,\n                protected _assign: AssignTaskService,\n                protected _cancel: CancelTaskService,\n                protected _finish: FinishTaskService,\n                protected _taskContentService: TaskContentService,\n                protected _permissionService: PermissionService) {\n    }\n\n    ngAfterViewInit(): void {\n        setTimeout(() => {\n            this._treeTaskContentService.displayEmptyTaskContent();\n        });\n    }\n\n    public canAssign(): boolean {\n        return this._permissionService.canAssign(this._taskContentService.task);\n    }\n\n    public canCancel(): boolean {\n        return this._permissionService.canCancel(this._taskContentService.task);\n    }\n\n    public canFinish(): boolean {\n        return this._permissionService.canFinish(this._taskContentService.task);\n    }\n\n    public assign(): void {\n        this._assign.assign();\n    }\n\n    public cancel(): void {\n        this._cancel.cancel();\n    }\n\n    public finish(): void {\n        this._finish.validateDataAndFinish();\n    }\n\n    public getAssignTitle(): string {\n        return this._taskContentService.task.assignTitle ? this._taskContentService.task.assignTitle : 'tasks.view.assign';\n    }\n\n    public getCancelTitle(): string {\n        return this._taskContentService.task.cancelTitle ? this._taskContentService.task.cancelTitle : 'tasks.view.cancel';\n    }\n\n    public getFinishTitle(): string {\n        return this._taskContentService.task.finishTitle ? this._taskContentService.task.finishTitle : 'tasks.view.finish';\n    }\n\n    public get processingTaskChange(): boolean {\n        return this._treeTaskContentService.processingTaskChange;\n    }\n\n    public get taskContentText$(): Observable<string> {\n        return this._treeTaskContentService.taskContentText$;\n    }\n}\n","import {Component, EventEmitter, Inject, Input, OnDestroy, Output} from '@angular/core';\nimport {AbstractViewWithHeadersComponent} from '../abstract/view-with-headers';\nimport {Observable, Subscription} from 'rxjs';\nimport {TaskPanelData} from '../../panel/task-panel-list/task-panel-data/task-panel-data';\nimport {TaskViewService} from './service/task-view.service';\nimport {ActivatedRoute} from '@angular/router';\nimport {BaseFilter} from \"../../search/models/base-filter\";\nimport {SimpleFilter} from \"../../filter/models/simple-filter\";\nimport {TaskSearchRequestBody} from \"../../filter/models/task-search-request-body\";\nimport {NAE_BASE_FILTER} from \"../../search/models/base-filter-injection-token\";\nimport {map, tap} from \"rxjs/operators\";\n\nexport class TaskConst {\n    public static readonly TRANSITION_ID = 'transitionId';\n}\n\n@Component({\n    selector: 'ncc-abstract-single-task-view',\n    template: ''\n})\nexport abstract class AbstractSingleTaskViewComponent extends AbstractViewWithHeadersComponent implements OnDestroy {\n\n    @Input() initiallyExpanded: boolean = true;\n    @Input() preventCollapse: boolean = true;\n    @Output() noTaskPresent: EventEmitter<void>;\n    public taskPanelData: Observable<TaskPanelData>;\n    public loading$: Observable<boolean>;\n    protected transitionId: string;\n    protected subRoute: Subscription | undefined;\n    protected subPanelData: Subscription | undefined;\n    protected subLoading: Subscription | undefined;\n\n    protected constructor(protected taskViewService: TaskViewService,\n                          activatedRoute: ActivatedRoute,\n                          @Inject(NAE_BASE_FILTER) protected baseFilter: BaseFilter) {\n        super(taskViewService, activatedRoute);\n        this.noTaskPresent = new EventEmitter<void>();\n        this.taskPanelData = this.taskViewService.tasks$.pipe(\n            map<TaskPanelData[], TaskPanelData>(tasks => tasks.find(\n                panelData => this.isTaskMatchingFilter(panelData, (baseFilter.filter as SimpleFilter).getRequestBody())))\n        ).pipe(\n            tap(panelData => {\n                if (!!panelData) {\n                    panelData.initiallyExpanded = true\n                }\n            })\n        );\n        this.loading$ = this.taskViewService.loading$;\n    }\n\n    ngOnDestroy() {\n        super.ngOnDestroy();\n        if (!!this.subRoute) {\n            this.subRoute.unsubscribe();\n        }\n        if (!!this.subPanelData) {\n            this.subPanelData.unsubscribe();\n        }\n    }\n\n    get task$(): Observable<TaskPanelData> {\n        return this.taskPanelData;\n    }\n\n    protected isTaskMatchingFilter(panelData: TaskPanelData, taskSearchRequestBody: TaskSearchRequestBody): boolean {\n        return panelData.task.stringId === taskSearchRequestBody.stringId || panelData.task.transitionId === taskSearchRequestBody.transitionId;\n    }\n}\n","/* INTERFACES */\nexport * from './case-view/models/case-view-params';\nexport * from './case-view/models/case-page-load-request-result';\nexport * from './case-view/models/new-case-configuration';\nexport * from './task-view/models/task-view-params';\nexport * from './task-view/models/injected-tabbed-task-view-data';\nexport * from './task-view/models/task-page-load-request-result';\nexport * from './task-view/models/task-view-configuration';\nexport * from './tree-case-view/tree-component/model/case-tree-node';\nexport * from './tree-case-view/tree-component/model/case-tree-path';\nexport * from './tree-case-view/tree-component/model/expansion-tree';\nexport * from './tree-case-view/tree-component/model/tree-case-view-configuration';\nexport * from './abstract/netgrif-paginator-intl';\n\n/* ENUMS */\nexport * from './tree-case-view/model/tree-petriflow-identifiers';\nexport * from './task-view/models/task-endpoint';\n\n/* CLASSES */\nexport * from './case-view/abstract-case-view';\nexport * from './case-view/tabbed-case-view';\n\nexport * from './task-view/abstract-task-view';\nexport * from './task-view/tabbed-task-view';\n\nexport * from './abstract/view-with-headers';\nexport * from './abstract/sortable-view';\nexport * from './abstract/page-load-request-context';\n\n/* INJECTION TOKENS */\nexport * from './case-view/models/autoswitch-token'\nexport * from './case-view/models/open-existing-tab-token'\nexport * from './case-view/models/new-case-configuration-injection-token';\nexport * from './task-view/models/injection-token-task-endpoint';\nexport * from './task-view/models/task-view-configuration-injection-token';\nexport * from './workflow-view/models/injection-token-workflow-service';\nexport * from './tree-case-view/tree-component/model/tree-configuration-injection-token';\nexport * from './task-view/models/injection-token-task-force-open';\n\n/* SERVICES */\nexport * from './case-view/service/case-view-service';\n\nexport * from './task-view/service/task-view.service';\n\nexport * from './workflow-view/workflow-view.service';\n\nexport * from './tree-case-view/tree-case-view.service';\nexport * from './tree-case-view/tree-component/case-tree.service';\nexport * from './tree-case-view/tree-task-content/tree-task-content.service';\nexport * from './task-view/service/public-task-loading.service';\n\n/* COMPONENTS */\nexport * from './workflow-view/abstract-workflow-view.component';\nexport * from './case-view/components/case-list/abstract-case-list.component';\nexport * from './case-view/components/case-list-paginator/abstract-case-list-paginator.component';\nexport * from './tree-case-view/tree-component/abstract-tree.component';\nexport * from './tree-case-view/tree-component/add-child-node/abstract-add-child-node.component';\nexport * from './tree-case-view/tree-component/remove-node/abstract-remove-node.component';\nexport * from './tree-case-view/tree-task-content/abstract-tree-task-content.component';\nexport * from './task-view/abstract-single-task-view.component';\n","import { Injectable } from '@angular/core';\nimport {ProcessService} from './process.service';\nimport {PublicPetriNetResourceService} from '../resources/engine-endpoint/public/public-petri-net-resource.service';\nimport {LoggerService} from '../logger/services/logger.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PublicProcessService extends ProcessService {\n    constructor(private _publicPetriNetResource: PublicPetriNetResourceService, private _logger: LoggerService) {\n        super(_publicPetriNetResource, _logger);\n    }\n}\n","import {DashboardSingleData} from './dashboard-single-data';\n\nexport class DashboardMultiData {\n\n    constructor(public name: string, public series: Array<DashboardSingleData>) {\n    }\n}\n","export class DashboardSingleData {\n\n    constructor(public name: string, public value: number) {\n    }\n}\n","import {Component, Injector, Input, OnDestroy, OnInit} from '@angular/core';\nimport {CountCard} from '../model/count-card';\nimport {CountService} from '../../../resources/abstract-endpoint/count-service';\nimport {Filter} from '../../../filter/models/filter';\nimport {FilterType} from '../../../filter/models/filter-type';\nimport {CaseResourceService} from '../../../resources/engine-endpoint/case-resource.service';\nimport {TaskResourceService} from '../../../resources/engine-endpoint/task-resource.service';\nimport {SimpleFilter} from '../../../filter/models/simple-filter';\nimport {Subscription} from 'rxjs';\n\n@Component({\n    selector: 'ncc-abstract-count-card',\n    template: ''\n})\nexport abstract class AbstractCountCardComponent implements OnInit, OnDestroy {\n\n    @Input() public card: CountCard;\n    protected _countService: CountService;\n    protected _filter: Filter;\n    public loading: boolean;\n    public count: number;\n    protected subCount: Subscription;\n\n    constructor(protected _injector: Injector) {\n        this.loading = true;\n    }\n\n    ngOnInit(): void {\n        this.resolveFilter();\n        this.resolveResourceService();\n        this.subCount = this._countService.count(this._filter).subscribe(result => {\n            this.count = result.count;\n            this.loading = false;\n        });\n    }\n\n    private resolveResourceService(): void {\n        switch (this._filter.type) {\n            case FilterType.CASE:\n                this._countService = this._injector.get(CaseResourceService);\n                break;\n            case FilterType.TASK:\n                this._countService = this._injector.get(TaskResourceService);\n                break;\n        }\n    }\n\n    private resolveFilter(): void {\n        this._filter = new SimpleFilter('', this.card.resourceType, this.card.filter);\n    }\n\n    ngOnDestroy(): void {\n        this.subCount.unsubscribe();\n    }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\nimport {IframeCard} from '../model/iframe-card';\n\n@Component({\n    selector: 'ncc-abstract-iframe-card',\n    template: ''\n})\nexport abstract class AbstractIframeCardComponent implements OnInit {\n\n    @Input() public card: IframeCard;\n    public sanitizedURL: SafeResourceUrl;\n\n    constructor(protected _sanitizer: DomSanitizer) {\n    }\n\n    ngOnInit(): void {\n        // TODO SECURITY 11.4.2020 - better sanitization\n        this.sanitizedURL =  this._sanitizer.bypassSecurityTrustResourceUrl(this.card.url);\n    }\n}\n","import {Component, Injector, Input, OnDestroy, OnInit} from '@angular/core';\nimport {Filter} from '../../../filter/models/filter';\nimport {CustomCard} from '../model/custom-dashboard-model/custom-card';\nimport {DashboardResourceService} from '../../../resources/engine-endpoint/dashboard-resource.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {LoadingEmitter} from '../../../utility/loading-emitter';\nimport {DashboardSingleData} from '../model/custom-dashboard-model/dashboard-single-data';\nimport {DashboardMultiData} from '../model/custom-dashboard-model/dashboard-multi-data';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {AggregationResult} from '../model/custom-dashboard-model/aggregation-result';\nimport {Color} from \"@swimlane/ngx-charts\";\n\n@Component({\n    selector: 'ncc-abstract-custom-card',\n    template: ''\n})\nexport abstract class AbstractCustomCardComponent implements OnInit, OnDestroy {\n\n    @Input() public card: CustomCard;\n    protected _filter: Filter;\n    public loading: LoadingEmitter;\n\n    public count: number;\n    public value: number;\n\n    @Input() public single: Array<DashboardSingleData>;\n    public multi: Array<DashboardMultiData>;\n\n    public showLegend = true;\n    public showLabels = true;\n    public animations = true;\n    public xAxis = true;\n    public yAxis = true;\n    public showYAxisLabel = true;\n    public showXAxisLabel = true;\n    public gradient = true;\n    public colorScheme = {\n        domain: ['#5AA454', '#E44D25', '#CFC0BB', '#7aa3e5',\n            '#a8385d', '#aae3f5', '#cfeacd', '#25e491',\n            '#a10ed6', '#b9c9e3', '#a8385d', '#aae3f5',\n            '#bbbfbf', '#e7a897', '#854618', '#7aa3e5',\n            '#a8385d', '#0db8ee']\n    } as Color;\n\n    protected constructor(protected _injector: Injector,\n                          protected resourceService: DashboardResourceService,\n                          protected translateService: TranslateService,\n                          protected loggerService: LoggerService) {\n        this.loading = new LoadingEmitter();\n        this.single = new Array<DashboardSingleData>();\n        this.multi = new Array<DashboardMultiData>();\n        this.value = 0;\n        this.count = 0;\n    }\n\n    ngOnInit(): void {\n        this.card.units = this.translateService.instant('dashboard.' + this.card.units);\n        this.resourceService.getDashboardData(this.getResourceTypeAsString(), this.card.query).subscribe(json  => {\n            this.convertData(json);\n        }, error => {\n            this.loggerService.error('Error occurred when calling dashboard resource service');\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.loading.complete();\n    }\n\n    public getResourceTypeAsString(): string {\n        return this.card.resourceType.toLowerCase();\n    }\n\n    public abstract convertData(json: AggregationResult): void;\n\n}\n","import {GridElement} from './grid-element';\n\nexport class GridFiller {\n    public isIntentional = true;\n\n    constructor(private start: number, private end: number) { }\n\n    fillersAfterCover(start: number, end: number): Array<GridFiller> {\n        this.isIntentional = false;\n        if (this.start < start) {\n            if (end < this.end) {\n                // split the filler into two\n                const rightHalf = new GridFiller(end + 1, this.end);\n                this.end = start - 1;\n                rightHalf.isIntentional = false;\n                return [this, rightHalf];\n            } else {\n                // end might be cut-off\n                this.end = Math.min(this.end, start - 1);\n                return [this];\n            }\n        } else {\n            if (end < this.end) {\n                // start might be cut-off\n                this.start = Math.max(this.start, end + 1);\n                return [this];\n            } else {\n                // entire filler is covered\n                return [];\n            }\n        }\n    }\n\n    convertToGridElement(y: number): GridElement {\n        return {\n            type: 'blank',\n            layout: {\n                x: this.start,\n                y,\n                rows: 1,\n                cols: this.end - this.start + 1\n            }\n        };\n    }\n\n    isFullWidth(width: number): boolean {\n        return this.start === 0 && this.end === width - 1;\n    }\n}\n","import {GridFiller} from './model/grid-filler';\nimport {GridElementWithItem} from './model/grid-element-with-item';\nimport {GridElement} from './model/grid-element';\nimport {LoggerService} from '../../logger/services/logger.service';\n\nexport class GridLayoutHelper {\n\n    constructor(private _log: LoggerService) {\n    }\n\n    private static addGridRows(grid: Array<Array<GridFiller>>, newRowCount: number, columnCount: number): void {\n        while (grid.length < newRowCount) {\n            grid.push(GridLayoutHelper.newGridRow(columnCount));\n        }\n    }\n\n    private static newGridRow(cols: number): Array<GridFiller> {\n        return [new GridFiller(0, cols - 1)];\n    }\n\n    public fillBlankSpace(gridElements: Array<GridElement>,\n                          columnCount: number,\n                          elementVisibilityCondition: (element: any) => boolean = () => true): Array<GridElementWithItem<unknown>> {\n        const grid: Array<Array<GridFiller>> = [];\n\n        gridElements.forEach(element => {\n            const elementRowEnd = element.layout.y + element.layout.rows - 1;\n            const elementColEnd = element.layout.x + element.layout.cols - 1;\n            if (elementRowEnd >= grid.length) {\n                GridLayoutHelper.addGridRows(grid, elementRowEnd + 1, columnCount);\n            }\n            for (let row = element.layout.y; row <= elementRowEnd; row++) {\n                if (!elementVisibilityCondition(element)) {\n                    for (const filler of grid[row]) {\n                        filler.isIntentional = false;\n                    }\n                } else {\n                    const newFillers = [];\n                    for (const filler of grid[row]) {\n                        newFillers.push(...filler.fillersAfterCover(element.layout.x, elementColEnd));\n                    }\n                    grid[row] = newFillers;\n                }\n            }\n        });\n\n        const result: Array<GridElementWithItem<unknown>> = gridElements.filter(element => elementVisibilityCondition(element))\n            .map(element => ({\n                item: element,\n                type: element.type,\n                layout: element.layout\n            }));\n        let encounteredFirst = false;\n        for (let y = grid.length - 1; y >= 0; y--) {\n            const row = grid[y];\n            if (row.length === 0) {\n                encounteredFirst = true;\n            }\n            row.forEach(filler => {\n                if (!encounteredFirst && !filler.isFullWidth(columnCount)) {\n                    encounteredFirst = true;\n                }\n                if (encounteredFirst && (filler.isIntentional || !filler.isFullWidth(columnCount))) {\n                    result.push(filler.convertToGridElement(y));\n                }\n            });\n        }\n\n        return result.sort((a, b) => {\n            if (a.layout.y < b.layout.y) {\n                return -1;\n            } else if (a.layout.y > b.layout.y) {\n                return 1;\n            }\n            if (a.layout.x < b.layout.x) {\n                return -1;\n            } else if (a.layout.x > b.layout.x) {\n                return 1;\n            }\n            this._log.warn('Two elements in grid layout have the same X and Y coordinates! Make sure your data is valid.');\n            return 0;\n        });\n    }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {DashboardParams} from './dashboard-params';\nimport {DashboardCardTypes} from '../cards/model/dashboard-card-types';\nimport {CardGridElement} from '../cards/model/card-grid-element';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {GridLayoutHelper} from '../../utility/grid-layout/grid-layout-helper';\nimport {ComponentPortal} from '@angular/cdk/portal';\n\n@Component({\n    selector: 'ncc-abstract-dashboard-content',\n    template: ''\n})\nexport abstract class AbstractDashboardContentComponent implements OnInit {\n\n    @Input() public params: DashboardParams;\n    @Input() public portalComponent: ComponentPortal<any>;\n    public readonly cardTypes = DashboardCardTypes;\n    public gridElements: Array<CardGridElement>;\n\n    protected constructor(protected _log: LoggerService) {\n        this.gridElements = [];\n    }\n\n    ngOnInit(): void {\n        const gridLayoutHelper = new GridLayoutHelper(this._log);\n        this.gridElements = gridLayoutHelper.fillBlankSpace(this.params.cards, this.params.columns) as Array<CardGridElement>;\n    }\n}\n","/* INTERFACES */\nexport * from './dashboard-content/dashboard-params';\nexport * from './cards/model/custom-dashboard-model/aggregation-query';\nexport * from './cards/model/custom-dashboard-model/aggregation-result';\n\nexport * from './cards/model/dashboard-card';\nexport * from './cards/model/count-card';\nexport * from './cards/model/graph-card';\nexport * from './cards/model/iframe-card';\nexport * from './cards/model/custom-dashboard-model/custom-card';\n\nexport * from './cards/model/custom-dashboard-model/dashboard-multi-data';\nexport * from './cards/model/custom-dashboard-model/dashboard-single-data';\nexport * from './cards/model/custom-dashboard-model/dashboard-event-content';\n\n/* ENUMS */\nexport * from './cards/model/dashboard-card-types';\n\n/* COMPONENT */\nexport * from './cards/count-card/abstract-count-card';\nexport * from './cards/iframe-card/abstract-iframe-card';\nexport * from './cards/custom-card/abstract-custom-card';\nexport * from './dashboard-content/abstract-dashboard-content';\n\n\n","import {InjectionToken} from '@angular/core';\nimport {Filter} from './filter';\n\n/**\n * Used for providing any additional constraints to the filter case filtering, when\n * user filters are loaded via the {@link UserFiltersService}.\n *\n * The provided filter must be of type `Case` as it is used for the filtering of cases representing saved user filters.\n */\nexport const NAE_FILTERS_FILTER = new InjectionToken<Filter>('NaeFiltersFilter');\n","/* SERVICES */\nexport * from './filter.repository';\nexport * from './user-filters.service';\n\n/* CLASSES */\nexport * from './models/filter';\nexport * from './models/simple-filter';\nexport * from './models/merged-filter';\n\n/* ENUMS */\nexport * from './models/merge-operator';\nexport * from './models/filter-type';\nexport * from './models/user-filter-constants';\n\n/* INTERFACES */\nexport * from './models/case-search-request-body';\nexport * from './models/task-search-request-body';\nexport * from './models/merged-filter-params';\n\n/* TOKENS */\nexport * from './models/filters-filter-injection-token';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GenericSnackBarComponent} from './components/generic-snack-bar/generic-snack-bar.component';\nimport {MaterialModule} from '../material/material.module';\nimport {WarningSnackBarComponent} from './components/warning-snack-bar/warning-snack-bar.component';\nimport {ErrorSnackBarComponent} from './components/error-snack-bar/error-snack-bar.component';\nimport {SuccessSnackBarComponent} from './components/success-snack-bar/success-snack-bar.component';\nimport {FlexLayoutModule, FlexModule} from '@angular/flex-layout';\n\n\n@NgModule({\n    declarations: [\n        GenericSnackBarComponent,\n        WarningSnackBarComponent,\n        ErrorSnackBarComponent,\n        SuccessSnackBarComponent\n    ],\n    imports: [\n        CommonModule,\n        MaterialModule,\n        FlexLayoutModule,\n        FlexModule\n    ]\n})\nexport class SnackBarModule {\n}\n","// COMPONENTS\nexport * from './models/abstract-snack-bar.component';\nexport * from './components/generic-snack-bar/generic-snack-bar.component';\nexport * from './components/success-snack-bar/success-snack-bar.component';\nexport * from './components/warning-snack-bar/warning-snack-bar.component';\nexport * from './components/error-snack-bar/error-snack-bar.component';\n\n// MODULES\nexport * from './snack-bar.module';\n\n// SERVICES\nexport * from './services/snack-bar.service';\n\n// MODELS\nexport * from './models/snack-bar-injection-data';\nexport * from './models/injection-token-snackbar';\nexport * from './models/snack-bar-enums';\n","import {Predicate} from './predicate';\nimport {Query} from '../query/query';\nimport {BooleanOperator} from '../boolean-operator';\n\n/**\n * Represents a clause of {@link Predicate}s combined with a {@link BooleanOperator}.\n */\nexport class ClausePredicate extends Predicate {\n\n    /**\n     * Stores the {@link Predicate}s that this Predicate combines.\n     */\n    protected _predicates: Array<Predicate>;\n    /**\n     * Stores the resulting query of this Predicate.\n     */\n    protected _query: Query;\n\n    /**\n     * @param predicates Predicates that should be combined into one\n     * @param _operator Operator that is used to combine the predicates\n     * @param initiallyVisible whether the predicate should be initially displayed or not\n     * @param _bracketSubPredicateText whether the individual sub predicates are wrapped in brackets when a textual representation\n     * is generated\n     */\n    constructor(predicates: Array<Predicate>,\n                protected _operator: BooleanOperator,\n                initiallyVisible = true,\n                protected _bracketSubPredicateText = false) {\n        super(initiallyVisible);\n        this._predicates = [];\n        this._predicates.push(...predicates);\n        this.updateQuery();\n        this.initializeFilterTextSegmentsGenerator();\n    }\n\n    get query(): Query {\n        return this._query;\n    }\n\n    /**\n     * Adds another {@link Predicate} to the clause and updates this {@link Predicate}'s {@link Query}.\n     * @param newPredicate - the Predicate that should be added to the clause\n     * @returns the index of the added Predicate, that can be used to remove it.\n     * Note that removing predicates with a lower index shifts the order of indices.\n     */\n    public addPredicate(newPredicate: Predicate): number {\n        this._predicates.push(newPredicate);\n        this.updateQuery();\n        return this._predicates.length - 1;\n    }\n\n    /**\n     * Removes the {@link Predicate} at the given `index` from this clause and updates this {@link Predicate}'s {@link Query}.\n     * If the `index` is invalid does nothing.\n     * @param index index of the {@link Predicate} in this clause that should be removed\n     * @returns whether a predicate was removed, or not\n     */\n    public removePredicate(index: number): boolean {\n        if (index >= 0 && index < this._predicates.length) {\n            this._predicates.splice(index, 1);\n            this.updateQuery();\n            return true;\n        }\n        return false;\n    }\n\n    /**\n     * Sets this predicate and all its sub-predicates to visible.\n     */\n    public showAll(): void {\n        this.show();\n        this._predicates.forEach(p => p.show());\n    }\n\n    /**\n     * Updates the value of the [_query]{@link ClausePredicate#_query} attribute.\n     *\n     * See [combineQueries()]{@link Query#combineQueries} for more information.\n     */\n    protected updateQuery(): void {\n        this._query = Query.combineQueries(this.queries, this._operator);\n    }\n\n    /**\n     * @returns the `Array` of {@link Query} objects stored within this object's [_predicates]{@link ClausePredicate#_predicates} attribute.\n     */\n    protected get queries(): Array<Query> {\n        return this._predicates.map(p => p.query);\n    }\n\n    private initializeFilterTextSegmentsGenerator() {\n        this._filterTextSegmentsGenerator = () => {\n            return Predicate.combineTextSegmentsWithBooleanOperator(this._predicates, this._operator, this._bracketSubPredicateText);\n        };\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\n\n/**\n * This service is used to signal to inputs in advanced search components, whether they should autofocus, or not.\n *\n * The inputs should autofocus, when the user interacts with them, but should not auto focus if the first empty predicate is created on\n * advanced search component initialization.\n */\n@Injectable()\nexport class AdvancedSearchComponentInitializationService implements OnDestroy {\n\n    protected _initialized: LoadingEmitter;\n\n    constructor() {\n        this._initialized = new LoadingEmitter(false);\n    }\n\n    ngOnDestroy(): void {\n        this._initialized.complete();\n    }\n\n    /**\n     * @returns `false` until the [completeInitialization()]{@link AdvancedSearchComponentInitializationService#completeInitialization}\n     * method is called. Returns `true` afterwards.\n     */\n    public get isInitialized(): boolean {\n        return this._initialized.isActive;\n    }\n\n    /**\n     * Changes the state to `initialized`.\n     */\n    public completeInitialization(): void {\n        this._initialized.on();\n    }\n}\n","import {InjectionToken} from '@angular/core';\nimport {SearchComponentConfiguration} from './search-component-configuration';\n\n/**\n * Contains configuration of the [SearchComponent]{@link AbstractSearchComponent} that injects them.\n *\n * The component can be also configured by component inputs.\n */\nexport const NAE_SEARCH_COMPONENT_CONFIGURATION = new InjectionToken<SearchComponentConfiguration>('NaeSearchComponentConfiguration');\n","import {InjectionToken, Type} from '@angular/core';\nimport {Category} from '../models/category/category';\n\n/**\n * Contains the search categories that can be used with the [SearchComponent]{@link AbstractSearchComponent} that injects them.\n *\n * The search component is universal and the categories provided with this token are what determines what query objects\n * are going to be constructed.\n *\n * The token content with the type `Array<Category<any>>` has been deprecated in 5.6.0 in favor of the new type `Array<Type<Category<any>>>`\n * but remains for backwards-compatibility.\n */\nexport const NAE_SEARCH_CATEGORIES = new InjectionToken<Array<Category<any>> | Array<Type<Category<any>>>>('NaeSearchCategories');\n\n/**\n * Contains a list of classes that represent the default case search categories.\n *\n * The default search categories can be overridden by providing this injection token with a new set of categories in the `AppComponent`.\n */\nexport const NAE_DEFAULT_CASE_SEARCH_CATEGORIES = new InjectionToken<Array<Type<Category<any>>>>('NaeDefaultCaseSearchCategories');\n\n/**\n * Contains a list of classes that represent the default task search categories.\n *\n * The default search categories can be overridden by providing this injection token with a new set of categories in the `AppComponent`.\n */\nexport const NAE_DEFAULT_TASK_SEARCH_CATEGORIES = new InjectionToken<Array<Type<Category<any>>>>('NaeDefaultTaskSearchCategories');\n","import {SearchService} from '../search-service/search.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {DialogService} from '../../dialog/services/dialog.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {NAE_SEARCH_COMPONENT_CONFIGURATION} from '../models/component-configuration/search-component-configuration-injection-token';\nimport {Component, EventEmitter, Inject, Input, OnInit, Optional, Output, Type} from '@angular/core';\nimport {SearchComponentConfiguration} from '../models/component-configuration/search-component-configuration';\nimport {SearchMode} from '../models/component-configuration/search-mode';\nimport {UserFiltersService} from '../../filter/user-filters.service';\nimport {AllowedNetsService} from '../../allowed-nets/services/allowed-nets.service';\nimport {NAE_SEARCH_CATEGORIES} from '../category-factory/search-categories-injection-token';\nimport {Category} from '../models/category/category';\nimport {SavedFilterMetadata} from '../models/persistance/saved-filter-metadata';\nimport {ViewIdService} from '../../user/services/view-id.service';\nimport {NAE_FILTERS_FILTER} from '../../filter/models/filters-filter-injection-token';\nimport {Filter} from '../../filter/models/filter';\nimport {TaskSetDataRequestFields} from '../../resources/interface/task-set-data-request-body';\nimport {NAE_NAVIGATION_ITEM_TASK_DATA} from '../../navigation/model/filter-case-injection-token';\nimport {DataGroup} from '../../resources/interface/data-groups';\n\n/**\n * A universal search component that can be used to interactively create search predicates for anything with supported categories.\n *\n * This component is responsible for the interactive creation of an AND {@link ClausePredicate} object instance.\n * The nested Predicates are OR {@link ClausePredicate} instances created by {@link AbstractSearchClauseComponent}.\n *\n * Search categories must be provided by the {@link NAE_SEARCH_CATEGORIES} injection token.\n * Default factory methods for [task]{@link defaultTaskSearchCategoriesFactory} and\n * [case]{@link defaultCaseSearchCategoriesFactory} search categories exist. See their documentation for more information.\n *\n * The search component's visuals can be configured either by the {@link NAE_SEARCH_COMPONENT_CONFIGURATION} injection token,\n * or by the appropriate component inputs. The injection token configuration takes precedence over the inputs if both are present.\n */\n@Component({\n    selector: 'ncc-abstract-search',\n    template: ''\n})\nexport abstract class AbstractSearchComponent implements SearchComponentConfiguration, OnInit {\n\n    public advancedSearchDisplayed;\n\n    private _showSearchIcon = true;\n    private _showSearchToggleButton = true;\n    private _showAdvancedSearchHelp = true;\n    private _showSaveFilterButton = true;\n    private _showLoadFilterButton = true;\n    private _initialSearchMode = SearchMode.FULLTEXT;\n\n    @Input() public disabled: boolean;\n    /**\n     * Set data request body, that is sent to the filter in addition to the default body.\n     * The default body is applied first and can be overridden by this argument.\n     */\n    @Input() additionalFilterData: TaskSetDataRequestFields = {};\n\n    /**\n     * The emitted data contains the filter case object\n     */\n    @Output() filterLoaded: EventEmitter<SavedFilterMetadata> = new EventEmitter();\n    /**\n     * The emitted data contains only the saved case's ID\n     */\n    @Output() filterSaved: EventEmitter<SavedFilterMetadata> = new EventEmitter();\n\n    protected constructor(protected _searchService: SearchService,\n                          protected _logger: LoggerService,\n                          protected _dialogService: DialogService,\n                          protected _translate: TranslateService,\n                          protected _userFilterService: UserFiltersService,\n                          protected _allowedNetsService: AllowedNetsService,\n                          protected _viewIdService: ViewIdService,\n                          @Inject(NAE_SEARCH_CATEGORIES) protected _searchCategories: Array<Type<Category<any>>>,\n                          @Optional() @Inject(NAE_SEARCH_COMPONENT_CONFIGURATION) protected _configuration: SearchComponentConfiguration,\n                          @Optional() @Inject(NAE_FILTERS_FILTER) protected _filtersFilter: Filter = null,\n                          @Optional() @Inject(NAE_NAVIGATION_ITEM_TASK_DATA) protected _navigationItemTaskData: Array<DataGroup> = null) {\n        if (this._configuration === null) {\n            this._configuration = {};\n        }\n    }\n\n    ngOnInit(): void {\n        this.advancedSearchDisplayed = this.initialSearchMode === SearchMode.ADVANCED;\n    }\n\n    get showSearchIcon(): boolean {\n        return this._configuration.showSearchIcon ?? this._showSearchIcon;\n    }\n\n    @Input() set showSearchIcon(value: boolean) {\n        this._showSearchIcon = value;\n    }\n\n    get showAdvancedSearchHelp(): boolean {\n        return this._configuration.showAdvancedSearchHelp ?? this._showAdvancedSearchHelp;\n    }\n\n    @Input() set showAdvancedSearchHelp(value: boolean) {\n        this._showAdvancedSearchHelp = value;\n    }\n\n    get showSaveFilterButton(): boolean {\n        return this._configuration.showSaveFilterButton ?? this._showSaveFilterButton;\n    }\n\n    @Input() set showSaveFilterButton(value: boolean) {\n        this._showSaveFilterButton = value;\n    }\n\n    get showLoadFilterButton(): boolean {\n        return this._configuration.showLoadFilterButton ?? this._showLoadFilterButton;\n    }\n\n    @Input() set showLoadFilterButton(value: boolean) {\n        this._showLoadFilterButton = value;\n    }\n\n    get initialSearchMode(): SearchMode {\n        return this._configuration.initialSearchMode ?? this._initialSearchMode;\n    }\n\n    @Input() set initialSearchMode(value: SearchMode) {\n        this._initialSearchMode = value;\n    }\n\n    get showSearchToggleButton(): boolean {\n        return this._configuration.showSearchToggleButton ?? this._showSearchToggleButton;\n    }\n\n    @Input() set showSearchToggleButton(value: boolean) {\n        this._showSearchToggleButton = value;\n    }\n\n    public hasPredicates(): boolean {\n        return Array.from(this._searchService.rootPredicate.getPredicateMap().values()).some(value => value.isVisible);\n    }\n\n    public toggleSearchMode(): void {\n        if (this.advancedSearchDisplayed) {\n            this._searchService.clearPredicates();\n        } else {\n            this._searchService.clearFullTextFilter();\n        }\n\n        this.advancedSearchDisplayed = !this.advancedSearchDisplayed;\n    }\n\n    public showHelp(): void {\n        this._dialogService.openAlertDialog(this._translate.instant('search.help.title'), this._translate.instant('search.help.text'));\n    }\n\n    /**\n     * The saved filter data are emitted into the [filterSaved]{@link AbstractSearchComponent#filterSaved} `EventEmitter`\n     */\n    public saveFilter(): void {\n        this._userFilterService.save(\n            this._searchService,\n            this._allowedNetsService.allowedNetsIdentifiers,\n            this._searchCategories,\n            this._viewIdService.viewId,\n            this.additionalFilterData,\n            this._configuration.saveFilterWithDefaultCategories ?? true,\n            this._configuration.inheritAllowedNets ?? true,\n            this._navigationItemTaskData).subscribe(savedFilterData => {\n                if (savedFilterData) {\n                    this.filterSaved.emit(savedFilterData);\n                }\n        });\n    }\n\n    /**\n     * The loaded filter data are emitted into the [filterLoaded]{@link AbstractSearchComponent#filterLoaded} `EventEmitter`\n     */\n    public loadFilter(): void {\n        this._userFilterService.load(this._searchService.filterType, this._filtersFilter ?? undefined).subscribe(savedFilterData => {\n            if (savedFilterData) {\n                this.filterLoaded.emit(savedFilterData);\n            }\n        });\n    }\n}\n","import {FormControl} from '@angular/forms';\nimport {debounceTime, filter, map} from 'rxjs/operators';\nimport {SearchService} from '../search-service/search.service';\nimport {Component, Input} from '@angular/core';\n\n@Component({\n    selector: 'ncc-abstract-fulltext-search',\n    template: ''\n})\nexport abstract class AbstractFulltextSearchComponent {\n\n\n    @Input() set disabled(value: boolean) {\n        if (value) {\n            this.fullTextFormControl.disable();\n        } else {\n            this.fullTextFormControl.enable();\n        }\n    }\n    public fullTextFormControl: FormControl;\n\n    protected constructor(protected _searchService: SearchService) {\n        this.fullTextFormControl = new FormControl();\n\n        this.fullTextFormControl.valueChanges.pipe(\n            debounceTime(600),\n            filter(newValue => typeof newValue === 'string'),\n            map((newValue: string) => newValue.trim())\n        ).subscribe((fulltext: string) => {\n            if (fulltext.length === 0) {\n                this._searchService.clearFullTextFilter();\n            } else {\n                this._searchService.setFullTextFilter(fulltext);\n            }\n        });\n    }\n\n}\n","import {EditableClausePredicateWithGenerators} from '../models/predicate/editable-clause-predicate-with-generators';\nimport {SearchService} from '../search-service/search.service';\nimport {KeyValue} from '@angular/common';\nimport {EditablePredicate} from '../models/predicate/editable-predicate';\nimport {Subject} from 'rxjs';\nimport {AfterViewInit, Component, Input, OnDestroy} from '@angular/core';\nimport {BooleanOperator} from '../models/boolean-operator';\nimport {\n    AdvancedSearchComponentInitializationService\n} from '../advanced-search-component-initialization-service/advanced-search-component-initialization.service';\n\n@Component({\n    selector: 'ncc-abstract-advanced-search',\n    template: ''\n})\nexport abstract class AbstractAdvancedSearchComponent implements AfterViewInit, OnDestroy {\n\n    /**\n     * Whether the contents displayed in this component can be edited by the user or not.\n     *\n     * Defaults to `true`\n     */\n    @Input() editable = true;\n\n    public removeChild$: Subject<number>;\n\n    protected constructor(protected _searchService: SearchService,\n                          protected _initializationService: AdvancedSearchComponentInitializationService) {\n        this.removeChild$ = new Subject<number>();\n        this.removeChild$.subscribe(id => this._removeChildAt(id));\n\n        if (!this._searchService.hasVisiblePredicates) {\n            this.addChildPredicate();\n        }\n    }\n\n    ngAfterViewInit(): void {\n        this._initializationService.completeInitialization();\n    }\n\n    ngOnDestroy(): void {\n        this.removeChild$.complete();\n    }\n\n    public trackByPredicates = (a: number, b: KeyValue<number, EditablePredicate>) => b.value;\n\n    public getPredicateMap(): Map<number, EditableClausePredicateWithGenerators> {\n        const map = new Map<number, EditableClausePredicateWithGenerators>();\n\n        for (const [key, value] of this._searchService.rootPredicate.getPredicateMap().entries()) {\n            if (value.isVisible) {\n                map.set(key, value.getWrappedPredicate() as EditableClausePredicateWithGenerators);\n            }\n        }\n\n        return map;\n    }\n\n    public addChildPredicate(): void {\n        this._searchService.rootPredicate.addNewClausePredicate(BooleanOperator.OR);\n    }\n\n    protected _removeChildAt(id: number): void {\n        this._searchService.rootPredicate.removePredicate(id);\n        if (this.getPredicateMap().size === 0) {\n            this.addChildPredicate();\n        }\n    }\n}\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {KeyValue} from '@angular/common';\nimport {EditableClausePredicateWithGenerators} from '../models/predicate/editable-clause-predicate-with-generators';\nimport {PredicateWithGenerator} from '../models/predicate/predicate-with-generator';\n\n\n/**\n * Is responsible for the interactive creation of an OR {@link ClausePredicate} object instance.\n * The nested Predicates are {@link ElementaryPredicate} instances created by {@link AbstractSearchPredicateComponent}.\n */\n@Component({\n    selector: 'ncc-abstract-search-clause',\n    template: ''\n})\nexport abstract class AbstractSearchClauseComponent implements OnInit, OnDestroy {\n\n    /**\n     * Whether the contents displayed in this component can be edited by the user or not.\n     *\n     * Defaults to `true`\n     */\n    @Input() editable = true;\n    @Input() predicate: EditableClausePredicateWithGenerators;\n    @Input() predicateId: number;\n    @Input() remove$: Subject<number>;\n    public removeChild$: Subject<number>;\n\n    protected constructor() {\n        this.removeChild$ = new Subject<number>();\n        this.removeChild$.subscribe(id => this.removeChildAt(id));\n    }\n\n    ngOnInit(): void {\n        if (this.getPredicateMap().size === 0) {\n            this.addChildPredicate();\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.removeChild$.complete();\n    }\n\n    public trackByPredicates = (a: number, b: KeyValue<number, PredicateWithGenerator>) => b.value;\n\n    public getPredicateMap(): Map<number, PredicateWithGenerator> {\n        const map = new Map<number, PredicateWithGenerator>();\n\n        for (const [key, value] of this.predicate.getPredicateMap().entries()) {\n            if (value.isVisible) {\n                map.set(key, value);\n            }\n        }\n\n        return map;\n    }\n\n    public removeChildAt(id: number): void {\n        this.predicate.removePredicate(id);\n        if (this.predicate.getPredicateMap().size === 0) {\n            this.remove$.next(this.predicateId);\n        }\n    }\n\n    public addChildPredicate(): void {\n        this.predicate.addNewElementaryPredicate();\n    }\n}\n","import {Component, Inject, Input, OnDestroy, OnInit, Type, ViewChild} from '@angular/core';\nimport {Subject, Subscription} from 'rxjs';\nimport {NAE_SEARCH_CATEGORIES} from '../category-factory/search-categories-injection-token';\nimport {Category} from '../models/category/category';\nimport {SearchAutocompleteOption} from '../models/category/search-autocomplete-option';\nimport {ElementaryPredicate} from '../models/predicate/elementary-predicate';\nimport {Query} from '../models/query/query';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {MatSelect} from '@angular/material/select';\nimport {EditableElementaryPredicate} from '../models/predicate/editable-elementary-predicate';\nimport {\n    AdvancedSearchComponentInitializationService\n} from '../advanced-search-component-initialization-service/advanced-search-component-initialization.service';\nimport {CategoryFactory} from '../category-factory/category-factory';\n\n\n/**\n * Is responsible for the interactive creation of a single {@link ElementaryPredicate} object instance.\n */\n@Component({\n    selector: 'ncc-abstract-search-predicate',\n    template: ''\n})\nexport abstract class AbstractSearchPredicateComponent implements OnInit, OnDestroy {\n\n    /**\n     * Whether the contents displayed in this component can be edited by the user or not.\n     *\n     * Defaults to `true`\n     */\n    @Input() editable = true;\n    @Input() predicate: EditableElementaryPredicate;\n    @Input() predicateId: number;\n    @Input() remove$: Subject<number>;\n    /**\n     * Optional generator with prefilled values. Can be used to add prefilled predicate components to the search GUI.\n     */\n    @Input() generator: Category<any> | undefined;\n\n    protected _selectedCategory: Category<any>;\n\n    protected _predicateChange: Subscription;\n\n    protected _searchCategories: Array<Category<any>>;\n\n    protected constructor(@Inject(NAE_SEARCH_CATEGORIES) private _naeSearchCategories: Array<Type<Category<any>>>,\n                          protected _logger: LoggerService,\n                          protected _initializationService: AdvancedSearchComponentInitializationService,\n                          protected _categoryFactory: CategoryFactory) {\n    }\n\n    ngOnInit() {\n        let found = false;\n        this._searchCategories = this._naeSearchCategories.map(category => {\n            // if the provided generator is the same class as one of the injected search categories\n            if (this.generator && this.generator.constructor === category) {\n                found = true;\n                this.categoryChanged(this.generator);\n                return this.generator;\n            }\n            return this._categoryFactory.get(category);\n        });\n\n        if (this.generator && !found) {\n            this._logger.error('Provided predicate generator is not an allowed category from the NAE_SEARCH_CATEGORIES injection token!'\n                + ' Behavior in this case is undefined.');\n        }\n\n        this.predicate.setMetadataGenerator(() => {\n            if (!!this._selectedCategory) {\n                return this._selectedCategory.createMetadata();\n            }\n            return undefined;\n        });\n\n        this.predicate.setFilterTextSegmentsGenerator(() => {\n            if (!!this._selectedCategory) {\n                return this._selectedCategory.createFilterTextSegments();\n            }\n            return [];\n        });\n    }\n\n    ngOnDestroy(): void {\n        if (this._predicateChange && !this._predicateChange.closed) {\n            this._predicateChange.unsubscribe();\n        }\n        this._searchCategories.forEach(cat => {\n            if (cat !== this.generator) {\n                cat.destroy();\n            }\n        });\n    }\n\n    public get searchCategories(): Array<Category<any>> {\n        return this._searchCategories;\n    }\n\n    @ViewChild('categoryInput')\n    public set categoryInput(input: MatSelect) {\n        if (input && this._initializationService.isInitialized) {\n            setTimeout(() => {\n                input.focus();\n                input.open();\n            });\n        }\n    }\n\n    public get selectedCategory(): Category<any> {\n        return this._selectedCategory;\n    }\n\n    public set selectedCategory(newCategory: Category<any>) {\n        this.categoryChanged(newCategory);\n    }\n\n    /**\n     * Lambda that is used to preserve `this` reference in HTML binding.\n     *\n     * See [_renderSelection()]{@link AbstractSearchPredicateComponent#_renderSelection} for information about the transform function.\n     * @param option the {@link SearchAutocompleteOption} object that was selected in the autocomplete list.\n     */\n    public renderSelection = (option: SearchAutocompleteOption<unknown>) => this._renderSelection(option);\n\n    public remove(): void {\n        this.remove$.next(this.predicateId);\n    }\n\n    public categoryChanged(newCategory: Category<any>): void {\n        if (this.selectedCategory !== undefined) {\n            this.selectedCategory.reset();\n        }\n        this._selectedCategory = newCategory;\n        if (newCategory !== undefined) {\n            if (this._predicateChange) {\n                this._predicateChange.unsubscribe();\n            }\n            this._predicateChange = newCategory.generatedPredicate$.subscribe(predicate => this.processPredicateChange(predicate));\n        }\n    }\n\n    public clearCategorySelection(): void {\n        if (!this.editable) {\n            return;\n        }\n\n        this.categoryChanged(undefined);\n    }\n\n    /**\n     * Transforms a {@link SearchAutocompleteOption} object into it's name.\n     * Used for displaying user selection in the input field, when an autocomplete option is selected.\n     * @param option the object we want to transform. It might not exist if user input doesn't match any autocomplete option\n     * @returns option name if it exists, empty string otherwise\n     */\n    protected _renderSelection(option: SearchAutocompleteOption<unknown>): string {\n        return option ? option.text : '';\n    }\n\n    /**\n     * Notifies the `EditableElementaryPredicate` about changes to the predicate generated by the selected `Category`.\n     * @param newPredicate predicate generated by the selected `Category`\n     */\n    protected processPredicateChange(newPredicate: ElementaryPredicate | undefined): void {\n        if (newPredicate === undefined) {\n            this.predicate.query = Query.emptyQuery();\n            this._logger.debug('Editable query changed to empty query');\n        } else {\n            this.predicate.query = newPredicate.query;\n            this._logger.debug(`Editable query changed to: ${newPredicate.query.value}`);\n        }\n    }\n}\n","import {Component, ElementRef, Input, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {SearchInputType} from '../models/category/search-input-type';\nimport {Observable, Subscription} from 'rxjs';\nimport {SearchAutocompleteOption} from '../models/category/search-autocomplete-option';\nimport {debounceTime} from 'rxjs/operators';\n\n@Component({\n    selector: 'ncc-abstract-search-operand-input',\n    template: ''\n})\nexport abstract class AbstractSearchOperandInputComponent implements OnInit, OnDestroy {\n\n    /**\n     * Whether the contents displayed in this component can be edited by the user or not.\n     *\n     * Defaults to `true`\n     */\n    @Input() editable = true;\n    @Input() inputFormControl: FormControl;\n    @Input() inputType: SearchInputType;\n    @Input() first: boolean;\n    /**\n     * Only if the input is of type [AUTOCOMPLETE{@link SearchInputType#AUTOCOMPLETE}\n     */\n    @Input() filterOptionsFunction: (userInput: Observable<string>) => Observable<Array<SearchAutocompleteOption<unknown>>>;\n\n    protected _inputConfirmed = false;\n\n    private _filteredOptions$: Observable<Array<SearchAutocompleteOption<unknown>>>;\n\n    private _autocompleteChange: Subscription;\n\n    private _initialExpansion = true;\n\n    public renderSelection = (selection: SearchAutocompleteOption<unknown>) => this._renderSelection(selection);\n\n    ngOnInit(): void {\n        if (this.inputType === SearchInputType.AUTOCOMPLETE) {\n            this._autocompleteChange = this.inputFormControl.valueChanges.subscribe(val => {\n                setTimeout(() => {\n                    this._inputConfirmed = !!val && (typeof val !== 'string');\n                });\n            });\n        }\n\n        if (this.isInputValueSet()) {\n            this._inputConfirmed = true;\n        }\n    }\n\n    ngOnDestroy(): void {\n        if (this._autocompleteChange && !this._autocompleteChange.closed) {\n            this._autocompleteChange.unsubscribe();\n        }\n    }\n\n    public get filteredOptions$(): Observable<Array<SearchAutocompleteOption<unknown>>> {\n        if (!this._filteredOptions$) {\n            this._filteredOptions$ = this.filterOptionsFunction(this.inputFormControl.valueChanges.pipe(debounceTime(600)));\n        }\n        return this._filteredOptions$;\n    }\n\n    public isInputFilled(): boolean {\n        if (!this._inputConfirmed) {\n            return false;\n        }\n\n        return this.isInputValueSet();\n    }\n\n    @ViewChild('operandInput')\n    public set categoryInput(input: ElementRef<HTMLInputElement>) {\n        if (input) {\n            if (!this.first && this._initialExpansion) {\n                this._initialExpansion = false;\n                return;\n            }\n            this._initialExpansion = false;\n\n            if (!this.isInputFilled()) {\n                setTimeout(() => {\n                    input.nativeElement.focus();\n                });\n            }\n        }\n    }\n\n    public confirmInput(): void {\n        this._inputConfirmed = true;\n    }\n\n    public editInput(): void {\n        if (!this.editable) {\n            return;\n        }\n\n        this._inputConfirmed = false;\n    }\n\n    /**\n     * Autocomplete `displayWith` function\n     * @param selection the selected option\n     */\n    protected _renderSelection(selection: SearchAutocompleteOption<unknown>): string {\n        return selection ? selection.text : '';\n    }\n\n    protected isInputValueSet(): boolean {\n        if (this.inputType === SearchInputType.AUTOCOMPLETE) {\n            return !!this.inputFormControl.value\n                && (typeof this.inputFormControl.value !== 'string');\n        }\n        if (this.inputType === SearchInputType.TEXT) {\n            return this.inputFormControl.value !== undefined\n                && this.inputFormControl.value !== null\n                && this.inputFormControl.value.length > 0;\n        }\n        return this.inputFormControl.value !== undefined\n            && this.inputFormControl.value !== null;\n    }\n}\n","import {ConfigurationInput} from '../models/configuration-input';\nimport {Component, ElementRef, Input, ViewChild} from '@angular/core';\nimport {Category} from '../models/category/category';\nimport {OperatorTemplatePart} from '../models/operator-template-part';\nimport {SearchAutocompleteOption} from '../models/category/search-autocomplete-option';\nimport {Observable} from 'rxjs';\nimport {AutocompleteOptions} from '../models/category/autocomplete-options';\nimport {MatSelect} from '@angular/material/select';\n\n@Component({\n    selector: 'ncc-abstract-search-configuration-input',\n    template: ''\n})\nexport abstract class AbstractSearchConfigurationInputComponent {\n\n    /**\n     * Whether the contents displayed in this component can be edited by the user or not.\n     *\n     * Defaults to `true`\n     */\n    @Input() editable = true;\n    @Input() configuration: ConfigurationInput;\n    @Input() selectedCategory: Category<any>;\n\n    @ViewChild('configurationInput')\n    public set configurationInput(input: MatSelect | ElementRef<HTMLInputElement>) {\n        // TODO 20.1.2021 BUG - if multiple configuration inputs are displayed at the same time all of them will be focused.\n        //  The same fix as in OperandInputs can be applied here as well.\n        if (input) {\n            setTimeout(() => {\n                if ((input as any).nativeElement !== undefined) {\n                    const ref = (input as ElementRef<HTMLInputElement>);\n                    ref.nativeElement.focus();\n                } else {\n                    const select = (input as MatSelect);\n                    select.focus();\n                    select.open();\n                }\n            });\n        }\n    }\n\n    public trackByTemplateParts = (a: number, b: OperatorTemplatePart) => this._trackByTemplateParts(a, b);\n\n    /**\n     * Lambda that is used to preserve `this` reference in HTML binding.\n     *\n     * See [_renderSelection()]{@link AbstractSearchPredicateComponent#_renderSelection} for information about the transform function.\n     * @param option the {@link SearchAutocompleteOption} object that was selected in the autocomplete list.\n     */\n    public renderSelection = (option: SearchAutocompleteOption<unknown>) => this._renderSelection(option);\n\n    public clearConfigurationInput(): void {\n        if (!this.editable) {\n            return;\n        }\n\n        this.configuration.clear();\n    }\n\n    public clearOperatorInput(): void {\n        if (!this.editable) {\n            return;\n        }\n\n        this.selectedCategory.clearOperatorSelection();\n    }\n\n    public filterOptions: (userInput: Observable<string>) => Observable<Array<SearchAutocompleteOption<unknown>>> = userInput => {\n        return (this.selectedCategory as (Category<any> & AutocompleteOptions)).filterOptions(userInput);\n    }\n\n    /**\n     * Function for tracking Template parts in ngFor.\n     * @param index index of the ngFor element\n     * @param item template part\n     */\n    protected _trackByTemplateParts(index: number, item: OperatorTemplatePart): any {\n        return item.id;\n    }\n\n    /**\n     * Transforms a {@link SearchAutocompleteOption} object into it's name.\n     * Used for displaying user selection in the input field, when an autocomplete option is selected.\n     * @param option the object we want to transform. It might not exist if user input doesn't match any autocomplete option\n     * @returns option name if it exists, empty string otherwise\n     */\n    protected _renderSelection(option: SearchAutocompleteOption<unknown>): string {\n        return option ? option.text : '';\n    }\n}\n","import {Category} from '../models/category/category';\nimport {CategoryFactory} from './category-factory';\nimport {CaseTitle} from '../models/category/case/case-title';\nimport {CaseVisualId} from '../models/category/case/case-visual-id';\nimport {CaseStringId} from '../models/category/case/case-string-id';\nimport {CaseAuthor} from '../models/category/case/case-author';\nimport {CaseProcess} from '../models/category/case/case-process';\nimport {CaseTask} from '../models/category/case/case-task';\nimport {CaseCreationDate} from '../models/category/case/case-creation-date';\nimport {CaseDataset} from '../models/category/case/case-dataset';\nimport {TaskAssignee} from '../models/category/task/task-assignee';\nimport {TaskProcess} from '../models/category/task/task-process';\nimport {TaskRole} from '../models/category/task/task-role';\nimport {TaskTask} from '../models/category/task/task-task';\nimport {CaseCreationDateTime} from '../models/category/case/case-creation-date-time';\n\n/**\n * Creates the default case search categories.\n *\n * Depends on {@link CategoryFactory}.\n *\n * The created categories cannot be used to generate any predicates, as their inner state is preemptively destroyed to avoid memory leaks\n * caused by uncompleted Subjects. They should only be used to create new Category instances with the help of the\n * [duplicate()]{@link Category#duplicate} method.\n *\n * @returns an Array containing the default case search categories: {@link CaseDataset}, {@link CaseTitle}, {@link CaseCreationDate},\n * {@link CaseProcess}, {@link CaseTask}, {@link CaseAuthor}, {@link CaseVisualId} and {@link CaseStringId}\n *\n * @deprecated in 5.6.0 - Use the {@link NAE_DEFAULT_CASE_SEARCH_CATEGORIES} injection token instead\n */\nexport function defaultCaseSearchCategoriesFactory(factory: CategoryFactory): Array<Category<any>> {\n    const cats = [\n        factory.get(CaseDataset),\n        factory.get(CaseTitle),\n        factory.get(CaseCreationDate),\n        factory.get(CaseCreationDateTime),\n        factory.get(CaseProcess),\n        factory.get(CaseTask),\n        factory.get(CaseAuthor),\n        factory.get(CaseVisualId),\n        factory.get(CaseStringId),\n    ];\n    cats.forEach(cat => cat.destroy());\n    return cats;\n}\n\n/**\n * Creates the default task search categories.\n *\n * Depends on {@link CategoryFactory}.\n *\n * The created categories cannot be used to generate any predicates, as their inner state is preemptively destroyed to avoid memory leaks\n * caused by uncompleted Subjects. They should only be used to create new Category instances with the help of the\n * [duplicate()]{@link Category#duplicate} method.\n *\n * @returns an Array containing the default task search categories: {@link TaskAssignee}, {@link TaskTask}, {@link TaskProcess}\n * and {@link TaskRole}\n *\n * @deprecated in 5.6.0 - Use the {@link NAE_DEFAULT_TASK_SEARCH_CATEGORIES} injection token instead\n */\nexport function defaultTaskSearchCategoriesFactory(factory: CategoryFactory): Array<Category<any>> {\n    const cats = [\n        factory.get(TaskAssignee),\n        factory.get(TaskTask),\n        factory.get(TaskProcess),\n        factory.get(TaskRole),\n    ];\n    cats.forEach(cat => cat.destroy());\n    return cats;\n}\n","import {NgModule} from '@angular/core';\nimport {NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_TASK_SEARCH_CATEGORIES} from './search-categories-injection-token';\nimport {CaseDataset} from '../models/category/case/case-dataset';\nimport {CaseTitle} from '../models/category/case/case-title';\nimport {CaseCreationDate} from '../models/category/case/case-creation-date';\nimport {CaseProcess} from '../models/category/case/case-process';\nimport {CaseTask} from '../models/category/case/case-task';\nimport {CaseAuthor} from '../models/category/case/case-author';\nimport {CaseVisualId} from '../models/category/case/case-visual-id';\nimport {TaskAssignee} from '../models/category/task/task-assignee';\nimport {TaskTask} from '../models/category/task/task-task';\nimport {TaskProcess} from '../models/category/task/task-process';\nimport {TaskRole} from '../models/category/task/task-role';\nimport {CaseCreationDateTime} from '../models/category/case/case-creation-date-time';\nimport {CaseStringId} from '../models/category/case/case-string-id';\n\n\n@NgModule({\n    declarations: [],\n    imports: [],\n    providers: [\n        {\n            provide: NAE_DEFAULT_CASE_SEARCH_CATEGORIES,\n            useValue: [\n                CaseDataset,\n                CaseTitle,\n                CaseCreationDate,\n                CaseCreationDateTime,\n                CaseProcess,\n                CaseTask,\n                CaseAuthor,\n                CaseVisualId,\n                CaseStringId,\n            ]\n        }, {\n            provide: NAE_DEFAULT_TASK_SEARCH_CATEGORIES,\n            useValue: [\n                TaskAssignee,\n                TaskTask,\n                TaskProcess,\n                TaskRole,\n            ]\n        }\n    ]\n})\nexport class DefaultSearchCategoriesModule {\n}\n","/* Classes */\nexport * from './models/query/query';\n\nexport * from './models/predicate/predicate';\nexport * from './models/predicate/elementary-predicate';\nexport * from './models/predicate/clause-predicate';\nexport * from './models/predicate/editable-predicate';\nexport * from './models/predicate/editable-elementary-predicate';\nexport * from './models/predicate/editable-clause-predicate';\nexport * from './models/predicate/predicate-with-generator';\nexport * from './models/predicate/editable-clause-predicate-with-generators';\nexport * from './models/predicate/editable-predicate-with-generator';\n\nexport * from './models/operator/operator';\nexport * from './models/operator/substring';\nexport * from './models/operator/equals';\nexport * from './models/operator/equals-date';\nexport * from './models/operator/in-range-date';\nexport * from './models/operator/in-range';\nexport * from './models/operator/is-null';\nexport * from './models/operator/less-than';\nexport * from './models/operator/like';\nexport * from './models/operator/more-than';\nexport * from './models/operator/not-equals';\nexport * from './models/operator/more-than-date';\nexport * from './models/operator/less-than-date';\nexport * from './models/operator/more-than-date-time';\nexport * from './models/operator/less-than-date-time';\nexport * from './models/operator/not-equals-date';\nexport * from './models/operator/not-equals-date-time';\n\nexport * from './models/category/category';\nexport * from './models/category/no-configuration-category';\nexport * from './models/category/autocomplete-category';\nexport * from './models/category/user-autocomplete';\nexport * from './models/category/no-configuration-autocomplete-category';\nexport * from './models/category/no-configuration-user-autocomplete-category';\nexport * from './models/category/net-attribute-autocomplete-category';\nexport * from './models/category/case/case-net-attribute-autocomplete-category';\nexport * from './models/category/case/case-title';\nexport * from './models/category/case/case-visual-id';\nexport * from './models/category/case/case-author';\nexport * from './models/category/case/case-process';\nexport * from './models/category/case/case-role';\nexport * from './models/category/case/case-task';\nexport * from './models/category/case/case-creation-date';\nexport * from './models/category/case/case-creation-date-time';\nexport * from './models/category/case/case-dataset';\nexport * from './models/category/case/case-simple-dataset';\nexport * from './models/category/case/case-string-id';\nexport * from './models/category/task/task-net-attribute-autocomplete-category';\nexport * from './models/category/task/task-assignee';\nexport * from './models/category/task/task-process';\nexport * from './models/category/task/task-role';\nexport * from './models/category/task/task-task';\n\nexport * from './models/datafield-map-key';\nexport * from './models/operator-template-part';\nexport * from './models/configuration-input';\n\n/* Interfaces */\nexport * from './models/escape-result';\nexport * from './models/wrap-result';\nexport * from './models/predicate-removal-event';\nexport * from './models/category/search-autocomplete-option';\nexport * from './models/category/autocomplete-options';\nexport * from './models/category/net-attribute-pair';\nexport * from './models/category/name-id-pair';\nexport * from './models/component-configuration/search-component-configuration';\nexport * from './models/base-filter';\nexport * from './models/persistance/generator-metadata';\nexport * from './models/persistance/filter-metadata';\nexport * from './models/persistance/saved-filter-metadata';\nexport * from './models/persistance/filter-text-segment';\nexport * from './models/persistance/filter-metadata-allowed-nets';\n\nexport * from './category-factory/optional-dependencies';\nexport * from './category-factory/category-serialisation-pair';\n\n/* Enums */\nexport * from './models/boolean-operator';\nexport * from './models/category/search-input-type';\nexport * from './models/category/categories';\nexport * from './models/operator-template-part-type';\nexport * from './models/search-index';\nexport * from './models/component-configuration/search-mode';\nexport * from './models/operator/operators';\nexport * from './models/category/case/case-search.enum';\n\n/* Services */\nexport * from './search-service/search.service';\nexport * from './operator-service/operator.service';\nexport * from './operator-service/operator-resolver.service';\nexport * from './category-factory/category-factory';\nexport * from './category-factory/category-resolver.service';\nexport * from './header-search-service/header-search.service';\nexport * from './search-keyword-resolver-service/search-index-resolver.service';\nexport * from './advanced-search-component-initialization-service/advanced-search-component-initialization.service';\n\n/* Components */\nexport * from './search-component/abstract-search.component';\nexport * from './fulltext-search-component/abstract-fulltext-search.component';\nexport * from './advanced-search-component/abstract-advanced-search.component';\nexport * from './search-clause-component/abstract-search-clause.component';\nexport * from './search-predicate-component/abstract-search-predicate.component';\nexport * from './search-operand-input-component/abstract-search-operand-input.component';\nexport * from './search-configuration-input-component/abstract-search-configuration-input.component';\n\n/* Functions */\nexport * from './category-factory/default-categories-factories';\n\n/* Tokens */\nexport * from './category-factory/search-categories-injection-token';\nexport * from './models/component-configuration/search-component-configuration-injection-token';\nexport * from './models/base-filter-injection-token';\n\n/* Modules */\nexport * from './category-factory/default-search-categories.module';\n","import {InjectionToken} from '@angular/core';\n\nexport const NAE_DEFAULT_LANGUAGE = new InjectionToken<string>('NaeDefaultLanguage');\n","import {LoadingEmitter} from '../../../utility/loading-emitter';\nimport {PetriNetReference} from '../../../resources/interface/petri-net-reference';\nimport {PetriNetResourceService} from '../../../resources/engine-endpoint/petri-net-resource.service';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {forkJoin, Observable, of, timer} from 'rxjs';\nimport {catchError, map, tap} from 'rxjs/operators';\nimport NetRole from '../../../process/netRole';\nimport RolesAndPermissions from '../../../process/rolesAndPermissions';\n\nexport interface ExtendedProcessRole extends NetRole {\n    selected: boolean;\n    processIdentifier: string;\n\n    toggle(): void;\n}\n\nexport interface ProcessVersion extends PetriNetReference {\n    roles: Array<ExtendedProcessRole>;\n}\n\nexport interface ProcessListItem {\n    identifier: string;\n    title: string;\n    initials: string;\n    newestVersion: string;\n    processes: Array<ProcessVersion>;\n    loading: boolean;\n    emptyRoles: boolean;\n    someRolesSelected: boolean;\n}\n\nexport class ProcessList {\n    private _loading$: LoadingEmitter;\n    private _processes: Array<ProcessListItem>;\n    private readonly _rolesIndex: { [k: string]: Array<ExtendedProcessRole> };\n    private _selectedRoles: Set<string>;\n\n    constructor(private _resources: PetriNetResourceService, private _log: LoggerService) {\n        this._loading$ = new LoadingEmitter();\n        this._processes = [];\n        this._rolesIndex = {};\n        this._selectedRoles = new Set<string>();\n    }\n\n    public get loading(): boolean {\n        return this._loading$.getValue();\n    }\n\n    public get loading$(): Observable<boolean> {\n        return this._loading$.asObservable();\n    }\n\n    public get processes(): Array<ProcessListItem> {\n        return this._processes;\n    }\n\n    public get selectedRoles(): Array<string> {\n        return [...this._selectedRoles];\n    }\n\n    public loadProcesses(): void {\n        if (this.loading) {\n            return;\n        }\n        this._loading$.on();\n        this._resources.getAll().pipe(\n            catchError(err => {\n                this._log.error('Failed to load Petri nets', err);\n                return of([] as Array<ProcessVersion>);\n            }),\n            map(p => Array.isArray(p) ? p : [] as Array<ProcessVersion>),\n            map(ps => ps.map(p => ({\n                ...p,\n                roles: []\n            }) as ProcessVersion))\n        ).subscribe(nets => {\n            const cache: { [k: string]: ProcessListItem } = {};\n            nets.forEach(net => {\n                if (cache[net.identifier]) {\n                    cache[net.identifier].processes.push(net);\n                } else {\n                    cache[net.identifier] = {\n                        identifier: net.identifier,\n                        title: net.title,\n                        initials: net.initials,\n                        newestVersion: undefined,\n                        processes: [net],\n                        loading: true,\n                        emptyRoles: true,\n                        someRolesSelected: false\n                    };\n                }\n                cache[net.identifier].processes.sort((a, b) => {\n                    return b.version.localeCompare(a.version, undefined, { numeric: true });\n                });\n                cache[net.identifier].newestVersion = cache[net.identifier].processes[0].version;\n            });\n            this._processes = Object.values(cache).sort();\n            this._loading$.off();\n        });\n    }\n\n    public prepareToTryAgainToLoadRoles(item: ProcessListItem): void {\n        if (!item || !item.emptyRoles) {\n            return;\n        }\n        item.loading = true;\n    }\n\n    public selectRoles(roleIds: Set<string>): void {\n        if (!roleIds) {\n            roleIds = new Set<string>([]);\n        }\n        roleIds.forEach(role => {\n            this._selectedRoles.delete(role);\n        });\n        this._selectedRoles.forEach(role => {\n            if (this._rolesIndex[role]) {\n                this._rolesIndex[role].forEach(r => r.selected = false);\n            }\n        });\n        this._selectedRoles = roleIds;\n        this._selectedRoles.forEach(role => {\n            if (this._rolesIndex[role]) {\n                this._rolesIndex[role].forEach(r => r.selected = true);\n            }\n        });\n        this.updateSelectedRolesFlag(Object.keys(this._rolesIndex)\n            .filter(r => this._selectedRoles.has(r))\n            .map(r => this._rolesIndex[r].length !== 0 ? this._rolesIndex[r][0].processIdentifier : null));\n    }\n\n    public updateSelectedRoles(role: ExtendedProcessRole): void {\n        role.selected ? this._selectedRoles.add(role.stringId) : this._selectedRoles.delete(role.stringId);\n        this._rolesIndex[role.stringId].forEach(r => r.selected = role.selected);\n    }\n\n    public loadProcessItemRoles(item: ProcessListItem): void {\n        if (!item || !item.emptyRoles) {\n            return;\n        }\n        item.loading = true;\n        forkJoin(item.processes.map(p => this.loadNetRoles(p))).subscribe(roles => {\n            let isEmpty = true;\n            roles.forEach((rs, i) => {\n                item.processes[i].roles = rs;\n                isEmpty = isEmpty && rs.length === 0;\n            });\n            item.emptyRoles = isEmpty;\n            item.loading = false;\n        });\n    }\n\n    private loadNetRoles(net: ProcessVersion): Observable<Array<ExtendedProcessRole>> {\n        if (net.roles && net.roles.length !== 0) {\n            return of(net.roles);\n        }\n        return this._resources.getPetriNetRoles(net.stringId).pipe(\n            catchError(err => {\n                this._log.error('Failed to load roles for Petri net [' + net.stringId + '] ' + net.title, err);\n                return of([] as Array<ExtendedProcessRole>);\n            }),\n            map((roles: RolesAndPermissions) => roles.processRoles.map(role => ({\n                ...role,\n                selected: false,\n                processIdentifier: net.identifier,\n                toggle() {\n                    this.selected = !this.selected;\n                }\n            }) as ExtendedProcessRole)),\n            tap(roles => roles.forEach(role => {\n                if (!this._rolesIndex[role.stringId]) {\n                    this._rolesIndex[role.stringId] = [role];\n                } else {\n                    this._rolesIndex[role.stringId].push(role);\n                }\n                if (this._selectedRoles.has(role.stringId)) {\n                    role.selected = true;\n                }\n            }))\n        );\n    }\n\n    private updateSelectedRolesFlag(identifiers: Array<string>): void {\n        if (!identifiers) {\n            return;\n        }\n        timer(0).subscribe(_ => {\n            if (identifiers.length === 0) {\n                this._processes.forEach(process => {\n                    process.someRolesSelected = false;\n                });\n            }\n            identifiers.forEach(identifier => {\n                if (!identifier) {\n                    return;\n                }\n                const requested = this._processes.find(process => process.identifier === identifier);\n                if (requested) {\n                    requested.someRolesSelected = requested.processes.some(version => version.roles.length !== 0);\n                }\n            });\n            this._processes.forEach(process => {\n                if (!identifiers.find(i => process.identifier === i)) {\n                    process.someRolesSelected = false;\n                }\n            });\n        });\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {UserResourceService} from '../../../resources/engine-endpoint/user-resource.service';\nimport {PetriNetResourceService} from '../../../resources/engine-endpoint/petri-net-resource.service';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {ProcessList} from './ProcessList';\nimport {SnackBarService} from '../../../snack-bar/services/snack-bar.service';\nimport {UserListService} from '../../../user/services/user-list.service';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Injectable()\nexport class RoleAssignmentService {\n\n    private readonly _userList: UserListService;\n    private readonly _processList: ProcessList;\n\n    constructor(userResources: UserResourceService, processResources: PetriNetResourceService,\n                snackbar: SnackBarService, private _log: LoggerService, private _translate: TranslateService) {\n        this._userList = new UserListService(userResources, _log, snackbar, _translate);\n        this._processList = new ProcessList(processResources, _log);\n    }\n\n    public get userList(): UserListService {\n        return this._userList;\n    }\n\n    public get processList(): ProcessList {\n        return this._processList;\n    }\n}\n","import {AfterViewInit, Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {MatSelectionList} from '@angular/material/list';\nimport {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {UserListItem, UserListService} from '../../user/services/user-list.service';\nimport {ProcessList, ExtendedProcessRole, ProcessVersion} from './services/ProcessList';\nimport {FormControl} from '@angular/forms';\nimport {RoleAssignmentService} from './services/role-assignment.service';\nimport {UserService} from '../../user/services/user.service';\nimport {debounceTime} from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\n\n@Component({\n    selector: 'ncc-abstract-role',\n    template: ''\n})\nexport abstract class AbstractRoleAssignmentComponent implements OnInit, AfterViewInit, OnDestroy {\n\n    @ViewChild('userList') public userList: MatSelectionList;\n    @ViewChild(CdkVirtualScrollViewport) public viewport: CdkVirtualScrollViewport;\n\n    public users: UserListService;\n    public nets: ProcessList;\n    public userMultiSelect: boolean;\n    public searchUserControl = new FormControl();\n    protected SEARCH_DEBOUNCE_TIME = 600;\n    protected subValueChanges: Subscription;\n    protected subUsers: Subscription;\n\n    constructor(protected _service: RoleAssignmentService, protected _userService: UserService) {\n        this.users = this._service.userList;\n        this.nets = this._service.processList;\n        this.userMultiSelect = true;\n    }\n\n    ngOnInit(): void {\n        this.nets.loadProcesses();\n        this.subValueChanges = this.searchUserControl.valueChanges.pipe(debounceTime(this.SEARCH_DEBOUNCE_TIME)).subscribe(searchText => {\n            this.users.reload(searchText);\n        });\n    }\n\n    ngAfterViewInit(): void {\n        this.subUsers = this.users.usersReload$.subscribe(() => {\n            this.userList.deselectAll();\n            this.userList.selectedOptions.clear();\n            this.autoSelectRoles();\n        });\n    }\n\n    ngOnDestroy(): void {\n        this._userService.reload();\n        this.subValueChanges.unsubscribe();\n        this.subUsers.unsubscribe();\n        this.users = undefined;\n        this.nets = undefined;\n    }\n\n    public loadNextUserPage(): void {\n        if (!this.viewport) {\n            return;\n        }\n        this.users.nextPage(this.viewport.getRenderedRange().end, this.viewport.getDataLength());\n    }\n\n    public autoSelectRoles(): void {\n        const all = this.userList.selectedOptions.selected.map(option => (option.value as UserListItem).roles);\n        if (all.length === 0) {\n            this.nets.selectRoles(new Set<string>([]));\n        }\n        const intersection = all.reduce((acc, curr) => new Set([...acc].filter(s => curr.has(s))), all[0]);\n        this.nets.selectRoles(intersection);\n    }\n\n    public update(role: ExtendedProcessRole): void {\n        this.nets.updateSelectedRoles(role);\n        const selected = this.userList.selectedOptions.selected.map(option => (option.value as UserListItem));\n        this.users.updateRoles(selected, this.nets.selectedRoles).subscribe(_ => {\n            this.autoSelectRoles();\n        });\n    }\n\n    public selectAllUsers(select: boolean): void {\n        this.userList.options.forEach(option => {\n            (option.value as UserListItem).selected = select;\n        });\n        this.autoSelectRoles();\n    }\n\n    public toggleAllRoles(net: ProcessVersion, select: boolean): void {\n        net.roles.forEach(r => {\n            r.selected = select;\n            this.nets.updateSelectedRoles(r);\n        });\n        const selected = this.userList.selectedOptions.selected.map(option => (option.value as UserListItem));\n        this.users.updateRoles(selected, this.nets.selectedRoles).subscribe(_ => {\n            this.autoSelectRoles();\n        });\n    }\n}\n","import { Injectable } from '@angular/core';\nimport {ProcessList} from '../../role-assignment/services/ProcessList';\nimport {PetriNetResourceService} from '../../../resources/engine-endpoint/petri-net-resource.service';\nimport {LoggerService} from '../../../logger/services/logger.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UserInviteService {\n\n    private readonly _processList: ProcessList;\n\n    constructor(processResources: PetriNetResourceService, private _log: LoggerService) {\n        this._processList = new ProcessList(processResources, _log);\n    }\n\n    public get processList(): ProcessList {\n        return this._processList;\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {GroupInterface} from '../../../resources/interface/group';\nimport {LoadingEmitter} from '../../../utility/loading-emitter';\nimport {UserResourceService} from '../../../resources/engine-endpoint/user-resource.service';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {Observable, of} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class OrganizationListService {\n\n    private _groups: Array<GroupInterface>;\n    private _loading$: LoadingEmitter;\n\n    constructor(private _resource: UserResourceService, private _log: LoggerService) {\n        this._groups = [];\n        this._loading$ = new LoadingEmitter();\n    }\n\n    public get loading(): boolean {\n        return this._loading$.isActive;\n    }\n\n    public get loading$(): Observable<boolean> {\n        return this._loading$.asObservable();\n    }\n\n    public get groups(): Array<GroupInterface> {\n        return this._groups;\n    }\n\n    public get groups$(): Observable<Array<GroupInterface>> {\n        return of(this._groups);\n    }\n\n    public loadGroups() {\n        if (this._loading$.isActive) {\n            return;\n        }\n        this._loading$.on();\n        this._resource.getAllGroups().pipe(take(1)).subscribe(groups => {\n            if (Array.isArray(groups.groups) && groups.groups.length !== 0) {\n                this._groups = groups.groups;\n                this._loading$.off();\n            } else {\n                this._log.info('There are no Groups');\n                this._loading$.off();\n            }\n        }, error => {\n            this._log.debug('Getting groups failed', error);\n            this._loading$.off();\n        });\n    }\n}\n","import {FormControl, Validators} from '@angular/forms';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ExtendedProcessRole, ProcessList} from '../role-assignment/services/ProcessList';\nimport {GroupInterface} from '../../resources/interface/group';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {UserInviteService} from './services/user-invite.service';\nimport {OrganizationListService} from './services/organization-list.service';\nimport {SignUpService} from '../../authentication/sign-up/services/sign-up.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {UserInvitationRequest} from '../../authentication/sign-up/models/user-invitation-request';\nimport {Component, OnInit} from '@angular/core';\nimport {take} from 'rxjs/operators';\n\n@Component({\n    selector: 'ncc-abstract-user-invite',\n    template: ''\n})\nexport abstract class AbstractUserInviteComponent implements OnInit {\n\n    public invitedEmailControl: FormControl;\n    public invitedGroups: Array<GroupInterface>;\n    public invitedRoles: Array<ExtendedProcessRole>;\n    public nets: ProcessList;\n    public loading: LoadingEmitter;\n\n    constructor(protected _userInviteService: UserInviteService,\n                protected _orgList: OrganizationListService,\n                protected _signUpService: SignUpService,\n                protected _snackBar: SnackBarService,\n                protected _translate: TranslateService) {\n        this.nets = this._userInviteService.processList;\n        this.loading = new LoadingEmitter();\n        this.invitedEmailControl = new FormControl('', [Validators.email, Validators.required]);\n        this.invitedGroups = [];\n        this.invitedRoles = [];\n    }\n\n    public get groups() {\n            return this._orgList.groups;\n    }\n\n    ngOnInit(): void {\n            this.nets.loadProcesses();\n            this._orgList.loadGroups();\n    }\n\n    public removeGroup(org: GroupInterface): void {\n            const itemIndex = this.invitedGroups.findIndex(g => g.id === org.id);\n            if (itemIndex !== -1) {\n            this.invitedGroups.splice(itemIndex, 1);\n        }\n    }\n\n    public addGroup(org: GroupInterface): void {\n            const itemIndex = this.invitedGroups.findIndex(g => g.id === org.id);\n            if (itemIndex === -1) {\n            this.invitedGroups.push(org);\n        }\n    }\n\n    public removeRole(role: ExtendedProcessRole): void {\n            const itemIndex = this.invitedRoles.findIndex(r => r.stringId === role.stringId);\n            if (itemIndex !== -1) {\n            this.invitedRoles.splice(itemIndex, 1);\n        }\n    }\n\n    public addRole(role: ExtendedProcessRole): void {\n            const itemIndex = this.invitedRoles.findIndex(r => r.stringId === role.stringId);\n            if (itemIndex === -1) {\n            this.invitedRoles.push(role);\n        }\n    }\n\n    public invite(): void {\n        if (!this.invitedEmailControl.valid) {\n            this._snackBar.openErrorSnackBar(this._translate.instant('admin.user-invite.emailFieldMandatory'));\n            return;\n        }\n        if (this.invitedGroups.length === 0) {\n            this._snackBar.openErrorSnackBar(this._translate.instant('admin.user-invite.oneOrMoreOrganization'));\n            return;\n        }\n\n        const invitation: UserInvitationRequest = {\n            email: this.invitedEmailControl.value,\n            groups: this.invitedGroups.map(org => org.id),\n            processRoles: this.invitedRoles.map(role => role.stringId)\n        };\n\n        this.loading.on();\n        this._signUpService.invite(invitation).pipe(take(1)).subscribe(success => {\n            if (success) {\n                this._snackBar.openSuccessSnackBar(this._translate.instant('admin.user-invite.inviteSent'));\n                this.invitedEmailControl.setValue('');\n                this.invitedGroups = [];\n                this.invitedRoles = [];\n            } else {\n                this._snackBar.openErrorSnackBar(this._translate.instant('admin.user-invite.inviteFailed'));\n            }\n            this.loading.off();\n        });\n    }\n}\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, forkJoin, Observable, of, Subject, timer} from 'rxjs';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {Pagination} from '../../resources/interface/pagination';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {catchError, map, mergeMap, scan, tap} from 'rxjs/operators';\nimport {HttpParams} from '@angular/common/http';\nimport {PaginationParams} from '../../utility/pagination/pagination-params';\nimport {LdapGroup, LdapGroupResponseBody} from '../../resources/interface/ldapGroupResponseBody';\nimport {LdapGroupResourceService} from '../../resources/engine-endpoint/ldap-group-resource.service';\nimport {MessageResource} from '../../resources/interface/message-resource';\n\nexport interface LdapGroupListItem extends LdapGroup {\n    selected: boolean;\n    roles: Set<string>;\n\n    toggle(): void;\n}\n\n@Injectable()\nexport class LdapGroupListService implements OnDestroy {\n\n    /**\n     * Ldap Group Value array stream, that represents ldap group loading from backend.\n     */\n    protected readonly _ldapGroups$: Observable<Array<LdapGroupListItem>>;\n    /**\n     * Emit ldap group loading status from backend.\n     */\n    protected _loading$: LoadingEmitter;\n    /**\n     * Number stream of next page ldap group list, that to be requested from backend.\n     */\n    protected _nextPage$: BehaviorSubject<number>;\n    /**\n     * Signals the end of loaded ldap groups.\n     */\n    protected _endOfData: boolean;\n    /**\n     * Necessary for pagination parameters in ldap group assign loading from backend.\n     */\n    protected _pagination: Pagination;\n    /**\n     * Signals if response is empty or no.\n     */\n    protected _clear: boolean;\n    /**\n     * The search content that should be applied to the request\n     */\n    protected _searchQuery: string;\n    /**\n     * Roles that should be applied to the request\n     */\n    public rolesQuery: Array<string>;\n    /**\n     * negative Roles that should be applied to the request\n     */\n    public negativeRolesQuery: Array<string>;\n    protected _updateProgress$: LoadingEmitter;\n    protected _ldapGroupsReload$: Subject<void>;\n\n\n    /**\n     * Inject services.\n     * Initialize declared attributes.\n     *\n     * Loading and mapped stream of ldap groups.\n     * @param _resources Loading ldap groups from backend.\n     * @param _log Logging action status.\n     * @param _snackbar Display info about loading from backend for ldap group.\n     * @param _translate Translate messages for ldap group.\n     */\n    constructor(protected _resources: LdapGroupResourceService,\n                protected _log: LoggerService,\n                protected _snackbar: SnackBarService,\n                protected _translate: TranslateService) {\n        this._loading$ = new LoadingEmitter();\n        this._updateProgress$ = new LoadingEmitter();\n        this._ldapGroupsReload$ = new Subject<void>();\n        this._nextPage$ = new BehaviorSubject<number>(null);\n        this._endOfData = false;\n        this._pagination = {\n            size: 20,\n            totalElements: undefined,\n            totalPages: undefined,\n            number: -1\n        };\n        this._searchQuery = '';\n        this._clear = false;\n        this.negativeRolesQuery = new Array<string>();\n        this.rolesQuery = new Array<string>();\n\n        const ldapGroupsMap = this._nextPage$.pipe(\n            mergeMap(p => this.loadPage(p)),\n            tap(() => {\n                if (!this._clear) {\n                    this._ldapGroupsReload$.next();\n                }\n            }),\n            scan((acc, value) => {\n                const result = this._clear ? {} : {...acc, ...value};\n                this._clear = false;\n                return result;\n            }, {})\n        );\n        this._ldapGroups$ = ldapGroupsMap.pipe(\n            map(v => Object.values(v) as Array<LdapGroupListItem>),\n        );\n    }\n\n    ngOnDestroy(): void {\n        this._loading$.complete();\n        this._updateProgress$.complete();\n        this._ldapGroupsReload$.complete();\n        this._nextPage$.complete();\n    }\n\n    public get loading(): boolean {\n        return this._loading$.isActive;\n    }\n\n    public get loading$(): Observable<boolean> {\n        return this._loading$.asObservable();\n    }\n\n    public get ldapGroupsReload$(): Observable<void> {\n        return this._ldapGroupsReload$.asObservable();\n    }\n\n    public get ldapGroups$(): Observable<Array<LdapGroupListItem>> {\n        return this._ldapGroups$;\n    }\n\n    public get updating$(): Observable<boolean> {\n        return this._updateProgress$.asObservable();\n    }\n\n    public get totalLdapGroups(): number {\n        return this._pagination.totalElements ? this._pagination.totalElements : 0;\n    }\n\n    /**\n     * Get all ldapGroups from backend and mapped to [ldapGroupValue]{@link ldapGroupValue} interface with catching errors.\n     * @param page Page number that is requested. / Next page ldapGroups list.\n     */\n    public loadPage(page: number): Observable<{ [k: string]: LdapGroupListItem }> {\n        if (page === null || page === undefined || this._clear) {\n            return of({});\n        }\n        let params: HttpParams = new HttpParams();\n        params = this.addPageParams(params, page);\n        this._loading$.on();\n        return this._resources.searchLdapGroups({fulltext: this._searchQuery}).pipe(\n            catchError(err => {\n                this._log.error('Loading ldap groups has failed on page ' + this._pagination.number, err);\n                return of({ldapGroupResponseBodies: [], pagination: {...this._pagination, number: this._pagination.number - 1}});\n            }),\n            tap(ldapGroupResponseBody => this._endOfData = !Array.isArray(ldapGroupResponseBody.ldapGroupResponseBodies) ||\n                (Array.isArray(ldapGroupResponseBody.ldapGroupResponseBodies)\n                    && ldapGroupResponseBody.ldapGroupResponseBodies.length === 0)),\n            map(ldapGroupResponseBody => (Array.isArray(ldapGroupResponseBody.ldapGroupResponseBodies) ?\n                ldapGroupResponseBody : {...ldapGroupResponseBody, ldapGroupResponseBodies: []})),\n            map( ldapGroupResponseBody => {\n                const result = {};\n                ldapGroupResponseBody.ldapGroupResponseBodies.forEach( ldapGroup => {\n                    const item = ldapGroup as LdapGroupListItem;\n                    item.roles = new Set<string>(ldapGroup.processRoles.map(pr => pr.stringId));\n                    item.processRoles = undefined;\n                    item.selected = false;\n                    item.toggle = function() {\n                        this.selected = !this.selected;\n                    };\n                    result[ldapGroup.dn] = item;\n                });\n                return result;\n            }),\n            tap(_ => this._loading$.off())\n        );\n    }\n\n    /**\n     * Set value to nextPage stream as next page ldapGroups list.\n     * @param lastRendered Last rendered ldapGroup index.\n     * @param totalRendered Total loaded size ldapGroups.\n     */\n    public nextPage(lastRendered: number, totalRendered: number) {\n        if (this.loading || this._endOfData) {\n            return;\n        }\n\n        if (lastRendered === totalRendered) {\n            this._nextPage$.next(this._pagination.number + 1);\n        }\n    }\n\n    /**\n     * Reload page with ldapGroups.\n     */\n    public reload(newSearchQuery = ''): void {\n        if (!this._ldapGroups$ || !this._pagination) {\n            return;\n        }\n        this._clear = true;\n        this._endOfData = false;\n        this._pagination.number = -1;\n        this._searchQuery = newSearchQuery;\n        this.nextPage(0, 0);\n        timer(100).subscribe(_ => {\n            this._pagination.number = -1;\n            this.nextPage(0, 0);\n        });\n    }\n\n    public updateRoles(selectedLdapGroups: Array<LdapGroupListItem>, selectedRoles: Array<string> = []):\n    Observable<Array<MessageResource>> {\n        if (!selectedLdapGroups || selectedLdapGroups.length === 0) {\n            return of([]);\n        }\n        this._updateProgress$.on();\n        return forkJoin(selectedLdapGroups.map(ldapGroup => this._resources.assignRolesToLdapGroup(\n            {groupDn: ldapGroup.dn, roleIds: selectedRoles}))).pipe(\n            tap(messages => {\n                messages.forEach((message, idx) => {\n                    if (message.error) {\n                        this._log.error(message.error, message);\n                        this._snackbar.openErrorSnackBar(message.error);\n                    } else {\n                        this._log.info(message.success);\n                        selectedLdapGroups[idx].roles = new Set<string>(selectedRoles);\n                        this._snackbar.openSuccessSnackBar(this._translate.instant('tasks.snackbar.rolesSuccessAssign'));\n                    }\n                });\n                this._updateProgress$.off();\n            }));\n    }\n\n    /**\n     * Returns HttpParams with page params addition.\n     * @param params Existing HttpParams.\n     * @param page Page number that is requested. / Next page ldapGroups list.\n     */\n    protected addPageParams(params: HttpParams, page?: number): HttpParams {\n        params = params.set(PaginationParams.PAGE_SIZE, `${this._pagination.size}`);\n        page = page !== null ? page : this._pagination.number;\n        params = params.set(PaginationParams.PAGE_NUMBER, `${page}`);\n        return params;\n    }\n}\n","import { Injectable } from '@angular/core';\nimport {ProcessList} from '../../role-assignment/services/ProcessList';\nimport {PetriNetResourceService} from '../../../resources/engine-endpoint/petri-net-resource.service';\nimport {SnackBarService} from '../../../snack-bar/services/snack-bar.service';\nimport {LoggerService} from '../../../logger/services/logger.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {LdapGroupListService} from '../../../groups/services/ldap-group-list.service';\nimport {LdapGroupResourceService} from '../../../resources/engine-endpoint/ldap-group-resource.service';\n\n@Injectable()\nexport class RoleAssignmentLdapGroupService {\n\n    protected readonly _ldapGroupList: LdapGroupListService;\n    protected readonly _processList: ProcessList;\n\n    constructor(protected ldapGroupResources: LdapGroupResourceService,\n                protected processResources: PetriNetResourceService,\n                protected snackbar: SnackBarService,\n                protected _log: LoggerService,\n                protected _translate: TranslateService) {\n        this._ldapGroupList = new LdapGroupListService(ldapGroupResources, _log, snackbar, _translate);\n        this._processList = new ProcessList(processResources, _log);\n    }\n\n    public get ldapGroupList(): LdapGroupListService {\n        return this._ldapGroupList;\n    }\n\n    public get processList(): ProcessList {\n        return this._processList;\n    }\n}\n","import {AfterViewInit, Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {MatSelectionList} from '@angular/material/list';\nimport {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {ProcessList, ExtendedProcessRole, ProcessVersion} from '../role-assignment/services/ProcessList';\nimport {FormControl} from '@angular/forms';\nimport {debounceTime} from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\nimport {RoleAssignmentLdapGroupService} from './services/role-assignment-ldap-group.service';\nimport {LdapGroupListItem, LdapGroupListService} from '../../groups/services/ldap-group-list.service';\n\n@Component({\n    selector: 'ncc-abstract-ldap-group-role-assignment',\n    template: ''\n})\nexport abstract class AbstractLdapGroupRoleAssignmentComponent implements OnInit, AfterViewInit, OnDestroy {\n\n    @ViewChild('ldapGroupList') public ldapGroupList: MatSelectionList;\n    @ViewChild(CdkVirtualScrollViewport) public viewport: CdkVirtualScrollViewport;\n\n    public ldapGroup: LdapGroupListService;\n    public nets: ProcessList;\n    public ldapGroupMultiSelect: boolean;\n    public searchLdapGroupControl = new FormControl();\n    protected SEARCH_DEBOUNCE_TIME = 600;\n    protected subValueChanges: Subscription;\n    protected subLdapGroup: Subscription;\n\n    constructor(protected _service: RoleAssignmentLdapGroupService) {\n        this.ldapGroup = this._service.ldapGroupList;\n        this.nets = this._service.processList;\n        this.ldapGroupMultiSelect = true;\n    }\n\n    ngOnInit(): void {\n        this.nets.loadProcesses();\n        this.subValueChanges = this.searchLdapGroupControl.valueChanges.pipe(\n            debounceTime(this.SEARCH_DEBOUNCE_TIME)\n        ).subscribe(searchText => {\n            this.ldapGroup.reload(searchText);\n        });\n    }\n\n    ngAfterViewInit(): void {\n        this.subLdapGroup = this.ldapGroup.ldapGroupsReload$.subscribe(() => {\n            this.ldapGroupList.deselectAll();\n            this.ldapGroupList.selectedOptions.clear();\n            this.autoSelectRoles();\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.subValueChanges.unsubscribe();\n        this.subLdapGroup.unsubscribe();\n        this.ldapGroup = undefined;\n        this.nets = undefined;\n    }\n\n    public loadNextLdapGroupPage(): void {\n        if (!this.viewport) {\n            return;\n        }\n        this.ldapGroup.nextPage(this.viewport.getRenderedRange().end, this.viewport.getDataLength());\n    }\n\n    public autoSelectRoles(): void {\n        const all = this.ldapGroupList.selectedOptions.selected.map(option => (option.value as LdapGroupListItem).roles);\n        if (all.length === 0) {\n            this.nets.selectRoles(new Set<string>([]));\n        }\n\n        const intersection = all.reduce((acc, curr) => new Set([...acc].filter(s => curr.has(s))), all[0]);\n        this.nets.selectRoles(intersection);\n    }\n\n    public update(role: ExtendedProcessRole): void {\n        this.nets.updateSelectedRoles(role);\n        const selected = this.ldapGroupList.selectedOptions.selected.map(option => (option.value as LdapGroupListItem));\n        this.ldapGroup.updateRoles(selected, this.nets.selectedRoles).subscribe(_ => {\n            this.autoSelectRoles();\n        });\n    }\n\n    public selectAllLdapGroup(select: boolean): void {\n        this.ldapGroupList.options.forEach(option => {\n            (option.value as LdapGroupListItem).selected = select;\n        });\n        this.autoSelectRoles();\n    }\n\n    public toggleAllRoles(net: ProcessVersion, select: boolean): void {\n        net.roles.forEach(r => {\n            r.selected = select;\n            this.nets.updateSelectedRoles(r);\n        });\n        const selected = this.ldapGroupList.selectedOptions.selected.map(option => (option.value as LdapGroupListItem));\n        this.ldapGroup.updateRoles(selected, this.nets.selectedRoles).subscribe(_ => {\n            this.autoSelectRoles();\n        });\n    }\n}\n","/* CLASSES */\nexport * from './role-assignment/abstract-role-assignment.component';\nexport * from './user-invite/abstract-user-invite.component';\nexport * from './role-assignment-ldap-group/abstract-ldap-group-role-assignment.component';\n\n/* SERVICES */\nexport * from './role-assignment/services/role-assignment.service';\nexport * from './role-assignment/services/ProcessList';\nexport * from './user-invite/services/user-invite.service';\nexport * from './user-invite/services/organization-list.service';\nexport * from './role-assignment-ldap-group/services/role-assignment-ldap-group.service';\n","import {forkJoin, Observable, of} from 'rxjs';\nimport {Page} from '../../resources/interface/page';\nimport {Params} from '../../resources/resource-provider.service';\nimport {Pagination} from '../../resources/interface/pagination';\nimport {HttpParams} from '@angular/common/http';\nimport {concatMap, map} from 'rxjs/operators';\nimport {hasContent} from './page-has-content';\nimport {PaginationParams} from './pagination-params';\n\n/**\n * Loads all pages from the given endpoint and returns their content as one array\n * @param source the method that is used to load an individual page, it must support pagination parameters\n * @param filter the filter/query object that is used to specify the requested objects. The `source` argument must accept this filter.\n * @param pagination configuration of the initial pagination.\n * Pages will be loaded from the provided page number onwards, page size will be upheld.\n * @returns content of all pages from the given page onwards (or from the start if no `pagination` argument was provided) as a single Array\n */\nexport function loadAllPages<T>(source: (filter: any, params: Params) => Observable<Page<T>>,\n                                filter: any,\n                                pagination?: Pagination): Observable<Array<T>> {\n    const basePagination: Pagination = pagination ? pagination : {number: 0, size: 20, totalPages: undefined, totalElements: undefined};\n\n    return source(filter, paginationParams(basePagination)).pipe(\n        map(page => {\n            basePagination.totalPages = page.pagination.totalPages;\n            const pages = {};\n            pages[basePagination.number] = (of(page.content));\n            if (basePagination.number < basePagination.totalPages) {\n                for (let pn = basePagination.number + 1; pn < basePagination.totalPages; pn++) {\n                    const pagin: Pagination = Object.assign({}, basePagination, {number: pn});\n                    pages[pn] = mapToContent(source, filter, pagin);\n                }\n            }\n            return forkJoin(pages);\n        }),\n        concatMap(o => o),\n        map((joined: {[k: string]: Array<T>}) => {\n            const result = [];\n            Object.values(joined).filter(v => Array.isArray(v)).forEach(arr => result.push(...arr));\n            return result;\n        })\n    );\n}\n\nfunction paginationParams(basePagination: Pagination, pageNumber?: number): HttpParams {\n    let params = new HttpParams();\n    params = params.set(PaginationParams.PAGE_SIZE, `${basePagination.size}`);\n    params = params.set(PaginationParams.PAGE_NUMBER, (pageNumber !== undefined ? pageNumber : basePagination.number) + '');\n    return params;\n}\n\nfunction mapToContent<T>(source: (filter: any, params: Params) => Observable<Page<T>>,\n                         filter: any,\n                         pagination: Pagination): Observable<Array<T>> {\n    return source(filter, paginationParams(pagination)).pipe(\n        map(page => {\n            if (hasContent(page)) {\n                return page.content;\n            }\n            return [];\n        })\n    );\n}\n","import {BaseFilter} from '../search/models/base-filter';\nimport {DataGroup} from '../resources/interface/data-groups';\nimport {NAE_NAVIGATION_ITEM_TASK_DATA} from '../navigation/model/filter-case-injection-token';\nimport {FilterExtractionService} from '../navigation/utility/filter-extraction.service';\nimport {Filter} from '../filter/models/filter';\n\n/**\n * Converts an {@link NAE_NAVIGATION_ITEM_TASK_DATA} injection token into {@link NAE_BASE_FILTER}\n * @param extractionService\n * @param navigationItemTaskData a navigation item task containing the aggregated data representing a navigation item\n */\nexport function navigationItemTaskFilterFactory(extractionService: FilterExtractionService,\n                                                navigationItemTaskData: Array<DataGroup>,\n                                                filterData?: Filter): BaseFilter {\n    return {\n        filter: extractionService.extractCompleteFilterFromData(navigationItemTaskData, filterData)\n    };\n}\n","import {Type} from '@angular/core';\nimport {Category} from '../search/models/category/category';\nimport {UserFilterConstants} from '../filter/models/user-filter-constants';\nimport {getFieldFromDataGroups} from './get-field';\nimport {FilterField} from '../data-fields/filter-field/models/filter-field';\nimport {DataGroup} from '../resources/interface/data-groups';\nimport {CategoryResolverService} from '../search/category-factory/category-resolver.service';\nimport {FilterType} from '../filter/models/filter-type';\n\n/**\n * Creates search categories based on the metadata stored in the filter case\n * @param categoryResolverService\n * @param navigationItemTaskData task data of a navigation item task, the data must contain a filter field, that is used\n * to generate the categories\n * @param defaultCaseSearchCategories the default case search categories that should be merged with the categories provided by the filter\n * field, if the filter metadata allow it and the filter is a case filter\n * @param defaultTaskSearchCategories the default task search categories that should be merged with the categories provided by the filter\n * field, if the filter metadata allow it and the filter is a task filter\n */\nexport function navigationItemTaskCategoryFactory(categoryResolverService: CategoryResolverService,\n                                                  navigationItemTaskData: Array<DataGroup>,\n                                                  defaultCaseSearchCategories: Array<Type<Category<any>>>,\n                                                  defaultTaskSearchCategories: Array<Type<Category<any>>>): Array<Type<Category<any>>> {\n    const filterField = getFieldFromDataGroups(navigationItemTaskData, UserFilterConstants.FILTER_FIELD_ID) as FilterField;\n\n    if (filterField === undefined) {\n        throw new Error(\n            `Provided navigation item task data does not contain a filter field with ID '${UserFilterConstants.FILTER_FIELD_ID\n            }'! Search categories cannot be generated from it!`);\n    }\n\n    const merge = new Set();\n    const cats = filterField.filterMetadata.searchCategories.map(cat => {\n        const category = categoryResolverService.toClass(cat);\n        merge.add(category);\n        return category;\n    });\n\n    if (filterField.filterMetadata.defaultSearchCategories) {\n        (filterField.filterMetadata.filterType === FilterType.CASE ? defaultCaseSearchCategories : defaultTaskSearchCategories)\n            .forEach(cat => {\n                if (!merge.has(cat)) {\n                    cats.push(cat);\n                }\n            });\n    }\n\n    return cats;\n}\n","import {DataGroup} from \"../resources/interface/data-groups\";\nimport {extractFieldValueFromData} from \"../navigation/utility/navigation-item-task-utility-methods\";\nimport {GroupNavigationConstants} from \"../navigation/model/group-navigation-constants\";\n\n\nexport function navigationItemCaseViewDefaultHeadersFactory(navigationItemTaskData: DataGroup[]): Array<string> | undefined {\n    return navigationItemDefaultHeadersFactory(navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_USE_CASE_DEFAULT_HEADERS, GroupNavigationConstants.ITEM_FIELD_ID_CASE_DEFAULT_HEADERS)\n}\n\nexport function navigationItemTaskViewDefaultHeadersFactory(navigationItemTaskData: DataGroup[]): Array<string> | undefined {\n    return navigationItemDefaultHeadersFactory(navigationItemTaskData, GroupNavigationConstants.ITEM_FIELD_ID_USE_TASK_DEFAULT_HEADERS, GroupNavigationConstants.ITEM_FIELD_ID_TASK_DEFAULT_HEADERS)\n}\n\nfunction navigationItemDefaultHeadersFactory(navigationItemTaskData: DataGroup[], useFieldId: string, defaultHeadersFieldId: string): Array<string> | undefined {\n    try {\n        const isUse = extractFieldValueFromData<boolean>(navigationItemTaskData, useFieldId);\n        if (isUse) {\n            const defaultHeaders = extractFieldValueFromData<string>(navigationItemTaskData, defaultHeadersFieldId);\n            if (defaultHeaders === undefined || defaultHeaders === \"\") {\n                return undefined;\n            }\n            return defaultHeaders.split(',');\n        } else {\n            return undefined;\n        }\n    } catch (e) {\n        return undefined;\n    }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n    name: 'isEmpty',\n})\nexport class IsEmptyPipe implements PipeTransform {\n\n    /**\n     * Check if is value is empty.\n     * @param value\n     * @returns True for:\n     *  - null\n     *  - undefined\n     *  - Array if Array.length === 0\n     *  - String if string.length === 0\n     *  - Object with no keys\n     *  - (Set | Map).size === 0\n     *  otherwise false.\n     */\n    transform(value: Array<unknown> | Object | string | Set<unknown> | Map<unknown, unknown>): boolean {\n        if (value === null || value === undefined) return true;\n        if (Array.isArray(value)) return (value as Array<unknown>).length === 0;\n        if (value instanceof Set) return value.size === 0;\n        if (value instanceof Map) return value.size === 0;\n        if ((typeof value) === 'string') return (value as string).length === 0;\n        if ((typeof value) === 'object') return Object.keys(value).length === 0;\n        return false;\n    }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n    name: 'isNonEmpty',\n})\nexport class IsNonEmptyPipe implements PipeTransform {\n\n    /**\n     * Check if is value is not empty.\n     * @param value\n     * @returns false for:\n     *  - null\n     *  - undefined\n     *  - Array if Array.length === 0\n     *  - String if string.length === 0\n     *  - Object with no keys\n     *  - (Set | Map).size === 0\n     *  otherwise true.\n     */\n    transform(value: Array<unknown> | Object | string | Set<unknown> | Map<unknown, unknown>): unknown {\n        if (value === null || value === undefined) return false;\n        if (Array.isArray(value)) return (value as Array<unknown>).length !== 0;\n        if (value instanceof Set) return value.size !== 0;\n        if (value instanceof Map) return value.size !== 0;\n        if ((typeof value) === 'string') return (value as string).length !== 0;\n        if ((typeof value) === 'object') return Object.keys(value).length !== 0;\n        return true;\n    }\n\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n    name: 'contains',\n})\nexport class ContainsPipe implements PipeTransform {\n\n    transform(value: Array<unknown> | Set<unknown> | Map<unknown, unknown>, toCheck: unknown): boolean {\n        if (value === null || value === undefined) return false;\n        if (Array.isArray(value)) return value.includes(toCheck);\n        if (value instanceof Set || value instanceof Map) return value.has(toCheck);\n        return false;\n    }\n}\n","import {Directive, Input, TemplateRef, ViewContainerRef} from '@angular/core';\n\nexport class LetContext<T> {\n    $implicit: T;\n    nccLet: T;\n}\n\n@Directive({\n    selector: '[nccLet]'\n})\nexport class LetDirective<T = unknown> {\n\n    private readonly context: LetContext<T>;\n    private _hasView: boolean;\n\n    constructor(private templateRef?: TemplateRef<any>,\n                private viewContainer?: ViewContainerRef) {\n        this.context = new LetContext<T>();\n        this._hasView = false;\n    }\n    @Input()\n    set nccLet(obj: T) {\n        this.context.$implicit = this.context.nccLet = obj;\n        if (!this._hasView && !!this.templateRef && !!this.viewContainer && !!this.context) {\n            this.viewContainer.createEmbeddedView(this.templateRef, this.context);\n            this._hasView = true;\n        }\n    }\n\n    get hasView(): boolean {\n        return this._hasView;\n    }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {IsEmptyPipe} from './is-empty.pipe';\nimport { IsNonEmptyPipe } from './is-non-empty.pipe';\nimport {ContainsPipe} from \"./contains.pipe\";\nimport {LetDirective} from \"./directives/let.directive\";\n\n@NgModule({\n    declarations: [\n        IsEmptyPipe,\n        IsNonEmptyPipe,\n        ContainsPipe,\n        LetDirective\n    ],\n    imports: [\n        CommonModule,\n    ],\n    exports: [\n        IsEmptyPipe,\n        IsNonEmptyPipe,\n        ContainsPipe,\n        LetDirective\n    ],\n})\nexport class UtilityModule {\n}\n","import {AuthenticationService} from '../../../authentication/services/authentication/authentication.service';\nimport {Credentials} from '../../../authentication/models/credentials';\nimport {Observable, of} from 'rxjs';\nimport {User} from '../../../user/models/user';\nimport {Injectable} from '@angular/core';\nimport {AuthenticationMethodService} from \"../../../authentication/services/authentication-method.service\";\nimport {ConfigurationService} from \"../../../configuration/configuration.service\";\nimport {UserTransformer} from \"../../../authentication/models/user.transformer\";\nimport {SessionService} from \"../../../authentication/session/services/session.service\";\n\n@Injectable()\nexport class MockAuthenticationService extends AuthenticationService {\n\n    constructor(protected _auth: AuthenticationMethodService,\n                protected _config: ConfigurationService,\n                protected _sessionService: SessionService,\n                protected _userTransformer: UserTransformer) {\n        super(_auth, _config, _sessionService, _userTransformer);\n    }\n\n\n    login(credentials: Credentials): Observable<User> {\n        return of(new User('id', 'mail', 'name', 'surname', ['ADMIN'], [{stringId: 'id', name: 'id', importId: 'id'}]));\n    }\n\n    logout(): Observable<object> {\n        return of(undefined);\n    }\n\n     get isAuthenticated(): boolean {\n        return true;\n    }\n\n    get authenticated$(): Observable<boolean> {\n        return of(true);\n    }\n}\n","import { Injectable } from '@angular/core';\nimport {Observable, of} from 'rxjs';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class MockUserPreferenceService {\n\n    constructor() { }\n\n    public setTaskFilters(viewId: string, value: Array<string>): void {\n    }\n\n    public getTaskFilters(viewId: string): Array<string> | undefined {\n        return [];\n    }\n\n    public setCaseFilters(viewId: string, value: Array<string>): void {\n    }\n\n    public getCaseFilters(viewId: string): Array<string> | undefined {\n        return [];\n    }\n\n    public setHeaders(viewId: string, value: Array<string>): void {\n    }\n\n    public getHeaders(viewId: string): Array<string> | undefined {\n        return undefined;\n    }\n\n    public setLocale(locale: string): void {\n    }\n\n    public getLocale(): string {\n        return undefined;\n    }\n\n    set drawerWidth(drawerWidth: number) {\n    }\n\n    get drawerWidth(): number {\n        return undefined;\n    }\n\n    public get preferencesChanged$(): Observable<void> {\n        return of();\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, of} from 'rxjs';\nimport {Preferences} from '../../../resources/interface/preferences';\nimport {MessageResource} from '../../../resources/interface/message-resource';\nimport {UserResource} from '../../../resources/interface/user-resource';\n\n@Injectable()\nexport class MockUserResourceService {\n\n    public getPreferences(): Observable<Preferences> {\n        return of({\n            headers: {},\n            caseFilters: {},\n            taskFilters: {},\n            other: {}\n        });\n    }\n\n    public setPreferences(): Observable<MessageResource> {\n        return of({success: ''});\n    }\n\n    public getLoggedUser(): Observable<UserResource> {\n        return of({email: 'mail', id: 'id', name: 'name', surname: 'surname', fullName: 'name surname',\n            groups: [], authorities: [], nextGroups: [], processRoles: []});\n    }\n\n    // methods not yet mocked by this mock\n    public assignAuthority() {\n        throw new Error('Method not yet mocked - assignAuthority');\n    }\n\n    public assignRoles() {\n        throw new Error('Method not yet mocked - assignRoles');\n    }\n\n    public getAllAuthorities() {\n        throw new Error('Method not yet mocked - getAllAuthorities');\n    }\n\n    public getAll() {\n        throw new Error('Method not yet mocked - getAll');\n    }\n\n    public getAllWithRole() {\n        throw new Error('Method not yet mocked - getAllWithRole');\n    }\n\n    public getUser() {\n        throw new Error('Method not yet mocked - getUser');\n    }\n\n    public search() {\n        throw new Error('Method not yet mocked - search');\n    }\n\n    public updateUser() {\n        throw new Error('Method not yet mocked - updateUser');\n    }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, ReplaySubject} from 'rxjs';\nimport {User} from '../../../user/models/user';\n\n@Injectable()\nexport class MockUserService {\n\n    protected _userChange$: ReplaySubject<User>;\n    protected _user: User;\n\n    constructor() {\n        this._userChange$ = new ReplaySubject<User>(1);\n    }\n\n    get user$(): Observable<User> {\n        return this._userChange$.asObservable();\n    }\n\n    get user() {\n        return this._user;\n    }\n\n    set user(user: User) {\n        this._user = user;\n    }\n\n    public hasRoleById(roleStringId: string): boolean {\n        if (!roleStringId || !this._user.roles) {\n            return false;\n        }\n        return this._user.roles.some(r => r.stringId === roleStringId);\n    }\n\n    public hasRoleByName(roleName: string, netIdentifier: string): boolean {\n        if (!roleName || !netIdentifier || !this._user.roles) {\n            return false;\n        }\n        return this._user.roles.some(r => r.stringId === roleName && r.netImportId === netIdentifier);\n    }\n\n    hasAuthority(): boolean {\n        return true;\n    }\n\n    public isUserEmpty(user: User): boolean {\n        return !user || (!user.id && user.roles.length === 0);\n    }\n\n    public isCurrentUserEmpty(): boolean {\n        return this.isUserEmpty(this.user)\n    }\n\n}\n","import {Observable, of} from 'rxjs';\nimport {AuthenticationMethodService} from '../../../authentication/services/authentication-method.service';\nimport {Credentials} from '../../../authentication/models/credentials';\nimport {UserResource} from '../../../resources/interface/user-resource';\n\nexport class MockAuthenticationMethodService extends AuthenticationMethodService {\n    login(credentials: Credentials): Observable<UserResource> {\n        return of({email: 'mail', id: 'id', name: 'name', surname: 'surname', fullName: 'name surname',\n            groups: [], authorities: [], nextGroups: [], processRoles: []});\n    }\n\n    logout(): Observable<object> {\n        return of(undefined);\n    }\n}\n","import {UserRegistrationRequest} from '../../../authentication/sign-up/models/user-registration-request';\nimport {Observable, of} from 'rxjs';\nimport {MessageResource} from '../../../resources/interface/message-resource';\nimport {UserInvitationRequest} from '../../../authentication/sign-up/models/user-invitation-request';\nimport {UserChangePasswordRequest} from \"../../../authentication/profile/models/user-change-password-request\";\n\n/**\n * Mock the {@link SignUpService}. By default all responses are successful. Responses can be customised.\n */\nexport class MockSignUpService {\n\n    public signupResponse: Observable<MessageResource> = of({success: 'success'});\n    public inviteResponse: Observable<MessageResource> = of({success: 'success'});\n    public resetPasswordResponse: Observable<MessageResource> = of({success: 'success'});\n    public recoverPasswordResponse: Observable<MessageResource> = of({success: 'success'});\n    public verifyResponse: Observable<MessageResource> = of({success: 'success'});\n    public changePasswordResponse: Observable<MessageResource> = of({success: 'success'});\n\n    constructor() {\n    }\n\n    public signup(newUser: UserRegistrationRequest): Observable<MessageResource> {\n        return this.signupResponse;\n    }\n\n    public invite(invitation: UserInvitationRequest): Observable<MessageResource> {\n        return this.inviteResponse;\n    }\n\n    public resetPassword(email: string): Observable<MessageResource> {\n        return this.resetPasswordResponse;\n    }\n\n    public recoverPassword(token, password): Observable<MessageResource> {\n        return this.recoverPasswordResponse;\n    }\n\n    public verify(token: string): Observable<MessageResource> {\n        return this.verifyResponse;\n    }\n\n    public changePassword(change: UserChangePasswordRequest): Observable<MessageResource> {\n        return this.changePasswordResponse;\n    }\n}\n","import {SearchAutocompleteOption} from '../../../search/models/category/search-autocomplete-option';\nimport {UserAutocomplete} from '../../../search/models/category/user-autocomplete';\n\n/**\n * @param userName name of the mock user value\n * @param userId id of the mock user value\n * @param normalUser if not the user is the special ME user option\n */\nexport function mockUserAutocompleteValue(userName: string, normalUser = true, userId?: string)\n    : SearchAutocompleteOption<Array<string>> {\n    return {\n        text: userName,\n        value: [normalUser ? userId : UserAutocomplete.USER_ME_TEMPLATE],\n        icon: normalUser ? UserAutocomplete.USER_ICON : UserAutocomplete.USER_ME_ICON\n    };\n}\n","import {Task} from '../../../resources/interface/task';\nimport {AssignPolicy, DataFocusPolicy, FinishPolicy} from '../../../task-content/model/policy';\n\n/**\n * Creates a mock Task instance with the given attributes.\n *\n * The attributes are filled with mostly empty values, if you want to make a test that uses some of them,\n * we recommend setting them yourself, as the returned object might change between versions.\n */\nexport function createMockTask(stringId = 'stringId',\n                               title = 'taskTitle',\n                               transitionId = 'transitionId',\n                               cols = 4): Task {\n    return {\n        caseId: 'string',\n        transitionId,\n        title,\n        caseColor: 'string',\n        caseTitle: 'string',\n        user: undefined,\n        roles: {},\n        users: {},\n        userRefs: {},\n        startDate: undefined,\n        finishDate: undefined,\n        assignPolicy: AssignPolicy.manual,\n        dataFocusPolicy: DataFocusPolicy.manual,\n        finishPolicy: FinishPolicy.manual,\n        stringId,\n        layout: {\n            offset: 0,\n            rows: 0,\n            cols\n        },\n        dataGroups: [],\n        _links: {}\n    };\n}\n","import {Case} from '../../../resources/interface/case';\n\n/**\n * Creates a mock Case instance with the given attributes.\n *\n * The attributes are filled with mostly empty values, if you want to make a test that uses some of them,\n * we recommend setting them yourself, as the returned object might change between versions.\n */\nexport function createMockCase(stringId = 'stringId',\n                               processIdentifier = 'processIdentifier',\n                               title = 'title',\n                               petriNetId = 'petriNetId'): Case {\n    return {\n        lastModified: [],\n        visualId: '',\n        petriNetObjectId: {\n            timestamp: 0,\n            machineIdentifier: 0,\n            processIdentifier: 0,\n            counter: 0,\n            timeSecond: 0,\n            time: 0,\n            date: 0\n        },\n        processIdentifier,\n        title,\n        color: '',\n        creationDate: [],\n        immediateData: [],\n        author: {\n            email: '',\n            fullName: ''\n        },\n        resetArcTokens: {},\n        stringId,\n        petriNetId,\n        permissions: {},\n        users: {}\n    };\n}\n","import {ImmediateData} from '../../../resources/interface/immediate-data';\n\n/**\n * Creates a mock ImmediateData instance with the given attributes.\n *\n * The attributes are filled with mostly empty values, if you want to make a test that uses some of them,\n * we recommend setting them yourself, as the returned object might change between versions.\n */\nexport function createMockImmediateData(importId = 'importId', value: any = '', allowedNets?: Array<string>): ImmediateData {\n    return {\n        stringId: importId,\n        type: '',\n        value,\n        allowedNets\n    };\n}\n","import {Page} from '../../../resources/interface/page';\n\n/**\n * @param content the contents of the page\n * @returns a mock Page object with the size equivalent to the number of elements provided in the attribute.\n * If the content is empty the `content` attribute of the returned object is set to an empty object to mimic backend behavior.\n */\nexport function createMockPage<T>(content: Array<T> = []): Page<T> {\n    const page: Page<T> = {\n        content: {} as any,\n        pagination: {\n            size: 1,\n            totalElements: 0,\n            totalPages: 1,\n            number: 0\n        }\n    };\n    if (content.length > 0) {\n        page.content = content;\n        page.pagination.size = content.length;\n        page.pagination.totalElements = content.length;\n    }\n    return page;\n}\n","import {Net} from '../../../process/net';\nimport NetRole from '../../../process/netRole';\nimport {ImmediateData} from '../../../resources/interface/immediate-data';\nimport {Permissions} from '../../../process/permissions';\n\n/**\n * A mock transition representation used by the {@link createMockNet} function to populate the mock net with mock transition objects\n */\nexport interface MockTransition {\n    stringId: string;\n    title: string;\n}\n\n/**\n * Creates a mock Net instance with the given attributes.\n *\n * The attributes are filled with mostly empty values, if you want to make a test that uses some of them,\n * we recommend setting them yourself, as the returned object might change between versions.\n */\nexport function createMockNet(stringId = 'stringId',\n                              identifier = 'identifier',\n                              title = 'title',\n                              roles: Array<NetRole> = [],\n                              transitions: Array<MockTransition> = [],\n                              immediateData: Array<ImmediateData> = [],\n                              permissions: Permissions = {}): Net {\n    const net = new Net({\n        stringId,\n        title,\n        identifier,\n        uriNodeId: identifier,\n        version: '1.0.0',\n        initials: 'NET',\n        defaultCaseName: '',\n        createdDate: [2021, 2, 4, 12, 50, 0, 1612443000],\n        author: {\n            email: '',\n            fullName: ''\n        },\n        immediateData\n    });\n    net.roles = roles;\n    net.transitions = transitions.map(t => ({\n        ...t,\n        petriNetId: '',\n        immediateData: []\n    }));\n    net.permissions = permissions;\n    return net;\n}\n","import {BasicLayout} from '../../utility/grid-layout/model/grid-element';\n\n\nexport interface DataGroupLayout extends BasicLayout {\n    type: DataGroupLayoutType;\n    hideEmptyRows?: DataGroupHideEmptyRows;\n    compactDirection?: DataGroupCompact;\n    [k: string]: any;\n}\n\n/**\n * Determines what type of layouting algorithm should be used to position data fields in the data group\n */\nexport enum DataGroupLayoutType {\n    /**\n     * A grid based on x, y co-ordinates and width and height of each field\n     */\n    GRID = 'grid',\n    /**\n     * Evenly sized fields that fill all columns\n     */\n    FLOW = 'flow',\n    /**\n     * Layouting algorithm used in NAE versions < 4.0.0\n     */\n    LEGACY = 'legacy'\n}\n\n/**\n * Determines what direction(s) should be used when compacting form layout\n */\nexport enum DataGroupCompact {\n    /**\n     * No field layout compacting occurs\n     */\n    NONE = 'none',\n    /**\n     * Fields are moved up as far as they can fit. Fields declared in the same row might end up in different rows.\n     */\n    UP = 'up',\n}\n\n/**\n * Determines which empty rows should be hidden in the final layout\n */\nexport enum DataGroupHideEmptyRows {\n    /**\n     * All empty rows are removed from the final layout\n     */\n    ALL = 'all',\n    /**\n     * Only rows completely freed by compacting fields are removed.\n     *\n     * That is any rows that are empty before the compacting takes place are kept in the final layout.\n     * And any rows freed by compacting field (when using [DataGroupCompact.UP]{@link DataGroupCompact#UP})\n     * are removed from the final layout.\n     *\n     * When fields are compacted upwards all empty rows are naturally moved to the bottom of the layout.\n     * This option can be used to regulate the number of empty rows at the bottom to a constant number\n     * (by keeping only intended empty rows).\n     */\n    COMPACTED = 'compacted',\n    /**\n     * All empty rows are kept in the final layout\n     */\n    NONE = 'none',\n}\n","import {DataField} from '../../../data-fields/models/abstract-data-field';\nimport {DataGroup, DataGroupAlignment} from '../../../resources/interface/data-groups';\nimport {DataGroupCompact, DataGroupHideEmptyRows, DataGroupLayoutType} from '../../../resources/interface/data-group-layout';\n\n/**\n * Creates a mock {@link DataGroup} object instance containing the provided fields and having the provided configuration.\n * @param fields the {@link DataField}s contained in the data group\n * @param title the optional title of the data group\n * @param alignment alignment of the fields in non-full rows within the data group (affects flow and legacy layout)\n * @param layoutType the layout type of the data group\n * @param compact compacting rule for the data group\n * @param hideRows row hiding rule for the data group\n * @param stretch whether the `stretch` property of the data group is enabled or not\n * @param cols the number of columns of the data group layout\n * @param parentTaskId the ID of the parent task (if the data group is task-reffed)\n * @param parentTaskRefId the ID of the parent task ref (if the data group is task-reffed)\n * @param nestingLevel the nesting level of the data group (if the data group is task-reffed)\n */\nexport function createMockDataGroup(fields: Array<DataField<unknown>>,\n                                    title?: string,\n                                    alignment = DataGroupAlignment.START,\n                                    layoutType = DataGroupLayoutType.LEGACY,\n                                    compact?: DataGroupCompact,\n                                    hideRows?: DataGroupHideEmptyRows,\n                                    stretch = false,\n                                    cols = 4,\n                                    parentTaskId?: string,\n                                    parentTaskRefId?: string,\n                                    nestingLevel?: number): DataGroup {\n    return {\n        fields,\n        title,\n        alignment,\n        stretch,\n        layout: {\n            type: layoutType,\n            rows: 0,\n            compactDirection: compact,\n            hideEmptyRows: hideRows,\n            cols\n        },\n        parentTaskId,\n        parentTaskRefId,\n        nestingLevel,\n    };\n}\n","import {GridLayout} from '../../grid-layout/model/grid-element';\nimport {BooleanField} from '../../../data-fields/boolean-field/models/boolean-field';\nimport {ButtonField} from '../../../data-fields/button-field/models/button-field';\nimport {TemplateAppearance} from '../../../data-fields/models/template-appearance';\nimport {MaterialAppearance} from '../../../data-fields/models/material-appearance';\nimport {IncrementingCounter} from '../../incrementing-counter';\nimport {TaskRefField} from '../../../data-fields/task-ref-field/model/task-ref-field';\nimport {FieldTypeResource} from '../../../task-content/model/field-type-resource';\n\n/**\n * Creates a mock boolean or button field, with the specified properties\n * @param visible if `true` the fields behavior is set to `editable`, if `false` the fields behavior is set to `hidden`\n * @param layout position of the field in the grid layout\n * @param counterOrStringId if a `string` is provided its value will be used as the fields ID.\n * If a number is provided the fields ID will be set to 'f<number>'.\n * If an {@link IncrementingCounter} is provided the ID will follow the same pattern as for the `number` argument,\n * but the counter will be used to generate the number.\n * @param fieldType determines what type of field should be generated.\n * Currently only `boolean`, `button` and `task ref` fields are supported. If an unsupported field type is used an error is thrown.\n * @param taskRefValue determines the value of the task ref field if a task ref field is generated\n */\nexport function createMockField(visible = true,\n                                layout: GridLayout = {x: 0, y: 0, rows: 0, cols: 0},\n                                counterOrStringId: number | IncrementingCounter | string = 0,\n                                fieldType: FieldTypeResource.BOOLEAN | FieldTypeResource.BUTTON | FieldTypeResource.TASK_REF\n                                    = FieldTypeResource.BOOLEAN,\n                                taskRefValue: Array<string> = []): BooleanField | ButtonField | TaskRefField {\n    const b = visible ? {editable: true} : {hidden: true};\n    const l = {\n        ...layout,\n        template: TemplateAppearance.MATERIAL,\n        appearance: MaterialAppearance.OUTLINE,\n        offset: 0\n    };\n\n    let id;\n    if (counterOrStringId instanceof IncrementingCounter || typeof counterOrStringId === 'number') {\n        id = 'f' + (counterOrStringId instanceof IncrementingCounter ? counterOrStringId.next() : counterOrStringId);\n    } else {\n        id = counterOrStringId;\n    }\n\n    switch (fieldType) {\n        case FieldTypeResource.BOOLEAN:\n            return new BooleanField(id, 'title', false, b, '', '', l);\n        case FieldTypeResource.BUTTON:\n            return new ButtonField(id, 'title', b, 0, '', '', l);\n        case FieldTypeResource.TASK_REF:\n            return new TaskRefField(id, 'title', taskRefValue, b, '', '', l);\n        default:\n            throw new Error(`createMockField does not currently support fields of type '${fieldType}'`);\n    }\n}\n","import {CaseEventOutcome} from '../../../event/model/event-outcomes/case-outcomes/case-event-outcome';\nimport {Net} from '../../../process/net';\nimport {createMockNet} from './create-mock-net';\nimport {EventOutcome} from '../../../resources/interface/event-outcome';\nimport {Case} from '../../../resources/interface/case';\nimport {createMockCase} from './create-mock-case';\n\n/**\n * Creates a mock CaseEventOutcome with given case, net and outcomes attributes.\n *\n * If attributes are not specified, default values are used.\n */\nexport function createMockCaseOutcome(aCase: Case = createMockCase(), net: Net = createMockNet(), outcomes: Array<EventOutcome> = []) {\n    return {\n        net,\n        outcomes,\n        aCase,\n        message: 'Mock case event outcome'\n    } as CaseEventOutcome;\n}\n","import {TaskEventOutcome} from '../../../event/model/event-outcomes/task-outcomes/task-event-outcome';\nimport {Net} from '../../../process/net';\nimport {createMockNet} from './create-mock-net';\nimport {Case} from '../../../resources/interface/case';\nimport {createMockCase} from './create-mock-case';\nimport {EventOutcome} from '../../../resources/interface/event-outcome';\nimport {createMockTask} from './create-mock-task';\nimport {Task} from '../../../resources/interface/task';\n\n/**\n * Creates a mock TaskEventOutcome with given task, net, case and outcomes attributes.\n *\n * If attributes are not specified, default values are used.\n */\nexport function createMockTaskOutcome(task: Task = createMockTask(), net: Net = createMockNet(),\n                                      aCase: Case = createMockCase(), outcomes: Array<EventOutcome> = []) {\n    return {\n        outcomes,\n        task,\n        aCase,\n        net,\n        message: 'Mock case event outcome'\n    } as TaskEventOutcome;\n}\n","import {GetDataEventOutcome} from '../../../event/model/event-outcomes/data-outcomes/get-data-event-outcome';\nimport {Task} from '../../../resources/interface/task';\nimport {createMockTask} from './create-mock-task';\nimport {Net} from '../../../process/net';\nimport {createMockNet} from './create-mock-net';\nimport {Case} from '../../../resources/interface/case';\nimport {createMockCase} from './create-mock-case';\nimport {EventOutcome} from '../../../resources/interface/event-outcome';\nimport {createMockField} from './create-mock-field';\nimport {DataField} from '../../../data-fields/models/abstract-data-field';\n\nexport function createMockGetDataOutcome(data: Array<DataField<any>> = [createMockField()], task: Task = createMockTask(),\n                                         net: Net = createMockNet(), aCase: Case = createMockCase(), outcomes: Array<EventOutcome> = []) {\n    return {\n        net,\n        aCase,\n        task,\n        outcomes,\n        message: 'Mock get data event outcome',\n        data\n    } as GetDataEventOutcome;\n}\n","import {SetDataEventOutcome} from '../../../event/model/event-outcomes/data-outcomes/set-data-event-outcome';\nimport {Task} from '../../../resources/interface/task';\nimport {createMockTask} from './create-mock-task';\nimport {Net} from '../../../process/net';\nimport {createMockNet} from './create-mock-net';\nimport {Case} from '../../../resources/interface/case';\nimport {createMockCase} from './create-mock-case';\nimport {EventOutcome} from '../../../resources/interface/event-outcome';\nimport {ChangedFieldContainer} from '../../../resources/interface/changed-field-container';\n\n\n/**\n * Creates a mock TaskEventOutcome with given changedFields, task, net, case and outcomes attributes.\n *\n * If attributes are not specified, default values are used.\n */\nexport function createMockSetDataOutcome(changedFields: ChangedFieldContainer = { changedFields: {}}, task: Task = createMockTask(),\n                                         net: Net = createMockNet(), aCase: Case = createMockCase(), outcomes: Array<EventOutcome> = []) {\n    return {\n        net,\n        aCase,\n        task,\n        outcomes,\n        message: 'Mock set data event outcome',\n        changedFields,\n    } as SetDataEventOutcome;\n}\n","import {PetriNetEventOutcome} from '../../../event/model/event-outcomes/petrinet-outcomes/petri-net-event-outcome';\nimport {createMockNet} from './create-mock-net';\nimport {Net} from '../../../process/net';\nimport {EventOutcome} from '../../../resources/interface/event-outcome';\n/**\n * Creates a mock PetriNetEventOutcome with given net and outcomes attributes.\n *\n * If attributes are not specified, default values are used.\n */\nexport function createMockPetriNetOutcome(net: Net = createMockNet(), outcomes: Array<EventOutcome> = []) {\n    return {\n        outcomes,\n        net,\n        message: 'Mock petri net event outcome'\n    } as PetriNetEventOutcome;\n}\n","import {OperatorService} from '../../../search/operator-service/operator.service';\nimport {Category} from '../../../search/models/category/category';\nimport {Type} from '@angular/core';\nimport {Operator} from '../../../search/models/operator/operator';\n\n/**\n * Configures the provided {@link Category} instance with the provided operator and operands.\n *\n * @param category the object that should be configured\n * @param operatorService must be the same {@link OperatorService} instance as the one provided to the category's constructor\n * @param operator the desired operator class, must be one of the available operators for the provided category\n * @param operands the desired operands\n */\nexport function configureCategory(category: Category<unknown>,\n                                  operatorService: OperatorService,\n                                  operator: Type<Operator<any>>,\n                                  operands: Array<unknown>): void {\n    const op = operatorService.getOperator(operator);\n    category.selectOperator(category.allowedOperators.findIndex(o => o === op));\n    category.setOperands(operands);\n}\n","import {OperatorService} from '../../search/operator-service/operator.service';\nimport {Observable, of} from 'rxjs';\nimport {UserResourceService} from '../../resources/engine-endpoint/user-resource.service';\nimport {CategoryFactory} from '../../search/category-factory/category-factory';\nimport {Net} from '../../process/net';\nimport {SearchIndexResolverService} from '../../search/search-keyword-resolver-service/search-index-resolver.service';\nimport {OptionalDependencies} from '../../search/category-factory/optional-dependencies';\nimport {CategoryResolverService} from '../../search/category-factory/category-resolver.service';\nimport {OperatorResolverService} from '../../search/operator-service/operator-resolver.service';\nimport {AllowedNetsService} from '../../allowed-nets/services/allowed-nets.service';\n\nconst opResolver = new OperatorResolverService();\nconst opService = new OperatorService(opResolver);\n\nexport const createMockDependencies: (\n    allowedNets$?: Observable<Array<Net>>,\n    operatorService?: OperatorService,\n    userResourceService?: UserResourceService) => OptionalDependencies =\n    (\n        allowedNets$: Observable<Array<Net>> = of([]),\n        operatorService?: OperatorService,\n        userResourceService = {getAll: () => of({content: [], pagination: {}})} as UserResourceService\n    ) => {\n        const searchIndexResolver = new SearchIndexResolverService();\n        const allowedNetsService = {allowedNets$} as AllowedNetsService;\n\n        return {\n            categoryFactory: new CategoryFactory(\n                operatorService ?? opService,\n                null,\n                searchIndexResolver,\n                new CategoryResolverService(),\n                allowedNetsService,\n                userResourceService\n            ),\n            searchIndexResolver,\n            userResourceService,\n            allowedNetsService\n        };\n    };\n","import {ConfigurationService} from '../../configuration/configuration.service';\n\nexport class TestConfigurationService extends ConfigurationService {\n    constructor() {\n        super({\n            extends: 'nae-default',\n            providers: {\n                auth: {\n                    address: 'http://localhost:8080/api/',\n                    authentication: 'Basic',\n                    endpoints: {\n                        login: 'auth/login',\n                        logout: 'auth/logout',\n                        signup: 'auth/signup',\n                        changePassword: 'auth/changePassword',\n                        verification: 'auth/verify',\n                        verify: 'auth/token/verify',\n                        invite: 'auth/invite',\n                        reset: 'auth/reset',\n                        recover: '/auth/recover'\n                    },\n                    sessionBearer: 'X-Auth-Token',\n                    sessionTimeoutEnabled: false,\n                    sessionTimeout: 900\n                },\n                resources: [\n                    {\n                        name: 'case',\n                        address: 'http://localhost:8080/api/',\n                        format: 'hal',\n                        openApi: 'https://swagger.io'\n                    },\n                    {\n                        name: 'task',\n                        address: 'http://localhost:8080/api/',\n                        format: 'json'\n                    },\n                    {\n                        name: 'petrinet',\n                        address: 'http://localhost:8080/api/',\n                        format: 'json'\n                    },\n                    {\n                        name: 'user',\n                        address: 'http://localhost:8080/api/',\n                        format: 'json'\n                    },\n                    {\n                        name: 'dashboard',\n                        address: 'http://localhost:8080/api/',\n                        format: 'json'\n                    },\n                    {\n                        name: 'impersonation',\n                        address: 'http://localhost:8080/api/',\n                        format: 'json'\n                    }\n                ]\n            },\n            views: {\n                dashboard: {\n                    layout: {\n                        name: 'dashboard',\n                        params: {\n                            columns: 4,\n                            cards: [\n                                {\n                                    type: 'count',\n                                    title: 'All tasks',\n                                    resourceType: 'Task',\n                                    filter: {},\n                                    layout: {\n                                        x: 0,\n                                        y: 0,\n                                        rows: 1,\n                                        cols: 1\n                                    }\n                                },\n                                {\n                                    type: 'iframe',\n                                    url: 'https://netgrif.com/',\n                                    layout: {\n                                        x: 2,\n                                        y: 0,\n                                        rows: 2,\n                                        cols: 2\n                                    }\n                                },\n                                {\n                                    type: 'count',\n                                    title: 'All cases',\n                                    resourceType: 'Case',\n                                    filter: {},\n                                    layout: {\n                                        x: 1,\n                                        y: 1,\n                                        rows: 1,\n                                        cols: 1\n                                    }\n                                }, {\n                                    type: 'pie',\n                                    title: 'Custom',\n                                    resourceType: 'case',\n                                    query: {\n                                        aggs: {\n                                            result: {\n                                                terms: {\n                                                    field: 'dataSet.text.value.keyword'\n                                                }\n                                            }\n                                        }\n                                    },\n                                    filter: {},\n                                    layout: {\n                                        x: 0,\n                                        y: 1,\n                                        rows: 1,\n                                        cols: 1\n                                    }\n                                }, {\n                                    type: 'bar',\n                                    title: 'Custom',\n                                    resourceType: 'case',\n                                    query: {aggs: {result: {terms: {field: 'dataSet.text.value.keyword'}}}},\n                                    xAxisLabel: 'Country',\n                                    yAxisLabel: 'Population',\n                                    filter: {},\n                                    layout: {\n                                        x: 2,\n                                        y: 1,\n                                        rows: 1,\n                                        cols: 1\n                                    }\n                                }, {\n                                    type: 'line',\n                                    title: 'Custom',\n                                    resourceType: 'case',\n                                    query: {\n                                        aggs: {\n                                            result1: {terms: {field: 'dataSet.text.value.keyword'}},\n                                            result2: {terms: {field: 'dataSet.text.value.keyword'}}\n                                        }\n                                    },\n                                    xAxisLabel: 'Country',\n                                    yAxisLabel: 'Population',\n                                    filter: {},\n                                    layout: {\n                                        x: 0,\n                                        y: 2,\n                                        rows: 1,\n                                        cols: 1\n                                    }\n                                }, {\n                                    type: 'lineargauge',\n                                    title: 'Custom',\n                                    resourceType: 'case',\n                                    query: {aggs: {types_count: {value_count: {field: 'dataSet.text.value.keyword'}}}},\n                                    xAxisLabel: 'Country',\n                                    yAxisLabel: 'Population',\n                                    units: 'cases',\n                                    filter: {},\n                                    layout: {\n                                        x: 1,\n                                        y: 2,\n                                        rows: 1,\n                                        cols: 1\n                                    }\n                                }, {\n                                    type: 'default',\n                                    layout: {\n                                        x: 2,\n                                        y: 2,\n                                        rows: 1,\n                                        cols: 1\n                                    }\n                                }\n                            ]\n                        },\n                        componentName: 'MyDashboard'\n                    },\n                    access: 'private',\n                    navigation: {\n                        title: 'Dashboard',\n                        icon: 'dashboard'\n                    },\n                    routing: {\n                        path: 'comp-dashboard'\n                    }\n                },\n                cases: {\n                    layout: {\n                        name: 'emptyView',\n                        params: {\n                            allowedNets: []\n                        }\n                    },\n                    access: 'private',\n                    navigation: {\n                        title: 'Cases',\n                        icon: 'settings'\n                    },\n                    routing: {\n                        path: 'cases'\n                    },\n                    children: {\n                        some_cases: {\n                            layout: {\n                                name: 'emptyView'\n                            },\n                            access: 'private',\n                            navigation: {\n                                icon: 'account_circle'\n                            },\n                            routing: {\n                                path: 'some_cases'\n                            },\n                            children: {\n                                some_specifics: {\n                                    layout: {\n                                        name: 'emptyView'\n                                    },\n                                    access: 'private',\n                                    navigation: true,\n                                    routing: {\n                                        path: 'some_specifics'\n                                    }\n                                }\n                            }\n                        }\n                    }\n                },\n                task: {\n                    layout: {\n                        name: 'emptyView',\n                        params: {\n                            allowedNets: []\n                        }\n                    },\n                    access: 'private',\n                    navigation: {\n                        title: 'Tasks',\n                        icon: 'assignment'\n                    },\n                    routing: {\n                        path: 'task'\n                    },\n                    children: {\n                        some_tasks: {\n                            layout: {\n                                name: 'emptyView'\n                            },\n                            access: 'private',\n                            navigation: false,\n                            routing: {\n                                path: 'some_tasks'\n                            },\n                            children: {\n                                some_specifics: {\n                                    layout: {\n                                        name: 'emptyView'\n                                    },\n                                    access: 'private',\n                                    navigation: true,\n                                    routing: {\n                                        path: 'some_specifics'\n                                    }\n                                }\n                            }\n                        }\n                    }\n                }\n            },\n            theme: {\n                name: 'example-classico',\n                pallets: {\n                    light: {\n                        primary: {\n                            50: '',\n                            100: '',\n                            200: '',\n                            300: '',\n                            400: '',\n                            500: '',\n                            600: '',\n                            700: '',\n                            800: '',\n                            900: '',\n                            A100: '',\n                            A200: '',\n                            A400: '',\n                            A700: '',\n                            contrast: {\n                                light: [\n                                    '300',\n                                    '400',\n                                    '500',\n                                    '600',\n                                    '700',\n                                    '800',\n                                    '900'\n                                ],\n                                dark: [\n                                    '50',\n                                    '100',\n                                    '200'\n                                ]\n                            }\n                        },\n                        secondary: {\n                            50: '',\n                            100: '',\n                            200: '',\n                            300: '',\n                            400: '',\n                            500: '',\n                            600: '',\n                            700: '',\n                            800: '',\n                            900: '',\n                            A100: '',\n                            A200: '',\n                            A400: '',\n                            A700: '',\n                            contrast: {\n                                light: [\n                                    '300',\n                                    '400',\n                                    '500',\n                                    '600',\n                                    '700',\n                                    '800',\n                                    '900'\n                                ],\n                                dark: [\n                                    '50',\n                                    '100',\n                                    '200'\n                                ]\n                            }\n                        },\n                        warn: {\n                            50: '',\n                            100: '',\n                            200: '',\n                            300: '',\n                            400: '',\n                            500: '',\n                            600: '',\n                            700: '',\n                            800: '',\n                            900: '',\n                            A100: '',\n                            A200: '',\n                            A400: '',\n                            A700: '',\n                            contrast: {\n                                light: [\n                                    '300',\n                                    '400',\n                                    '500',\n                                    '600',\n                                    '700',\n                                    '800',\n                                    '900'\n                                ],\n                                dark: [\n                                    '50',\n                                    '100',\n                                    '200'\n                                ]\n                            }\n                        }\n                    },\n                    dark: {\n                        primary: 'blue',\n                        secondary: 'pink'\n                    }\n                }\n            },\n            assets: [\n                '../../../assets'\n            ],\n            filters: {\n                'all-cases': {\n                    title: 'All Cases',\n                    type: 'Case',\n                    access: 'public',\n                    body: [],\n                    mergeOperator: 'AND'\n                },\n                'all-tasks': {\n                    title: 'All Tasks',\n                    type: 'Task',\n                    access: 'public',\n                    body: {}\n                },\n                'some-tasks': {\n                    title: 'All Tasks',\n                    type: 'Task',\n                    access: 'public',\n                    body: [{}],\n                    mergeOperator: 'AND'\n                }\n            },\n            i18n: [\n                'sk-SK',\n                'en-US'\n            ],\n            services: {\n                log: {\n                    logWithDate: true,\n                    serializeExtraParams: true,\n                    includeLogLevel: true,\n                    publishers: [\n                        'console',\n                        'localStorage'\n                    ]\n                },\n                auth: {\n                    loginRedirect: 'login'\n                },\n                legal: {\n                    termsOfService: 'https://netgrif.com/',\n                    privacyPolicy: 'https://netgrif.com/'\n                },\n                groupNavigation: {\n                    groupNavigationRoute: 'config-route'\n                }\n            }\n        });\n    }\n}\n","import {SimpleFilter} from '../../filter/models/simple-filter';\nimport {BaseFilter} from '../../search/models/base-filter';\nimport {AllowedNetsServiceFactory} from '../../allowed-nets/services/factory/allowed-nets-service-factory';\n\nexport const TestCaseViewAllowedNetsFactory = (factory: AllowedNetsServiceFactory) => {\n    return factory.createFromConfig('cases');\n};\n\nexport const TestTaskViewAllowedNetsFactory = (factory: AllowedNetsServiceFactory) => {\n    return factory.createFromConfig('task');\n};\n\nexport const TestNoAllowedNetsFactory = (factory: AllowedNetsServiceFactory) => {\n    return factory.createFromArray([]);\n};\n\nexport const TestCaseBaseFilterProvider: () => BaseFilter = () => {\n    return {\n        filter: SimpleFilter.emptyCaseFilter()\n    };\n};\n\nexport const TestTaskBaseFilterProvider: () => BaseFilter = () => {\n    return {\n        filter: SimpleFilter.emptyTaskFilter()\n    };\n};\n","import {Injectable} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {ViewService} from '../../routing/view-service/view.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {LoggerService} from '../../logger/services/logger.service';\n\n@Injectable()\nexport class TestViewService extends ViewService {\n    constructor(config: ConfigurationService, router: Router, logger: LoggerService) {\n        super([], config, router, logger);\n    }\n}\n","import {HttpParams} from '@angular/common/http';\nimport {Observable, of} from 'rxjs';\nimport {Page} from '../../../resources/interface/page';\nimport {PaginationParams} from '../../pagination/pagination-params';\n\ninterface RequestedPagination {\n    pageSize: number;\n    pageNumber: number;\n}\n\n/**\n * A utility class that mock any pageable endpoint that takes one parameter\n */\nexport class MockEndpoint {\n\n    /**\n     * The content that is queries by the requests.\n     */\n    content: Array<string> = [];\n\n    /**\n     * @param filter - a filtering argument. This mock ignores it.\n     * @param params - pagination configuration. The mock extracts the `size` and `page` property to format the result properly.\n     * @returns an `Observable` containing a properly formatted {@link Page} object.\n     *\n     * The `pagination` attributes are filled according to the request and the endpoints [content]{@link MockEndpoint#content}.\n     *\n     * If an empty {@link Page} should be returned the returned object has its `content` attribute set to some object\n     * (to match backend and resource service behavior).\n     * Otherwise the `content` attribute contains the corresponding subsection fo the [content]{@link MockEndpoint#content} array.\n     */\n    search(filter: unknown, params: HttpParams): Observable<Page<unknown>> {\n        const rp = this.getPagination(params);\n\n        const result = this.content.slice(rp.pageSize * rp.pageNumber, rp.pageSize * (rp.pageNumber + 1));\n        const resultPage = {\n            pagination: {\n                size: result.length,\n                totalElements: this.content.length,\n                totalPages: Math.ceil(this.content.length / rp.pageSize),\n                number: rp.pageNumber\n            }\n        };\n        Object.assign(resultPage, {content: result.length !== 0 ? result : {}});\n        return of(resultPage as Page<unknown>);\n    }\n\n    private getPagination(params: HttpParams): RequestedPagination {\n        return {\n            pageSize: parseInt(params.get(PaginationParams.PAGE_SIZE), 10),\n            pageNumber: parseInt(params.get(PaginationParams.PAGE_NUMBER), 10)\n        };\n    }\n}\n","import {NgModule} from '@angular/core';\nimport {HttpClientTestingModule} from '@angular/common/http/testing';\nimport {AuthenticationMethodService} from '../../authentication/services/authentication-method.service';\nimport {MockAuthenticationMethodService} from './mocks/mock-authentication-method-service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {TestConfigurationService} from './test-config';\n\n\n/**\n * A module that provides the most common test dependencies, so that they don't have to be provided in each test.\n *\n * Provides the following:\n * - {@link AuthenticationMethodService} replaced with {@link MockAuthenticationMethodService}\n * - {@link ConfigurationService} replaced with {@link TestConfigurationService}\n *\n * Imports the following:\n * - [HttpClientTestingModule]{@link https://angular.io/api/common/http/testing/HttpClientTestingModule}\n */\n@NgModule({\n    declarations: [],\n    imports: [\n        HttpClientTestingModule\n    ],\n    providers: [\n        {provide: AuthenticationMethodService, useClass: MockAuthenticationMethodService},\n        {provide: ConfigurationService, useClass: TestConfigurationService}\n    ]\n})\nexport class TestMockDependenciesModule {\n}\n","import {Observable, of} from 'rxjs';\nimport {MessageResource} from '../../../resources/interface/message-resource';\nimport {UserChangePasswordRequest} from \"../../../authentication/profile/models/user-change-password-request\";\n\n/**\n * Mock the {@link ProfileService}. By default all responses are successful. Responses can be customised.\n */\nexport class MockProfileService {\n\n    public changePasswordResponse: Observable<MessageResource> = of({success: 'success'});\n\n    public changePassword(change: UserChangePasswordRequest): Observable<MessageResource> {\n        return this.changePasswordResponse;\n    }\n}\n","/* SERVICES */\nexport * from './view-service/view.service';\nexport * from './view-service/model/view-entry';\nexport * from './routing-builder/routing-builder.service';\nexport * from './redirect-service/redirect.service';\nexport * from './dynamic-navigation-route-provider/dynamic-navigation-route-provider.service';\n","import {Injectable, Injector, OnDestroy} from '@angular/core';\nimport {TaskContentService} from './task-content.service';\nimport {FieldConverterService} from './field-converter.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {Observable, ReplaySubject} from 'rxjs';\nimport {Task} from '../../resources/interface/task';\n\n/**\n * Provides an implementation of the {@link TaskContentService} abstract class that allows only a\n * single call to the setter of the managed Task object.\n *\n * If you want to use an unlimited number of calls use {@link UnlimitedTaskContentService} instead.\n */\n@Injectable()\nexport class SingleTaskContentService extends TaskContentService implements OnDestroy {\n\n    /**\n     * Acts as the underling stream for notifications on Task changes.\n     *\n     * `bufferSize` of the `ReplaySubject` instance is set to 1.\n     */\n    protected _task$: ReplaySubject<Task>;\n\n    constructor(_fieldConverterService: FieldConverterService,\n                _snackBarService: SnackBarService,\n                _translate: TranslateService,\n                _logger: LoggerService,\n                _injector: Injector) {\n        super(_fieldConverterService, _snackBarService, _translate, _logger);\n        this._task$ = new ReplaySubject<Task>(1);\n    }\n\n    /**\n     * @returns the Task object if set and `undefined` otherwise\n     */\n    get task(): Task | undefined {\n        return this._task;\n    }\n\n    /**\n     * The task can be only set once. All other call do nothing and log an error.\n     * @param task the Task that owns the content managed by this service\n     */\n    set task(task: Task) {\n        if (!this._task$.closed) {\n            this._task = task;\n            this._task$.next(task);\n            this._task$.complete();\n        } else {\n            this._logger.error('TaskContentService can have it\\'s task set only once');\n        }\n    }\n\n    /**\n     * Stream returns a single {@link Task} object and then completes.\n     *\n     * Use [task]{@link TaskContentService#task} setter method to set the Task.\n     */\n    get task$(): Observable<Task> {\n        return this._task$.asObservable();\n    }\n\n    /**\n     * Completes the underling stream.\n     */\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        if (!this._task$.closed) {\n            this._task$.complete();\n        }\n    }\n}\n","import {Injectable, Injector, OnDestroy} from '@angular/core';\nimport {TaskContentService} from './task-content.service';\nimport {Observable, ReplaySubject} from 'rxjs';\nimport {Task} from '../../resources/interface/task';\nimport {FieldConverterService} from './field-converter.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {LoggerService} from '../../logger/services/logger.service';\n\n/**\n * Provides an implementation of the {@link TaskContentService} abstract class that allows\n * an unlimited number of calls to the setter of the managed Task object.\n *\n * If you want to limit the number of calls to 1 use {@link SingleTaskContentService} instead.\n */\n@Injectable()\nexport class UnlimitedTaskContentService extends TaskContentService implements OnDestroy {\n\n    /**\n     * Acts as the underling stream for notifications on Task changes.\n     *\n     * `bufferSize` of the `ReplaySubject` instance is set to 1.\n     */\n    protected _task$: ReplaySubject<Task>;\n\n    constructor(_fieldConverterService: FieldConverterService,\n                _snackBarService: SnackBarService,\n                _translate: TranslateService,\n                _logger: LoggerService,\n                _injector: Injector) {\n        super(_fieldConverterService, _snackBarService, _translate, _logger);\n        this._task$ = new ReplaySubject<Task>(1);\n    }\n\n    /**\n     * @returns the Task object if set and `undefined` otherwise\n     */\n    get task(): Task | undefined {\n        return this._task;\n    }\n\n    /**\n     * Setting a Task also emits it into the stream accessible by the [task$]{@link TaskContentService#task$} getter method.\n     * @param task the Task that owns the content managed by this service\n     */\n    set task(task: Task) {\n        this._task = task;\n        this._task$.next(task);\n    }\n\n    /**\n     * Stream returns a {@link Task} object every time this object is set.\n     *\n     * Use [task]{@link TaskContentService#task} setter method to set the Task.\n     */\n    get task$(): Observable<Task> {\n        return this._task$.asObservable();\n    }\n\n    /**\n     * Completes the underling stream.\n     */\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this._task$.complete();\n    }\n}\n","import {FieldTypeResource} from './field-type-resource';\n\nexport type TaskContentElementType = FieldTypeResource | TaskElementType;\n\n/**\n * Contains types of elements that are used to construct task content, but are not data fields themselves.\n */\nexport enum TaskElementType {\n    /**\n     * Marks an empty tile in the task content grid\n     */\n    BLANK = 'blank',\n    /**\n     * Marks the space occupied by a data group title\n     */\n    DATA_GROUP_TITLE = 'title',\n    /**\n     * Marks the space occupied by a temporary loading placeholder\n     */\n    LOADER = 'loader',\n}\n","import {InjectionToken} from '@angular/core';\nimport {AsyncRenderingConfiguration} from './async-rendering-configuration';\n\n/**\n * Holds configuration of the task content async rendering properties.\n *\n * The value represents the number of elements rendered in one rendering cycle\n */\nexport const NAE_ASYNC_RENDERING_CONFIGURATION = new InjectionToken<AsyncRenderingConfiguration>('NaeAsyncRenderingConfiguration');\n","import {DatafieldGridLayoutElement} from './datafield-grid-layout-element';\nimport {IncrementingCounter} from '../../utility/incrementing-counter';\nimport {TaskElementType} from './task-content-element-type';\nimport {DataField} from '../../data-fields/models/abstract-data-field';\nimport {FieldTypeResource} from './field-type-resource';\nimport {DataGroup} from '../../resources/interface/data-groups';\nimport {BehaviorSubject} from 'rxjs';\nimport {AsyncRenderingConfiguration} from './async-rendering-configuration';\n\n/**\n * A configuration for one subgrid - a basic layouting unit\n */\nexport class Subgrid {\n    /**\n     * the css `gridAreas` configuration, that determines the layout of the grids content\n     */\n    gridAreas: string;\n    /**\n     * The elements that are contained in the subgrid\n     */\n    protected _content: Array<DatafieldGridLayoutElement> = [];\n    /**\n     * The elements that are contained in the subgrid and have already been rendered to the user\n     */\n    protected _renderedContent$: BehaviorSubject<Array<DatafieldGridLayoutElement>>;\n    /**\n     * A 2D representation of the grid element IDs\n     */\n    protected _grid: Array<Array<string>> = [];\n    /**\n     * Counter to assure element ID uniqueness\n     */\n    protected _runningTitleCount: IncrementingCounter = new IncrementingCounter();\n    /**\n     * Grid area identifiers that are already in use\n     */\n    protected _existingIdentifiers = new Set<string>();\n    protected _asyncRenderingTimeout: number;\n    protected _keptElements: Array<DatafieldGridLayoutElement>;\n    protected _newElements: Array<DatafieldGridLayoutElement>;\n\n    /**\n     * @param subgridId a unique identifier of the subgrid in the task layout\n     * @param cols Number of columns of the subgrid\n     * @param _asyncRenderingConfig configuration object for async rendering of data fields\n     */\n    public constructor(public subgridId: string, public cols: number, protected _asyncRenderingConfig: AsyncRenderingConfiguration) {\n        this._renderedContent$ = new BehaviorSubject<Array<DatafieldGridLayoutElement>>([]);\n    }\n\n    get content(): Array<DatafieldGridLayoutElement> {\n        return this._renderedContent$.value;\n    }\n\n    /**\n     * Completes the underlying stream and clears any running timeouts\n     */\n    public destroy() {\n        this._renderedContent$.complete();\n        if (this._asyncRenderingTimeout !== undefined) {\n            window.clearTimeout(this._asyncRenderingTimeout);\n        }\n    }\n\n    /**\n     * @returns the columns configuration for the grid layout\n     */\n    public getGridColumns(): string {\n        return 'repeat(' + this.cols + ', 1fr)';\n    }\n\n    public getRunningTitleCount(): IncrementingCounter {\n        return this._runningTitleCount;\n    }\n\n    /**\n     * Converts a {@link DataField} into a {@link DatafieldGridLayoutElement} and adds it to the content of this subgrid.\n     *\n     * Beware that this method DOES NOT add the element into the resulting grid. This must be done independently by calling the\n     * [addRow]{@link Subgrid#addRow} method.\n     * @param field the field that should be added to the subgrid\n     * @param type the type of the field\n     * @returns the created grid element\n     */\n    public addField(field: DataField<unknown>, type: FieldTypeResource): DatafieldGridLayoutElement {\n        const element = this.fieldElement(field, type);\n        this.addElement(element);\n        return element;\n    }\n\n    /**\n     * Converts a {@link DataGroup} into a {@link DatafieldGridLayoutElement} and adds it to the content of this subgrid.\n     *\n     * Beware that this method DOES NOT add the element into the resulting grid. This must be done independently by calling the\n     * [addRow]{@link Subgrid#addRow} method.\n     * @param dataGroup the data group whose title should be added to the grid\n     * @returns the created grid element\n     */\n    public addTitle(dataGroup: DataGroup): DatafieldGridLayoutElement {\n        const element = this.groupTitleElement(dataGroup);\n        this.addElement(element);\n        return element;\n    }\n\n    protected addElement(element: DatafieldGridLayoutElement): void {\n        this._content.push(element);\n    }\n\n    /**\n     * Adds a row of CSS `gridAreaId`s into the grid that is held in this subgrid.\n     * @param row the field Ids. The width of the row should match the number of columns of the grid. If not an error is thrown.\n     */\n    public addRow(row: Array<string>): void {\n        if (row.length !== this.cols) {\n            throw new Error(`The provided grid layout row '${JSON.stringify(row)\n            }' does not match the number of columns of this subgrid (${this.cols})`);\n        }\n        this._grid.push(row);\n    }\n\n    /**\n     * Converts the provided configuration into data that can be fed into CSS grid layout\n     */\n    public finalize() {\n        this.fillEmptySpace();\n        this.createGridAreasString();\n    }\n\n    /**\n     * Fills empty tiles in the grid with blank elements\n     */\n    protected fillEmptySpace() {\n        const runningBlanksCount = new IncrementingCounter();\n        this._grid.forEach(row => {\n            for (let i = 0; i < row.length; i++) {\n                if (row[i] !== '') {\n                    continue;\n                }\n                const filler = this.fillerElement(runningBlanksCount);\n                row[i] = filler.gridAreaId;\n                this._content.push(filler);\n            }\n        });\n    }\n\n    /**\n     * @param field the field whose representation should be created\n     * @param type the type of the data field\n     * @returns an object that represents the provided data field in the layout\n     */\n    protected fieldElement(field: DataField<unknown>, type: FieldTypeResource): DatafieldGridLayoutElement {\n        return {gridAreaId: this.assureUniqueness(field.stringId), type, item: field};\n    }\n\n    /**\n     * @param fillerCounter the counter that is used to track the number of already created filler elements\n     * @returns a filler element object with a unique ID. The provided counter is incremented by one.\n     */\n    protected fillerElement(fillerCounter: IncrementingCounter): DatafieldGridLayoutElement {\n        return {gridAreaId: this.assureUniqueness('blank' + fillerCounter.next()), type: TaskElementType.BLANK};\n    }\n\n    /**\n     * @param dataGroup the data group whose title element should be created\n     * @returns an object that represents a title element of the provided data group. The provided counter is incremented by one.\n     */\n    protected groupTitleElement(dataGroup: DataGroup): DatafieldGridLayoutElement {\n        return {\n            title: dataGroup.title,\n            gridAreaId: this.assureUniqueness('group' + this._runningTitleCount.next()),\n            type: TaskElementType.DATA_GROUP_TITLE\n        };\n    }\n\n    /**\n     * Assures that the provided identifier will be unique.\n     * @param identifier the base for the identifier\n     * @returns the base identifier, if it already is unique. A unique variation on the base identifier if it is already in use.\n     */\n    protected assureUniqueness(identifier: string): string {\n        const alphaNumIdentifier = 'x' + identifier.replace(/[^0-9a-z]/gi, '');\n        if (!this._existingIdentifiers.has(alphaNumIdentifier)) {\n            this._existingIdentifiers.add(alphaNumIdentifier);\n            return alphaNumIdentifier;\n        }\n        let variation;\n        const counter = new IncrementingCounter();\n        do {\n            variation = `x${counter.next()}${alphaNumIdentifier}`;\n        } while (this._existingIdentifiers.has(variation));\n        this._existingIdentifiers.add(variation);\n        return variation;\n    }\n\n    /**\n     * Joins the grid of element into a string accepted by `[gdAreas]` input property of Angular flex layout\n     */\n    protected createGridAreasString(): void {\n        this.gridAreas = this._grid.map(row => row.join(' ')).join(' | ');\n    }\n\n    /**\n     * Marks all contained elements as kept and displays them.\n     */\n    public displayAllFields(): void {\n        this._keptElements = [...this._content];\n        this._newElements = [];\n        this._renderedContent$.next(this._keptElements);\n    }\n\n    /**\n     * Determines which elements from the provided subgrid are contained in this subgrid.\n     * Marks these elements as kept and displays them. Marks the remaining elements as new.\n     *\n     * New elements can be displayed asynchronously over time by calling the\n     * [renderContentOverTime]{@link Subgrid#renderContentOverTime} method.\n     * @param subgrid the \"previous\" subgrid that is used to compute the element \"difference\"\n     */\n    public determineKeptFields(subgrid: Subgrid): void {\n        this._keptElements = [];\n        this._newElements = [];\n\n        this._content.forEach(element => {\n            if (subgrid.content.some(el => el.gridAreaId === element.gridAreaId)) {\n                this._keptElements.push(element);\n            } else {\n                this._newElements.push(element);\n            }\n        });\n\n        this._renderedContent$.next(this._keptElements);\n    }\n\n    /**\n     * If elements are not sorted into new and kept, marks all elements as new.\n     * The [determineKeptFields]{@link Subgrid#determineKeptFields} method can be used to mark elements as kept.\n     *\n     * Then pushes the new elements with the kept elements into the output array over time as specified by the\n     * {@link AsyncRenderingConfiguration} provided in the subgrids constructor.\n     *\n     * @param callback the function that is called once all new elements were pushed into the output array\n     * @param first whether this is the first subgrid that si rendered. If this is the first subgrid then on the initial rendering of\n     * elements a batch of new fields alongside the loader elements is displayed so that some content is immediately available.\n     * Otherwise The initial batch contains only loader elements. Being first effectively shortens the rendering by one batch, since the\n     * first loader-only batch is skipped.\n     */\n    public renderContentOverTime(callback: () => void, first= false) {\n        if (this._newElements === undefined) {\n            this._newElements = Array.from(this._content);\n            this._keptElements = [];\n        }\n        this.spreadFieldRenderingOverTime(callback, first ? 1 : 0);\n    }\n\n    protected spreadFieldRenderingOverTime(callback: () => void, iteration = 0) {\n        this._asyncRenderingTimeout = undefined;\n        const fieldsInCurrentIteration = this._newElements.slice(0, iteration * this._asyncRenderingConfig.batchSize);\n        const placeholdersInCurrentIteration = this._newElements.slice(iteration * this._asyncRenderingConfig.batchSize,\n            iteration * this._asyncRenderingConfig.batchSize + this._asyncRenderingConfig.numberOfPlaceholders);\n\n        fieldsInCurrentIteration.push(\n            ...placeholdersInCurrentIteration.map(field => ({gridAreaId: field.gridAreaId, type: TaskElementType.LOADER})));\n\n        this._renderedContent$.next([...this._keptElements, ...fieldsInCurrentIteration]);\n        if (this._asyncRenderingConfig.batchSize * iteration < this._newElements.length) {\n            this._asyncRenderingTimeout = window.setTimeout(() => {\n                this.spreadFieldRenderingOverTime(callback, iteration + 1);\n            }, this._asyncRenderingConfig.batchDelay);\n        } else {\n            callback();\n        }\n    }\n}\n","import {Component, EventEmitter, Inject, Input, OnDestroy, Optional, Output} from '@angular/core';\nimport {DatafieldGridLayoutElement} from '../model/datafield-grid-layout-element';\nimport {FieldConverterService} from '../services/field-converter.service';\nimport {TaskContentService} from '../services/task-content.service';\nimport {PaperViewService} from '../../navigation/quick-panel/components/paper-view.service';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {TaskEventNotification} from '../model/task-event-notification';\nimport {TaskEventService} from '../services/task-event.service';\nimport {DataGroup, DataGroupAlignment, ParentDataGroupInformation} from '../../resources/interface/data-groups';\nimport {TaskElementType} from '../model/task-content-element-type';\nimport {DataField} from '../../data-fields/models/abstract-data-field';\nimport {\n    DataGroupCompact,\n    DataGroupHideEmptyRows,\n    DataGroupLayout,\n    DataGroupLayoutType\n} from '../../resources/interface/data-group-layout';\nimport {FieldAlignment} from '../../resources/interface/field-alignment';\nimport {FieldTypeResource} from '../model/field-type-resource';\nimport {LoadingEmitter} from '../../utility/loading-emitter';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {NAE_ASYNC_RENDERING_CONFIGURATION} from '../model/async-rendering-configuration-injection-token';\nimport {AsyncRenderingConfiguration} from '../model/async-rendering-configuration';\nimport {TaskRefDashboardConstants} from '../../data-fields/task-ref-field/model/task-ref-dashboard-constants';\nimport {TaskRefField} from '../../data-fields/task-ref-field/model/task-ref-field';\nimport {TaskRefComponents} from '../../data-fields/task-ref-field/model/task-ref-components';\nimport {SplitDataGroup} from '../model/split-data-group';\nimport {Subgrid} from '../model/subgrid';\nimport {IncrementingCounter} from '../../utility/incrementing-counter';\nimport {PreprocessedDataGroups} from '../model/preprocessed-data-groups';\nimport {TaskRefDashboardTile} from '../../data-fields/task-ref-field/model/task-ref-dashboard-tile';\nimport {Component as DataRefComponent} from '../../data-fields/models/component';\n\n@Component({\n    selector: 'ncc-abstract-task-content',\n    template: ''\n})\nexport abstract class AbstractTaskContentComponent implements OnDestroy {\n    readonly DEFAULT_LAYOUT_TYPE = DataGroupLayoutType.LEGACY;\n    readonly DEFAULT_FIELD_ALIGNMENT = FieldAlignment.CENTER;\n    readonly DEFAULT_ASYNC_RENDERING_CONFIGURATION: AsyncRenderingConfiguration = {\n        batchSize: 4,\n        batchDelay: 200,\n        numberOfPlaceholders: 4,\n        enableAsyncRenderingForNewFields: true,\n        enableAsyncRenderingOnTaskExpand: true\n    };\n    readonly DEFAULT_COMPACT_DIRECTION = DataGroupCompact.NONE;\n    readonly DEFAULT_HIDE_EMPTY_ROWS = DataGroupHideEmptyRows.ALL;\n\n    /**\n     * Indicates whether data is being loaded from backend, or if it is being processed.\n     */\n    loading$: LoadingEmitter;\n    /**\n     * Emits `true` if there is at least one data field, that should be displayed. Emits `false` otherwise.\n     */\n    hasDataToDisplay$: Observable<boolean>;\n\n    /**\n     * Exists to allow references to the enum in the HTML\n     */\n    public fieldTypeResource = FieldTypeResource;\n\n    /**\n     * The translate text that should be displayed when the task contains no data.\n     *\n     * If a falsy value is provided the default text is displayed\n     */\n    @Input() noDataText: string;\n    /**\n     * The icon that should be displayed when the task contains no data.\n     *\n     * If a falsy value is provided the default icon is displayed\n     */\n    @Input() noDataIcon: string;\n    /**\n     * Whether an icon should be displayed when the no data message is shown.\n     *\n     * An icon is displayed by default\n     */\n    @Input() displayNoDataIcon = true;\n    /**\n     * Emits notifications about task events\n     */\n    @Output() taskEvent: EventEmitter<TaskEventNotification>;\n    /**\n     * The data fields that are currently displayed\n     */\n    protected _dataSource$: BehaviorSubject<Array<Subgrid>>;\n    protected _subTaskContent: Subscription;\n    protected _subTaskEvent: Subscription;\n    protected _asyncRenderingConfig: AsyncRenderingConfiguration;\n    protected _asyncRenderTimeout: number;\n\n    protected _defaultAlignment: FieldAlignment;\n    protected _defaultCompactDirection: DataGroupCompact;\n    protected _defaultHideEmptyRows: DataGroupHideEmptyRows;\n    protected _defaultNumberOfCols: number;\n\n    protected _subgridIdCounter: IncrementingCounter;\n    protected _existingSubgridIds: Set<string>;\n\n    /**\n     * Defines the row height of one row in task content\n     */\n    protected rowHeight = 105;\n\n    protected constructor(protected _fieldConverter: FieldConverterService,\n                          public taskContentService: TaskContentService,\n                          protected _paperView: PaperViewService,\n                          protected _logger: LoggerService,\n                          @Optional() protected _taskEventService: TaskEventService = null,\n                          @Optional() @Inject(NAE_ASYNC_RENDERING_CONFIGURATION)\n                              asyncRenderingConfiguration: AsyncRenderingConfiguration = null) {\n        this._asyncRenderingConfig = {...this.DEFAULT_ASYNC_RENDERING_CONFIGURATION};\n        if (asyncRenderingConfiguration !== null) {\n            Object.assign(this._asyncRenderingConfig, asyncRenderingConfiguration);\n        }\n\n        this.loading$ = new LoadingEmitter(true);\n        this._dataSource$ = new BehaviorSubject<Array<Subgrid>>([]);\n        this.hasDataToDisplay$ = this._dataSource$.pipe(map(data => {\n            return data.length !== 0;\n        }));\n\n        this._subTaskContent = this.taskContentService.$shouldCreate.subscribe(data => {\n            if (data.length !== 0) {\n                this.computeDefaultLayoutConfiguration();\n                this.computeLayoutData(data);\n            } else {\n                this.renderContent();\n            }\n            this.loading$.off();\n        });\n        if (this._taskEventService !== null) {\n            this.taskEvent = new EventEmitter<TaskEventNotification>();\n            this._subTaskEvent = _taskEventService.taskEventNotifications$.subscribe(event => {\n                this.taskEvent.emit(event);\n            });\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.loading$.complete();\n        this._dataSource$.complete();\n        this._subTaskContent.unsubscribe();\n        if (this.taskEvent) {\n            this.taskEvent.complete();\n        }\n        if (this._subTaskEvent) {\n            this._subTaskEvent.unsubscribe();\n        }\n        if (this._asyncRenderTimeout !== undefined) {\n            window.clearTimeout(this._asyncRenderTimeout);\n        }\n    }\n\n    public get taskId(): string {\n        return this.taskContentService.task.stringId;\n    }\n\n    public get dataSource(): Array<Subgrid> {\n        return this._dataSource$.getValue();\n    }\n\n    /**\n     * @returns the number of columns as specified by the tasks layout property, or 4 if no value is specified.\n     */\n    public getNumberOfFormColumns(): number {\n        if (!this.taskContentService.task\n            || !this.taskContentService.task.layout\n            || this.taskContentService.task.layout.cols === undefined) {\n            return 4;\n        } else {\n            return this.taskContentService.task.layout.cols;\n        }\n    }\n\n    public isPaperView() {\n        return this._paperView.paperView;\n    }\n\n    /**\n     * @param item an object containing grid element information\n     * @returns the Angular flex layouts alignment property for individual data fields based on\n     * the layout configuration specified by the process\n     */\n    public getItemAlignment(item: DatafieldGridLayoutElement): string {\n        if (item.alignment) {\n            return item.alignment;\n        }\n\n        const fieldAlignment = item.item?.localLayout?.alignment ?? this._defaultAlignment;\n\n        let alignment;\n        switch (fieldAlignment) {\n            case FieldAlignment.TOP:\n                alignment = 'start';\n                break;\n            case FieldAlignment.CENTER:\n                alignment = 'center';\n                break;\n            case FieldAlignment.BOTTOM:\n                alignment = 'end';\n                break;\n        }\n\n        item.alignment = 'space-between ' + alignment;\n        return item.alignment;\n    }\n\n    /**\n     * Computes component height if the rows attribute of task layout is set.\n     */\n    public resolveContentHeightCss(): string {\n        if (this.scrollingNeeded()) {\n            return this.taskContentService.task.layout.rows * this.rowHeight + 'px';\n        } else {\n            return '100%';\n        }\n    }\n\n    /**\n     * Decides whether there is a fixed number of rows and it need-s scrolling\n     */\n    public scrollingNeeded(): boolean {\n        return this.taskContentService.task\n            && !!this.taskContentService.task.layout\n            && !!this.taskContentService.task.layout.rows\n            && this.taskContentService.task.layout.rows > 0;\n    }\n\n    /**\n     * @returns the default alignment for the displayed task that can be overridden by fields individual property.\n     * If te task specifies no default value the [global default]{@link AbstractTaskContentComponent#DEFAULT_FIELD_ALIGNMENT}\n     * value is returned.\n     */\n    protected computeDefaultLayoutConfiguration() {\n        this._defaultAlignment = this.taskContentService.task?.layout?.fieldAlignment ?? this.DEFAULT_FIELD_ALIGNMENT;\n        this._defaultCompactDirection = this.taskContentService.task?.layout?.compactDirection ?? this.DEFAULT_COMPACT_DIRECTION;\n        this._defaultHideEmptyRows = this.taskContentService.task?.layout?.hideEmptyRows ?? this.DEFAULT_HIDE_EMPTY_ROWS;\n        this._defaultNumberOfCols = this.getNumberOfFormColumns();\n    }\n\n    /**\n     * Computes the layout data for the tasks grid layout and sets the result to the public properties\n     * of this class that are then bound to HTML.\n     * @param dataGroups the data groups that should be laid out\n     */\n    public computeLayoutData(dataGroups: Array<DataGroup>) {\n        if (!this.taskContentService.task) {\n            this.renderContent();\n            return;\n        }\n\n        this._subgridIdCounter = new IncrementingCounter();\n        this._existingSubgridIds = new Set<string>();\n\n        const result = new Map<string, Subgrid>();\n\n        dataGroups = this.preprocessDataGroups(dataGroups);\n\n        const defaultLayout = this.taskContentService.task.layout && this.taskContentService.task.layout.type\n            ? this.taskContentService.task.layout.type\n            : this.DEFAULT_LAYOUT_TYPE;\n\n        dataGroups.forEach(group => {\n            if (!group.layout) {\n                group.layout = {rows: undefined, cols: undefined, type: defaultLayout};\n            }\n            if (!group.layout.type) {\n                group.layout.type = defaultLayout;\n            }\n\n            const subgrid = new Subgrid(\n                this.createSubgridId(group),\n                group.layout.cols ?? this._defaultNumberOfCols,\n                this._asyncRenderingConfig\n            );\n\n            if (group.title !== undefined) {\n                const title = subgrid.addTitle(group);\n                subgrid.addRow(this.newGridRow(subgrid.cols, title.gridAreaId));\n            }\n\n            switch (group.layout.type) {\n                case DataGroupLayoutType.GRID:\n                    this.computeGridLayout(group, subgrid);\n                    break;\n                case DataGroupLayoutType.FLOW:\n                    this.computeFlowLayout(group, subgrid);\n                    break;\n                case DataGroupLayoutType.LEGACY:\n                    this.computeLegacyLayout(group, subgrid);\n                    break;\n                default:\n                    throw new Error(`Unknown task layout type '${this.taskContentService.task.layout.type}'`);\n            }\n\n            subgrid.finalize();\n            result.set(subgrid.subgridId, subgrid);\n        });\n\n        this.renderFields(result);\n    }\n\n    protected renderFields(subgrids: Map<string, Subgrid>) {\n        const subgridsArray = Array.from(subgrids.values());\n\n        if (!this._asyncRenderingConfig.enableAsyncRenderingForNewFields\n            && !(this._asyncRenderingConfig.enableAsyncRenderingOnTaskExpand && this.taskContentService.isExpanding)) {\n            subgridsArray.forEach(subgrid => {\n                subgrid.displayAllFields();\n            });\n            this.renderContent(subgridsArray);\n            return;\n        }\n\n        if (!(this.taskContentService.isExpanding && this._asyncRenderingConfig.enableAsyncRenderingOnTaskExpand)) {\n            this._dataSource$.value.forEach(oldSubgrid => {\n                if (subgrids.has(oldSubgrid.subgridId)) {\n                    subgrids.get(oldSubgrid.subgridId).determineKeptFields(oldSubgrid);\n                }\n            });\n        }\n\n        this.renderContent(subgridsArray);\n        this.spreadFieldRenderingOverTime(subgridsArray);\n    }\n\n    protected spreadFieldRenderingOverTime(subgrids: Array<Subgrid>, iteration = 0) {\n        this._asyncRenderTimeout = undefined;\n        if (iteration < subgrids.length) {\n            this._asyncRenderTimeout = window.setTimeout(() => {\n                subgrids[iteration].renderContentOverTime(() => {\n                    this.spreadFieldRenderingOverTime(subgrids, iteration + 1);\n                }, iteration === 0);\n            });\n        }\n    }\n\n    /**\n     * Clones the content of the data groups to prevent unintentional memory accesses to source data.\n     * Rearranges the data groups to accommodate taskrefs. Filters out hidden and forbidden fields.\n     * Populates dashboard task ref fields with dashboard tile data.\n     * @param dataGroups\n     * @returns the preprocessed data groups\n     */\n    protected preprocessDataGroups(dataGroups: Array<DataGroup>): Array<DataGroup> {\n        const rearrangeResult = this.rearrangeDataGroups(dataGroups);\n        let unfilteredDataGroups = rearrangeResult.dataGroups;\n\n        if (rearrangeResult.containsDashboardTaskRef) {\n            unfilteredDataGroups = this.preprocessDashboardTaskRef(rearrangeResult.dataGroups, dataGroups);\n        }\n\n        return this.cloneAndFilterHidden(unfilteredDataGroups);\n    }\n\n    /**\n     * Clones the content of the data groups to prevent unintentional memory accesses to source data.\n     * Rearranges the data groups to accommodate taskrefs.\n     * Determines if the data groups contain a dashboard task ref field.\n     * @param dataGroups\n     * @returns the preprocessed data groups with metadata\n     */\n    protected rearrangeDataGroups(dataGroups: Array<DataGroup>): PreprocessedDataGroups {\n        dataGroups = this.cloneDataGroups(dataGroups);\n        this.initializeLocalFieldLayout(dataGroups);\n\n        let containsDashboard = false;\n        const result = [];\n        for (let i = 0; i < dataGroups.length; i++) {\n            const group = dataGroups[i];\n            if (!group.fields.some(f => this.isTaskRef(f) && this.shouldResolveTaskRefData(f))) {\n                result.push(group);\n                continue;\n            }\n            const split = this.splitDataGroupOnTaskRef(group);\n            if (split.startGroup !== undefined) {\n                result.push(split.startGroup);\n            }\n\n            if (!!split.taskRef.component?.name) {\n                result.push(this.createComponentTaskRefDataGroup(group, split.taskRef));\n                containsDashboard = split.taskRef.component.name === TaskRefComponents.DASHBOARD;\n            }\n\n            if (split.taskRef.value.length === 0 || split.endGroup === undefined) {\n                if (split.endGroup !== undefined) {\n                    dataGroups.splice(i + 1, 0, split.endGroup);\n                }\n                continue;\n            }\n\n            const directChild = dataGroups[i + 1]; // the data group that immediately follows IS ALWAYS a direct child\n            let firstNonDescendantIndex = i + 2;\n            for (; firstNonDescendantIndex < dataGroups.length; firstNonDescendantIndex++) {\n                const nextGroup = dataGroups[firstNonDescendantIndex];\n                if (nextGroup.nestingLevel === undefined || nextGroup.nestingLevel < directChild.nestingLevel) {\n                    // end of the block of nested data groups\n                    break;\n                }\n                if (nextGroup.nestingLevel === directChild.nestingLevel\n                    && (nextGroup.parentTaskRefId !== split.taskRef.stringId\n                        || !split.taskRef.value.some(reffedTaskId => reffedTaskId === nextGroup.parentTaskId))) {\n                    break;\n                }\n            }\n\n            dataGroups.splice(firstNonDescendantIndex, 0, split.endGroup);\n        }\n\n        return {\n            dataGroups: result,\n            containsDashboardTaskRef: containsDashboard\n        };\n    }\n\n    /**\n     * Creates a duplicate of the provided data group array.\n     *\n     * Only the data groups are cloned, the fields are only copied as references.\n     * @param dataGroups the data groups that should be cloned\n     * @returns the duplicated data groups\n     */\n    protected cloneDataGroups(dataGroups: Array<DataGroup>): Array<DataGroup> {\n        return dataGroups.map(group => {\n            const g = {...group};\n            g.fields = g.fields.map(field => field);\n            return g;\n        });\n\n    }\n\n    /**\n     * Passes over all the fields in the provided data groups and if they are visible, initializes their local layout attribute.\n     * @param dataGroups the containers of the fields that should have their local layout initialized\n     */\n    protected initializeLocalFieldLayout(dataGroups: Array<DataGroup>): void {\n        for (const g of dataGroups) {\n            for (const f of g.fields) {\n                f.resetLocalLayout();\n            }\n        }\n    }\n\n    /**\n     * Creates a duplicate of the provided data group array and filters away any fields and data groups that are marked as hidden.\n     * Because of the duplication the filtering doesn't affect the original instances and they remain unchanged.\n     * @param dataGroups the data groups that should be filtered\n     * @returns the filtered duplicated data groups\n     */\n    protected cloneAndFilterHidden(dataGroups: Array<DataGroup>): Array<DataGroup> {\n        const result = dataGroups.map(group => {\n            const g = {...group};\n            g.fields = g.fields.filter(field => !field.behavior.hidden && !field.behavior.forbidden).map(field => {\n                field.resetLocalLayout();\n                return field;\n            });\n            return g;\n        });\n\n        return result.filter(group => group.fields.length > 0);\n    }\n\n    protected isTaskRef(field: DataField<unknown>): boolean {\n        return field instanceof TaskRefField;\n    }\n\n    /**\n     * Sorts the input data group based on the Y coordinate of the fields and splits it into parts on the first task ref.\n     * If some fields appear before the first task ref they are extracted into a new [startGroup]{@link SplitDataGroup#startGroup}.\n     * If some fields appear after the first task ref they are extracted into a new [endGroup]{@link SplitDataGroup#endGroup}.\n     * @param dataGroup\n     * @protected\n     */\n    protected splitDataGroupOnTaskRef(dataGroup: DataGroup): SplitDataGroup {\n        dataGroup.fields.sort((a, b) => a.localLayout.y - b.localLayout.y);\n        const taskRefPosition = dataGroup.fields.findIndex(f => this.isTaskRef(f));\n        const result: SplitDataGroup = {\n            taskRef: dataGroup.fields[taskRefPosition] as TaskRefField\n        };\n\n        if (taskRefPosition !== 0) {\n            result.startGroup = {\n                title: dataGroup.title,\n                alignment: dataGroup.alignment,\n                layout: dataGroup.layout,\n                stretch: dataGroup.stretch,\n                fields: dataGroup.fields.slice(0, taskRefPosition),\n            };\n        }\n\n        if (taskRefPosition !== dataGroup.fields.length - 1) {\n            result.endGroup = {\n                title: undefined,\n                alignment: dataGroup.alignment,\n                layout: dataGroup.layout,\n                stretch: dataGroup.stretch,\n                fields: dataGroup.fields.slice(taskRefPosition + 1),\n            };\n            result.endGroup.fields.forEach(f => {\n                f.localLayout.y = f.localLayout.y - result.taskRef.localLayout.y - 1;\n            });\n        }\n\n        return result;\n    }\n\n    /**\n     * Creates a new data group that contains only the passed task ref.\n     * The information about nesting and parent task/case are preserved from the passed original data group.\n     * @param originalDataGroup source of the information about parent task/case\n     * @param taskRef the task ref that will be added to the new data group\n     * @param title optional title for taskref\n     * @protected\n     */\n    protected createComponentTaskRefDataGroup(originalDataGroup: DataGroup, taskRef: TaskRefField, title?: string): DataGroup {\n        return {\n            fields: [taskRef],\n            alignment: undefined,\n            stretch: false,\n            title: title,\n            parentTaskId: originalDataGroup.parentTaskId,\n            parentTransitionId: originalDataGroup.parentTransitionId,\n            parentCaseId: originalDataGroup.parentCaseId,\n            parentTaskRefId: originalDataGroup.parentTaskRefId,\n            nestingLevel: originalDataGroup.nestingLevel,\n            layout: originalDataGroup.layout\n        }\n    }\n\n    /**\n     * Identifies data groups that represent dashboard tiles,\n     * removes them from the data group array and passes them onto the task ref field instance.\n     * @param preprocessedDataGroups\n     * @param rawDataGroups\n     * @returns an array of data group objects that does not contain dashboard tiles referenced by the dashboard task ref\n     * @protected\n     */\n    protected preprocessDashboardTaskRef(preprocessedDataGroups: Array<DataGroup>, rawDataGroups: Array<DataGroup>): Array<DataGroup> {\n        // TODO support more than one dashboard task ref in a task\n        let dashboardTaskRefField: TaskRefField;\n        let dashboardParentInformation: ParentDataGroupInformation;\n        for (const dg of preprocessedDataGroups) {\n            for (const field of dg.fields) {\n                if (this.isTaskRef(field) && field.component?.name === TaskRefComponents.DASHBOARD) {\n                    dashboardTaskRefField = field as TaskRefField;\n                    dashboardParentInformation = {\n                        parentTaskId: dg.parentTaskId,\n                        parentTransitionId: dg.parentTransitionId,\n                        parentCaseId: dg.parentCaseId,\n                        parentTaskRefId: dg.parentTaskRefId,\n                        nestingLevel: dg.nestingLevel\n                    }\n                    break;\n                }\n            }\n            if (dashboardTaskRefField !== undefined) {\n                break;\n            }\n        }\n        if (dashboardTaskRefField === undefined) {\n            this._logger.error('preprocessDashboardTaskRef method was called on task content without dashboard task refs!');\n            return preprocessedDataGroups;\n        }\n\n        const tiles = new Map<string, TaskRefDashboardTile>();\n\n        // TODO resolve transitive tile content\n        const nonDashboardDataGroups = [];\n        for (const dg of preprocessedDataGroups) {\n            if (dg.parentTaskRefId !== dashboardTaskRefField.stringId) {\n                nonDashboardDataGroups.push(dg);\n                continue;\n            }\n            if (tiles.has(dg.parentTaskId)) {\n                const tile = tiles.get(dg.parentTaskId);\n                tile.dataGroups.push(dg);\n            } else {\n                tiles.set(dg.parentTaskId, {dataGroups: [dg]});\n            }\n        }\n\n        for (const rdg of rawDataGroups) {\n            if (rdg.parentTaskId === dashboardParentInformation.parentTaskId\n                && rdg.parentTransitionId === dashboardParentInformation.parentTransitionId\n                && rdg.parentCaseId === dashboardParentInformation.parentCaseId\n                && rdg.parentTaskRefId === dashboardParentInformation.parentTaskRefId\n                && rdg.nestingLevel === dashboardParentInformation.nestingLevel) {\n                for (const filed of rdg.fields) {\n                    if (filed.stringId === TaskRefDashboardConstants.DASHBOARD_COLS) {\n                        dashboardTaskRefField.dashboardCols = filed.value;\n                    } else if (filed.stringId === TaskRefDashboardConstants.DASHBOARD_ROWS) {\n                        dashboardTaskRefField.dashboardRows = filed.value;\n                    }\n                }\n            }\n        }\n\n        dashboardTaskRefField.dashboardTiles = Array.from(tiles.values());\n        return nonDashboardDataGroups;\n    }\n\n    /**\n     * Computes the layout data for a single data group with grid layout. The resulting layout is saved into the input objects.\n     * @param dataGroup the data group that should be laid out into a grid\n     * @param subgrid the object that holds the context of the computed layouting unit\n     */\n    protected computeGridLayout(dataGroup: DataGroup, subgrid: Subgrid) {\n        const localGrid: Array<Array<string>> = [];\n        dataGroup.fields = [...dataGroup.fields].sort((f1 , f2) => f1.layout.y === f2.layout.y ? f1.layout.x - f2.layout.x : f1.layout.y - f2.layout.y)\n        dataGroup.fields.forEach(dataField => {\n            if (!dataField.localLayout\n                || dataField.localLayout.x === undefined\n                || dataField.localLayout.y === undefined\n                || !dataField.localLayout.rows\n                || !dataField.localLayout.cols) {\n                throw new Error(\n                    `You cannot use 'grid' layout without specifying the layout of the data fields (field ID: ${dataField.stringId})`);\n            }\n\n            while (localGrid.length < dataField.localLayout.y + dataField.localLayout.rows) {\n                localGrid.push(this.newGridRow(subgrid.cols));\n            }\n\n            const fieldElement = subgrid.addField(dataField, this._fieldConverter.resolveType(dataField));\n            this.occupySpace(localGrid, dataField.localLayout.y, dataField.localLayout.x,\n                dataField.localLayout.cols, fieldElement.gridAreaId, dataField.localLayout.rows);\n        });\n\n        this.collapseGridEmptySpace(localGrid, dataGroup.layout, subgrid);\n\n        localGrid.forEach(localGridRow => subgrid.addRow(localGridRow));\n    }\n\n    /**\n     * Applies the empty row removal and field compacting rules based on the provided layout configuration.\n     *\n     * The input grid is modified in place.\n     * @param grid the state of the grid that should be modified\n     * @param layout configuration of the applied compacting rules\n     * @param subgrid the object that holds the context of the computed layouting unit\n     */\n    protected collapseGridEmptySpace(grid: Array<Array<string>>, layout: DataGroupLayout, subgrid: Subgrid) {\n        const hideRows = layout.hideEmptyRows ?? this._defaultHideEmptyRows;\n\n        if (hideRows === DataGroupHideEmptyRows.ALL) {\n            this.removeEmptyRows(grid);\n        }\n\n        switch (layout.compactDirection ?? this._defaultCompactDirection) {\n            case DataGroupCompact.UP:\n                this.compactFieldsUp(grid, hideRows, subgrid);\n                break;\n        }\n    }\n\n    /**\n     * Moves any element as far UP as it can go. Elements that were originally declared in the same row might end up in different rows.\n     * Resulting trailing empty rows are removed.\n     *\n     * The input grid is modified in place.\n     * @param grid the state of the grid that should be modified\n     * @param hideRows configuration for empty row removal during the compacting process\n     * @param subgrid the object that holds the context of the computed layouting unit\n     */\n    protected compactFieldsUp(grid: Array<Array<string>>, hideRows: DataGroupHideEmptyRows, subgrid: Subgrid) {\n        for (let rowIndex = 0; rowIndex < grid.length; rowIndex++) {\n            const row = grid[rowIndex];\n\n            for (let columnIndex = 0; columnIndex < row.length; columnIndex++) {\n                if (row[columnIndex] !== '') {\n                    continue;\n                }\n\n                let foundElement = false;\n                let foundElementRowIndex = rowIndex + 1;\n                for (; foundElementRowIndex < grid.length; foundElementRowIndex++) {\n                    if (grid[foundElementRowIndex][columnIndex] !== '') {\n                        foundElement = true;\n                        break;\n                    }\n                }\n                if (!foundElement) {\n                    continue;\n                }\n\n                if (columnIndex > 0 && grid[foundElementRowIndex][columnIndex - 1] === grid[foundElementRowIndex][columnIndex]) {\n                    continue;\n                }\n\n                const elementDimensions = this.getElementDimensions(grid, columnIndex, foundElementRowIndex, subgrid);\n\n                if (this.isAreaEmpty(grid, columnIndex, rowIndex, elementDimensions.width, foundElementRowIndex - rowIndex)) {\n                    const element = grid[foundElementRowIndex][columnIndex];\n                    this.occupySpace(grid, foundElementRowIndex, columnIndex, elementDimensions.width, '', elementDimensions.height, false);\n                    this.occupySpace(grid, rowIndex, columnIndex, elementDimensions.width, element, elementDimensions.height, false);\n\n                    if (hideRows !== DataGroupHideEmptyRows.NONE) {\n                        // we only check the rows potentially cleared by moving the grid element up\n                        this.removeEmptyRows(grid, foundElementRowIndex, foundElementRowIndex + elementDimensions.height);\n                    }\n                }\n            }\n        }\n    }\n\n    /**\n     * Removes rows from the grid that only contain empty elements (are empty). The grid is modified in place.\n     * @param grid the grid that should have it's empty rows removed\n     * @param firstRow the 0 based index of the first row that should be checked. Use 0 to start from the beginning of the grid.\n     *\n     * If no value is provided, the grid will be checked from the first row.\n     *\n     * @param lastRow the 0 based index of the row where the checking should end. The row with this index is not checked.\n     *\n     * If no value is provided the entire grid from the `firstRow` will be checked.\n     *\n     * If a value that is smaller or equal to the `firstRow` is provided no checks will be preformed.\n     */\n    protected removeEmptyRows(grid: Array<Array<string>>, firstRow = 0, lastRow = Number.POSITIVE_INFINITY) {\n        let i = firstRow;\n        while (i < grid.length && i < lastRow) {\n            if (grid[i].every(element => element === '')) {\n                grid.splice(i, 1);\n            } else {\n                i++;\n            }\n        }\n    }\n\n    /**\n     * Determines the dimensions of the element in the grid with its top-left corner at the specified position\n     * @param grid the grid of elements\n     * @param x the X coordinate of the desired elements top-left corner\n     * @param y the Y coordinate of the desired elements top-left corner\n     * @param subgrid the object that holds the context of the computed layouting unit\n     * @returns the width and height of the specified element\n     */\n    protected getElementDimensions(grid: Array<Array<string>>, x: number, y: number, subgrid: Subgrid): { width: number, height: number } {\n        const element = grid[y][x];\n        let width = 1;\n        while (x + width < subgrid.cols && grid[y][x + width] === element) {\n            width++;\n        }\n        let height = 1;\n        while (y + height < grid.length && grid[y + height][x] === element) {\n            height++;\n        }\n        return {width, height};\n    }\n\n    /**\n     * Determines whether the specified area in the grid contains no elements, or not\n     * @param grid the grid of elements\n     * @param x the X coordinate of the tested areas top-left corner\n     * @param y the Y coordinate of the tested areas top-left corner\n     * @param width the width of the tested area\n     * @param height the height of the tested area\n     */\n    protected isAreaEmpty(grid: Array<Array<string>>, x: number, y: number, width: number, height: number): boolean {\n        for (let i = y; i < y + height; i++) {\n            for (let j = x; j < x + width; j++) {\n                if (grid[i][j] !== '') {\n                    return false;\n                }\n            }\n        }\n        return true;\n    }\n\n    /**\n     * Computes the layout data for a single data group with flow layout. The resulting layout is saved into the input objects.\n     * @param dataGroup the data group that should be laid out into a grid using the flow algorithm\n     * @param subgrid the object that holds the context of the computed layouting unit\n     */\n    protected computeFlowLayout(dataGroup: DataGroup, subgrid: Subgrid) {\n        this.flowFields(dataGroup, subgrid, 1);\n    }\n\n    /**\n     * Computes the layout data for a single data group with legacy layout. The resulting layout is saved into the input objects.\n     *\n     * The legacy layout forces the number of columns to be 4 and logs a warning if this was not the case.\n     * @param dataGroup the data group that should be laid out into a grid using the legacy algorithm used in NAE versions < 4.0.0\n     * @param subgrid the object that holds the context of the computed layouting unit\n     */\n    protected computeLegacyLayout(dataGroup: DataGroup, subgrid: Subgrid) {\n        if (subgrid.cols !== 4) {\n            subgrid.cols = 4;\n            this._logger.warn(`Task with id '${this.taskContentService.task.stringId}' has a data group with legacy layout with a `\n                + `non-default number of columns. If you want to use a layout with different number of columns than 2 use a different `\n                + `layout type instead.`);\n        }\n\n        this.flowFields(dataGroup, subgrid, 2);\n    }\n\n    /**\n     * Lays out the fields from left to right, from top to bottom. If the width is greater than 1 and the block of flowed fields doesn't fit\n     * neatly into the columns (if the width of a single field is not a divisor of column count), then the entire block of fields is\n     * left aligned. The last row of fields is aligned to the left, center or right based on the data groups property.\n     * If the last row cannot be aligned to the exact center it is offset one grid tile to the left.\n     * @param dataGroup the data group that should be laid out into a grid\n     * @param subgrid the object that holds the context of the computed layouting unit\n     * @param fieldWidth the number of grid tiles, that should be occupied by each field\n     */\n    protected flowFields(dataGroup: DataGroup, subgrid: Subgrid, fieldWidth: number) {\n        const fieldsPerRow = Math.floor(subgrid.cols / fieldWidth);\n        const maxXPosition = fieldWidth * (fieldsPerRow - 1);\n\n        let xPosition = 0;\n        const localGrid: Array<Array<string>> = [];\n        dataGroup.fields.forEach((dataField, dataFieldCount) => {\n            const fieldElement = subgrid.addField(dataField, this._fieldConverter.resolveType(dataField));\n            if (dataGroup.stretch) {\n                subgrid.addRow(this.newGridRow(subgrid.cols, fieldElement.gridAreaId));\n                return; // continue\n            }\n            // else\n            if (xPosition === 0) {\n                localGrid.push(this.newGridRow(subgrid.cols));\n            }\n            if (xPosition === 0 && this.isLastRow(dataFieldCount, dataGroup, fieldsPerRow)) {\n                const fieldsInLastRow = dataGroup.fields.length % fieldsPerRow;\n                const rowWidth = maxXPosition + fieldWidth;\n                if (dataGroup.alignment === DataGroupAlignment.END) {\n                    xPosition = rowWidth - fieldWidth * fieldsInLastRow;\n                } else if (dataGroup.alignment === DataGroupAlignment.CENTER) {\n                    xPosition = Math.floor((rowWidth - fieldsInLastRow * fieldWidth) / 2);\n                }\n            }\n            this.occupySpace(localGrid, localGrid.length - 1, xPosition, fieldWidth, fieldElement.gridAreaId);\n\n            xPosition += fieldWidth;\n            if (xPosition > maxXPosition) {\n                xPosition = 0;\n            }\n        });\n        localGrid.forEach(row => subgrid.addRow(row));\n    }\n\n    /**\n     * @param width width of the row\n     * @param content the value that should be used to fill all elements in the row\n     */\n    protected newGridRow(width: number, content = ''): Array<string> {\n        return Array(width).fill(content);\n    }\n\n    /**\n     * Fills the specified rectangular area with the specified value in the provided grid.\n     *\n     * If the specified area contains values other than the empty string an error will be thrown.\n     * @param grid the grid that should be modified\n     * @param y the 0 based row index of the top-left corner of the filled area\n     * @param x the 0 based column index of the top-left corner of the filled area\n     * @param width the width of the filled area\n     * @param value the value that is set into every cell of the grid inside the specified area\n     * @param height the height of the filled area\n     * @param checkOccupants whether the filled area should be checked for other elements.\n     * If a check is performed an error will be thrown if elements are found.\n     */\n    protected occupySpace(grid: Array<Array<string>>, y: number, x: number, width: number,\n                          value: string, height = 1, checkOccupants = true) {\n        for (let j = y; j < y + height; j++) {\n            for (let i = x; i < x + width; i++) {\n                if (checkOccupants && grid[j][i] !== '') {\n                    throw new Error(`Cannot place element ${value} into the grid layout, because it's space (x: ${i}, y: ${j})` +\n                        ` is already occupied by another element (${grid[j][i]})`);\n                }\n                grid[j][i] = value;\n            }\n        }\n    }\n\n    /**\n     * @param index the index of the checked element within its data group\n     * @param dataGroup the checked data group\n     * @param fieldsPerRow the number of fields that is required to fill an entire row\n     * @returns whether the field at the given index is within the last row of elements of the provided data group.\n     * Note that if the last row contains enough elements to be completely filled this method returns `false`.\n     */\n    protected isLastRow(index: number, dataGroup: DataGroup, fieldsPerRow: number): boolean {\n        return index + fieldsPerRow >= dataGroup.fields.length;\n    }\n\n    /**\n     * Destroys the previous content and pushes the new content into the stream\n     * @param content the new content\n     */\n    protected renderContent(content: Array<Subgrid> = []): void {\n        this._dataSource$.value.forEach(subgrid => subgrid.destroy());\n        this._dataSource$.next(content);\n    }\n\n    protected createSubgridId(dataGroup: DataGroup): string {\n        let idBase: string;\n        if (dataGroup.parentTaskId !== undefined) {\n            idBase = [dataGroup.parentTaskId, dataGroup.parentTaskRefId, dataGroup.nestingLevel].join('#');\n        } else {\n            idBase = 'root';\n        }\n        let id = idBase;\n        while (this._existingSubgridIds.has(id)) {\n            id = idBase + this._subgridIdCounter.next();\n        }\n        this._existingSubgridIds.add(id);\n        return id;\n    }\n\n    public trackBySubgridFn = (index: number, subgrid: Subgrid) => subgrid.subgridId;\n\n    public trackByFn = (index: number, element: DatafieldGridLayoutElement) => this.trackByDatafields(index, element);\n\n    protected trackByDatafields(index: number, element: DatafieldGridLayoutElement) {\n        switch (element.type) {\n            case TaskElementType.BLANK:\n                return element.gridAreaId + '-' + this.taskContentService.$shouldCreateCounter.getValue();\n            case TaskElementType.LOADER:\n                return element.gridAreaId + '-L-' + this.taskContentService.$shouldCreateCounter.getValue();\n            case TaskElementType.DATA_GROUP_TITLE:\n                return element.title + '-' + this.taskContentService.$shouldCreateCounter.getValue();\n            default:\n                return element.item.stringId + '-' + this.taskContentService.$shouldCreateCounter.getValue();\n        }\n    }\n\n    protected shouldResolveTaskRefData(dataRef: DataField<any>): boolean {\n        if (!!dataRef.component) {\n            return this.hasRequiredComponentProperty(dataRef.component, \"resolve_data\", \"true\");\n        }\n        return true;\n    }\n\n    protected hasRequiredComponentProperty(component: DataRefComponent, propertyName: string, propertyValue: string): boolean {\n        return  component?.properties != null\n        && !!component?.properties[propertyName]\n        && component?.properties[propertyName] === propertyValue;\n    }\n}\n","import {Component, Inject, Input, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {TaskContentService} from '../services/task-content.service';\nimport {DatafieldGridLayoutElement} from '../model/datafield-grid-layout-element';\nimport {TaskContentElementType, TaskElementType} from '../model/task-content-element-type';\nimport {DataField} from '../../data-fields/models/abstract-data-field';\nimport {FieldTypeResource} from '../model/field-type-resource';\nimport {NAE_INFORM_ABOUT_INVALID_DATA} from \"../../data-fields/models/invalid-data-policy-token\";\nimport {FormControl} from \"@angular/forms\";\n\n/**\n * Resolves the correct {@link AbstractDataFieldComponent} implementation for the provided data field object.\n */\n@Component({\n    selector: 'ncc-abstract-field-component-resolver',\n    template: ''\n})\nexport abstract class AbstractFieldComponentResolverComponent implements OnInit, OnDestroy {\n    @Input() gridElement: DatafieldGridLayoutElement;\n\n    public fieldTypeEnum = FieldTypeResource;\n    public taskElementEnum = TaskElementType;\n\n    protected constructor(protected taskContentService: TaskContentService,\n                          @Optional() @Inject(NAE_INFORM_ABOUT_INVALID_DATA) protected _informAboutInvalidData: boolean | null) {\n    }\n\n    ngOnInit() {\n        if (!!this.gridElement.item) {\n            this.gridElement.item.registerFormControl(new FormControl('', {updateOn: this.gridElement.item.getUpdateOnStrategy()}));\n            this.gridElement.item.sendInvalidValues = this._informAboutInvalidData;\n        }\n    }\n\n    ngOnDestroy() {\n        if (!!this.gridElement?.item) {\n            this.gridElement.item.disconnectFormControl();\n        }\n    }\n\n    protected isOffsetPresent(): boolean {\n        return !!this.taskContentService.task && !!this.taskContentService.task.layout && !!this.taskContentService.task.layout.offset;\n    }\n\n    getFieldOffset(): number {\n        return this.isOffsetPresent() ? this.taskContentService.task.layout.offset : 0;\n    }\n\n    getElementType(): TaskContentElementType {\n        return this.gridElement.type as TaskContentElementType;\n    }\n\n    getDataGroupTitle(): string {\n        return this.gridElement.title;\n    }\n\n    getDataField(): DataField<unknown> {\n        return this.gridElement.item;\n    }\n\n    getTaskId(): string {\n        return this.taskContentService.task.stringId;\n    }\n\n    isField(): boolean {\n        return this.gridElement.type !== TaskElementType.BLANK && this.gridElement.type !== TaskElementType.DATA_GROUP_TITLE;\n    }\n\n    isCustomHeight(): boolean {\n        const component = !!this.gridElement.item?.component ? this.gridElement.item.component : null;\n        return this.gridElement.type === FieldTypeResource.I18N && !!component\n            && (component.name === 'divider'\n                || (!!component.properties && 'plainText' in component.properties && component.properties.plaintText === 'true')\n            );\n    }\n}\n","/* SERVICES */\nexport * from './services/task-event.service';\nexport * from './services/field-converter.service';\nexport * from './services/task-content.service';\nexport * from './services/single-task-content.service';\nexport * from './services/unlimited-task-content.service';\n\n/* MODELS */\nexport * from './model/policy';\nexport * from './model/task-event-notification';\nexport * from './model/task-event';\nexport * from './model/field-type-resource';\nexport * from './model/task-content-element-type';\nexport * from './model/datafield-grid-layout-element';\nexport * from './model/async-rendering-configuration';\nexport * from './model/async-rendering-configuration-injection-token';\nexport * from './model/subgrid';\nexport * from './model/split-data-group';\nexport * from './model/task-fields';\n\n/* MODULES */\nexport * from './task-content/abstract-task-content.component';\nexport * from './field-component-resolver/abstract-field-component-resolver.component';\n","import {TaskOperations} from '../interfaces/task-operations';\n\n/**\n * Null implementation of the {@link TaskOperations} interface.\n */\nexport class NullTaskOperations implements TaskOperations {\n    /**\n     * Calling this function does nothing\n     */\n    close(): void {\n    }\n\n    /**\n     * Calling this function does nothing\n     */\n    open(): void {\n    }\n\n    /**\n     * Calling this function does nothing\n     */\n    reload(): void {\n    }\n\n    /**\n     * Calling this function does nothing\n     */\n    forceReload(): void {\n    }\n}\n","/* SERVICES */\nexport * from './services/assign-task.service';\nexport * from './services/cancel-task.service';\nexport * from './services/delegate-task.service';\nexport * from './services/finish-task.service';\nexport * from './services/task-request-state.service';\nexport * from './services/task-data.service';\nexport * from './services/data-focus-policy.service';\nexport * from './services/assign-policy.service';\nexport * from './services/finish-policy.service';\nexport * from './services/task-handling-service';\nexport * from './services/selected-case.service';\n\n/* MODELS */\nexport * from './models/task-operations-injection-token';\nexport * from './models/subject-task-operations';\nexport * from './models/null-task-operations';\n\n/* INTERFACES */\nexport * from './interfaces/task-operations';\n","/* APIS */\n\n/* MODULES */\n\n/* CLASSES */\n\n/* SERVICES */\nexport * from './authority/authority-guard.service';\nexport * from './role/role-guard.service';\nexport * from './group/group-guard.service';\nexport * from './permission/permission.service';\nexport * from './permission/access.service';\n\n/* COMPONENTS */\n","import {Router} from '@angular/router';\nimport {UserService} from '../../user/services/user.service';\nimport {SessionService} from '../../authentication/session/services/session.service';\nimport {AuthenticationService} from '../../authentication/services/authentication/authentication.service';\nimport {PublicUrlResolverService} from '../services/public-url-resolver.service';\nimport { RedirectService } from '../../routing/redirect-service/redirect.service';\n\nexport const publicFactoryResolver = (userService: UserService, sessionService: SessionService, authService: AuthenticationService,\n                                      router: Router, publicResolverService: PublicUrlResolverService, privateService, publicService,\n                                      redirectService: RedirectService, url?: string) => {\n    if (!sessionService.isInitialized) {\n        publicResolverService.url = router.url;\n        if (url === undefined) {\n            router.navigate(['/public-resolver'], {queryParams: redirectService.queryParams});\n        } else {\n            router.navigate([url], {queryParams: redirectService.queryParams});\n        }\n    } else if (authService.isAuthenticated && userService.user.id !== '' && userService.user.email !== 'anonymous@netgrif.com') {\n        return privateService;\n    } else {\n        return publicService;\n    }\n};\n\n","import {ActivatedRoute, Router} from '@angular/router';\nimport {ProcessService} from '../../process/process.service';\nimport {CaseResourceService} from '../../resources/engine-endpoint/case-resource.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {mergeMap} from 'rxjs/operators';\nimport {TranslateService} from '@ngx-translate/core';\nimport {CreateCaseEventOutcome} from '../../event/model/event-outcomes/case-outcomes/create-case-event-outcome';\nimport {PublicTaskLoadingService} from '../../view/task-view/service/public-task-loading.service';\n\nexport const getNetAndCreateCase = (router: Router,\n                                    route: ActivatedRoute,\n                                    process: ProcessService,\n                                    caseResourceService: CaseResourceService,\n                                    snackBarService: SnackBarService,\n                                    translate: TranslateService,\n                                    publicTaskLoadingService: PublicTaskLoadingService) => {\n    process.getNet(atob(route.snapshot.paramMap.get('petriNetId'))).pipe(mergeMap(net => {\n        if (net) {\n            publicTaskLoadingService.setLoading$(true);\n            const newCase = {\n                title: (net.defaultCaseName !== undefined && net.defaultCaseName !== '') ?\n                    net.defaultCaseName : translate.instant('side-menu.new-case.case'),\n                color: 'panel-primary-icon',\n                netId: net.stringId\n            };\n            return caseResourceService.createCase(newCase);\n        } else {\n            snackBarService.openWarningSnackBar(translate.instant('publicView.netNotExist'));\n        }\n    })).subscribe(response => {\n            router.navigate([route.snapshot.url.join('/') + '/' + (response.outcome as CreateCaseEventOutcome).aCase.stringId]);\n            publicTaskLoadingService.setLoading$(false);\n        }, error => {\n            snackBarService.openErrorSnackBar(translate.instant('publicView.errorCreate') + error);\n            publicTaskLoadingService.setLoading$(false);\n        }\n    );\n};\n","import {ActivatedRoute, Router} from '@angular/router';\nimport {ProcessService} from '../../process/process.service';\nimport {CaseResourceService} from '../../resources/engine-endpoint/case-resource.service';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {getNetAndCreateCase} from './get-net-and-create-case';\nimport {SimpleFilter} from '../../filter/models/simple-filter';\nimport {FilterType} from '../../filter/models/filter-type';\nimport {TranslateService} from '@ngx-translate/core';\nimport {PublicTaskLoadingService} from '../../view/task-view/service/public-task-loading.service';\n\nexport const CASE_ID = \"caseId\";\nexport const PETRI_NET_ID = \"petriNetId\"\nexport const TRANSITION_ID = \"transitionId\"\n\nexport const publicBaseFilterFactory = (router: Router, route: ActivatedRoute, process: ProcessService,\n                                        caseResourceService: CaseResourceService, snackBarService: SnackBarService,\n                                        translate: TranslateService, publicTaskLoadingService: PublicTaskLoadingService) => {\n    const caseId = route.snapshot.paramMap.get(CASE_ID)\n    const petriNetId = route.snapshot.paramMap.get(PETRI_NET_ID)\n    const transId = route.snapshot.paramMap.get(TRANSITION_ID)\n    if (caseId === null && petriNetId !== null) {\n        getNetAndCreateCase(router, route, process, caseResourceService, snackBarService, translate, publicTaskLoadingService);\n    } else if (caseId !== null && transId !== null) {\n        return {\n            filter: new SimpleFilter('', FilterType.TASK, {case: {id: caseId}, transitionId: transId})\n        };\n    } else if (caseId !== null) {\n        return {\n            filter: new SimpleFilter('', FilterType.TASK, {case: {id: caseId}})\n        };\n    }\n    return {\n        filter: new SimpleFilter('', FilterType.TASK, {case: {id: 'No Case'}})\n    };\n};\n","import {Injectable} from '@angular/core';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class PublicUrlResolverService {\n\n    protected _url: string;\n    constructor() {\n    }\n\n    set url(url: string) {\n        this._url = url;\n    }\n\n    get url() {\n        return this._url;\n    }\n}\n","import {Component, Input} from '@angular/core';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {Services} from '../../../commons/schema';\n\n@Component({\n    selector: 'ncc-abstract-legal-notice',\n    template: ''\n})\nexport abstract class AbstractLegalNoticeComponent {\n\n    /**\n     * The button text that should be displayed in the legal notice.\n     * The text is passed trough the `translate` pipe before being displayed.\n     */\n    @Input() buttonName: string;\n\n    protected _legalConfig: Services['legal'];\n\n    protected constructor(config: ConfigurationService) {\n        this._legalConfig = config.getConfigurationSubtree(['services', 'legal']);\n    }\n\n    public get termsOfServiceLink(): string {\n        return this._legalConfig.termsOfService;\n    }\n\n    public get privacyPolicyLink(): string {\n        return this._legalConfig.privacyPolicy;\n    }\n}\n","/* SERVICES */\nexport * from './services/event-queue.service';\n\n/* MODEL */\nexport * from './model/queued-event';\n","/* EVENT OUTCOMES */\nexport * from './model/event-outcomes/case-outcomes/create-case-event-outcome';\nexport * from './model/event-outcomes/case-outcomes/delete-case-event-outcome';\nexport * from './model/event-outcomes/data-outcomes/get-data-event-outcome';\nexport * from './model/event-outcomes/data-outcomes/get-data-groups-event-outcome';\nexport * from './model/event-outcomes/data-outcomes/set-data-event-outcome';\nexport * from './model/event-outcomes/data-outcomes/get-data-localised-event-outcome';\nexport * from './model/event-outcomes/task-outcomes/assign-task-event-outcome';\nexport * from './model/event-outcomes/task-outcomes/cancel-task-event-outcome';\nexport * from './model/event-outcomes/task-outcomes/delegate-task-event-outcome';\nexport * from './model/event-outcomes/task-outcomes/task-event-outcome';\nexport * from './model/event-outcomes/task-outcomes/finish-task-event-outcome';\nexport * from './model/event-outcomes/petrinet-outcomes/petri-net-event-outcome';\n\n/* EVENT SERVICE */\nexport * from './services/event.service';\nexport * from './services/interfaces/changed-fields-map';\n\n/* ENUMS */\nexport * from './model/event-constants';\n","import {Injectable} from '@angular/core';\nimport {UserResourceService} from '../../resources/engine-endpoint/user-resource.service';\nimport {ResourceProvider} from '../../resources/resource-provider.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {Params} from '@angular/router';\nimport {Observable} from 'rxjs';\nimport {Page} from '../../resources/interface/page';\nimport {UserResource} from '../../resources/interface/user-resource';\nimport {map} from 'rxjs/operators';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class ImpersonationUserResourceService extends UserResourceService {\n\n    protected _IMPERSONATION_SERVER_URL: string;\n\n    constructor(provider: ResourceProvider, configService: ConfigurationService) {\n        super(provider, configService);\n        this._IMPERSONATION_SERVER_URL = this.getResourceAddress('impersonation');\n    }\n\n    public search(body: {fulltext: string}, params?: Params): Observable<Page<UserResource>> {\n        return this._resourceProvider.post$('/impersonate/search', this._IMPERSONATION_SERVER_URL, {query: body.fulltext}, params)\n            .pipe(map((r) => this.getResourcePage<UserResource>(r, 'users')));\n    }\n}\n","import {UserListService} from '../../user/services/user-list.service';\nimport {Injectable} from '@angular/core';\nimport {SnackBarService} from '../../snack-bar/services/snack-bar.service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {LoggerService} from '../../logger/services/logger.service';\nimport {ImpersonationUserResourceService} from './impersonation-user-resource.service';\n\n@Injectable()\nexport class ImpersonationUserListService extends UserListService {\n\n    constructor(_resources: ImpersonationUserResourceService,\n                protected _logService: LoggerService,\n                _snackbar: SnackBarService,\n                _translate: TranslateService) {\n        super(_resources, _logService, _snackbar, _translate);\n    }\n\n}\n","/* MODELS */\nexport * from './models/user-impersonation-constants';\nexport * from './models/user-impersonate-config-metadata';\n\n/* SERVICES */\nexport * from './services/impersonation.service';\nexport * from './services/impersonation-user-select.service';\nexport * from './services/impersonation-user-list.service';\nexport * from './services/impersonation-user-resource.service';\n","import {FrontActionDefinition} from \"./front-action-definition\";\nimport {Injector} from \"@angular/core\";\nimport {FrontAction} from \"../../data-fields/models/changed-fields\";\nimport {Router} from \"@angular/router\";\n\nexport const redirectAction: FrontActionDefinition = {\n    call: (injector: Injector, frontAction: FrontAction) => {\n        const router = injector.get(Router);\n        router.navigate([frontAction.args[0]])\n    }\n}\n","import {FrontActionDefinition} from \"./front-action-definition\";\nimport {Injector} from \"@angular/core\";\nimport {FrontAction} from \"../../data-fields/models/changed-fields\";\nimport {TaskContentService} from \"../../task-content/services/task-content.service\";\nimport {TaskDataService} from \"../../task/services/task-data.service\";\nimport {AfterAction} from \"../../utility/call-chain/after-action\";\n\nexport const validateTaskAction: FrontActionDefinition = {\n    call: (injector: Injector, frontAction: FrontAction) => {\n        const taskContentService = injector.get(TaskContentService);\n        taskContentService.validateTaskData(frontAction.args[0] as string);\n    }\n}\n\nexport const reloadTaskAction: FrontActionDefinition = {\n    call: (injector: Injector, frontAction: FrontAction) => {\n        const taskDataService = injector.get(TaskDataService);\n        taskDataService.initializeTaskDataFields(new AfterAction(), true);\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {FrontActionRegistryService} from \"../registry/front-action-registry.service\";\nimport {redirectAction} from \"./model/router-action-definitions\";\nimport {reloadTaskAction, validateTaskAction} from \"./model/task-action-definitions\";\n\n@NgModule({\n  declarations: [],\n  imports: [\n    CommonModule\n  ]\n})\nexport class FrontActionModule {\n\n    constructor(frontActionsRegistry: FrontActionRegistryService) {\n        frontActionsRegistry.register('redirect', redirectAction);\n        frontActionsRegistry.register('validate', validateTaskAction);\n        frontActionsRegistry.register('reloadTask', reloadTaskAction);\n    }\n}\n","\nimport { Router } from '@angular/router';\nimport { ProcessService } from '../../process/process.service';\nimport { UserService } from '../../user/services/user.service';\nimport { SessionService } from '../../authentication/session/services/session.service';\nimport { AuthenticationService } from '../../authentication/services/authentication/authentication.service';\nimport { PublicUrlResolverService } from '../../public/services/public-url-resolver.service';\nimport { PetriNetResourceService } from '../../resources/engine-endpoint/petri-net-resource.service';\nimport { PublicPetriNetResourceService } from '../../resources/engine-endpoint/public/public-petri-net-resource.service';\nimport { LoggerService } from '../../logger/services/logger.service';\nimport { RedirectService } from '../../routing/redirect-service/redirect.service';\nimport { publicFactoryResolver } from '../../public/factories/public-factory-resolver';\nimport { PublicProcessService } from '../../process/public-process.service';\n\nexport const ProcessServiceProvider = {\n    provide: ProcessService,\n    useFactory: (userService: UserService,\n                 sessionService: SessionService,\n                 authService: AuthenticationService,\n                 router: Router,\n                 publicResolverService: PublicUrlResolverService,\n                 petriNetResource: PetriNetResourceService,\n                 publicPetriNetResource: PublicPetriNetResourceService,\n                 loggerService: LoggerService,\n                 redirectService: RedirectService) => {\n        return publicFactoryResolver(\n            userService,\n            sessionService,\n            authService,\n            router,\n            publicResolverService,\n            new ProcessService(petriNetResource, loggerService),\n            new PublicProcessService(publicPetriNetResource, loggerService),\n            redirectService\n        );\n    },\n    deps: [\n        UserService,\n        SessionService,\n        AuthenticationService,\n        Router,\n        PublicUrlResolverService,\n        PetriNetResourceService,\n        PublicPetriNetResourceService,\n        LoggerService,\n        RedirectService\n    ]\n}\n","\nimport { Router } from '@angular/router';\nimport { UserService } from '../../user/services/user.service';\nimport { PetriNetResourceService } from '../../resources/engine-endpoint/petri-net-resource.service';\nimport { SessionService } from '../../authentication/session/services/session.service';\nimport { AuthenticationService } from '../../authentication/services/authentication/authentication.service';\nimport { PublicUrlResolverService } from '../../public/services/public-url-resolver.service';\nimport { ResourceProvider } from '../../resources/resource-provider.service';\nimport { ConfigurationService } from '../../configuration/configuration.service';\nimport { RedirectService } from '../../routing/redirect-service/redirect.service';\nimport { publicFactoryResolver } from '../../public/factories/public-factory-resolver';\nimport {\n    PublicPetriNetResourceService\n} from '../../resources/engine-endpoint/public/public-petri-net-resource.service';\n\n\nexport const PetriNetResourceServiceProvider = {\n    provide: PetriNetResourceService,\n    useFactory: (userService: UserService,\n                 sessionService: SessionService,\n                 authService: AuthenticationService,\n                 router: Router,\n                 publicResolverService: PublicUrlResolverService,\n                 provider: ResourceProvider,\n                 config: ConfigurationService,\n                 redirectService: RedirectService) => {\n        return publicFactoryResolver(\n            userService,\n            sessionService,\n            authService,\n            router,\n            publicResolverService,\n            new PetriNetResourceService(provider, config),\n            new PublicPetriNetResourceService(provider, config),\n            redirectService\n        );\n    },\n    deps: [\n        UserService,\n        SessionService,\n        AuthenticationService,\n        Router,\n        PublicUrlResolverService,\n        ResourceProvider,\n        ConfigurationService,\n        RedirectService]\n}\n","import { Router } from '@angular/router';\nimport { UserService } from '../../user/services/user.service';\nimport { TaskResourceService } from '../../resources/engine-endpoint/task-resource.service';\nimport { SessionService } from '../../authentication/session/services/session.service';\nimport { AuthenticationService } from '../../authentication/services/authentication/authentication.service';\nimport { PublicUrlResolverService } from '../../public/services/public-url-resolver.service';\nimport { LoggerService } from '../../logger/services/logger.service';\nimport { ResourceProvider } from '../../resources/resource-provider.service';\nimport { ConfigurationService } from '../../configuration/configuration.service';\nimport { FieldConverterService } from '../../task-content/services/field-converter.service';\nimport { RedirectService } from '../../routing/redirect-service/redirect.service';\nimport { publicFactoryResolver } from '../../public/factories/public-factory-resolver';\nimport { PublicTaskResourceService } from '../../resources/engine-endpoint/public/public-task-resource.service';\n\nexport const TaskResourceServiceProvider = {\n    provide: TaskResourceService,\n    useFactory: (\n        userService: UserService,\n        sessionService: SessionService,\n        authService: AuthenticationService,\n        router: Router,\n        publicResolverService: PublicUrlResolverService,\n        logger: LoggerService,\n        provider: ResourceProvider,\n        config: ConfigurationService,\n        fieldConverter: FieldConverterService,\n        redirectService: RedirectService) => {\n        return publicFactoryResolver(\n            userService,\n            sessionService,\n            authService,\n            router,\n            publicResolverService,\n            new TaskResourceService(provider, config, fieldConverter, logger),\n            new PublicTaskResourceService(provider, config, fieldConverter, logger),\n            redirectService\n        );\n    },\n    deps: [\n        UserService,\n        SessionService,\n        AuthenticationService,\n        Router,\n        PublicUrlResolverService,\n        LoggerService,\n        ResourceProvider,\n        ConfigurationService,\n        FieldConverterService,\n        RedirectService]\n}\n","\nimport { Router } from '@angular/router';\nimport { CaseResourceService } from '../../resources/engine-endpoint/case-resource.service';\nimport { UserService } from '../../user/services/user.service';\nimport { SessionService } from '../../authentication/session/services/session.service';\nimport { AuthenticationService } from '../../authentication/services/authentication/authentication.service';\nimport { PublicUrlResolverService } from '../../public/services/public-url-resolver.service';\nimport { ResourceProvider } from '../../resources/resource-provider.service';\nimport { ConfigurationService } from '../../configuration/configuration.service';\nimport { RedirectService } from '../../routing/redirect-service/redirect.service';\nimport { publicFactoryResolver } from '../../public/factories/public-factory-resolver';\nimport { PublicCaseResourceService } from '../../resources/engine-endpoint/public/public-case-resource.service';\n\nexport const CaseResourceServiceProvider = {\n    provide: CaseResourceService,\n    useFactory: (userService: UserService,\n                 sessionService: SessionService,\n                 authService: AuthenticationService,\n                 router: Router,\n                 publicResolverService: PublicUrlResolverService,\n                 provider: ResourceProvider,\n                 config: ConfigurationService,\n                 redirectService: RedirectService) => {\n        return publicFactoryResolver(\n            userService,\n            sessionService,\n            authService,\n            router,\n            publicResolverService,\n            new CaseResourceService(provider, config),\n            new PublicCaseResourceService(provider, config),\n            redirectService\n        );\n    },\n    deps: [\n        UserService,\n        SessionService,\n        AuthenticationService,\n        Router,\n        PublicUrlResolverService,\n        ResourceProvider,\n        ConfigurationService,\n        RedirectService\n    ]\n}\n","import { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NAE_BASE_FILTER } from '../../search/models/base-filter-injection-token';\nimport { publicBaseFilterFactory } from '../../public/factories/public-search-factory';\nimport { ProcessService } from '../../process/process.service';\nimport { CaseResourceService } from '../../resources/engine-endpoint/case-resource.service';\nimport { SnackBarService } from '../../snack-bar/services/snack-bar.service';\nimport { PublicTaskLoadingService } from '../../view/task-view/service/public-task-loading.service';\nimport { RedirectService } from '../../routing/redirect-service/redirect.service';\n\nexport const BaseFilterFactoryProvider = {\n    provide: NAE_BASE_FILTER,\n    useFactory: publicBaseFilterFactory,\n    deps: [\n        Router,\n        ActivatedRoute,\n        ProcessService,\n        CaseResourceService,\n        SnackBarService,\n        TranslateService,\n        PublicTaskLoadingService,\n        RedirectService\n    ]\n}\n","import {Injectable} from '@angular/core';\nimport {AbstractResourceProvider} from '../../resources/resource-provider.service';\nimport {ConfigurationService} from '../../configuration/configuration.service';\nimport {Filter} from '../../filter/models/filter';\nimport {HeaderColumn, HeaderColumnType} from '../../header/models/header-column';\nimport {MergedFilter} from '../../filter/models/merged-filter';\nimport {MergeOperator} from '../../filter/models/merge-operator';\nimport {HttpClient} from '@angular/common/http';\nimport {TranslateService} from '@ngx-translate/core';\nimport {switchMap} from 'rxjs/operators';\nimport {Observable, of} from 'rxjs';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class ExportService {\n\n    protected readonly SERVER_URL: string;\n\n    constructor(protected _httpClient: HttpClient,\n                protected _translate: TranslateService,\n                protected _configService: ConfigurationService) {\n        this.SERVER_URL = this.getResourceAddress('case', this._configService.get().providers.resources);\n    }\n\n    public downloadExcelFromCurrentSelection(activeFilter: Filter, currentHeaders: Array<HeaderColumn>): Observable<boolean> {\n        const mergeOperation = activeFilter instanceof MergedFilter ? (activeFilter as any)._operator : MergeOperator.AND;\n\n        return this._httpClient.post(AbstractResourceProvider.sanitizeUrl(`/export/filteredCases`, this.SERVER_URL), {\n            query: activeFilter.getRequestBody(),\n            selectedDataFieldNames: currentHeaders.filter(header => header).map(header =>\n                header.type === HeaderColumnType.IMMEDIATE ? header.title : this._translate.instant(header.title)),\n            selectedDataFieldIds: currentHeaders.filter(header => header).map(\n                header => header.type === HeaderColumnType.IMMEDIATE ? header.fieldIdentifier : (header.fieldIdentifier === 'mongoId' ? `meta-stringId` : `meta-${header.fieldIdentifier}`)),\n            isIntersection: mergeOperation === MergeOperator.AND\n        }, {\n            responseType: 'arraybuffer', observe: 'response'\n        }).pipe(switchMap((response: any) => {\n            if (response && response.body) {\n                const contentType = response.headers.get('Content-Type');\n                const linkElement = document.createElement('a');\n                const blob = new Blob([response.body], {type: contentType});\n                const urlBlob = window.URL.createObjectURL(blob);\n                linkElement.setAttribute('href', urlBlob);\n                linkElement.setAttribute('download', 'export.xlsx');\n                document.body.appendChild(linkElement);\n                linkElement.click();\n                document.body.removeChild(linkElement);\n                return of(true);\n            } else {\n                return of(false);\n            }\n        }));\n    }\n\n    public getResourceAddress(name: string, resourcesArray: any): string {\n        let URL = '';\n        if (resourcesArray instanceof Array) {\n            resourcesArray.forEach(resource => {\n                if (resource.name === name) {\n                    URL = resource.address;\n                }\n            });\n        } else {\n            if (resourcesArray.name === name) {\n                URL = resourcesArray.address;\n            }\n        }\n        return URL;\n    }\n}\n","/* SERVICES */\nexport * from './services/export.service';\n","/*\n * Public API Surface of netgrif-components-core\n */\nexport * from './commons/schema';\n\n/* MODULES */\nexport * from './lib/material/material.module';\nexport * from './lib/covalent/covalent.module';\nexport * from './lib/currency/currency.module';\n\n/* APIS */\nexport * from './lib/logger/public-api';\nexport * from './lib/data-fields/public-api';\nexport * from './lib/authentication/public-api';\nexport * from './lib/user/public-api';\nexport * from './lib/panel/public-api';\nexport * from './lib/configuration/public-api';\nexport * from './lib/forms/public-api';\nexport * from './lib/toolbar/public-api';\nexport * from './lib/tabs/public-api';\nexport * from './lib/side-menu/public-api';\nexport * from './lib/dialog/public-api';\nexport * from './lib/header/public-api';\nexport * from './lib/resources/public-api';\nexport * from './lib/navigation/public-api';\nexport * from './lib/view/public-api';\nexport * from './lib/process/public-api';\nexport * from './lib/dashboard/public-api';\nexport * from './lib/filter/public-api';\nexport * from './lib/snack-bar/public-api';\nexport * from './lib/search/public-api';\nexport * from './lib/translate/public-api';\nexport * from './lib/admin/public-api';\nexport * from './lib/utility/public-api';\nexport * from './lib/routing/public-api';\nexport * from './lib/task-content/public-api';\nexport * from './lib/task/public-api';\nexport * from './lib/moment/public-api';\nexport * from './lib/authorization/public-api';\nexport * from './lib/public/public-api';\nexport * from './lib/groups/public-api';\nexport * from './lib/legal/public-api';\nexport * from './lib/allowed-nets/public-api';\nexport * from './lib/event-queue/public-api';\nexport * from './lib/changed-fields/public-api';\nexport * from './lib/event/public-api';\nexport * from './lib/impersonation/public-api';\nexport * from './lib/registry/public-api';\nexport * from './lib/actions/public-api';\nexport * from './lib/providers/public-api';\nexport * from './lib/export/public-api'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["en","sk","de","i1.ConfigurationService","i1.LogPublisherService","i2.ConfigurationService","i2.LoggerService","i3","i4.SessionIdleTimerService","i1.AuthenticationMethodService","i3.SessionService","i4.UserTransformer","i1.ResourceProvider","i1.AuthenticationService","i2.UserResourceService","i3.UserTransformer","i4.LoggerService","i5.SessionService","i6.AnonymousService","i1","i1.UserService","i3.LoggerService","i4.SnackBarService","i5","i2.UserPreferenceService","i1.LanguageService","i2","i4","i6","i7","i1.PaperViewService","i3.ComponentRegistryService","i3.LanguageService","i3.FieldConverterService","i1.OperatorResolverService","i1.PetriNetResourceService","i2.ProcessService","i1.OperatorService","i3.SearchIndexResolverService","i4.CategoryResolverService","i5.AllowedNetsService","i6.UserResourceService","i1.SearchService","i1.ComponentRegistryService","i2.FilterField","i2.SearchService","i1.FieldConverterService","i2.SnackBarService","i1.TaskContentService","i1.LoggerService","i2.CallChainService","i1.FrontActionRegistryService","i8.SelectedCaseService","i9.TaskContentService","i10.CallChainService","i11.EventQueueService","i12.UserComparatorService","i13.EventService","i14.ChangedFieldsService","i15.FrontActionService","i3.ConfigurationService","i1.SessionService","i2.RedirectService","i3.AnonymousService","i1.AnonymousService","i2.SpinnerOverlayService","i4.RedirectService","i5.UserService","i1.SessionIdleTimerService","i2.UserService","i4.ConfigurationService","i1.UserResourceService","i3.SnackBarService","i1.CaseListFontColorService","i1.ViewIdService","i1.OverflowService","i3.OverflowService","i1.SearchIndexResolverService","i1.UserComparatorService","i1.AllowedNetsService","i3.CaseResourceService","i5.SnackBarService","i6.SearchService","i8.UserService","i9.ProcessService","i10.SearchIndexResolverService","i11.PermissionService","i1.CaseResourceService","i2.CaseViewService","i5.LoggerService","i6.UserService","i8.PermissionService","i9.OverflowService","i1.TaskResourceService","i5.SearchService","i6.LoggerService","i7.UserComparatorService","i8.SearchIndexResolverService","i11.SelectedCaseService","i12.TaskViewService","i13.TaskContentService","i2.SideMenuService","i3.TaskResourceService","i6.TaskRequestStateService","i7.TaskEventService","i8.TaskDataService","i9.EventQueueService","i10.EventService","i11.ChangedFieldsService","i12.SelectedCaseService","i13.TaskViewService","i14.TaskContentService","i15.PermissionService","i3.TaskContentService","i7.TaskContentService","i9.UserService","i3.TaskViewService","i4.PaperViewService","i5.TaskEventService","i6.AssignTaskService","i7.DelegateTaskService","i8.CancelTaskService","i9.FinishTaskService","i10.TaskRequestStateService","i11.TaskDataService","i12.AssignPolicyService","i13.FinishPolicyService","i14.CallChainService","i15.SubjectTaskOperations","i16","i17","i18.ChangedFieldsService","i19.PermissionService","i20.OverflowService","i3.DialogService","i6.SearchIndexResolverService","i3.WorkflowViewService","i4.PetriNetResourceService","i5.OverflowService","i2.LanguageService","i1.ViewService","i2.CaseResourceService","i1.NextGroupService","i1.SideMenuControl","i2.PetriNetResourceService","i3.UriService","i1.UserListService","i1.FilterRepository","i1.AbstractSortableViewComponent","i1.TaskViewService","i2.TaskResourceService","i3.ProcessService","i4.CallChainService","i5.SideMenuService","i7.CategoryResolverService","i8","i1.UserFiltersService","i1.CaseViewService","i2.OverflowService","i1.SideMenuService","i1.HeaderType","i4.ViewIdService","i1.UserPreferenceService","i3.ViewIdService","i4.OverflowService","i1.CategoryFactory","i2.PaperViewService","i2.LanguageIconsService","i1.RedirectService","i3.NextGroupService","i3.RoleGuardService","i4.AuthorityGuardService","i5.GroupGuardService","i4.UserService","i5.AccessService","i6.ActiveGroupService","i7.TaskResourceService","i8.LanguageService","i9.DynamicNavigationRouteProviderService","i3.UserPreferenceService","i6.FilterRepository","i7.LoggerService","i3.ImpersonationService","i6.AccessService","i8.ConfigurationService","i9.UriService","i10.CaseResourceService","i11.ImpersonationUserSelectService","i12.ImpersonationService","i13.DynamicNavigationRouteProviderService","i1.GroupNavigationComponentResolverService","i1.UriService","i4.DynamicNavigationRouteProviderService","i1.ProcessService","i3.AllowedNetsServiceFactory","i4.BaseAllowedNetsService","i2.TreeCaseViewService","i5.ProcessService","i6.SideMenuService","i2.WorkflowViewService","i4.ProcessService","i1.CaseTreeService","i1.TreeTaskContentService","i2.TaskEventService","i3.AssignTaskService","i4.CancelTaskService","i5.FinishTaskService","i6.TaskContentService","i7.PermissionService","i1.PublicPetriNetResourceService","i1.DashboardResourceService","i2.AdvancedSearchComponentInitializationService","i3.CategoryFactory","i1.RoleAssignmentService","i1.UserInviteService","i2.OrganizationListService","i3.SignUpService","i1.LdapGroupResourceService","i1.RoleAssignmentLdapGroupService","i1.ImpersonationUserResourceService"],"mappings":"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"}