simpo-component-library 3.6.929 → 3.6.931

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.
Files changed (134) hide show
  1. package/esm2022/lib/directive/button-editor.directive.mjs +1 -1
  2. package/esm2022/lib/directive/image-directive.directive.mjs +1 -1
  3. package/esm2022/lib/directive/image-editor.directive.mjs +1 -1
  4. package/esm2022/lib/directive/image-position.directive.mjs +1 -1
  5. package/esm2022/lib/directive/merge-header.directive.mjs +1 -1
  6. package/esm2022/lib/directive/spacing-around.directive.mjs +1 -1
  7. package/esm2022/lib/directive/video-directive.directive.mjs +1 -1
  8. package/esm2022/lib/ecommerce/sections/address/address.component.mjs +3 -3
  9. package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +17 -13
  10. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +22 -14
  11. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
  12. package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.component.mjs +3 -3
  13. package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.model.mjs +1 -1
  14. package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
  15. package/esm2022/lib/ecommerce/sections/categories-with-image-background-columns/categories-with-image-background-columns.component.mjs +3 -3
  16. package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +3 -3
  17. package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
  18. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +1 -1
  19. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
  20. package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +1 -1
  21. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +2 -2
  22. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
  23. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +10 -7
  24. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
  25. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +16 -15
  26. package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.component.mjs +3 -3
  27. package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.modal.mjs +1 -1
  28. package/esm2022/lib/ecommerce/sections/scheme-details/scheme-details.component.mjs +1 -1
  29. package/esm2022/lib/ecommerce/sections/schemes/schemes.component.mjs +3 -3
  30. package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +3 -3
  31. package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
  32. package/esm2022/lib/elements/add-section/add-section.component.mjs +3 -3
  33. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +1 -1
  34. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +1 -1
  35. package/esm2022/lib/elements/editor-service.service.mjs +1 -1
  36. package/esm2022/lib/elements/link-editor/link-editor.component.mjs +3 -3
  37. package/esm2022/lib/elements/media-selector/media-selector.component.mjs +3 -3
  38. package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +3 -3
  39. package/esm2022/lib/elements/schedule-video-call/schedule-video-call.component.mjs +3 -3
  40. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +9 -9
  41. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +1 -1
  42. package/esm2022/lib/pipes/gender.pipe.mjs +1 -1
  43. package/esm2022/lib/sections/BaseSection.mjs +1 -1
  44. package/esm2022/lib/sections/appointment-form/appointment-booking/appointment-booking/appointment-booking.component.mjs +3 -3
  45. package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +3 -3
  46. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -3
  47. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +3 -3
  48. package/esm2022/lib/sections/blog-list/blog-list.component.mjs +3 -3
  49. package/esm2022/lib/sections/brand-story-section/brand-story-section.component.mjs +3 -3
  50. package/esm2022/lib/sections/brand-story-section/brand-story-section.modal.mjs +1 -1
  51. package/esm2022/lib/sections/button-grid-section/button-grid-section.component.mjs +3 -3
  52. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +3 -3
  53. package/esm2022/lib/sections/condensed-and-gradient/condensed-and-gradient.component.mjs +3 -3
  54. package/esm2022/lib/sections/countdown-banner/countdown-banner.component.model.mjs +1 -1
  55. package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.component.mjs +3 -3
  56. package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.modal.mjs +1 -1
  57. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +3 -3
  58. package/esm2022/lib/sections/feature-experience-section/feature-experience-section.component.mjs +3 -3
  59. package/esm2022/lib/sections/feature-experience-section/feature-experience-section.modal.mjs +1 -1
  60. package/esm2022/lib/sections/features-section/features-section.component.mjs +3 -3
  61. package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
  62. package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.component.mjs +3 -3
  63. package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.modal.mjs +1 -1
  64. package/esm2022/lib/sections/header-text/header-text.component.mjs +3 -3
  65. package/esm2022/lib/sections/image-background/image-background/image-background.component.mjs +3 -3
  66. package/esm2022/lib/sections/image-background/image-background/image-background.component.model.mjs +1 -1
  67. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +3 -3
  68. package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.component.mjs +3 -3
  69. package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.model.mjs +1 -1
  70. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +3 -3
  71. package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
  72. package/esm2022/lib/sections/image-section/image-section.component.mjs +3 -3
  73. package/esm2022/lib/sections/location-section/location-section.component.mjs +3 -3
  74. package/esm2022/lib/sections/new-services/new-services.component.mjs +3 -3
  75. package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +3 -3
  76. package/esm2022/lib/sections/news-letter-component/news-letter-component.component.mjs +3 -3
  77. package/esm2022/lib/sections/overlapping-image/overlapping-image.component.mjs +3 -3
  78. package/esm2022/lib/sections/overlapping-image/overlapping-image.component.modal.mjs +1 -1
  79. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
  80. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +3 -3
  81. package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -3
  82. package/esm2022/lib/sections/product-info-section/product-info-section.component.mjs +3 -3
  83. package/esm2022/lib/sections/product-info-section/product-info-section.component.modal.mjs +1 -1
  84. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +3 -3
  85. package/esm2022/lib/sections/scheme-detail/scheme-detail.component.mjs +3 -3
  86. package/esm2022/lib/sections/service-section/service-section.component.mjs +3 -3
  87. package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
  88. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +3 -3
  89. package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
  90. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +3 -3
  91. package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.component.mjs +3 -3
  92. package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.model.mjs +1 -1
  93. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +3 -3
  94. package/esm2022/lib/sections/testimonial-slider/testimonial-slider.component.mjs +3 -3
  95. package/esm2022/lib/sections/testimonial-slider/testimonial-slider.model.mjs +1 -1
  96. package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +3 -3
  97. package/esm2022/lib/sections/video-carousel-section/video-carousel-section.component.mjs +3 -3
  98. package/esm2022/lib/sections/video-carousel-section/video-carousel.model.mjs +1 -1
  99. package/esm2022/lib/sections/video-grid-section/video-grid-section.component.mjs +2 -2
  100. package/esm2022/lib/sections/video-grid-section/video-grid-section.model.mjs +1 -1
  101. package/esm2022/lib/sections/video-showcase/video-showcase.component.mjs +4 -4
  102. package/esm2022/lib/sections/view-blog/view-blog.component.mjs +3 -3
  103. package/esm2022/lib/services/analytics.service.mjs +54 -6
  104. package/esm2022/lib/services/cart.service.mjs +28 -35
  105. package/esm2022/lib/services/sanitizeHtml.mjs +1 -1
  106. package/esm2022/lib/services/storage.service.mjs +15 -1
  107. package/esm2022/lib/styles/gradient-extension.mjs +1 -1
  108. package/esm2022/lib/styles/style.model.mjs +1 -1
  109. package/esm2022/lib/styles/text-size.extension.mjs +1 -1
  110. package/esm2022/lib/styles/types.mjs +1 -1
  111. package/esm2022/public-api.mjs +1 -1
  112. package/fesm2022/simpo-component-library.mjs +432 -362
  113. package/fesm2022/simpo-component-library.mjs.map +1 -1
  114. package/lib/components/input-fields/input-fields.component.d.ts +1 -1
  115. package/lib/ecommerce/sections/authenticate-user/authenticate-user.component.d.ts +4 -2
  116. package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +5 -3
  117. package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
  118. package/lib/ecommerce/sections/product-list/product-list.component.d.ts +3 -1
  119. package/lib/ecommerce/sections/schemes/schemes.component.d.ts +1 -1
  120. package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
  121. package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
  122. package/lib/sections/contact-us/contact-us.component.d.ts +1 -1
  123. package/lib/sections/faq-columns-cards/faq-columns-cards.component.d.ts +1 -1
  124. package/lib/sections/faq-section/faq-section.component.d.ts +1 -1
  125. package/lib/sections/image-section/image-section.component.d.ts +2 -2
  126. package/lib/sections/logo-showcase/logo-showcase.component.d.ts +2 -2
  127. package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
  128. package/lib/sections/pricing-section/pricing-section.component.d.ts +2 -2
  129. package/lib/services/analytics.service.d.ts +13 -0
  130. package/lib/services/cart.service.d.ts +5 -7
  131. package/lib/services/storage.service.d.ts +6 -0
  132. package/package.json +1 -1
  133. package/simpo-component-library-3.6.931.tgz +0 -0
  134. package/simpo-component-library-3.6.929.tgz +0 -0
@@ -184,7 +184,7 @@ export class TestimonialSectionComponent extends BaseSection {
184
184
  }
185
185
  }
