@snabcentr/client-ui 4.4.3 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/snabcentr-client-ui.mjs +3730 -3948
 - package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
 - package/index.d.ts +4466 -3
 - package/package.json +1 -3
 - package/release_notes.tmp +1 -10
 - package/styles/tailwind/tailwind.scss +5 -177
 - package/accordion/index.d.ts +0 -3
 - package/accordion/sc-accordion-content.directive.d.ts +0 -9
 - package/accordion/sc-accordion.component.d.ts +0 -56
 - package/accordion/sc-accordion.module.d.ts +0 -15
 - package/auth/enums/auth-method.d.ts +0 -13
 - package/auth/index.d.ts +0 -8
 - package/auth/interfaces/api-error-response.d.ts +0 -13
 - package/auth/interfaces/index.d.ts +0 -3
 - package/auth/interfaces/sc-bank-account-form-group.d.ts +0 -11
 - package/auth/interfaces/sc-contact-form-group.d.ts +0 -10
 - package/auth/sc-auth.module.d.ts +0 -26
 - package/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.d.ts +0 -39
 - package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +0 -41
 - package/auth/sc-sign-in-form/sc-sign-in-form.component.d.ts +0 -53
 - package/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.d.ts +0 -106
 - package/auth/sign-up-form/sc-sign-up-form.component.d.ts +0 -161
 - package/banner/index.d.ts +0 -2
 - package/banner/sc-banner.component.d.ts +0 -88
 - package/banner/sc-banner.module.d.ts +0 -18
 - package/brands-list/index.d.ts +0 -2
 - package/brands-list/sc-brands-list.component.d.ts +0 -15
 - package/brands-list/sc-brands-list.module.d.ts +0 -12
 - package/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.d.ts +0 -102
 - package/cart/add-or-editing-cart-item-dialog/index.d.ts +0 -2
 - package/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.d.ts +0 -48
 - package/cart/cart-item/sc-cart-item.component.d.ts +0 -25
 - package/cart/index.d.ts +0 -3
 - package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +0 -62
 - package/catalog/category-card/sc-category-card.component.d.ts +0 -76
 - package/catalog/cost-with-discount/cost-with-discount.component.d.ts +0 -23
 - package/catalog/download-price-list/sc-download-price-list.component.d.ts +0 -38
 - package/catalog/hover-image-carousel/sc-hover-image-carousel.component.d.ts +0 -48
 - package/catalog/index.d.ts +0 -12
 - package/catalog/input-quantity/sc-input-quantity.component.d.ts +0 -82
 - package/catalog/notify-when-in-stock-dialog/index.d.ts +0 -2
 - package/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.d.ts +0 -90
 - package/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.d.ts +0 -22
 - package/catalog/price-card/sc-price-card.component.d.ts +0 -18
 - package/catalog/price-card-inline/sc-price-card-inline.component.d.ts +0 -10
 - package/catalog/price-history/sc-price-history.component.d.ts +0 -88
 - package/catalog/price-list-pagination/sc-price-list-pagination.component.d.ts +0 -40
 - package/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.d.ts +0 -47
 - package/catalog/sc-catalog.module.d.ts +0 -29
 - package/catalog/sc-favorite-button/sc-favorite-button.component.d.ts +0 -25
 - package/contacts/add-contact-dialog/sc-add-contact-dialog.component.d.ts +0 -49
 - package/contacts/contacts-accordion/sc-contacts-accordion.component.d.ts +0 -23
 - package/contacts/index.d.ts +0 -7
 - package/contacts/manager-card/sc-manager-card.component.d.ts +0 -22
 - package/contacts/manager-card-push/sc-manager-card-push.component.d.ts +0 -18
 - package/contacts/new-contact-form/sc-new-contact-form.component.d.ts +0 -28
 - package/contacts/sc-contacts.module.d.ts +0 -28
 - package/contacts/tokens/index.d.ts +0 -2
 - package/contacts/tokens/sc-manager-qr-handler.token.d.ts +0 -6
 - package/contacts/tokens/sc-show-help-notification-in-phone-input.token.d.ts +0 -5
 - package/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.d.ts +0 -49
 - package/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.d.ts +0 -161
 - package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +0 -62
 - package/contragents/contragents-accordion/sc-contragents-accordion.component.d.ts +0 -49
 - package/contragents/index.d.ts +0 -7
 - package/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.d.ts +0 -64
 - package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +0 -125
 - package/contragents/sc-contragents.module.d.ts +0 -27
 - package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +0 -141
 - package/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.d.ts +0 -50
 - package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +0 -49
 - package/delivery-address/index.d.ts +0 -4
 - package/delivery-address/sc-delivery-address.module.d.ts +0 -26
 - package/dialogs/index.d.ts +0 -1
 - package/dialogs/sc-resource-preview/sc-resource-preview.component.d.ts +0 -42
 - package/directives/abstract-price-card/abstract-sc-price-card.directive.d.ts +0 -136
 - package/directives/index.d.ts +0 -7
 - package/directives/links/index.d.ts +0 -4
 - package/directives/links/sc-email-link.directive.d.ts +0 -25
 - package/directives/links/sc-link-location.d.ts +0 -5
 - package/directives/links/sc-links.d.ts +0 -7
 - package/directives/links/sc-tel-link.directive.d.ts +0 -40
 - package/directives/next-input-focus/sc-next-input-focus.directive.d.ts +0 -18
 - package/directives/next-input-focus/sc-next-input-focus.module.d.ts +0 -10
 - package/directives/sc-date-value-transformer.directive.d.ts +0 -8
 - package/directives/select-on-focusin/sc-select-on-focusin.directive.d.ts +0 -14
 - package/directives/terminal-link/sc-terminal-link.directive.d.ts +0 -34
 - package/error-handler/consts/error-change-handler.providers.d.ts +0 -5
 - package/error-handler/error-block-status/error-block-status.component.d.ts +0 -37
 - package/error-handler/index.d.ts +0 -4
 - package/error-handler/interfaces/i-block-error.d.ts +0 -17
 - package/error-handler/sc-error-handler.component.d.ts +0 -40
 - package/esm2022/accordion/index.mjs +0 -4
 - package/esm2022/accordion/sc-accordion-content.directive.mjs +0 -17
 - package/esm2022/accordion/sc-accordion.component.mjs +0 -92
 - package/esm2022/accordion/sc-accordion.module.mjs +0 -26
 - package/esm2022/auth/enums/auth-method.mjs +0 -15
 - package/esm2022/auth/index.mjs +0 -9
 - package/esm2022/auth/interfaces/api-error-response.mjs +0 -2
 - package/esm2022/auth/interfaces/index.mjs +0 -4
 - package/esm2022/auth/interfaces/sc-bank-account-form-group.mjs +0 -2
 - package/esm2022/auth/interfaces/sc-contact-form-group.mjs +0 -2
 - package/esm2022/auth/sc-auth.module.mjs +0 -99
 - package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +0 -87
 - package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +0 -86
 - package/esm2022/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +0 -89
 - package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +0 -187
 - package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +0 -333
 - package/esm2022/banner/index.mjs +0 -3
 - package/esm2022/banner/sc-banner.component.mjs +0 -143
 - package/esm2022/banner/sc-banner.module.mjs +0 -30
 - package/esm2022/brands-list/index.mjs +0 -3
 - package/esm2022/brands-list/sc-brands-list.component.mjs +0 -24
 - package/esm2022/brands-list/sc-brands-list.module.mjs +0 -22
 - package/esm2022/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.mjs +0 -233
 - package/esm2022/cart/add-or-editing-cart-item-dialog/index.mjs +0 -3
 - package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +0 -74
 - package/esm2022/cart/cart-item/sc-cart-item.component.mjs +0 -74
 - package/esm2022/cart/index.mjs +0 -4
 - package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +0 -110
 - package/esm2022/catalog/category-card/sc-category-card.component.mjs +0 -102
 - package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +0 -38
 - package/esm2022/catalog/download-price-list/sc-download-price-list.component.mjs +0 -56
 - package/esm2022/catalog/hover-image-carousel/sc-hover-image-carousel.component.mjs +0 -76
 - package/esm2022/catalog/index.mjs +0 -13
 - package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +0 -177
 - package/esm2022/catalog/notify-when-in-stock-dialog/index.mjs +0 -3
 - package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +0 -173
 - package/esm2022/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.mjs +0 -35
 - package/esm2022/catalog/price-card/sc-price-card.component.mjs +0 -52
 - package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +0 -56
 - package/esm2022/catalog/price-history/sc-price-history.component.mjs +0 -140
 - package/esm2022/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +0 -65
 - package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +0 -54
 - package/esm2022/catalog/sc-catalog.module.mjs +0 -125
 - package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +0 -42
 - package/esm2022/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +0 -91
 - package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +0 -38
 - package/esm2022/contacts/index.mjs +0 -8
 - package/esm2022/contacts/manager-card/sc-manager-card.component.mjs +0 -58
 - package/esm2022/contacts/manager-card-push/sc-manager-card-push.component.mjs +0 -28
 - package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +0 -37
 - package/esm2022/contacts/sc-contacts.module.mjs +0 -92
 - package/esm2022/contacts/tokens/index.mjs +0 -3
 - package/esm2022/contacts/tokens/sc-manager-qr-handler.token.mjs +0 -24
 - package/esm2022/contacts/tokens/sc-show-help-notification-in-phone-input.token.mjs +0 -7
 - package/esm2022/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +0 -81
 - package/esm2022/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +0 -278
 - package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +0 -75
 - package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +0 -69
 - package/esm2022/contragents/index.mjs +0 -8
 - package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +0 -72
 - package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +0 -242
 - package/esm2022/contragents/sc-contragents.module.mjs +0 -118
 - package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +0 -250
 - package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +0 -60
 - package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +0 -69
 - package/esm2022/delivery-address/index.mjs +0 -5
 - package/esm2022/delivery-address/sc-delivery-address.module.mjs +0 -99
 - package/esm2022/dialogs/index.mjs +0 -2
 - package/esm2022/dialogs/sc-resource-preview/sc-resource-preview.component.mjs +0 -68
 - package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +0 -170
 - package/esm2022/directives/index.mjs +0 -8
 - package/esm2022/directives/links/index.mjs +0 -5
 - package/esm2022/directives/links/sc-email-link.directive.mjs +0 -49
 - package/esm2022/directives/links/sc-link-location.mjs +0 -2
 - package/esm2022/directives/links/sc-links.mjs +0 -8
 - package/esm2022/directives/links/sc-tel-link.directive.mjs +0 -79
 - package/esm2022/directives/next-input-focus/sc-next-input-focus.directive.mjs +0 -43
 - package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +0 -19
 - package/esm2022/directives/sc-date-value-transformer.directive.mjs +0 -30
 - package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +0 -31
 - package/esm2022/directives/terminal-link/sc-terminal-link.directive.mjs +0 -69
 - package/esm2022/error-handler/consts/error-change-handler.providers.mjs +0 -8
 - package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +0 -76
 - package/esm2022/error-handler/index.mjs +0 -5
 - package/esm2022/error-handler/interfaces/i-block-error.mjs +0 -2
 - package/esm2022/error-handler/sc-error-handler.component.mjs +0 -58
 - package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +0 -344
 - package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +0 -32
 - package/esm2022/feedback/index.mjs +0 -4
 - package/esm2022/feedback/interfaces/index.mjs +0 -2
 - package/esm2022/feedback/interfaces/sc-feedback-form-config.mjs +0 -2
 - package/esm2022/files/directives/index.mjs +0 -3
 - package/esm2022/files/directives/tree-top.directive.mjs +0 -63
 - package/esm2022/files/directives/tree.directive.mjs +0 -47
 - package/esm2022/files/file-tree-item/file-tree-item.component.mjs +0 -18
 - package/esm2022/files/files-and-documents/files-and-documents.component.mjs +0 -61
 - package/esm2022/files/files-and-documents.module.mjs +0 -28
 - package/esm2022/files/index.mjs +0 -6
 - package/esm2022/files/interfaces/tree-node.mjs +0 -2
 - package/esm2022/files/services/index.mjs +0 -3
 - package/esm2022/files/services/tree-icon.service.mjs +0 -49
 - package/esm2022/files/services/tree-loader.service.mjs +0 -62
 - package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +0 -155
 - package/esm2022/form-fields/form-fields.module.mjs +0 -69
 - package/esm2022/form-fields/index.mjs +0 -4
 - package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +0 -175
 - package/esm2022/helpers/index.mjs +0 -2
 - package/esm2022/helpers/sc-px-converter.mjs +0 -27
 - package/esm2022/icons/index.mjs +0 -2
 - package/esm2022/icons/sc-client-ui-icons-name.mjs +0 -99
 - package/esm2022/loader/index.mjs +0 -2
 - package/esm2022/loader/sc-i-loader.mjs +0 -2
 - package/esm2022/masks/index.mjs +0 -8
 - package/esm2022/masks/sc-account-number-mask.mjs +0 -7
 - package/esm2022/masks/sc-bic-mask.mjs +0 -7
 - package/esm2022/masks/sc-correspondent-account-mask.mjs +0 -7
 - package/esm2022/masks/sc-inn-mask.mjs +0 -13
 - package/esm2022/masks/sc-kpp-mask.mjs +0 -7
 - package/esm2022/masks/sc-okpo-mask.mjs +0 -13
 - package/esm2022/masks/sc-phone-verification-code-mask.mjs +0 -7
 - package/esm2022/models/i-sc-image.mjs +0 -2
 - package/esm2022/models/index.mjs +0 -2
 - package/esm2022/news/index.mjs +0 -4
 - package/esm2022/news/news-card/sc-news-card.component.mjs +0 -34
 - package/esm2022/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +0 -31
 - package/esm2022/news/sc-news.module.mjs +0 -26
 - package/esm2022/order/index.mjs +0 -4
 - package/esm2022/order/order-item-mobile/sc-order-item-mobile.component.mjs +0 -60
 - package/esm2022/order/sc-order.module.mjs +0 -53
 - package/esm2022/order/sc-payment-status/sc-payment-status.component.mjs +0 -35
 - package/esm2022/pages/frequently-asked-questions/sc-frequently-asked-questions.component.mjs +0 -28
 - package/esm2022/pages/frequently-asked-questions/sc-page-size-options.mjs +0 -6
 - package/esm2022/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.mjs +0 -59
 - package/esm2022/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.mjs +0 -106
 - package/esm2022/pages/index.mjs +0 -7
 - package/esm2022/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.mjs +0 -46
 - package/esm2022/pages/privacy-policy/sc-privacy-policy.component.mjs +0 -30
 - package/esm2022/pages/public-offer/sc-public-offer.component.mjs +0 -50
 - package/esm2022/pipes/index.mjs +0 -3
 - package/esm2022/pipes/sc-format-date.mjs +0 -33
 - package/esm2022/pipes/sc-phone-format.mjs +0 -44
 - package/esm2022/profile/index.mjs +0 -3
 - package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +0 -175
 - package/esm2022/profile/sc-profile.module.mjs +0 -76
 - package/esm2022/providers/date-value-transformer/index.mjs +0 -4
 - package/esm2022/providers/date-value-transformer/sc-date-value-transformer-types.mjs +0 -2
 - package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +0 -26
 - package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +0 -37
 - package/esm2022/providers/index.mjs +0 -12
 - package/esm2022/providers/sc-allow-select-terminated.mjs +0 -6
 - package/esm2022/providers/sc-country-ids.mjs +0 -6
 - package/esm2022/providers/sc-date-formatter.mjs +0 -12
 - package/esm2022/providers/sc-date-value-transformer.mjs +0 -12
 - package/esm2022/providers/sc-help-notification-close.mjs +0 -7
 - package/esm2022/providers/sc-help-notification-limit.mjs +0 -6
 - package/esm2022/providers/sc-max-files-in-form-input.mjs +0 -6
 - package/esm2022/providers/sc-notify-when-in-stock-required-fields.mjs +0 -6
 - package/esm2022/providers/sc-page-size-options.mjs +0 -6
 - package/esm2022/providers/sc-user-providers.mjs +0 -33
 - package/esm2022/providers/sc-verification-code-timeout.mjs +0 -6
 - package/esm2022/public-api.mjs +0 -35
 - package/esm2022/qrcode/index.mjs +0 -3
 - package/esm2022/qrcode/qrcode-dialog/sc-qrcode-dialog.component.mjs +0 -58
 - package/esm2022/qrcode/sc-qrcode.module.mjs +0 -25
 - package/esm2022/samples/index.mjs +0 -5
 - package/esm2022/samples/interfaces/index.mjs +0 -3
 - package/esm2022/samples/interfaces/sc-i-preview-sample.mjs +0 -2
 - package/esm2022/samples/interfaces/sc-preview-mosquito-config.mjs +0 -2
 - package/esm2022/samples/preview-sample/sc-preview-sample.component.mjs +0 -42
 - package/esm2022/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.mjs +0 -63
 - package/esm2022/samples/sc-sample.module.mjs +0 -68
 - package/esm2022/services/index.mjs +0 -2
 - package/esm2022/services/sc-help-notification.service.mjs +0 -90
 - package/esm2022/share-button/index.mjs +0 -3
 - package/esm2022/share-button/sc-share-button.component.mjs +0 -35
 - package/esm2022/share-button/sc-share-button.module.mjs +0 -22
 - package/esm2022/snabcentr-client-ui.mjs +0 -5
 - package/esm2022/user/index.mjs +0 -6
 - package/esm2022/user/reset-user-password/sc-reset-user-password.component.mjs +0 -75
 - package/esm2022/user/sc-user.module.mjs +0 -89
 - package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +0 -122
 - package/esm2022/user/user-managers/sc-user-managers.component.mjs +0 -42
 - package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +0 -106
 - package/esm2022/validators/index.mjs +0 -7
 - package/esm2022/validators/sc-at-least-one-required-validator.mjs +0 -25
 - package/esm2022/validators/sc-bic-validator.mjs +0 -10
 - package/esm2022/validators/sc-correspondent-account-validator.mjs +0 -10
 - package/esm2022/validators/sc-password-confirm-matching-validator.mjs +0 -17
 - package/esm2022/validators/sc-phone-validator.mjs +0 -14
 - package/esm2022/validators/step-validator.mjs +0 -18
 - package/esm2022/verification/index.mjs +0 -4
 - package/esm2022/verification/providers/index.mjs +0 -3
 - package/esm2022/verification/providers/sc-phone-approve-code-sender.provider.mjs +0 -12
 - package/esm2022/verification/providers/sc-phone-approve-code-sender.token.mjs +0 -7
 - package/esm2022/verification/sc-verification.module.mjs +0 -88
 - package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +0 -277
 - package/feedback/feedback-form/sc-feedback-form.component.d.ts +0 -163
 - package/feedback/gratitude/sc-gratitude.component.d.ts +0 -20
 - package/feedback/index.d.ts +0 -3
 - package/feedback/interfaces/index.d.ts +0 -1
 - package/feedback/interfaces/sc-feedback-form-config.d.ts +0 -23
 - package/files/directives/index.d.ts +0 -2
 - package/files/directives/tree-top.directive.d.ts +0 -33
 - package/files/directives/tree.directive.d.ts +0 -35
 - package/files/file-tree-item/file-tree-item.component.d.ts +0 -9
 - package/files/files-and-documents/files-and-documents.component.d.ts +0 -27
 - package/files/files-and-documents.module.d.ts +0 -17
 - package/files/index.d.ts +0 -5
 - package/files/interfaces/tree-node.d.ts +0 -29
 - package/files/services/index.d.ts +0 -2
 - package/files/services/tree-icon.service.d.ts +0 -23
 - package/files/services/tree-loader.service.d.ts +0 -43
 - package/form-fields/addresses-selection-field/sc-addresses-selection-field.component.d.ts +0 -78
 - package/form-fields/form-fields.module.d.ts +0 -19
 - package/form-fields/index.d.ts +0 -3
 - package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +0 -73
 - package/helpers/index.d.ts +0 -1
 - package/helpers/sc-px-converter.d.ts +0 -15
 - package/icons/index.d.ts +0 -1
 - package/icons/sc-client-ui-icons-name.d.ts +0 -4
 - package/loader/index.d.ts +0 -1
 - package/loader/sc-i-loader.d.ts +0 -9
 - package/masks/index.d.ts +0 -7
 - package/masks/sc-account-number-mask.d.ts +0 -5
 - package/masks/sc-bic-mask.d.ts +0 -5
 - package/masks/sc-correspondent-account-mask.d.ts +0 -5
 - package/masks/sc-inn-mask.d.ts +0 -9
 - package/masks/sc-kpp-mask.d.ts +0 -5
 - package/masks/sc-okpo-mask.d.ts +0 -9
 - package/masks/sc-phone-verification-code-mask.d.ts +0 -5
 - package/models/i-sc-image.d.ts +0 -17
 - package/models/index.d.ts +0 -1
 - package/news/index.d.ts +0 -3
 - package/news/news-card/sc-news-card.component.d.ts +0 -22
 - package/news/news-card-skeleton/sc-news-card-skeleton.component.d.ts +0 -16
 - package/news/sc-news.module.d.ts +0 -16
 - package/order/index.d.ts +0 -3
 - package/order/order-item-mobile/sc-order-item-mobile.component.d.ts +0 -39
 - package/order/sc-order.module.d.ts +0 -19
 - package/order/sc-payment-status/sc-payment-status.component.d.ts +0 -25
 - package/pages/frequently-asked-questions/sc-frequently-asked-questions.component.d.ts +0 -18
 - package/pages/frequently-asked-questions/sc-page-size-options.d.ts +0 -5
 - package/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.d.ts +0 -28
 - package/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.d.ts +0 -79
 - package/pages/index.d.ts +0 -6
 - package/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.d.ts +0 -17
 - package/pages/privacy-policy/sc-privacy-policy.component.d.ts +0 -17
 - package/pages/public-offer/sc-public-offer.component.d.ts +0 -22
 - package/pipes/index.d.ts +0 -2
 - package/pipes/sc-format-date.d.ts +0 -20
 - package/pipes/sc-phone-format.d.ts +0 -21
 - package/profile/index.d.ts +0 -2
 - package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +0 -126
 - package/profile/sc-profile.module.d.ts +0 -24
 - package/providers/date-value-transformer/index.d.ts +0 -3
 - package/providers/date-value-transformer/sc-date-value-transformer-types.d.ts +0 -9
 - package/providers/date-value-transformer/sc-date-value-transformer-with-end-time.d.ts +0 -16
 - package/providers/date-value-transformer/sc-date-value-transformer-with-start-time.d.ts +0 -22
 - package/providers/index.d.ts +0 -11
 - package/providers/sc-allow-select-terminated.d.ts +0 -5
 - package/providers/sc-country-ids.d.ts +0 -5
 - package/providers/sc-date-formatter.d.ts +0 -6
 - package/providers/sc-date-value-transformer.d.ts +0 -5
 - package/providers/sc-help-notification-close.d.ts +0 -6
 - package/providers/sc-help-notification-limit.d.ts +0 -5
 - package/providers/sc-max-files-in-form-input.d.ts +0 -5
 - package/providers/sc-notify-when-in-stock-required-fields.d.ts +0 -5
 - package/providers/sc-page-size-options.d.ts +0 -5
 - package/providers/sc-user-providers.d.ts +0 -21
 - package/providers/sc-verification-code-timeout.d.ts +0 -5
 - package/public-api.d.ts +0 -31
 - package/qrcode/index.d.ts +0 -2
 - package/qrcode/qrcode-dialog/sc-qrcode-dialog.component.d.ts +0 -37
 - package/qrcode/sc-qrcode.module.d.ts +0 -14
 - package/samples/index.d.ts +0 -4
 - package/samples/interfaces/index.d.ts +0 -2
 - package/samples/interfaces/sc-i-preview-sample.d.ts +0 -56
 - package/samples/interfaces/sc-preview-mosquito-config.d.ts +0 -62
 - package/samples/preview-sample/sc-preview-sample.component.d.ts +0 -30
 - package/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.d.ts +0 -50
 - package/samples/sc-sample.module.d.ts +0 -19
 - package/services/index.d.ts +0 -1
 - package/services/sc-help-notification.service.d.ts +0 -64
 - package/share-button/index.d.ts +0 -2
 - package/share-button/sc-share-button.component.d.ts +0 -22
 - package/share-button/sc-share-button.module.d.ts +0 -12
 - package/user/index.d.ts +0 -5
 - package/user/reset-user-password/sc-reset-user-password.component.d.ts +0 -46
 - package/user/sc-user.module.d.ts +0 -25
 - package/user/update-user-info-dialog/sc-update-user-info-dialog.component.d.ts +0 -63
 - package/user/user-managers/sc-user-managers.component.d.ts +0 -26
 - package/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.d.ts +0 -53
 - package/validators/index.d.ts +0 -6
 - package/validators/sc-at-least-one-required-validator.d.ts +0 -10
 - package/validators/sc-bic-validator.d.ts +0 -8
 - package/validators/sc-correspondent-account-validator.d.ts +0 -8
 - package/validators/sc-password-confirm-matching-validator.d.ts +0 -8
 - package/validators/sc-phone-validator.d.ts +0 -5
 - package/validators/step-validator.d.ts +0 -8
 - package/verification/index.d.ts +0 -3
 - package/verification/providers/index.d.ts +0 -2
 - package/verification/providers/sc-phone-approve-code-sender.provider.d.ts +0 -6
 - package/verification/providers/sc-phone-approve-code-sender.token.d.ts +0 -7
 - package/verification/sc-verification.module.d.ts +0 -21
 - package/verification/verification-phone-check-form/sc-verification-phone-check-form.component.d.ts +0 -149
 
