simpo-component-library 3.5.52 → 3.6.2
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/README.md +24 -24
- package/esm2022/lib/components/delete-hover-element/delete-hover-element.component.mjs +3 -3
- package/esm2022/lib/components/document/document.component.mjs +3 -3
- package/esm2022/lib/components/hover-elements/hover-elements.component.mjs +3 -3
- package/esm2022/lib/components/image-loading/image-loading.component.mjs +3 -3
- package/esm2022/lib/components/payment-details/payment-details.component.mjs +3 -3
- package/esm2022/lib/constants/business.constant.mjs +1 -1
- package/esm2022/lib/directive/alignment.directive.mjs +23 -0
- package/esm2022/lib/directive/background-directive.mjs +130 -5
- package/esm2022/lib/directive/blur-content.directive.mjs +1 -1
- package/esm2022/lib/directive/border-directive.mjs +2 -2
- package/esm2022/lib/directive/borderlessImage.directive.mjs +4 -1
- package/esm2022/lib/directive/button-directive.directive.mjs +72 -17
- package/esm2022/lib/directive/button-editor.directive.mjs +22 -4
- package/esm2022/lib/directive/color.directive.mjs +1 -1
- package/esm2022/lib/directive/column-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/container-alignment.directive.mjs +1 -1
- package/esm2022/lib/directive/container-fir.directive.mjs +1 -1
- package/esm2022/lib/directive/content-title-spacing.directive.mjs +4 -4
- package/esm2022/lib/directive/contenteditable.directive.mjs +1 -1
- package/esm2022/lib/directive/corner-directive.mjs +1 -1
- package/esm2022/lib/directive/height.directive.mjs +29 -0
- package/esm2022/lib/directive/hover-animation.directive.mjs +142 -0
- package/esm2022/lib/directive/hoverborder.directive.mjs +1 -1
- package/esm2022/lib/directive/image-container.directive.mjs +1 -1
- package/esm2022/lib/directive/image-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/image-editor.directive.mjs +25 -5
- package/esm2022/lib/directive/image-position.directive.mjs +1 -1
- package/esm2022/lib/directive/position-layout-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/set-dynamic-background.directive.mjs +66 -0
- package/esm2022/lib/directive/spacing-around.directive.mjs +40 -3
- package/esm2022/lib/directive/spacing-horizontal.directive.mjs +5 -1
- package/esm2022/lib/directive/spacing.directive.mjs +29 -0
- package/esm2022/lib/directive/sticky-directive.mjs +2 -2
- package/esm2022/lib/directive/text-background-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/text-size.directive.mjs +1 -1
- package/esm2022/lib/directive/translate-onhover.directive.mjs +47 -0
- package/esm2022/lib/directive/wrap-containers.directive.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/address/address.component.mjs +96 -59
- package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +128 -14
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.component.mjs +199 -0
- package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.model.mjs +2 -0
- package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +214 -36
- package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/checkout/checkout.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/customer-review/customer-review.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/customer-review/customer-review.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.component.mjs +405 -0
- package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.model.mjs +2 -0
- package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +6 -4
- package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +7 -5
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +42 -7
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/item-varient/item-varient.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/new-collection/new-collection.component.mjs +144 -0
- package/esm2022/lib/ecommerce/sections/new-collection/new-collection.modal.mjs +2 -0
- package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +99 -11
- package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +395 -21
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +626 -142
- package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.component.mjs +95 -0
- package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.model.mjs +2 -0
- package/esm2022/lib/ecommerce/sections/scheme-details/scheme-details.component.mjs +57 -0
- package/esm2022/lib/ecommerce/sections/scheme-selection/scheme-selection.component.mjs +36 -0
- package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +49 -4
- package/esm2022/lib/ecommerce/sections/store-list/store-list.component.mjs +157 -0
- package/esm2022/lib/ecommerce/sections/store-list/store-list.modal.mjs +2 -0
- package/esm2022/lib/ecommerce/sections/store-page/store-page.component.mjs +120 -0
- package/esm2022/lib/ecommerce/sections/store-page/store-page.model.mjs +2 -0
- package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +5 -4
- package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +66 -16
- package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +17 -12
- package/esm2022/lib/ecommerce/styles/BaseCollection.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +5 -3
- package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/PincodeLocation.model.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/PincodeLocationInter.model.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/cart.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/category.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/order.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/product.modal.mjs +22 -1
- package/esm2022/lib/ecommerce/styles/review.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/user.modal.mjs +3 -1
- package/esm2022/lib/elements/add-section/add-section.component.mjs +3 -4
- package/esm2022/lib/elements/address-list/address-list.component.mjs +98 -0
- package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +13 -8
- package/esm2022/lib/elements/button/button.component.mjs +3 -3
- package/esm2022/lib/elements/button/button.model.mjs +1 -1
- package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +3 -3
- package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +8 -4
- package/esm2022/lib/elements/editor-service.service.mjs +29 -12
- package/esm2022/lib/elements/heading-element/heading-element.component.mjs +3 -3
- package/esm2022/lib/elements/image-editor/image-editor.component.mjs +147 -15
- package/esm2022/lib/elements/index.mjs +1 -1
- package/esm2022/lib/elements/link-editor/link-editor.component.mjs +108 -10
- package/esm2022/lib/elements/list-home-appointment/list-home-appointment.component.mjs +94 -0
- package/esm2022/lib/elements/media-selector/media-selector.component.mjs +3 -3
- package/esm2022/lib/elements/navbar-button-element/navbar-button-element.component.mjs +1 -2
- package/esm2022/lib/elements/portfolio/portfolio.component.mjs +3 -3
- package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +80 -0
- package/esm2022/lib/elements/property/property.component.mjs +3 -3
- package/esm2022/lib/elements/schedule-video-call/schedule-video-call.component.mjs +187 -0
- package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +3 -3
- package/esm2022/lib/elements/svg-divider/svg-divider.component.mjs +3 -3
- package/esm2022/lib/elements/text/text.component.mjs +3 -3
- package/esm2022/lib/elements/text-editor/text-editor.component.mjs +72 -27
- package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +7 -3
- package/esm2022/lib/pipes/amount.pipe.mjs +1 -1
- package/esm2022/lib/pipes/gender.pipe.mjs +5 -1
- package/esm2022/lib/sections/BaseSection.mjs +1 -1
- package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +3 -3
- package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +164 -98
- package/esm2022/lib/sections/appointment-form/appointment-form.model.mjs +1 -1
- package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +6 -32
- package/esm2022/lib/sections/banner-carousel/banner-carousel.model.mjs +1 -1
- package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +52 -17
- package/esm2022/lib/sections/banner-section/banner-section.component.mjs +6 -25
- package/esm2022/lib/sections/blog-list/blog-list.component.mjs +4 -4
- package/esm2022/lib/sections/blog-list/blog-list.model.mjs +1 -1
- package/esm2022/lib/sections/carousel-banner/carousel-banner.component.mjs +8 -7
- package/esm2022/lib/sections/carousel-banner/carousel-banner.model.mjs +1 -1
- package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +6 -4
- package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
- package/esm2022/lib/sections/contact-us/contact-us.component.mjs +37 -7
- package/esm2022/lib/sections/contact-us/contact-us.modal.mjs +1 -1
- package/esm2022/lib/sections/faq-section/faq-section.component.mjs +4 -4
- package/esm2022/lib/sections/faq-section/faq-section.modal.mjs +1 -1
- package/esm2022/lib/sections/features-section/features-section.component.mjs +6 -4
- package/esm2022/lib/sections/features-section/features-section.model.mjs +1 -1
- package/esm2022/lib/sections/footer/footer.component.mjs +6 -9
- package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
- package/esm2022/lib/sections/header-section/header-section.component.mjs +95 -13
- package/esm2022/lib/sections/header-section/header-section.model.mjs +1 -1
- package/esm2022/lib/sections/header-text/header-text.component.mjs +3 -3
- package/esm2022/lib/sections/header-text/header-text.model.mjs +1 -1
- package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +12 -22
- package/esm2022/lib/sections/image-carousel-section/image-carousel.model.mjs +1 -1
- package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +9 -4
- package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
- package/esm2022/lib/sections/image-section/image-section.component.mjs +12 -5
- package/esm2022/lib/sections/image-section/image-section.model.mjs +1 -1
- package/esm2022/lib/sections/location-section/location-section.component.mjs +3 -3
- package/esm2022/lib/sections/location-section/location-section.modal.mjs +1 -1
- package/esm2022/lib/sections/logo-gallery/logo-gallery.component.mjs +9 -4
- package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +9 -3
- package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
- package/esm2022/lib/sections/moving-text/moving-text.component.mjs +119 -0
- package/esm2022/lib/sections/moving-text/moving-text.modal.mjs +2 -0
- package/esm2022/lib/sections/new-services/new-services.component.mjs +4 -4
- package/esm2022/lib/sections/new-services/new-services.model.mjs +1 -1
- package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +12 -6
- package/esm2022/lib/sections/new-testimonials/new-testimonials.model.mjs +1 -1
- package/esm2022/lib/sections/news-letter-component/news-letter-component.component.mjs +108 -0
- package/esm2022/lib/sections/news-letter-component/news-letter.modal.mjs +2 -0
- package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +28 -4
- package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
- package/esm2022/lib/sections/process-modern/process-modern.component.mjs +12 -4
- package/esm2022/lib/sections/process-modern/process-modern.model.mjs +1 -1
- package/esm2022/lib/sections/process-section/process-section.component.mjs +6 -3
- package/esm2022/lib/sections/process-section/process-section.modal.mjs +1 -1
- package/esm2022/lib/sections/property-component/property-component.component.mjs +3 -3
- package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
- package/esm2022/lib/sections/property-list/property-list.component.mjs +3 -3
- package/esm2022/lib/sections/property-list/property-list.modal.mjs +1 -1
- package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +6 -4
- package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
- package/esm2022/lib/sections/registration-form/registration-form.component.mjs +9 -9
- package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +1 -1
- package/esm2022/lib/sections/service-section/service-section.component.mjs +4 -4
- package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
- package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +3 -3
- package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +3 -3
- package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +6 -3
- package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +18 -3
- package/esm2022/lib/sections/testimonial-section/testimonial-section.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +3 -3
- package/esm2022/lib/sections/testimonial-video/testimonial-video.model.mjs +1 -1
- package/esm2022/lib/sections/text-image-section/text-image-section.component.mjs +3 -17
- package/esm2022/lib/sections/text-section/text-section.component.mjs +3 -21
- package/esm2022/lib/sections/text-section/text-section.model.mjs +1 -1
- package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +3 -3
- package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +1 -1
- package/esm2022/lib/sections/video-section/video-section.component.mjs +16 -16
- package/esm2022/lib/sections/video-section/video-section.model.mjs +1 -1
- package/esm2022/lib/sections/view-blog/view-blog.component.mjs +3 -3
- package/esm2022/lib/services/cart.service.mjs +38 -35
- package/esm2022/lib/services/endUser.service.mjs +1 -1
- package/esm2022/lib/services/events.service.mjs +3 -8
- package/esm2022/lib/services/image-upload-service.service.mjs +7 -4
- package/esm2022/lib/services/rest.service.mjs +125 -68
- package/esm2022/lib/services/sanitizeHtml.mjs +1 -1
- package/esm2022/lib/services/storage.service.mjs +27 -44
- package/esm2022/lib/styles/index.mjs +8 -1
- package/esm2022/lib/styles/style.model.mjs +3 -2
- package/esm2022/lib/styles/types.mjs +1 -1
- package/esm2022/lib/tokens/api-token.mjs +1 -1
- package/esm2022/public-api.mjs +14 -2
- package/fesm2022/simpo-component-library.mjs +5815 -1711
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/directive/alignment.directive.d.ts +11 -0
- package/lib/directive/button-directive.directive.d.ts +2 -0
- package/lib/directive/button-editor.directive.d.ts +6 -2
- package/lib/directive/height.directive.d.ts +11 -0
- package/lib/directive/hover-animation.directive.d.ts +19 -0
- package/lib/directive/image-editor.directive.d.ts +6 -1
- package/lib/directive/set-dynamic-background.directive.d.ts +14 -0
- package/lib/directive/spacing-around.directive.d.ts +7 -2
- package/lib/directive/spacing.directive.d.ts +12 -0
- package/lib/directive/translate-onhover.directive.d.ts +11 -0
- package/lib/ecommerce/sections/address/address.component.d.ts +11 -3
- package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +23 -5
- package/lib/ecommerce/sections/book-appointment/book-appointment.component.d.ts +70 -0
- package/lib/ecommerce/sections/book-appointment/book-appointment.model.d.ts +14 -0
- package/lib/ecommerce/sections/cart/cart.component.d.ts +35 -3
- package/lib/ecommerce/sections/enrollment-form/enrollment-form.component.d.ts +54 -0
- package/lib/ecommerce/sections/enrollment-form/enrollment-form.model.d.ts +29 -0
- package/lib/ecommerce/sections/featured-category/featured-category.modal.d.ts +2 -0
- package/lib/ecommerce/sections/featured-products/featured-products.component.d.ts +6 -1
- package/lib/ecommerce/sections/featured-products/featured-products.modal.d.ts +6 -2
- package/lib/ecommerce/sections/new-collection/new-collection.component.d.ts +36 -0
- package/lib/ecommerce/sections/new-collection/new-collection.modal.d.ts +23 -0
- package/lib/ecommerce/sections/order-details/order-details.component.d.ts +18 -1
- package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +61 -2
- package/lib/ecommerce/sections/product-desc/product-desc.modal.d.ts +5 -0
- package/lib/ecommerce/sections/product-list/product-list.component.d.ts +110 -17
- package/lib/ecommerce/sections/returns-calculator/returns-calculator.component.d.ts +31 -0
- package/lib/ecommerce/sections/returns-calculator/returns-calculator.model.d.ts +14 -0
- package/lib/ecommerce/sections/scheme-details/scheme-details.component.d.ts +16 -0
- package/lib/ecommerce/sections/scheme-selection/scheme-selection.component.d.ts +18 -0
- package/lib/ecommerce/sections/small-product-listing/small-product-listing.component.d.ts +6 -1
- package/lib/ecommerce/sections/store-list/store-list.component.d.ts +43 -0
- package/lib/ecommerce/sections/store-list/store-list.modal.d.ts +11 -0
- package/lib/ecommerce/sections/store-page/store-page.component.d.ts +27 -0
- package/lib/ecommerce/sections/store-page/store-page.model.d.ts +11 -0
- package/lib/ecommerce/sections/user-profile/user-profile.component.d.ts +10 -1
- package/lib/ecommerce/sections/whislist/whislist.component.d.ts +4 -1
- package/lib/ecommerce/styles/Collection.modal.d.ts +1 -0
- package/lib/ecommerce/styles/product.modal.d.ts +19 -0
- package/lib/ecommerce/styles/user.modal.d.ts +3 -0
- package/lib/elements/address-list/address-list.component.d.ts +27 -0
- package/lib/elements/below-image-card/below-image-card.component.d.ts +3 -0
- package/lib/elements/covering-image-card/covering-image-card.component.d.ts +3 -0
- package/lib/elements/editor-service.service.d.ts +4 -4
- package/lib/elements/image-editor/image-editor.component.d.ts +29 -3
- package/lib/elements/link-editor/link-editor.component.d.ts +13 -1
- package/lib/elements/list-home-appointment/list-home-appointment.component.d.ts +27 -0
- package/lib/elements/pricing-s1/pricing-s1.component.d.ts +21 -0
- package/lib/elements/schedule-video-call/schedule-video-call.component.d.ts +33 -0
- package/lib/elements/text-editor/text-editor.component.d.ts +3 -0
- package/lib/elements/top-of-image-card/top-of-image-card.component.d.ts +3 -0
- package/lib/sections/appointment-form/appointment-form.component.d.ts +11 -4
- package/lib/sections/banner-carousel/banner-carousel.component.d.ts +1 -1
- package/lib/sections/banner-grid-section/banner-grid-section.component.d.ts +8 -1
- package/lib/sections/carousel-banner/carousel-banner.model.d.ts +1 -0
- package/lib/sections/contact-us/contact-us.component.d.ts +2 -1
- package/lib/sections/contact-us/contact-us.modal.d.ts +5 -1
- package/lib/sections/features-section/features-section.model.d.ts +2 -0
- package/lib/sections/header-section/header-section.component.d.ts +29 -2
- package/lib/sections/header-section/header-section.model.d.ts +14 -2
- package/lib/sections/header-text/header-text.model.d.ts +2 -1
- package/lib/sections/image-carousel-section/image-carousel-section.component.d.ts +2 -1
- package/lib/sections/image-grid-section/image-grid-section.component.d.ts +1 -0
- package/lib/sections/image-grid-section/image-grid-section.model.d.ts +3 -1
- package/lib/sections/image-section/image-section.component.d.ts +2 -1
- package/lib/sections/logo-gallery/logo-gallery.component.d.ts +2 -1
- package/lib/sections/logo-showcase/logo-showcase.component.d.ts +3 -1
- package/lib/sections/logo-showcase/logo-showcase.modal.d.ts +11 -2
- package/lib/sections/moving-text/moving-text.component.d.ts +28 -0
- package/lib/sections/moving-text/moving-text.modal.d.ts +19 -0
- package/lib/sections/new-testimonials/new-testimonials.component.d.ts +2 -1
- package/lib/sections/news-letter-component/news-letter-component.component.d.ts +26 -0
- package/lib/sections/news-letter-component/news-letter.modal.d.ts +19 -0
- package/lib/sections/pricing-section/pricing-section.component.d.ts +2 -0
- package/lib/sections/pricing-section/pricing-section.modal.d.ts +3 -0
- package/lib/sections/process-modern/process-modern.component.d.ts +2 -0
- package/lib/sections/process-section/process-section.component.d.ts +1 -0
- package/lib/sections/process-section/process-section.modal.d.ts +2 -0
- package/lib/sections/service-section/service-section.model.d.ts +5 -1
- package/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.d.ts +1 -0
- package/lib/sections/testimonial-section/testimonial-section.component.d.ts +1 -0
- package/lib/sections/video-section/video-section.component.d.ts +4 -3
- package/lib/sections/video-section/video-section.model.d.ts +1 -1
- package/lib/services/cart.service.d.ts +1 -6
- package/lib/services/events.service.d.ts +2 -6
- package/lib/services/rest.service.d.ts +29 -18
- package/lib/services/storage.service.d.ts +6 -5
- package/lib/styles/index.d.ts +7 -1
- package/lib/styles/style.model.d.ts +15 -1
- package/lib/styles/types.d.ts +10 -2
- package/package.json +1 -1
- package/public-api.d.ts +13 -0
- package/simpo-component-library-3.6.2.tgz +0 -0
- package/src/lib/styles/global-styles.css +251 -191
- package/simpo-component-library-3.5.52.tgz +0 -0
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { Inject, Injectable } from "@angular/core";
|
|
2
2
|
import { map } from "rxjs";
|
|
3
|
-
import { Category, Product, Collection } from "../../public-api";
|
|
4
|
-
import { PincodeLocation } from "../ecommerce/styles/PincodeLocation.model";
|
|
5
3
|
import { API_URL, CMIS_URL, ECOMMERCE_URL } from '../tokens/api-token';
|
|
4
|
+
import { Category } from "../ecommerce/styles/category.modal";
|
|
5
|
+
import { Product } from "../ecommerce/styles/product.modal";
|
|
6
|
+
import { Collection } from "../ecommerce/styles/Collection.modal";
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/common/http";
|
|
8
|
-
import * as i2 from "../../public-api";
|
|
9
9
|
export class RestService {
|
|
10
|
-
constructor(http,
|
|
10
|
+
constructor(http,
|
|
11
|
+
// private readonly eventService: EventsService,
|
|
12
|
+
BASE_URL, ECOMMERCE_URL, CMIS_URL) {
|
|
11
13
|
this.http = http;
|
|
12
|
-
this.eventService = eventService;
|
|
13
14
|
this.BASE_URL = BASE_URL;
|
|
14
15
|
this.ECOMMERCE_URL = ECOMMERCE_URL;
|
|
15
16
|
this.CMIS_URL = CMIS_URL;
|
|
@@ -20,20 +21,21 @@ export class RestService {
|
|
|
20
21
|
// private CMIS_URL: string = "https://stageapi-cmis.tejsoft.com/"; //stage
|
|
21
22
|
this.environmentTypeSubscriber = null;
|
|
22
23
|
this.isJewellery = false;
|
|
23
|
-
this.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
24
|
+
this.orraBaseUrl = 'https://stageapi-orra.letsmobility.com/';
|
|
25
|
+
// this.environmentTypeSubscriber = this.eventService.environmentType.subscribe((response) => {
|
|
26
|
+
// if (response == "DEV") {
|
|
27
|
+
// this.BASE_URL = "https://dev-api.simpo.ai/";
|
|
28
|
+
// this.ECOMMERCE_URL = "https://dev-ecommerce.simpo.ai/";
|
|
29
|
+
// }
|
|
30
|
+
// else if (response == "STAGE") {
|
|
31
|
+
// this.ECOMMERCE_URL = "https://stage-ecommerce.simpo.ai/";
|
|
32
|
+
// this.BASE_URL = "https://state-api.simpo.ai/";
|
|
33
|
+
// }
|
|
34
|
+
// else {
|
|
35
|
+
// this.BASE_URL = "https://api-cmis.tejsoft.com/";
|
|
36
|
+
// this.ECOMMERCE_URL = "https://prod-ecommerce.simpo.ai/";
|
|
37
|
+
// }
|
|
38
|
+
// })
|
|
37
39
|
}
|
|
38
40
|
getBusinessDetails() {
|
|
39
41
|
// this.businessDetails = localStorage.getItem("bDetails");
|
|
@@ -64,6 +66,12 @@ export class RestService {
|
|
|
64
66
|
getProductBySelectedCategory(categoryId) {
|
|
65
67
|
return this.http.get(this.BASE_URL + `ecommerce/product/${categoryId}`);
|
|
66
68
|
}
|
|
69
|
+
getAllSchemes(userCode) {
|
|
70
|
+
return this.http.get(this.orraBaseUrl + `passBook/summary/${userCode}`);
|
|
71
|
+
}
|
|
72
|
+
getAllRedemptionSchemes() {
|
|
73
|
+
return this.http.get(this.orraBaseUrl + `passBook/redemption/amount/check?userCode=C_000313885`);
|
|
74
|
+
}
|
|
67
75
|
getProductDetails(productId = null) {
|
|
68
76
|
this.getBusinessDetails();
|
|
69
77
|
const payload = {
|
|
@@ -98,20 +106,22 @@ export class RestService {
|
|
|
98
106
|
}
|
|
99
107
|
getFilteredProduct(collectionIds, categoryIds, searchText, minPrice, maxPrice, sortBy, pageNo, size) {
|
|
100
108
|
this.getBusinessDetails();
|
|
101
|
-
|
|
109
|
+
let payload = {
|
|
102
110
|
"businessId": localStorage.getItem("bId") ?? localStorage.getItem("businessId"),
|
|
103
111
|
"subIndustryId": localStorage.getItem("subIndustryId"),
|
|
104
112
|
"collectionId": collectionIds,
|
|
105
113
|
"categoryId": categoryIds,
|
|
106
114
|
"searchText": searchText,
|
|
107
|
-
"minPrice": minPrice ?? 0,
|
|
108
|
-
"maxPrice": maxPrice ?? 0,
|
|
109
115
|
"sortBy": sortBy,
|
|
110
116
|
"pageNo": pageNo,
|
|
111
117
|
"pageSize": size,
|
|
112
118
|
"userId": localStorage.getItem("perId") ?? null,
|
|
113
119
|
request: "USER"
|
|
114
120
|
};
|
|
121
|
+
if (minPrice > 0)
|
|
122
|
+
payload["minPrice"] = minPrice;
|
|
123
|
+
if (maxPrice > 0)
|
|
124
|
+
payload["maxPrice"] = maxPrice;
|
|
115
125
|
return this.http.put(this.BASE_URL + `ecommerce/product/item/search?isJewellery=${this.isJewellery}`, payload).pipe(map((response) => {
|
|
116
126
|
return {
|
|
117
127
|
count: response.data.count,
|
|
@@ -176,18 +186,12 @@ export class RestService {
|
|
|
176
186
|
applicableDiscountList(cartId) {
|
|
177
187
|
return this.http.get(this.BASE_URL + `ecommerce/order/discount-coupon/${cartId}/applicability/list`);
|
|
178
188
|
}
|
|
179
|
-
removeDiscountFromCart(cartId) {
|
|
180
|
-
return this.http.put(this.BASE_URL + `ecommerce/order/discount-coupon/${cartId}/cart/remove`, null);
|
|
181
|
-
}
|
|
182
189
|
addItemToDB(userCart) {
|
|
183
190
|
return this.http.post(this.BASE_URL + `ecommerce/order/cart`, userCart);
|
|
184
191
|
}
|
|
185
192
|
getUserItems(userId, cartType) {
|
|
186
193
|
return this.http.get(this.BASE_URL + `ecommerce/order/cart?userId=${userId}&cartType=${cartType}`);
|
|
187
194
|
}
|
|
188
|
-
placeOrder(cartId) {
|
|
189
|
-
return this.http.post(this.BASE_URL + `ecommerce/order/order?cartId=${cartId}`, null);
|
|
190
|
-
}
|
|
191
195
|
getUserInfo(userId) {
|
|
192
196
|
return this.http.put(this.BASE_URL + `ecommerce/user/get/user?userId=${userId}`, null);
|
|
193
197
|
}
|
|
@@ -200,11 +204,6 @@ export class RestService {
|
|
|
200
204
|
getUserOrders(payload) {
|
|
201
205
|
return this.http.put(this.BASE_URL + `ecommerce/order/user/order`, payload);
|
|
202
206
|
}
|
|
203
|
-
toggleItemCartToFav() {
|
|
204
|
-
}
|
|
205
|
-
moveWishlistToCart() {
|
|
206
|
-
return this.http.get(this.BASE_URL + `ecommerce/update/cart`);
|
|
207
|
-
}
|
|
208
207
|
getUserWishlist(userId) {
|
|
209
208
|
return this.http.get(this.BASE_URL + `ecommerce/order/cart?userId=${userId}&cartType=WISHLIST`);
|
|
210
209
|
}
|
|
@@ -215,9 +214,6 @@ export class RestService {
|
|
|
215
214
|
createPaymentToken(payload) {
|
|
216
215
|
return this.http.post(this.ECOMMERCE_URL + `payment/order`, payload);
|
|
217
216
|
}
|
|
218
|
-
refundPayment(orderId, payload) {
|
|
219
|
-
return this.http.post(this.BASE_URL + `ecommerce/payment/refund/bank?orderId=${orderId}`, payload);
|
|
220
|
-
}
|
|
221
217
|
checkPaymentStatus(payload) {
|
|
222
218
|
return this.http.post(this.ECOMMERCE_URL + `payment/status`, payload);
|
|
223
219
|
}
|
|
@@ -225,14 +221,6 @@ export class RestService {
|
|
|
225
221
|
return this.http.post(this.BASE_URL + `ecommerce/user/recentView?userId=${userId}`, null).pipe(map((response) => response.data?.map((product) => new Product(product))));
|
|
226
222
|
;
|
|
227
223
|
}
|
|
228
|
-
getLocationByPinCode(pincode) {
|
|
229
|
-
return this.http.get(`https://api.postalpincode.in/pincode/${pincode}`).pipe(map((locations) => {
|
|
230
|
-
return new PincodeLocation(locations);
|
|
231
|
-
}));
|
|
232
|
-
}
|
|
233
|
-
getLocationByPinCodeInternational(pincode) {
|
|
234
|
-
return this.http.get(`https://api.zippopotam.us/in/${pincode}`);
|
|
235
|
-
}
|
|
236
224
|
sendSignupOTP(payload) {
|
|
237
225
|
return this.http.post(this.BASE_URL + `ecommerce/user/signup/otp/trigger`, payload);
|
|
238
226
|
}
|
|
@@ -247,22 +235,12 @@ export class RestService {
|
|
|
247
235
|
createAppointment(data) {
|
|
248
236
|
return this.http.post(this.BASE_URL + `crm/appointment/add`, data);
|
|
249
237
|
}
|
|
250
|
-
getAllServices(businessId, size, page) {
|
|
251
|
-
return this.http.get(this.BASE_URL + `crm/appointment/config/service?businessId=${businessId}&size=${size}&page=${page}`);
|
|
252
|
-
}
|
|
253
238
|
getAllLocation(businessId, size, page) {
|
|
254
239
|
return this.http.get(this.BASE_URL + `crm/appointment/config/location?businessId=${businessId}&size=${size}&page=${page}`);
|
|
255
240
|
}
|
|
256
|
-
getAllStaff(businessId, size, page, locationId, serviceId) {
|
|
257
|
-
return this.http.get(this.BASE_URL + `crm/appointment/config/location?businessId=${businessId}&size=${size}&page=${page}&locationId=${locationId}&serviceId=${serviceId}`);
|
|
258
|
-
}
|
|
259
241
|
getAllTimeSlots(locationId, date) {
|
|
260
242
|
return this.http.get(this.BASE_URL + `crm/appointment/config/timeslots?locationId=${locationId}&date=${date}`);
|
|
261
243
|
}
|
|
262
|
-
getBlogByBusinessId() {
|
|
263
|
-
const businessId = localStorage.getItem("bId") ?? localStorage.getItem("businessId") ?? "";
|
|
264
|
-
return this.http.get(this.BASE_URL + `business/blog/by/business?businessId=${businessId}`);
|
|
265
|
-
}
|
|
266
244
|
getAllService(businessId, size, page, locationId) {
|
|
267
245
|
if (!locationId) {
|
|
268
246
|
return this.http.get(this.BASE_URL + `crm/appointment/config/service?businessId=${businessId}&size=${size}&page=${page}`);
|
|
@@ -272,7 +250,12 @@ export class RestService {
|
|
|
272
250
|
}
|
|
273
251
|
}
|
|
274
252
|
getAllStaffByLocation(businessId, size, page, locationId, serviceId) {
|
|
275
|
-
|
|
253
|
+
if (!serviceId) {
|
|
254
|
+
return this.http.get(this.BASE_URL + `crm/appointment/config/staff?businessId=${businessId}&size=${size}&page=${page}&locationId=${locationId}`);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
return this.http.get(this.BASE_URL + `crm/appointment/config/staff?businessId=${businessId}&size=${size}&page=${page}&locationId=${locationId}&serviceId=${serviceId}`);
|
|
258
|
+
}
|
|
276
259
|
}
|
|
277
260
|
getAvailableSlots(data) {
|
|
278
261
|
return this.http.put(this.BASE_URL + `crm/appointment/config/available/timeslots`, data);
|
|
@@ -283,18 +266,12 @@ export class RestService {
|
|
|
283
266
|
getActiveSubscriptionForFeeStructure(businessId, gradeId) {
|
|
284
267
|
return this.http.get(this.CMIS_URL + `crm/subscription/plan/list?businessId=${businessId}&gradeId=${gradeId}&status=true&isDeleted=false`);
|
|
285
268
|
}
|
|
286
|
-
createRegistration(payload) {
|
|
287
|
-
return this.http.post(this.CMIS_URL + `crm/registration/?enquiryId=${payload?.enquiryId || ''}`, payload);
|
|
288
|
-
}
|
|
289
269
|
createAdmission(payload) {
|
|
290
270
|
return this.http.post(this.CMIS_URL + `crm/registration/admission?registrationId=${payload?.registrationId || ''}`, payload);
|
|
291
271
|
}
|
|
292
272
|
createPaymentLink(data) {
|
|
293
273
|
return this.http.post(this.CMIS_URL + `crm/registration/admission/v2/payment?isFromWeb=true`, data);
|
|
294
274
|
}
|
|
295
|
-
createPaymentForAdmission(payload) {
|
|
296
|
-
return this.http.post(this.CMIS_URL + `crm/registration/admission/payment`, payload);
|
|
297
|
-
}
|
|
298
275
|
createRegistrationForPayment(payload) {
|
|
299
276
|
return this.http.post(this.CMIS_URL + `crm/registration/registration/payment`, payload);
|
|
300
277
|
}
|
|
@@ -321,12 +298,20 @@ export class RestService {
|
|
|
321
298
|
return this.http.get(this.BASE_URL + `admin/master/template/category/all`);
|
|
322
299
|
}
|
|
323
300
|
getTemplate() {
|
|
324
|
-
let templateId = JSON.parse(JSON.
|
|
325
|
-
|
|
301
|
+
let templateId = JSON.parse(JSON.stringify(localStorage.getItem('bDetails'))) ?
|
|
302
|
+
JSON.parse(JSON.parse(JSON.stringify(localStorage.getItem('bDetails'))))?.templateId :
|
|
303
|
+
JSON.parse(localStorage.getItem('websiteData') ?? '{}')?.homePageId;
|
|
304
|
+
return this.http.get(this.BASE_URL + `business/v3/website/${templateId}/pages/list`);
|
|
326
305
|
}
|
|
327
|
-
|
|
306
|
+
getEcommerceConfigs() {
|
|
328
307
|
const businessId = localStorage.getItem('businessId');
|
|
329
|
-
return this.http.get(this.BASE_URL + `
|
|
308
|
+
return this.http.get(this.BASE_URL + `ecommerce/ecommerce/config/all?businessId=${businessId}`);
|
|
309
|
+
}
|
|
310
|
+
postVideoCallDetails(payload) {
|
|
311
|
+
return this.http.post(this.BASE_URL + `ecommerce/ecommerce/config/video-call`, payload);
|
|
312
|
+
}
|
|
313
|
+
getStoreLocatorDetails(pincode) {
|
|
314
|
+
return this.http.get(this.BASE_URL + `ecommerce/store/nearby?pincode=${pincode}&businessId=${localStorage.getItem('businessId')}`);
|
|
330
315
|
}
|
|
331
316
|
saveImagesToBusinessLibrary(mediaRequest) {
|
|
332
317
|
return this.http.post(this.BASE_URL + `admin/library/image/library/save`, mediaRequest);
|
|
@@ -334,6 +319,78 @@ export class RestService {
|
|
|
334
319
|
regenerateText(request) {
|
|
335
320
|
return this.http.post(this.BASE_URL + `admin/content/suggest/v2/website/individual`, request);
|
|
336
321
|
}
|
|
322
|
+
getCategoriesHeaderData() {
|
|
323
|
+
return this.http.get(this.BASE_URL + `ecommerce/product/1f05f085-d865-6bc5-82b4-0570667d6f5e/headers`);
|
|
324
|
+
}
|
|
325
|
+
getAllStores(payload) {
|
|
326
|
+
let url = '';
|
|
327
|
+
if (payload?.pincode && payload.pincode.toString().length == 6) {
|
|
328
|
+
url = url + ` &pincode=${payload.pincode}`;
|
|
329
|
+
}
|
|
330
|
+
return this.http.put(this.BASE_URL + `ecommerce/store/get/v2?businessId=${payload.businessId}${url}`, '');
|
|
331
|
+
}
|
|
332
|
+
getStoreById(storeId) {
|
|
333
|
+
let payload = {
|
|
334
|
+
storeId: storeId,
|
|
335
|
+
businessId: localStorage.getItem('businessId') ?? "",
|
|
336
|
+
pageNo: 0,
|
|
337
|
+
pageSize: 1
|
|
338
|
+
};
|
|
339
|
+
return this.http.put(this.BASE_URL + `ecommerce/store/get`, payload);
|
|
340
|
+
}
|
|
341
|
+
postNewsLetter(email) {
|
|
342
|
+
return this.http.post(this.BASE_URL + `ecommerce/config/registered/newsletter?email=${email}&businessId=${localStorage.getItem('businessId')}`, '');
|
|
343
|
+
}
|
|
344
|
+
addReviewToProduct(payload) {
|
|
345
|
+
return this.http.post(this.BASE_URL + `ecommerce/user/add/review?orderId=${payload.orderId}`, payload);
|
|
346
|
+
}
|
|
347
|
+
getAllStoresOrra(pageNo, size) {
|
|
348
|
+
return this.http.get(`https://stageapi-orra.letsmobility.com/store?pageNo=${pageNo}&size=${size}`);
|
|
349
|
+
}
|
|
350
|
+
getstaffByStoreId(storeId) {
|
|
351
|
+
return this.http.get(`https://stageapi-orra.letsmobility.com/staff/get/${storeId}`);
|
|
352
|
+
}
|
|
353
|
+
getAllScheme() {
|
|
354
|
+
return this.http.get(`https://stageapi-orra.letsmobility.com/scheme/getAllSchemes/dashboard`);
|
|
355
|
+
}
|
|
356
|
+
getAllState() {
|
|
357
|
+
return this.http.get(`https://stageapi-orra.letsmobility.com/state/getAll`);
|
|
358
|
+
}
|
|
359
|
+
getCityByStateBypaginated(stateId, pageNo, size) {
|
|
360
|
+
return this.http.get(`https://stageapi-orra.letsmobility.com/city/getByState?stateId=${stateId}&pageNo=${pageNo}&size=${size}`);
|
|
361
|
+
}
|
|
362
|
+
getStoreBySlab(data) {
|
|
363
|
+
return this.http.put(`https://stageapi-orra.letsmobility.com/store/getSlab`, data);
|
|
364
|
+
}
|
|
365
|
+
addTrialItem(request) {
|
|
366
|
+
return this.http.put(this.BASE_URL + `ecommerce/order/cart/v2`, request);
|
|
367
|
+
}
|
|
368
|
+
checkItemAlreadyAdded(request) {
|
|
369
|
+
return this.http.put(this.BASE_URL + `ecommerce/order/cart/check/item`, request);
|
|
370
|
+
}
|
|
371
|
+
deleteItemFromCart(request) {
|
|
372
|
+
return this.http.put(this.BASE_URL + `ecommerce/cart/remove`, request);
|
|
373
|
+
}
|
|
374
|
+
bookAppointment(request) {
|
|
375
|
+
return this.http.post(this.BASE_URL + `ecommerce/user/try-home`, request);
|
|
376
|
+
}
|
|
377
|
+
createEnrollmentScheme(enrollement) {
|
|
378
|
+
return this.http.post(` https://stageapi-orra.letsmobility.com/enrollment/create/new/temp?manualPay=true&isWebRequest=true
|
|
379
|
+
`, enrollement);
|
|
380
|
+
}
|
|
381
|
+
getHomeAppointmentList(userId) {
|
|
382
|
+
const businessId = localStorage.getItem('bId');
|
|
383
|
+
return this.http.get(this.BASE_URL + `ecommerce/user/try-home?userId=${userId}&businessId=${businessId}`);
|
|
384
|
+
}
|
|
385
|
+
getAllOrraScheme() {
|
|
386
|
+
return this.http.get('https://stageapi-orra.letsmobility.com/passBook/redemption/amount/check?userCode=C_000313885');
|
|
387
|
+
}
|
|
388
|
+
redeemScheme(scheme, cartId, action) {
|
|
389
|
+
return this.http.post(this.BASE_URL + `ecommerce/order/cart/redemption?cartId=${cartId}&removeScheme=${action}`, scheme);
|
|
390
|
+
}
|
|
391
|
+
getReviewsByProductId(productId, pageNumber) {
|
|
392
|
+
return this.http.put(this.BASE_URL + `ecommerce/user/filter/reviews?productId=${productId}&pageNumber=${pageNumber}&pageSize=3`, {});
|
|
393
|
+
}
|
|
337
394
|
getFieldsToDisplay(fieldsList) {
|
|
338
395
|
let map = {};
|
|
339
396
|
for (let field of fieldsList) {
|
|
@@ -356,7 +413,7 @@ export class RestService {
|
|
|
356
413
|
}
|
|
357
414
|
return map;
|
|
358
415
|
}
|
|
359
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestService, deps: [{ token: i1.HttpClient }, { token:
|
|
416
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestService, deps: [{ token: i1.HttpClient }, { token: API_URL }, { token: ECOMMERCE_URL }, { token: CMIS_URL }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
360
417
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestService, providedIn: 'root' }); }
|
|
361
418
|
}
|
|
362
419
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestService, decorators: [{
|
|
@@ -364,7 +421,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
364
421
|
args: [{
|
|
365
422
|
providedIn: 'root',
|
|
366
423
|
}]
|
|
367
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type:
|
|
424
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
368
425
|
type: Inject,
|
|
369
426
|
args: [API_URL]
|
|
370
427
|
}] }, { type: undefined, decorators: [{
|
|
@@ -374,4 +431,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
374
431
|
type: Inject,
|
|
375
432
|
args: [CMIS_URL]
|
|
376
433
|
}] }] });
|
|
377
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBd0MsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBaUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSWhGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUt2RSxNQUFNLE9BQU8sV0FBVztJQVl0QixZQUNtQixJQUFnQixFQUNoQixZQUEyQixFQUNuQixRQUFnQixFQUNWLGFBQXFCLEVBQzFCLFFBQWdCO1FBSnpCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQWU7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNWLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFmNUMsMERBQTBEO1FBQzFELHFFQUFxRTtRQUNyRSwyRUFBMkU7UUFDM0UsZ0VBQWdFO1FBQ2hFLDJFQUEyRTtRQUNuRSw4QkFBeUIsR0FBd0IsSUFBSSxDQUFDO1FBRzlELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBUzNCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN4RixJQUFJLFFBQVEsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFD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QUFDLGFBQWEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7Z0JBQzlDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO2dCQUVoRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDbkQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzsrR0E3Y1UsV0FBVyx5RUFlWixPQUFPLGFBQ1AsYUFBYSxhQUNiLFFBQVE7bUhBakJQLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBZ0JJLE1BQU07MkJBQUMsT0FBTzs7MEJBQ2QsTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyLCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQ2F0ZWdvcnksIEV2ZW50c1NlcnZpY2UsIFByb2R1Y3QsIENvbGxlY3Rpb24gfSBmcm9tIFwiLi4vLi4vcHVibGljLWFwaVwiO1xuaW1wb3J0IHsgUmV2aWV3IH0gZnJvbSBcIi4uL2Vjb21tZXJjZS9zdHlsZXMvcmV2aWV3Lm1vZGFsXCI7XG5pbXBvcnQgeyBEZXZpY2VJbmZvIH0gZnJvbSBcIi4uL2Vjb21tZXJjZS9zdHlsZXMvdXNlci5tb2RhbFwiO1xuaW1wb3J0IHsgUGluQ29kZUxvY2F0aW9uSW50ZXIgfSBmcm9tIFwiLi4vZWNvbW1lcmNlL3N0eWxlcy9QaW5jb2RlTG9jYXRpb25JbnRlci5tb2RlbFwiO1xuaW1wb3J0IHsgUGluY29kZUxvY2F0aW9uIH0gZnJvbSBcIi4uL2Vjb21tZXJjZS9zdHlsZXMvUGluY29kZUxvY2F0aW9uLm1vZGVsXCI7XG5pbXBvcnQgeyBBUElfVVJMLCBDTUlTX1VSTCwgRUNPTU1FUkNFX1VSTCB9IGZyb20gJy4uL3Rva2Vucy9hcGktdG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVzdFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8vIHByaXZhdGUgQkFTRV9VUkw6IHN0cmluZyA9IFwiaHR0cHM6Ly9kZXYtYXBpLnNpbXBvLmFpL1wiO1xuICAvLyBwcml2YXRlIEVDT01NRVJDRV9VUkw6IHN0cmluZyA9IFwiaHR0cHM6Ly9kZXYtZWNvbW1lcmNlLnNpbXBvLmFpL1wiO1xuICAvLyBwcml2YXRlIENNSVNfVVJMOiBzdHJpbmcgPSBcImh0dHBzOi8vYXBpLWNtaXMudGVqc29mdC5jb20vXCI7IC8vcHJvZHVjdGlvblxuICAvLyBwcml2YXRlIENNSVNfVVJMOiBzdHJpbmcgPSBcImh0dHBzOi8vZGV2LWFwaS5zaW1wby5haS9cIjsgLy9kZXZcbiAgLy8gcHJpdmF0ZSBDTUlTX1VSTDogc3RyaW5nID0gXCJodHRwczovL3N0YWdlYXBpLWNtaXMudGVqc29mdC5jb20vXCI7IC8vc3RhZ2VcbiAgcHJpdmF0ZSBlbnZpcm9ubWVudFR5cGVTdWJzY3JpYmVyOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgYnVzaW5lc3NEZXRhaWxzOiBhbnkgO1xuICBzdWJJbmR1c3RyeU5hbWU6IGFueSA7XG4gIGlzSmV3ZWxsZXJ5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIEBJbmplY3QoQVBJX1VSTCkgcHJpdmF0ZSBCQVNFX1VSTDogc3RyaW5nLFxuICAgIEBJbmplY3QoRUNPTU1FUkNFX1VSTCkgcHJpdmF0ZSBFQ09NTUVSQ0VfVVJMOiBzdHJpbmcsXG4gICAgQEluamVjdChDTUlTX1VSTCkgcHJpdmF0ZSBDTUlTX1VSTDogc3RyaW5nXG4gICkge1xuICAgIHRoaXMuZW52aXJvbm1lbnRUeXBlU3Vic2NyaWJlciA9IHRoaXMuZXZlbnRTZXJ2aWNlLmVudmlyb25tZW50VHlwZS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAocmVzcG9uc2UgPT0gXCJERVZcIikge1xuICAgICAgICB0aGlzLkJBU0VfVVJMID0gXCJodHRwczovL2Rldi1hcGkuc2ltcG8uYWkvXCI7XG4gICAgICAgIHRoaXMuRUNPTU1FUkNFX1VSTCA9IFwiaHR0cHM6Ly9kZXYtZWNvbW1lcmNlLnNpbXBvLmFpL1wiO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAocmVzcG9uc2UgPT0gXCJTVEFHRVwiKSB7XG4gICAgICAgIHRoaXMuRUNPTU1FUkNFX1VSTCA9IFwiaHR0cHM6Ly9zdGFnZS1lY29tbWVyY2Uuc2ltcG8uYWkvXCI7XG4gICAgICAgIHRoaXMuQkFTRV9VUkwgPSBcImh0dHBzOi8vc3RhdGUtYXBpLnNpbXBvLmFpL1wiO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLWNtaXMudGVqc29mdC5jb20vXCI7XG4gICAgICAgIHRoaXMuRUNPTU1FUkNFX1VSTCA9IFwiaHR0cHM6Ly9wcm9kLWVjb21tZXJjZS5zaW1wby5haS9cIjtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gXG4gIGdldEJ1c2luZXNzRGV0YWlscygpIHtcbiAgLy8gICB0aGlzLmJ1c2luZXNzRGV0YWlscyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYkRldGFpbHNcIik7XG4gIC8vICBpZih0aGlzLmJ1c2luZXNzRGV0YWlscyAhPSBudWxsKSB7XG4gIC8vICAgICB0aGlzLmJ1c2luZXNzRGV0YWlscyA9IEpTT04ucGFyc2UodGhpcy5idXNpbmVzc0RldGFpbHMpO1xuICAvLyAgICAgdGhpcy5zdWJJbmR1c3RyeU5hbWUgPSB0aGlzLmJ1c2luZXNzRGV0YWlscy5zdWJJbmR1c3RyeU5hbWU7XG4gIC8vICAgICB0aGlzLmlzSmV3ZWxsZXJ5ID0gIHRoaXMuc3ViSW5kdXN0cnlOYW1lID09ICdFY29tbWVyY2UgSmV3ZWxsZXJ5JyA/IHRydWUgOiBmYWxzZTtcbiAgLy8gICB9XG4gIHRoaXMuc3ViSW5kdXN0cnlOYW1lID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N1YkluZHVzdHJ5TmFtZScpO1xuICAgaWYodGhpcy5zdWJJbmR1c3RyeU5hbWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5pc0pld2VsbGVyeSA9ICB0aGlzLnN1YkluZHVzdHJ5TmFtZSA9PSAnRWNvbW1lcmNlIEpld2VsbGVyeScgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuICBcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbnZpcm9ubWVudFR5cGVTdWJzY3JpYmVyKVxuICAgICAgdGhpcy5lbnZpcm9ubWVudFR5cGVTdWJzY3JpYmVyPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0RmVhdHVyZWRQcm9kdWN0KGNvbGxlY3Rpb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIHRoaXMuZ2V0QnVzaW5lc3NEZXRhaWxzKCk7XG4gICAgbGV0IHN1YkluZHVzdHJ5SWQ6IHN0cmluZyB8IG51bGwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInN1YkluZHVzdHJ5SWRcIik7XG4gICAgaWYgKCFzdWJJbmR1c3RyeUlkKVxuICAgICAgc3ViSW5kdXN0cnlJZCA9IFwiXCI7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvcHJvZHVjdC9jb2xsZWN0aW9uL2lkP2NvbGxlY3Rpb25JZD0ke2NvbGxlY3Rpb25JZCB8fCAnJ30maXNKZXdlbGxlcnk9JHt0aGlzLmlzSmV3ZWxsZXJ5fWApLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5kYXRhPy5tYXAoKHByb2R1Y3Q6IGFueSkgPT4gbmV3IFByb2R1Y3QocHJvZHVjdCkpKSk7XG4gIH1cbiAgZ2V0Q2F0ZWdvcmllc0J5Q29sbGVjdGlvbklkKGNvbGxlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvaW52ZW50b3J5L2NhdGVnb3J5L2NvbGxlY3Rpb25JZD9jb2xsZWN0aW9uSWQ9JHtjb2xsZWN0aW9uSWR9YCkucGlwZShtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlLmRhdGE/Lm1hcCgoY2F0ZWdvcnk6IGFueSkgPT4gbmV3IENhdGVnb3J5KGNhdGVnb3J5KSkpKTtcbiAgfVxuXG4gIGdldFByb2R1Y3RCeVNlbGVjdGVkQ2F0ZWdvcnkoY2F0ZWdvcnlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICB0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9wcm9kdWN0LyR7Y2F0ZWdvcnlJZH1gXG4gICAgKVxuICB9XG5cbiAgZ2V0UHJvZHVjdERldGFpbHMocHJvZHVjdElkOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIHRoaXMuZ2V0QnVzaW5lc3NEZXRhaWxzKCk7XG4gICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xuICAgICAgcGFnZU5vOiAwLFxuICAgICAgcGFnZVNpemU6IDEsXG4gICAgICBpdGVtSWQ6IHByb2R1Y3RJZCxcbiAgICAgIHN1YkluZHVzdHJ5SWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwic3ViSW5kdXN0cnlJZFwiKSxcbiAgICAgIHVzZXJJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJwZXJJZFwiKSA/PyBudWxsLFxuICAgICAgcmVxdWVzdDogXCJVU0VSXCJcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvcHJvZHVjdC9pdGVtL3NlYXJjaD9pc0pld2VsbGVyeT0ke3RoaXMuaXNKZXdlbGxlcnl9YCwgcGF5bG9hZCkucGlwZShtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlLmRhdGEuZGF0YS5tYXAoKHByb2R1Y3Q6IGFueSkgPT4gbmV3IFByb2R1Y3QocHJvZHVjdCkpKSk7XG4gIH1cbiAgZ2V0Q29sbGVjdGlvbkJ5SWRzKGNvbGxlY3Rpb25JZHM6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGlkczogY29sbGVjdGlvbklkc1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9pbnZlbnRvcnkvY29sbGVjdGlvbi9saXN0L2FsbGAsIHBheWxvYWQpLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5kYXRhPy5tYXAoKGNvbGxlY3Rpb246IGFueSkgPT4gbmV3IENvbGxlY3Rpb24oY29sbGVjdGlvbikpKSk7XG4gIH1cblxuICBnZXRBbGxDYXRlZ29yaWVzKCkge1xuXG4gICAgY29uc3QgYnVzaW5lc3NJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJidXNpbmVzc0lkXCIpID8/IFwiXCI7XG4gICAgY29uc3Qgc3ViSW5kdXN0cnlJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJzdWJJbmR1c3RyeUlkXCIpID8/IFwiXCI7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvaW52ZW50b3J5L2ZlYXR1cmVkP2J1c2luZXNzSWQ9JHtidXNpbmVzc0lkfSZzdWJJZD0ke3N1YkluZHVzdHJ5SWR9YCkucGlwZShtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlLmRhdGE/Lm1hcCgoY2F0ZWdvcnk6IGFueSkgPT4gbmV3IENhdGVnb3J5KGNhdGVnb3J5KSkpKTtcbiAgfVxuICBnZXRBbGxDb2xsZWN0aW9ucygpIHtcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XG4gICAgICBwYWdlTm86IDAsXG4gICAgICBwYWdlU2l6ZTogMTAsXG4gICAgICByZXF1ZXN0OiBcIlVTRVJcIixcbiAgICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgJ2Vjb21tZXJjZS9pbnZlbnRvcnkvZ2V0L2NvbGxlY3Rpb24nLCBwYXlsb2FkKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UuZGF0YS5kYXRhPy5tYXAoKGNvbGxlY3Rpb246IGFueSkgPT4gbmV3IENvbGxlY3Rpb24oY29sbGVjdGlvbikpKSk7XG4gIH1cblxuICBnZXRGaWx0ZXJlZFByb2R1Y3QoY29sbGVjdGlvbklkczogc3RyaW5nW10sIGNhdGVnb3J5SWRzOiBzdHJpbmdbXSwgc2VhcmNoVGV4dDogc3RyaW5nLCBtaW5QcmljZTogbnVtYmVyLCBtYXhQcmljZTogbnVtYmVyLCBzb3J0Qnk6IHN0cmluZywgcGFnZU5vOiBudW1iZXIsIHNpemU6IG51bWJlcikge1xuICAgIHRoaXMuZ2V0QnVzaW5lc3NEZXRhaWxzKCk7XG4gICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xuICAgICAgXCJidXNpbmVzc0lkXCI6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSxcbiAgICAgIFwic3ViSW5kdXN0cnlJZFwiOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInN1YkluZHVzdHJ5SWRcIiksXG4gICAgICBcImNvbGxlY3Rpb25JZFwiOiBjb2xsZWN0aW9uSWRzLFxuICAgICAgXCJjYXRlZ29yeUlkXCI6IGNhdGVnb3J5SWRzLFxuICAgICAgXCJzZWFyY2hUZXh0XCI6IHNlYXJjaFRleHQsXG4gICAgICBcIm1pblByaWNlXCI6IG1pblByaWNlID8/IDAsXG4gICAgICBcIm1heFByaWNlXCI6IG1heFByaWNlID8/IDAsXG4gICAgICBcInNvcnRCeVwiOiBzb3J0QnksXG4gICAgICBcInBhZ2VOb1wiOiBwYWdlTm8sXG4gICAgICBcInBhZ2VTaXplXCI6IHNpemUsXG4gICAgICBcInVzZXJJZFwiOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBlcklkXCIpID8/IG51bGwsXG4gICAgICByZXF1ZXN0OiBcIlVTRVJcIlxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9wcm9kdWN0L2l0ZW0vc2VhcmNoP2lzSmV3ZWxsZXJ5PSR7dGhpcy5pc0pld2VsbGVyeX1gLCBwYXlsb2FkKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY291bnQ6IHJlc3BvbnNlLmRhdGEuY291bnQsXG4gICAgICAgIGRhdGE6IHJlc3BvbnNlLmRhdGEuZGF0YT8ubWFwKChwcm9kdWN0OiBhbnkpID0+IG5ldyBQcm9kdWN0KHByb2R1Y3QpKVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuICBnZXRQcm9kdWN0QnlDYXRlZ29yeUlkKGNhdGVnb3J5SWQ6IHN0cmluZykge1xuICAgIHRoaXMuZ2V0QnVzaW5lc3NEZXRhaWxzKCk7XG4gICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xuICAgICAgXCJidXNpbmVzc0lkXCI6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSxcbiAgICAgIFwiY2F0ZWdvcnlJZFwiOiBbY2F0ZWdvcnlJZF0sXG4gICAgICBcInN1YkluZHVzdHJ5SWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJzdWJJbmR1c3RyeUlkXCIpLFxuICAgICAgXCJwYWdlTm9cIjogMCxcbiAgICAgIFwicGFnZVNpemVcIjogMTAsXG4gICAgICBcInVzZXJJZFwiOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBlcklkXCIpID8/IG51bGwsXG4gICAgICByZXF1ZXN0OiBcIlVTRVJcIlxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9wcm9kdWN0L2l0ZW0vc2VhcmNoP2lzSmV3ZWxsZXJ5PSR7dGhpcy5pc0pld2VsbGVyeX1gLCBwYXlsb2FkKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY291bnQ6IHJlc3BvbnNlLmNvdW50LFxuICAgICAgICBkYXRhOiByZXNwb25zZS5kYXRhLmRhdGE/Lm1hcCgocHJvZHVjdDogYW55KSA9PiBuZXcgUHJvZHVjdChwcm9kdWN0KSlcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cbiAgZ2V0UHJvZHVjdEJ5Q29sbGVjdGlvbklkKGNvbGxlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgdGhpcy5nZXRCdXNpbmVzc0RldGFpbHMoKTtcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XG4gICAgICBcImJ1c2luZXNzSWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJidXNpbmVzc0lkXCIpLFxuICAgICAgXCJjb2xsZWN0aW9uSWRcIjogW2NvbGxlY3Rpb25JZF0sXG4gICAgICBcInN1YkluZHVzdHJ5SWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJzdWJJbmR1c3RyeUlkXCIpLFxuICAgICAgXCJwYWdlTm9cIjogMCxcbiAgICAgIFwicGFnZVNpemVcIjogMTAsXG4gICAgICBcInVzZXJJZFwiOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBlcklkXCIpID8/IG51bGwsXG4gICAgICByZXF1ZXN0OiBcIlVTRVJcIlxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9wcm9kdWN0L2l0ZW0vc2VhcmNoP2lzSmV3ZWxsZXJ5PSR7dGhpcy5pc0pld2VsbGVyeX1gLCBwYXlsb2FkKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY291bnQ6IHJlc3BvbnNlLmNvdW50LFxuICAgICAgICBkYXRhOiByZXNwb25zZS5kYXRhLmRhdGE/Lm1hcCgocHJvZHVjdDogYW55KSA9PiBuZXcgUHJvZHVjdChwcm9kdWN0KSlcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBhZGRSZXZpZXcocGF5bG9hZDogUmV2aWV3KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3VzZXIvYWRkL3Jldmlld2AsIHBheWxvYWQpO1xuICB9XG4gIGdldEFsbFJldmlld3MocHJvZHVjdElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS91c2VyL2ZpbHRlci9yZXZpZXdzP3Byb2R1Y3RJZD0ke3Byb2R1Y3RJZH1gLCBudWxsKTtcbiAgfVxuXG4gIGdlbmVyYXRlT1RQKG1vYmlsZTogc3RyaW5nLCBjb3VudHJ5Q29kZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYnVzaW5lc3NJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJidXNpbmVzc0lkXCIpID8/IFwiXCI7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3VzZXIvb3RwL3RyaWdnZXI/bW9iaWxlPSR7bW9iaWxlfSZjb3VudHJ5Q29kZT0ke2NvdW50cnlDb2RlfSZidXNpbmVzc0lkPSR7YnVzaW5lc3NJZH1gLCBudWxsKTtcbiAgfVxuICB2ZXJpZnlPVFAobW9iaWxlOiBzdHJpbmcsIG90cDogc3RyaW5nLCBkZXZpY2VJbmZvOiBEZXZpY2VJbmZvKSB7XG4gICAgY29uc3QgYnVzaW5lc3NJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJidXNpbmVzc0lkXCIpID8/IFwiXCI7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9hdXRoZW50aWNhdGU/bW9iaWxlPSR7bW9iaWxlfSZvdHA9JHtvdHB9JmJ1c2luZXNzSWQ9JHtidXNpbmVzc0lkfWAsIGRldmljZUluZm8pO1xuICB9XG4gIHJlc2VuZE9UUChtb2JpbGU6IHN0cmluZywgY291bnRyeUNvZGU6IHN0cmluZykge1xuICAgIGNvbnN0IGJ1c2luZXNzSWQ6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSA/PyBcIlwiO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS91c2VyL3Jlc2VuZD9tb2JpbGU9JHttb2JpbGV9JmNvdW50cnlDb2RlPSR7Y291bnRyeUNvZGV9JmJ1c2luZXNzSWQ9JHtidXNpbmVzc0lkfWAsIG51bGwpO1xuICB9XG4gIGFwcGxpY2FibGVEaXNjb3VudExpc3QoY2FydElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci9kaXNjb3VudC1jb3Vwb24vJHtjYXJ0SWR9L2FwcGxpY2FiaWxpdHkvbGlzdGApO1xuICB9XG4gIHJlbW92ZURpc2NvdW50RnJvbUNhcnQoY2FydElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci9kaXNjb3VudC1jb3Vwb24vJHtjYXJ0SWR9L2NhcnQvcmVtb3ZlYCwgbnVsbCk7XG4gIH1cblxuICBhZGRJdGVtVG9EQih1c2VyQ2FydDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL29yZGVyL2NhcnRgLCB1c2VyQ2FydCk7XG4gIH1cbiAgZ2V0VXNlckl0ZW1zKHVzZXJJZDogc3RyaW5nLCBjYXJ0VHlwZTogJ0NBUlQnIHwgJ1dJU0hMSVNUJykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL29yZGVyL2NhcnQ/dXNlcklkPSR7dXNlcklkfSZjYXJ0VHlwZT0ke2NhcnRUeXBlfWApO1xuICB9XG4gIHBsYWNlT3JkZXIoY2FydElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2Uvb3JkZXIvb3JkZXI/Y2FydElkPSR7Y2FydElkfWAsIG51bGwpO1xuICB9XG4gIGdldFVzZXJJbmZvKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9nZXQvdXNlcj91c2VySWQ9JHt1c2VySWR9YCwgbnVsbCk7XG4gIH1cbiAgYWRkVXNlckFkZHJlc3ModXNlcjogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci91cGRhdGUvdXNlcmAsIHVzZXIpO1xuICB9XG4gIHVwZGF0ZVByb2ZpbGUocGF5bG9hZDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci91cGRhdGUvdXNlcmAsIHBheWxvYWQpO1xuICB9XG4gIGdldFVzZXJPcmRlcnMocGF5bG9hZDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2Uvb3JkZXIvdXNlci9vcmRlcmAsIHBheWxvYWQpO1xuICB9XG4gIHRvZ2dsZUl0ZW1DYXJ0VG9GYXYoKSB7XG5cbiAgfVxuICBtb3ZlV2lzaGxpc3RUb0NhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXBkYXRlL2NhcnRgKTtcbiAgfVxuICBnZXRVc2VyV2lzaGxpc3QodXNlcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci9jYXJ0P3VzZXJJZD0ke3VzZXJJZH0mY2FydFR5cGU9V0lTSExJU1RgKVxuICB9XG4gIG1vdmVJdGVtVG9DYXJ0KHVzZXJJZDogc3RyaW5nLCBwYXlsb2FkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci91cGRhdGUvY2FydD91c2VySWQ9JHt1c2VySWR9YCwgcGF5bG9hZCk7XG4gIH1cblxuICAvLyBQYXltZW50XG4gIGNyZWF0ZVBheW1lbnRUb2tlbihwYXlsb2FkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5FQ09NTUVSQ0VfVVJMICsgYHBheW1lbnQvb3JkZXJgLCBwYXlsb2FkKTtcbiAgfVxuICByZWZ1bmRQYXltZW50KG9yZGVySWQ6IHN0cmluZywgcGF5bG9hZDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3BheW1lbnQvcmVmdW5kL2Jhbms/b3JkZXJJZD0ke29yZGVySWR9YCwgcGF5bG9hZCk7XG4gIH1cbiAgY2hlY2tQYXltZW50U3RhdHVzKHBheWxvYWQ6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkVDT01NRVJDRV9VUkwgKyBgcGF5bWVudC9zdGF0dXNgLCBwYXlsb2FkKTtcbiAgfVxuICBnZXRSZWNlbnRWaWV3UHJvZHVjdCh1c2VySWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS91c2VyL3JlY2VudFZpZXc/dXNlcklkPSR7dXNlcklkfWAsIG51bGwpLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5kYXRhPy5tYXAoKHByb2R1Y3Q6IGFueSkgPT4gbmV3IFByb2R1Y3QocHJvZHVjdCkpKSk7O1xuICB9XG5cbiAgZ2V0TG9jYXRpb25CeVBpbkNvZGUocGluY29kZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYGh0dHBzOi8vYXBpLnBvc3RhbHBpbmNvZGUuaW4vcGluY29kZS8ke3BpbmNvZGV9YCkucGlwZShtYXAoKGxvY2F0aW9uczogYW55KSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFBpbmNvZGVMb2NhdGlvbihsb2NhdGlvbnMpO1xuICAgIH0pKVxuICB9XG4gIGdldExvY2F0aW9uQnlQaW5Db2RlSW50ZXJuYXRpb25hbChwaW5jb2RlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgaHR0cHM6Ly9hcGkuemlwcG9wb3RhbS51cy9pbi8ke3BpbmNvZGV9YCk7XG4gIH1cblxuICBzZW5kU2lnbnVwT1RQKHBheWxvYWQ6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS91c2VyL3NpZ251cC9vdHAvdHJpZ2dlcmAsIHBheWxvYWQpO1xuICB9XG5cbiAgdmVyaWZ5U2lnbnVwT1RQKHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGJ1c2luZXNzSWQ6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSA/PyAnJztcbiAgICAvLyBwYXlsb2FkW1wiYnVzaW5lc3NJZFwiXSA9IGJ1c2luZXNzSWQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9hdXRoZW50aWNhdGUvc2lnbnVwYCwgcGF5bG9hZCk7XG4gIH1cblxuICBzaWduaW5QYXNzd29yZChwYXNzRGF0YTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9hdXRoZW50aWNhdGUvbG9naW5gLCBwYXNzRGF0YSk7XG4gIH1cblxuICBjcmVhdGVBcHBvaW50bWVudChkYXRhOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5CQVNFX1VSTCArIGBjcm0vYXBwb2ludG1lbnQvYWRkYCwgZGF0YSlcbiAgfVxuXG4gIGdldEFsbFNlcnZpY2VzKGJ1c2luZXNzSWQ6IGFueSwgc2l6ZTogbnVtYmVyLCBwYWdlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgY3JtL2FwcG9pbnRtZW50L2NvbmZpZy9zZXJ2aWNlP2J1c2luZXNzSWQ9JHtidXNpbmVzc0lkfSZzaXplPSR7c2l6ZX0mcGFnZT0ke3BhZ2V9YFxuICAgIClcbiAgfVxuXG4gIGdldEFsbExvY2F0aW9uKGJ1c2luZXNzSWQ6IGFueSwgc2l6ZTogbnVtYmVyLCBwYWdlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgY3JtL2FwcG9pbnRtZW50L2NvbmZpZy9sb2NhdGlvbj9idXNpbmVzc0lkPSR7YnVzaW5lc3NJZH0mc2l6ZT0ke3NpemV9JnBhZ2U9JHtwYWdlfWBcbiAgICApXG4gIH1cblxuICBnZXRBbGxTdGFmZihidXNpbmVzc0lkOiBhbnksIHNpemU6IG51bWJlciwgcGFnZTogbnVtYmVyLCBsb2NhdGlvbklkOiBzdHJpbmcsIHNlcnZpY2VJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICB0aGlzLkJBU0VfVVJMICsgYGNybS9hcHBvaW50bWVudC9jb25maWcvbG9jYXRpb24/YnVzaW5lc3NJZD0ke2J1c2luZXNzSWR9JnNpemU9JHtzaXplfSZwYWdlPSR7cGFnZX0mbG9jYXRpb25JZD0ke2xvY2F0aW9uSWR9JnNlcnZpY2VJZD0ke3NlcnZpY2VJZH1gXG4gICAgKVxuICB9XG5cblxuICBnZXRBbGxUaW1lU2xvdHMobG9jYXRpb25JZDogYW55LCBkYXRlOiBEYXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICB0aGlzLkJBU0VfVVJMICsgYGNybS9hcHBvaW50bWVudC9jb25maWcvdGltZXNsb3RzP2xvY2F0aW9uSWQ9JHtsb2NhdGlvbklkfSZkYXRlPSR7ZGF0ZX1gXG4gICAgKVxuICB9XG5cbiAgZ2V0QmxvZ0J5QnVzaW5lc3NJZCgpIHtcbiAgICBjb25zdCBidXNpbmVzc0lkOiBzdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJJZFwiKSA/PyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJ1c2luZXNzSWRcIikgPz8gXCJcIjtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgYnVzaW5lc3MvYmxvZy9ieS9idXNpbmVzcz9idXNpbmVzc0lkPSR7YnVzaW5lc3NJZH1gXG4gICAgKVxuICB9XG5cbiAgZ2V0QWxsU2VydmljZShidXNpbmVzc0lkOiBhbnksIHNpemU6IGFueSwgcGFnZTogYW55LCBsb2NhdGlvbklkPzogYW55KSB7XG4gICAgaWYgKCFsb2NhdGlvbklkKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgICAgdGhpcy5CQVNFX1VSTCArIGBjcm0vYXBwb2ludG1lbnQvY29uZmlnL3NlcnZpY2U/YnVzaW5lc3NJZD0ke2J1c2luZXNzSWR9JnNpemU9JHtzaXplfSZwYWdlPSR7cGFnZX1gXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgICB0aGlzLkJBU0VfVVJMICsgYGNybS9hcHBvaW50bWVudC9jb25maWcvc2VydmljZT9idXNpbmVzc0lkPSR7YnVzaW5lc3NJZH0mc2l6ZT0ke3NpemV9JnBhZ2U9JHtwYWdlfSZsb2NhdGlvbklkPSR7bG9jYXRpb25JZH1gXG4gICAgICApXG5cbiAgICB9XG4gIH1cblxuICBnZXRBbGxTdGFmZkJ5TG9jYXRpb24oYnVzaW5lc3NJZDogYW55LCBzaXplOiBudW1iZXIsIHBhZ2U6IG51bWJlciwgbG9jYXRpb25JZDogc3RyaW5nLCBzZXJ2aWNlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBjcm0vYXBwb2ludG1lbnQvY29uZmlnL3N0YWZmP2J1c2luZXNzSWQ9JHtidXNpbmVzc0lkfSZzaXplPSR7c2l6ZX0mcGFnZT0ke3BhZ2V9JmxvY2F0aW9uSWQ9JHtsb2NhdGlvbklkfSZzZXJ2aWNlSWQ9JHtzZXJ2aWNlSWR9YFxuICAgIClcbiAgfVxuXG4gIGdldEF2YWlsYWJsZVNsb3RzKGRhdGE6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KFxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBjcm0vYXBwb2ludG1lbnQvY29uZmlnL2F2YWlsYWJsZS90aW1lc2xvdHNgLCBkYXRhXG4gICAgKVxuICB9XG5cbiAgZ2V0U2VsZWN0ZWRMaXN0RmllbGRzKGJJZDogYW55LCBzaG93SW5FcnA6IGFueSwgZm9ybU5hbWU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgdGhpcy5DTUlTX1VSTCArIGBjcm0vZmllbGRzP2J1c2luZXNzSWQ9JHtiSWR9JnN0YXR1cz10cnVlJnNob3dJbkZvcm09JHtzaG93SW5FcnB9JmlzUGFnaW5hdGlvbj1mYWxzZSZmaWVsZENhdGVnb3J5PSR7Zm9ybU5hbWV9YFxuICAgIClcbiAgfVxuXG4gIGdldEFjdGl2ZVN1YnNjcmlwdGlvbkZvckZlZVN0cnVjdHVyZShidXNpbmVzc0lkOmFueSxncmFkZUlkOmFueSl7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICB0aGlzLkNNSVNfVVJMICsgYGNybS9zdWJzY3JpcHRpb24vcGxhbi9saXN0P2J1c2luZXNzSWQ9JHtidXNpbmVzc0lkfSZncmFkZUlkPSR7Z3JhZGVJZH0mc3RhdHVzPXRydWUmaXNEZWxldGVkPWZhbHNlYFxuICAgIClcbiAgfVxuXG4gIGNyZWF0ZVJlZ2lzdHJhdGlvbihwYXlsb2FkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICB0aGlzLkNNSVNfVVJMICsgYGNybS9yZWdpc3RyYXRpb24vP2VucXVpcnlJZD0ke3BheWxvYWQ/LmVucXVpcnlJZCB8fCAnJ31gLCBwYXlsb2FkXG4gICAgKVxuICB9XG5cbiAgY3JlYXRlQWRtaXNzaW9uKHBheWxvYWQ6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIHRoaXMuQ01JU19VUkwgKyBgY3JtL3JlZ2lzdHJhdGlvbi9hZG1pc3Npb24/cmVnaXN0cmF0aW9uSWQ9JHtwYXlsb2FkPy5yZWdpc3RyYXRpb25JZCB8fCAnJ31gLCBwYXlsb2FkXG4gICAgKVxuICB9XG5cbiAgY3JlYXRlUGF5bWVudExpbmsoZGF0YTphbnkpe1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIHRoaXMuQ01JU19VUkwrYGNybS9yZWdpc3RyYXRpb24vYWRtaXNzaW9uL3YyL3BheW1lbnQ/aXNGcm9tV2ViPXRydWVgLGRhdGFcbiAgICApXG4gIH1cblxuICBjcmVhdGVQYXltZW50Rm9yQWRtaXNzaW9uKHBheWxvYWQ6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIHRoaXMuQ01JU19VUkwgKyBgY3JtL3JlZ2lzdHJhdGlvbi9hZG1pc3Npb24vcGF5bWVudGAsIHBheWxvYWRcbiAgICApXG4gIH1cblxuICBjcmVhdGVSZWdpc3RyYXRpb25Gb3JQYXltZW50KHBheWxvYWQ6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIHRoaXMuQ01JU19VUkwgKyBgY3JtL3JlZ2lzdHJhdGlvbi9yZWdpc3RyYXRpb24vcGF5bWVudGAsIHBheWxvYWRcbiAgICApXG4gIH1cblxuXG4gIGdldFN1YnNjcmlwdGlvbkZvckZlZVN0cnVjdHVyZShncmFkZUlkOiBhbnkpIHtcbiAgICBjb25zdCBidXNpbmVzc0lkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzSWQnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgdGhpcy5DTUlTX1VSTCArIGBjcm0vc3Vic2NyaXB0aW9uL3BsYW4vbGlzdD9idXNpbmVzc0lkPSR7YnVzaW5lc3NJZH0mZ3JhZGVJZD0ke2dyYWRlSWR9YFxuICAgIClcbiAgfVxuXG4gIGdldEZlZVN0cnVjdHVyZShwYXlsb2FkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChcbiAgICAgIHRoaXMuQ01JU19VUkwgKyBgY3JtL2ZlZS9zdHJ1Y3R1cmVgLCBwYXlsb2FkXG4gICAgKVxuICB9XG5cbiAgbmV3RmVlU3RydWN0dXJlR2V0TGlzdChkYXRhOmFueSl7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoXG4gICAgICB0aGlzLkNNSVNfVVJMK2Bjcm0vZmVlL3N0cnVjdHVyZS92Mi9maWx0ZXJgLGRhdGFcbiAgICApXG4gIH1cblxuICBnZXRBbGxEb2N1bWVudChwYXlsb2FkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChcbiAgICAgIHRoaXMuQ01JU19VUkwgKyBgY3JtL21hc3Rlci9kb2N1bWVudFR5cGUvZmlsdGVyYCwgcGF5bG9hZClcbiAgfVxuXG4gIGdldExlYWRCeUlkKGxlYWRJZDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICB0aGlzLkNNSVNfVVJMICsgYGNybS9sZWFkcy9nZXQtb25lP2xlYWRJZD0ke2xlYWRJZH1gXG4gICAgKVxuICB9XG5cbiAgZ2V0UmVnaXN0cmF0aW9uTGlzdChwYXlsb2FkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChcbiAgICAgIHRoaXMuQ01JU19VUkwgKyBgY3JtL3JlZ2lzdHJhdGlvbi9nZXRBbGxgLCBwYXlsb2FkXG4gICAgKVxuICB9XG5cbiAgZ2V0QWxsQ29tcG9uZW50Q2F0ZWdvcmllcygpe1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBhZG1pbi9tYXN0ZXIvdGVtcGxhdGUvY2F0ZWdvcnkvYWxsYFxuICAgIClcbiAgfVxuICBnZXRUZW1wbGF0ZSgpIHtcbiAgICBsZXQgdGVtcGxhdGVJZCA9IEpTT04ucGFyc2UoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYkRldGFpbHMnKSkpKT8udGVtcGxhdGVJZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgYnVzaW5lc3MvdjMvd2Vic2l0ZS8xZWZkMWRhMC1lMTdiLTY1ZWMtYjBmYi0zYjcxM2EyZDA0ODkvcGFnZXMvbGlzdGBcbiAgICApXG4gIH1cblxuICBnZXRJbWFnZUxpYnJhcnkoKSB7XG4gICAgY29uc3QgYnVzaW5lc3NJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0lkJylcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgYWRtaW4vbGlicmFyeS9pbWFnZS9saWJyYXJ5L2xpc3QvcGFnZWQ/YnVzaW5lc3NJZD0ke2J1c2luZXNzSWR9JnBhZ2VObz0wJnNpemU9MTBgXG4gICAgKVxuICB9XG5cbiAgc2F2ZUltYWdlc1RvQnVzaW5lc3NMaWJyYXJ5KG1lZGlhUmVxdWVzdDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBhZG1pbi9saWJyYXJ5L2ltYWdlL2xpYnJhcnkvc2F2ZWAsXG4gICAgICBtZWRpYVJlcXVlc3RcbiAgICApO1xuICB9XG5cbiAgcmVnZW5lcmF0ZVRleHQocmVxdWVzdDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBhZG1pbi9jb250ZW50L3N1Z2dlc3QvdjIvd2Vic2l0ZS9pbmRpdmlkdWFsYCwgcmVxdWVzdFxuICAgIClcbiAgfVxuXG4gIGdldEZpZWxkc1RvRGlzcGxheShmaWVsZHNMaXN0OiBhbnlbXSkge1xuICAgIGxldCBtYXA6IGFueSA9IHt9O1xuXG4gICAgZm9yIChsZXQgZmllbGQgb2YgZmllbGRzTGlzdCkge1xuICAgICAgZm9yIChsZXQgZmllbGRHcm91cCBvZiBmaWVsZC5maWVsZEdyb3VwKSB7XG4gICAgICAgIGlmICghZmllbGRHcm91cC5maWVsZFN0ZXBJZClcbiAgICAgICAgICBjb250aW51ZTtcblxuICAgICAgICBsZXQgc3RlcE5hbWUgPSBmaWVsZEdyb3VwLmZpZWxkU3RlcE5hbWUgPyBmaWVsZEdyb3VwLmZpZWxkU3RlcE5hbWUgOiAndW5kZWZpbmVkJztcbiAgICAgICAgbGV0IGdyb3VwTmFtZSA9IGZpZWxkR3JvdXAuZmllbGRHcm91cE5hbWU7XG5cbiAgICAgICAgaWYgKCFtYXBbc3RlcE5hbWVdKSB7XG4gICAgICAgICAgbWFwW3N0ZXBOYW1lXSA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghbWFwW3N0ZXBOYW1lXVtncm91cE5hbWVdKSB7XG4gICAgICAgICAgbWFwW3N0ZXBOYW1lXVtncm91cE5hbWVdID0gW107XG4gICAgICAgIH1cbiAgICAgICAgZmllbGRbJ2ZpZWxkU3RlcElkJ10gPSBmaWVsZEdyb3VwLmZpZWxkU3RlcElkO1xuICAgICAgICBmaWVsZFsnZmllbGRHcm91cElkJ10gPSBmaWVsZEdyb3VwLmZpZWxkR3JvdXBJZDtcblxuICAgICAgICBjb25zdCBuZXdGaWVsZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZmllbGQpKTtcbiAgICAgICAgbWFwW3N0ZXBOYW1lXVtncm91cE5hbWVdLnB1c2gobmV3RmllbGQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXA7XG4gIH1cbn1cbiJdfQ==
|
|
434
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBd0MsTUFBTSxNQUFNLENBQUM7QUFLakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQzdELE9BQU8sRUFBeUIsT0FBTyxFQUE2QixNQUFNLG1DQUFtQyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBS2xFLE1BQU0sT0FBTyxXQUFXO0lBWXRCLFlBQ21CLElBQWdCO0lBQ2pDLGdEQUFnRDtJQUN2QixRQUFnQixFQUNWLGFBQXFCLEVBQzFCLFFBQWdCO1FBSnpCLFNBQUksR0FBSixJQUFJLENBQVk7UUFFUixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ1Ysa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQWY1QywwREFBMEQ7UUFDMUQscUVBQXFFO1FBQ3JFLDJFQUEyRTtRQUMzRSxnRUFBZ0U7UUFDaEUsMkVBQTJFO1FBQ25FLDhCQUF5QixHQUF3QixJQUFJLENBQUM7UUFHOUQsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUF3QjdCLGdCQUFXLEdBQVcseUNBQXlDLENBQUM7UUFmOUQsK0ZBQStGO1FBQy9GLDZCQUE2QjtRQUM3QixtREFBbUQ7UUFDbkQsOERBQThEO1FBQzlELE1BQU07UUFDTixvQ0FBb0M7UUFDcEMsZ0VBQWdFO1FBQ2hFLHFEQUFxRDtRQUNyRCxNQUFNO1FB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Z0JBQ0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7Z0JBQzlDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO2dCQUVoRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDbkQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzsrR0FoakJVLFdBQVcsNENBZVosT0FBTyxhQUNQLGFBQWEsYUFDYixRQUFRO21IQWpCUCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWdCSSxNQUFNOzJCQUFDLE9BQU87OzBCQUNkLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFN1YnNjcmliZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFJldmlldyB9IGZyb20gXCIuLi9lY29tbWVyY2Uvc3R5bGVzL3Jldmlldy5tb2RhbFwiO1xyXG5pbXBvcnQgeyBEZXZpY2VJbmZvIH0gZnJvbSBcIi4uL2Vjb21tZXJjZS9zdHlsZXMvdXNlci5tb2RhbFwiO1xyXG5pbXBvcnQgeyBQaW5Db2RlTG9jYXRpb25JbnRlciB9IGZyb20gXCIuLi9lY29tbWVyY2Uvc3R5bGVzL1BpbmNvZGVMb2NhdGlvbkludGVyLm1vZGVsXCI7XHJcbmltcG9ydCB7IFBpbmNvZGVMb2NhdGlvbiB9IGZyb20gXCIuLi9lY29tbWVyY2Uvc3R5bGVzL1BpbmNvZGVMb2NhdGlvbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBBUElfVVJMLCBDTUlTX1VSTCwgRUNPTU1FUkNFX1VSTCB9IGZyb20gJy4uL3Rva2Vucy9hcGktdG9rZW4nO1xyXG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gXCIuLi9lY29tbWVyY2Uvc3R5bGVzL2NhdGVnb3J5Lm1vZGFsXCJcclxuaW1wb3J0IHsgY2hlY2tJdGVtQWxyZWFkeUFkZGVkLCBQcm9kdWN0LCBzeW5jSXRlbVRvU2VydmVyREJSZXF1ZXN0IH0gZnJvbSBcIi4uL2Vjb21tZXJjZS9zdHlsZXMvcHJvZHVjdC5tb2RhbFwiO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSBcIi4uL2Vjb21tZXJjZS9zdHlsZXMvQ29sbGVjdGlvbi5tb2RhbFwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc3RTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgLy8gcHJpdmF0ZSBCQVNFX1VSTDogc3RyaW5nID0gXCJodHRwczovL2Rldi1hcGkuc2ltcG8uYWkvXCI7XHJcbiAgLy8gcHJpdmF0ZSBFQ09NTUVSQ0VfVVJMOiBzdHJpbmcgPSBcImh0dHBzOi8vZGV2LWVjb21tZXJjZS5zaW1wby5haS9cIjtcclxuICAvLyBwcml2YXRlIENNSVNfVVJMOiBzdHJpbmcgPSBcImh0dHBzOi8vYXBpLWNtaXMudGVqc29mdC5jb20vXCI7IC8vcHJvZHVjdGlvblxyXG4gIC8vIHByaXZhdGUgQ01JU19VUkw6IHN0cmluZyA9IFwiaHR0cHM6Ly9kZXYtYXBpLnNpbXBvLmFpL1wiOyAvL2RldlxyXG4gIC8vIHByaXZhdGUgQ01JU19VUkw6IHN0cmluZyA9IFwiaHR0cHM6Ly9zdGFnZWFwaS1jbWlzLnRlanNvZnQuY29tL1wiOyAvL3N0YWdlXHJcbiAgcHJpdmF0ZSBlbnZpcm9ubWVudFR5cGVTdWJzY3JpYmVyOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBidXNpbmVzc0RldGFpbHM6IGFueTtcclxuICBzdWJJbmR1c3RyeU5hbWU6IGFueTtcclxuICBpc0pld2VsbGVyeTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcclxuICAgIC8vIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgQEluamVjdChBUElfVVJMKSBwcml2YXRlIEJBU0VfVVJMOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KEVDT01NRVJDRV9VUkwpIHByaXZhdGUgRUNPTU1FUkNFX1VSTDogc3RyaW5nLFxyXG4gICAgQEluamVjdChDTUlTX1VSTCkgcHJpdmF0ZSBDTUlTX1VSTDogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICAvLyB0aGlzLmVudmlyb25tZW50VHlwZVN1YnNjcmliZXIgPSB0aGlzLmV2ZW50U2VydmljZS5lbnZpcm9ubWVudFR5cGUuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgLy8gICBpZiAocmVzcG9uc2UgPT0gXCJERVZcIikge1xyXG4gICAgLy8gICAgIHRoaXMuQkFTRV9VUkwgPSBcImh0dHBzOi8vZGV2LWFwaS5zaW1wby5haS9cIjtcclxuICAgIC8vICAgICB0aGlzLkVDT01NRVJDRV9VUkwgPSBcImh0dHBzOi8vZGV2LWVjb21tZXJjZS5zaW1wby5haS9cIjtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICBlbHNlIGlmIChyZXNwb25zZSA9PSBcIlNUQUdFXCIpIHtcclxuICAgIC8vICAgICB0aGlzLkVDT01NRVJDRV9VUkwgPSBcImh0dHBzOi8vc3RhZ2UtZWNvbW1lcmNlLnNpbXBvLmFpL1wiO1xyXG4gICAgLy8gICAgIHRoaXMuQkFTRV9VUkwgPSBcImh0dHBzOi8vc3RhdGUtYXBpLnNpbXBvLmFpL1wiO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIGVsc2Uge1xyXG4gICAgLy8gICAgIHRoaXMuQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLWNtaXMudGVqc29mdC5jb20vXCI7XHJcbiAgICAvLyAgICAgdGhpcy5FQ09NTUVSQ0VfVVJMID0gXCJodHRwczovL3Byb2QtZWNvbW1lcmNlLnNpbXBvLmFpL1wiO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KVxyXG4gIH1cclxuICBvcnJhQmFzZVVybDogc3RyaW5nID0gJ2h0dHBzOi8vc3RhZ2VhcGktb3JyYS5sZXRzbW9iaWxpdHkuY29tLyc7XHJcbiAgZ2V0QnVzaW5lc3NEZXRhaWxzKCkge1xyXG4gICAgLy8gICB0aGlzLmJ1c2luZXNzRGV0YWlscyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYkRldGFpbHNcIik7XHJcbiAgICAvLyAgaWYodGhpcy5idXNpbmVzc0RldGFpbHMgIT0gbnVsbCkge1xyXG4gICAgLy8gICAgIHRoaXMuYnVzaW5lc3NEZXRhaWxzID0gSlNPTi5wYXJzZSh0aGlzLmJ1c2luZXNzRGV0YWlscyk7XHJcbiAgICAvLyAgICAgdGhpcy5zdWJJbmR1c3RyeU5hbWUgPSB0aGlzLmJ1c2luZXNzRGV0YWlscy5zdWJJbmR1c3RyeU5hbWU7XHJcbiAgICAvLyAgICAgdGhpcy5pc0pld2VsbGVyeSA9ICB0aGlzLnN1YkluZHVzdHJ5TmFtZSA9PSAnRWNvbW1lcmNlIEpld2VsbGVyeScgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAvLyAgIH1cclxuICAgIHRoaXMuc3ViSW5kdXN0cnlOYW1lID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N1YkluZHVzdHJ5TmFtZScpO1xyXG4gICAgaWYgKHRoaXMuc3ViSW5kdXN0cnlOYW1lICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5pc0pld2VsbGVyeSA9IHRoaXMuc3ViSW5kdXN0cnlOYW1lID09ICdFY29tbWVyY2UgSmV3ZWxsZXJ5JyA/IHRydWUgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZW52aXJvbm1lbnRUeXBlU3Vic2NyaWJlcilcclxuICAgICAgdGhpcy5lbnZpcm9ubWVudFR5cGVTdWJzY3JpYmVyPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmVhdHVyZWRQcm9kdWN0KGNvbGxlY3Rpb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xyXG4gICAgdGhpcy5nZXRCdXNpbmVzc0RldGFpbHMoKTtcclxuICAgIGxldCBzdWJJbmR1c3RyeUlkOiBzdHJpbmcgfCBudWxsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJzdWJJbmR1c3RyeUlkXCIpO1xyXG4gICAgaWYgKCFzdWJJbmR1c3RyeUlkKVxyXG4gICAgICBzdWJJbmR1c3RyeUlkID0gXCJcIjtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3Byb2R1Y3QvY29sbGVjdGlvbi9pZD9jb2xsZWN0aW9uSWQ9JHtjb2xsZWN0aW9uSWQgfHwgJyd9JmlzSmV3ZWxsZXJ5PSR7dGhpcy5pc0pld2VsbGVyeX1gKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UuZGF0YT8ubWFwKChwcm9kdWN0OiBhbnkpID0+IG5ldyBQcm9kdWN0KHByb2R1Y3QpKSkpO1xyXG4gIH1cclxuICBnZXRDYXRlZ29yaWVzQnlDb2xsZWN0aW9uSWQoY29sbGVjdGlvbklkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL2ludmVudG9yeS9jYXRlZ29yeS9jb2xsZWN0aW9uSWQ/Y29sbGVjdGlvbklkPSR7Y29sbGVjdGlvbklkfWApLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5kYXRhPy5tYXAoKGNhdGVnb3J5OiBhbnkpID0+IG5ldyBDYXRlZ29yeShjYXRlZ29yeSkpKSk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9kdWN0QnlTZWxlY3RlZENhdGVnb3J5KGNhdGVnb3J5SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3Byb2R1Y3QvJHtjYXRlZ29yeUlkfWBcclxuICAgIClcclxuICB9XHJcbiAgZ2V0QWxsU2NoZW1lcyh1c2VyQ29kZT86IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLm9ycmFCYXNlVXJsICsgYHBhc3NCb29rL3N1bW1hcnkvJHt1c2VyQ29kZX1gKTtcclxuICB9XHJcbiAgZ2V0QWxsUmVkZW1wdGlvblNjaGVtZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLm9ycmFCYXNlVXJsICsgYHBhc3NCb29rL3JlZGVtcHRpb24vYW1vdW50L2NoZWNrP3VzZXJDb2RlPUNfMDAwMzEzODg1YCk7XHJcbiAgfVxyXG4gIGdldFByb2R1Y3REZXRhaWxzKHByb2R1Y3RJZDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcclxuICAgIHRoaXMuZ2V0QnVzaW5lc3NEZXRhaWxzKCk7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgIHBhZ2VObzogMCxcclxuICAgICAgcGFnZVNpemU6IDEsXHJcbiAgICAgIGl0ZW1JZDogcHJvZHVjdElkLFxyXG4gICAgICBzdWJJbmR1c3RyeUlkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInN1YkluZHVzdHJ5SWRcIiksXHJcbiAgICAgIHVzZXJJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJwZXJJZFwiKSA/PyBudWxsLFxyXG4gICAgICByZXF1ZXN0OiBcIlVTRVJcIlxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvcHJvZHVjdC9pdGVtL3NlYXJjaD9pc0pld2VsbGVyeT0ke3RoaXMuaXNKZXdlbGxlcnl9YCwgcGF5bG9hZCkucGlwZShtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlLmRhdGEuZGF0YS5tYXAoKHByb2R1Y3Q6IGFueSkgPT4gbmV3IFByb2R1Y3QocHJvZHVjdCkpKSk7XHJcbiAgfVxyXG4gIGdldENvbGxlY3Rpb25CeUlkcyhjb2xsZWN0aW9uSWRzOiBzdHJpbmdbXSkge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgaWRzOiBjb2xsZWN0aW9uSWRzXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9pbnZlbnRvcnkvY29sbGVjdGlvbi9saXN0L2FsbGAsIHBheWxvYWQpLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5kYXRhPy5tYXAoKGNvbGxlY3Rpb246IGFueSkgPT4gbmV3IENvbGxlY3Rpb24oY29sbGVjdGlvbikpKSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxDYXRlZ29yaWVzKCkge1xyXG5cclxuICAgIGNvbnN0IGJ1c2luZXNzSWQ6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSA/PyBcIlwiO1xyXG4gICAgY29uc3Qgc3ViSW5kdXN0cnlJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJzdWJJbmR1c3RyeUlkXCIpID8/IFwiXCI7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9pbnZlbnRvcnkvZmVhdHVyZWQ/YnVzaW5lc3NJZD0ke2J1c2luZXNzSWR9JnN1YklkPSR7c3ViSW5kdXN0cnlJZH1gKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UuZGF0YT8ubWFwKChjYXRlZ29yeTogYW55KSA9PiBuZXcgQ2F0ZWdvcnkoY2F0ZWdvcnkpKSkpO1xyXG4gIH1cclxuICBnZXRBbGxDb2xsZWN0aW9ucygpIHtcclxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuICAgICAgcGFnZU5vOiAwLFxyXG4gICAgICBwYWdlU2l6ZTogMTAsXHJcbiAgICAgIHJlcXVlc3Q6IFwiVVNFUlwiLFxyXG4gICAgICBidXNpbmVzc0lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJJZFwiKSA/PyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJ1c2luZXNzSWRcIilcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyAnZWNvbW1lcmNlL2ludmVudG9yeS9nZXQvY29sbGVjdGlvbicsIHBheWxvYWQpLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5kYXRhLmRhdGE/Lm1hcCgoY29sbGVjdGlvbjogYW55KSA9PiBuZXcgQ29sbGVjdGlvbihjb2xsZWN0aW9uKSkpKTtcclxuICB9XHJcblxyXG4gIGdldEZpbHRlcmVkUHJvZHVjdChjb2xsZWN0aW9uSWRzOiBzdHJpbmdbXSwgY2F0ZWdvcnlJZHM6IHN0cmluZ1tdLCBzZWFyY2hUZXh0OiBzdHJpbmcsIG1pblByaWNlOiBudW1iZXIsIG1heFByaWNlOiBudW1iZXIsIHNvcnRCeTogc3RyaW5nLCBwYWdlTm86IG51bWJlciwgc2l6ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmdldEJ1c2luZXNzRGV0YWlscygpO1xyXG4gICAgbGV0IHBheWxvYWQ6IGFueSA9IHtcclxuICAgICAgXCJidXNpbmVzc0lkXCI6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSxcclxuICAgICAgXCJzdWJJbmR1c3RyeUlkXCI6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwic3ViSW5kdXN0cnlJZFwiKSxcclxuICAgICAgXCJjb2xsZWN0aW9uSWRcIjogY29sbGVjdGlvbklkcyxcclxuICAgICAgXCJjYXRlZ29yeUlkXCI6IGNhdGVnb3J5SWRzLFxyXG4gICAgICBcInNlYXJjaFRleHRcIjogc2VhcmNoVGV4dCxcclxuICAgICAgXCJzb3J0QnlcIjogc29ydEJ5LFxyXG4gICAgICBcInBhZ2VOb1wiOiBwYWdlTm8sXHJcbiAgICAgIFwicGFnZVNpemVcIjogc2l6ZSxcclxuICAgICAgXCJ1c2VySWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJwZXJJZFwiKSA/PyBudWxsLFxyXG4gICAgICByZXF1ZXN0OiBcIlVTRVJcIlxyXG4gICAgfVxyXG4gICAgaWYgKG1pblByaWNlID4gMClcclxuICAgICAgcGF5bG9hZFtcIm1pblByaWNlXCJdID0gbWluUHJpY2U7XHJcbiAgICBpZiAobWF4UHJpY2UgPiAwKVxyXG4gICAgICBwYXlsb2FkW1wibWF4UHJpY2VcIl0gPSBtYXhQcmljZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3Byb2R1Y3QvaXRlbS9zZWFyY2g/aXNKZXdlbGxlcnk9JHt0aGlzLmlzSmV3ZWxsZXJ5fWAsIHBheWxvYWQpLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgY291bnQ6IHJlc3BvbnNlLmRhdGEuY291bnQsXHJcbiAgICAgICAgZGF0YTogcmVzcG9uc2UuZGF0YS5kYXRhPy5tYXAoKHByb2R1Y3Q6IGFueSkgPT4gbmV3IFByb2R1Y3QocHJvZHVjdCkpXHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICB9XHJcbiAgZ2V0UHJvZHVjdEJ5Q2F0ZWdvcnlJZChjYXRlZ29yeUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ2V0QnVzaW5lc3NEZXRhaWxzKCk7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgIFwiYnVzaW5lc3NJZFwiOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJJZFwiKSA/PyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJ1c2luZXNzSWRcIiksXHJcbiAgICAgIFwiY2F0ZWdvcnlJZFwiOiBbY2F0ZWdvcnlJZF0sXHJcbiAgICAgIFwic3ViSW5kdXN0cnlJZFwiOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInN1YkluZHVzdHJ5SWRcIiksXHJcbiAgICAgIFwicGFnZU5vXCI6IDAsXHJcbiAgICAgIFwicGFnZVNpemVcIjogMTAsXHJcbiAgICAgIFwidXNlcklkXCI6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicGVySWRcIikgPz8gbnVsbCxcclxuICAgICAgcmVxdWVzdDogXCJVU0VSXCJcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3Byb2R1Y3QvaXRlbS9zZWFyY2g/aXNKZXdlbGxlcnk9JHt0aGlzLmlzSmV3ZWxsZXJ5fWAsIHBheWxvYWQpLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgY291bnQ6IHJlc3BvbnNlLmNvdW50LFxyXG4gICAgICAgIGRhdGE6IHJlc3BvbnNlLmRhdGEuZGF0YT8ubWFwKChwcm9kdWN0OiBhbnkpID0+IG5ldyBQcm9kdWN0KHByb2R1Y3QpKVxyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGdldFByb2R1Y3RCeUNvbGxlY3Rpb25JZChjb2xsZWN0aW9uSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5nZXRCdXNpbmVzc0RldGFpbHMoKTtcclxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuICAgICAgXCJidXNpbmVzc0lkXCI6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSxcclxuICAgICAgXCJjb2xsZWN0aW9uSWRcIjogW2NvbGxlY3Rpb25JZF0sXHJcbiAgICAgIFwic3ViSW5kdXN0cnlJZFwiOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInN1YkluZHVzdHJ5SWRcIiksXHJcbiAgICAgIFwicGFnZU5vXCI6IDAsXHJcbiAgICAgIFwicGFnZVNpemVcIjogMTAsXHJcbiAgICAgIFwidXNlcklkXCI6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicGVySWRcIikgPz8gbnVsbCxcclxuICAgICAgcmVxdWVzdDogXCJVU0VSXCJcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3Byb2R1Y3QvaXRlbS9zZWFyY2g/aXNKZXdlbGxlcnk9JHt0aGlzLmlzSmV3ZWxsZXJ5fWAsIHBheWxvYWQpLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgY291bnQ6IHJlc3BvbnNlLmNvdW50LFxyXG4gICAgICAgIGRhdGE6IHJlc3BvbnNlLmRhdGEuZGF0YT8ubWFwKChwcm9kdWN0OiBhbnkpID0+IG5ldyBQcm9kdWN0KHByb2R1Y3QpKVxyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBhZGRSZXZpZXcocGF5bG9hZDogUmV2aWV3KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9hZGQvcmV2aWV3YCwgcGF5bG9hZCk7XHJcbiAgfVxyXG4gIGdldEFsbFJldmlld3MocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3VzZXIvZmlsdGVyL3Jldmlld3M/cHJvZHVjdElkPSR7cHJvZHVjdElkfWAsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVPVFAobW9iaWxlOiBzdHJpbmcsIGNvdW50cnlDb2RlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGJ1c2luZXNzSWQ6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSA/PyBcIlwiO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3VzZXIvb3RwL3RyaWdnZXI/bW9iaWxlPSR7bW9iaWxlfSZjb3VudHJ5Q29kZT0ke2NvdW50cnlDb2RlfSZidXNpbmVzc0lkPSR7YnVzaW5lc3NJZH1gLCBudWxsKTtcclxuICB9XHJcbiAgdmVyaWZ5T1RQKG1vYmlsZTogc3RyaW5nLCBvdHA6IHN0cmluZywgZGV2aWNlSW5mbzogRGV2aWNlSW5mbykge1xyXG4gICAgY29uc3QgYnVzaW5lc3NJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJidXNpbmVzc0lkXCIpID8/IFwiXCI7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS91c2VyL2F1dGhlbnRpY2F0ZT9tb2JpbGU9JHttb2JpbGV9Jm90cD0ke290cH0mYnVzaW5lc3NJZD0ke2J1c2luZXNzSWR9YCwgZGV2aWNlSW5mbyk7XHJcbiAgfVxyXG4gIHJlc2VuZE9UUChtb2JpbGU6IHN0cmluZywgY291bnRyeUNvZGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgYnVzaW5lc3NJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJidXNpbmVzc0lkXCIpID8/IFwiXCI7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9yZXNlbmQ/bW9iaWxlPSR7bW9iaWxlfSZjb3VudHJ5Q29kZT0ke2NvdW50cnlDb2RlfSZidXNpbmVzc0lkPSR7YnVzaW5lc3NJZH1gLCBudWxsKTtcclxuICB9XHJcbiAgYXBwbGljYWJsZURpc2NvdW50TGlzdChjYXJ0SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2Uvb3JkZXIvZGlzY291bnQtY291cG9uLyR7Y2FydElkfS9hcHBsaWNhYmlsaXR5L2xpc3RgKTtcclxuICB9XHJcblxyXG4gIGFkZEl0ZW1Ub0RCKHVzZXJDYXJ0OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci9jYXJ0YCwgdXNlckNhcnQpO1xyXG4gIH1cclxuICBnZXRVc2VySXRlbXModXNlcklkOiBzdHJpbmcsIGNhcnRUeXBlOiAnQ0FSVCcgfCAnV0lTSExJU1QnIHwgJ1RSSUFMX0NBUlQnKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci9jYXJ0P3VzZXJJZD0ke3VzZXJJZH0mY2FydFR5cGU9JHtjYXJ0VHlwZX1gKTtcclxuICB9XHJcbiAgZ2V0VXNlckluZm8odXNlcklkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3VzZXIvZ2V0L3VzZXI/dXNlcklkPSR7dXNlcklkfWAsIG51bGwpO1xyXG4gIH1cclxuICBhZGRVc2VyQWRkcmVzcyh1c2VyOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3VzZXIvdXBkYXRlL3VzZXJgLCB1c2VyKTtcclxuICB9XHJcbiAgdXBkYXRlUHJvZmlsZShwYXlsb2FkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3VzZXIvdXBkYXRlL3VzZXJgLCBwYXlsb2FkKTtcclxuICB9XHJcbiAgZ2V0VXNlck9yZGVycyhwYXlsb2FkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL29yZGVyL3VzZXIvb3JkZXJgLCBwYXlsb2FkKTtcclxuICB9XHJcbiAgZ2V0VXNlcldpc2hsaXN0KHVzZXJJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci9jYXJ0P3VzZXJJZD0ke3VzZXJJZH0mY2FydFR5cGU9V0lTSExJU1RgKVxyXG4gIH1cclxuICBtb3ZlSXRlbVRvQ2FydCh1c2VySWQ6IHN0cmluZywgcGF5bG9hZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci91cGRhdGUvY2FydD91c2VySWQ9JHt1c2VySWR9YCwgcGF5bG9hZCk7XHJcbiAgfVxyXG5cclxuICAvLyBQYXltZW50XHJcbiAgY3JlYXRlUGF5bWVudFRva2VuKHBheWxvYWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuRUNPTU1FUkNFX1VSTCArIGBwYXltZW50L29yZGVyYCwgcGF5bG9hZCk7XHJcbiAgfVxyXG4gIGNoZWNrUGF5bWVudFN0YXR1cyhwYXlsb2FkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkVDT01NRVJDRV9VUkwgKyBgcGF5bWVudC9zdGF0dXNgLCBwYXlsb2FkKTtcclxuICB9XHJcbiAgZ2V0UmVjZW50Vmlld1Byb2R1Y3QodXNlcklkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS91c2VyL3JlY2VudFZpZXc/dXNlcklkPSR7dXNlcklkfWAsIG51bGwpLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5kYXRhPy5tYXAoKHByb2R1Y3Q6IGFueSkgPT4gbmV3IFByb2R1Y3QocHJvZHVjdCkpKSk7O1xyXG4gIH1cclxuXHJcbiAgc2VuZFNpZ251cE9UUChwYXlsb2FkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS91c2VyL3NpZ251cC9vdHAvdHJpZ2dlcmAsIHBheWxvYWQpO1xyXG4gIH1cclxuXHJcbiAgdmVyaWZ5U2lnbnVwT1RQKHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc3QgYnVzaW5lc3NJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJidXNpbmVzc0lkXCIpID8/ICcnO1xyXG4gICAgLy8gcGF5bG9hZFtcImJ1c2luZXNzSWRcIl0gPSBidXNpbmVzc0lkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9hdXRoZW50aWNhdGUvc2lnbnVwYCwgcGF5bG9hZCk7XHJcbiAgfVxyXG5cclxuICBzaWduaW5QYXNzd29yZChwYXNzRGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS91c2VyL2F1dGhlbnRpY2F0ZS9sb2dpbmAsIHBhc3NEYXRhKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUFwcG9pbnRtZW50KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuQkFTRV9VUkwgKyBgY3JtL2FwcG9pbnRtZW50L2FkZGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRBbGxMb2NhdGlvbihidXNpbmVzc0lkOiBhbnksIHNpemU6IG51bWJlciwgcGFnZTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBjcm0vYXBwb2ludG1lbnQvY29uZmlnL2xvY2F0aW9uP2J1c2luZXNzSWQ9JHtidXNpbmVzc0lkfSZzaXplPSR7c2l6ZX0mcGFnZT0ke3BhZ2V9YFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsVGltZVNsb3RzKGxvY2F0aW9uSWQ6IGFueSwgZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgY3JtL2FwcG9pbnRtZW50L2NvbmZpZy90aW1lc2xvdHM/bG9jYXRpb25JZD0ke2xvY2F0aW9uSWR9JmRhdGU9JHtkYXRlfWBcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldEFsbFNlcnZpY2UoYnVzaW5lc3NJZDogYW55LCBzaXplOiBhbnksIHBhZ2U6IGFueSwgbG9jYXRpb25JZD86IGFueSkge1xyXG4gICAgaWYgKCFsb2NhdGlvbklkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICAgIHRoaXMuQkFTRV9VUkwgKyBgY3JtL2FwcG9pbnRtZW50L2NvbmZpZy9zZXJ2aWNlP2J1c2luZXNzSWQ9JHtidXNpbmVzc0lkfSZzaXplPSR7c2l6ZX0mcGFnZT0ke3BhZ2V9YFxyXG4gICAgICApXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgICB0aGlzLkJBU0VfVVJMICsgYGNybS9hcHBvaW50bWVudC9jb25maWcvc2VydmljZT9idXNpbmVzc0lkPSR7YnVzaW5lc3NJZH0mc2l6ZT0ke3NpemV9JnBhZ2U9JHtwYWdlfSZsb2NhdGlvbklkPSR7bG9jYXRpb25JZH1gXHJcbiAgICAgIClcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBbGxTdGFmZkJ5TG9jYXRpb24oYnVzaW5lc3NJZDogYW55LCBzaXplOiBudW1iZXIsIHBhZ2U6IG51bWJlciwgbG9jYXRpb25JZDogc3RyaW5nLCBzZXJ2aWNlSWQ6IHN0cmluZykge1xyXG4gICAgaWYgKCFzZXJ2aWNlSWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgICAgdGhpcy5CQVNFX1VSTCArIGBjcm0vYXBwb2ludG1lbnQvY29uZmlnL3N0YWZmP2J1c2luZXNzSWQ9JHtidXNpbmVzc0lkfSZzaXplPSR7c2l6ZX0mcGFnZT0ke3BhZ2V9JmxvY2F0aW9uSWQ9JHtsb2NhdGlvbklkfWBcclxuICAgICAgKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgICAgdGhpcy5CQVNFX1VSTCArIGBjcm0vYXBwb2ludG1lbnQvY29uZmlnL3N0YWZmP2J1c2luZXNzSWQ9JHtidXNpbmVzc0lkfSZzaXplPSR7c2l6ZX0mcGFnZT0ke3BhZ2V9JmxvY2F0aW9uSWQ9JHtsb2NhdGlvbklkfSZzZXJ2aWNlSWQ9JHtzZXJ2aWNlSWR9YFxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBdmFpbGFibGVTbG90cyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KFxyXG4gICAgICB0aGlzLkJBU0VfVVJMICsgYGNybS9hcHBvaW50bWVudC9jb25maWcvYXZhaWxhYmxlL3RpbWVzbG90c2AsIGRhdGFcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkTGlzdEZpZWxkcyhiSWQ6IGFueSwgc2hvd0luRXJwOiBhbnksIGZvcm1OYW1lOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICB0aGlzLkNNSVNfVVJMICsgYGNybS9maWVsZHM/YnVzaW5lc3NJZD0ke2JJZH0mc3RhdHVzPXRydWUmc2hvd0luRm9ybT0ke3Nob3dJbkVycH0maXNQYWdpbmF0aW9uPWZhbHNlJmZpZWxkQ2F0ZWdvcnk9JHtmb3JtTmFtZX1gXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmVTdWJzY3JpcHRpb25Gb3JGZWVTdHJ1Y3R1cmUoYnVzaW5lc3NJZDogYW55LCBncmFkZUlkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICB0aGlzLkNNSVNfVVJMICsgYGNybS9zdWJzY3JpcHRpb24vcGxhbi9saXN0P2J1c2luZXNzSWQ9JHtidXNpbmVzc0lkfSZncmFkZUlkPSR7Z3JhZGVJZH0mc3RhdHVzPXRydWUmaXNEZWxldGVkPWZhbHNlYFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQWRtaXNzaW9uKHBheWxvYWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICB0aGlzLkNNSVNfVVJMICsgYGNybS9yZWdpc3RyYXRpb24vYWRtaXNzaW9uP3JlZ2lzdHJhdGlvbklkPSR7cGF5bG9hZD8ucmVnaXN0cmF0aW9uSWQgfHwgJyd9YCwgcGF5bG9hZFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlUGF5bWVudExpbmsoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIHRoaXMuQ01JU19VUkwgKyBgY3JtL3JlZ2lzdHJhdGlvbi9hZG1pc3Npb24vdjIvcGF5bWVudD9pc0Zyb21XZWI9dHJ1ZWAsIGRhdGFcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNyZWF0ZVJlZ2lzdHJhdGlvbkZvclBheW1lbnQocGF5bG9hZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIHRoaXMuQ01JU19VUkwgKyBgY3JtL3JlZ2lzdHJhdGlvbi9yZWdpc3RyYXRpb24vcGF5bWVudGAsIHBheWxvYWRcclxuICAgIClcclxuICB9XHJcblxyXG5cclxuICBnZXRTdWJzY3JpcHRpb25Gb3JGZWVTdHJ1Y3R1cmUoZ3JhZGVJZDogYW55KSB7XHJcbiAgICBjb25zdCBidXNpbmVzc0lkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzSWQnKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgdGhpcy5DTUlTX1VSTCArIGBjcm0vc3Vic2NyaXB0aW9uL3BsYW4vbGlzdD9idXNpbmVzc0lkPSR7YnVzaW5lc3NJZH0mZ3JhZGVJZD0ke2dyYWRlSWR9YFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0RmVlU3RydWN0dXJlKHBheWxvYWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoXHJcbiAgICAgIHRoaXMuQ01JU19VUkwgKyBgY3JtL2ZlZS9zdHJ1Y3R1cmVgLCBwYXlsb2FkXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZXdGZWVTdHJ1Y3R1cmVHZXRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoXHJcbiAgICAgIHRoaXMuQ01JU19VUkwgKyBgY3JtL2ZlZS9zdHJ1Y3R1cmUvdjIvZmlsdGVyYCwgZGF0YVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsRG9jdW1lbnQocGF5bG9hZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChcclxuICAgICAgdGhpcy5DTUlTX1VSTCArIGBjcm0vbWFzdGVyL2RvY3VtZW50VHlwZS9maWx0ZXJgLCBwYXlsb2FkKVxyXG4gIH1cclxuXHJcbiAgZ2V0TGVhZEJ5SWQobGVhZElkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICB0aGlzLkNNSVNfVVJMICsgYGNybS9sZWFkcy9nZXQtb25lP2xlYWRJZD0ke2xlYWRJZH1gXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRSZWdpc3RyYXRpb25MaXN0KHBheWxvYWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoXHJcbiAgICAgIHRoaXMuQ01JU19VUkwgKyBgY3JtL3JlZ2lzdHJhdGlvbi9nZXRBbGxgLCBwYXlsb2FkXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRBbGxDb21wb25lbnRDYXRlZ29yaWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgYWRtaW4vbWFzdGVyL3RlbXBsYXRlL2NhdGVnb3J5L2FsbGBcclxuICAgIClcclxuICB9XHJcbiAgZ2V0VGVtcGxhdGUoKSB7XHJcbiAgICBsZXQgdGVtcGxhdGVJZCA9XHJcbiAgICAgIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2JEZXRhaWxzJykpKSA/XHJcbiAgICAgICAgSlNPTi5wYXJzZShKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdiRGV0YWlscycpKSkpPy50ZW1wbGF0ZUlkIDpcclxuICAgICAgICBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlRGF0YScpID8/ICd7fScpPy5ob21lUGFnZUlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgYnVzaW5lc3MvdjMvd2Vic2l0ZS8ke3RlbXBsYXRlSWR9L3BhZ2VzL2xpc3RgXHJcbiAgICApXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0RWNvbW1lcmNlQ29uZmlncygpIHtcclxuICAgIGNvbnN0IGJ1c2luZXNzSWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NJZCcpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL2Vjb21tZXJjZS9jb25maWcvYWxsP2J1c2luZXNzSWQ9JHtidXNpbmVzc0lkfWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwb3N0VmlkZW9DYWxsRGV0YWlscyhwYXlsb2FkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvZWNvbW1lcmNlL2NvbmZpZy92aWRlby1jYWxsYCwgcGF5bG9hZFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVMb2NhdG9yRGV0YWlscyhwaW5jb2RlOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICB0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9zdG9yZS9uZWFyYnk/cGluY29kZT0ke3BpbmNvZGV9JmJ1c2luZXNzSWQ9JHtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NJZCcpfWBcclxuICAgIClcclxuICB9XHJcblxyXG4gIHNhdmVJbWFnZXNUb0J1c2luZXNzTGlicmFyeShtZWRpYVJlcXVlc3Q6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICB0aGlzLkJBU0VfVVJMICsgYGFkbWluL2xpYnJhcnkvaW1hZ2UvbGlicmFyeS9zYXZlYCxcclxuICAgICAgbWVkaWFSZXF1ZXN0XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVnZW5lcmF0ZVRleHQocmVxdWVzdDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgYWRtaW4vY29udGVudC9zdWdnZXN0L3YyL3dlYnNpdGUvaW5kaXZpZHVhbGAsIHJlcXVlc3RcclxuICAgIClcclxuICB9XHJcbiAgZ2V0Q2F0ZWdvcmllc0hlYWRlckRhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvcHJvZHVjdC8xZjA1ZjA4NS1kODY1LTZiYzUtODJiNC0wNTcwNjY3ZDZmNWUvaGVhZGVyc2BcclxuICAgIClcclxuICB9XHJcbiAgZ2V0QWxsU3RvcmVzKHBheWxvYWQ6IGFueSkge1xyXG4gICAgbGV0IHVybCA9ICcnXHJcbiAgICBpZiAocGF5bG9hZD8ucGluY29kZSAmJiBwYXlsb2FkLnBpbmNvZGUudG9TdHJpbmcoKS5sZW5ndGggPT0gNikge1xyXG4gICAgICB1cmwgPSB1cmwgKyBgICZwaW5jb2RlPSR7cGF5bG9hZC5waW5jb2RlfWBcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KFxyXG4gICAgICB0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9zdG9yZS9nZXQvdjI/YnVzaW5lc3NJZD0ke3BheWxvYWQuYnVzaW5lc3NJZH0ke3VybH1gLCAnJ1xyXG4gICAgKVxyXG4gIH1cclxuICBnZXRTdG9yZUJ5SWQoc3RvcmVJZDogc3RyaW5nKSB7XHJcbiAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgc3RvcmVJZDogc3RvcmVJZCxcclxuICAgICAgYnVzaW5lc3NJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzSWQnKSA/PyBcIlwiLFxyXG4gICAgICBwYWdlTm86IDAsXHJcbiAgICAgIHBhZ2VTaXplOiAxXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChcclxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2Uvc3RvcmUvZ2V0YCwgcGF5bG9hZClcclxuICB9XHJcbiAgcG9zdE5ld3NMZXR0ZXIoZW1haWw6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICB0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9jb25maWcvcmVnaXN0ZXJlZC9uZXdzbGV0dGVyP2VtYWlsPSR7ZW1haWx9JmJ1c2luZXNzSWQ9JHtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NJZCcpfWAsICcnXHJcbiAgICApXHJcbiAgfVxyXG4gIGFkZFJldmlld1RvUHJvZHVjdChwYXlsb2FkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9hZGQvcmV2aWV3P29yZGVySWQ9JHtwYXlsb2FkLm9yZGVySWR9YCwgcGF5bG9hZFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU3RvcmVzT3JyYShwYWdlTm86IGFueSwgc2l6ZTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYGh0dHBzOi8vc3RhZ2VhcGktb3JyYS5sZXRzbW9iaWxpdHkuY29tL3N0b3JlP3BhZ2VObz0ke3BhZ2VOb30mc2l6ZT0ke3NpemV9YFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0c3RhZmZCeVN0b3JlSWQoc3RvcmVJZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYGh0dHBzOi8vc3RhZ2VhcGktb3JyYS5sZXRzbW9iaWxpdHkuY29tL3N0YWZmL2dldC8ke3N0b3JlSWR9YFxyXG4gICAgKVxyXG4gIH1cclxuXHJcblxyXG4gIGdldEFsbFNjaGVtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgaHR0cHM6Ly9zdGFnZWFwaS1vcnJhLmxldHNtb2JpbGl0eS5jb20vc2NoZW1lL2dldEFsbFNjaGVtZXMvZGFzaGJvYXJkYFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU3RhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYGh0dHBzOi8vc3RhZ2VhcGktb3JyYS5sZXRzbW9iaWxpdHkuY29tL3N0YXRlL2dldEFsbGBcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldENpdHlCeVN0YXRlQnlwYWdpbmF0ZWQoc3RhdGVJZDogYW55LCBwYWdlTm86IGFueSwgc2l6ZTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYGh0dHBzOi8vc3RhZ2VhcGktb3JyYS5sZXRzbW9iaWxpdHkuY29tL2NpdHkvZ2V0QnlTdGF0ZT9zdGF0ZUlkPSR7c3RhdGVJZH0mcGFnZU5vPSR7cGFnZU5vfSZzaXplPSR7c2l6ZX1gXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUJ5U2xhYihkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KFxyXG4gICAgICBgaHR0cHM6Ly9zdGFnZWFwaS1vcnJhLmxldHNtb2JpbGl0eS5jb20vc3RvcmUvZ2V0U2xhYmAsIGRhdGFcclxuICAgIClcclxuICB9XHJcblxyXG4gIGFkZFRyaWFsSXRlbShyZXF1ZXN0OiBzeW5jSXRlbVRvU2VydmVyREJSZXF1ZXN0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChcclxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2Uvb3JkZXIvY2FydC92MmAsIHJlcXVlc3RcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNoZWNrSXRlbUFscmVhZHlBZGRlZChyZXF1ZXN0OiBjaGVja0l0ZW1BbHJlYWR5QWRkZWQpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KFxyXG4gICAgICB0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci9jYXJ0L2NoZWNrL2l0ZW1gLCByZXF1ZXN0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBkZWxldGVJdGVtRnJvbUNhcnQocmVxdWVzdDogY2hlY2tJdGVtQWxyZWFkeUFkZGVkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChcclxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvY2FydC9yZW1vdmVgLCByZXF1ZXN0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBib29rQXBwb2ludG1lbnQocmVxdWVzdDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3VzZXIvdHJ5LWhvbWVgLCByZXF1ZXN0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjcmVhdGVFbnJvbGxtZW50U2NoZW1lKGVucm9sbGVtZW50OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCAgaHR0cHM6Ly9zdGFnZWFwaS1vcnJhLmxldHNtb2JpbGl0eS5jb20vZW5yb2xsbWVudC9jcmVhdGUvbmV3L3RlbXA/bWFudWFsUGF5PXRydWUmaXNXZWJSZXF1ZXN0PXRydWVcclxuYCwgZW5yb2xsZW1lbnRcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldEhvbWVBcHBvaW50bWVudExpc3QodXNlcklkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGJ1c2luZXNzSWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYklkJyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci90cnktaG9tZT91c2VySWQ9JHt1c2VySWR9JmJ1c2luZXNzSWQ9JHtidXNpbmVzc0lkfWBcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldEFsbE9ycmFTY2hlbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgJ2h0dHBzOi8vc3RhZ2VhcGktb3JyYS5sZXRzbW9iaWxpdHkuY29tL3Bhc3NCb29rL3JlZGVtcHRpb24vYW1vdW50L2NoZWNrP3VzZXJDb2RlPUNfMDAwMzEzODg1J1xyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcmVkZWVtU2NoZW1lKHNjaGVtZTogc3RyaW5nLCBjYXJ0SWQ6IGFueSwgYWN0aW9uOiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL29yZGVyL2NhcnQvcmVkZW1wdGlvbj9jYXJ0SWQ9JHtjYXJ0SWR9JnJlbW92ZVNjaGVtZT0ke2FjdGlvbn1gLCBzY2hlbWVcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldFJldmlld3NCeVByb2R1Y3RJZChwcm9kdWN0SWQ6IHN0cmluZywgcGFnZU51bWJlcjogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChcclxuICAgICAgdGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9maWx0ZXIvcmV2aWV3cz9wcm9kdWN0SWQ9JHtwcm9kdWN0SWR9JnBhZ2VOdW1iZXI9JHtwYWdlTnVtYmVyfSZwYWdlU2l6ZT0zYCwge31cclxuICAgIClcclxuICB9XHJcbiAgZ2V0RmllbGRzVG9EaXNwbGF5KGZpZWxkc0xpc3Q6IGFueVtdKSB7XHJcbiAgICBsZXQgbWFwOiBhbnkgPSB7fTtcclxuXHJcbiAgICBmb3IgKGxldCBmaWVsZCBvZiBmaWVsZHNMaXN0KSB7XHJcbiAgICAgIGZvciAobGV0IGZpZWxkR3JvdXAgb2YgZmllbGQuZmllbGRHcm91cCkge1xyXG4gICAgICAgIGlmICghZmllbGRHcm91cC5maWVsZFN0ZXBJZClcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICBsZXQgc3RlcE5hbWUgPSBmaWVsZEdyb3VwLmZpZWxkU3RlcE5hbWUgPyBmaWVsZEdyb3VwLmZpZWxkU3RlcE5hbWUgOiAndW5kZWZpbmVkJztcclxuICAgICAgICBsZXQgZ3JvdXBOYW1lID0gZmllbGRHcm91cC5maWVsZEdyb3VwTmFtZTtcclxuXHJcbiAgICAgICAgaWYgKCFtYXBbc3RlcE5hbWVdKSB7XHJcbiAgICAgICAgICBtYXBbc3RlcE5hbWVdID0ge307XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghbWFwW3N0ZXBOYW1lXVtncm91cE5hbWVdKSB7XHJcbiAgICAgICAgICBtYXBbc3RlcE5hbWVdW2dyb3VwTmFtZV0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmllbGRbJ2ZpZWxkU3RlcElkJ10gPSBmaWVsZEdyb3VwLmZpZWxkU3RlcElkO1xyXG4gICAgICAgIGZpZWxkWydmaWVsZEdyb3VwSWQnXSA9IGZpZWxkR3JvdXAuZmllbGRHcm91cElkO1xyXG5cclxuICAgICAgICBjb25zdCBuZXdGaWVsZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZmllbGQpKTtcclxuICAgICAgICBtYXBbc3RlcE5hbWVdW2dyb3VwTmFtZV0ucHVzaChuZXdGaWVsZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbWFwO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
21
21
|
standalone: true
|
|
22
22
|
}]
|
|
23
23
|
}], ctorParameters: () => [{ type: i1.DomSanitizer }] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FuaXRpemVIdG1sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9zYW5pdGl6ZUh0bWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQU9wRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW9CLFVBQXVCO1FBQXZCLGVBQVUsR0FBVixVQUFVLENBQWE7SUFDM0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxDQUFRO1FBQ2hCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNQLE9BQU8sRUFBRSxDQUFDLENBQUUsK0RBQStEO1FBQzdFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQzsrR0FWVSxnQkFBZ0I7NkdBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnc2FuaXRpemVIdG1sJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYW5pdGl6ZUh0bWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3Nhbml0aXplcjpEb21TYW5pdGl6ZXIpIHtcclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybSh2OnN0cmluZyk6U2FmZUh0bWwge1xyXG4gICAgaWYgKCF2KSB7XHJcbiAgICAgIHJldHVybiAnJzsgIC8vIFJldHVybiBhbiBlbXB0eSBzdHJpbmcgaWYgdmFsdWUgaXMgbnVsbCwgdW5kZWZpbmVkLCBvciBlbXB0eVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh2KTtcclxuICB9XHJcbn1cclxuIl19
|