186
186
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TestimonialSectionComponent, deps: [{ token: i1.EventsService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
187
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TestimonialSectionComponent, isStandalone: true, selector: "simpo-testimonial-section", inputs: { data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, host: { listeners: { "window: resize": "getScreenSize($event)", "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "_mainContainer", first: true, predicate: ["mainContainer"], descendants: true }, { propertyName: "carouselInner", first: true, predicate: ["carouselInner"], descendants: true }, { propertyName: "carouselItems", predicate: ["carouselItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [attr.style]=\"customClass\" [simpoBorder]=\"style?.border\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\"\r\n [class.px-1]=\"screenWidth < 475\">\r\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoLayout]=\"style?.layout\">\r\n <div class=\"row content-side w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\r\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\r\n <div class=\"heading-large\" [simpoContentTitleSpace]=\"headingSpace\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n\r\n <div id=\"testimonialFullWidthCarousel\" class=\"carousel slide mb-1\" data-bs-ride=\"carousel\"\r\n data-bs-keyboard=\"false\">\r\n <ol class=\"carousel-indicators\" [ngStyle]=\"{'color': getIndicatorColor()}\">\r\n <li *ngFor=\"let img of content?.listItem?.data; let i = index\" [class.active]=\"i === 0\"\r\n data-bs-target=\"#testimonialFullWidthCarousel\" [attr.data-bs-slide-to]=\"i\">\r\n </li>\r\n </ol>\r\n <div class=\"carousel-inner\" #carouselInner>\r\n <div class=\"carousel-item\" *ngFor=\"let testimonial of content?.listItem?.data; let i = index\"\r\n [class.active]=\"i === 0\" data-bs-interval=\"10000\" #carouselItem>\r\n <div style=\"width: max-content; margin: auto; max-width: 90%;\" class=\"carousel-parent\"\r\n [class.card-form]=\"content?.display?.showCard\" [simpoCorner]=\"style?.corners\"\r\n [style.borderColor]=\"content?.display?.showCard ? style?.background?.accentColor : 'none'\"\r\n [style.background]=\"content?.display?.showCard ? getColor(style?.background?.accentColor) : 'transparent'\">\r\n <div class=\"carousel-caption d-flex flex-column h-100 bottom-0\" style=\"width: 90%;\" [id]=\"data?.id\"\r\n [simpoColor]=\"style?.background?.color\" [simpoContainerLayout]=\"style?.layout\">\r\n <ng-container *ngIf=\"content?.display?.showImage\">\r\n <img loading=\"lazy\" [src]=\"testimonial?.image?.url\" class=\"mb-1\" loading=\"lazy\"\r\n [simpoContainerLayout]=\"getLayout\" [appImageEditor]=\"edit || false\"\r\n [imageData]=\"testimonial.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\r\n </ng-container>\r\n <simpo-text-editor [(value)]=\"testimonial.inputText[0].value\"\r\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"0\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[0]?.isRTE\"></simpo-text-editor>\r\n <ng-container *ngIf=\"testimonial?.inputText?.[1] as textItem\">\r\n <div class=\"d-flex\">\r\n <simpo-text-editor [(value)]=\"textItem.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"1\" [itemIndex]=\"i\" [isRTE]=\"textItem.isRTE\"></simpo-text-editor>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <a class=\"carousel-control-prev\" data-bs-target=\"#testimonialFullWidthCarousel\" role=\"button\"\r\n data-bs-slide=\"prev\" *ngIf=\"getLength() > 1\">\r\n <span class=\"carousel-control-prev-icon previous-icon\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Previous</span>\r\n </a>\r\n <a class=\"carousel-control-next\" data-bs-target=\"#testimonialFullWidthCarousel\" role=\"button\"\r\n data-bs-slide=\"next\" *ngIf=\"getLength() > 1\">\r\n <span class=\"carousel-control-next-icon previous-icon\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Next</span>\r\n </a>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>", styles: [".total-container{position:relative}.carousel-caption{padding:0!important;left:0%!important;right:0%!important;text-align:unset!important;position:relative!important}.carousel-caption img{width:100px;height:100px;border-radius:50%}.heading-large{margin-left:5%;margin-right:5%}.mb-1{margin-bottom:1.5rem!important}.carousel-indicators li{background-color:currentColor;opacity:.5}.carousel-indicators .active{background-color:currentColor;opacity:1}.carousel-indicators{bottom:-45px!important}.carousel-control-prev,.carousel-control-next{width:5%!important}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23666'%3e %3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23666'%3e %3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")}.carousel-item{height:100%;transition:transform .6s ease-in-out,opacity .6s ease-in-out}.previous-icon{position:absolute;height:45px}.card-form{border-width:2px;border-style:solid;padding:16px}.carousel-inner{overflow:visible!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}@media screen and (max-width: 475px){.carousel-parent,.carousel-caption{width:100%!important}}li{list-style:none}.heading-medium{font-weight:400!important}\n"], dependencies: [{ kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i2.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i4.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i5.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "directive", type:
187
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TestimonialSectionComponent, isStandalone: true, selector: "simpo-testimonial-section", inputs: { data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, host: { listeners: { "window: resize": "getScreenSize($event)", "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "_mainContainer", first: true, predicate: ["mainContainer"], descendants: true }, { propertyName: "carouselInner", first: true, predicate: ["carouselInner"], descendants: true }, { propertyName: "carouselItems", predicate: ["carouselItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\n class=\"total-container\" [attr.style]=\"customClass\" [simpoBorder]=\"style?.border\">\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\"\n [class.px-1]=\"screenWidth < 475\">\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoLayout]=\"style?.layout\">\n <div class=\"row content-side w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\n <div class=\"heading-large\" [simpoContentTitleSpace]=\"headingSpace\">\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\n </div>\n </div>\n\n <div id=\"testimonialFullWidthCarousel\" class=\"carousel slide mb-1\" data-bs-ride=\"carousel\"\n data-bs-keyboard=\"false\">\n <ol class=\"carousel-indicators\" [ngStyle]=\"{'color': getIndicatorColor()}\">\n <li *ngFor=\"let img of content?.listItem?.data; let i = index\" [class.active]=\"i === 0\"\n data-bs-target=\"#testimonialFullWidthCarousel\" [attr.data-bs-slide-to]=\"i\">\n </li>\n </ol>\n <div class=\"carousel-inner\" #carouselInner>\n <div class=\"carousel-item\" *ngFor=\"let testimonial of content?.listItem?.data; let i = index\"\n [class.active]=\"i === 0\" data-bs-interval=\"10000\" #carouselItem>\n <div style=\"width: max-content; margin: auto; max-width: 90%;\" class=\"carousel-parent\"\n [class.card-form]=\"content?.display?.showCard\" [simpoCorner]=\"style?.corners\"\n [style.borderColor]=\"content?.display?.showCard ? style?.background?.accentColor : 'none'\"\n [style.background]=\"content?.display?.showCard ? getColor(style?.background?.accentColor) : 'transparent'\">\n <div class=\"carousel-caption d-flex flex-column h-100 bottom-0\" style=\"width: 90%;\" [id]=\"data?.id\"\n [simpoColor]=\"style?.background?.color\" [simpoContainerLayout]=\"style?.layout\">\n <ng-container *ngIf=\"content?.display?.showImage\">\n <img loading=\"lazy\" [src]=\"testimonial?.image?.url\" class=\"mb-1\" loading=\"lazy\"\n [simpoContainerLayout]=\"getLayout\" [appImageEditor]=\"edit || false\"\n [imageData]=\"testimonial.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\n </ng-container>\n <simpo-text-editor [(value)]=\"testimonial.inputText[0].value\"\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"0\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[0]?.isRTE\"></simpo-text-editor>\n <ng-container *ngIf=\"testimonial?.inputText?.[1] as textItem\">\n <div class=\"d-flex\">\n <simpo-text-editor [(value)]=\"textItem.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"1\" [itemIndex]=\"i\" [isRTE]=\"textItem.isRTE\"></simpo-text-editor>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <a class=\"carousel-control-prev\" data-bs-target=\"#testimonialFullWidthCarousel\" role=\"button\"\n data-bs-slide=\"prev\" *ngIf=\"getLength() > 1\">\n <span class=\"carousel-control-prev-icon previous-icon\" aria-hidden=\"true\"></span>\n <span class=\"sr-only\">Previous</span>\n </a>\n <a class=\"carousel-control-next\" data-bs-target=\"#testimonialFullWidthCarousel\" role=\"button\"\n data-bs-slide=\"next\" *ngIf=\"getLength() > 1\">\n <span class=\"carousel-control-next-icon previous-icon\" aria-hidden=\"true\"></span>\n <span class=\"sr-only\">Next</span>\n </a>\n </div>\n\n\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".total-container{position:relative}.carousel-caption{padding:0!important;left:0%!important;right:0%!important;text-align:unset!important;position:relative!important}.carousel-caption img{width:100px;height:100px;border-radius:50%}.heading-large{margin-left:5%;margin-right:5%}.mb-1{margin-bottom:1.5rem!important}.carousel-indicators li{background-color:currentColor;opacity:.5}.carousel-indicators .active{background-color:currentColor;opacity:1}.carousel-indicators{bottom:-45px!important}.carousel-control-prev,.carousel-control-next{width:5%!important}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23666'%3e %3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23666'%3e %3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")}.carousel-item{height:100%;transition:transform .6s ease-in-out,opacity .6s ease-in-out}.previous-icon{position:absolute;height:45px}.card-form{border-width:2px;border-style:solid;padding:16px}.carousel-inner{overflow:visible!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}@media screen and (max-width: 475px){.carousel-parent,.carousel-caption{width:100%!important}}li{list-style:none}.heading-medium{font-weight:400!important}\n"], dependencies: [{ kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i2.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i4.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i5.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "directive", type:
188
188
  //directive
189
189
  AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: ContainerFitDirective, selector: "[simpoContainerLayout]", inputs: ["simpoContainerLayout"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "directive", type: ContentTitleDirective, selector: "[simpoContentTitleSpace]", inputs: ["simpoContentTitleSpace"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "isRTE", "sectionId", "label", "type", "inputTextIndex", "itemIndex"], outputs: ["valueChange"] }, { kind: "directive", type: ImageEditorDirective, selector: "[appImageEditor]", inputs: ["appImageEditor", "imageData", "sectionId", "showIcon", "iconData", "itemIndex"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }] }); }
190
190
  }
@@ -219,7 +219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
219
219
  TextEditorComponent,
220
220
  ImageEditorDirective,
221
221
  SpacingHorizontalDirective,
222
- ], template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [attr.style]=\"customClass\" [simpoBorder]=\"style?.border\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\"\r\n [class.px-1]=\"screenWidth < 475\">\r\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoLayout]=\"style?.layout\">\r\n <div class=\"row content-side w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\r\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\r\n <div class=\"heading-large\" [simpoContentTitleSpace]=\"headingSpace\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n\r\n <div id=\"testimonialFullWidthCarousel\" class=\"carousel slide mb-1\" data-bs-ride=\"carousel\"\r\n data-bs-keyboard=\"false\">\r\n <ol class=\"carousel-indicators\" [ngStyle]=\"{'color': getIndicatorColor()}\">\r\n <li *ngFor=\"let img of content?.listItem?.data; let i = index\" [class.active]=\"i === 0\"\r\n data-bs-target=\"#testimonialFullWidthCarousel\" [attr.data-bs-slide-to]=\"i\">\r\n </li>\r\n </ol>\r\n <div class=\"carousel-inner\" #carouselInner>\r\n <div class=\"carousel-item\" *ngFor=\"let testimonial of content?.listItem?.data; let i = index\"\r\n [class.active]=\"i === 0\" data-bs-interval=\"10000\" #carouselItem>\r\n <div style=\"width: max-content; margin: auto; max-width: 90%;\" class=\"carousel-parent\"\r\n [class.card-form]=\"content?.display?.showCard\" [simpoCorner]=\"style?.corners\"\r\n [style.borderColor]=\"content?.display?.showCard ? style?.background?.accentColor : 'none'\"\r\n [style.background]=\"content?.display?.showCard ? getColor(style?.background?.accentColor) : 'transparent'\">\r\n <div class=\"carousel-caption d-flex flex-column h-100 bottom-0\" style=\"width: 90%;\" [id]=\"data?.id\"\r\n [simpoColor]=\"style?.background?.color\" [simpoContainerLayout]=\"style?.layout\">\r\n <ng-container *ngIf=\"content?.display?.showImage\">\r\n <img loading=\"lazy\" [src]=\"testimonial?.image?.url\" class=\"mb-1\" loading=\"lazy\"\r\n [simpoContainerLayout]=\"getLayout\" [appImageEditor]=\"edit || false\"\r\n [imageData]=\"testimonial.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\r\n </ng-container>\r\n <simpo-text-editor [(value)]=\"testimonial.inputText[0].value\"\r\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"0\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[0]?.isRTE\"></simpo-text-editor>\r\n <ng-container *ngIf=\"testimonial?.inputText?.[1] as textItem\">\r\n <div class=\"d-flex\">\r\n <simpo-text-editor [(value)]=\"textItem.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"1\" [itemIndex]=\"i\" [isRTE]=\"textItem.isRTE\"></simpo-text-editor>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <a class=\"carousel-control-prev\" data-bs-target=\"#testimonialFullWidthCarousel\" role=\"button\"\r\n data-bs-slide=\"prev\" *ngIf=\"getLength() > 1\">\r\n <span class=\"carousel-control-prev-icon previous-icon\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Previous</span>\r\n </a>\r\n <a class=\"carousel-control-next\" data-bs-target=\"#testimonialFullWidthCarousel\" role=\"button\"\r\n data-bs-slide=\"next\" *ngIf=\"getLength() > 1\">\r\n <span class=\"carousel-control-next-icon previous-icon\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Next</span>\r\n </a>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>", styles: [".total-container{position:relative}.carousel-caption{padding:0!important;left:0%!important;right:0%!important;text-align:unset!important;position:relative!important}.carousel-caption img{width:100px;height:100px;border-radius:50%}.heading-large{margin-left:5%;margin-right:5%}.mb-1{margin-bottom:1.5rem!important}.carousel-indicators li{background-color:currentColor;opacity:.5}.carousel-indicators .active{background-color:currentColor;opacity:1}.carousel-indicators{bottom:-45px!important}.carousel-control-prev,.carousel-control-next{width:5%!important}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23666'%3e %3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23666'%3e %3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")}.carousel-item{height:100%;transition:transform .6s ease-in-out,opacity .6s ease-in-out}.previous-icon{position:absolute;height:45px}.card-form{border-width:2px;border-style:solid;padding:16px}.carousel-inner{overflow:visible!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}@media screen and (max-width: 475px){.carousel-parent,.carousel-caption{width:100%!important}}li{list-style:none}.heading-medium{font-weight:400!important}\n"] }]
222
+ ], template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\n class=\"total-container\" [attr.style]=\"customClass\" [simpoBorder]=\"style?.border\">\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\"\n [class.px-1]=\"screenWidth < 475\">\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoLayout]=\"style?.layout\">\n <div class=\"row content-side w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\n <div class=\"heading-large\" [simpoContentTitleSpace]=\"headingSpace\">\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\n </div>\n </div>\n\n <div id=\"testimonialFullWidthCarousel\" class=\"carousel slide mb-1\" data-bs-ride=\"carousel\"\n data-bs-keyboard=\"false\">\n <ol class=\"carousel-indicators\" [ngStyle]=\"{'color': getIndicatorColor()}\">\n <li *ngFor=\"let img of content?.listItem?.data; let i = index\" [class.active]=\"i === 0\"\n data-bs-target=\"#testimonialFullWidthCarousel\" [attr.data-bs-slide-to]=\"i\">\n </li>\n </ol>\n <div class=\"carousel-inner\" #carouselInner>\n <div class=\"carousel-item\" *ngFor=\"let testimonial of content?.listItem?.data; let i = index\"\n [class.active]=\"i === 0\" data-bs-interval=\"10000\" #carouselItem>\n <div style=\"width: max-content; margin: auto; max-width: 90%;\" class=\"carousel-parent\"\n [class.card-form]=\"content?.display?.showCard\" [simpoCorner]=\"style?.corners\"\n [style.borderColor]=\"content?.display?.showCard ? style?.background?.accentColor : 'none'\"\n [style.background]=\"content?.display?.showCard ? getColor(style?.background?.accentColor) : 'transparent'\">\n <div class=\"carousel-caption d-flex flex-column h-100 bottom-0\" style=\"width: 90%;\" [id]=\"data?.id\"\n [simpoColor]=\"style?.background?.color\" [simpoContainerLayout]=\"style?.layout\">\n <ng-container *ngIf=\"content?.display?.showImage\">\n <img loading=\"lazy\" [src]=\"testimonial?.image?.url\" class=\"mb-1\" loading=\"lazy\"\n [simpoContainerLayout]=\"getLayout\" [appImageEditor]=\"edit || false\"\n [imageData]=\"testimonial.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\n </ng-container>\n <simpo-text-editor [(value)]=\"testimonial.inputText[0].value\"\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"0\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[0]?.isRTE\"></simpo-text-editor>\n <ng-container *ngIf=\"testimonial?.inputText?.[1] as textItem\">\n <div class=\"d-flex\">\n <simpo-text-editor [(value)]=\"textItem.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"1\" [itemIndex]=\"i\" [isRTE]=\"textItem.isRTE\"></simpo-text-editor>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <a class=\"carousel-control-prev\" data-bs-target=\"#testimonialFullWidthCarousel\" role=\"button\"\n data-bs-slide=\"prev\" *ngIf=\"getLength() > 1\">\n <span class=\"carousel-control-prev-icon previous-icon\" aria-hidden=\"true\"></span>\n <span class=\"sr-only\">Previous</span>\n </a>\n <a class=\"carousel-control-next\" data-bs-target=\"#testimonialFullWidthCarousel\" role=\"button\"\n data-bs-slide=\"next\" *ngIf=\"getLength() > 1\">\n <span class=\"carousel-control-next-icon previous-icon\" aria-hidden=\"true\"></span>\n <span class=\"sr-only\">Next</span>\n </a>\n </div>\n\n\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".total-container{position:relative}.carousel-caption{padding:0!important;left:0%!important;right:0%!important;text-align:unset!important;position:relative!important}.carousel-caption img{width:100px;height:100px;border-radius:50%}.heading-large{margin-left:5%;margin-right:5%}.mb-1{margin-bottom:1.5rem!important}.carousel-indicators li{background-color:currentColor;opacity:.5}.carousel-indicators .active{background-color:currentColor;opacity:1}.carousel-indicators{bottom:-45px!important}.carousel-control-prev,.carousel-control-next{width:5%!important}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23666'%3e %3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23666'%3e %3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")}.carousel-item{height:100%;transition:transform .6s ease-in-out,opacity .6s ease-in-out}.previous-icon{position:absolute;height:45px}.card-form{border-width:2px;border-style:solid;padding:16px}.carousel-inner{overflow:visible!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}@media screen and (max-width: 475px){.carousel-parent,.carousel-caption{width:100%!important}}li{list-style:none}.heading-medium{font-weight:400!important}\n"] }]
223
223
  }], ctorParameters: () => [{ type: i1.EventsService }, { type: i0.Renderer2 }], propDecorators: { data: [{
224
224
  type: Input
225
225
  }], index: [{
@@ -248,4 +248,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
248
248
  type: HostListener,
249
249
  args: ['window:resize']
250
250
  }] } });
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGltb25pYWwtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3Rlc3RpbW9uaWFsLXNlY3Rpb24vdGVzdGltb25pYWwtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3Rlc3RpbW9uaWFsLXNlY3Rpb24vdGVzdGltb25pYWwtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNMUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNo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Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQiw4QkFBOEI7d0JBQzlCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZiwwQkFBMEI7d0JBQzFCLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLGdDQUFnQzt3QkFDaEMsZ0NBQWdDO3dCQUNoQyxjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3FCQUMzQjswR0FLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ3NCLGNBQWM7c0JBQXpDLFNBQVM7dUJBQUMsZUFBZTtnQkFDcUIsYUFBYTtzQkFBM0QsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNmLGFBQWE7c0JBQTFDLFlBQVk7dUJBQUMsY0FBYztnQkE0RjVCLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF5QjFDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHRlc3RpbW9uaWFsQ29udGVudE1vZGVsLFxuICB0ZXN0aW1vbmlhbFNlY3Rpb25Nb2RlbCxcbiAgdGVzdGltb25pYWxTdHlsZXNNb2RlbCxcbn0gZnJvbSAnLi90ZXN0aW1vbmlhbC1zZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTaW1wb0VsZW1lbnRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvaW5kZXgnO1xuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2luZGV4JztcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYW5uZXItY29udGVudC1maXQtZGlyZWN0aXZlJztcbmltcG9ydCB7IEJvcmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ib3JkZXItZGlyZWN0aXZlJztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGFpbmVyRml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRhaW5lci1maXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWFsaWdubWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvZm9vdGVyLWxheW91dC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvc2l0aW9uTGF5b3V0RGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3Bvc2l0aW9uLWxheW91dC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xuaW1wb3J0IHsgQ29udGVudFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtdGl0bGUtc3BhY2luZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU1BBQ0lORyB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IFNhbml0aXplSHRtbFBpcGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYW5pdGl6ZUh0bWwnO1xuaW1wb3J0IHsgVGV4dEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZUVkaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1lZGl0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctaG9yaXpvbnRhbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLXRlc3RpbW9uaWFsLXNlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgU2ltcG9FbGVtZW50c01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXG4gICAgLy9kaXJlY3RpdmVcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcbiAgICBCYW5uZXJDb250ZW50Rml0RGlyZWN0aXZlLFxuICAgIEJvcmRlckRpcmVjdGl2ZSxcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIENvbnRhaW5lckZpdERpcmVjdGl2ZSxcbiAgICBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBDb3JuZXJEaXJlY3RpdmUsXG4gICAgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUsXG4gICAgSG92ZXJEaXJlY3RpdmUsXG4gICAgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBQb3NpdGlvbkxheW91dERpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBDb2xvckRpcmVjdGl2ZSxcbiAgICBDb250ZW50VGl0bGVEaXJlY3RpdmUsXG4gICAgU2FuaXRpemVIdG1sUGlwZSxcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxuICAgIEltYWdlRWRpdG9yRGlyZWN0aXZlLFxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVzdGltb25pYWwtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90ZXN0aW1vbmlhbC1zZWN0aW9uLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIFRlc3RpbW9uaWFsU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIHtcbiAgQElucHV0KCkgZGF0YT86IHRlc3RpbW9uaWFsU2VjdGlvbk1vZGVsO1xuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcbiAgQFZpZXdDaGlsZCgnbWFpbkNvbnRhaW5lcicpIF9tYWluQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XG4gIEBWaWV3Q2hpbGQoJ2Nhcm91c2VsSW5uZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY2Fyb3VzZWxJbm5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkcmVuKCdjYXJvdXNlbEl0ZW0nKSBjYXJvdXNlbEl0ZW1zITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PjtcbiAgY29udGVudD86IHRlc3RpbW9uaWFsQ29udGVudE1vZGVsO1xuICBzdHlsZT86IHRlc3RpbW9uaWFsU3R5bGVzTW9kZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcbiAgICB0aGlzLnN0eWxlID0gdGhpcy5kYXRhPy5zdHlsZXM7XG4gICAgdGhpcy5kZWxldGVTZWxlY3RlZCA9IHRoaXMuZGVsZXRlXG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVDYXJvdXNlbEhlaWdodCgpLCA1MCk7XG5cbiAgICAvLyBJZiB0aGUgY29udGVudCBsaXN0IGNhbiBjaGFuZ2UgZHluYW1pY2FsbHksIHN1YnNjcmliZSB0byBRdWVyeUxpc3QgY2hhbmdlc1xuICAgIHRoaXMuY2Fyb3VzZWxJdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyByZS1jYWxjIG9uY2UgY2Fyb3VzZWwgaXRlbXMgbGlzdCBjaGFuZ2VzXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ2Fyb3VzZWxIZWlnaHQoKSwgNTApO1xuICAgIH0pO1xuICB9XG4gIGdldCBoZWFkaW5nU3BhY2UoKTogU1BBQ0lORyB7XG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LmxheW91dC5oZWFkaW5nU3BhY2luZyBhcyBTUEFDSU5HO1xuICB9XG4gIGdldCBnZXRMYXlvdXQoKTogTGF5T3V0TW9kZWwge1xuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGU/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xuICB9XG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZT8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XG4gIH1cbiAgZ2V0Q29sb3IoaGV4OiBhbnksIGFtb3VudDogYW55ID0gMC44KSB7XG4gICAgaGV4ID0gaGV4LnJlcGxhY2UoL14jLywgJycpO1xuICAgIGxldCByID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygwLCAyKSwgMTYpO1xuICAgIGxldCBnID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygyLCA0KSwgMTYpO1xuICAgIGxldCBiID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZyg0LCA2KSwgMTYpO1xuICAgIHIgPSBNYXRoLnJvdW5kKHIgKyAoMjU1IC0gcikgKiBhbW91bnQpO1xuICAgIGcgPSBNYXRoLnJvdW5kKGcgKyAoMjU1IC0gZykgKiBhbW91bnQpO1xuICAgIGIgPSBNYXRoLnJvdW5kKGIgKyAoMjU1IC0gYikgKiBhbW91bnQpO1xuICAgIGNvbnN0IHRvSGV4ID0gKG46IG51bWJlcikgPT4gbi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKTtcbiAgICByZXR1cm4gYCMke3RvSGV4KHIpfSR7dG9IZXgoZyl9JHt0b0hleChiKX1gO1xuICB9XG4gIGdldEluZGljYXRvckNvbG9yKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmcgPSB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kO1xuXG4gICAgaWYgKCFiZykgcmV0dXJuICcjMDAwJztcblxuICAgIGlmIChiZy5iYWNrZ3JvdW5kVHlwZSA9PT0gJ1NvbGlkJykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNEYXJrQ29sb3IoYmcuY29sb3IpID8gJyNmZmZmZmYnIDogJyMwMDAwMDAnO1xuICAgIH1cblxuICAgIGlmIChiZy5iYWNrZ3JvdW5kVHlwZSA9PT0gJ0dyYWRpZW50Jykge1xuICAgICAgY29uc3QgaXNQcmltYXJ5RGFyayA9IHRoaXMuaXNEYXJrQ29sb3IoYmcuY29sb3IpO1xuICAgICAgY29uc3QgaXNTZWNvbmRhcnlEYXJrID0gdGhpcy5pc0RhcmtDb2xvcihiZy5zZWNvbmRhcnlDb2xvcik7XG5cbiAgICAgIC8vIElmIGJvdGggYXJlIGRhcmsg4oaSIHVzZSB3aGl0ZVxuICAgICAgaWYgKGlzUHJpbWFyeURhcmsgJiYgaXNTZWNvbmRhcnlEYXJrKSB7XG4gICAgICAgIHJldHVybiAnI2ZmZmZmZic7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIGJvdGggYXJlIGxpZ2h0IOKGkiB1c2UgYmxhY2tcbiAgICAgIGlmICghaXNQcmltYXJ5RGFyayAmJiAhaXNTZWNvbmRhcnlEYXJrKSB7XG4gICAgICAgIHJldHVybiAnIzAwMDAwMCc7XG4gICAgICB9XG5cbiAgICAgIC8vIE1peGVkIOKGkiBjaG9vc2Ugc2FmZXN0IGNvbnRyYXN0ICh3aGl0ZSB1c3VhbGx5IGJldHRlcilcbiAgICAgIHJldHVybiAnI2ZmZmZmZic7XG4gICAgfVxuXG4gICAgcmV0dXJuICcjMDAwMDAwJztcbiAgfVxuICBpc0RhcmtDb2xvcihoZXg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghaGV4KSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBSZW1vdmUgI1xuICAgIGhleCA9IGhleC5yZXBsYWNlKCcjJywgJycpO1xuXG4gICAgLy8gQ29udmVydCB0byBSR0JcbiAgICBjb25zdCByID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygwLCAyKSwgMTYpO1xuICAgIGNvbnN0IGcgPSBwYXJzZUludChoZXguc3Vic3RyaW5nKDIsIDQpLCAxNik7XG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGhleC5zdWJzdHJpbmcoNCwgNiksIDE2KTtcblxuICAgIC8vIFBlcmNlaXZlZCBicmlnaHRuZXNzIGZvcm11bGFcbiAgICBjb25zdCBicmlnaHRuZXNzID0gKHIgKiAyOTkgKyBnICogNTg3ICsgYiAqIDExNCkgLyAxMDAwO1xuXG4gICAgcmV0dXJuIGJyaWdodG5lc3MgPCAxMjg7IC8vIHRydWUgPSBkYXJrXG4gIH1cbiAgc2NyZWVuV2lkdGg6IGFueSA9IFwiXCJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzogcmVzaXplXCIsIFtcIiRldmVudFwiXSlcbiAgZ2V0U2NyZWVuU2l6ZSgpIHtcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudD8ubGlzdEl0ZW0/LmRhdGE/Lmxlbmd0aCA/PyAwXG4gIH1cbiAgZWRpdFNlY3Rpb24oKSB7XG5cbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KVxuICAgICAgcmV0dXJuO1xuXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSByZXNpemVUaW1lb3V0ID0gMCBhcyBhbnk7XG4gIHByaXZhdGUgY29udGVudENoYW5nZXNTdWI/OiBTdWJzY3JpcHRpb247XG4gIC8vIE9wdGlvbmFsOiBiaW5kIHRvIHRlbXBsYXRlIGlmIHlvdSBwcmVmZXIgW3N0eWxlLmhlaWdodC5weF09XCJjYXJvdXNlbEhlaWdodFwiXG4gIGNhcm91c2VsSGVpZ2h0UHg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25XaW5kb3dSZXNpemUoKSB7XG4gICAgLy8gZGVib3VuY2VcbiAgICBpZiAodGhpcy5yZXNpemVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KTtcbiAgICB9XG4gICAgdGhpcy5yZXNpemVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUNhcm91c2VsSGVpZ2h0KCksIDEyMCk7XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVDYXJvdXNlbEhlaWdodCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2Fyb3VzZWxJdGVtcyB8fCB0aGlzLmNhcm91c2VsSXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuY2Fyb3VzZWxJdGVtcy50b0FycmF5KCkubWFwKHEgPT4gcS5uYXRpdmVFbGVtZW50KTtcblxuICAgIC8vIFdhaXQgZm9yIGFsbCBpbWFnZXMgaW5zaWRlIGl0ZW1zIHRvIGxvYWRcbiAgICBjb25zdCBpbWFnZVByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcblxuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCBpbWdzOiBIVE1MSW1hZ2VFbGVtZW50W10gPSBBcnJheS5mcm9tKGl0ZW0ucXVlcnlTZWxlY3RvckFsbCgnaW1nJykpO1xuICAgICAgaW1ncy5mb3JFYWNoKGltZyA9PiB7XG4gICAgICAgIGlmIChpbWcuY29tcGxldGUpIHtcbiAgICAgICAgICAvLyBhbHJlYWR5IGxvYWRlZFxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpbWFnZVByb21pc2VzLnB1c2gobmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiByZXNvbHZlKCkpO1xuICAgICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsICgpID0+IHJlc29sdmUoKSk7IC8vIHJlc29sdmUgYW55d2F5XG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgUHJvbWlzZS5hbGwoaW1hZ2VQcm9taXNlcykudGhlbigoKSA9PiB7XG4gICAgICAvLyBnaXZlIGxheW91dCBhIHRpbnkgdGltZSB0byBzZXR0bGVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBsZXQgbWF4SCA9IDE1O1xuICAgICAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIC8vIHVzZSBvZmZzZXRIZWlnaHQgdG8gaW5jbHVkZSBwYWRkaW5nL2JvcmRlclxuICAgICAgICAgIGNvbnN0IGggPSAoaXRlbSBhcyBIVE1MRWxlbWVudCkub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgIGlmIChoID4gbWF4SCkgbWF4SCA9IGg7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHNhZmV0eTogc21hbGwgbWluaW11bVxuICAgICAgICBpZiAobWF4SCA8IDEwMCkgbWF4SCA9IDEwMDtcblxuICAgICAgICAvLyBzZXQgaGVpZ2h0IG9uIGNhcm91c2VsLWlubmVyIChvciB1c2UgYmluZGluZyB0byBjYXJvdXNlbEhlaWdodFB4KVxuICAgICAgICB0aGlzLmNhcm91c2VsSGVpZ2h0UHggPSBtYXhIO1xuICAgICAgICAvLyBpZiAodGhpcy5jYXJvdXNlbElubmVyICYmIHRoaXMuY2Fyb3VzZWxJbm5lci5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIC8vICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhcm91c2VsSW5uZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke21heEh9cHhgKTtcbiAgICAgICAgLy8gICAvLyBvcHRpb25hbDogc2V0IG1pbi1oZWlnaHQgb24gZWFjaCBpdGVtIHRvbyBzbyBjb250ZW50IGRvZXNuJ3QganVtcCBtaWQtdHJhbnNpdGlvblxuICAgICAgICAvLyAgIGl0ZW1zLmZvckVhY2goaXQgPT4gdGhpcy5yZW5kZXJlci5zZXRTdHlsZShpdCwgJ21pbi1oZWlnaHQnLCBgJHttYXhIfXB4YCkpO1xuICAgICAgICAvLyB9XG4gICAgICB9LCA1MCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50Q2hhbmdlc1N1Yikge1xuICAgICAgdGhpcy5jb250ZW50Q2hhbmdlc1N1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXNpemVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KTtcbiAgICB9XG5cbiAgfVxufSIsIjxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGU/LmJhY2tncm91bmRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiXHJcbiAgY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiIFtzaW1wb0JvcmRlcl09XCJzdHlsZT8uYm9yZGVyXCI+XHJcbiAgPGRpdiAjbWFpbkNvbnRhaW5lciBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PdmVybGF5XT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiXHJcbiAgICBbY2xhc3MucHgtMV09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZT8ubGF5b3V0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY29udGVudC1zaWRlIHctMTAwXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlPy5hbmltYXRpb25cIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0ZXh0IG9mIGRhdGE/LmNvbnRlbnQ/LmlucHV0VGV4dDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbGFyZ2VcIiBbc2ltcG9Db250ZW50VGl0bGVTcGFjZV09XCJoZWFkaW5nU3BhY2VcIj5cclxuICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRleHQudmFsdWVcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbaW5wdXRUZXh0SW5kZXhdPVwiaVwiIFtpc1JURV09XCJ0ZXh0LmlzUlRFXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGlkPVwidGVzdGltb25pYWxGdWxsV2lkdGhDYXJvdXNlbFwiIGNsYXNzPVwiY2Fyb3VzZWwgc2xpZGUgbWItMVwiIGRhdGEtYnMtcmlkZT1cImNhcm91c2VsXCJcclxuICAgICAgICAgIGRhdGEtYnMta2V5Ym9hcmQ9XCJmYWxzZVwiPlxyXG4gICAgICAgICAgPG9sIGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiIFtuZ1N0eWxlXT1cInsnY29sb3InOiBnZXRJbmRpY2F0b3JDb2xvcigpfVwiPlxyXG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGltZyBvZiBjb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGkgPSBpbmRleFwiIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0gMFwiXHJcbiAgICAgICAgICAgICAgZGF0YS1icy10YXJnZXQ9XCIjdGVzdGltb25pYWxGdWxsV2lkdGhDYXJvdXNlbFwiIFthdHRyLmRhdGEtYnMtc2xpZGUtdG9dPVwiaVwiPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC9vbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pbm5lclwiICNjYXJvdXNlbElubmVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbVwiICpuZ0Zvcj1cImxldCB0ZXN0aW1vbmlhbCBvZiBjb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpID09PSAwXCIgZGF0YS1icy1pbnRlcnZhbD1cIjEwMDAwXCIgI2Nhcm91c2VsSXRlbT5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IG1heC1jb250ZW50OyBtYXJnaW46IGF1dG87IG1heC13aWR0aDogOTAlO1wiIGNsYXNzPVwiY2Fyb3VzZWwtcGFyZW50XCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5jYXJkLWZvcm1dPVwiY29udGVudD8uZGlzcGxheT8uc2hvd0NhcmRcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dDYXJkID8gc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogJ25vbmUnXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dDYXJkID8gZ2V0Q29sb3Ioc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yKSA6ICd0cmFuc3BhcmVudCdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1jYXB0aW9uIGQtZmxleCBmbGV4LWNvbHVtbiBoLTEwMCBib3R0b20tMFwiIHN0eWxlPVwid2lkdGg6IDkwJTtcIiBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzdHlsZT8uYmFja2dyb3VuZD8uY29sb3JcIiBbc2ltcG9Db250YWluZXJMYXlvdXRdPVwic3R5bGU/LmxheW91dFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8uZGlzcGxheT8uc2hvd0ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwidGVzdGltb25pYWw/LmltYWdlPy51cmxcIiBjbGFzcz1cIm1iLTFcIiBsb2FkaW5nPVwibGF6eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2ltcG9Db250YWluZXJMYXlvdXRdPVwiZ2V0TGF5b3V0XCIgW2FwcEltYWdlRWRpdG9yXT1cImVkaXQgfHwgZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2ltYWdlRGF0YV09XCJ0ZXN0aW1vbmlhbC5pbWFnZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbaXRlbUluZGV4XT1cImlcIj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXN0aW1vbmlhbC5pbnB1dFRleHRbMF0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCIwXCIgW2l0ZW1JbmRleF09XCJpXCIgW2lzUlRFXT1cInRlc3RpbW9uaWFsLmlucHV0VGV4dFswXT8uaXNSVEVcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVzdGltb25pYWw/LmlucHV0VGV4dD8uWzFdIGFzIHRleHRJdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRleHRJdGVtLnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2lucHV0VGV4dEluZGV4XT1cIjFcIiBbaXRlbUluZGV4XT1cImlcIiBbaXNSVEVdPVwidGV4dEl0ZW0uaXNSVEVcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXZcIiBkYXRhLWJzLXRhcmdldD1cIiN0ZXN0aW1vbmlhbEZ1bGxXaWR0aENhcm91c2VsXCIgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIGRhdGEtYnMtc2xpZGU9XCJwcmV2XCIgKm5nSWY9XCJnZXRMZW5ndGgoKSA+IDFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXYtaWNvbiBwcmV2aW91cy1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5QcmV2aW91czwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxhIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0XCIgZGF0YS1icy10YXJnZXQ9XCIjdGVzdGltb25pYWxGdWxsV2lkdGhDYXJvdXNlbFwiIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBkYXRhLWJzLXNsaWRlPVwibmV4dFwiICpuZ0lmPVwiZ2V0TGVuZ3RoKCkgPiAxXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24gcHJldmlvdXMtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+TmV4dDwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmRldmlkZXI/LmRpc3BsYXlcIj5cclxuICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGU/LmRldmlkZXI/LmRldmlkZXJUeXBlXCJcclxuICAgICAgW2NvbG9yXT1cIm5leHRDb21wb25lbnRDb2xvcj8uY29sb3JcIj48L3NpbXBvLXN2Zy1kaXZpZGVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj4iXX0=
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGltb25pYWwtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3Rlc3RpbW9uaWFsLXNlY3Rpb24vdGVzdGltb25pYWwtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3Rlc3RpbW9uaWFsLXNlY3Rpb24vdGVzdGltb25pYWwtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNMUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNo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Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQiw4QkFBOEI7d0JBQzlCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZiwwQkFBMEI7d0JBQzFCLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLGdDQUFnQzt3QkFDaEMsZ0NBQWdDO3dCQUNoQyxjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3FCQUMzQjswR0FLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ3NCLGNBQWM7c0JBQXpDLFNBQVM7dUJBQUMsZUFBZTtnQkFDcUIsYUFBYTtzQkFBM0QsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNmLGFBQWE7c0JBQTFDLFlBQVk7dUJBQUMsY0FBYztnQkE0RjVCLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF5QjFDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHRlc3RpbW9uaWFsQ29udGVudE1vZGVsLFxuICB0ZXN0aW1vbmlhbFNlY3Rpb25Nb2RlbCxcbiAgdGVzdGltb25pYWxTdHlsZXNNb2RlbCxcbn0gZnJvbSAnLi90ZXN0aW1vbmlhbC1zZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTaW1wb0VsZW1lbnRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvaW5kZXgnO1xuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2luZGV4JztcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYW5uZXItY29udGVudC1maXQtZGlyZWN0aXZlJztcbmltcG9ydCB7IEJvcmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ib3JkZXItZGlyZWN0aXZlJztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGFpbmVyRml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRhaW5lci1maXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWFsaWdubWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvZm9vdGVyLWxheW91dC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvc2l0aW9uTGF5b3V0RGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3Bvc2l0aW9uLWxheW91dC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xuaW1wb3J0IHsgQ29udGVudFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtdGl0bGUtc3BhY2luZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU1BBQ0lORyB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IFNhbml0aXplSHRtbFBpcGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYW5pdGl6ZUh0bWwnO1xuaW1wb3J0IHsgVGV4dEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZUVkaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1lZGl0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctaG9yaXpvbnRhbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLXRlc3RpbW9uaWFsLXNlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgU2ltcG9FbGVtZW50c01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXG4gICAgLy9kaXJlY3RpdmVcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcbiAgICBCYW5uZXJDb250ZW50Rml0RGlyZWN0aXZlLFxuICAgIEJvcmRlckRpcmVjdGl2ZSxcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIENvbnRhaW5lckZpdERpcmVjdGl2ZSxcbiAgICBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBDb3JuZXJEaXJlY3RpdmUsXG4gICAgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUsXG4gICAgSG92ZXJEaXJlY3RpdmUsXG4gICAgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBQb3NpdGlvbkxheW91dERpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBDb2xvckRpcmVjdGl2ZSxcbiAgICBDb250ZW50VGl0bGVEaXJlY3RpdmUsXG4gICAgU2FuaXRpemVIdG1sUGlwZSxcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxuICAgIEltYWdlRWRpdG9yRGlyZWN0aXZlLFxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVzdGltb25pYWwtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90ZXN0aW1vbmlhbC1zZWN0aW9uLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIFRlc3RpbW9uaWFsU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIHtcbiAgQElucHV0KCkgZGF0YT86IHRlc3RpbW9uaWFsU2VjdGlvbk1vZGVsO1xuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcbiAgQFZpZXdDaGlsZCgnbWFpbkNvbnRhaW5lcicpIF9tYWluQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XG4gIEBWaWV3Q2hpbGQoJ2Nhcm91c2VsSW5uZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY2Fyb3VzZWxJbm5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkcmVuKCdjYXJvdXNlbEl0ZW0nKSBjYXJvdXNlbEl0ZW1zITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PjtcbiAgY29udGVudD86IHRlc3RpbW9uaWFsQ29udGVudE1vZGVsO1xuICBzdHlsZT86IHRlc3RpbW9uaWFsU3R5bGVzTW9kZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcbiAgICB0aGlzLnN0eWxlID0gdGhpcy5kYXRhPy5zdHlsZXM7XG4gICAgdGhpcy5kZWxldGVTZWxlY3RlZCA9IHRoaXMuZGVsZXRlXG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVDYXJvdXNlbEhlaWdodCgpLCA1MCk7XG5cbiAgICAvLyBJZiB0aGUgY29udGVudCBsaXN0IGNhbiBjaGFuZ2UgZHluYW1pY2FsbHksIHN1YnNjcmliZSB0byBRdWVyeUxpc3QgY2hhbmdlc1xuICAgIHRoaXMuY2Fyb3VzZWxJdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyByZS1jYWxjIG9uY2UgY2Fyb3VzZWwgaXRlbXMgbGlzdCBjaGFuZ2VzXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ2Fyb3VzZWxIZWlnaHQoKSwgNTApO1xuICAgIH0pO1xuICB9XG4gIGdldCBoZWFkaW5nU3BhY2UoKTogU1BBQ0lORyB7XG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LmxheW91dC5oZWFkaW5nU3BhY2luZyBhcyBTUEFDSU5HO1xuICB9XG4gIGdldCBnZXRMYXlvdXQoKTogTGF5T3V0TW9kZWwge1xuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGU/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xuICB9XG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZT8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XG4gIH1cbiAgZ2V0Q29sb3IoaGV4OiBhbnksIGFtb3VudDogYW55ID0gMC44KSB7XG4gICAgaGV4ID0gaGV4LnJlcGxhY2UoL14jLywgJycpO1xuICAgIGxldCByID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygwLCAyKSwgMTYpO1xuICAgIGxldCBnID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygyLCA0KSwgMTYpO1xuICAgIGxldCBiID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZyg0LCA2KSwgMTYpO1xuICAgIHIgPSBNYXRoLnJvdW5kKHIgKyAoMjU1IC0gcikgKiBhbW91bnQpO1xuICAgIGcgPSBNYXRoLnJvdW5kKGcgKyAoMjU1IC0gZykgKiBhbW91bnQpO1xuICAgIGIgPSBNYXRoLnJvdW5kKGIgKyAoMjU1IC0gYikgKiBhbW91bnQpO1xuICAgIGNvbnN0IHRvSGV4ID0gKG46IG51bWJlcikgPT4gbi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKTtcbiAgICByZXR1cm4gYCMke3RvSGV4KHIpfSR7dG9IZXgoZyl9JHt0b0hleChiKX1gO1xuICB9XG4gIGdldEluZGljYXRvckNvbG9yKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmcgPSB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kO1xuXG4gICAgaWYgKCFiZykgcmV0dXJuICcjMDAwJztcblxuICAgIGlmIChiZy5iYWNrZ3JvdW5kVHlwZSA9PT0gJ1NvbGlkJykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNEYXJrQ29sb3IoYmcuY29sb3IpID8gJyNmZmZmZmYnIDogJyMwMDAwMDAnO1xuICAgIH1cblxuICAgIGlmIChiZy5iYWNrZ3JvdW5kVHlwZSA9PT0gJ0dyYWRpZW50Jykge1xuICAgICAgY29uc3QgaXNQcmltYXJ5RGFyayA9IHRoaXMuaXNEYXJrQ29sb3IoYmcuY29sb3IpO1xuICAgICAgY29uc3QgaXNTZWNvbmRhcnlEYXJrID0gdGhpcy5pc0RhcmtDb2xvcihiZy5zZWNvbmRhcnlDb2xvcik7XG5cbiAgICAgIC8vIElmIGJvdGggYXJlIGRhcmsg4oaSIHVzZSB3aGl0ZVxuICAgICAgaWYgKGlzUHJpbWFyeURhcmsgJiYgaXNTZWNvbmRhcnlEYXJrKSB7XG4gICAgICAgIHJldHVybiAnI2ZmZmZmZic7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIGJvdGggYXJlIGxpZ2h0IOKGkiB1c2UgYmxhY2tcbiAgICAgIGlmICghaXNQcmltYXJ5RGFyayAmJiAhaXNTZWNvbmRhcnlEYXJrKSB7XG4gICAgICAgIHJldHVybiAnIzAwMDAwMCc7XG4gICAgICB9XG5cbiAgICAgIC8vIE1peGVkIOKGkiBjaG9vc2Ugc2FmZXN0IGNvbnRyYXN0ICh3aGl0ZSB1c3VhbGx5IGJldHRlcilcbiAgICAgIHJldHVybiAnI2ZmZmZmZic7XG4gICAgfVxuXG4gICAgcmV0dXJuICcjMDAwMDAwJztcbiAgfVxuICBpc0RhcmtDb2xvcihoZXg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghaGV4KSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBSZW1vdmUgI1xuICAgIGhleCA9IGhleC5yZXBsYWNlKCcjJywgJycpO1xuXG4gICAgLy8gQ29udmVydCB0byBSR0JcbiAgICBjb25zdCByID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygwLCAyKSwgMTYpO1xuICAgIGNvbnN0IGcgPSBwYXJzZUludChoZXguc3Vic3RyaW5nKDIsIDQpLCAxNik7XG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGhleC5zdWJzdHJpbmcoNCwgNiksIDE2KTtcblxuICAgIC8vIFBlcmNlaXZlZCBicmlnaHRuZXNzIGZvcm11bGFcbiAgICBjb25zdCBicmlnaHRuZXNzID0gKHIgKiAyOTkgKyBnICogNTg3ICsgYiAqIDExNCkgLyAxMDAwO1xuXG4gICAgcmV0dXJuIGJyaWdodG5lc3MgPCAxMjg7IC8vIHRydWUgPSBkYXJrXG4gIH1cbiAgc2NyZWVuV2lkdGg6IGFueSA9IFwiXCJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzogcmVzaXplXCIsIFtcIiRldmVudFwiXSlcbiAgZ2V0U2NyZWVuU2l6ZSgpIHtcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudD8ubGlzdEl0ZW0/LmRhdGE/Lmxlbmd0aCA/PyAwXG4gIH1cbiAgZWRpdFNlY3Rpb24oKSB7XG5cbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KVxuICAgICAgcmV0dXJuO1xuXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSByZXNpemVUaW1lb3V0ID0gMCBhcyBhbnk7XG4gIHByaXZhdGUgY29udGVudENoYW5nZXNTdWI/OiBTdWJzY3JpcHRpb247XG4gIC8vIE9wdGlvbmFsOiBiaW5kIHRvIHRlbXBsYXRlIGlmIHlvdSBwcmVmZXIgW3N0eWxlLmhlaWdodC5weF09XCJjYXJvdXNlbEhlaWdodFwiXG4gIGNhcm91c2VsSGVpZ2h0UHg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25XaW5kb3dSZXNpemUoKSB7XG4gICAgLy8gZGVib3VuY2VcbiAgICBpZiAodGhpcy5yZXNpemVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KTtcbiAgICB9XG4gICAgdGhpcy5yZXNpemVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUNhcm91c2VsSGVpZ2h0KCksIDEyMCk7XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVDYXJvdXNlbEhlaWdodCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2Fyb3VzZWxJdGVtcyB8fCB0aGlzLmNhcm91c2VsSXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuY2Fyb3VzZWxJdGVtcy50b0FycmF5KCkubWFwKHEgPT4gcS5uYXRpdmVFbGVtZW50KTtcblxuICAgIC8vIFdhaXQgZm9yIGFsbCBpbWFnZXMgaW5zaWRlIGl0ZW1zIHRvIGxvYWRcbiAgICBjb25zdCBpbWFnZVByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcblxuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCBpbWdzOiBIVE1MSW1hZ2VFbGVtZW50W10gPSBBcnJheS5mcm9tKGl0ZW0ucXVlcnlTZWxlY3RvckFsbCgnaW1nJykpO1xuICAgICAgaW1ncy5mb3JFYWNoKGltZyA9PiB7XG4gICAgICAgIGlmIChpbWcuY29tcGxldGUpIHtcbiAgICAgICAgICAvLyBhbHJlYWR5IGxvYWRlZFxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpbWFnZVByb21pc2VzLnB1c2gobmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiByZXNvbHZlKCkpO1xuICAgICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsICgpID0+IHJlc29sdmUoKSk7IC8vIHJlc29sdmUgYW55d2F5XG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgUHJvbWlzZS5hbGwoaW1hZ2VQcm9taXNlcykudGhlbigoKSA9PiB7XG4gICAgICAvLyBnaXZlIGxheW91dCBhIHRpbnkgdGltZSB0byBzZXR0bGVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBsZXQgbWF4SCA9IDE1O1xuICAgICAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIC8vIHVzZSBvZmZzZXRIZWlnaHQgdG8gaW5jbHVkZSBwYWRkaW5nL2JvcmRlclxuICAgICAgICAgIGNvbnN0IGggPSAoaXRlbSBhcyBIVE1MRWxlbWVudCkub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgIGlmIChoID4gbWF4SCkgbWF4SCA9IGg7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHNhZmV0eTogc21hbGwgbWluaW11bVxuICAgICAgICBpZiAobWF4SCA8IDEwMCkgbWF4SCA9IDEwMDtcblxuICAgICAgICAvLyBzZXQgaGVpZ2h0IG9uIGNhcm91c2VsLWlubmVyIChvciB1c2UgYmluZGluZyB0byBjYXJvdXNlbEhlaWdodFB4KVxuICAgICAgICB0aGlzLmNhcm91c2VsSGVpZ2h0UHggPSBtYXhIO1xuICAgICAgICAvLyBpZiAodGhpcy5jYXJvdXNlbElubmVyICYmIHRoaXMuY2Fyb3VzZWxJbm5lci5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIC8vICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhcm91c2VsSW5uZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke21heEh9cHhgKTtcbiAgICAgICAgLy8gICAvLyBvcHRpb25hbDogc2V0IG1pbi1oZWlnaHQgb24gZWFjaCBpdGVtIHRvbyBzbyBjb250ZW50IGRvZXNuJ3QganVtcCBtaWQtdHJhbnNpdGlvblxuICAgICAgICAvLyAgIGl0ZW1zLmZvckVhY2goaXQgPT4gdGhpcy5yZW5kZXJlci5zZXRTdHlsZShpdCwgJ21pbi1oZWlnaHQnLCBgJHttYXhIfXB4YCkpO1xuICAgICAgICAvLyB9XG4gICAgICB9LCA1MCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50Q2hhbmdlc1N1Yikge1xuICAgICAgdGhpcy5jb250ZW50Q2hhbmdlc1N1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXNpemVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KTtcbiAgICB9XG5cbiAgfVxufSIsIjxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGU/LmJhY2tncm91bmRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiXG4gIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIiBbc2ltcG9Cb3JkZXJdPVwic3R5bGU/LmJvcmRlclwiPlxuICA8ZGl2ICNtYWluQ29udGFpbmVyIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGU/LmJhY2tncm91bmRcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCJcbiAgICBbY2xhc3MucHgtMV09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9MYXlvdXRdPVwic3R5bGU/LmxheW91dFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb250ZW50LXNpZGUgdy0xMDBcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9BbmltYXRpb25dPVwic3R5bGU/LmFuaW1hdGlvblwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0ZXh0IG9mIGRhdGE/LmNvbnRlbnQ/LmlucHV0VGV4dDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLWxhcmdlXCIgW3NpbXBvQ29udGVudFRpdGxlU3BhY2VdPVwiaGVhZGluZ1NwYWNlXCI+XG4gICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidGV4dC52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCJpXCIgW2lzUlRFXT1cInRleHQuaXNSVEVcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGlkPVwidGVzdGltb25pYWxGdWxsV2lkdGhDYXJvdXNlbFwiIGNsYXNzPVwiY2Fyb3VzZWwgc2xpZGUgbWItMVwiIGRhdGEtYnMtcmlkZT1cImNhcm91c2VsXCJcbiAgICAgICAgICBkYXRhLWJzLWtleWJvYXJkPVwiZmFsc2VcIj5cbiAgICAgICAgICA8b2wgY2xhc3M9XCJjYXJvdXNlbC1pbmRpY2F0b3JzXCIgW25nU3R5bGVdPVwieydjb2xvcic6IGdldEluZGljYXRvckNvbG9yKCl9XCI+XG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGltZyBvZiBjb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGkgPSBpbmRleFwiIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0gMFwiXG4gICAgICAgICAgICAgIGRhdGEtYnMtdGFyZ2V0PVwiI3Rlc3RpbW9uaWFsRnVsbFdpZHRoQ2Fyb3VzZWxcIiBbYXR0ci5kYXRhLWJzLXNsaWRlLXRvXT1cImlcIj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC9vbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaW5uZXJcIiAjY2Fyb3VzZWxJbm5lcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCIgKm5nRm9yPVwibGV0IHRlc3RpbW9uaWFsIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpID09PSAwXCIgZGF0YS1icy1pbnRlcnZhbD1cIjEwMDAwXCIgI2Nhcm91c2VsSXRlbT5cbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiBtYXgtY29udGVudDsgbWFyZ2luOiBhdXRvOyBtYXgtd2lkdGg6IDkwJTtcIiBjbGFzcz1cImNhcm91c2VsLXBhcmVudFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmNhcmQtZm9ybV09XCJjb250ZW50Py5kaXNwbGF5Py5zaG93Q2FyZFwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dDYXJkID8gc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogJ25vbmUnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJjb250ZW50Py5kaXNwbGF5Py5zaG93Q2FyZCA/IGdldENvbG9yKHN0eWxlPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvcikgOiAndHJhbnNwYXJlbnQnXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWNhcHRpb24gZC1mbGV4IGZsZXgtY29sdW1uIGgtMTAwIGJvdHRvbS0wXCIgc3R5bGU9XCJ3aWR0aDogOTAlO1wiIFtpZF09XCJkYXRhPy5pZFwiXG4gICAgICAgICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzdHlsZT8uYmFja2dyb3VuZD8uY29sb3JcIiBbc2ltcG9Db250YWluZXJMYXlvdXRdPVwic3R5bGU/LmxheW91dFwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dJbWFnZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJ0ZXN0aW1vbmlhbD8uaW1hZ2U/LnVybFwiIGNsYXNzPVwibWItMVwiIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbc2ltcG9Db250YWluZXJMYXlvdXRdPVwiZ2V0TGF5b3V0XCIgW2FwcEltYWdlRWRpdG9yXT1cImVkaXQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbWFnZURhdGFdPVwidGVzdGltb25pYWwuaW1hZ2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2l0ZW1JbmRleF09XCJpXCI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXN0aW1vbmlhbC5pbnB1dFRleHRbMF0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbaW5wdXRUZXh0SW5kZXhdPVwiMFwiIFtpdGVtSW5kZXhdPVwiaVwiIFtpc1JURV09XCJ0ZXN0aW1vbmlhbC5pbnB1dFRleHRbMF0/LmlzUlRFXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZXN0aW1vbmlhbD8uaW5wdXRUZXh0Py5bMV0gYXMgdGV4dEl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXh0SXRlbS52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCIxXCIgW2l0ZW1JbmRleF09XCJpXCIgW2lzUlRFXT1cInRleHRJdGVtLmlzUlRFXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YSBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtcHJldlwiIGRhdGEtYnMtdGFyZ2V0PVwiI3Rlc3RpbW9uaWFsRnVsbFdpZHRoQ2Fyb3VzZWxcIiByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGRhdGEtYnMtc2xpZGU9XCJwcmV2XCIgKm5nSWY9XCJnZXRMZW5ndGgoKSA+IDFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24gcHJldmlvdXMtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YSBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dFwiIGRhdGEtYnMtdGFyZ2V0PVwiI3Rlc3RpbW9uaWFsRnVsbFdpZHRoQ2Fyb3VzZWxcIiByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGRhdGEtYnMtc2xpZGU9XCJuZXh0XCIgKm5nSWY9XCJnZXRMZW5ndGgoKSA+IDFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24gcHJldmlvdXMtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPk5leHQ8L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XG4gICAgPHNpbXBvLXN2Zy1kaXZpZGVyIFtkaXZpZGVyVHlwZV09XCJzdHlsZT8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIlxuICAgICAgW2NvbG9yXT1cIm5leHRDb21wb25lbnRDb2xvcj8uY29sb3JcIj48L3NpbXBvLXN2Zy1kaXZpZGVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cbiAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPiJdfQ==
@@ -113,7 +113,7 @@ export class TestimonialSliderComponent extends BaseSection {
113
113
  return { ...this.style?.layout };
114
114
  }