| 
         @@ -1,8 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            export * from './add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component';
         
     | 
| 
       2 
     | 
    
         
            -
            export * from './add-contragent-dialog/sc-add-contragent-dialog.component';
         
     | 
| 
       3 
     | 
    
         
            -
            export * from './contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component';
         
     | 
| 
       4 
     | 
    
         
            -
            export * from './contragents-accordion/sc-contragents-accordion.component';
         
     | 
| 
       5 
     | 
    
         
            -
            export * from './new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component';
         
     | 
| 
       6 
     | 
    
         
            -
            export * from './new-contragent-form/sc-new-contragent-form.component';
         
     | 
| 
       7 
     | 
    
         
            -
            export * from './sc-contragents.module';
         
     | 
| 
       8 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY29udHJhZ2VudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzRkFBc0YsQ0FBQztBQUNyRyxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsNEZBQTRGLENBQUM7QUFDM0csY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLGtGQUFrRixDQUFDO0FBQ2pHLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWRkLWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWRpYWxvZy9zYy1hZGQtY29udHJhZ2VudC1iYW5rLWFjY291bnQtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FkZC1jb250cmFnZW50LWRpYWxvZy9zYy1hZGQtY29udHJhZ2VudC1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29udHJhZ2VudHMtYWNjb3JkaW9uL2NvbnRyYWdlbnRzLWFjY29yZGlvbi1pdGVtL3NjLWNvbnRyYWdlbnRzLWFjY29yZGlvbi1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRyYWdlbnRzLWFjY29yZGlvbi9zYy1jb250cmFnZW50cy1hY2NvcmRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbmV3LWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWZvcm0vc2MtbmV3LWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbmV3LWNvbnRyYWdlbnQtZm9ybS9zYy1uZXctY29udHJhZ2VudC1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWNvbnRyYWdlbnRzLm1vZHVsZSc7XG4iXX0=
         
     | 
| 
         @@ -1,72 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { ChangeDetectionStrategy, Component, Input, input } from '@angular/core';
         
     | 
| 
       2 
     | 
    
         
            -
            import { ScISuggestionType, ScOpfList } from '@snabcentr/client-core';
         
     | 
| 
       3 
     | 
    
         
            -
            import { scAccountNumberMask, scBicMask, scCorrespondentAccount } from '../../masks';
         
     | 
| 
       4 
     | 
    
         
            -
            import * as i0 from "@angular/core";
         
     | 
| 
       5 
     | 
    
         
            -
            import * as i1 from "@snabcentr/client-core";
         
     | 
| 
       6 
     | 
    
         
            -
            import * as i2 from "@angular/forms";
         
     | 
| 
       7 
     | 
    
         
            -
            import * as i3 from "@angular/common";
         
     | 
| 
       8 
     | 
    
         
            -
            import * as i4 from "@taiga-ui/core";
         
     | 
| 
       9 
     | 
    
         
            -
            import * as i5 from "@taiga-ui/legacy";
         
     | 
| 
       10 
     | 
    
         
            -
            import * as i6 from "@taiga-ui/legacy/components/primitive-textfield";
         
     | 
| 
       11 
     | 
    
         
            -
            import * as i7 from "@taiga-ui/core/components/data-list";
         
     | 
| 
       12 
     | 
    
         
            -
            import * as i8 from "@maskito/angular";
         
     | 
| 
       13 
     | 
    
         
            -
            import * as i9 from "../../form-fields/suggestion-field/sc-suggestion-field.component";
         
     | 
| 
       14 
     | 
    
         
            -
            import * as i10 from "@taiga-ui/kit";
         
     | 
| 
       15 
     | 
    
         
            -
            /**
         
     | 
| 
       16 
     | 
    
         
            -
             * Компонент формы банковских реквизитов.
         
     | 
| 
       17 
     | 
    
         
            -
             */
         
     | 
| 
       18 
     | 
    
         
            -
            export class ScNewContragentBankAccountsFormComponent {
         
     | 
| 
       19 
     | 
    
         
            -
                /**
         
     | 
| 
       20 
     | 
    
         
            -
                 * Инициализирует экземпляр класса {@link ScContragentBankAccountsFormComponent}.
         
     | 
| 
       21 
     | 
    
         
            -
                 *
         
     | 
| 
       22 
     | 
    
         
            -
                 * @param referencesService Сервис справочников.
         
     | 
| 
       23 
     | 
    
         
            -
                 */
         
     | 
| 
       24 
     | 
    
         
            -
                constructor(referencesService) {
         
     | 
| 
       25 
     | 
    
         
            -
                    this.referencesService = referencesService;
         
     | 
| 
       26 
     | 
    
         
            -
                    /**
         
     | 
| 
       27 
     | 
    
         
            -
                     * Перечисление типов подсказок.
         
     | 
| 
       28 
     | 
    
         
            -
                     */
         
     | 
| 
       29 
     | 
    
         
            -
                    this.suggestionType = ScISuggestionType;
         
     | 
| 
       30 
     | 
    
         
            -
                    /**
         
     | 
| 
       31 
     | 
    
         
            -
                     * Маска поля ввода БИК.
         
     | 
| 
       32 
     | 
    
         
            -
                     */
         
     | 
| 
       33 
     | 
    
         
            -
                    this.bicMask = scBicMask;
         
     | 
| 
       34 
     | 
    
         
            -
                    /**
         
     | 
| 
       35 
     | 
    
         
            -
                     * Маска поля ввода номера счета.
         
     | 
| 
       36 
     | 
    
         
            -
                     */
         
     | 
| 
       37 
     | 
    
         
            -
                    this.accountNumberMask = scAccountNumberMask;
         
     | 
| 
       38 
     | 
    
         
            -
                    /**
         
     | 
| 
       39 
     | 
    
         
            -
                     * Маска поля ввода номера корреспондентского счета.
         
     | 
| 
       40 
     | 
    
         
            -
                     */
         
     | 
| 
       41 
     | 
    
         
            -
                    this.correspondentAccount = scCorrespondentAccount;
         
     | 
| 
       42 
     | 
    
         
            -
                    /**
         
     | 
| 
       43 
     | 
    
         
            -
                     * {@link Observable} списка валют.
         
     | 
| 
       44 
     | 
    
         
            -
                     */
         
     | 
| 
       45 
     | 
    
         
            -
                    this.currencies$ = this.referencesService.currencies$;
         
     | 
| 
       46 
     | 
    
         
            -
                    /**
         
     | 
| 
       47 
     | 
    
         
            -
                     * Организационно-правовая форма.
         
     | 
| 
       48 
     | 
    
         
            -
                     */
         
     | 
| 
       49 
     | 
    
         
            -
                    this.opf = input.required();
         
     | 
| 
       50 
     | 
    
         
            -
                    /**
         
     | 
| 
       51 
     | 
    
         
            -
                     * Перечисление организационно-правовых форм.
         
     | 
| 
       52 
     | 
    
         
            -
                     */
         
     | 
| 
       53 
     | 
    
         
            -
                    this.opfListEnum = ScOpfList;
         
     | 
| 
       54 
     | 
    
         
            -
                }
         
     | 
| 
       55 
     | 
    
         
            -
                /**
         
     | 
| 
       56 
     | 
    
         
            -
                 * Возвращает {@link Observable} валюты по идентификатору.
         
     | 
| 
       57 
     | 
    
         
            -
                 *
         
     | 
| 
       58 
     | 
    
         
            -
                 * @param currencyId Идентификатор валюты.
         
     | 
| 
       59 
     | 
    
         
            -
                 */
         
     | 
| 
       60 
     | 
    
         
            -
                getCurrencyById$(currencyId) {
         
     | 
| 
       61 
     | 
    
         
            -
                    return this.referencesService.getCurrencyById$(currencyId);
         
     | 
| 
       62 
     | 
    
         
            -
                }
         
     | 
| 
       63 
     | 
    
         
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScNewContragentBankAccountsFormComponent, deps: [{ token: i1.ScReferencesService }], target: i0.ɵɵFactoryTarget.Component }); }
         
     | 
| 
       64 
     | 
    
         
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ScNewContragentBankAccountsFormComponent, selector: "sc-new-contragent-bank-account-form", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, opf: { classPropertyName: "opf", publicName: "opf", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div\n    [formGroup]=\"form\"\n    class=\"flex flex-col gap-3\"\n>\n    <label tuiLabel>\n        \u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u0431\u0430\u043D\u043A\u0430\n        <tui-input formControlName=\"bankName\">\n            \u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u0431\u0430\u043D\u043A\u0430\n            @if (opfListEnum[opf()] !== opfListEnum.non_resident_legal) {\n                <sc-suggestion-field\n                    *tuiDataList\n                    [type]=\"suggestionType.bank\"\n                />\n            }\n        </tui-input>\n        <tui-error\n            formControlName=\"bankName\"\n            [error]=\"[] | tuiFieldError | async\"\n        ></tui-error>\n    </label>\n    <label tuiLabel>\n        \u0411\u0418\u041A\n        <tui-input formControlName=\"bic\">\n            \u0411\u0418\u041A\n            <input\n                tuiTextfieldLegacy\n                [maskito]=\"bicMask\"\n                autocomplete=\"bic\"\n            />\n            @if (opfListEnum[opf()] !== opfListEnum.non_resident_legal) {\n                <sc-suggestion-field\n                    *tuiDataList\n                    [type]=\"suggestionType.bank\"\n                />\n            }\n        </tui-input>\n        <tui-error\n            formControlName=\"bic\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n    <label tuiLabel>\n        \u041D\u043E\u043C\u0435\u0440 \u0441\u0447\u0435\u0442\u0430\n        <tui-input formControlName=\"accountNumber\">\n            \u041D\u043E\u043C\u0435\u0440 \u0441\u0447\u0435\u0442\u0430\n            <input\n                tuiTextfieldLegacy\n                [maskito]=\"accountNumberMask\"\n                autocomplete=\"accountNumber\"\n            />\n        </tui-input>\n        <tui-error\n            formControlName=\"accountNumber\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n    <label tuiLabel>\n        \u041A\u043E\u0440\u0440\u0435\u0441\u043F\u043E\u043D\u0434\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u0441\u0447\u0435\u0442\n        <tui-input formControlName=\"correspondentAccount\">\n            \u041A\u043E\u0440\u0440\u0435\u0441\u043F\u043E\u043D\u0434\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u0441\u0447\u0435\u0442\n            <input\n                tuiTextfieldLegacy\n                [maskito]=\"correspondentAccount\"\n                autocomplete=\"correspondentAccount\"\n            />\n        </tui-input>\n        <tui-error\n            formControlName=\"correspondentAccount\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n    <label tuiLabel>\n        \u0412\u0430\u043B\u044E\u0442\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u043E\u0432\n        <tui-select\n            formControlName=\"currencyId\"\n            [valueContent]=\"currencyContent\"\n        >\n            \u0412\u0430\u043B\u044E\u0442\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u043E\u0432\n            <tui-data-list *tuiDataList>\n                <button\n                    *ngFor=\"let item of currencies$ | async; let index = index\"\n                    tuiOption\n                    [value]=\"item.id\"\n                >\n                    {{ item.name }} ({{ item.symbol }})\n                </button>\n            </tui-data-list>\n        </tui-select>\n        <ng-template\n            #currencyContent\n            let-data\n        >\n            <div>{{ (getCurrencyById$(data) | async)?.name }}</div>\n        </ng-template>\n        <tui-error\n            formControlName=\"currencyId\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i5.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { kind: "directive", type: i5.TuiSelectDirective, selector: "tui-select" }, { kind: "component", type: i6.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "component", type: i4.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i7.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i4.TuiOption, selector: "button[tuiOption]:not([new]), a[tuiOption]:not([new]), label[tuiOption]:not([new])", inputs: ["disabled", "value"] }, { kind: "directive", type: i4.TuiLabel, selector: "label[tuiLabel]" }, { kind: "component", type: i5.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i5.TuiInputDirective, selector: "tui-input" }, { kind: "directive", type: i8.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i9.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"], outputs: ["selectedClick"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         
     | 
| 
       65 
     | 
    
         
            -
            }
         
     | 
| 
       66 
     | 
    
         
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScNewContragentBankAccountsFormComponent, decorators: [{
         
     | 
| 
       67 
     | 
    
         
            -
                        type: Component,
         
     | 
| 
       68 
     | 
    
         
            -
                        args: [{ selector: 'sc-new-contragent-bank-account-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n    [formGroup]=\"form\"\n    class=\"flex flex-col gap-3\"\n>\n    <label tuiLabel>\n        \u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u0431\u0430\u043D\u043A\u0430\n        <tui-input formControlName=\"bankName\">\n            \u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u0431\u0430\u043D\u043A\u0430\n            @if (opfListEnum[opf()] !== opfListEnum.non_resident_legal) {\n                <sc-suggestion-field\n                    *tuiDataList\n                    [type]=\"suggestionType.bank\"\n                />\n            }\n        </tui-input>\n        <tui-error\n            formControlName=\"bankName\"\n            [error]=\"[] | tuiFieldError | async\"\n        ></tui-error>\n    </label>\n    <label tuiLabel>\n        \u0411\u0418\u041A\n        <tui-input formControlName=\"bic\">\n            \u0411\u0418\u041A\n            <input\n                tuiTextfieldLegacy\n                [maskito]=\"bicMask\"\n                autocomplete=\"bic\"\n            />\n            @if (opfListEnum[opf()] !== opfListEnum.non_resident_legal) {\n                <sc-suggestion-field\n                    *tuiDataList\n                    [type]=\"suggestionType.bank\"\n                />\n            }\n        </tui-input>\n        <tui-error\n            formControlName=\"bic\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n    <label tuiLabel>\n        \u041D\u043E\u043C\u0435\u0440 \u0441\u0447\u0435\u0442\u0430\n        <tui-input formControlName=\"accountNumber\">\n            \u041D\u043E\u043C\u0435\u0440 \u0441\u0447\u0435\u0442\u0430\n            <input\n                tuiTextfieldLegacy\n                [maskito]=\"accountNumberMask\"\n                autocomplete=\"accountNumber\"\n            />\n        </tui-input>\n        <tui-error\n            formControlName=\"accountNumber\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n    <label tuiLabel>\n        \u041A\u043E\u0440\u0440\u0435\u0441\u043F\u043E\u043D\u0434\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u0441\u0447\u0435\u0442\n        <tui-input formControlName=\"correspondentAccount\">\n            \u041A\u043E\u0440\u0440\u0435\u0441\u043F\u043E\u043D\u0434\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u0441\u0447\u0435\u0442\n            <input\n                tuiTextfieldLegacy\n                [maskito]=\"correspondentAccount\"\n                autocomplete=\"correspondentAccount\"\n            />\n        </tui-input>\n        <tui-error\n            formControlName=\"correspondentAccount\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n    <label tuiLabel>\n        \u0412\u0430\u043B\u044E\u0442\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u043E\u0432\n        <tui-select\n            formControlName=\"currencyId\"\n            [valueContent]=\"currencyContent\"\n        >\n            \u0412\u0430\u043B\u044E\u0442\u0430 \u0440\u0430\u0441\u0447\u0451\u0442\u043E\u0432\n            <tui-data-list *tuiDataList>\n                <button\n                    *ngFor=\"let item of currencies$ | async; let index = index\"\n                    tuiOption\n                    [value]=\"item.id\"\n                >\n                    {{ item.name }} ({{ item.symbol }})\n                </button>\n            </tui-data-list>\n        </tui-select>\n        <ng-template\n            #currencyContent\n            let-data\n        >\n            <div>{{ (getCurrencyById$(data) | async)?.name }}</div>\n        </ng-template>\n        <tui-error\n            formControlName=\"currencyId\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n</div>\n" }]
         
     | 
| 
       69 
     | 
    
         
            -
                    }], ctorParameters: () => [{ type: i1.ScReferencesService }], propDecorators: { form: [{
         
     | 
| 
       70 
     | 
    
         
            -
                            type: Input
         
     | 
| 
       71 
     | 
    
         
            -
                        }] } });
         
     | 