115
115
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TestimonialSliderComponent, deps: [{ token: i1.EventsService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TestimonialSliderComponent, isStandalone: true, selector: "simpo-testimonial-slider", inputs: { data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, host: { listeners: { "window: resize": "getScreenSize($event)" } }, viewQueries: [{ propertyName: "sliderViewport", first: true, predicate: ["sliderViewport"], descendants: true }, { propertyName: "cardItems", predicate: ["cardItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\"\r\n [attr.style]=\"customClass\">\r\n\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\"\r\n [class.px-1]=\"screenWidth < 475\" [simpoBackground]=\"style?.background\" [simpoBorder]=\"style?.border\">\r\n\r\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoLayout]=\"style?.layout\">\r\n <!-- Added row and content-side per convention -->\r\n <div class=\"row content-side w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\r\n\r\n <div class=\"header-container\">\r\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\r\n <div [simpoContentTitleSpace]=\"headingSpace\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n\r\n <div class=\"nav-arrows\" *ngIf=\"getLength() > 1 && (showLeftArrow || showRightArrow) && screenWidth > 475\">\r\n <button class=\"nav-arrow\" (click)=\"scrollPrev()\" [style.visibility]=\"showLeftArrow ? 'visible' : 'hidden'\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button class=\"nav-arrow\" (click)=\"scrollNext()\" [style.visibility]=\"showRightArrow ? 'visible' : 'hidden'\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"slider-viewport\" [id]=\"data?.id\" #sliderViewport (scroll)=\"onScroll()\">\r\n <div class=\"testimonial-card size-{{(style?.size || 'Large') | lowercase}}\"\r\n *ngFor=\"let testimonial of content?.listItem?.data; let i = index\" #cardItem [simpoCorner]=\"style?.corners\">\r\n <!-- [simpoContainerLayout]=\"style?.layout\" -->\r\n <div class=\"quote-container\">\r\n <div class=\"quote-text\">\r\n <simpo-text-editor [(value)]=\"testimonial.inputText[0].value\"\r\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"0\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[0]?.isRTE\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n\r\n <div class=\"user-info\">\r\n <div class=\"avatar-circle\" [style.backgroundColor]=\"style?.background?.accentColor\">\r\n <ng-container *ngIf=\"testimonial?.image?.url; else initials\">\r\n <img [src]=\"testimonial.image.url\" alt=\"User Avatar\" [appImageEditor]=\"edit || false\"\r\n [imageData]=\"testimonial.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\r\n <!-- [simpoContainerLayout]=\"getLayout\" -->\r\n </ng-container>\r\n <ng-template #initials>\r\n {{ testimonial.inputText[1].value.charAt(0) }}\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"user-details\">\r\n <div class=\"user-name\">\r\n <simpo-text-editor [(value)]=\"testimonial.inputText[1].value\"\r\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"1\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[1]?.isRTE\"></simpo-text-editor>\r\n </div>\r\n <div class=\"user-role\" *ngIf=\"testimonial.inputText[2]\">\r\n <simpo-text-editor [(value)]=\"testimonial.inputText[2].value\"\r\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"2\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[2]?.isRTE\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"nav-arrows w-100 align-items-center justify-content-center\" *ngIf=\"getLength() > 1 && (showLeftArrow || showRightArrow) && screenWidth < 475\">\r\n <button class=\"nav-arrow\" (click)=\"scrollPrev()\" [style.visibility]=\"showLeftArrow ? 'visible' : 'hidden'\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button class=\"nav-arrow\" (click)=\"scrollNext()\" [style.visibility]=\"showRightArrow ? 'visible' : 'hidden'\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>", styles: [".total-container{position:relative}.header-container{display:flex;justify-content:space-between;align-items:center}.heading-large{margin:0}.nav-arrows{display:flex;gap:12px}.nav-arrow{width:48px!important;height:48px!important;border-radius:50%;border:1px solid #ddd;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:#555}.nav-arrow:hover{background:#f0f0f0;border-color:#bbb}.nav-arrow mat-icon{font-size:20px;width:20px;height:20px}.slider-viewport{width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;display:flex;gap:24px;padding:20px 40px}.slider-viewport::-webkit-scrollbar{display:none}.testimonial-card{scroll-snap-align:start;background:#fff;border-radius:24px;padding:40px;box-shadow:0 10px 30px #0000000d;display:flex;flex-direction:column;justify-content:space-between;transition:transform .3s ease}.testimonial-card:hover{transform:translateY(-5px)}.quote-text{color:#333;margin-bottom:30px}.user-info{display:flex;align-items:center;gap:16px}.avatar-circle{width:56px;height:56px;border-radius:50%;background-color:#d4b483;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#111;overflow:hidden}.avatar-circle img{width:100%;height:100%;object-fit:cover}.user-details{display:flex;flex-direction:column}@media (min-width: 992px){.testimonial-card.size-large{flex:0 0 52%}.testimonial-card.size-medium{flex:0 0 33.33%}.testimonial-card.size-small{flex:0 0 25%}}@media (max-width: 991px){.testimonial-card{flex:0 0 calc(80% - 12px)}}@media (max-width: 767px){.heading-large{font-size:32px}.testimonial-card{flex:0 0 100%;padding:30px}.header-container{padding:0 20px}.slider-viewport{padding:20px 20px 40px}}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.LowerCasePipe, name: "lowercase" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i4.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "directive", type:
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TestimonialSliderComponent, isStandalone: true, selector: "simpo-testimonial-slider", inputs: { data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, host: { listeners: { "window: resize": "getScreenSize($event)" } }, viewQueries: [{ propertyName: "sliderViewport", first: true, predicate: ["sliderViewport"], descendants: true }, { propertyName: "cardItems", predicate: ["cardItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\"\n [attr.style]=\"customClass\">\n\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\"\n [class.px-1]=\"screenWidth < 475\" [simpoBackground]=\"style?.background\" [simpoBorder]=\"style?.border\">\n\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoLayout]=\"style?.layout\">\n <!-- Added row and content-side per convention -->\n <div class=\"row content-side w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\n\n <div class=\"header-container\">\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\n <div [simpoContentTitleSpace]=\"headingSpace\">\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\n </div>\n </div>\n\n <div class=\"nav-arrows\" *ngIf=\"getLength() > 1 && (showLeftArrow || showRightArrow) && screenWidth > 475\">\n <button class=\"nav-arrow\" (click)=\"scrollPrev()\" [style.visibility]=\"showLeftArrow ? 'visible' : 'hidden'\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <button class=\"nav-arrow\" (click)=\"scrollNext()\" [style.visibility]=\"showRightArrow ? 'visible' : 'hidden'\">\n <mat-icon>arrow_forward</mat-icon>\n </button>\n </div>\n </div>\n\n <div class=\"slider-viewport\" [id]=\"data?.id\" #sliderViewport (scroll)=\"onScroll()\">\n <div class=\"testimonial-card size-{{(style?.size || 'Large') | lowercase}}\"\n *ngFor=\"let testimonial of content?.listItem?.data; let i = index\" #cardItem [simpoCorner]=\"style?.corners\">\n <!-- [simpoContainerLayout]=\"style?.layout\" -->\n <div class=\"quote-container\">\n <div class=\"quote-text\">\n <simpo-text-editor [(value)]=\"testimonial.inputText[0].value\"\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"0\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[0]?.isRTE\"></simpo-text-editor>\n </div>\n </div>\n\n <div class=\"user-info\">\n <div class=\"avatar-circle\" [style.backgroundColor]=\"style?.background?.accentColor\">\n <ng-container *ngIf=\"testimonial?.image?.url; else initials\">\n <img [src]=\"testimonial.image.url\" alt=\"User Avatar\" [appImageEditor]=\"edit || false\"\n [imageData]=\"testimonial.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\n <!-- [simpoContainerLayout]=\"getLayout\" -->\n </ng-container>\n <ng-template #initials>\n {{ testimonial.inputText[1].value.charAt(0) }}\n </ng-template>\n </div>\n\n <div class=\"user-details\">\n <div class=\"user-name\">\n <simpo-text-editor [(value)]=\"testimonial.inputText[1].value\"\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"1\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[1]?.isRTE\"></simpo-text-editor>\n </div>\n <div class=\"user-role\" *ngIf=\"testimonial.inputText[2]\">\n <simpo-text-editor [(value)]=\"testimonial.inputText[2].value\"\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"2\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[2]?.isRTE\"></simpo-text-editor>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"nav-arrows w-100 align-items-center justify-content-center\" *ngIf=\"getLength() > 1 && (showLeftArrow || showRightArrow) && screenWidth < 475\">\n <button class=\"nav-arrow\" (click)=\"scrollPrev()\" [style.visibility]=\"showLeftArrow ? 'visible' : 'hidden'\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <button class=\"nav-arrow\" (click)=\"scrollNext()\" [style.visibility]=\"showRightArrow ? 'visible' : 'hidden'\">\n <mat-icon>arrow_forward</mat-icon>\n </button>\n </div>\n\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".total-container{position:relative}.header-container{display:flex;justify-content:space-between;align-items:center}.heading-large{margin:0}.nav-arrows{display:flex;gap:12px}.nav-arrow{width:48px!important;height:48px!important;border-radius:50%;border:1px solid #ddd;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:#555}.nav-arrow:hover{background:#f0f0f0;border-color:#bbb}.nav-arrow mat-icon{font-size:20px;width:20px;height:20px}.slider-viewport{width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;display:flex;gap:24px;padding:20px 40px}.slider-viewport::-webkit-scrollbar{display:none}.testimonial-card{scroll-snap-align:start;background:#fff;border-radius:24px;padding:40px;box-shadow:0 10px 30px #0000000d;display:flex;flex-direction:column;justify-content:space-between;transition:transform .3s ease}.testimonial-card:hover{transform:translateY(-5px)}.quote-text{color:#333;margin-bottom:30px}.user-info{display:flex;align-items:center;gap:16px}.avatar-circle{width:56px;height:56px;border-radius:50%;background-color:#d4b483;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#111;overflow:hidden}.avatar-circle img{width:100%;height:100%;object-fit:cover}.user-details{display:flex;flex-direction:column}@media (min-width: 992px){.testimonial-card.size-large{flex:0 0 52%}.testimonial-card.size-medium{flex:0 0 33.33%}.testimonial-card.size-small{flex:0 0 25%}}@media (max-width: 991px){.testimonial-card{flex:0 0 calc(80% - 12px)}}@media (max-width: 767px){.heading-large{font-size:32px}.testimonial-card{flex:0 0 100%;padding:30px}.header-container{padding:0 20px}.slider-viewport{padding:20px 20px 40px}}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.LowerCasePipe, name: "lowercase" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i4.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "directive", type:
117
117
  //directives
118
118
  AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: ContentTitleDirective, selector: "[simpoContentTitleSpace]", inputs: ["simpoContentTitleSpace"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "isRTE", "sectionId", "label", "type", "inputTextIndex", "itemIndex"], outputs: ["valueChange"] }, { kind: "directive", type: ImageEditorDirective, selector: "[appImageEditor]", inputs: ["appImageEditor", "imageData", "sectionId", "showIcon", "iconData", "itemIndex"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }] }); }
119
119
  }
@@ -136,7 +136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
136
136
  TextEditorComponent,
137
137
  ImageEditorDirective,
138
138
  SpacingHorizontalDirective,
139
- ], template: "<section [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\"\r\n [attr.style]=\"customClass\">\r\n\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\"\r\n [class.px-1]=\"screenWidth < 475\" [simpoBackground]=\"style?.background\" [simpoBorder]=\"style?.border\">\r\n\r\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoLayout]=\"style?.layout\">\r\n <!-- Added row and content-side per convention -->\r\n <div class=\"row content-side w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\r\n\r\n <div class=\"header-container\">\r\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\r\n <div [simpoContentTitleSpace]=\"headingSpace\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n\r\n <div class=\"nav-arrows\" *ngIf=\"getLength() > 1 && (showLeftArrow || showRightArrow) && screenWidth > 475\">\r\n <button class=\"nav-arrow\" (click)=\"scrollPrev()\" [style.visibility]=\"showLeftArrow ? 'visible' : 'hidden'\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button class=\"nav-arrow\" (click)=\"scrollNext()\" [style.visibility]=\"showRightArrow ? 'visible' : 'hidden'\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"slider-viewport\" [id]=\"data?.id\" #sliderViewport (scroll)=\"onScroll()\">\r\n <div class=\"testimonial-card size-{{(style?.size || 'Large') | lowercase}}\"\r\n *ngFor=\"let testimonial of content?.listItem?.data; let i = index\" #cardItem [simpoCorner]=\"style?.corners\">\r\n <!-- [simpoContainerLayout]=\"style?.layout\" -->\r\n <div class=\"quote-container\">\r\n <div class=\"quote-text\">\r\n <simpo-text-editor [(value)]=\"testimonial.inputText[0].value\"\r\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"0\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[0]?.isRTE\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n\r\n <div class=\"user-info\">\r\n <div class=\"avatar-circle\" [style.backgroundColor]=\"style?.background?.accentColor\">\r\n <ng-container *ngIf=\"testimonial?.image?.url; else initials\">\r\n <img [src]=\"testimonial.image.url\" alt=\"User Avatar\" [appImageEditor]=\"edit || false\"\r\n [imageData]=\"testimonial.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\r\n <!-- [simpoContainerLayout]=\"getLayout\" -->\r\n </ng-container>\r\n <ng-template #initials>\r\n {{ testimonial.inputText[1].value.charAt(0) }}\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"user-details\">\r\n <div class=\"user-name\">\r\n <simpo-text-editor [(value)]=\"testimonial.inputText[1].value\"\r\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"1\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[1]?.isRTE\"></simpo-text-editor>\r\n </div>\r\n <div class=\"user-role\" *ngIf=\"testimonial.inputText[2]\">\r\n <simpo-text-editor [(value)]=\"testimonial.inputText[2].value\"\r\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"2\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[2]?.isRTE\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"nav-arrows w-100 align-items-center justify-content-center\" *ngIf=\"getLength() > 1 && (showLeftArrow || showRightArrow) && screenWidth < 475\">\r\n <button class=\"nav-arrow\" (click)=\"scrollPrev()\" [style.visibility]=\"showLeftArrow ? 'visible' : 'hidden'\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button class=\"nav-arrow\" (click)=\"scrollNext()\" [style.visibility]=\"showRightArrow ? 'visible' : 'hidden'\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>", styles: [".total-container{position:relative}.header-container{display:flex;justify-content:space-between;align-items:center}.heading-large{margin:0}.nav-arrows{display:flex;gap:12px}.nav-arrow{width:48px!important;height:48px!important;border-radius:50%;border:1px solid #ddd;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:#555}.nav-arrow:hover{background:#f0f0f0;border-color:#bbb}.nav-arrow mat-icon{font-size:20px;width:20px;height:20px}.slider-viewport{width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;display:flex;gap:24px;padding:20px 40px}.slider-viewport::-webkit-scrollbar{display:none}.testimonial-card{scroll-snap-align:start;background:#fff;border-radius:24px;padding:40px;box-shadow:0 10px 30px #0000000d;display:flex;flex-direction:column;justify-content:space-between;transition:transform .3s ease}.testimonial-card:hover{transform:translateY(-5px)}.quote-text{color:#333;margin-bottom:30px}.user-info{display:flex;align-items:center;gap:16px}.avatar-circle{width:56px;height:56px;border-radius:50%;background-color:#d4b483;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#111;overflow:hidden}.avatar-circle img{width:100%;height:100%;object-fit:cover}.user-details{display:flex;flex-direction:column}@media (min-width: 992px){.testimonial-card.size-large{flex:0 0 52%}.testimonial-card.size-medium{flex:0 0 33.33%}.testimonial-card.size-small{flex:0 0 25%}}@media (max-width: 991px){.testimonial-card{flex:0 0 calc(80% - 12px)}}@media (max-width: 767px){.heading-large{font-size:32px}.testimonial-card{flex:0 0 100%;padding:30px}.header-container{padding:0 20px}.slider-viewport{padding:20px 20px 40px}}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}\n"] }]
139
+ ], template: "<section [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\"\n [attr.style]=\"customClass\">\n\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\"\n [class.px-1]=\"screenWidth < 475\" [simpoBackground]=\"style?.background\" [simpoBorder]=\"style?.border\">\n\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoLayout]=\"style?.layout\">\n <!-- Added row and content-side per convention -->\n <div class=\"row content-side w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\">\n\n <div class=\"header-container\">\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\n <div [simpoContentTitleSpace]=\"headingSpace\">\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\n </div>\n </div>\n\n <div class=\"nav-arrows\" *ngIf=\"getLength() > 1 && (showLeftArrow || showRightArrow) && screenWidth > 475\">\n <button class=\"nav-arrow\" (click)=\"scrollPrev()\" [style.visibility]=\"showLeftArrow ? 'visible' : 'hidden'\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <button class=\"nav-arrow\" (click)=\"scrollNext()\" [style.visibility]=\"showRightArrow ? 'visible' : 'hidden'\">\n <mat-icon>arrow_forward</mat-icon>\n </button>\n </div>\n </div>\n\n <div class=\"slider-viewport\" [id]=\"data?.id\" #sliderViewport (scroll)=\"onScroll()\">\n <div class=\"testimonial-card size-{{(style?.size || 'Large') | lowercase}}\"\n *ngFor=\"let testimonial of content?.listItem?.data; let i = index\" #cardItem [simpoCorner]=\"style?.corners\">\n <!-- [simpoContainerLayout]=\"style?.layout\" -->\n <div class=\"quote-container\">\n <div class=\"quote-text\">\n <simpo-text-editor [(value)]=\"testimonial.inputText[0].value\"\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"0\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[0]?.isRTE\"></simpo-text-editor>\n </div>\n </div>\n\n <div class=\"user-info\">\n <div class=\"avatar-circle\" [style.backgroundColor]=\"style?.background?.accentColor\">\n <ng-container *ngIf=\"testimonial?.image?.url; else initials\">\n <img [src]=\"testimonial.image.url\" alt=\"User Avatar\" [appImageEditor]=\"edit || false\"\n [imageData]=\"testimonial.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\n <!-- [simpoContainerLayout]=\"getLayout\" -->\n </ng-container>\n <ng-template #initials>\n {{ testimonial.inputText[1].value.charAt(0) }}\n </ng-template>\n </div>\n\n <div class=\"user-details\">\n <div class=\"user-name\">\n <simpo-text-editor [(value)]=\"testimonial.inputText[1].value\"\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"1\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[1]?.isRTE\"></simpo-text-editor>\n </div>\n <div class=\"user-role\" *ngIf=\"testimonial.inputText[2]\">\n <simpo-text-editor [(value)]=\"testimonial.inputText[2].value\"\n [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"2\" [itemIndex]=\"i\" [isRTE]=\"testimonial.inputText[2]?.isRTE\"></simpo-text-editor>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"nav-arrows w-100 align-items-center justify-content-center\" *ngIf=\"getLength() > 1 && (showLeftArrow || showRightArrow) && screenWidth < 475\">\n <button class=\"nav-arrow\" (click)=\"scrollPrev()\" [style.visibility]=\"showLeftArrow ? 'visible' : 'hidden'\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <button class=\"nav-arrow\" (click)=\"scrollNext()\" [style.visibility]=\"showRightArrow ? 'visible' : 'hidden'\">\n <mat-icon>arrow_forward</mat-icon>\n </button>\n </div>\n\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".total-container{position:relative}.header-container{display:flex;justify-content:space-between;align-items:center}.heading-large{margin:0}.nav-arrows{display:flex;gap:12px}.nav-arrow{width:48px!important;height:48px!important;border-radius:50%;border:1px solid #ddd;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:#555}.nav-arrow:hover{background:#f0f0f0;border-color:#bbb}.nav-arrow mat-icon{font-size:20px;width:20px;height:20px}.slider-viewport{width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;display:flex;gap:24px;padding:20px 40px}.slider-viewport::-webkit-scrollbar{display:none}.testimonial-card{scroll-snap-align:start;background:#fff;border-radius:24px;padding:40px;box-shadow:0 10px 30px #0000000d;display:flex;flex-direction:column;justify-content:space-between;transition:transform .3s ease}.testimonial-card:hover{transform:translateY(-5px)}.quote-text{color:#333;margin-bottom:30px}.user-info{display:flex;align-items:center;gap:16px}.avatar-circle{width:56px;height:56px;border-radius:50%;background-color:#d4b483;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#111;overflow:hidden}.avatar-circle img{width:100%;height:100%;object-fit:cover}.user-details{display:flex;flex-direction:column}@media (min-width: 992px){.testimonial-card.size-large{flex:0 0 52%}.testimonial-card.size-medium{flex:0 0 33.33%}.testimonial-card.size-small{flex:0 0 25%}}@media (max-width: 991px){.testimonial-card{flex:0 0 calc(80% - 12px)}}@media (max-width: 767px){.heading-large{font-size:32px}.testimonial-card{flex:0 0 100%;padding:30px}.header-container{padding:0 20px}.slider-viewport{padding:20px 20px 40px}}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}\n"] }]
140
140
  }], ctorParameters: () => [{ type: i1.EventsService }, { type: i0.Renderer2 }], propDecorators: { data: [{
141
141
  type: Input
142
142
  }], index: [{
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
159
159
  type: HostListener,
160
160
  args: ["window: resize", ["$event"]]
161
161
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGltb25pYWwtc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdGVzdGltb25pYWwtc2xpZGVyL3Rlc3RpbW9uaWFsLXNsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3Rlc3RpbW9uaWFsLXNsaWRlci90ZXN0aW1vbmlhbC1zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQUUsWUFBWSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNqSixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sV0FB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Qjt3QkFDbkIsb0JBQW9CO3dCQUNwQiwwQkFBMEI7cUJBQzNCOzBHQUtRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFdUIsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0QsU0FBUztzQkFBbEMsWUFBWTt1QkFBQyxVQUFVO2dCQWlDeEIsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFNpbXBvRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9pbmRleCc7XG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb3JuZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi9CYXNlU2VjdGlvbic7XG5pbXBvcnQgeyBDb250ZW50VGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC10aXRsZS1zcGFjaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1hZ2VFZGl0b3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZWRpdG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRlc3RpbW9uaWFsU2xpZGVyTW9kZWwsIFRlc3RpbW9uaWFsU2xpZGVyQ29udGVudE1vZGVsLCBUZXN0aW1vbmlhbFNsaWRlclN0eWxlc01vZGVsIH0gZnJvbSAnLi90ZXN0aW1vbmlhbC1zbGlkZXIubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW1wby10ZXN0aW1vbmlhbC1zbGlkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgU2ltcG9FbGVtZW50c01vZHVsZSxcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICAvL2RpcmVjdGl2ZXNcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcbiAgICBCb3JkZXJEaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBDb3JuZXJEaXJlY3RpdmUsXG4gICAgSG92ZXJEaXJlY3RpdmUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBDb250ZW50VGl0bGVEaXJlY3RpdmUsXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcbiAgICBJbWFnZUVkaXRvckRpcmVjdGl2ZSxcbiAgICBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rlc3RpbW9uaWFsLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90ZXN0aW1vbmlhbC1zbGlkZXIuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgVGVzdGltb25pYWxTbGlkZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGRhdGE/OiBUZXN0aW1vbmlhbFNsaWRlck1vZGVsO1xuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBASW5wdXQoKSBuZXh0Q29tcG9uZW50Q29sb3I/OiBCYWNrZ3JvdW5kTW9kZWw7XG5cbiAgQFZpZXdDaGlsZCgnc2xpZGVyVmlld3BvcnQnKSBzbGlkZXJWaWV3cG9ydCE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkcmVuKCdjYXJkSXRlbScpIGNhcmRJdGVtcyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj47XG5cbiAgY29udGVudD86IFRlc3RpbW9uaWFsU2xpZGVyQ29udGVudE1vZGVsO1xuICBzdHlsZT86IFRlc3RpbW9uaWFsU2xpZGVyU3R5bGVzTW9kZWw7XG4gIGFjdGl2ZURvdEluZGV4OiBudW1iZXIgPSAwO1xuICBcbiAgc2hvd0xlZnRBcnJvdzogYm9vbGVhbiA9IHRydWU7XG4gIHNob3dSaWdodEFycm93OiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE/LmNvbnRlbnQ7XG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZGF0YT8uc3R5bGVzO1xuICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWQgPSB0aGlzLmRlbGV0ZTtcbiAgfVxuXG4gIGdldCBoZWFkaW5nU3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LmxheW91dD8uaGVhZGluZ1NwYWNpbmc7XG4gIH1cblxuICBnZXQgZ2V0TGF5b3V0KCk6IExheU91dE1vZGVsIHtcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcbiAgfVxuXG4gIHNjcmVlbldpZHRoOiBhbnkgPSBcIlwiXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6IHJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXG4gIGdldFNjcmVlblNpemUoKSB7XG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIHRoaXMuY2hlY2tTY3JvbGxMaW1pdHMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBOZWVkIGEgdGltZW91dCB0byB3YWl0IGZvciByZW5kZXJpbmdcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tTY3JvbGxMaW1pdHMoKTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgY2hlY2tTY3JvbGxMaW1pdHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNsaWRlclZpZXdwb3J0KSByZXR1cm47XG4gICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLnNsaWRlclZpZXdwb3J0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHZpZXdwb3J0LnNjcm9sbExlZnQ7XG4gICAgY29uc3Qgd2lkdGggPSB2aWV3cG9ydC5jbGllbnRXaWR0aDtcbiAgICBjb25zdCB0b3RhbFdpZHRoID0gdmlld3BvcnQuc2Nyb2xsV2lkdGg7XG5cbiAgICB0aGlzLnNob3dMZWZ0QXJyb3cgPSBzY3JvbGxMZWZ0ID4gMDtcbiAgICAvLyBhZGRpbmcgNSBleHRyYSBwaXhlbHMgZHVlIHRvIHJvdW5kaW5nIGVkZ2UgY2FzZXNcbiAgICB0aGlzLnNob3dSaWdodEFycm93ID0gTWF0aC5jZWlsKHNjcm9sbExlZnQgKyB3aWR0aCkgPCB0b3RhbFdpZHRoIC0gNTtcbiAgfVxuXG4gIGdldExlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhPy5sZW5ndGggPz8gMDtcbiAgfVxuXG4gIGdldERvdHNBcnJheSgpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIEFycmF5KHRoaXMuZ2V0TGVuZ3RoKCkpLmZpbGwoMCk7XG4gIH1cblxuICBzY3JvbGxQcmV2KCk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy5zbGlkZXJWaWV3cG9ydC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHNjcm9sbEFtb3VudCA9IHZpZXdwb3J0Lm9mZnNldFdpZHRoO1xuICAgIHZpZXdwb3J0LnNjcm9sbEJ5KHsgbGVmdDogLXNjcm9sbEFtb3VudCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICB9XG5cbiAgc2Nyb2xsTmV4dCgpOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuc2xpZGVyVmlld3BvcnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBzY3JvbGxBbW91bnQgPSB2aWV3cG9ydC5vZmZzZXRXaWR0aDtcbiAgICB2aWV3cG9ydC5zY3JvbGxCeSh7IGxlZnQ6IHNjcm9sbEFtb3VudCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICB9XG5cbiAgc2Nyb2xsVG9DYXJkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuc2xpZGVyVmlld3BvcnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBjYXJkcyA9IHRoaXMuY2FyZEl0ZW1zLnRvQXJyYXkoKTtcbiAgICBpZiAoY2FyZHNbaW5kZXhdKSB7XG4gICAgICBjb25zdCBjYXJkRWxlbWVudCA9IGNhcmRzW2luZGV4XS5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IGNhcmRFbGVtZW50Lm9mZnNldExlZnQgLSB2aWV3cG9ydC5vZmZzZXRMZWZ0O1xuICAgICAgdmlld3BvcnQuc2Nyb2xsVG8oeyBsZWZ0OiBzY3JvbGxMZWZ0LCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgfVxuICB9XG5cbiAgb25TY3JvbGwoKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLnNsaWRlclZpZXdwb3J0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHZpZXdwb3J0LnNjcm9sbExlZnQ7XG4gICAgY29uc3Qgd2lkdGggPSB2aWV3cG9ydC5jbGllbnRXaWR0aDtcbiAgICBcbiAgICAvLyBTaW1wbGUgaGV1cmlzdGljIGZvciBhY3RpdmUgZG90XG4gICAgY29uc3QgaW5kZXggPSBNYXRoLnJvdW5kKHNjcm9sbExlZnQgLyB3aWR0aCk7XG4gICAgaWYgKHRoaXMuYWN0aXZlRG90SW5kZXggIT09IGluZGV4KSB7XG4gICAgICB0aGlzLmFjdGl2ZURvdEluZGV4ID0gaW5kZXg7XG4gICAgfVxuICAgIHRoaXMuY2hlY2tTY3JvbGxMaW1pdHMoKTtcbiAgfVxuXG4gIGVkaXRTZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzUpIHJldHVybjtcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgZ2V0IHN0eWxlc0xheW91dCgpOiBMYXlPdXRNb2RlbCB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZT8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIlxyXG4gIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XHJcblxyXG4gIDxkaXYgI21haW5Db250YWluZXIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZT8uYmFja2dyb3VuZFwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxyXG4gICAgW2NsYXNzLnB4LTFdPVwic2NyZWVuV2lkdGggPCA0NzVcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgW3NpbXBvQm9yZGVyXT1cInN0eWxlPy5ib3JkZXJcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlPy5sYXlvdXRcIj5cclxuICAgICAgPCEtLSBBZGRlZCByb3cgYW5kIGNvbnRlbnQtc2lkZSBwZXIgY29udmVudGlvbiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb250ZW50LXNpZGUgdy0xMDBcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9BbmltYXRpb25dPVwic3R5bGU/LmFuaW1hdGlvblwiPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHQ7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBbc2ltcG9Db250ZW50VGl0bGVTcGFjZV09XCJoZWFkaW5nU3BhY2VcIj5cclxuICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidGV4dC52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCJpXCIgW2lzUlRFXT1cInRleHQuaXNSVEVcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtYXJyb3dzXCIgKm5nSWY9XCJnZXRMZW5ndGgoKSA+IDEgJiYgKHNob3dMZWZ0QXJyb3cgfHwgc2hvd1JpZ2h0QXJyb3cpICYmIHNjcmVlbldpZHRoID4gNDc1XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJuYXYtYXJyb3dcIiAoY2xpY2spPVwic2Nyb2xsUHJldigpXCIgW3N0eWxlLnZpc2liaWxpdHldPVwic2hvd0xlZnRBcnJvdyA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPmFycm93X2JhY2s8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5hdi1hcnJvd1wiIChjbGljayk9XCJzY3JvbGxOZXh0KClcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJzaG93UmlnaHRBcnJvdyA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPmFycm93X2ZvcndhcmQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2xpZGVyLXZpZXdwb3J0XCIgW2lkXT1cImRhdGE/LmlkXCIgI3NsaWRlclZpZXdwb3J0IChzY3JvbGwpPVwib25TY3JvbGwoKVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRlc3RpbW9uaWFsLWNhcmQgc2l6ZS17eyhzdHlsZT8uc2l6ZSB8fCAnTGFyZ2UnKSB8IGxvd2VyY2FzZX19XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRlc3RpbW9uaWFsIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhOyBsZXQgaSA9IGluZGV4XCIgI2NhcmRJdGVtIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiPlxyXG4gICAgICAgICAgICA8IS0tIFtzaW1wb0NvbnRhaW5lckxheW91dF09XCJzdHlsZT8ubGF5b3V0XCIgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdW90ZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVvdGUtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRlc3RpbW9uaWFsLmlucHV0VGV4dFswXS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCIwXCIgW2l0ZW1JbmRleF09XCJpXCIgW2lzUlRFXT1cInRlc3RpbW9uaWFsLmlucHV0VGV4dFswXT8uaXNSVEVcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWluZm9cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNpcmNsZVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVzdGltb25pYWw/LmltYWdlPy51cmw7IGVsc2UgaW5pdGlhbHNcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cInRlc3RpbW9uaWFsLmltYWdlLnVybFwiIGFsdD1cIlVzZXIgQXZhdGFyXCIgW2FwcEltYWdlRWRpdG9yXT1cImVkaXQgfHwgZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbWFnZURhdGFdPVwidGVzdGltb25pYWwuaW1hZ2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2l0ZW1JbmRleF09XCJpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gW3NpbXBvQ29udGFpbmVyTGF5b3V0XT1cImdldExheW91dFwiIC0tPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2luaXRpYWxzPlxyXG4gICAgICAgICAgICAgICAgICB7eyB0ZXN0aW1vbmlhbC5pbnB1dFRleHRbMV0udmFsdWUuY2hhckF0KDApIH19XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXN0aW1vbmlhbC5pbnB1dFRleHRbMV0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCIxXCIgW2l0ZW1JbmRleF09XCJpXCIgW2lzUlRFXT1cInRlc3RpbW9uaWFsLmlucHV0VGV4dFsxXT8uaXNSVEVcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1yb2xlXCIgKm5nSWY9XCJ0ZXN0aW1vbmlhbC5pbnB1dFRleHRbMl1cIj5cclxuICAgICAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRlc3RpbW9uaWFsLmlucHV0VGV4dFsyXS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2lucHV0VGV4dEluZGV4XT1cIjJcIiBbaXRlbUluZGV4XT1cImlcIiBbaXNSVEVdPVwidGVzdGltb25pYWwuaW5wdXRUZXh0WzJdPy5pc1JURVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1hcnJvd3Mgdy0xMDAgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAqbmdJZj1cImdldExlbmd0aCgpID4gMSAmJiAoc2hvd0xlZnRBcnJvdyB8fCBzaG93UmlnaHRBcnJvdykgJiYgc2NyZWVuV2lkdGggPCA0NzVcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJuYXYtYXJyb3dcIiAoY2xpY2spPVwic2Nyb2xsUHJldigpXCIgW3N0eWxlLnZpc2liaWxpdHldPVwic2hvd0xlZnRBcnJvdyA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5hdi1hcnJvd1wiIChjbGljayk9XCJzY3JvbGxOZXh0KClcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJzaG93UmlnaHRBcnJvdyA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5hcnJvd19mb3J3YXJkPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XHJcbiAgICA8c2ltcG8tc3ZnLWRpdmlkZXIgW2RpdmlkZXJUeXBlXT1cInN0eWxlPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiXHJcbiAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPiJdfQ==
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGltb25pYWwtc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdGVzdGltb25pYWwtc2xpZGVyL3Rlc3RpbW9uaWFsLXNsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3Rlc3RpbW9uaWFsLXNsaWRlci90ZXN0aW1vbmlhbC1zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQUUsWUFBWSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNqSixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sV0FB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Qjt3QkFDbkIsb0JBQW9CO3dCQUNwQiwwQkFBMEI7cUJBQzNCOzBHQUtRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFdUIsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0QsU0FBUztzQkFBbEMsWUFBWTt1QkFBQyxVQUFVO2dCQWlDeEIsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFNpbXBvRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9pbmRleCc7XG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb3JuZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi9CYXNlU2VjdGlvbic7XG5pbXBvcnQgeyBDb250ZW50VGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC10aXRsZS1zcGFjaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1hZ2VFZGl0b3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZWRpdG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRlc3RpbW9uaWFsU2xpZGVyTW9kZWwsIFRlc3RpbW9uaWFsU2xpZGVyQ29udGVudE1vZGVsLCBUZXN0aW1vbmlhbFNsaWRlclN0eWxlc01vZGVsIH0gZnJvbSAnLi90ZXN0aW1vbmlhbC1zbGlkZXIubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW1wby10ZXN0aW1vbmlhbC1zbGlkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgU2ltcG9FbGVtZW50c01vZHVsZSxcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICAvL2RpcmVjdGl2ZXNcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcbiAgICBCb3JkZXJEaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBDb3JuZXJEaXJlY3RpdmUsXG4gICAgSG92ZXJEaXJlY3RpdmUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBDb250ZW50VGl0bGVEaXJlY3RpdmUsXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcbiAgICBJbWFnZUVkaXRvckRpcmVjdGl2ZSxcbiAgICBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rlc3RpbW9uaWFsLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90ZXN0aW1vbmlhbC1zbGlkZXIuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgVGVzdGltb25pYWxTbGlkZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGRhdGE/OiBUZXN0aW1vbmlhbFNsaWRlck1vZGVsO1xuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBASW5wdXQoKSBuZXh0Q29tcG9uZW50Q29sb3I/OiBCYWNrZ3JvdW5kTW9kZWw7XG5cbiAgQFZpZXdDaGlsZCgnc2xpZGVyVmlld3BvcnQnKSBzbGlkZXJWaWV3cG9ydCE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkcmVuKCdjYXJkSXRlbScpIGNhcmRJdGVtcyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj47XG5cbiAgY29udGVudD86IFRlc3RpbW9uaWFsU2xpZGVyQ29udGVudE1vZGVsO1xuICBzdHlsZT86IFRlc3RpbW9uaWFsU2xpZGVyU3R5bGVzTW9kZWw7XG4gIGFjdGl2ZURvdEluZGV4OiBudW1iZXIgPSAwO1xuICBcbiAgc2hvd0xlZnRBcnJvdzogYm9vbGVhbiA9IHRydWU7XG4gIHNob3dSaWdodEFycm93OiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE/LmNvbnRlbnQ7XG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZGF0YT8uc3R5bGVzO1xuICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWQgPSB0aGlzLmRlbGV0ZTtcbiAgfVxuXG4gIGdldCBoZWFkaW5nU3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LmxheW91dD8uaGVhZGluZ1NwYWNpbmc7XG4gIH1cblxuICBnZXQgZ2V0TGF5b3V0KCk6IExheU91dE1vZGVsIHtcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcbiAgfVxuXG4gIHNjcmVlbldpZHRoOiBhbnkgPSBcIlwiXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6IHJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXG4gIGdldFNjcmVlblNpemUoKSB7XG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIHRoaXMuY2hlY2tTY3JvbGxMaW1pdHMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBOZWVkIGEgdGltZW91dCB0byB3YWl0IGZvciByZW5kZXJpbmdcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tTY3JvbGxMaW1pdHMoKTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgY2hlY2tTY3JvbGxMaW1pdHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNsaWRlclZpZXdwb3J0KSByZXR1cm47XG4gICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLnNsaWRlclZpZXdwb3J0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHZpZXdwb3J0LnNjcm9sbExlZnQ7XG4gICAgY29uc3Qgd2lkdGggPSB2aWV3cG9ydC5jbGllbnRXaWR0aDtcbiAgICBjb25zdCB0b3RhbFdpZHRoID0gdmlld3BvcnQuc2Nyb2xsV2lkdGg7XG5cbiAgICB0aGlzLnNob3dMZWZ0QXJyb3cgPSBzY3JvbGxMZWZ0ID4gMDtcbiAgICAvLyBhZGRpbmcgNSBleHRyYSBwaXhlbHMgZHVlIHRvIHJvdW5kaW5nIGVkZ2UgY2FzZXNcbiAgICB0aGlzLnNob3dSaWdodEFycm93ID0gTWF0aC5jZWlsKHNjcm9sbExlZnQgKyB3aWR0aCkgPCB0b3RhbFdpZHRoIC0gNTtcbiAgfVxuXG4gIGdldExlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhPy5sZW5ndGggPz8gMDtcbiAgfVxuXG4gIGdldERvdHNBcnJheSgpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIEFycmF5KHRoaXMuZ2V0TGVuZ3RoKCkpLmZpbGwoMCk7XG4gIH1cblxuICBzY3JvbGxQcmV2KCk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy5zbGlkZXJWaWV3cG9ydC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHNjcm9sbEFtb3VudCA9IHZpZXdwb3J0Lm9mZnNldFdpZHRoO1xuICAgIHZpZXdwb3J0LnNjcm9sbEJ5KHsgbGVmdDogLXNjcm9sbEFtb3VudCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICB9XG5cbiAgc2Nyb2xsTmV4dCgpOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuc2xpZGVyVmlld3BvcnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBzY3JvbGxBbW91bnQgPSB2aWV3cG9ydC5vZmZzZXRXaWR0aDtcbiAgICB2aWV3cG9ydC5zY3JvbGxCeSh7IGxlZnQ6IHNjcm9sbEFtb3VudCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICB9XG5cbiAgc2Nyb2xsVG9DYXJkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuc2xpZGVyVmlld3BvcnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBjYXJkcyA9IHRoaXMuY2FyZEl0ZW1zLnRvQXJyYXkoKTtcbiAgICBpZiAoY2FyZHNbaW5kZXhdKSB7XG4gICAgICBjb25zdCBjYXJkRWxlbWVudCA9IGNhcmRzW2luZGV4XS5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IGNhcmRFbGVtZW50Lm9mZnNldExlZnQgLSB2aWV3cG9ydC5vZmZzZXRMZWZ0O1xuICAgICAgdmlld3BvcnQuc2Nyb2xsVG8oeyBsZWZ0OiBzY3JvbGxMZWZ0LCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgfVxuICB9XG5cbiAgb25TY3JvbGwoKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLnNsaWRlclZpZXdwb3J0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHZpZXdwb3J0LnNjcm9sbExlZnQ7XG4gICAgY29uc3Qgd2lkdGggPSB2aWV3cG9ydC5jbGllbnRXaWR0aDtcbiAgICBcbiAgICAvLyBTaW1wbGUgaGV1cmlzdGljIGZvciBhY3RpdmUgZG90XG4gICAgY29uc3QgaW5kZXggPSBNYXRoLnJvdW5kKHNjcm9sbExlZnQgLyB3aWR0aCk7XG4gICAgaWYgKHRoaXMuYWN0aXZlRG90SW5kZXggIT09IGluZGV4KSB7XG4gICAgICB0aGlzLmFjdGl2ZURvdEluZGV4ID0gaW5kZXg7XG4gICAgfVxuICAgIHRoaXMuY2hlY2tTY3JvbGxMaW1pdHMoKTtcbiAgfVxuXG4gIGVkaXRTZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzUpIHJldHVybjtcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgZ2V0IHN0eWxlc0xheW91dCgpOiBMYXlPdXRNb2RlbCB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZT8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIlxuICBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxuXG4gIDxkaXYgI21haW5Db250YWluZXIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZT8uYmFja2dyb3VuZFwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxuICAgIFtjbGFzcy5weC0xXT1cInNjcmVlbldpZHRoIDwgNDc1XCIgW3NpbXBvQmFja2dyb3VuZF09XCJzdHlsZT8uYmFja2dyb3VuZFwiIFtzaW1wb0JvcmRlcl09XCJzdHlsZT8uYm9yZGVyXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlPy5sYXlvdXRcIj5cbiAgICAgIDwhLS0gQWRkZWQgcm93IGFuZCBjb250ZW50LXNpZGUgcGVyIGNvbnZlbnRpb24gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGNvbnRlbnQtc2lkZSB3LTEwMFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZT8uYW5pbWF0aW9uXCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0ZXh0IG9mIGRhdGE/LmNvbnRlbnQ/LmlucHV0VGV4dDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPGRpdiBbc2ltcG9Db250ZW50VGl0bGVTcGFjZV09XCJoZWFkaW5nU3BhY2VcIj5cbiAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRleHQudmFsdWVcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbaW5wdXRUZXh0SW5kZXhdPVwiaVwiIFtpc1JURV09XCJ0ZXh0LmlzUlRFXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1hcnJvd3NcIiAqbmdJZj1cImdldExlbmd0aCgpID4gMSAmJiAoc2hvd0xlZnRBcnJvdyB8fCBzaG93UmlnaHRBcnJvdykgJiYgc2NyZWVuV2lkdGggPiA0NzVcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJuYXYtYXJyb3dcIiAoY2xpY2spPVwic2Nyb2xsUHJldigpXCIgW3N0eWxlLnZpc2liaWxpdHldPVwic2hvd0xlZnRBcnJvdyA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5hdi1hcnJvd1wiIChjbGljayk9XCJzY3JvbGxOZXh0KClcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJzaG93UmlnaHRBcnJvdyA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5hcnJvd19mb3J3YXJkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic2xpZGVyLXZpZXdwb3J0XCIgW2lkXT1cImRhdGE/LmlkXCIgI3NsaWRlclZpZXdwb3J0IChzY3JvbGwpPVwib25TY3JvbGwoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXN0aW1vbmlhbC1jYXJkIHNpemUte3soc3R5bGU/LnNpemUgfHwgJ0xhcmdlJykgfCBsb3dlcmNhc2V9fVwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdGVzdGltb25pYWwgb2YgY29udGVudD8ubGlzdEl0ZW0/LmRhdGE7IGxldCBpID0gaW5kZXhcIiAjY2FyZEl0ZW0gW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCI+XG4gICAgICAgICAgICA8IS0tIFtzaW1wb0NvbnRhaW5lckxheW91dF09XCJzdHlsZT8ubGF5b3V0XCIgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVvdGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdW90ZS10ZXh0XCI+XG4gICAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRlc3RpbW9uaWFsLmlucHV0VGV4dFswXS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbaW5wdXRUZXh0SW5kZXhdPVwiMFwiIFtpdGVtSW5kZXhdPVwiaVwiIFtpc1JURV09XCJ0ZXN0aW1vbmlhbC5pbnB1dFRleHRbMF0/LmlzUlRFXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItaW5mb1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNpcmNsZVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlc3RpbW9uaWFsPy5pbWFnZT8udXJsOyBlbHNlIGluaXRpYWxzXCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwidGVzdGltb25pYWwuaW1hZ2UudXJsXCIgYWx0PVwiVXNlciBBdmF0YXJcIiBbYXBwSW1hZ2VFZGl0b3JdPVwiZWRpdCB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbWFnZURhdGFdPVwidGVzdGltb25pYWwuaW1hZ2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2l0ZW1JbmRleF09XCJpXCI+XG4gICAgICAgICAgICAgICAgICA8IS0tIFtzaW1wb0NvbnRhaW5lckxheW91dF09XCJnZXRMYXlvdXRcIiAtLT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2luaXRpYWxzPlxuICAgICAgICAgICAgICAgICAge3sgdGVzdGltb25pYWwuaW5wdXRUZXh0WzFdLnZhbHVlLmNoYXJBdCgwKSB9fVxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidGVzdGltb25pYWwuaW5wdXRUZXh0WzFdLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2lucHV0VGV4dEluZGV4XT1cIjFcIiBbaXRlbUluZGV4XT1cImlcIiBbaXNSVEVdPVwidGVzdGltb25pYWwuaW5wdXRUZXh0WzFdPy5pc1JURVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItcm9sZVwiICpuZ0lmPVwidGVzdGltb25pYWwuaW5wdXRUZXh0WzJdXCI+XG4gICAgICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidGVzdGltb25pYWwuaW5wdXRUZXh0WzJdLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2lucHV0VGV4dEluZGV4XT1cIjJcIiBbaXRlbUluZGV4XT1cImlcIiBbaXNSVEVdPVwidGVzdGltb25pYWwuaW5wdXRUZXh0WzJdPy5pc1JURVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtYXJyb3dzIHctMTAwIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgKm5nSWY9XCJnZXRMZW5ndGgoKSA+IDEgJiYgKHNob3dMZWZ0QXJyb3cgfHwgc2hvd1JpZ2h0QXJyb3cpICYmIHNjcmVlbldpZHRoIDwgNDc1XCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5hdi1hcnJvd1wiIChjbGljayk9XCJzY3JvbGxQcmV2KClcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJzaG93TGVmdEFycm93ID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2LWFycm93XCIgKGNsaWNrKT1cInNjcm9sbE5leHQoKVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cInNob3dSaWdodEFycm93ID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5hcnJvd19mb3J3YXJkPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmRldmlkZXI/LmRpc3BsYXlcIj5cbiAgICA8c2ltcG8tc3ZnLWRpdmlkZXIgW2RpdmlkZXJUeXBlXT1cInN0eWxlPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiXG4gICAgICBbY29sb3JdPVwibmV4dENvbXBvbmVudENvbG9yPy5jb2xvclwiPjwvc2ltcG8tc3ZnLWRpdmlkZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cbiAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XG4gICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxuICA8L2Rpdj5cbjwvc2VjdGlvbj4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGltb25pYWwtc2xpZGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy90ZXN0aW1vbmlhbC1zbGlkZXIvdGVzdGltb25pYWwtc2xpZGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JuZXJzIH0gZnJvbSBcIi4uLy4uL3N0eWxlc1wiO1xyXG5pbXBvcnQgeyBEaXNwbGF5U2VjdGlvbiwgSW1hZ2UsIElucHV0VGV4dE1vZGVsLCBMaXN0SXRlbU1vZGFsLCBTdHlsZXNNb2RlbCwgQ2FyZFN0eWxlcyB9IGZyb20gXCIuLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUZXN0aW1vbmlhbFNsaWRlck1vZGVsIHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBzZWN0aW9uVHlwZTogc3RyaW5nO1xyXG4gICAgc2VjdGlvbk5hbWU6IHN0cmluZztcclxuICAgIGNvbnRlbnQ6IFRlc3RpbW9uaWFsU2xpZGVyQ29udGVudE1vZGVsO1xyXG4gICAgc3R5bGVzOiBUZXN0aW1vbmlhbFNsaWRlclN0eWxlc01vZGVsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RpbW9uaWFsU2xpZGVyQ29udGVudE1vZGVsIHtcclxuICAgIGlucHV0VGV4dDogW0lucHV0VGV4dE1vZGVsXTtcclxuICAgIGRpc3BsYXk6IERpc3BsYXlTZWN0aW9uO1xyXG4gICAgbGlzdEl0ZW06IExpc3RJdGVtTW9kYWw8VGVzdGltb25pYWxJdGVtTW9kZWw+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RpbW9uaWFsSXRlbU1vZGVsIHtcclxuICAgIHN0YXR1czogYm9vbGVhbjtcclxuICAgIGltYWdlOiBJbWFnZTtcclxuICAgIGlucHV0VGV4dDogSW5wdXRUZXh0TW9kZWxbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUZXN0aW1vbmlhbFNsaWRlclN0eWxlc01vZGVsIGV4dGVuZHMgU3R5bGVzTW9kZWwsIENhcmRTdHlsZXMge1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGltb25pYWwtc2xpZGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy90ZXN0aW1vbmlhbC1zbGlkZXIvdGVzdGltb25pYWwtc2xpZGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JuZXJzIH0gZnJvbSBcIi4uLy4uL3N0eWxlc1wiO1xuaW1wb3J0IHsgRGlzcGxheVNlY3Rpb24sIEltYWdlLCBJbnB1dFRleHRNb2RlbCwgTGlzdEl0ZW1Nb2RhbCwgU3R5bGVzTW9kZWwsIENhcmRTdHlsZXMgfSBmcm9tIFwiLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZXN0aW1vbmlhbFNsaWRlck1vZGVsIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHNlY3Rpb25UeXBlOiBzdHJpbmc7XG4gICAgc2VjdGlvbk5hbWU6IHN0cmluZztcbiAgICBjb250ZW50OiBUZXN0aW1vbmlhbFNsaWRlckNvbnRlbnRNb2RlbDtcbiAgICBzdHlsZXM6IFRlc3RpbW9uaWFsU2xpZGVyU3R5bGVzTW9kZWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdGltb25pYWxTbGlkZXJDb250ZW50TW9kZWwge1xuICAgIGlucHV0VGV4dDogW0lucHV0VGV4dE1vZGVsXTtcbiAgICBkaXNwbGF5OiBEaXNwbGF5U2VjdGlvbjtcbiAgICBsaXN0SXRlbTogTGlzdEl0ZW1Nb2RhbDxUZXN0aW1vbmlhbEl0ZW1Nb2RlbD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdGltb25pYWxJdGVtTW9kZWwge1xuICAgIHN0YXR1czogYm9vbGVhbjtcbiAgICBpbWFnZTogSW1hZ2U7XG4gICAgaW5wdXRUZXh0OiBJbnB1dFRleHRNb2RlbFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RpbW9uaWFsU2xpZGVyU3R5bGVzTW9kZWwgZXh0ZW5kcyBTdHlsZXNNb2RlbCwgQ2FyZFN0eWxlcyB7XG59XG4iXX0=