| 
       72 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbmV3LWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NvbnRyYWdlbnRzL25ldy1jb250cmFnZW50LWJhbmstYWNjb3VudC1mb3JtL3NjLW5ldy1jb250cmFnZW50LWJhbmstYWNjb3VudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250cmFnZW50cy9uZXctY29udHJhZ2VudC1iYW5rLWFjY291bnQtZm9ybS9zYy1uZXctY29udHJhZ2VudC1iYW5rLWFjY291bnQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFHOUYsT0FBTyxFQUFlLGlCQUFpQixFQUFFLFNBQVMsRUFBdUIsTUFBTSx3QkFBd0IsQ0FBQztBQUd4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7QUFFckY7O0dBRUc7QUFNSCxNQUFNLE9BQU8sd0NBQXdDO0lBZ0RqRDs7OztPQUlHO0lBQ0gsWUFBb0MsaUJBQXNDO1FBQXRDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBcUI7UUFwRDFFOztXQUVHO1FBQ2EsbUJBQWMsR0FBNkIsaUJBQWlCLENBQUM7UUFFN0U7O1dBRUc7UUFDYSxZQUFPLEdBQW1CLFNBQVMsQ0FBQztRQUVwRDs7V0FFRztRQUNhLHNCQUFpQixHQUFtQixtQkFBbUIsQ0FBQztRQUV4RTs7V0FFRztRQUNhLHlCQUFvQixHQUFtQixzQkFBc0IsQ0FBQztRQUU5RTs7V0FFRztRQUNhLGdCQUFXLEdBQThCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7UUFjNUY7O1dBRUc7UUFDYSxRQUFHLEdBQXdDLEtBQUssQ0FBQyxRQUFRLEVBQTBCLENBQUM7UUFFcEc7O1dBRUc7UUFDZ0IsZ0JBQVcsR0FBcUIsU0FBUyxDQUFDO0lBT2dCLENBQUM7SUFFOUU7Ozs7T0FJRztJQUNJLGdCQUFnQixDQUFDLFVBQWtCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7K0dBOURRLHdDQUF3QzttR0FBeEMsd0NBQXdDLDhUQ2hCckQsd3JIQW9HQTs7NEZEcEZhLHdDQUF3QztrQkFMcEQsU0FBUzsrQkFDSSxxQ0FBcUMsbUJBRTlCLHVCQUF1QixDQUFDLE1BQU07d0ZBZ0N4QyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgaW5wdXQsIElucHV0U2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWFza2l0b09wdGlvbnMgfSBmcm9tICdAbWFza2l0by9jb3JlJztcbmltcG9ydCB7IFNjSUN1cnJlbmN5LCBTY0lTdWdnZXN0aW9uVHlwZSwgU2NPcGZMaXN0LCBTY1JlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHNjQWNjb3VudE51bWJlck1hc2ssIHNjQmljTWFzaywgc2NDb3JyZXNwb25kZW50QWNjb3VudCB9IGZyb20gJy4uLy4uL21hc2tzJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0YTQvtGA0LzRiyDQsdCw0L3QutC+0LLRgdC60LjRhSDRgNC10LrQstC40LfQuNGC0L7Qsi5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1uZXctY29udHJhZ2VudC1iYW5rLWFjY291bnQtZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLW5ldy1jb250cmFnZW50LWJhbmstYWNjb3VudC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NOZXdDb250cmFnZW50QmFua0FjY291bnRzRm9ybUNvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INGC0LjQv9C+0LIg0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzdWdnZXN0aW9uVHlwZTogdHlwZW9mIFNjSVN1Z2dlc3Rpb25UeXBlID0gU2NJU3VnZ2VzdGlvblR5cGU7XG5cbiAgICAvKipcbiAgICAgKiDQnNCw0YHQutCwINC/0L7Qu9GPINCy0LLQvtC00LAg0JHQmNCaLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBiaWNNYXNrOiBNYXNraXRvT3B0aW9ucyA9IHNjQmljTWFzaztcblxuICAgIC8qKlxuICAgICAqINCc0LDRgdC60LAg0L/QvtC70Y8g0LLQstC+0LTQsCDQvdC+0LzQtdGA0LAg0YHRh9C10YLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYWNjb3VudE51bWJlck1hc2s6IE1hc2tpdG9PcHRpb25zID0gc2NBY2NvdW50TnVtYmVyTWFzaztcblxuICAgIC8qKlxuICAgICAqINCc0LDRgdC60LAg0L/QvtC70Y8g0LLQstC+0LTQsCDQvdC+0LzQtdGA0LAg0LrQvtGA0YDQtdGB0L/QvtC90LTQtdC90YLRgdC60L7Qs9C+INGB0YfQtdGC0LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGNvcnJlc3BvbmRlbnRBY2NvdW50OiBNYXNraXRvT3B0aW9ucyA9IHNjQ29ycmVzcG9uZGVudEFjY291bnQ7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQv9C40YHQutCwINCy0LDQu9GO0YIuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGN1cnJlbmNpZXMkOiBPYnNlcnZhYmxlPFNjSUN1cnJlbmN5W10+ID0gdGhpcy5yZWZlcmVuY2VzU2VydmljZS5jdXJyZW5jaWVzJDtcblxuICAgIC8qKlxuICAgICAqINCT0YDRg9C/0L/QsCDRgSDQv9C+0LvQtdC8INCx0LDQvdC60L7QstGB0LrQuNGFINGA0LXQutCy0LjQt9C40YLQvtCyLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm06IEZvcm1Hcm91cDx7XG4gICAgICAgIGJhbmtOYW1lOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICAgICAgYmljOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICAgICAgYWNjb3VudE51bWJlcjogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgICAgIGNvcnJlc3BvbmRlbnRBY2NvdW50OiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICAgICAgY3VycmVuY3lJZDogRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD47XG4gICAgfT47XG5cbiAgICAvKipcbiAgICAgKiDQntGA0LPQsNC90LjQt9Cw0YbQuNC+0L3QvdC+LdC/0YDQsNCy0L7QstCw0Y8g0YTQvtGA0LzQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BmOiBJbnB1dFNpZ25hbDxrZXlvZiB0eXBlb2YgU2NPcGZMaXN0PiA9IGlucHV0LnJlcXVpcmVkPGtleW9mIHR5cGVvZiBTY09wZkxpc3Q+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQn9C10YDQtdGH0LjRgdC70LXQvdC40LUg0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLRi9GFINGE0L7RgNC8LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcGZMaXN0RW51bTogdHlwZW9mIFNjT3BmTGlzdCA9IFNjT3BmTGlzdDtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NDb250cmFnZW50QmFua0FjY291bnRzRm9ybUNvbXBvbmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVmZXJlbmNlc1NlcnZpY2Ug0KHQtdGA0LLQuNGBINGB0L/RgNCw0LLQvtGH0L3QuNC60L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZWZlcmVuY2VzU2VydmljZTogU2NSZWZlcmVuY2VzU2VydmljZSkge31cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQstCw0LvRjtGC0Ysg0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIGN1cnJlbmN5SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLQsNC70Y7RgtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDdXJyZW5jeUJ5SWQkKGN1cnJlbmN5SWQ6IG51bWJlcik6IE9ic2VydmFibGU8U2NJQ3VycmVuY3kgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlc1NlcnZpY2UuZ2V0Q3VycmVuY3lCeUlkJChjdXJyZW5jeUlkKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTNcIlxuPlxuICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAg0J3QsNC40LzQtdC90L7QstCw0L3QuNC1INCx0LDQvdC60LBcbiAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJiYW5rTmFtZVwiPlxuICAgICAgICAgICAg0J3QsNC40LzQtdC90L7QstCw0L3QuNC1INCx0LDQvdC60LBcbiAgICAgICAgICAgIEBpZiAob3BmTGlzdEVudW1bb3BmKCldICE9PSBvcGZMaXN0RW51bS5ub25fcmVzaWRlbnRfbGVnYWwpIHtcbiAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuYmFua1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJhbmtOYW1lXCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgID48L3R1aS1lcnJvcj5cbiAgICA8L2xhYmVsPlxuICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAg0JHQmNCaXG4gICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYmljXCI+XG4gICAgICAgICAgICDQkdCY0JpcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgIFttYXNraXRvXT1cImJpY01hc2tcIlxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImJpY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgQGlmIChvcGZMaXN0RW51bVtvcGYoKV0gIT09IG9wZkxpc3RFbnVtLm5vbl9yZXNpZGVudF9sZWdhbCkge1xuICAgICAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5iYW5rXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYmljXCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgPC9sYWJlbD5cbiAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgINCd0L7QvNC10YAg0YHRh9C10YLQsFxuICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImFjY291bnROdW1iZXJcIj5cbiAgICAgICAgICAgINCd0L7QvNC10YAg0YHRh9C10YLQsFxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICAgICAgW21hc2tpdG9dPVwiYWNjb3VudE51bWJlck1hc2tcIlxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImFjY291bnROdW1iZXJcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFjY291bnROdW1iZXJcIlxuICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgLz5cbiAgICA8L2xhYmVsPlxuICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAg0JrQvtGA0YDQtdGB0L/QvtC90LTQtdC90YLRgdC60LjQuSDRgdGH0LXRglxuICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImNvcnJlc3BvbmRlbnRBY2NvdW50XCI+XG4gICAgICAgICAgICDQmtC+0YDRgNC10YHQv9C+0L3QtNC10L3RgtGB0LrQuNC5INGB0YfQtdGCXG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRMZWdhY3lcbiAgICAgICAgICAgICAgICBbbWFza2l0b109XCJjb3JyZXNwb25kZW50QWNjb3VudFwiXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiY29ycmVzcG9uZGVudEFjY291bnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvcnJlc3BvbmRlbnRBY2NvdW50XCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgPC9sYWJlbD5cbiAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgINCS0LDQu9GO0YLQsCDRgNCw0YHRh9GR0YLQvtCyXG4gICAgICAgIDx0dWktc2VsZWN0XG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjdXJyZW5jeUlkXCJcbiAgICAgICAgICAgIFt2YWx1ZUNvbnRlbnRdPVwiY3VycmVuY3lDb250ZW50XCJcbiAgICAgICAgPlxuICAgICAgICAgICAg0JLQsNC70Y7RgtCwINGA0LDRgdGH0ZHRgtC+0LJcbiAgICAgICAgICAgIDx0dWktZGF0YS1saXN0ICp0dWlEYXRhTGlzdD5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGN1cnJlbmNpZXMkIHwgYXN5bmM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgdHVpT3B0aW9uXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmlkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fSAoe3sgaXRlbS5zeW1ib2wgfX0pXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3R1aS1kYXRhLWxpc3Q+XG4gICAgICAgIDwvdHVpLXNlbGVjdD5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAjY3VycmVuY3lDb250ZW50XG4gICAgICAgICAgICBsZXQtZGF0YVxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2Pnt7IChnZXRDdXJyZW5jeUJ5SWQkKGRhdGEpIHwgYXN5bmMpPy5uYW1lIH19PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImN1cnJlbmN5SWRcIlxuICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgLz5cbiAgICA8L2xhYmVsPlxuPC9kaXY+XG4iXX0=
         
     | 
| 
         @@ -1,242 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            /* eslint-disable class-methods-use-this,@typescript-eslint/unbound-method */
         
     | 
| 
       2 
     | 
    
         
            -
            import { ChangeDetectionStrategy, Component, DestroyRef, Inject, inject, Input, SkipSelf } from '@angular/core';
         
     | 
| 
       3 
     | 
    
         
            -
            import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
         
     | 
| 
       4 
     | 
    
         
            -
            import { FormArray, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';
         
     | 
| 
       5 
     | 
    
         
            -
            import { ScISuggestionType, ScOpfList } from '@snabcentr/client-core';
         
     | 
| 
       6 
     | 
    
         
            -
            import { tuiControlValue, tuiIsPresent } from '@taiga-ui/cdk';
         
     | 
| 
       7 
     | 
    
         
            -
            import { distinctUntilChanged, filter, map, tap } from 'rxjs';
         
     | 
| 
       8 
     | 
    
         
            -
            import { scEntrepreneurInnMask, scEntrepreneurOkpoMask, scKppMask, scLegalInnMask, scLegalOkpoMask } from '../../masks';
         
     | 
| 
       9 
     | 
    
         
            -
            import { scBicValidator, scCorrespondentAccountValidator } from '../../validators';
         
     | 
| 
       10 
     | 
    
         
            -
            import { phoneValidator } from '../../validators/sc-phone-validator';
         
     | 
| 
       11 
     | 
    
         
            -
            import * as i0 from "@angular/core";
         
     | 
| 
       12 
     | 
    
         
            -
            import * as i1 from "@snabcentr/client-core";
         
     | 
| 
       13 
     | 
    
         
            -
            import * as i2 from "@angular/forms";
         
     | 
| 
       14 
     | 
    
         
            -
            import * as i3 from "@angular/common";
         
     | 
| 
       15 
     | 
    
         
            -
            import * as i4 from "@taiga-ui/core";
         
     | 
| 
       16 
     | 
    
         
            -
            import * as i5 from "@taiga-ui/legacy";
         
     | 
| 
       17 
     | 
    
         
            -
            import * as i6 from "@taiga-ui/legacy/components/primitive-textfield";
         
     | 
| 
       18 
     | 
    
         
            -
            import * as i7 from "@taiga-ui/core/components/data-list";
         
     | 
| 
       19 
     | 
    
         
            -
            import * as i8 from "@taiga-ui/kit";
         
     | 
| 
       20 
     | 
    
         
            -
            import * as i9 from "@maskito/angular";
         
     | 
| 
       21 
     | 
    
         
            -
            import * as i10 from "../../form-fields/suggestion-field/sc-suggestion-field.component";
         
     | 
| 
       22 
     | 
    
         
            -
            /**
         
     | 
| 
       23 
     | 
    
         
            -
             * Форма создания нового контрагента.
         
     | 
| 
       24 
     | 
    
         
            -
             */
         
     | 
| 
       25 
     | 
    
         
            -
            export class ScNewContragentFormComponent {
         
     | 
| 
       26 
     | 
    
         
            -
                /**
         
     | 
| 
       27 
     | 
    
         
            -
                 * Инициализирует экземпляр класса {@link ScNewContragentFormComponent}.
         
     | 
| 
       28 
     | 
    
         
            -
                 *
         
     | 
| 
       29 
     | 
    
         
            -
                 * @param referencesService Сервис справочников.
         
     | 
| 
       30 
     | 
    
         
            -
                 * @param locationsService Сервис для получения списков стран, регионов, городов.
         
     | 
| 
       31 
     | 
    
         
            -
                 * @param formGroupDirective Директива c `FormGroup` из DOM.
         
     | 
| 
       32 
     | 
    
         
            -
                 */
         
     | 
| 
       33 
     | 
    
         
            -
                constructor(referencesService, locationsService, formGroupDirective) {
         
     | 
| 
       34 
     | 
    
         
            -
                    this.referencesService = referencesService;
         
     | 
| 
       35 
     | 
    
         
            -
                    this.locationsService = locationsService;
         
     | 
| 
       36 
     | 
    
         
            -
                    this.formGroupDirective = formGroupDirective;
         
     | 
| 
       37 
     | 
    
         
            -
                    /**
         
     | 
| 
       38 
     | 
    
         
            -
                     * Группа полей данных о контрагенте - индивидуальном предпринимателе.
         
     | 
| 
       39 
     | 
    
         
            -
                     */
         
     | 
| 
       40 
     | 
    
         
            -
                    this.entrepreneurGroup = new FormGroup({
         
     | 
| 
       41 
     | 
    
         
            -
                        inn: new FormControl(null, Validators.required),
         
     | 
| 
       42 
     | 
    
         
            -
                        okpo: new FormControl(null, Validators.required),
         
     | 
| 
       43 
     | 
    
         
            -
                        directorName: new FormControl(null, Validators.required),
         
     | 
| 
       44 
     | 
    
         
            -
                        directorPosition: new FormControl(null, Validators.required),
         
     | 
| 
       45 
     | 
    
         
            -
                        directorActsOn: new FormControl(null, Validators.required),
         
     | 
| 
       46 
     | 
    
         
            -
                        legalAddress: new FormControl(null, Validators.required),
         
     | 
| 
       47 
     | 
    
         
            -
                        postalAddress: new FormControl(null, Validators.required),
         
     | 
| 
       48 
     | 
    
         
            -
                        actualAddress: new FormControl(null, Validators.required),
         
     | 
| 
       49 
     | 
    
         
            -
                        bankAccounts: new FormArray([
         
     | 
| 
       50 
     | 
    
         
            -
                            new FormGroup({
         
     | 
| 
       51 
     | 
    
         
            -
                                bankName: new FormControl(null, Validators.required),
         
     | 
| 
       52 
     | 
    
         
            -
                                bic: new FormControl(null, [Validators.required, Validators.minLength(9), scBicValidator]),
         
     | 
| 
       53 
     | 
    
         
            -
                                accountNumber: new FormControl(null, [Validators.required, Validators.minLength(20)]),
         
     | 
| 
       54 
     | 
    
         
            -
                                correspondentAccount: new FormControl(null, [Validators.required, Validators.minLength(20), scCorrespondentAccountValidator]),
         
     | 
| 
       55 
     | 
    
         
            -
                                currencyId: new FormControl(null, Validators.required),
         
     | 
| 
       56 
     | 
    
         
            -
                            }),
         
     | 
| 
       57 
     | 
    
         
            -
                        ], [Validators.minLength(1), Validators.required]),
         
     | 
| 
       58 
     | 
    
         
            -
                    });
         
     | 
| 
       59 
     | 
    
         
            -
                    /**
         
     | 
| 
       60 
     | 
    
         
            -
                     * Группа полей данных о контрагенте - юридическом лице.
         
     | 
| 
       61 
     | 
    
         
            -
                     */
         
     | 
| 
       62 
     | 
    
         
            -
                    this.legalGroup = new FormGroup({
         
     | 
| 
       63 
     | 
    
         
            -
                        kpp: new FormControl(null, [Validators.required, Validators.minLength(9)]),
         
     | 
| 
       64 
     | 
    
         
            -
                    });
         
     | 
| 
       65 
     | 
    
         
            -
                    /**
         
     | 
| 
       66 
     | 
    
         
            -
                     * Группа полей данных о контрагенте - юридическом лице нерезиденте.
         
     | 
| 
       67 
     | 
    
         
            -
                     */
         
     | 
| 
       68 
     | 
    
         
            -
                    this.nonResidentLegalGroup = new FormGroup({
         
     | 
| 
       69 
     | 
    
         
            -
                        registrationCountryId: new FormControl(null, Validators.required),
         
     | 
| 
       70 
     | 
    
         
            -
                        registrationNumber: new FormControl(null, Validators.required),
         
     | 
| 
       71 
     | 
    
         
            -
                        taxNumber: new FormControl(null),
         
     | 
| 
       72 
     | 
    
         
            -
                    });
         
     | 
| 
       73 
     | 
    
         
            -
                    /**
         
     | 
| 
       74 
     | 
    
         
            -
                     * Форма для создания нового контрагента физического лица.
         
     | 
| 
       75 
     | 
    
         
            -
                     */
         
     | 
| 
       76 
     | 
    
         
            -
                    this.form = new FormGroup({
         
     | 
| 
       77 
     | 
    
         
            -
                        name: new FormControl(null, Validators.required),
         
     | 
| 
       78 
     | 
    
         
            -
                        opf: new FormControl('individual', Validators.required),
         
     | 
| 
       79 
     | 
    
         
            -
                        salesDirectionId: new FormControl(null, Validators.required),
         
     | 
| 
       80 
     | 
    
         
            -
                        contacts: new FormArray([
         
     | 
| 
       81 
     | 
    
         
            -
                            new FormGroup({
         
     | 
| 
       82 
     | 
    
         
            -
                                name: new FormControl(null, Validators.required),
         
     | 
| 
       83 
     | 
    
         
            -
                                phone: new FormControl(null, [Validators.required, phoneValidator()]),
         
     | 
| 
       84 
     | 
    
         
            -
                                email: new FormControl(null, Validators.email),
         
     | 
| 
       85 
     | 
    
         
            -
                                position: new FormControl(null, Validators.required),
         
     | 
| 
       86 
     | 
    
         
            -
                            }),
         
     | 
| 
       87 
     | 
    
         
            -
                        ], [Validators.minLength(1), Validators.required]),
         
     | 
| 
       88 
     | 
    
         
            -
                    });
         
     | 
| 
       89 
     | 
    
         
            -
                    /**
         
     | 
| 
       90 
     | 
    
         
            -
                     * Перечисление типов подсказок.
         
     | 
| 
       91 
     | 
    
         
            -
                     */
         
     | 
| 
       92 
     | 
    
         
            -
                    this.suggestionType = ScISuggestionType;
         
     | 
| 
       93 
     | 
    
         
            -
                    /**
         
     | 
| 
       94 
     | 
    
         
            -
                     * {@link Observable} выбора ОПФ.
         
     | 
| 
       95 
     | 
    
         
            -
                     */
         
     | 
| 
       96 
     | 
    
         
            -
                    this.selectOpf$ = tuiControlValue(this.form.controls.opf).pipe(distinctUntilChanged(), tap((opf) => {
         
     | 
| 
       97 
     | 
    
         
            -
                        Object.keys({ ...this.entrepreneurGroup.controls, ...this.legalGroup.controls, ...this.nonResidentLegalGroup.controls }).forEach((key) => {
         
     | 
| 
       98 
     | 
    
         
            -
                            this.form.get(key)?.disable();
         
     | 
| 
       99 
     | 
    
         
            -
                        });
         
     | 
| 
       100 
     | 
    
         
            -
                        const addControls = (formGroup) => {
         
     | 
| 
       101 
     | 
    
         
            -
                            Object.keys({ ...formGroup.controls }).forEach((key) => {
         
     | 
| 
       102 
     | 
    
         
            -
                                formGroup.get(key)?.enable();
         
     | 
| 
       103 
     | 
    
         
            -
                                this.form.setControl(key, formGroup.get(key));
         
     | 
| 
       104 
     | 
    
         
            -
                            });
         
     | 
| 
       105 
     | 
    
         
            -
                        };
         
     | 
| 
       106 
     | 
    
         
            -
                        // eslint-disable-next-line security/detect-object-injection
         
     | 
| 
       107 
     | 
    
         
            -
                        if (ScOpfList[opf] > ScOpfList.individual) {
         
     | 
| 
       108 
     | 
    
         
            -
                            addControls(this.entrepreneurGroup);
         
     | 
| 
       109 
     | 
    
         
            -
                            this.entrepreneurGroup.controls.inn.setValidators([Validators.required, Validators.minLength(12)]);
         
     | 
| 
       110 
     | 
    
         
            -
                            this.entrepreneurGroup.controls.okpo.setValidators([Validators.required, Validators.minLength(10)]);
         
     | 
| 
       111 
     | 
    
         
            -
                        }
         
     | 
| 
       112 
     | 
    
         
            -
                        // eslint-disable-next-line security/detect-object-injection
         
     | 
| 
       113 
     | 
    
         
            -
                        if (ScOpfList[opf] > ScOpfList.entrepreneur) {
         
     | 
| 
       114 
     | 
    
         
            -
                            addControls(this.legalGroup);
         
     | 
| 
       115 
     | 
    
         
            -
                            this.entrepreneurGroup.controls.inn.setValidators([Validators.required, Validators.minLength(10)]);
         
     | 
| 
       116 
     | 
    
         
            -
                            this.entrepreneurGroup.controls.okpo.setValidators([Validators.required, Validators.minLength(8)]);
         
     | 
| 
       117 
     | 
    
         
            -
                        }
         
     | 
| 
       118 
     | 
    
         
            -
                        // eslint-disable-next-line security/detect-object-injection
         
     | 
| 
       119 
     | 
    
         
            -
                        if (ScOpfList[opf] > ScOpfList.legal) {
         
     | 
| 
       120 
     | 
    
         
            -
                            addControls(this.nonResidentLegalGroup);
         
     | 
| 
       121 
     | 
    
         
            -
                            this.legalGroup.controls.kpp.disable();
         
     | 
| 
       122 
     | 
    
         
            -
                            this.entrepreneurGroup.controls.inn.disable();
         
     | 
| 
       123 
     | 
    
         
            -
                            this.entrepreneurGroup.controls.okpo.disable();
         
     | 
| 
       124 
     | 
    
         
            -
                        }
         
     | 
| 
       125 
     | 
    
         
            -
                    }));
         
     | 
| 
       126 
     | 
    
         
            -
                    /**
         
     | 
| 
       127 
     | 
    
         
            -
                     * Маска поля ввода КПП.
         
     | 
| 
       128 
     | 
    
         
            -
                     */
         
     | 
| 
       129 
     | 
    
         
            -
                    this.kppMask = scKppMask;
         
     | 
| 
       130 
     | 
    
         
            -
                    /**
         
     | 
| 
       131 
     | 
    
         
            -
                     * Перечисление организационно-правовых форм.
         
     | 
| 
       132 
     | 
    
         
            -
                     */
         
     | 
| 
       133 
     | 
    
         
            -
                    this.opfListEnum = ScOpfList;
         
     | 
| 
       134 
     | 
    
         
            -
                    /**
         
     | 
| 
       135 
     | 
    
         
            -
                     * Ссылка для автоматического управления уничтожением зависимостей.
         
     | 
| 
       136 
     | 
    
         
            -
                     */
         
     | 
| 
       137 
     | 
    
         
            -
                    this.destroyRef = inject(DestroyRef);
         
     | 
| 
       138 
     | 
    
         
            -
                    /**
         
     | 
| 
       139 
     | 
    
         
            -
                     * Возвращает {@link Observable} списка стран.
         
     | 
| 
       140 
     | 
    
         
            -
                     */
         
     | 
| 
       141 
     | 
    
         
            -
                    this.countries$ = this.locationsService.getCountries$();
         
     | 
| 
       142 
     | 
    
         
            -
                    /**
         
     | 
| 
       143 
     | 
    
         
            -
                     * Возвращает {@link Observable} списка идентификаторов стран.
         
     | 
| 
       144 
     | 
    
         
            -
                     */
         
     | 
| 
       145 
     | 
    
         
            -
                    this.countriesId$ = this.countries$.pipe(map((countries) => countries.map((country) => country.id)));
         
     | 
| 
       146 
     | 
    
         
            -
                    /**
         
     | 
| 
       147 
     | 
    
         
            -
                     * Маска поля ввода ИНН.
         
     | 
| 
       148 
     | 
    
         
            -
                     *
         
     | 
| 
       149 
     | 
    
         
            -
                     * @param opf Организационно-правовая форма.
         
     | 
| 
       150 
     | 
    
         
            -
                     */
         
     | 
| 
       151 
     | 
    
         
            -
                    // eslint-disable-next-line security/detect-object-injection
         
     | 
| 
       152 
     | 
    
         
            -
                    this.innMask = (opf) => (ScOpfList[opf] > ScOpfList.entrepreneur ? scLegalInnMask : scEntrepreneurInnMask);
         
     | 
| 
       153 
     | 
    
         
            -
                    /**
         
     | 
| 
       154 
     | 
    
         
            -
                     * Маска поля ввода ОКПО.
         
     | 
| 
       155 
     | 
    
         
            -
                     *
         
     | 
| 
       156 
     | 
    
         
            -
                     * @param opf Организационно-правовая форма.
         
     | 
| 
       157 
     | 
    
         
            -
                     */
         
     | 
| 
       158 
     | 
    
         
            -
                    // eslint-disable-next-line security/detect-object-injection
         
     | 
| 
       159 
     | 
    
         
            -
                    this.okpoMask = (opf) => (ScOpfList[opf] > ScOpfList.entrepreneur ? scLegalOkpoMask : scEntrepreneurOkpoMask);
         
     | 
| 
       160 
     | 
    
         
            -
                    /**
         
     | 
| 
       161 
     | 
    
         
            -
                     * Функция преобразования объекта сортировки в значение, отображаемое в поле ввода.
         
     | 
| 
       162 
     | 
    
         
            -
                     *
         
     | 
| 
       163 
     | 
    
         
            -
                     * @param items Список стран.
         
     | 
| 
       164 
     | 
    
         
            -
                     */
         
     | 
| 
       165 
     | 
    
         
            -
                    this.stringify = (items) => {
         
     | 
| 
       166 
     | 
    
         
            -
                        const itemsMap = new Map(items.map((item) => {
         
     | 
| 
       167 
     | 
    
         
            -
                            return [item.id, item.name];
         
     | 
| 
       168 
     | 
    
         
            -
                        }));
         
     | 
| 
       169 
     | 
    
         
            -
                        return (id) => itemsMap.get(id) ?? '';
         
     | 
| 
       170 
     | 
    
         
            -
                    };
         
     | 
| 
       171 
     | 
    
         
            -
                    this.referencesService.directions$
         
     | 
| 
       172 
     | 
    
         
            -
                        .pipe(filter(tuiIsPresent), filter((directions) => directions.length > 0), takeUntilDestroyed())
         
     | 
| 
       173 
     | 
    
         
            -
                        .subscribe((directions) => {
         
     | 
| 
       174 
     | 
    
         
            -
                        this.form.patchValue({ salesDirectionId: directions[0].id });
         
     | 
| 
       175 
     | 
    
         
            -
                    });
         
     | 
| 
       176 
     | 
    
         
            -
                }
         
     | 
| 
       177 
     | 
    
         
            -
                /**
         
     | 
| 
       178 
     | 
    
         
            -
                 * Родительская `FormGroup`.
         
     | 
| 
       179 
     | 
    
         
            -
                 */
         
     | 
| 
       180 
     | 
    
         
            -
                get parentForm() {
         
     | 
| 
       181 
     | 
    
         
            -
                    return this.formGroupDirective?.form;
         
     | 
| 
       182 
     | 
    
         
            -
                }
         
     | 
| 
       183 
     | 
    
         
            -
                /** @inheritDoc */
         
     | 
| 
       184 
     | 
    
         
            -
                ngOnInit() {
         
     | 
| 
       185 
     | 
    
         
            -
                    this.parentForm?.setControl('contragent', this.form);
         
     | 
| 
       186 
     | 
    
         
            -
                    if (this.parentForm && this.opfControl) {
         
     | 
| 
       187 
     | 
    
         
            -
                        tuiControlValue(this.opfControl)
         
     | 
| 
       188 
     | 
    
         
            -
                            .pipe(filter(tuiIsPresent), takeUntilDestroyed(this.destroyRef))
         
     | 
| 
       189 
     | 
    
         
            -
                            .subscribe((opf) => {
         
     | 
| 
       190 
     | 
    
         
            -
                            this.form.controls.opf.patchValue(opf);
         
     | 
| 
       191 
     | 
    
         
            -
                        });
         
     | 
| 
       192 
     | 
    
         
            -
                    }
         
     | 
| 
       193 
     | 
    
         
            -
                }
         
     | 
| 
       194 
     | 
    
         
            -
                /** @inheritDoc */
         
     | 
| 
       195 
     | 
    
         
            -
                ngOnDestroy() {
         
     | 
| 
       196 
     | 
    
         
            -
                    this.parentForm?.removeControl('contragent');
         
     | 
| 
       197 
     | 
    
         
            -
                }
         
     | 
| 
       198 
     | 
    
         
            -
                /**
         
     | 
| 
       199 
     | 
    
         
            -
                 * Возвращает {@link Observable} списка направлений продаж.
         
     | 
| 
       200 
     | 
    
         
            -
                 *
         
     | 
| 
       201 
     | 
    
         
            -
                 * @param directionId Идентификатор направления продаж.
         
     | 
| 
       202 
     | 
    
         
            -
                 */
         
     | 
| 
       203 
     | 
    
         
            -
                getDirectionById$(directionId) {
         
     | 
| 
       204 
     | 
    
         
            -
                    return this.referencesService.getDirectionById$(directionId);
         
     | 
| 
       205 
     | 
    
         
            -
                }
         
     | 
| 
       206 
     | 
    
         
            -
                /**
         
     | 
| 
       207 
     | 
    
         
            -
                 * Возвращает {@link Observable} список организационно-правовых форм..
         
     | 
| 
       208 
     | 
    
         
            -
                 */
         
     | 
| 
       209 
     | 
    
         
            -
                getOpf$() {
         
     | 
| 
       210 
     | 
    
         
            -
                    return this.referencesService.opf$;
         
     | 
| 
       211 
     | 
    
         
            -
                }
         
     | 
| 
       212 
     | 
    
         
            -
                /**
         
     | 
| 
       213 
     | 
    
         
            -
                 * Возвращает {@link Observable} организационно-правовой формы, соответствующий символьному обозначению (slug) на входе.
         
     | 
| 
       214 
     | 
    
         
            -
                 *
         
     | 
| 
       215 
     | 
    
         
            -
                 * @param slug Символьное обозначение (slug).
         
     | 
| 
       216 
     | 
    
         
            -
                 */
         
     | 
| 
       217 
     | 
    
         
            -
                getOpfBySlug$(slug) {
         
     | 
| 
       218 
     | 
    
         
            -
                    return this.referencesService.getOpfBySlug$(slug);
         
     | 
| 
       219 
     | 
    
         
            -
                }
         
     | 
| 
       220 
     | 
    
         
            -
                /**
         
     | 
| 
       221 
     | 
    
         
            -
                 * Возвращает {@link Observable} страны по идентификатору.
         
     | 
| 
       222 
     | 
    
         
            -
                 *
         
     | 
| 
       223 
     | 
    
         
            -
                 * @param countryId — Идентификатор страны.
         
     | 
| 
       224 
     | 
    
         
            -
                 */
         
     | 
| 
       225 
     | 
    
         
            -
                getCountryNameById$(countryId) {
         
     | 
| 
       226 
     | 
    
         
            -
                    return this.locationsService.getCountries$().pipe(map((countries) => countries.find((country) => country.id === countryId)?.name ?? ''));
         
     | 
| 
       227 
     | 
    
         
            -
                }
         
     | 
| 
       228 
     | 
    
         
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScNewContragentFormComponent, deps: [{ token: i1.ScReferencesService }, { token: i1.ScLocationsService }, { token: FormGroupDirective, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
         
     | 
| 
       229 
     | 
    
         
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ScNewContragentFormComponent, selector: "sc-new-contragent-form", inputs: { opfControl: "opfControl" }, ngImport: i0, template: "<div\n    [formGroup]=\"form\"\n    *ngIf=\"selectOpf$ | async as selectOpf\"\n    class=\"flex flex-col gap-3 pb-1\"\n>\n    <p class=\"text-lg font-bold\">\u041E\u0431\u0449\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430</p>\n    <label tuiLabel>\n        \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n        <tui-select\n            formControlName=\"opf\"\n            [valueContent]=\"opfContent\"\n            [readOnly]=\"!!opfControl\"\n        >\n            \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n            <tui-data-list *tuiDataList>\n                <button\n                    *ngFor=\"let item of getOpf$() | async; let index = index\"\n                    tuiOption\n                    [value]=\"item.slug\"\n                >\n                    {{ item.name }}\n                </button>\n            </tui-data-list>\n        </tui-select>\n        <ng-template\n            #opfContent\n            let-data\n        >\n            <div>{{ (getOpfBySlug$(data) | async)?.name }}</div>\n        </ng-template>\n        <tui-error\n            formControlName=\"opf\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n\n    @let nameLabel = opfListEnum[selectOpf] === opfListEnum.individual ? '\u0424.\u0418.\u041E.' : '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438';\n    <label tuiLabel>\n        {{ nameLabel }}\n        <tui-input formControlName=\"name\">\n            @if (opfListEnum[selectOpf] === opfListEnum.individual) {\n                {{ nameLabel }}\n                <sc-suggestion-field\n                    *tuiDataList\n                    [type]=\"suggestionType.fio\"\n                />\n            } @else {\n                \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n                @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n                    <sc-suggestion-field\n                        *tuiDataList\n                        [type]=\"suggestionType.organization\"\n                    />\n                }\n            }\n        </tui-input>\n        <tui-error\n            formControlName=\"name\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n    @if (opfListEnum[selectOpf] > opfListEnum.individual) {\n        <label tuiLabel>\n            \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n            <tui-input formControlName=\"inn\">\n                \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n                <input\n                    tuiTextfieldLegacy\n                    [maskito]=\"innMask(selectOpf)\"\n                    autocomplete=\"inn\"\n                />\n                <sc-suggestion-field\n                    *tuiDataList\n                    [type]=\"suggestionType.organization\"\n                />\n            </tui-input>\n            <tui-error\n                formControlName=\"inn\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        @if (opfListEnum[selectOpf] === opfListEnum.legal) {\n            <label tuiLabel>\n                \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n                <tui-input formControlName=\"okpo\">\n                    \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n                    <input\n                        tuiTextfieldLegacy\n                        [maskito]=\"okpoMask(selectOpf)\"\n                        autocomplete=\"okpo\"\n                    />\n                </tui-input>\n                <tui-error\n                    formControlName=\"okpo\"\n                    [error]=\"[] | tuiFieldError | async\"\n                />\n            </label>\n        }\n        <label tuiLabel>\n            \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n            <tui-input formControlName=\"directorName\">\n                \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n                <sc-suggestion-field\n                    *tuiDataList\n                    [type]=\"suggestionType.fio\"\n                />\n            </tui-input>\n            <tui-error\n                formControlName=\"directorName\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n            <tui-input formControlName=\"directorPosition\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n            <tui-error\n                formControlName=\"directorPosition\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n            <tui-input formControlName=\"directorActsOn\"> \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n            <tui-error\n                formControlName=\"directorActsOn\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n            <tui-input formControlName=\"legalAddress\">\n                \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n                @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n                    <sc-suggestion-field\n                        *tuiDataList\n                        [type]=\"suggestionType.address\"\n                    />\n                }\n            </tui-input>\n            <tui-error\n                formControlName=\"legalAddress\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n            <tui-input formControlName=\"postalAddress\">\n                \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n                @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n                    <sc-suggestion-field\n                        *tuiDataList\n                        [type]=\"suggestionType.address\"\n                    />\n                }\n            </tui-input>\n            <tui-error\n                formControlName=\"postalAddress\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n            <tui-input formControlName=\"actualAddress\">\n                \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n                @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n                    <sc-suggestion-field\n                        *tuiDataList\n                        [type]=\"suggestionType.address\"\n                    />\n                }\n            </tui-input>\n            <tui-error\n                formControlName=\"actualAddress\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        @if (opfListEnum[selectOpf] === opfListEnum.legal) {\n            <label tuiLabel>\n                \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n                <tui-input formControlName=\"kpp\">\n                    \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n                    <input\n                        tuiTextfieldLegacy\n                        [maskito]=\"kppMask\"\n                        autocomplete=\"kpp\"\n                    />\n                </tui-input>\n                <tui-error\n                    formControlName=\"kpp\"\n                    [error]=\"[] | tuiFieldError | async\"\n                />\n            </label>\n        }\n    }\n\n    @if (opfListEnum[selectOpf] === opfListEnum.non_resident_legal) {\n        @let countries = countries$ | async;\n        @let countriesId = countriesId$ | async;\n\n        <label\n            *ngIf=\"countries\"\n            tuiLabel\n        >\n            \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n            <tui-combo-box\n                formControlName=\"registrationCountryId\"\n                [stringify]=\"stringify(countries ?? [])\"\n            >\n                \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n                <input\n                    tuiTextfieldLegacy\n                    autocapitalize=\"off\"\n                    autocomplete=\"off\"\n                    autocorrect=\"off\"\n                    autocomplete=\"new-password\"\n                />\n                <tui-data-list-wrapper\n                    *tuiDataList\n                    [itemContent]=\"stringify(countries ?? []) | tuiStringifyContent\"\n                    [items]=\"countriesId | tuiFilterByInput\"\n                />\n            </tui-combo-box>\n            <ng-template\n                #CountryContent\n                let-data\n            >\n                <div>{{ (getCountryNameById$(data) | async) ?? '' }}</div>\n            </ng-template>\n            <tui-error\n                formControlName=\"registrationCountryId\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <ng-template #selectLoading> <tui-loader /> </ng-template>\n        <label tuiLabel>\n            \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n            <tui-input formControlName=\"registrationNumber\"> \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430 </tui-input>\n            <tui-error\n                formControlName=\"registrationNumber\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n            <tui-input formControlName=\"taxNumber\"> \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430 </tui-input>\n            <tui-error\n                formControlName=\"taxNumber\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n    }\n</div>\n", styles: ["tui-carousel{--tui-carousel-padding: .5rem}\n"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "component", type: i4.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i5.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { kind: "directive", type: i5.TuiSelectDirective, selector: "tui-select" }, { kind: "component", type: i6.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "component", type: i4.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i7.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i4.TuiOption, selector: "button[tuiOption]:not([new]), a[tuiOption]:not([new]), label[tuiOption]:not([new])", inputs: ["disabled", "value"] }, { kind: "component", type: i8.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "directive", type: i4.TuiLabel, selector: "label[tuiLabel]" }, { kind: "component", type: i5.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i5.TuiInputDirective, selector: "tui-input" }, { kind: "directive", type: i9.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i10.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"], outputs: ["selectedClick"] }, { kind: "component", type: i5.TuiComboBoxComponent, selector: "tui-combo-box", inputs: ["stringify", "strictMatcher", "identityMatcher", "valueContent", "strict", "search"], outputs: ["searchChange"] }, { kind: "directive", type: i5.TuiComboBoxDirective, selector: "tui-combo-box" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TuiFieldErrorPipe, name: "tuiFieldError" }, { kind: "pipe", type: i8.TuiStringifyContentPipe, name: "tuiStringifyContent" }, { kind: "pipe", type: i8.TuiFilterByInputPipe, name: "tuiFilterByInput" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         
     | 
| 
       230 
     | 
    
         
            -
            }
         
     | 
| 
       231 
     | 
    
         
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScNewContragentFormComponent, decorators: [{
         
     | 
| 
       232 
     | 
    
         
            -
                        type: Component,
         
     | 
| 
       233 
     | 
    
         
            -
                        args: [{ selector: 'sc-new-contragent-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n    [formGroup]=\"form\"\n    *ngIf=\"selectOpf$ | async as selectOpf\"\n    class=\"flex flex-col gap-3 pb-1\"\n>\n    <p class=\"text-lg font-bold\">\u041E\u0431\u0449\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430</p>\n    <label tuiLabel>\n        \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n        <tui-select\n            formControlName=\"opf\"\n            [valueContent]=\"opfContent\"\n            [readOnly]=\"!!opfControl\"\n        >\n            \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n            <tui-data-list *tuiDataList>\n                <button\n                    *ngFor=\"let item of getOpf$() | async; let index = index\"\n                    tuiOption\n                    [value]=\"item.slug\"\n                >\n                    {{ item.name }}\n                </button>\n            </tui-data-list>\n        </tui-select>\n        <ng-template\n            #opfContent\n            let-data\n        >\n            <div>{{ (getOpfBySlug$(data) | async)?.name }}</div>\n        </ng-template>\n        <tui-error\n            formControlName=\"opf\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n\n    @let nameLabel = opfListEnum[selectOpf] === opfListEnum.individual ? '\u0424.\u0418.\u041E.' : '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438';\n    <label tuiLabel>\n        {{ nameLabel }}\n        <tui-input formControlName=\"name\">\n            @if (opfListEnum[selectOpf] === opfListEnum.individual) {\n                {{ nameLabel }}\n                <sc-suggestion-field\n                    *tuiDataList\n                    [type]=\"suggestionType.fio\"\n                />\n            } @else {\n                \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n                @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n                    <sc-suggestion-field\n                        *tuiDataList\n                        [type]=\"suggestionType.organization\"\n                    />\n                }\n            }\n        </tui-input>\n        <tui-error\n            formControlName=\"name\"\n            [error]=\"[] | tuiFieldError | async\"\n        />\n    </label>\n    @if (opfListEnum[selectOpf] > opfListEnum.individual) {\n        <label tuiLabel>\n            \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n            <tui-input formControlName=\"inn\">\n                \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n                <input\n                    tuiTextfieldLegacy\n                    [maskito]=\"innMask(selectOpf)\"\n                    autocomplete=\"inn\"\n                />\n                <sc-suggestion-field\n                    *tuiDataList\n                    [type]=\"suggestionType.organization\"\n                />\n            </tui-input>\n            <tui-error\n                formControlName=\"inn\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        @if (opfListEnum[selectOpf] === opfListEnum.legal) {\n            <label tuiLabel>\n                \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n                <tui-input formControlName=\"okpo\">\n                    \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n                    <input\n                        tuiTextfieldLegacy\n                        [maskito]=\"okpoMask(selectOpf)\"\n                        autocomplete=\"okpo\"\n                    />\n                </tui-input>\n                <tui-error\n                    formControlName=\"okpo\"\n                    [error]=\"[] | tuiFieldError | async\"\n                />\n            </label>\n        }\n        <label tuiLabel>\n            \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n            <tui-input formControlName=\"directorName\">\n                \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n                <sc-suggestion-field\n                    *tuiDataList\n                    [type]=\"suggestionType.fio\"\n                />\n            </tui-input>\n            <tui-error\n                formControlName=\"directorName\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n            <tui-input formControlName=\"directorPosition\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n            <tui-error\n                formControlName=\"directorPosition\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n            <tui-input formControlName=\"directorActsOn\"> \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n            <tui-error\n                formControlName=\"directorActsOn\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n            <tui-input formControlName=\"legalAddress\">\n                \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n                @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n                    <sc-suggestion-field\n                        *tuiDataList\n                        [type]=\"suggestionType.address\"\n                    />\n                }\n            </tui-input>\n            <tui-error\n                formControlName=\"legalAddress\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n            <tui-input formControlName=\"postalAddress\">\n                \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n                @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n                    <sc-suggestion-field\n                        *tuiDataList\n                        [type]=\"suggestionType.address\"\n                    />\n                }\n            </tui-input>\n            <tui-error\n                formControlName=\"postalAddress\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n            <tui-input formControlName=\"actualAddress\">\n                \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n                @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n                    <sc-suggestion-field\n                        *tuiDataList\n                        [type]=\"suggestionType.address\"\n                    />\n                }\n            </tui-input>\n            <tui-error\n                formControlName=\"actualAddress\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        @if (opfListEnum[selectOpf] === opfListEnum.legal) {\n            <label tuiLabel>\n                \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n                <tui-input formControlName=\"kpp\">\n                    \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n                    <input\n                        tuiTextfieldLegacy\n                        [maskito]=\"kppMask\"\n                        autocomplete=\"kpp\"\n                    />\n                </tui-input>\n                <tui-error\n                    formControlName=\"kpp\"\n                    [error]=\"[] | tuiFieldError | async\"\n                />\n            </label>\n        }\n    }\n\n    @if (opfListEnum[selectOpf] === opfListEnum.non_resident_legal) {\n        @let countries = countries$ | async;\n        @let countriesId = countriesId$ | async;\n\n        <label\n            *ngIf=\"countries\"\n            tuiLabel\n        >\n            \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n            <tui-combo-box\n                formControlName=\"registrationCountryId\"\n                [stringify]=\"stringify(countries ?? [])\"\n            >\n                \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n                <input\n                    tuiTextfieldLegacy\n                    autocapitalize=\"off\"\n                    autocomplete=\"off\"\n                    autocorrect=\"off\"\n                    autocomplete=\"new-password\"\n                />\n                <tui-data-list-wrapper\n                    *tuiDataList\n                    [itemContent]=\"stringify(countries ?? []) | tuiStringifyContent\"\n                    [items]=\"countriesId | tuiFilterByInput\"\n                />\n            </tui-combo-box>\n            <ng-template\n                #CountryContent\n                let-data\n            >\n                <div>{{ (getCountryNameById$(data) | async) ?? '' }}</div>\n            </ng-template>\n            <tui-error\n                formControlName=\"registrationCountryId\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <ng-template #selectLoading> <tui-loader /> </ng-template>\n        <label tuiLabel>\n            \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n            <tui-input formControlName=\"registrationNumber\"> \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430 </tui-input>\n            <tui-error\n                formControlName=\"registrationNumber\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n        <label tuiLabel>\n            \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n            <tui-input formControlName=\"taxNumber\"> \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430 </tui-input>\n            <tui-error\n                formControlName=\"taxNumber\"\n                [error]=\"[] | tuiFieldError | async\"\n            />\n        </label>\n    }\n</div>\n", styles: ["tui-carousel{--tui-carousel-padding: .5rem}\n"] }]
         
     | 
| 
       234 
     | 
    
         
            -
                    }], ctorParameters: () => [{ type: i1.ScReferencesService }, { type: i1.ScLocationsService }, { type: i2.FormGroupDirective, decorators: [{
         
     | 
| 
       235 
     | 
    
         
            -
                                type: SkipSelf
         
     | 
| 
       236 
     | 
    
         
            -
                            }, {
         
     | 
| 
       237 
     | 
    
         
            -
                                type: Inject,
         
     | 
| 
       238 
     | 
    
         
            -
                                args: [FormGroupDirective]
         
     | 
| 
       239 
     | 
    
         
            -
                            }] }], propDecorators: { opfControl: [{
         
     | 
| 
       240 
     | 
    
         
            -
                            type: Input
         
     | 
| 
       241 
     | 
    
         
            -
                        }] } });
         
     | 
| 
       242 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbmV3LWNvbnRyYWdlbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY29udHJhZ2VudHMvbmV3LWNvbnRyYWdlbnQtZm9ybS9zYy1uZXctY29udHJhZ2VudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250cmFnZW50cy9uZXctY29udHJhZ2VudC1mb3JtL3NjLW5ldy1jb250cmFnZW50LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkVBQTZFO0FBRTdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25HLE9BQU8sRUFBcUQsaUJBQWlCLEVBQXNCLFNBQVMsRUFBdUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNsSyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxjQUFjLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7OztBQUVyRTs7R0FFRztBQU9ILE1BQU0sT0FBTyw0QkFBNEI7SUEyS3JDOzs7Ozs7T0FNRztJQUNILFlBQ3FCLGlCQUFzQyxFQUN0QyxnQkFBb0MsRUFHcEMsa0JBQTZDO1FBSjdDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBcUI7UUFDdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQUdwQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTJCO1FBaExsRTs7V0FFRztRQUNjLHNCQUFpQixHQUFHLElBQUksU0FBUyxDQUFDO1lBQy9DLEdBQUcsRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDOUQsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMvRCxZQUFZLEVBQUUsSUFBSSxXQUFXLENBQWdCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3ZFLGdCQUFnQixFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMzRSxjQUFjLEVBQUUsSUFBSSxXQUFXLENBQWdCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3pFLFlBQVksRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdkUsYUFBYSxFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN4RSxhQUFhLEVBQUUsSUFBSSxXQUFXLENBQWdCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3hFLFlBQVksRUFBRSxJQUFJLFNBQVMsQ0FDdkI7Z0JBQ0ksSUFBSSxTQUFTLENBQUM7b0JBQ1YsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztvQkFDbkUsR0FBRyxFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBQ3pHLGFBQWEsRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3BHLG9CQUFvQixFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsK0JBQStCLENBQUMsQ0FBQztvQkFDNUksVUFBVSxFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztpQkFDeEUsQ0FBQzthQUNMLEVBQ0QsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDakQ7U0FDSixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNjLGVBQVUsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUN4QyxHQUFHLEVBQUUsSUFBSSxXQUFXLENBQWdCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVGLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ2MsMEJBQXFCLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDbkQscUJBQXFCLEVBQUUsSUFBSSxXQUFXLENBQWdCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2hGLGtCQUFrQixFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM3RSxTQUFTLEVBQUUsSUFBSSxXQUFXLENBQWdCLElBQUksQ0FBQztTQUNsRCxDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNhLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUNqQyxJQUFJLEVBQUUsSUFBSSxXQUFXLENBQWdCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQy9ELEdBQUcsRUFBRSxJQUFJLFdBQVcsQ0FBeUIsWUFBWSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDL0UsZ0JBQWdCLEVBQUUsSUFBSSxXQUFXLENBQWdCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzNFLFFBQVEsRUFBRSxJQUFJLFNBQVMsQ0FDbkI7Z0JBQ0ksSUFBSSxTQUFTLENBQUM7b0JBQ1YsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztvQkFDL0QsS0FBSyxFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7b0JBQ3BGLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUM7b0JBQzdELFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7aUJBQ3RFLENBQUM7YUFDTCxFQUNELENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQ2pEO1NBQ0osQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDZ0IsbUJBQWMsR0FBNkIsaUJBQWlCLENBQUM7UUFFaEY7O1dBRUc7UUFDZ0IsZUFBVSxHQUF1QyxlQUFlLENBQXlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDcEksb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDUixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDckksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLFdBQVcsR0FBRyxDQUFDLFNBQW9CLEVBQUUsRUFBRTtnQkFDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ25ELFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxJQUFrQixDQUFDLFVBQVUsQ0FBYSxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM3RSxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQztZQUVGLDREQUE0RDtZQUM1RCxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3hDLFdBQVcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RyxDQUFDO1lBRUQsNERBQTREO1lBQzVELElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDMUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RyxDQUFDO1lBRUQsNERBQTREO1lBQzVELElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkMsV0FBVyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuRCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGOztXQUVHO1FBQ2dCLFlBQU8sR0FBRyxTQUFTLENBQUM7UUFFdkM7O1dBRUc7UUFDZ0IsZ0JBQVcsR0FBcUIsU0FBUyxDQUFDO1FBRTdEOztXQUVHO1FBQ0ssZUFBVSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVwRDs7V0FFRztRQUNnQixlQUFVLEdBQTZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVoRzs7V0FFRztRQUNnQixpQkFBWSxHQUF5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekk7Ozs7V0FJRztRQUNILDREQUE0RDtRQUN6QyxZQUFPLEdBQUcsQ0FBQyxHQUEyQixFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFako7Ozs7V0FJRztRQUNILDREQUE0RDtRQUN6QyxhQUFRLEdBQUcsQ0FBQyxHQUEyQixFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEo7Ozs7V0FJRztRQUNnQixjQUFTLEdBQUcsQ0FBQyxLQUE0QixFQUFFLEVBQUU7WUFDNUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQ3BCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFxQixDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUNMLENBQUM7WUFFRixPQUFPLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxDQUFDLENBQUM7UUFnQkUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVc7YUFDN0IsSUFBSSxDQUNELE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFDcEIsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUM3QyxrQkFBa0IsRUFBRSxDQUN2QjthQUNBLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxrQkFBa0I7SUFDWCxRQUFRO1FBQ1gsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JDLGVBQWUsQ0FBZ0MsSUFBSSxDQUFDLFVBQVUsQ0FBQztpQkFDMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQy9ELFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtJQUNYLFdBQVc7UUFDZCxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLGlCQUFpQixDQUFDLFdBQW1CO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7T0FFRztJQUNPLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxhQUFhLENBQUMsSUFBNEI7UUFDaEQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7OztPQUlHO0lBQ08sbUJBQW1CLENBQUMsU0FBaUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3SSxDQUFDOytHQTVQUSw0QkFBNEIsdUZBc0x6QixrQkFBa0I7bUdBdExyQiw0QkFBNEIsb0dDdkJ6QyxxdFlBNFBBOzs0RkRyT2EsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNJLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTTs7MEJBdUwxQyxRQUFROzswQkFDUixNQUFNOzJCQUFDLGtCQUFrQjt5Q0FqTHZCLFVBQVU7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzLEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCAqL1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBJbmplY3QsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3JtR3JvdXBEaXJlY3RpdmUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTY0lDb3VudHJ5LCBTY0lSZWZlcmVuY2VzVHlwZXMsIFNjSVNhbGVzRGlyZWN0aW9uLCBTY0lTdWdnZXN0aW9uVHlwZSwgU2NMb2NhdGlvbnNTZXJ2aWNlLCBTY09wZkxpc3QsIFNjUmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IHR1aUNvbnRyb2xWYWx1ZSwgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0JhbmtBY2NvdW50Rm9ybUdyb3VwLCBTY0NvbnRhY3RGb3JtR3JvdXAgfSBmcm9tICcuLi8uLi9hdXRoL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgc2NFbnRyZXByZW5ldXJJbm5NYXNrLCBzY0VudHJlcHJlbmV1ck9rcG9NYXNrLCBzY0twcE1hc2ssIHNjTGVnYWxJbm5NYXNrLCBzY0xlZ2FsT2twb01hc2sgfSBmcm9tICcuLi8uLi9tYXNrcyc7XG5pbXBvcnQgeyBzY0JpY1ZhbGlkYXRvciwgc2NDb3JyZXNwb25kZW50QWNjb3VudFZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgcGhvbmVWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzL3NjLXBob25lLXZhbGlkYXRvcic7XG5cbi8qKlxuICog0KTQvtGA0LzQsCDRgdC+0LfQtNCw0L3QuNGPINC90L7QstC+0LPQviDQutC+0L3RgtGA0LDQs9C10L3RgtCwLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLW5ldy1jb250cmFnZW50LWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1uZXctY29udHJhZ2VudC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zYy1uZXctY29udHJhZ2VudC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjTmV3Q29udHJhZ2VudEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICog0J/QvtC70LUg0LLRi9Cx0L7RgNCwINC+0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0L7QuSDRhNC+0YDQvNGLLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9wZkNvbnRyb2w/OiBGb3JtQ29udHJvbDxrZXlvZiB0eXBlb2YgU2NPcGZMaXN0IHwgbnVsbD47XG5cbiAgICAvKipcbiAgICAgKiDQk9GA0YPQv9C/0LAg0L/QvtC70LXQuSDQtNCw0L3QvdGL0YUg0L4g0LrQvtC90YLRgNCw0LPQtdC90YLQtSAtINC40L3QtNC40LLQuNC00YPQsNC70YzQvdC+0Lwg0L/RgNC10LTQv9GA0LjQvdC40LzQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZW50cmVwcmVuZXVyR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgaW5uOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIG9rcG86IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgZGlyZWN0b3JOYW1lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGRpcmVjdG9yUG9zaXRpb246IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgZGlyZWN0b3JBY3RzT246IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgbGVnYWxBZGRyZXNzOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIHBvc3RhbEFkZHJlc3M6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgYWN0dWFsQWRkcmVzczogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBiYW5rQWNjb3VudHM6IG5ldyBGb3JtQXJyYXk8U2NCYW5rQWNjb3VudEZvcm1Hcm91cD4oXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICAgICAgICAgIGJhbmtOYW1lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgICAgICAgICAgIGJpYzogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg5KSwgc2NCaWNWYWxpZGF0b3JdKSxcbiAgICAgICAgICAgICAgICAgICAgYWNjb3VudE51bWJlcjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyMCldKSxcbiAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZGVudEFjY291bnQ6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMjApLCBzY0NvcnJlc3BvbmRlbnRBY2NvdW50VmFsaWRhdG9yXSksXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5SWQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICksXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQk9GA0YPQv9C/0LAg0L/QvtC70LXQuSDQtNCw0L3QvdGL0YUg0L4g0LrQvtC90YLRgNCw0LPQtdC90YLQtSAtINGO0YDQuNC00LjRh9C10YHQutC+0Lwg0LvQuNGG0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBsZWdhbEdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGtwcDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg5KV0pLFxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICog0JPRgNGD0L/Qv9CwINC/0L7Qu9C10Lkg0LTQsNC90L3Ri9GFINC+INC60L7QvdGC0YDQsNCz0LXQvdGC0LUgLSDRjtGA0LjQtNC40YfQtdGB0LrQvtC8INC70LjRhtC1INC90LXRgNC10LfQuNC00LXQvdGC0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBub25SZXNpZGVudExlZ2FsR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgcmVnaXN0cmF0aW9uQ291bnRyeUlkOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIHJlZ2lzdHJhdGlvbk51bWJlcjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICB0YXhOdW1iZXI6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqINCk0L7RgNC80LAg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0L3QvtCy0L7Qs9C+INC60L7QvdGC0YDQsNCz0LXQvdGC0LAg0YTQuNC30LjRh9C10YHQutC+0LPQviDQu9C40YbQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIG9wZjogbmV3IEZvcm1Db250cm9sPGtleW9mIHR5cGVvZiBTY09wZkxpc3Q+KCdpbmRpdmlkdWFsJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIHNhbGVzRGlyZWN0aW9uSWQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgY29udGFjdHM6IG5ldyBGb3JtQXJyYXk8U2NDb250YWN0Rm9ybUdyb3VwPihcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAgICAgICAgICAgICBwaG9uZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBwaG9uZVZhbGlkYXRvcigpXSksXG4gICAgICAgICAgICAgICAgICAgIGVtYWlsOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5lbWFpbCksXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW1ZhbGlkYXRvcnMubWluTGVuZ3RoKDEpLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICApLFxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INGC0LjQv9C+0LIg0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzdWdnZXN0aW9uVHlwZTogdHlwZW9mIFNjSVN1Z2dlc3Rpb25UeXBlID0gU2NJU3VnZ2VzdGlvblR5cGU7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LLRi9Cx0L7RgNCwINCe0J/QpC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0T3BmJDogT2JzZXJ2YWJsZTxrZXlvZiB0eXBlb2YgU2NPcGZMaXN0PiA9IHR1aUNvbnRyb2xWYWx1ZTxrZXlvZiB0eXBlb2YgU2NPcGZMaXN0Pih0aGlzLmZvcm0uY29udHJvbHMub3BmKS5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YXAoKG9wZikgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoeyAuLi50aGlzLmVudHJlcHJlbmV1ckdyb3VwLmNvbnRyb2xzLCAuLi50aGlzLmxlZ2FsR3JvdXAuY29udHJvbHMsIC4uLnRoaXMubm9uUmVzaWRlbnRMZWdhbEdyb3VwLmNvbnRyb2xzIH0pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoa2V5KT8uZGlzYWJsZSgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGFkZENvbnRyb2xzID0gKGZvcm1Hcm91cDogRm9ybUdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoeyAuLi5mb3JtR3JvdXAuY29udHJvbHMgfSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoa2V5KT8uZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmZvcm0gYXMgRm9ybUdyb3VwKS5zZXRDb250cm9sPHR5cGVvZiBrZXk+KGtleSwgZm9ybUdyb3VwLmdldChrZXkpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgICAgICAgICAgaWYgKFNjT3BmTGlzdFtvcGZdID4gU2NPcGZMaXN0LmluZGl2aWR1YWwpIHtcbiAgICAgICAgICAgICAgICBhZGRDb250cm9scyh0aGlzLmVudHJlcHJlbmV1ckdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVudHJlcHJlbmV1ckdyb3VwLmNvbnRyb2xzLmlubi5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxMildKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVudHJlcHJlbmV1ckdyb3VwLmNvbnRyb2xzLm9rcG8uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTApXSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgICAgICAgICAgaWYgKFNjT3BmTGlzdFtvcGZdID4gU2NPcGZMaXN0LmVudHJlcHJlbmV1cikge1xuICAgICAgICAgICAgICAgIGFkZENvbnRyb2xzKHRoaXMubGVnYWxHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRyZXByZW5ldXJHcm91cC5jb250cm9scy5pbm4uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTApXSk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRyZXByZW5ldXJHcm91cC5jb250cm9scy5va3BvLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDgpXSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgICAgICAgICAgaWYgKFNjT3BmTGlzdFtvcGZdID4gU2NPcGZMaXN0LmxlZ2FsKSB7XG4gICAgICAgICAgICAgICAgYWRkQ29udHJvbHModGhpcy5ub25SZXNpZGVudExlZ2FsR3JvdXApO1xuICAgICAgICAgICAgICAgIHRoaXMubGVnYWxHcm91cC5jb250cm9scy5rcHAuZGlzYWJsZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW50cmVwcmVuZXVyR3JvdXAuY29udHJvbHMuaW5uLmRpc2FibGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVudHJlcHJlbmV1ckdyb3VwLmNvbnRyb2xzLm9rcG8uZGlzYWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQnNCw0YHQutCwINC/0L7Qu9GPINCy0LLQvtC00LAg0JrQn9CfLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBrcHBNYXNrID0gc2NLcHBNYXNrO1xuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INC+0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0YvRhSDRhNC+0YDQvC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3BmTGlzdEVudW06IHR5cGVvZiBTY09wZkxpc3QgPSBTY09wZkxpc3Q7XG5cbiAgICAvKipcbiAgICAgKiDQodGB0YvQu9C60LAg0LTQu9GPINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC+0LPQviDRg9C/0YDQsNCy0LvQtdC90LjRjyDRg9C90LjRh9GC0L7QttC10L3QuNC10Lwg0LfQsNCy0LjRgdC40LzQvtGB0YLQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgZGVzdHJveVJlZjogRGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0YHRgtGA0LDQvS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY291bnRyaWVzJDogT2JzZXJ2YWJsZTxTY0lDb3VudHJ5W10+ID0gdGhpcy5sb2NhdGlvbnNTZXJ2aWNlLmdldENvdW50cmllcyQoKTtcblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDQvtCyINGB0YLRgNCw0L0uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvdW50cmllc0lkJDogT2JzZXJ2YWJsZTxudW1iZXJbXT4gPSB0aGlzLmNvdW50cmllcyQucGlwZShtYXAoKGNvdW50cmllcykgPT4gY291bnRyaWVzLm1hcCgoY291bnRyeSkgPT4gY291bnRyeS5pZCkpKTtcblxuICAgIC8qKlxuICAgICAqINCc0LDRgdC60LAg0L/QvtC70Y8g0LLQstC+0LTQsCDQmNCd0J0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3BmINCe0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0LDRjyDRhNC+0YDQvNCwLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpbm5NYXNrID0gKG9wZjoga2V5b2YgdHlwZW9mIFNjT3BmTGlzdCkgPT4gKFNjT3BmTGlzdFtvcGZdID4gU2NPcGZMaXN0LmVudHJlcHJlbmV1ciA/IHNjTGVnYWxJbm5NYXNrIDogc2NFbnRyZXByZW5ldXJJbm5NYXNrKTtcblxuICAgIC8qKlxuICAgICAqINCc0LDRgdC60LAg0L/QvtC70Y8g0LLQstC+0LTQsCDQntCa0J/Qni5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcGYg0J7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLQsNGPINGE0L7RgNC80LAuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9rcG9NYXNrID0gKG9wZjoga2V5b2YgdHlwZW9mIFNjT3BmTGlzdCkgPT4gKFNjT3BmTGlzdFtvcGZdID4gU2NPcGZMaXN0LmVudHJlcHJlbmV1ciA/IHNjTGVnYWxPa3BvTWFzayA6IHNjRW50cmVwcmVuZXVyT2twb01hc2spO1xuXG4gICAgLyoqXG4gICAgICog0KTRg9C90LrRhtC40Y8g0L/RgNC10L7QsdGA0LDQt9C+0LLQsNC90LjRjyDQvtCx0YrQtdC60YLQsCDRgdC+0YDRgtC40YDQvtCy0LrQuCDQsiDQt9C90LDRh9C10L3QuNC1LCDQvtGC0L7QsdGA0LDQttCw0LXQvNC+0LUg0LIg0L/QvtC70LUg0LLQstC+0LTQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtcyDQodC/0LjRgdC+0Log0YHRgtGA0LDQvS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RyaW5naWZ5ID0gKGl0ZW1zOiByZWFkb25seSBTY0lDb3VudHJ5W10pID0+IHtcbiAgICAgICAgY29uc3QgaXRlbXNNYXAgPSBuZXcgTWFwKFxuICAgICAgICAgICAgaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtpdGVtLmlkLCBpdGVtLm5hbWVdIGFzIFtudW1iZXIsIHN0cmluZ107XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiAoaWQ6IG51bWJlcikgPT4gaXRlbXNNYXAuZ2V0KGlkKSA/PyAnJztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY05ld0NvbnRyYWdlbnRGb3JtQ29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZWZlcmVuY2VzU2VydmljZSDQodC10YDQstC40YEg0YHQv9GA0LDQstC+0YfQvdC40LrQvtCyLlxuICAgICAqIEBwYXJhbSBsb2NhdGlvbnNTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQvtCyINGB0YLRgNCw0L0sINGA0LXQs9C40L7QvdC+0LIsINCz0L7RgNC+0LTQvtCyLlxuICAgICAqIEBwYXJhbSBmb3JtR3JvdXBEaXJlY3RpdmUg0JTQuNGA0LXQutGC0LjQstCwIGMgYEZvcm1Hcm91cGAg0LjQtyBET00uXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlZmVyZW5jZXNTZXJ2aWNlOiBTY1JlZmVyZW5jZXNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uc1NlcnZpY2U6IFNjTG9jYXRpb25zU2VydmljZSxcbiAgICAgICAgQFNraXBTZWxmKClcbiAgICAgICAgQEluamVjdChGb3JtR3JvdXBEaXJlY3RpdmUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUdyb3VwRGlyZWN0aXZlOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBudWxsXG4gICAgKSB7XG4gICAgICAgIHRoaXMucmVmZXJlbmNlc1NlcnZpY2UuZGlyZWN0aW9ucyRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZGlyZWN0aW9ucykgPT4gZGlyZWN0aW9ucy5sZW5ndGggPiAwKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGlyZWN0aW9ucykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgc2FsZXNEaXJlY3Rpb25JZDogZGlyZWN0aW9uc1swXS5pZCB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCg0L7QtNC40YLQtdC70YzRgdC60LDRjyBgRm9ybUdyb3VwYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHBhcmVudEZvcm0oKTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlPy5mb3JtO1xuICAgIH1cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXJlbnRGb3JtPy5zZXRDb250cm9sKCdjb250cmFnZW50JywgdGhpcy5mb3JtKTtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50Rm9ybSAmJiB0aGlzLm9wZkNvbnRyb2wpIHtcbiAgICAgICAgICAgIHR1aUNvbnRyb2xWYWx1ZTxrZXlvZiB0eXBlb2YgU2NPcGZMaXN0IHwgbnVsbD4odGhpcy5vcGZDb250cm9sKVxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcih0dWlJc1ByZXNlbnQpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChvcGYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLm9wZi5wYXRjaFZhbHVlKG9wZik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFyZW50Rm9ybT8ucmVtb3ZlQ29udHJvbCgnY29udHJhZ2VudCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0L3QsNC/0YDQsNCy0LvQtdC90LjQuSDQv9GA0L7QtNCw0LYuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGlyZWN0aW9uSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0L3QsNC/0YDQsNCy0LvQtdC90LjRjyDQv9GA0L7QtNCw0LYuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldERpcmVjdGlvbkJ5SWQkKGRpcmVjdGlvbklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFNjSVNhbGVzRGlyZWN0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZXNTZXJ2aWNlLmdldERpcmVjdGlvbkJ5SWQkKGRpcmVjdGlvbklkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQv9C40YHQvtC6INC+0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0YvRhSDRhNC+0YDQvC4uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldE9wZiQoKTogT2JzZXJ2YWJsZTxBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NPcGZMaXN0LCB0eXBlb2YgU2NPcGZMaXN0Pj4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlc1NlcnZpY2Uub3BmJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLQvtC5INGE0L7RgNC80YssINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQuSDRgdC40LzQstC+0LvRjNC90L7QvNGDINC+0LHQvtC30L3QsNGH0LXQvdC40Y4gKHNsdWcpINC90LAg0LLRhdC+0LTQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzbHVnINCh0LjQvNCy0L7Qu9GM0L3QvtC1INC+0LHQvtC30L3QsNGH0LXQvdC40LUgKHNsdWcpLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRPcGZCeVNsdWckKHNsdWc6IGtleW9mIHR5cGVvZiBTY09wZkxpc3QpOiBPYnNlcnZhYmxlPFNjSVJlZmVyZW5jZXNUeXBlczxTY09wZkxpc3QsIHR5cGVvZiBTY09wZkxpc3Q+IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZXNTZXJ2aWNlLmdldE9wZkJ5U2x1ZyQoc2x1Zyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0YLRgNCw0L3RiyDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY291bnRyeUlkIOKAlCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgdGC0YDQsNC90YsuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldENvdW50cnlOYW1lQnlJZCQoY291bnRyeUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhdGlvbnNTZXJ2aWNlLmdldENvdW50cmllcyQoKS5waXBlKG1hcCgoY291bnRyaWVzKSA9PiBjb3VudHJpZXMuZmluZCgoY291bnRyeSkgPT4gY291bnRyeS5pZCA9PT0gY291bnRyeUlkKT8ubmFtZSA/PyAnJykpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICpuZ0lmPVwic2VsZWN0T3BmJCB8IGFzeW5jIGFzIHNlbGVjdE9wZlwiXG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIHBiLTFcIlxuPlxuICAgIDxwIGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGRcIj7QntCx0YnQuNC1INC00LDQvdC90YvQtSDQutC+0L3RgtGA0LDQs9C10L3RgtCwPC9wPlxuICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAg0KLQuNC/INC60L7QvdGC0YDQsNCz0LXQvdGC0LAgKNC+0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0LDRjyDRhNC+0YDQvNCwKVxuICAgICAgICA8dHVpLXNlbGVjdFxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3BmXCJcbiAgICAgICAgICAgIFt2YWx1ZUNvbnRlbnRdPVwib3BmQ29udGVudFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwiISFvcGZDb250cm9sXCJcbiAgICAgICAgPlxuICAgICAgICAgICAg0KLQuNC/INC60L7QvdGC0YDQsNCz0LXQvdGC0LAgKNC+0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0LDRjyDRhNC+0YDQvNCwKVxuICAgICAgICAgICAgPHR1aS1kYXRhLWxpc3QgKnR1aURhdGFMaXN0PlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0T3BmJCgpIHwgYXN5bmM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgdHVpT3B0aW9uXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLnNsdWdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3R1aS1kYXRhLWxpc3Q+XG4gICAgICAgIDwvdHVpLXNlbGVjdD5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAjb3BmQ29udGVudFxuICAgICAgICAgICAgbGV0LWRhdGFcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdj57eyAoZ2V0T3BmQnlTbHVnJChkYXRhKSB8IGFzeW5jKT8ubmFtZSB9fTwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvcGZcIlxuICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgLz5cbiAgICA8L2xhYmVsPlxuXG4gICAgQGxldCBuYW1lTGFiZWwgPSBvcGZMaXN0RW51bVtzZWxlY3RPcGZdID09PSBvcGZMaXN0RW51bS5pbmRpdmlkdWFsID8gJ9CkLtCYLtCeLicgOiAn0J3QsNC30LLQsNC90LjQtSDQvtGA0LPQsNC90LjQt9Cw0YbQuNC4JztcbiAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgIHt7IG5hbWVMYWJlbCB9fVxuICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cbiAgICAgICAgICAgIEBpZiAob3BmTGlzdEVudW1bc2VsZWN0T3BmXSA9PT0gb3BmTGlzdEVudW0uaW5kaXZpZHVhbCkge1xuICAgICAgICAgICAgICAgIHt7IG5hbWVMYWJlbCB9fVxuICAgICAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5maW9cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICDQndCw0LfQstCw0L3QuNC1INC+0YDQs9Cw0L3QuNC30LDRhtC40LhcbiAgICAgICAgICAgICAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gIT09IG9wZkxpc3RFbnVtLm5vbl9yZXNpZGVudF9sZWdhbCkge1xuICAgICAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5vcmdhbml6YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgLz5cbiAgICA8L2xhYmVsPlxuICAgIEBpZiAob3BmTGlzdEVudW1bc2VsZWN0T3BmXSA+IG9wZkxpc3RFbnVtLmluZGl2aWR1YWwpIHtcbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICAgICAg0JjQndCdINC+0YDQs9Cw0L3QuNC30LDRhtC40Lgg0LjQu9C4INCY0J9cbiAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaW5uXCI+XG4gICAgICAgICAgICAgICAg0JjQndCdINC+0YDQs9Cw0L3QuNC30LDRhtC40Lgg0LjQu9C4INCY0J9cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICAgICAgICAgIFttYXNraXRvXT1cImlubk1hc2soc2VsZWN0T3BmKVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImlublwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUub3JnYW5pemF0aW9uXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW5uXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgQGlmIChvcGZMaXN0RW51bVtzZWxlY3RPcGZdID09PSBvcGZMaXN0RW51bS5sZWdhbCkge1xuICAgICAgICAgICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICAgICAgICAgINCa0L7QtCDQntCa0J/QnlxuICAgICAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwib2twb1wiPlxuICAgICAgICAgICAgICAgICAgICDQmtC+0LQg0J7QmtCf0J5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRMZWdhY3lcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXNraXRvXT1cIm9rcG9NYXNrKHNlbGVjdE9wZilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2twb1wiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJva3BvXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgfVxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQpC7QmC7Qni4g0YDRg9C60L7QstC+0LTQuNGC0LXQu9GPXG4gICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImRpcmVjdG9yTmFtZVwiPlxuICAgICAgICAgICAgICAgINCkLtCYLtCeLiDRgNGD0LrQvtCy0L7QtNC40YLQtdC70Y9cbiAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuZmlvXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlyZWN0b3JOYW1lXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICAgICAg0JTQvtC70LbQvdC+0YHRgtGMINGA0YPQutC+0LLQvtC00LjRgtC10LvRj1xuICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkaXJlY3RvclBvc2l0aW9uXCI+INCU0L7Qu9C20L3QvtGB0YLRjCDRgNGD0LrQvtCy0L7QtNC40YLQtdC70Y8gPC90dWktaW5wdXQ+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlyZWN0b3JQb3NpdGlvblwiXG4gICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgINCe0YHQvdC+0LLQsNC90LjRjyDQv9C+0LvQvdC+0LzQvtGH0LjQuSDRgNGD0LrQvtCy0L7QtNC40YLQtdC70Y9cbiAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGlyZWN0b3JBY3RzT25cIj4g0J7RgdC90L7QstCw0L3QuNGPINC/0L7Qu9C90L7QvNC+0YfQuNC5INGA0YPQutC+0LLQvtC00LjRgtC10LvRjyA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkaXJlY3RvckFjdHNPblwiXG4gICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgINCu0YDQuNC00LjRh9C10YHQutC40Lkg0LDQtNGA0LXRgVxuICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJsZWdhbEFkZHJlc3NcIj5cbiAgICAgICAgICAgICAgICDQrtGA0LjQtNC40YfQtdGB0LrQuNC5INCw0LTRgNC10YFcbiAgICAgICAgICAgICAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gIT09IG9wZkxpc3RFbnVtLm5vbl9yZXNpZGVudF9sZWdhbCkge1xuICAgICAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5hZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsZWdhbEFkZHJlc3NcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQn9C+0YfRgtC+0LLRi9C5INCw0LTRgNC10YFcbiAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicG9zdGFsQWRkcmVzc1wiPlxuICAgICAgICAgICAgICAgINCf0L7Rh9GC0L7QstGL0Lkg0LDQtNGA0LXRgVxuICAgICAgICAgICAgICAgIEBpZiAob3BmTGlzdEVudW1bc2VsZWN0T3BmXSAhPT0gb3BmTGlzdEVudW0ubm9uX3Jlc2lkZW50X2xlZ2FsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInN1Z2dlc3Rpb25UeXBlLmFkZHJlc3NcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBvc3RhbEFkZHJlc3NcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQpNCw0LrRgtC40YfQtdGB0LrQuNC5INCw0LTRgNC10YFcbiAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYWN0dWFsQWRkcmVzc1wiPlxuICAgICAgICAgICAgICAgINCk0LDQutGC0LjRh9C10YHQutC40Lkg0LDQtNGA0LXRgVxuICAgICAgICAgICAgICAgIEBpZiAob3BmTGlzdEVudW1bc2VsZWN0T3BmXSAhPT0gb3BmTGlzdEVudW0ubm9uX3Jlc2lkZW50X2xlZ2FsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInN1Z2dlc3Rpb25UeXBlLmFkZHJlc3NcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFjdHVhbEFkZHJlc3NcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gPT09IG9wZkxpc3RFbnVtLmxlZ2FsKSB7XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICAgICAg0JrQn9CfINC+0YDQs9Cw0L3QuNC30LDRhtC40LhcbiAgICAgICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImtwcFwiPlxuICAgICAgICAgICAgICAgICAgICDQmtCf0J8g0L7RgNCz0LDQvdC40LfQsNGG0LjQuFxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgICAgICAgICAgW21hc2tpdG9dPVwia3BwTWFza1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJrcHBcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwia3BwXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAob3BmTGlzdEVudW1bc2VsZWN0T3BmXSA9PT0gb3BmTGlzdEVudW0ubm9uX3Jlc2lkZW50X2xlZ2FsKSB7XG4gICAgICAgIEBsZXQgY291bnRyaWVzID0gY291bnRyaWVzJCB8IGFzeW5jO1xuICAgICAgICBAbGV0IGNvdW50cmllc0lkID0gY291bnRyaWVzSWQkIHwgYXN5bmM7XG5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAqbmdJZj1cImNvdW50cmllc1wiXG4gICAgICAgICAgICB0dWlMYWJlbFxuICAgICAgICA+XG4gICAgICAgICAgICDQodGC0YDQsNC90LAg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgIDx0dWktY29tYm8tYm94XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVnaXN0cmF0aW9uQ291bnRyeUlkXCJcbiAgICAgICAgICAgICAgICBbc3RyaW5naWZ5XT1cInN0cmluZ2lmeShjb3VudHJpZXMgPz8gW10pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQodGC0YDQsNC90LAg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHR1aS1kYXRhLWxpc3Qtd3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1Db250ZW50XT1cInN0cmluZ2lmeShjb3VudHJpZXMgPz8gW10pIHwgdHVpU3RyaW5naWZ5Q29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJjb3VudHJpZXNJZCB8IHR1aUZpbHRlckJ5SW5wdXRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3R1aS1jb21iby1ib3g+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAjQ291bnRyeUNvbnRlbnRcbiAgICAgICAgICAgICAgICBsZXQtZGF0YVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXY+e3sgKGdldENvdW50cnlOYW1lQnlJZCQoZGF0YSkgfCBhc3luYykgPz8gJycgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVnaXN0cmF0aW9uQ291bnRyeUlkXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RMb2FkaW5nPiA8dHVpLWxvYWRlciAvPiA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQoNC10LPQuNGB0YLRgNCw0YbQuNC+0L3QvdGL0Lkg0L3QvtC80LXRgCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicmVnaXN0cmF0aW9uTnVtYmVyXCI+INCg0LXQs9C40YHRgtGA0LDRhtC40L7QvdC90YvQuSDQvdC+0LzQtdGAINGO0YDQuNC00LjRh9C10YHQutC+0LPQviDQu9C40YbQsCA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWdpc3RyYXRpb25OdW1iZXJcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQndCw0LvQvtCz0L7QstGL0Lkg0L3QvtC80LXRgCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGF4TnVtYmVyXCI+INCd0LDQu9C+0LPQvtCy0YvQuSDQvdC+0LzQtdGAINGO0YDQuNC00LjRh9C10YHQutC+0LPQviDQu9C40YbQsCA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhOdW1iZXJcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgIH1cbjwvZGl2PlxuIl19
         
     |